:root{--bg:#0a0c10;--bg-raised:#0e1218;--surface:#12161e;--surface-hover:#171d27;--sunken:#07090d;--border:#94a3be1c;--border-strong:#94a3be38;--text:#e7eaf1;--text-dim:#9aa4b5;--text-faint:#78839a;--accent:#5fd3b3;--accent-bright:#84e6cb;--accent-ink:#04241a;--accent-soft:#5fd3b317;--accent-ring:#5fd3b329;--danger:#ee9292;--danger-soft:#ee92921a;--info:#93b4f5;--info-soft:#93b4f51a;--font-sans:"Inter", "SF Pro Text", system-ui, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono:ui-monospace, "SF Mono", SFMono-Regular, "JetBrains Mono", Menlo, monospace;--radius-s:7px;--radius-m:10px;--radius-l:14px;--shadow-card:0 1px 0 #ffffff08 inset, 0 24px 48px -28px #02060acc;--shadow-pop:0 16px 40px -12px #02060ab3;--shadow-accent:0 6px 24px -6px #5fd3b359;--z-sticky:40;--z-toast:60;--ease:cubic-bezier(.22, .68, .32, 1);font-family:var(--font-sans);color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:radial-gradient(900px 480px at 12% -8%, #5fd3b30f, transparent 60%), radial-gradient(1100px 600px at 88% -12%, #5878be12, transparent 62%), var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-attachment:fixed;min-width:320px;margin:0}body:after{content:"";pointer-events:none;z-index:1;opacity:.028;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}::selection{color:#f2fbf7;background:#5fd3b347}html{scroll-behavior:smooth}*{scrollbar-width:thin;scrollbar-color:#2a3342 transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#2a3342;border-radius:4px}::-webkit-scrollbar-track{background:0 0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.eyebrow{font-family:var(--font-mono);color:var(--accent);letter-spacing:.2em;text-transform:uppercase;margin:0;font-size:11px;font-weight:500}h1{letter-spacing:-.022em;text-wrap:balance;margin:10px 0 8px;font-size:clamp(26px,3.4vw,34px);font-weight:650;line-height:1.15}h2{letter-spacing:-.01em;margin:0 0 12px;font-size:17px;font-weight:600}h3{margin:0 0 8px;font-size:15px;font-weight:600}h4{font-family:var(--font-mono);color:var(--text-faint);text-transform:uppercase;letter-spacing:.14em;margin:0 0 8px;font-size:11px;font-weight:500}p{color:var(--text-dim);max-width:68ch;line-height:1.65}code{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.86em}small{color:var(--text-faint);margin-top:6px;font-size:12px;display:block}button{background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-s);cursor:pointer;transition:background-color .18s var(--ease), border-color .18s var(--ease), color .18s var(--ease), transform .12s var(--ease), box-shadow .18s var(--ease);padding:8px 14px;font-family:inherit;font-size:14px}button:hover:not(:disabled){background:var(--surface-hover);border-color:#94a3be52}button:active:not(:disabled){transform:translateY(1px)scale(.99)}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--accent);color:var(--accent-ink);border-radius:var(--radius-s);border:1px solid #0000;padding:11px 20px;font-weight:650;box-shadow:inset 0 1px #ffffff38}.primary:hover:not(:disabled){background:var(--accent-bright);box-shadow:0 1px 0 #ffffff47 inset, var(--shadow-accent);border-color:#0000;transform:translateY(-1px)}.primary:active:not(:disabled){transform:translateY(0)scale(.99)}.primary:disabled{color:var(--text-faint);box-shadow:none;background:#26313c}.shell{z-index:2;max-width:1180px;margin:0 auto;padding:0 32px 88px;position:relative}.app-header{padding-bottom:36px}.topbar{z-index:var(--z-sticky);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border);background:#0a0c10c7;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:0 -32px;padding:14px 32px;display:flex;position:sticky;top:0}.wordmark{font-family:var(--font-mono);letter-spacing:.08em;color:var(--text);align-items:center;gap:9px;font-size:13px;font-weight:600;display:inline-flex}.wordmark-glyph{background:var(--accent);border-radius:3px;width:10px;height:10px;transform:rotate(45deg);box-shadow:0 0 12px #5fd3b3b3}.wordmark-sub{color:var(--text-faint);letter-spacing:.04em;font-weight:400}nav{background:var(--surface);border:1px solid var(--border);border-radius:999px;gap:2px;padding:3px;display:flex}nav button{color:var(--text-dim);background:0 0;border:0;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:500}nav button:hover:not(:disabled){color:var(--text);background:0 0}nav button.nav-active{background:var(--accent-soft);color:var(--accent-bright);box-shadow:0 0 0 1px var(--accent-ring) inset}.session-badge{color:var(--text-dim);align-items:center;gap:12px;font-size:13px;display:flex}.session-badge>span{font-family:var(--font-mono);font-size:12px}.session-badge button{color:var(--text-dim);border:1px solid var(--border);border-radius:var(--radius-s);background:0 0;padding:6px 12px;font-size:13px}.session-badge button:hover:not(:disabled){color:var(--text);border-color:var(--border-strong)}.session-warning{color:var(--danger)}.page-head{padding-top:40px}.page-sub{color:var(--text-faint);margin:0;font-size:14px}.login-panel{background:radial-gradient(700px 420px at 50% 18%,#5fd3b312,#0000 65%),radial-gradient(1000px 700px at 85% 90%,#5878be0f,#0000 60%);place-items:center;min-height:100dvh;padding:24px;display:grid;position:relative}.login-card{background:linear-gradient(180deg, var(--surface), var(--bg-raised));border:1px solid var(--border);width:100%;max-width:420px;box-shadow:var(--shadow-card), 0 0 0 1px #ffffff05;border-radius:16px;padding:40px 36px 36px}.login-card .eyebrow{letter-spacing:.2em}.login-card h1{margin:10px 0 12px;font-size:24px}.login-hint{color:var(--text-dim);margin:0 0 24px;font-size:14px;line-height:1.65}.login-card form{gap:16px;display:grid}.login-card label{gap:8px;max-width:none;margin:0;display:grid}.login-card .primary{width:100%;margin-top:6px}.form-error{color:var(--danger);margin:0;font-size:13px}.form-hint{color:var(--text-faint);margin:0;font-size:13px}label{color:var(--text-dim);max-width:520px;margin:18px 0;display:block}label>span{letter-spacing:.04em;color:var(--text-dim);margin-bottom:6px;font-size:12px;font-weight:500;display:block}input,select,textarea{background:var(--sunken);border:1px solid var(--border);width:100%;color:var(--text);border-radius:var(--radius-s);font:inherit;transition:border-color .18s var(--ease), box-shadow .18s var(--ease), background-color .18s var(--ease);margin-top:4px;padding:10px 13px;display:block}input::placeholder,textarea::placeholder{color:var(--text-faint)}input:hover,select:hover,textarea:hover{border-color:var(--border-strong)}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);background:#090c11;outline:none}textarea{font-family:var(--font-mono);font-size:13px;line-height:1.6}input[type=file]{cursor:pointer;padding:8px}input[type=radio],input[type=checkbox]{accent-color:var(--accent)}fieldset{border:1px solid var(--border);border-radius:var(--radius-m);margin:18px 0;padding:14px 16px}fieldset legend{color:var(--text-faint);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;padding:0 8px;font-size:11px}.transport-fieldset,.gates-fieldset{gap:10px;display:grid}.radio,.checkbox{color:var(--text);align-items:center;gap:10px;margin:0;font-size:14px;display:flex}.radio input,.checkbox input{width:auto;margin:0}.radio span,.checkbox span{letter-spacing:0;color:var(--text);font-size:14px}.layout{grid-template-columns:300px 1fr;gap:44px;padding-top:8px;display:grid}aside{border-right:1px solid var(--border);padding-right:28px}.aside-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.aside-header h2{margin:0}.aside-header button{color:var(--text-dim);border:1px solid var(--border);border-radius:var(--radius-s);background:0 0;padding:5px 10px;font-size:12px}.aside-header button:hover:not(:disabled){color:var(--text);border-color:var(--border-strong)}.scene-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.scene-list button{text-align:left;border:1px solid var(--border);width:100%;color:var(--text);border-radius:var(--radius-m);background:0 0;padding:13px 14px;position:relative}.scene-list button:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface)}.scene-list button.selected{border-color:var(--accent-ring);background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.scene-list button.selected strong{color:var(--accent-bright)}.scene-list button strong{font-family:var(--font-mono);font-size:13px;font-weight:600}.scene-list button small{font-family:var(--font-mono);font-size:11px}.run-panel{gap:4px;max-width:560px;display:grid}.run-panel .primary{justify-self:start}.status-pill{font-family:var(--font-mono);letter-spacing:.06em;border-radius:999px;align-items:center;gap:7px;padding:3px 11px;font-size:11px;font-weight:500;display:inline-flex}.status-pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.status-created,.status-submitting,.status-uploading,.status-incomplete{color:var(--text-dim);background:#94a3be1a}.status-running,.status-pending,.status-awaiting_ready{background:var(--accent-soft);color:var(--accent-bright)}.status-running:before,.status-pending:before{animation:pulse-dot 1.6s var(--ease) infinite}.status-completed,.status-enabled,.status-ready,.status-uploaded,.status-success{color:var(--accent-bright);background:#5fd3b324}.status-failed,.status-disabled{background:var(--danger-soft);color:var(--danger)}.status-installed{background:var(--info-soft);color:var(--info)}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.35}}.run-center{gap:20px;padding-top:8px;display:grid}.run-center-header{justify-content:space-between;align-items:center;display:flex}.run-center-header h2{margin:0}.run-form,section.run-status,section.run-timeline{background:linear-gradient(180deg, var(--surface), var(--bg-raised));border:1px solid var(--border);border-radius:var(--radius-l);box-shadow:var(--shadow-card);padding:22px 24px}.run-form{gap:6px;max-width:720px;display:grid}.run-form label{margin:8px 0}.run-form fieldset{margin:10px 0}.run-actions{gap:10px;margin-top:12px;display:flex}.run-meta{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin:0;display:grid}.run-meta div{gap:5px;display:grid}.run-meta dt{color:var(--text-faint);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;font-size:11px}.run-meta dd{color:var(--text);margin:0;font-size:14px}.run-meta code{background:var(--sunken);border:1px solid var(--border);border-radius:5px;padding:3px 8px}pre{color:#a9e5cf;background:var(--sunken);border:1px solid var(--border);border-radius:var(--radius-m);font-family:var(--font-mono);padding:16px;font-size:12.5px;line-height:1.6;overflow:auto}details summary{cursor:pointer;color:var(--text-dim);padding:4px 0;font-size:13px}details summary:hover{color:var(--text)}.timeline{gap:10px;margin:0;padding:0;list-style:none;display:grid}.timeline-empty{color:var(--text-faint);padding:12px 0;font-size:14px}.timeline-item{background:var(--sunken);border:1px solid var(--border);border-radius:var(--radius-m);animation:rise-in .35s var(--ease) both;border-left-width:2px;gap:4px;padding:12px 14px;display:grid}.timeline-info{border-left-color:var(--info)}.timeline-success{border-left-color:var(--accent);background:#5fd3b30d}.timeline-error{border-left-color:var(--danger);background:#ee92920f}.timeline-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.timeline-head strong{color:var(--text);font-size:13.5px;font-weight:600}.timeline-head time{color:var(--text-faint);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:11px}.timeline-item p{color:#8fd7bd;font-family:var(--font-mono);margin:0;font-size:12px}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.run-timeline ol,ol.run-timeline{gap:10px;margin:0;padding:0;list-style:none;display:grid}.timeline-type{color:var(--text);font-size:13px;font-weight:600}.timeline-sequence{color:var(--text-faint);font-family:var(--font-mono);margin-left:8px;font-size:11px}.timeline-payload{margin:6px 0 0}table.run-list,.run-list{border-collapse:collapse;width:100%}.run-list th{text-align:left;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--text-faint);border-bottom:1px solid var(--border-strong);padding:10px 12px;font-size:11px;font-weight:500}.run-list td{border-bottom:1px solid var(--border);padding:12px;font-size:14px}.run-list tbody tr{transition:background-color .15s var(--ease)}.run-list tbody tr:hover{background:#94a3be0a}.run-list .run-status{box-shadow:none;color:var(--text-dim);font-family:var(--font-mono);letter-spacing:.06em;background:#94a3be1a;border:0;border-radius:999px;padding:3px 11px;font-size:11px;display:inline-flex}.run-list .run-status-completed,.run-list .run-status-succeeded{color:var(--accent-bright);background:#5fd3b324}.run-list .run-status-running,.run-list .run-status-pending{background:var(--accent-soft);color:var(--accent-bright)}.run-list .run-status-failed{background:var(--danger-soft);color:var(--danger)}.run-facts{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin:0 0 20px;display:grid}.run-facts div{gap:5px;display:grid}.run-facts dt{color:var(--text-faint);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;font-size:11px}.run-facts dd{color:var(--text);margin:0;font-size:14px}.run-facts code{background:var(--sunken);border:1px solid var(--border);border-radius:5px;padding:3px 8px}.admin-panel{gap:20px;max-width:980px;padding-top:8px;display:grid}.admin-panel>section>header{border:0;padding:0}.admin-card{background:linear-gradient(180deg, var(--surface), var(--bg-raised));border:1px solid var(--border);border-radius:var(--radius-l);box-shadow:var(--shadow-card);gap:16px;padding:24px;display:grid}.admin-card header{border:0;padding:0}.admin-card header h3{margin:0}.admin-card header p{margin:4px 0 0;font-size:13.5px}.upload-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.upload-empty{color:var(--text-faint);padding:12px 0;font-size:14px}.file-input{border:1px dashed var(--border-strong);border-radius:var(--radius-m);background:var(--sunken);color:var(--text-dim);cursor:pointer;flex-direction:column;gap:8px;padding:20px;font-size:13.5px;transition:border-color .15s,background .15s,color .15s;display:flex}.file-input:hover{border-color:var(--accent);color:var(--text);background:var(--accent-soft)}.file-input:has(input:focus-visible){border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.file-input input[type=file]{color:var(--text-faint);font-family:var(--font-mono);background:0 0;border:0;padding:0;font-size:12px}.file-input input[type=file]::file-selector-button{border:1px solid var(--border-strong);border-radius:var(--radius-s);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;margin-right:10px;padding:5px 12px;transition:border-color .15s}.file-input input[type=file]::file-selector-button:hover{border-color:var(--accent)}.file-input input[type=file]:disabled{cursor:not-allowed;opacity:.5}.upload-row{border:1px solid var(--border);border-radius:var(--radius-m);background:var(--sunken);grid-template-columns:1fr 1fr;gap:16px;padding:14px 16px;display:grid}.upload-row strong{color:var(--text);font-family:var(--font-mono);font-size:13px}.upload-row p{color:var(--text-dim);margin:6px 0 0;font-size:13px}.upload-row small{margin-top:4px}.validation-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.validation-list li{border:1px solid var(--border);border-radius:var(--radius-m);background:var(--sunken);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:13.5px;display:flex}.publish-form,.install-form{gap:12px;display:grid}.publish-form label,.install-form label{margin:0}.publish-form .form-hint{grid-column:1/-1}.installation-list-header{justify-content:space-between;align-items:center;display:flex}.installation-table{border-collapse:collapse;width:100%}.installation-table th{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--text-faint);border-bottom:1px solid var(--border-strong);text-align:left;padding:10px 12px;font-size:11px;font-weight:500}.installation-table td{border-bottom:1px solid var(--border);padding:12px;font-size:14px}.installation-table tbody tr{transition:background-color .15s var(--ease)}.installation-table tbody tr:hover{background:#94a3be0a}.installation-table code{background:var(--sunken);border:1px solid var(--border);border-radius:5px;padding:2px 7px;font-size:12px}.schema-form{gap:4px;max-width:640px;display:grid}.schema-field{margin-bottom:4px}.schema-radio{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.schema-radio .radio{border:1px solid var(--border);background:var(--sunken);transition:border-color .15s var(--ease), background-color .15s var(--ease);border-radius:999px;padding:6px 14px;font-size:13px}.schema-radio .radio:hover{border-color:var(--border-strong)}.schema-radio .radio:has(input:checked){border-color:var(--accent-ring);background:var(--accent-soft)}.preset-form,.preset-content-editor{gap:14px;max-width:720px;display:grid}.preset-form .primary,.preset-content-editor .primary{justify-self:start}.editor-fields{gap:4px;display:grid}.editor-actions{align-items:center;gap:10px;display:flex}.shell-wiring{border-top:1px solid var(--border);margin-top:48px;padding-top:32px}.toast-viewport{z-index:var(--z-toast);gap:10px;max-width:360px;display:grid;position:fixed;bottom:24px;right:24px}.toast{border-radius:var(--radius-m);border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-pop);animation:toast-in .28s var(--ease) both;background:#12161eeb;border-left-width:2px;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.toast-body strong{color:var(--text);font-size:13.5px}.toast-body p{color:var(--text-dim);margin:5px 0 0;font-size:13px;line-height:1.5}.toast button{color:var(--text-faint);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:16px;line-height:1.4}.toast button:hover:not(:disabled){color:var(--text);background:0 0}.toast-success{border-left-color:var(--accent)}.toast-error{border-left-color:var(--danger)}.toast-info{border-left-color:var(--info)}.error-fallback{border-radius:var(--radius-l);background:#ee92920d;border:1px solid #ee92924d;margin:24px 0;padding:28px 32px}.error-fallback h2{color:var(--danger)}.error-fallback p{color:#f0c6c6}.run-result-hint{color:var(--text-dim);margin-top:12px;font-size:13.5px}.run-result-hint code{background:var(--sunken);border:1px solid var(--border);border-radius:5px;padding:3px 8px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=720px){.shell{padding:0 20px 64px}.topbar{flex-direction:column;align-items:flex-start;margin:0 -20px;padding:12px 20px}.layout{grid-template-columns:1fr;gap:28px}aside{border-right:0;border-bottom:1px solid var(--border);padding:0 0 24px}.upload-row{grid-template-columns:1fr}.toast-viewport{max-width:none;left:16px;right:16px}}.tasks-panel{gap:20px;padding-top:8px;display:grid}.tasks-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.tasks-header h2{margin:0}.tasks-header label{width:100%;max-width:220px;margin:0}.tasks-header label>span{margin-bottom:4px}.task-empty{color:var(--text-faint);padding:12px 0;font-size:14px}.task-actions{gap:8px;display:flex}.task-actions button{border-radius:var(--radius-s);padding:5px 12px;font-size:12.5px}.task-actions button:disabled{opacity:.45;cursor:not-allowed}.task-pagination{align-items:center;gap:12px;margin-top:4px;display:flex}.task-pagination button{padding:6px 14px;font-size:13px}.task-pagination .page-hint{color:var(--text-faint);font-size:13px}.run-list .run-status-created,.run-list .run-status-cancelled,.run-list .run-status-expired{color:var(--text-dim);background:#94a3be1a}.run-list .run-status-assigned,.run-list .run-status-in_progress,.run-list .run-status-waiting_user,.run-list .run-status-waiting_approval{background:var(--accent-soft);color:var(--accent-bright)}.run-list .run-status-completed{color:var(--accent-bright);background:#5fd3b324}.run-list .run-status-rejected,.run-list .run-status-failed{background:var(--danger-soft);color:var(--danger)}.panel{background:linear-gradient(180deg, var(--surface), var(--bg-raised));border:1px solid var(--border);border-radius:var(--radius-l);box-shadow:var(--shadow-card);padding:22px 24px}.panel h3{margin:0 0 12px}.panel p{margin:0 0 8px}.panel p:last-child{margin-bottom:0}.projects-panel{gap:20px;padding-top:8px;display:grid}.projects-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.projects-header h2{margin:0}.projects-header label{width:100%;max-width:220px;margin:0}.projects-header label>span{margin-bottom:4px}.project-link{color:var(--accent-bright);text-align:left;background:0 0;border:0;padding:0;font-size:14px}.project-link:hover:not(:disabled){color:var(--accent);background:0 0;text-decoration:underline}.project-meta,.project-desc{margin:0 0 6px}.progress{align-items:center;gap:8px;min-width:150px;display:inline-flex}.progress-track{background:var(--sunken);border:1px solid var(--border);border-radius:999px;flex:1;height:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, #5fd3b38c, var(--accent-bright));border-radius:999px;height:100%;display:block}.progress-value{color:var(--text-dim);font-family:var(--font-mono);white-space:nowrap;font-size:12px}.risk-badge,.acc-badge{font-family:var(--font-mono);letter-spacing:.06em;white-space:nowrap;border-radius:999px;align-items:center;padding:3px 10px;font-size:11px;font-weight:500;display:inline-flex}.risk-high,.acc-not-passed,.risk-alert-sev.risk-sev-high{background:var(--danger-soft);color:var(--danger)}.risk-normal{background:var(--info-soft);color:var(--info)}.risk-none{color:var(--text-faint);background:#94a3be1a}.stage-stepper{gap:8px;margin:0 0 14px;padding:0;list-style:none;display:grid}.stage-step{border-radius:var(--radius-m);border:1px solid var(--border);background:var(--sunken);color:var(--text-faint);align-items:center;gap:10px;padding:8px 12px;display:flex}.stage-dot{background:var(--border-strong);border-radius:50%;flex:none;width:9px;height:9px}.stage-label{font-family:var(--font-mono);font-size:12.5px}.stage-step.stage-done{border-color:var(--border)}.stage-step.stage-done .stage-dot{background:var(--accent)}.stage-step.stage-done .stage-label{color:var(--text-dim)}.stage-step.stage-active{border-color:var(--accent-ring);background:var(--accent-soft)}.stage-step.stage-active .stage-dot{background:var(--accent-bright);box-shadow:0 0 0 4px var(--accent-ring)}.stage-step.stage-active .stage-label{color:var(--accent-bright)}.project-actions{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.project-actions .stage-hint{color:var(--text-faint);font-size:13px}.risk-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.risk-item{border:1px solid var(--border);border-radius:var(--radius-m);background:var(--sunken);align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.risk-body{gap:4px;display:grid}.risk-body p{color:var(--text);margin:0;font-size:14px}.risk-body small{color:var(--text-faint);margin:0}.acceptance-summary{flex-wrap:wrap;gap:18px;margin:0 0 12px;padding:0;list-style:none;display:flex}.acceptance-summary li{color:var(--text-dim);font-size:13.5px}.acc-count{font-family:var(--font-mono);margin-right:6px;font-weight:600}.acc-passed{color:var(--accent-bright)}.acc-not-passed{color:var(--danger)}.acc-pending{color:var(--text-dim)}.acceptance-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.acceptance-item{border:1px solid var(--border);border-radius:var(--radius-m);background:var(--sunken);align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.acceptance-body{gap:4px;display:grid}.acceptance-body strong{font-size:14px;font-weight:600}.acceptance-body small{color:var(--text-faint);margin:0}.dashboard{gap:20px;padding-top:8px;display:grid}.dashboard-header{flex-wrap:wrap;align-items:baseline;gap:14px;display:flex}.dashboard-header h2{margin:0}.dashboard-sub{color:var(--text-faint);margin:0;font-size:13px}.dashboard-row{gap:12px;display:grid}.formula-hint{color:var(--text-faint);font-size:12px;font-family:var(--font-mono)}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.kpi-card{background:var(--sunken);border:1px solid var(--border);border-radius:var(--radius-m);gap:6px;padding:16px;display:grid}.kpi-label{color:var(--text-faint);letter-spacing:.04em;font-size:12px}.kpi-value{color:var(--text);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:24px;font-weight:600}.risk-alert-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.risk-alert-item{border:1px solid var(--border);border-radius:var(--radius-m);background:var(--sunken);align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.risk-alert-sev{font-family:var(--font-mono);letter-spacing:.06em;white-space:nowrap;border-radius:999px;align-items:center;margin-top:2px;padding:3px 10px;font-size:11px;font-weight:500;display:inline-flex}.risk-alert-sev.risk-sev-med{background:var(--info-soft);color:var(--info)}.risk-alert-sev.risk-sev-low{color:var(--text-dim);background:#94a3be1a}.risk-alert-body{gap:4px;display:grid}.risk-alert-body strong{font-size:14px;font-weight:600}.risk-alert-body p{color:var(--text-dim);margin:0;font-size:13.5px}.risk-alert-body small{color:var(--text-faint);margin:0}@media (width<=720px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}
