html{--lumo-font-family: "IBM Plex Sans", "Segoe UI", sans-serif;--lumo-primary-color: #2f5bff;--lumo-primary-text-color: #1d3ea8;--lumo-border-radius-s: 8px;--lumo-border-radius-m: 12px;--lumo-border-radius-l: 16px;--da-mono: "IBM Plex Mono", ui-monospace, "Cascadia Code", monospace;--da-canvas: #f4f6f9;--da-success: #0c8f62;--da-danger: #d12b45;--da-info: #2f5bff;--da-warning: #a16207;--da-shadow: 0 18px 50px rgba(18, 24, 38, .08);color-scheme:light;background:var(--lumo-contrast-5pct)}html[theme~=dark]{--lumo-base-color: #101318;--lumo-primary-color: #9bb4ff;--lumo-primary-text-color: #d5e0ff;--lumo-body-text-color: #e7ebf3;--lumo-secondary-text-color: #9aa3b5;--lumo-tertiary-text-color: #7d8798;--lumo-contrast-5pct: rgba(232, 236, 244, .05);--lumo-contrast-10pct: rgba(232, 236, 244, .09);--lumo-contrast-20pct: rgba(232, 236, 244, .14);--lumo-contrast-30pct: rgba(232, 236, 244, .22);--da-canvas: #0c0f14;--da-success: #3dd68c;--da-danger: #ff7388;--da-info: #9bb4ff;--da-warning: #f5c16c;--da-shadow: 0 18px 50px rgba(0, 0, 0, .35);color-scheme:dark}html,body,.app-shell{background:var(--da-canvas);color:var(--lumo-body-text-color)}@media(prefers-reduced-motion:no-preference){html,body,vaadin-app-layout::part(navbar),.surface,.step,.theme-toggle span{transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease}}vaadin-app-layout::part(navbar){background:color-mix(in srgb,var(--lumo-base-color) 88%,transparent);border-bottom:1px solid var(--lumo-contrast-10pct);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:none}.app-bar{box-sizing:border-box;min-height:56px;padding:0 20px;gap:16px}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--lumo-header-text-color);text-decoration:none;font-weight:600;letter-spacing:-.02em}.brand-mark{width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:var(--lumo-primary-color);color:#fff;font-family:var(--da-mono);font-size:14px;font-weight:500}html[theme~=dark] .brand-mark{color:#101318}.brand-name{font-size:15px}.app-bar-actions{gap:8px}.theme-toggle{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:999px;border:1px solid var(--lumo-contrast-10pct);background:var(--lumo-contrast-5pct);cursor:pointer}.theme-toggle span{padding:4px 10px;border-radius:999px;font-family:var(--da-mono);font-size:11px;letter-spacing:.04em;color:var(--lumo-tertiary-text-color)}html[theme~=dark] .theme-toggle .theme-dark,html:not([theme~=dark]) .theme-toggle .theme-light{background:var(--lumo-base-color);color:var(--lumo-primary-text-color);box-shadow:0 1px 2px #00000029}.theme-toggle-floating{position:fixed;top:16px;right:16px;z-index:10}.page{box-sizing:border-box;width:100%;max-width:1180px;margin:0 auto;padding:28px 24px 56px;gap:20px}.page-fill{height:calc(100vh - 56px);max-width:1280px;padding-bottom:24px;box-sizing:border-box}.page-narrow{max-width:920px}.page-wide{max-width:1440px}.eyebrow{font-family:var(--da-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--lumo-primary-text-color)}.page-title{margin:4px 0 0;font-size:32px;line-height:1.1;letter-spacing:-.03em;font-weight:600}.page-subtitle,.muted{color:var(--lumo-secondary-text-color)}.page-subtitle{margin:6px 0 0;font-size:14px}.toolbar{gap:12px;align-items:end}.toolbar vaadin-text-field{flex:1}.toolbar-actions{gap:4px}.journal-grid{border:1px solid var(--lumo-contrast-10pct);border-radius:14px;overflow:hidden;background:var(--lumo-base-color)}.journal-grid::part(header-cell){font-size:11px;letter-spacing:.07em;text-transform:uppercase;font-weight:600;color:var(--lumo-secondary-text-color)}.journal-grid::part(cell){font-size:13px}.journal-grid::part(row){cursor:pointer}.journal-grid::part(completed){box-shadow:inset 2px 0 0 var(--da-success)}.journal-grid::part(failed){box-shadow:inset 2px 0 0 var(--da-danger)}.journal-grid::part(running){box-shadow:inset 2px 0 0 var(--da-info)}.mono,.journal-grid .mono{font-family:var(--da-mono);font-size:12px;letter-spacing:-.02em}.badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;border:1px solid transparent;font-family:var(--da-mono);font-size:11px;font-weight:500;letter-spacing:.04em;line-height:1;white-space:nowrap}.badge-completed,.badge-production,.badge-aligned{color:var(--da-success);background:color-mix(in srgb,var(--da-success) 14%,transparent);border-color:color-mix(in srgb,var(--da-success) 28%,transparent)}.badge-failed,.badge-diverges{color:var(--da-danger);background:color-mix(in srgb,var(--da-danger) 14%,transparent);border-color:color-mix(in srgb,var(--da-danger) 28%,transparent)}.badge-running,.badge-local{color:var(--da-info);background:color-mix(in srgb,var(--da-info) 14%,transparent);border-color:color-mix(in srgb,var(--da-info) 28%,transparent)}.badge-preview,.badge-warning{color:var(--da-warning);background:color-mix(in srgb,var(--da-warning) 16%,transparent);border-color:color-mix(in srgb,var(--da-warning) 30%,transparent)}.badge-unknown,.badge-neutral{color:var(--lumo-secondary-text-color);background:var(--lumo-contrast-5pct);border-color:var(--lumo-contrast-10pct)}.stat{display:inline-flex;align-items:center;gap:6px;font-family:var(--da-mono);font-size:12px;color:var(--lumo-secondary-text-color)}.stat-success{color:var(--da-success)}.stat-danger{color:var(--da-danger)}.stat-info{color:var(--da-info)}.meta-row{gap:10px;flex-wrap:wrap;align-items:center}.timeline{display:flex;flex-direction:column;gap:0;margin-top:8px}.step{display:grid;grid-template-columns:36px 1fr;gap:14px}.step-rail{display:flex;flex-direction:column;align-items:center}.step-index{width:28px;height:28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--da-mono);font-size:11px;background:var(--lumo-base-color);border:1px solid var(--lumo-contrast-20pct);color:var(--lumo-secondary-text-color);z-index:1}.step-line{width:1px;flex:1;background:var(--lumo-contrast-20pct);min-height:16px}.step:last-child .step-line{display:none}.step-body{background:var(--lumo-base-color);border:1px solid var(--lumo-contrast-10pct);border-radius:14px;padding:14px 16px 16px;margin-bottom:14px;box-shadow:var(--da-shadow)}.step-completed .step-index{color:var(--da-success);border-color:color-mix(in srgb,var(--da-success) 45%,transparent)}.step-failed .step-index{color:var(--da-danger);border-color:color-mix(in srgb,var(--da-danger) 45%,transparent)}.step-running .step-index{color:var(--da-info);border-color:color-mix(in srgb,var(--da-info) 45%,transparent)}.step-name{margin:0;font-size:16px;letter-spacing:-.02em}.artifact-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.artifact-card{background:var(--lumo-contrast-5pct);border:1px solid var(--lumo-contrast-10pct);border-radius:10px;padding:10px 12px}.artifact-card pre,.artifact-body{margin:8px 0 0;font-family:var(--da-mono);font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word;color:var(--lumo-body-text-color);background:transparent}.artifact-image{width:100%;max-height:220px;object-fit:contain;border-radius:8px;background:linear-gradient(45deg,var(--lumo-contrast-5pct) 25%,transparent 25%),linear-gradient(-45deg,var(--lumo-contrast-5pct) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--lumo-contrast-5pct) 75%),linear-gradient(-45deg,transparent 75%,var(--lumo-contrast-5pct) 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0;background-color:var(--lumo-contrast-5pct);cursor:zoom-in}.artifact-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.type-label{font-family:var(--da-mono);font-size:10px;letter-spacing:.06em;color:var(--lumo-secondary-text-color);border:1px solid var(--lumo-contrast-10pct);border-radius:999px;padding:2px 7px}.compare-board{display:grid;gap:12px}.compare-card,.compare-row,.compare-cell,.compare-artifact{background:var(--lumo-base-color);border:1px solid var(--lumo-contrast-10pct);border-radius:12px}.compare-card,.compare-row{padding:14px}.compare-cell,.compare-artifact{padding:10px;background:var(--lumo-contrast-5pct)}.compare-row.diverges{border-color:color-mix(in srgb,var(--da-danger) 45%,var(--lumo-contrast-10pct))}.column-label{font-family:var(--da-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--lumo-tertiary-text-color)}.login-screen{min-height:100%;display:flex;align-items:center;justify-content:center;padding:32px 16px;background:radial-gradient(820px 380px at 50% -8%,color-mix(in srgb,var(--lumo-primary-color) 18%,transparent),transparent 68%),var(--da-canvas)}.login-card{width:min(400px,calc(100vw - 48px))!important;max-width:400px;padding:8px 8px 12px;border-radius:18px;background:var(--lumo-base-color);border:1px solid var(--lumo-contrast-10pct);box-shadow:var(--da-shadow);display:flex;flex-direction:column;align-items:center;flex:0 0 auto}.login-card h1{margin:22px 0 0;font-size:26px;letter-spacing:-.03em}.login-card vaadin-login-form{width:100%}.empty-state{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:28px;color:var(--lumo-secondary-text-color)}.empty-state h3{margin:0;color:var(--lumo-header-text-color)}vaadin-dialog-overlay.image-lightbox::part(overlay){background:color-mix(in srgb,var(--lumo-shade) 72%,transparent)}vaadin-dialog-overlay.image-lightbox::part(content){padding:0;border-radius:16px;background:var(--lumo-base-color)}.lightbox{background:var(--lumo-base-color)}.lightbox-bar{padding:12px 16px;border-bottom:1px solid var(--lumo-contrast-10pct)}.lightbox-stage{display:flex;align-items:center;justify-content:center;padding:24px;min-height:0;overflow:auto;background:var(--lumo-contrast-5pct)}.lightbox-stage img{max-width:100%;max-height:100%;object-fit:contain}@media(max-width:760px){.page-title{font-size:26px}.toolbar{flex-direction:column;align-items:stretch}.brand-name{display:none}.app-bar{padding:0 12px}}
