:root{--ink:#1a2321;--ink-soft:#5b6a66;--ink-faint:#8a9793;--line:#e3e8e6;--canvas:#f3f5f4;--paper:#fff;--hover:#eef3f1;--selected:#e3f2ef;--sidebar:#1f2d2a;--sidebar-ink:#cfe0da;--sidebar-ink-soft:#7fa599;--sidebar-active:#ffffff24;--sidebar-hover:#ffffff12;--sidebar-line:#ffffff1f;--primary:#0f766e;--primary-ink:#0f766e;--primary-soft:#e3f2ef;--amber:#b45309;--amber-soft:#fdf1e2;--red:#b91c1c;--red-soft:#fbe9e9;--green:#15803d;--green-soft:#e6f4ea;--info:#1d4ed8;--info-soft:#e6ecfd;--status-good:var(--green);--status-good-soft:var(--green-soft);--status-warn:var(--amber);--status-warn-soft:var(--amber-soft);--status-bad:var(--red);--status-bad-soft:var(--red-soft);--radius:10px;--radius-sm:6px;--shadow-card:0 1px 2px #0f17150d;--font-mono:ui-monospace, "SFMono-Regular", "Menlo", "Consolas", monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:14px}a{color:inherit}.metric-value,.progress-label,.stage-duration,.stage-split-value,.bucket-count,.bucket-pct,.timeline-row-time,.run-table td{font-variant-numeric:tabular-nums}.stage-rail::-webkit-scrollbar{height:8px}.md table::-webkit-scrollbar{height:8px}.evidence-pre::-webkit-scrollbar{height:8px}.stage-rail::-webkit-scrollbar-track{background:0 0}.md table::-webkit-scrollbar-track{background:0 0}.evidence-pre::-webkit-scrollbar-track{background:0 0}.stage-rail::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.md table::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.evidence-pre::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.shell{min-height:100vh;display:flex}.sidebar{background:var(--sidebar);width:240px;color:var(--sidebar-ink);flex-direction:column;flex-shrink:0;padding:24px 0;display:flex}.brand{flex-direction:column;gap:2px;padding:4px 24px 28px;display:flex}.brand-name{color:#fff;letter-spacing:.4px;font-size:24px;font-weight:700}.brand-sub{color:var(--sidebar-ink-soft);text-transform:uppercase;letter-spacing:1.5px;font-size:11px}.nav{flex-direction:column;flex:1;gap:24px;display:flex}.nav-group-title{color:var(--sidebar-ink-soft);text-transform:uppercase;letter-spacing:1px;padding:0 24px 8px;font-size:11px}.nav-item{color:var(--sidebar-ink);border-left:3px solid #0000;padding:9px 24px;font-size:14px;text-decoration:none;transition:background-color .15s,color .15s;display:block}.nav-item:hover{background:var(--sidebar-hover);color:#fff}.nav-item.active{background:var(--sidebar-active);color:#fff;border-left-color:#fff;font-weight:600}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{flex-shrink:0;justify-content:flex-end;align-items:center;height:56px;padding:0 32px;display:flex}.topbar-right{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:13px}.content{flex-direction:column;flex:1;gap:16px;padding:0 32px 32px;display:flex}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card)}.filters-card{padding:16px 20px}.table-card{overflow-x:auto}.placeholder-card{color:var(--ink-faint);text-align:center;padding:32px}.filters{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.filters .ui-field{width:auto;min-width:140px}.filters .filter-search{flex:1;min-width:240px}.run-table{border-collapse:collapse;width:100%;min-width:920px;font-size:13.5px}.run-table thead th{text-align:left;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--line);white-space:nowrap;padding:12px 16px;font-size:12px;font-weight:600}.run-table tbody tr{border-bottom:1px solid var(--line);height:64px}.run-table tbody tr:last-child{border-bottom:none}.run-table tbody tr:hover{background:var(--hover)}.run-row{cursor:pointer}.run-row:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.run-table tbody tr.row-attention{box-shadow:inset 4px 0 0 var(--status-warn)}.run-table td{vertical-align:middle;color:var(--ink);padding:10px 16px}.run-title{font-weight:600;line-height:1.4}.run-slug{color:var(--ink-faint);font-size:12px;font-family:var(--font-mono);margin-top:2px}.recipe-badge{background:var(--primary-soft);height:22px;color:var(--primary);cursor:default;white-space:nowrap;border-radius:999px;align-items:center;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.muted{color:var(--ink-faint);font-size:13px}.progress-cell{align-items:center;gap:8px;min-width:120px;display:flex}.progress-track{background:var(--line);border-radius:3px;flex:1;height:6px;overflow:hidden}.progress-fill{background:var(--primary);border-radius:3px;height:100%}.progress-label{color:var(--ink-soft);white-space:nowrap;font-size:12px}.status-badge{white-space:nowrap;border-radius:999px;align-items:center;height:22px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.status-in_progress{background:var(--primary-soft);color:var(--primary)}.status-awaiting{background:var(--status-warn-soft);color:var(--status-warn)}.status-blocked{background:var(--status-bad-soft);color:var(--status-bad)}.status-closed{background:var(--status-good-soft);color:var(--status-good)}.pagination{color:var(--ink-soft);justify-content:center;align-items:center;gap:12px;font-size:13px;display:flex}.pagination button{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);cursor:pointer;background:#fff;padding:6px 14px;font-family:inherit;font-size:13px}.pagination button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.pagination button:disabled{opacity:.4;cursor:not-allowed}.error-banner{background:var(--status-bad-soft);color:var(--status-bad);border:1px solid #f0b8b8;border-radius:8px;padding:10px 16px;font-size:13px}.table-state{text-align:center;color:var(--ink-faint);padding:32px 16px}.empty-state code{background:var(--canvas);color:var(--ink);font-size:12px;font-family:var(--font-mono);border-radius:4px;padding:2px 6px}.run-detail-page{flex-direction:column;gap:16px;display:flex}.detail-header{flex-direction:column;gap:8px;padding:20px 24px;display:flex}.detail-header-top{align-items:flex-start;gap:14px;display:flex}.back-link{color:var(--ink-soft);white-space:nowrap;padding-top:3px;font-size:13px;text-decoration:none}.back-link:hover{color:var(--primary)}.detail-title-group{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.detail-title{color:var(--ink);overflow-wrap:break-word;margin:0;font-size:20px;font-weight:600}.detail-slug{color:var(--ink-faint);font-size:12.5px;font-family:var(--font-mono)}.detail-meta{color:var(--ink-soft);flex-wrap:wrap;gap:8px;font-size:12.5px;display:flex}.detail-meta .dot{color:var(--line)}.section-card{flex-direction:column;gap:14px;padding:20px 24px;display:flex}.section-title{color:var(--ink);border-left:3px solid var(--primary);margin:0;padding-left:10px;font-size:15px;font-weight:600;line-height:1.3}.metrics-row{grid-template-columns:repeat(5,minmax(140px,1fr));gap:12px;display:grid}.metric-card{flex-direction:column;gap:4px;padding:16px 18px;display:flex}.metric-value{color:var(--ink);font-size:24px;font-weight:700}.metric-label{color:var(--ink-soft);font-size:12.5px}.metric-hint{color:var(--ink-faint);font-size:11px}.stage-rail{gap:12px;padding-bottom:10px;display:flex;overflow-x:auto}.stage-card{border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;background:var(--paper);flex-direction:column;flex:none;gap:8px;width:260px;min-height:236px;padding:14px 16px;display:flex}.stage-card:hover{border-color:#b9c9c2}.stage-card.current{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset;border-width:2px}.stage-card.selected{background:var(--hover)}.stage-card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.stage-card-title{color:var(--ink);font-size:14px;font-weight:600}.stage-time-row{color:var(--ink-soft);font-size:12px}.stage-duration{color:var(--ink);font-size:13px;font-weight:600}.stage-split{gap:8px;display:flex}.stage-split-cell{background:var(--canvas);border-radius:var(--radius-sm);flex-direction:column;flex:1;gap:2px;padding:6px 8px;display:flex}.stage-split-label{color:var(--ink-soft);font-size:11px}.stage-split-value{color:var(--ink);font-size:12px;font-weight:600}.stage-kv-list{flex-direction:column;flex:1;gap:4px;display:flex}.stage-kv{gap:6px;font-size:12px;line-height:1.4;display:flex}.stage-kv .k{color:var(--ink-soft);white-space:nowrap;flex:none}.stage-kv .v{color:var(--ink);overflow-wrap:anywhere}.stage-kv-clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.badge-manual{background:var(--status-good-soft);color:var(--status-good)}.badge-auto{background:var(--primary-soft);color:#4c6a60}.badge-current{color:var(--primary);border:1px solid var(--primary);background:#fff}.badge-pending{background:var(--canvas);color:var(--ink-soft)}.badge-stale{background:var(--status-bad-soft);color:var(--status-bad)}.badge-deferred,.badge-awaiting{background:var(--status-warn-soft);color:var(--status-warn)}.badge-superseded{color:var(--ink-faint);background:#f0f0f0;text-decoration:line-through}.badge-unknown{background:var(--canvas);color:var(--ink-soft)}.artifact-section{grid-template-columns:260px 1fr;align-items:start;gap:16px;display:grid}.artifact-list{border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:2px;max-height:60vh;padding:4px;display:flex;overflow-y:auto}.artifact-list-item{text-align:left;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;width:100%;padding:8px 10px;font-family:inherit;display:block}.artifact-list-item:hover{background:var(--hover)}.artifact-list-item.active{background:var(--selected)}.artifact-list-name{color:var(--ink);word-break:break-all;font-size:13px}.artifact-list-meta{color:var(--ink-faint);margin-top:2px;font-size:11px}.artifact-preview{border:1px solid var(--line);border-radius:8px;min-width:0;max-height:60vh;padding:16px 20px;overflow-y:auto}.artifact-summary-banner{background:var(--canvas);border-radius:var(--radius-sm);align-items:baseline;gap:8px;margin-bottom:12px;padding:8px 12px;font-size:13px;display:flex}.artifact-summary-label{color:var(--primary);white-space:nowrap;font-weight:700}.artifact-summary-value{color:var(--ink)}.md{color:var(--ink);overflow-wrap:anywhere;font-size:13px;line-height:1.7}.md h1,.md h2,.md h3,.md h4{color:var(--ink);margin:1.2em 0 .5em;font-weight:600}.md h1{font-size:18px}.md h2{font-size:16px}.md h3{font-size:14px}.md h4{font-size:13px}.md p{margin:.6em 0}.md ul,.md ol{margin:.6em 0;padding-left:1.6em}.md li+li{margin-top:.2em}.md table{border-collapse:collapse;width:max-content;max-width:100%;margin:.8em 0;font-size:12.5px;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--line);text-align:left;padding:6px 10px}.md th{background:var(--canvas);white-space:nowrap;font-weight:600}.md tbody tr:nth-child(2n){background:var(--canvas)}.md code{background:var(--canvas);font-size:12px;font-family:var(--font-mono);border-radius:4px;padding:1px 5px}.md pre{background:var(--canvas);border:1px solid var(--line);border-radius:8px;padding:12px 14px;overflow-x:auto}.md pre code{background:0 0;padding:0;font-size:12.5px}.md blockquote{border-left:3px solid var(--line);color:var(--ink-soft);margin:.6em 0;padding:4px 12px}.md hr{border:none;border-top:1px solid var(--line);margin:1.2em 0}.timeline{flex-direction:column;gap:10px;display:flex}.timeline-summary{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:12.5px}.timeline-more{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--primary);cursor:pointer;background:#fff;align-self:flex-start;padding:6px 12px;font-family:inherit;font-size:12.5px}.timeline-more:hover{border-color:var(--primary);background:var(--primary-soft)}.timeline-group{border:1px solid var(--line);border-radius:8px;overflow:hidden}.timeline-group-head{background:var(--paper);cursor:pointer;text-align:left;border:none;align-items:center;gap:10px;width:100%;padding:10px 14px;font-family:inherit;display:flex}.timeline-group-head:hover{background:var(--hover)}.timeline-group-caret{color:var(--ink-faint);flex:none;font-size:11px;transition:transform .15s;display:inline-block}.timeline-group-caret.open{transform:rotate(90deg)}.timeline-group-label{color:var(--ink);font-size:13px;font-weight:600}.timeline-group-count{color:var(--ink-soft);background:var(--canvas);border-radius:999px;padding:1px 8px;font-size:12px}.timeline-group-span{color:var(--ink-faint);white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.timeline-group-body{border-top:1px solid var(--line);flex-direction:column;padding:6px 14px 10px;display:flex}.timeline-row{align-items:center;gap:10px;min-width:0;padding:5px 0;display:flex}.timeline-row-time{width:64px;color:var(--ink-faint);flex:none;font-size:12px}.timeline-row-dot{background:var(--ink-faint);border-radius:50%;flex:none;width:8px;height:8px}.dot-primary{background:var(--primary)}.dot-good{background:var(--status-good)}.dot-warn{background:var(--status-warn)}.dot-info{background:var(--info)}.dot-neutral{background:var(--ink-faint)}.timeline-row-label{color:var(--ink);white-space:nowrap;flex:none;font-size:13px;font-weight:600}.timeline-row-detail{min-width:0;color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12.5px;overflow:hidden}.evidence-columns{grid-template-columns:280px 1fr;align-items:start;gap:16px;display:grid}.evidence-list-col{flex-direction:column;gap:8px;min-width:0;display:flex}.evidence-search{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);padding:8px 10px;font-family:inherit;font-size:13px}.evidence-search:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.evidence-groups{border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:6px;max-height:60vh;padding:4px;display:flex;overflow-y:auto}.evidence-group-head{cursor:pointer;text-align:left;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:8px;font-family:inherit;display:flex}.evidence-group-head:hover{background:var(--hover)}.evidence-group-caret{color:var(--ink-faint);flex:none;font-size:11px;transition:transform .15s}.evidence-group-caret.open{transform:rotate(90deg)}.evidence-group-label{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12.5px;font-weight:600;overflow:hidden}.evidence-group-count{color:var(--ink-soft);background:var(--canvas);border-radius:999px;padding:1px 7px;font-size:11px}.evidence-group-body{flex-direction:column;gap:1px;padding-left:4px;display:flex}.evidence-list-item{text-align:left;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;flex-direction:column;gap:2px;width:100%;padding:6px 8px;font-family:inherit;display:flex}.evidence-list-item:hover:not(:disabled){background:var(--hover)}.evidence-list-item.active{background:var(--selected)}.evidence-list-item:disabled{cursor:not-allowed;opacity:.55}.evidence-list-name{color:var(--ink);word-break:break-all;font-size:12.5px}.evidence-list-meta{color:var(--ink-faint);font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:11px;display:flex}.evidence-list-flag{color:var(--status-warn);background:var(--status-warn-soft);border-radius:999px;padding:0 6px}.evidence-content-col{border:1px solid var(--line);border-radius:8px;flex-direction:column;min-width:0;min-height:120px;display:flex}.evidence-content-col>.muted{padding:16px 20px}.evidence-toolbar{border-bottom:1px solid var(--line);background:var(--canvas);border-radius:8px 8px 0 0;align-items:center;gap:10px;padding:10px 16px;display:flex}.evidence-toolbar-name{min-width:0;font-size:12.5px;font-family:var(--font-mono);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.evidence-toolbar-size{color:var(--ink-faint);white-space:nowrap;font-size:12px}.evidence-toolbar-actions{flex:none;gap:6px;display:flex}.evidence-toolbar-btn{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:#fff;padding:4px 10px;font-family:inherit;font-size:12px}.evidence-toolbar-btn:hover{border-color:var(--primary);color:var(--primary)}.evidence-content-body{max-height:60vh;padding:14px 16px;overflow-y:auto}.evidence-truncated-hint{background:var(--status-warn-soft);color:var(--status-warn);white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:11px;display:inline-block}.evidence-pre{white-space:pre-wrap;word-break:break-all;font-size:12px;font-family:var(--font-mono);color:var(--ink);margin:0;overflow-x:auto}.evidence-clip-gap{background:var(--canvas);border-radius:var(--radius-sm);color:var(--ink-soft);align-items:center;gap:10px;margin:8px 0;padding:8px 12px;font-size:12px;display:flex}.evidence-expand-btn{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--primary);cursor:pointer;background:#fff;padding:3px 10px;font-family:inherit;font-size:12px}.evidence-expand-btn:hover{border-color:var(--primary);background:var(--primary-soft)}.plan-history{flex-direction:column;gap:12px;display:flex}.plan-history-list{flex-wrap:wrap;gap:8px;display:flex}.plan-history-item{border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;border-radius:999px;padding:6px 14px;font-family:inherit;font-size:12px}.plan-history-item:hover{border-color:var(--primary)}.plan-history-item.active{background:var(--primary);border-color:var(--primary);color:#fff}.plan-history-detail{border:1px solid var(--line);border-radius:8px;padding:12px 14px}.plan-stage-seq{color:var(--ink);overflow-wrap:anywhere;font-size:13px}.coverage-header{flex-direction:column;gap:8px;padding:20px 24px;display:flex}.coverage-header-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.refresh-btn{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--primary);cursor:pointer;white-space:nowrap;background:#fff;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:600}.refresh-btn:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft)}.refresh-btn:disabled{opacity:.6;cursor:not-allowed}.coverage-donut-card{justify-content:center}.coverage-donut-row{align-items:center;gap:12px;display:flex}.donut-text{fill:var(--ink);font-family:inherit;font-size:16px;font-weight:700}.coverage-donut-legend{color:var(--ink-soft);flex-direction:column;gap:6px;font-size:12px;display:flex}.coverage-legend-item{white-space:nowrap;align-items:center;gap:6px;display:flex}.coverage-legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.dot-active{background:#b9c9c2}.dot-closed{background:var(--primary)}.quality-row{grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px;display:grid}.coverage-usage-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.usage-card-note{font-size:11px}.usage-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);flex-direction:column;gap:10px;min-width:0;padding:14px 16px;display:flex}.usage-card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.usage-card-title{color:var(--ink);font-size:13px;font-weight:600}.usage-card-badge{color:var(--ink-soft);background:var(--canvas);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px}.bucket-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.bucket-row{grid-template-columns:minmax(0,1fr) 64px 28px 42px;align-items:center;gap:8px;font-size:12px;display:grid}.bucket-label{text-overflow:ellipsis;white-space:nowrap;color:var(--ink);overflow:hidden}.bucket-bar-track{background:var(--line);border-radius:3px;height:6px;overflow:hidden}.bucket-bar-fill{background:var(--primary);border-radius:3px;height:100%;display:block}.bucket-count{text-align:right;color:var(--ink);font-weight:600}.bucket-pct{text-align:right;color:var(--ink-soft)}.table-wrap{overflow-x:auto}@media (width<=900px){.metrics-row{grid-template-columns:repeat(2,minmax(120px,1fr))}.artifact-section,.evidence-columns{grid-template-columns:1fr}.quality-row{grid-template-columns:repeat(2,minmax(120px,1fr))}.coverage-usage-grid{grid-template-columns:1fr}}.login-page{background:var(--canvas);justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-card{flex-direction:column;gap:14px;width:100%;max-width:320px;padding:32px 28px;display:flex}.login-brand{flex-direction:column;gap:2px;margin-bottom:8px;display:flex}.login-brand .brand-name{color:var(--ink)}.login-brand .brand-sub{color:var(--ink-soft)}.login-label{color:var(--ink-soft);font-size:13px}.login-card input[type=password],.login-card input[type=text]{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);padding:10px 12px;font-family:inherit;font-size:14px}.login-card input[type=password]:focus,.login-card input[type=text]:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.login-card .form{max-width:none}.login-card .form-actions button{width:100%}.login-card button{border-radius:var(--radius-sm);background:var(--primary);color:#fff;cursor:pointer;border:none;padding:10px 12px;font-family:inherit;font-size:14px}.login-card button:disabled{opacity:.5;cursor:not-allowed}.login-error{margin:0}.sidebar-footer{flex-direction:column;gap:10px;margin-top:auto;padding:16px 24px 0;display:flex}.sidebar-user{justify-content:space-between;align-items:center;gap:8px;display:flex}.sidebar-user-name{text-overflow:ellipsis;white-space:nowrap;color:#fff;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.role-badge{white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;height:20px;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex}.role-badge-admin{color:#fff;background:#ffffff29}.role-badge-member{border:1px solid var(--sidebar-line);color:var(--sidebar-ink-soft);background:0 0}.run-table .role-badge-admin{background:var(--primary-soft);color:var(--primary)}.run-table .role-badge-member{background:var(--canvas);color:var(--ink-soft);border-color:#0000}.logout-button{border:1px solid var(--sidebar-line);border-radius:var(--radius-sm);width:100%;color:var(--sidebar-ink);cursor:pointer;background:0 0;padding:8px 12px;font-family:inherit;font-size:13px}.logout-button:hover{background:var(--sidebar-hover);color:#fff}.logout-button:disabled{opacity:.5;cursor:not-allowed}.success-banner{background:var(--status-good-soft);color:var(--status-good);border:1px solid #b7e0c4;border-radius:8px;padding:10px 16px;font-size:13px}.form{flex-direction:column;gap:14px;max-width:480px;display:flex}.form-row{flex-wrap:wrap;gap:12px;display:flex}.form-field{flex-direction:column;flex:1;gap:6px;min-width:160px;display:flex}.form-label{color:var(--ink-soft);font-size:12.5px}.form-input{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);background:#fff;width:100%;padding:9px 11px;font-family:inherit;font-size:13.5px}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.form-actions{align-items:center;gap:10px;display:flex}.form-actions button,.form-row>button{border-radius:var(--radius-sm);background:var(--primary);color:#fff;cursor:pointer;white-space:nowrap;border:none;padding:9px 16px;font-family:inherit;font-size:13.5px;font-weight:600}.form-actions button:hover:not(:disabled),.form-row>button:hover:not(:disabled){filter:brightness(1.08)}.form-actions button:disabled,.form-row>button:disabled{opacity:.5;cursor:not-allowed}.form-actions button:not(:first-child){color:var(--ink-soft);border:1px solid var(--line);background:#fff}.form-actions button:not(:first-child):hover:not(:disabled){border-color:var(--primary);color:var(--primary);filter:none}.form-row{align-items:flex-end}.form-row>.form-input{flex:1;min-width:200px}.input-with-button{gap:8px;display:flex}.input-with-button .form-input{flex:1}.input-with-button button{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--primary);cursor:pointer;white-space:nowrap;background:#fff;flex-shrink:0;padding:9px 14px;font-family:inherit;font-size:13px}.input-with-button button:hover{border-color:var(--primary);background:var(--primary-soft)}.table-action-btn{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:#fff;padding:5px 10px;font-family:inherit;font-size:12px}.table-action-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.table-action-btn:disabled{opacity:.5;cursor:not-allowed}.table-action-btn.danger:hover:not(:disabled){border-color:var(--status-bad);color:var(--status-bad);background:var(--status-bad-soft)}.users-row-actions{white-space:nowrap;flex-wrap:wrap;gap:6px;display:flex}.users-expand-row td{background:var(--canvas);padding:14px 16px}.inline-panel{flex-direction:column;gap:10px;max-width:480px;display:flex}.inline-panel code{border:1px solid var(--line);font-size:12.5px;font-family:var(--font-mono);background:#fff;border-radius:4px;padding:2px 6px}.modal-overlay{z-index:100;background:#0f171573;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-card{background:var(--paper);border-radius:var(--radius);flex-direction:column;gap:16px;width:100%;max-width:560px;max-height:90vh;padding:24px;display:flex;overflow-y:auto;box-shadow:0 8px 32px #0f17153d}.modal-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.modal-title{color:var(--ink);overflow-wrap:anywhere;margin:0;font-size:16px;font-weight:600}.modal-close{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:2px 4px;font-size:20px;line-height:1}.modal-close:hover{color:var(--ink)}.modal-warning{color:var(--status-warn);background:var(--status-warn-soft);border-radius:var(--radius-sm);margin:0;padding:8px 12px;font-size:12.5px}.modal-field{flex-direction:column;gap:8px;display:flex}.modal-field-label{color:var(--ink-soft);font-size:12.5px;font-weight:600}.command-box{background:var(--canvas);border:1px solid var(--line);border-radius:var(--radius-sm);align-items:center;gap:8px;padding:8px 10px;display:flex}.command-text{white-space:pre;min-width:0;font-size:12.5px;font-family:var(--font-mono);color:var(--ink);flex:1;overflow-x:auto}.copy-btn{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--primary);cursor:pointer;white-space:nowrap;background:#fff;flex-shrink:0;padding:5px 12px;font-family:inherit;font-size:12px}.copy-btn:hover{border-color:var(--primary);background:var(--primary-soft)}.command-tabs{gap:6px;display:flex}.command-tab{border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:#fff;border-radius:999px;padding:5px 12px;font-family:inherit;font-size:12px}.command-tab:hover{border-color:var(--primary);color:var(--primary)}.command-tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.tone-neutral{color:var(--ink-soft)}.tone-primary{color:var(--primary)}.tone-good{color:var(--status-good)}.tone-warn{color:var(--status-warn)}.tone-bad{color:var(--status-bad)}.tone-muted{color:var(--ink-faint)}.ui-btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;height:36px;padding:0 16px;font-family:inherit;font-size:13.5px;font-weight:600;transition:filter .15s,border-color .15s,background-color .15s;display:inline-flex}.ui-btn:disabled{opacity:.55;cursor:not-allowed}.ui-btn-primary{background:var(--primary);color:#fff}.ui-btn-primary:hover:not(:disabled){filter:brightness(1.08)}.ui-btn-secondary{color:var(--ink);border-color:var(--line);background:#fff}.ui-btn-secondary:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.ui-btn-danger{background:var(--status-bad);color:#fff}.ui-btn-danger:hover:not(:disabled){filter:brightness(1.08)}.ui-btn-ghost{color:var(--ink-soft);background:0 0;border-color:#0000}.ui-btn-ghost:hover:not(:disabled){background:var(--hover);color:var(--ink)}.ui-btn-spinner{flex-shrink:0}.table-action-btn-sm{border-radius:var(--radius-sm);height:28px;padding:0 12px;font-size:12px}.retry-btn{height:26px;margin-left:10px;padding:0 10px;font-size:12px}.ui-field{border:1px solid var(--line);border-radius:var(--radius-sm);height:36px;color:var(--ink);background:#fff;width:100%;padding:0 11px;font-family:inherit;font-size:13.5px}.ui-textarea{resize:vertical;height:auto;min-height:64px;padding:9px 11px;line-height:1.5}.ui-field:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.ui-field:disabled{background:var(--canvas);color:var(--ink-faint);cursor:not-allowed}.ui-badge{white-space:nowrap;border-radius:999px;align-items:center;gap:4px;height:22px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.ui-badge-neutral{background:var(--canvas);color:var(--ink-soft)}.ui-badge-primary{background:var(--primary-soft);color:var(--primary)}.ui-badge-good{background:var(--status-good-soft);color:var(--status-good)}.ui-badge-warn{background:var(--status-warn-soft);color:var(--status-warn)}.ui-badge-bad{background:var(--status-bad-soft);color:var(--status-bad)}.ui-icon{flex-shrink:0}.ui-spin{animation:.8s linear infinite ui-spin}@keyframes ui-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.ui-spin{animation:none}}.ui-chevron{color:var(--ink-faint);flex-shrink:0;transition:transform .15s}.ui-chevron.open{transform:rotate(90deg)}.confirm-body{color:var(--ink);font-size:13.5px;line-height:1.6}.toast-stack{top:calc(16px + env(safe-area-inset-top,0px));z-index:200;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;right:16px}.toast-item{border-radius:var(--radius-sm);background:var(--paper);border:1px solid var(--line);pointer-events:auto;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:600;animation:.18s toast-in;display:flex;box-shadow:0 8px 24px #0f171529}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.toast-success{color:var(--status-good);border-color:#b7e0c4}.toast-error{color:var(--status-bad);border-color:#f0b8b8}.empty-state-block{color:var(--ink-soft);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:28px 16px;display:flex}.empty-state-icon{color:var(--ink-faint);margin-bottom:4px}.empty-state-title{color:var(--ink);font-size:13.5px;font-weight:600}.empty-state-desc{color:var(--ink-faint);max-width:320px;font-size:12.5px}.empty-state-action{margin-top:6px}.ui-skel{background:linear-gradient(90deg, var(--line) 25%, #eef1f0 37%, var(--line) 63%);background-size:400% 100%;border-radius:4px;animation:1.4s infinite ui-skel-shimmer}@keyframes ui-skel-shimmer{0%{background-position:100%}to{background-position:0}}@media (prefers-reduced-motion:reduce){.ui-skel{background:var(--line);animation:none}}.skel-row td{padding:14px 16px}.skel-card{gap:10px!important}.ui-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;line-height:1;display:inline-flex}.nav-item{align-items:center;gap:8px;display:flex}.nav-badge{background:var(--status-bad);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.section-title-row{cursor:pointer;font:inherit;text-align:left;background:0 0;border:none;align-items:center;gap:8px;width:100%;margin:0;padding:0;display:flex}.section-title-row .section-title{border-left:none;flex:1;padding-left:0}.section-title-extra{flex-shrink:0}.section-body{flex-direction:column;gap:14px;margin-top:14px;display:flex}.pending-card{border-left:3px solid var(--status-warn)}.pending-card-head{flex-wrap:wrap}.pending-step-title{color:var(--ink);font-size:14px;font-weight:600}.pending-waiting{color:var(--ink-soft);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12.5px}.pending-artifact{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--canvas)}.pending-artifact-toggle{text-align:left;width:100%;font-size:12.5px;font-family:var(--font-mono);color:var(--primary);cursor:pointer;background:0 0;border:none;padding:10px 14px;display:block}.pending-artifact-body{border-top:1px solid var(--line);background:var(--paper);max-height:420px;padding:14px;overflow:auto}.pending-summary-block{flex-direction:column;gap:10px;display:flex}.pending-summary-row{align-items:baseline;gap:8px;font-size:13px;display:flex}.pending-summary-label{color:var(--ink-soft);flex-shrink:0;font-size:12px;font-weight:600}.pending-summary-value{color:var(--ink)}.pending-unresolved-list{color:var(--ink);flex-direction:column;gap:4px;margin:6px 0 0;padding-left:18px;font-size:13px;display:flex}.pending-assign-row{background:var(--canvas);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.pending-review-body{flex-direction:column;gap:12px;display:flex}.pending-assignees-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.pending-avatar-group{flex-wrap:wrap;gap:10px;display:flex}.pending-avatar-item{color:var(--ink);align-items:center;gap:6px;font-size:13px;display:flex}.pending-reassign-btn{margin-left:auto}.pending-note{color:var(--ink);background:var(--canvas);border-radius:var(--radius-sm);flex-wrap:wrap;gap:6px;padding:10px 12px;font-size:13px;display:flex}.pending-note-by{color:var(--ink-faint);font-size:12px}.pending-status-flow{border-radius:var(--radius-sm);background:var(--canvas);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.pending-status-flow.tone-warn{background:var(--status-warn-soft)}.pending-status-flow.tone-primary{background:var(--primary-soft)}.pending-status-flow.tone-good{background:var(--status-good-soft)}.pending-status-flow.tone-bad{background:var(--status-bad-soft)}.pending-status-label{font-size:13px;font-weight:600}.pending-status-detail{color:var(--ink-soft);font-size:12.5px}.pending-decision-record{color:var(--ink);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.pending-hint{color:var(--ink-faint);margin:0;font-size:12.5px}.pending-decide-form{border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.pending-decide-actions{flex-wrap:wrap;gap:8px;display:flex}.pending-discussion{border-top:1px solid var(--line);flex-direction:column;gap:10px;padding-top:12px;display:flex}.pending-comment-list{flex-direction:column;gap:10px;max-height:320px;display:flex;overflow-y:auto}.pending-comment-item{gap:8px;display:flex}.pending-comment-body{flex:1;min-width:0}.pending-comment-meta{align-items:baseline;gap:8px;display:flex}.pending-comment-name{color:var(--ink);font-size:12.5px;font-weight:600}.pending-comment-time{color:var(--ink-faint);font-size:11.5px}.pending-comment-text{color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}.pending-comment-form{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.assign-modal-body{flex-direction:column;gap:14px;display:flex}.assign-user-list{border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:2px;max-height:240px;padding:6px;display:flex;overflow-y:auto}.assign-user-item{border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.assign-user-item:hover{background:var(--hover)}.assign-user-item input[type=checkbox]{flex-shrink:0}.inbox-table .inbox-title-cell{text-overflow:ellipsis;white-space:nowrap;max-width:320px;overflow:hidden}.inbox-note-cell{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.stage-card{padding-top:18px;position:relative}.stage-card-icon{display:inline-flex;position:absolute;top:12px;left:14px}.stage-card-icon~.stage-card-head{padding-left:22px}.stage-current-dot{background:var(--primary);border-radius:50%;width:12px;height:12px;animation:1.6s ease-in-out infinite stage-pulse;display:block}@keyframes stage-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.8)}}@media (prefers-reduced-motion:reduce){.stage-current-dot{animation:none}}.status-badge{gap:4px}.status-icon-combo{display:inline-flex;position:relative}.status-icon-dot{background:var(--status-warn);border:1.5px solid var(--paper);border-radius:50%;width:6px;height:6px;position:absolute;top:-1px;right:-2px}.run-list-table{table-layout:fixed;min-width:0}.run-list-table col.col-title,.run-list-table th.col-title,.run-list-table td.col-title{width:30%}.run-list-table col.col-route,.run-list-table th.col-route,.run-list-table td.col-route{width:12%}.run-list-table col.col-stage,.run-list-table th.col-stage,.run-list-table td.col-stage{width:8%}.run-list-table col.col-progress,.run-list-table th.col-progress,.run-list-table td.col-progress{width:9%}.run-list-table col.col-owner,.run-list-table th.col-owner,.run-list-table td.col-owner{width:7%}.run-list-table col.col-host,.run-list-table th.col-host,.run-list-table td.col-host{width:12%}.run-list-table col.col-status,.run-list-table th.col-status,.run-list-table td.col-status{width:14%}.run-list-table col.col-time,.run-list-table th.col-time,.run-list-table td.col-time{width:8%}@media (width<=1199px){.run-list-table .host-model-model{display:none}.run-list-table col.col-title,.run-list-table th.col-title,.run-list-table td.col-title{width:32%}.run-list-table col.col-route,.run-list-table th.col-route,.run-list-table td.col-route{width:11%}.run-list-table col.col-stage,.run-list-table th.col-stage,.run-list-table td.col-stage{width:7%}.run-list-table col.col-progress,.run-list-table th.col-progress,.run-list-table td.col-progress{width:8%}.run-list-table col.col-owner,.run-list-table th.col-owner,.run-list-table td.col-owner{width:6%}.run-list-table col.col-host,.run-list-table th.col-host,.run-list-table td.col-host{width:11%}.run-list-table col.col-status,.run-list-table th.col-status,.run-list-table td.col-status{width:16%}.run-list-table col.col-time,.run-list-table th.col-time,.run-list-table td.col-time{width:9%}}@media (width<=1099px){.run-list-table col.col-route,.run-list-table th.col-route,.run-list-table td.col-route{display:none}.run-list-table col.col-title,.run-list-table th.col-title,.run-list-table td.col-title{width:38%}.run-list-table col.col-stage,.run-list-table th.col-stage,.run-list-table td.col-stage{width:8%}.run-list-table col.col-progress,.run-list-table th.col-progress,.run-list-table td.col-progress{width:9%}.run-list-table col.col-owner,.run-list-table th.col-owner,.run-list-table td.col-owner{width:7%}.run-list-table col.col-host,.run-list-table th.col-host,.run-list-table td.col-host{width:12%}.run-list-table col.col-status,.run-list-table th.col-status,.run-list-table td.col-status{width:17%}.run-list-table col.col-time,.run-list-table th.col-time,.run-list-table td.col-time{width:9%}}.run-list-table td{padding-left:10px;padding-right:10px}.run-list-table td.run-title-cell{padding-left:16px;padding-right:16px}.run-list-table .progress-cell{min-width:0}.table-card-scroll{overflow-x:auto}.nowrap-cell{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.run-title-cell{min-width:240px}.run-title-cell .run-title,.run-title-cell .run-slug{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.num-cell{text-align:right;font-variant-numeric:tabular-nums}.time-cell{font-variant-numeric:tabular-nums}.route-cell-inner{align-items:center;gap:6px;min-width:0;max-width:100%;display:flex}.route-compact{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink);font-size:12.5px;overflow:hidden}.route-step-count{color:var(--ink-faint);white-space:nowrap;flex:none;font-size:11px}.host-model-cell{padding-top:8px;padding-bottom:8px;line-height:1.35}.host-model-host{text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:13px;overflow:hidden}.host-model-model{text-overflow:ellipsis;white-space:nowrap;color:var(--ink-faint);margin-top:2px;font-size:11px;overflow:hidden}.panel-skel{flex-direction:column;gap:8px;padding:4px 0;display:flex}.pending-assign-denied{white-space:nowrap}.table-card{overflow:visible}.table-card .run-table thead th,.table-wrap .run-table thead th{background:var(--paper);z-index:1;position:sticky;top:0}
