@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700;800&display=swap";:root{--paper:#f5f7f4;--panel:#fff;--ink:#17201d;--muted:#65716c;--line:#d8ded7;--line-strong:#bbc7c0;--signal:#087f72;--warning:#b7791f;--critical:#b42318;--mono:"IBM Plex Mono", "Cascadia Mono", Consolas, monospace;--sans:"IBM Plex Sans", Aptos, "Segoe UI", sans-serif;font-family:var(--sans);color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--signal);outline-offset:2px}#root{min-height:100vh}.app-shell{min-height:100vh;color:var(--ink);background:linear-gradient(90deg, #087f7214 1px, transparent 1px), linear-gradient(180deg, #087f720f 1px, transparent 1px), var(--paper);background-size:44px 44px}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:10;background:#ffffffe0;grid-template-columns:auto minmax(180px,1fr) minmax(260px,420px) auto;align-items:center;gap:16px;padding:18px 24px;display:grid;position:sticky;top:0}.brand-mark,.icon-button,.step-icon{border:1px solid var(--line-strong);background:var(--panel);width:40px;height:40px;color:var(--signal);place-items:center;display:inline-grid}.brand-mark{color:var(--paper);background:var(--ink)}.workspace-title p,.eyebrow,.strip-label{color:var(--muted);text-transform:uppercase;margin:0;font-size:12px;font-weight:700;line-height:1.2}.workspace-title h1,.panel-heading h2,.section-heading h2,.evidence-section h2{color:var(--ink);letter-spacing:0;margin:0}.workspace-title h1{font-size:22px;line-height:1.1}.topbar-search{border:1px solid var(--line);min-height:40px;color:var(--muted);background:#f9faf7;align-items:center;gap:10px;padding:0 14px;font-size:13px;display:flex}.icon-button,.primary-button,.secondary-button,.ghost-button,.wide-action,.rail-item{cursor:pointer;font:inherit;border-radius:6px}.icon-button:hover,.secondary-button:hover,.ghost-button:hover,.rail-item:hover,.wide-action:hover{border-color:var(--signal);color:var(--ink)}.status-strip{border-bottom:1px solid var(--line);background:var(--line);grid-template-columns:1.1fr 2fr .8fr 1.3fr;gap:1px;display:grid}.status-strip>div{background:#ffffffeb;min-height:74px;padding:14px 24px}.status-strip strong{margin-top:8px;font-size:15px;line-height:1.25;display:block}.workbench{grid-template-columns:250px minmax(0,1fr) 360px;min-height:calc(100vh - 145px);display:grid}.stage-rail,.evidence-panel{background:#ffffffeb}.stage-rail{border-right:1px solid var(--line);padding:20px 14px}.rail-heading{color:var(--ink);align-items:center;gap:10px;padding:0 10px 16px;font-weight:700;display:flex}.rail-item{width:100%;min-height:42px;color:var(--ink);text-align:left;background:0 0;border:1px solid #0000;grid-template-columns:12px 1fr auto;align-items:center;gap:10px;padding:0 10px;display:grid}.rail-dot{background:var(--muted);border-radius:99px;width:8px;height:8px}.rail-ready{background:var(--signal)}.rail-running{background:var(--warning)}.rail-queued{background:#96a19c}.rail-blocked{background:var(--critical)}.rail-item em{color:var(--muted);font-size:12px;font-style:normal}.rail-note{border:1px solid var(--line);color:var(--muted);background:#f7faf5;grid-template-columns:auto 1fr;gap:10px;margin:24px 8px 0;padding:14px;font-size:13px;line-height:1.35;display:grid}.rail-note p{margin:0}.workspace-panel{min-width:0;padding:24px}.panel-heading,.section-heading{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.panel-heading h2,.section-heading h2,.evidence-section h2{margin-top:4px;font-size:20px;line-height:1.15}.action-row{gap:10px;display:flex}.primary-button,.secondary-button,.ghost-button{border:1px solid var(--line-strong);align-items:center;gap:8px;min-height:38px;padding:0 14px;display:inline-flex}.primary-button{background:var(--signal);color:#fff;border-color:var(--signal)}.secondary-button,.ghost-button{background:var(--panel);color:var(--ink)}.pipeline-lane{gap:10px;margin-bottom:28px;display:grid}.pipeline-step{border:1px solid var(--line);background:var(--panel);grid-template-columns:36px 40px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:94px;padding:14px;display:grid}.pipeline-step h3{margin:0;font-size:16px;line-height:1.2}.pipeline-step p,.pipeline-step small{color:var(--muted);margin:5px 0 0;line-height:1.35;display:block}.pipeline-step small{font-family:var(--mono);font-size:12px}.step-index{width:26px;color:var(--muted);font-family:var(--mono);font-size:13px}.step-done{border-left:4px solid var(--signal)}.step-active{border-left:4px solid var(--warning)}.step-wait{border-left:4px solid #aeb7b2}.status{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:24px;padding:0 9px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.status-done,.status-ok,.status-ready{color:var(--signal);background:#087f721f}.status-active,.status-run,.status-running{color:#87520c;background:#b7791f24}.status-wait,.status-queued{color:#56635d;background:#edf1ee}.status-warn,.status-blocked{color:var(--critical);background:#b423181c}.sample-table{border:1px solid var(--line);background:var(--panel);overflow:hidden}.table-row{border-top:1px solid var(--line);grid-template-columns:.8fr .9fr .8fr .8fr 1.35fr .8fr;align-items:center;min-height:46px;display:grid}.table-row:first-child{border-top:none}.table-row span{overflow-wrap:anywhere;min-width:0;padding:8px 12px}.table-head{min-height:38px;color:var(--muted);text-transform:uppercase;background:#f3f6f1;font-size:12px;font-weight:800}.evidence-panel{border-left:1px solid var(--line);padding:20px}.run-card{border:1px solid var(--line-strong);color:#fff;background:#17201d;padding:18px}.run-card-head{color:#aee5d9;align-items:center;gap:10px;font-weight:700;display:flex}.run-card strong{font-family:var(--mono);margin:14px 0 8px;font-size:18px;display:block}.run-card p{color:#d7e4df;margin:0;line-height:1.45}.evidence-section{margin-top:24px}.artifact-list,.acceptance-list{gap:8px;margin-top:12px;display:grid}.artifact-row{border:1px solid var(--line);background:var(--panel);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:54px;padding:10px;display:grid}.artifact-row strong,.artifact-row span,.artifact-row em{display:block}.artifact-row strong{font-family:var(--mono);font-size:13px}.artifact-row span{color:var(--muted);font-size:12px}.artifact-row em{color:var(--muted);font-size:12px;font-style:normal}.acceptance-row{border:1px solid var(--line);background:var(--panel);grid-template-columns:auto 1fr;align-items:start;gap:9px;padding:10px;font-size:13px;line-height:1.35;display:grid}.acceptance-row.ok{color:var(--signal)}.acceptance-row.hold{color:var(--critical)}.acceptance-row span{color:var(--ink)}.wide-action{border:1px solid var(--line-strong);background:var(--panel);width:100%;min-height:44px;color:var(--ink);text-align:left;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-top:10px;padding:0 12px;display:grid}.wide-action.muted{color:var(--muted)}@media (width<=1180px){.workbench{grid-template-columns:220px minmax(0,1fr)}.evidence-panel{border-left:none;border-top:1px solid var(--line);grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.evidence-section{margin-top:0}}@media (width<=820px){.topbar{grid-template-columns:auto minmax(0,1fr) auto}.topbar-search{grid-column:1/-1}.status-strip,.workbench,.evidence-panel{grid-template-columns:1fr}.stage-rail,.evidence-panel{border:none;border-bottom:1px solid var(--line)}.pipeline-step,.table-row{grid-template-columns:1fr;gap:4px}.pipeline-step{align-items:start}.step-index,.step-icon{display:none}.panel-heading,.section-heading{display:grid}.action-row{width:100%}.primary-button,.secondary-button,.ghost-button{flex:1;justify-content:center}.table-head{display:none}.table-row span{grid-template-columns:86px minmax(0,1fr);gap:10px;padding:5px 12px;display:grid}.table-row span:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:800}}
