:root{--bg:#0c0d10;--panel:#15171c;--panel-2:#1c1f26;--border:#2a2e38;--fg:#e7e9ec;--fg-dim:#9aa0a8;--accent:#7aa7ff;--accent-fg:#06121f;--danger:#ff6b6b;--danger-border:#4a2a2a;--danger-bg:#ff6b6b14;--ok:#4cc38a;--warning:#c97;--muted:var(--fg-dim);--error:var(--danger);--success:var(--ok);--chat-bg:#1b1d2a;--chat-bg-input:#0a0c12;--chat-bg-history:#0f1118;--chat-bg-footer:#13151f;--chat-bg-user-msg:#26345e;--chat-bg-bot-msg:#1b1d2a;--chat-bg-danger:#3a1014;--chat-bg-streaming:#2a2d3d;--chat-bg-action:#3b4570;--chat-border:#2c3046;--chat-border-strong:#557;--chat-border-launcher:#232636;--chat-border-user-msg:#3b4d7e;--chat-border-danger:#6b1f24;--chat-border-meta:#3a3f55;--chat-fg:#e6e8f0;--chat-fg-launcher:#8c93a8;--chat-fg-meta:#7d8395;--chat-fg-danger:#f5b8b8;--chat-fg-strong:#fff;--space-xs:.3rem;--space-sm:.6rem;--space-md:.85rem;--space-lg:1.25rem;--space-xl:2rem;--text-xs:.75rem;--text-sm:.85rem;--text-base:1rem;--text-lg:1.15rem;--text-xl:1.4rem;--bp-narrow:768px;--bp-medium:1024px;--bp-wide:1025px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html{font-size:17.5px}html,body{background:var(--bg);color:var(--fg);min-height:100vh;margin:0;padding:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.92em}.app{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.app[data-app-shell-mode=medium]{grid-template-columns:40px 1fr}.app[data-app-shell-mode=narrow]{grid-template-columns:1fr}.sidebar{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;gap:.25rem;height:100vh;padding:1.25rem .75rem;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar h1{letter-spacing:.04em;color:var(--fg-dim);text-transform:uppercase;margin:0 .5rem 1rem;font-size:1rem}.sidebar a{color:var(--fg);border-radius:6px;padding:.5rem .75rem;display:block}.sidebar a:hover{background:var(--panel-2);text-decoration:none}.sidebar form{margin-top:auto;padding:.5rem}.sidebar .who{color:var(--fg-dim);padding:0 .5rem .5rem;font-size:.8rem}.nav-section{margin-top:var(--space-sm);flex-direction:column;display:flex}.nav-section-header{align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs);letter-spacing:.04em;color:var(--fg-dim);text-transform:uppercase;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;display:flex}.nav-section-header:hover{color:var(--fg)}.nav-section-header:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nav-section-chevron{width:var(--space-md);text-align:center;font-size:var(--text-xs);display:inline-block}.nav-section-body{flex-direction:column;gap:0;display:flex}.sidebar a.nav-link-active{background:var(--panel-2);color:var(--fg)}.sidebar.sidebar-rail{text-align:center;align-items:center}.sidebar.sidebar-rail h1,.sidebar.sidebar-rail .who,.sidebar.sidebar-rail .view-as-sidebar-note{display:none}.sidebar.sidebar-rail form{width:100%;padding:var(--space-xs)}.sidebar.sidebar-drawer{background:var(--panel-2);height:auto;position:fixed}.view-as-sidebar-note{border:1px solid var(--warning);background:color-mix(in srgb, var(--warning) 12%, var(--panel));color:var(--fg);font-size:var(--text-sm);margin:0 var(--space-xs) var(--space-sm);padding:var(--space-sm);border-radius:6px}.view-as-sidebar-note .mono{color:var(--fg-dim);font-size:var(--text-xs);margin-top:var(--space-xs)}main.content{padding:2rem 2.5rem}.view-as-banner{background:color-mix(in srgb, var(--warning) 18%, var(--panel));border:1px solid var(--warning);border-left:var(--space-xs) solid var(--warning);color:var(--fg);font-size:var(--text-base);align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);padding:var(--space-md) var(--space-lg);border-radius:8px;justify-content:space-between;display:flex}.view-as-banner form{margin:0}.page-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.page-header h2{margin:0;font-weight:600}table{border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:8px;width:100%;overflow:hidden}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.6rem .85rem;font-size:.92rem}th{background:var(--panel-2);color:var(--fg-dim);font-weight:500}tr:last-child td{border-bottom:none}tr.search-row:hover td{background:var(--panel-2)}.status-pill{min-height:var(--space-lg);padding:0 var(--space-sm);border:1px solid var(--border);background:var(--panel-2);color:var(--fg);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:var(--text-xs);border-radius:6px;align-items:center;display:inline-flex}.status-pill.status-running,.status-pill.status-queued{border-color:var(--accent);color:var(--accent)}.status-pill.status-succeeded{border-color:var(--ok);color:var(--ok)}.status-pill.status-failed{border-color:var(--danger);color:var(--danger)}.status-pill.is-live{animation:1.4s ease-out live-pulse}.status-note{margin-left:var(--space-xs)}.live-row-flash>td,.stage-row.is-live{animation:1.4s ease-out live-row-flash}.run-detail-summary{margin-bottom:var(--space-lg);font-size:var(--text-sm)}.stage-row{border:1px solid var(--border);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-sm);border-radius:6px}.stage-row-body{margin-top:var(--space-sm)}.stage-row-body .error{margin-bottom:var(--space-sm)}.stage-json-label,.stage-json{font-size:var(--text-xs)}.stage-json{white-space:pre-wrap;margin:0 0 var(--space-sm)}.stage-json:last-child{margin-bottom:0}.stage-artifacts{gap:var(--space-sm);margin-top:var(--space-md);display:grid}.stage-artifact{border-top:1px solid var(--border);padding-top:var(--space-sm)}.stage-artifact>summary{cursor:pointer;align-items:center;gap:var(--space-sm);min-height:var(--space-xl);justify-content:space-between;display:flex}.stage-artifact>summary>button{flex:none}.stage-artifact .stage-json,.stage-artifact .error{margin-top:var(--space-sm)}@keyframes live-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 65%, transparent)}to{box-shadow:0 0 0 var(--space-sm) transparent}}@keyframes live-row-flash{0%{background:color-mix(in srgb, var(--accent) 16%, transparent)}to{background:0 0}}form.stack{background:var(--panel);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:.85rem;max-width:480px;padding:1.25rem;display:flex}form.stack label{color:var(--fg-dim);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}form.stack input,form.stack select,form.stack textarea{background:var(--panel-2);color:var(--fg);border:1px solid var(--border);font:inherit;border-radius:6px;padding:.55rem .7rem}form.stack input:focus,form.stack select:focus,form.stack textarea:focus{border-color:var(--accent);outline:none}form.stack .row{align-items:center;gap:.6rem;display:flex}form.stack fieldset.stack-section{border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:.6rem;margin:0;padding:.6rem .85rem .85rem;display:flex}form.stack fieldset.stack-section>legend{text-transform:uppercase;letter-spacing:.04em;color:var(--fg-dim);padding:0 .35rem;font-size:.78rem}form.stack details.stack-section{border:1px solid var(--border);border-radius:6px;padding:.5rem .85rem}form.stack details.stack-section[open]{padding-bottom:.85rem}form.stack details.stack-section>summary{cursor:pointer;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-dim);font-size:.78rem}form.stack details.stack-section[open]>summary{margin-bottom:.6rem}form.stack fieldset.checkbox-group{border:none;flex-wrap:wrap;gap:.75rem;margin:0;padding:0;display:flex}form.stack fieldset.checkbox-group>legend{color:var(--fg-dim);width:100%;margin-bottom:.3rem;padding:0;font-size:.78rem}form.stack label.inline{color:var(--fg);flex-direction:row;align-items:center;gap:.35rem;font-size:.85rem}form.stack label.inline>input[type=checkbox]{border:1px solid var(--border);background:0 0;width:auto;margin:0;padding:0}button,.btn{background:var(--accent);color:var(--accent-fg);font:inherit;cursor:pointer;border:none;border-radius:6px;padding:.55rem 1rem;font-weight:500;display:inline-block}button.ghost,.btn.ghost{color:var(--fg);border:1px solid var(--border);background:0 0}button.danger,.btn.danger{color:var(--danger);border:1px solid var(--danger-border);background:0 0}button:disabled{opacity:.5;cursor:not-allowed}.error{color:var(--danger);background:#ff6b6b14;border:1px solid #ff6b6b4d;border-radius:6px;padding:.6rem .8rem;font-size:.9rem}.notice{color:var(--ok);background:#4cc38a14;border:1px solid #4cc38a4d;border-radius:6px;margin-bottom:1rem;padding:.8rem 1rem}.secret{background:var(--panel-2);border:1px solid var(--border);word-break:break-all;color:var(--fg);border-radius:6px;padding:.7rem .9rem}.cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:1rem 1.2rem}.card .num{font-size:2rem;font-weight:600}.card .label{color:var(--fg-dim);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.tabs{border-bottom:1px solid var(--border);gap:.25rem;margin-bottom:1.25rem;display:flex}.tabs a{color:var(--fg-dim);border-bottom:2px solid #0000;padding:.55rem .9rem}.tabs a.active,.tabs a:hover{color:var(--fg);border-bottom-color:var(--accent);text-decoration:none}.login-shell{place-items:center;min-height:100vh;padding:2rem;display:grid}.login-shell h1{margin:0 0 1rem}.legal-shell{max-width:48rem;padding:var(--space-xl) var(--space-lg);margin:0 auto;line-height:1.55}.legal-shell h1{margin:0 0 var(--space-md);font-size:var(--text-xl)}.legal-shell h2{margin:var(--space-lg) 0 var(--space-sm);font-size:var(--text-lg)}.legal-shell p{margin:0 0 var(--space-md)}.legal-shell hr{border:0;border-top:1px solid var(--border);margin:var(--space-lg) 0}.legal-draft-badge{background:var(--panel-2);color:var(--fg-dim);border:1px solid var(--border);padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs);letter-spacing:.05em;text-transform:uppercase;margin-bottom:var(--space-md);border-radius:.3rem;display:inline-block}.legal-footer{gap:var(--space-md);color:var(--fg-dim);font-size:var(--text-xs);padding:var(--space-md) var(--space-sm);flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.legal-footer a{color:var(--fg-dim)}.legal-footer a:hover{color:var(--fg)}.app-footer{border-top:1px solid var(--border);margin-top:var(--space-lg)}.muted{color:var(--fg-dim)}.toolbar{gap:var(--space-sm);align-items:center;display:flex}.cluster{align-items:center;gap:var(--space-sm);display:flex}.cluster.xs{gap:var(--space-xs)}.cluster.md{gap:var(--space-md)}.cluster.lg{gap:var(--space-lg)}.cluster.tight{gap:.4rem}.cluster.wrap{flex-wrap:wrap}.cluster.between{justify-content:space-between}.cluster.baseline{align-items:baseline}.stack{gap:var(--space-sm);flex-direction:column;display:flex}.stack.xs{gap:var(--space-xs)}.stack.md{gap:var(--space-md)}.stack.lg{gap:var(--space-lg)}.stack.flush{gap:0}a:active,button:active:not(:disabled),.btn:active{transform:translateY(1px)}@keyframes nav-spin{to{transform:rotate(360deg)}}.nav-spinner{vertical-align:-.1em;opacity:.7;border:2px solid;border-right-color:#0000;border-radius:50%;width:.8em;height:.8em;margin-left:.45em;animation:.7s linear infinite nav-spin;display:inline-block}.nav-progress-bar{z-index:2000;pointer-events:none;opacity:0;height:2px;transition:opacity .18s;position:fixed;top:0;left:0;right:0;overflow:hidden}.nav-progress-bar.is-active{opacity:1}.nav-progress-bar:before{content:"";background:linear-gradient(90deg, transparent, var(--accent) 50%, transparent);width:40%;animation:1.1s linear infinite nav-progress-slide;position:absolute;inset:0}@keyframes nav-progress-slide{0%{transform:translate(-100%)}to{transform:translate(350%)}}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg, var(--panel) 0%, var(--panel-2) 50%, var(--panel) 100%);background-size:200% 100%;border-radius:6px;animation:1.4s linear infinite skeleton-shimmer;display:block}.skeleton.row{height:1.1rem;margin-bottom:.5rem}.skeleton.row.short{width:40%}.skeleton.row.medium{width:70%}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}