:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--surface-1:#fcfcfb;--page:#f4f6f9;--text-primary:#0b0b0b;--text-secondary:#52514e;--muted:#898781;--grid:#e1e0d9;--border:#0b0b0b1a;--brand:#123a63;--brand-ink:#fff;--good:#0ca30c;--warning:#fab219;--serious:#ec835a;--critical:#d03b3b;--stage1:#86b6ef;--stage2:#5598e7;--stage3:#2a78d6;--stage4:#256abf}*{box-sizing:border-box}html,body{background:var(--page);color:var(--text-primary);margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif}.wrap{max-width:1160px;margin:0 auto;padding:28px 24px 60px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px;display:flex}.brand-badge{align-items:center;gap:12px;display:flex}.brand-badge .logo{background:var(--brand);width:34px;height:34px;color:var(--brand-ink);border-radius:8px;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.brand-badge h1{letter-spacing:-.01em;margin:0;font-size:17px}.brand-badge .sub{color:var(--text-secondary);margin-top:1px;font-size:12px}.asof{color:var(--muted);text-align:right;font-size:12px}.kpi-row{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px;display:grid}.kpi{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:16px 18px}.kpi .label{color:var(--text-secondary);margin-bottom:8px;font-size:12px}.kpi .value{font-variant-numeric:tabular-nums;font-size:28px;font-weight:700;line-height:1}.kpi .delta{color:var(--text-secondary);margin-top:6px;font-size:12px}.kpi .delta.good{color:var(--good);font-weight:600}.kpi .delta.warning{color:var(--warning);font-weight:600}.section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin:26px 0 10px;font-size:13px;font-weight:700}.milestones{gap:12px;padding-bottom:4px;display:flex;overflow-x:auto}.milestone{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;flex:1 1 0;min-width:220px;padding:14px 16px;position:relative}.milestone .m-title{margin-bottom:6px;font-size:13px;font-weight:600}.milestone .m-date{color:var(--muted);font-size:12px}.milestone .m-date.tbd{color:var(--warning);font-weight:600}.milestone-dot{border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:14px;margin-bottom:14px;padding:18px 20px}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:12px;display:flex}.card-head .ws-name{font-size:15px;font-weight:700}.card-head .ws-ref{color:var(--muted);margin-left:6px;font-size:11px;font-weight:500}.card-head .ws-status{color:var(--text-secondary);background:var(--page);border:1px solid var(--border);border-radius:4px;margin-left:8px;padding:2px 7px;font-size:11px;font-weight:600}.card-head .ws-target{color:var(--muted);font-size:12px}.card-head .ws-target.tbd{color:var(--warning);font-weight:600}.card-head .ws-target.overdue{color:var(--critical);font-weight:700}.pct-row{align-items:center;gap:12px;margin-bottom:14px;display:flex}.pct-track{background:var(--grid);border-radius:4px;flex:1;height:8px;overflow:hidden}.pct-fill{border-radius:4px;height:100%}.pct-num{font-variant-numeric:tabular-nums;text-align:right;width:44px;font-size:13px;font-weight:700}.pipeline{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.stage{text-align:center}.stage .bar{background:var(--grid);border-radius:5px;height:10px;position:relative}.stage .bar.active{background:var(--stage-color)}.stage .bar.current{box-shadow:0 0 0 2px var(--surface-1), 0 0 0 4px var(--stage-color)}.stage .lbl{color:var(--muted);margin-top:6px;font-size:10.5px;line-height:1.25}.stage .lbl.current{color:var(--text-primary);font-weight:700}.subtasks-note{color:var(--muted);margin-top:10px;font-size:11.5px}.subtasks-details{margin-top:10px}.subtasks-details>summary{cursor:pointer;color:var(--muted);-webkit-user-select:none;user-select:none;font-size:11.5px;list-style:none}.subtasks-details>summary::-webkit-details-marker{display:none}.subtasks-details>summary:before{content:"▸";margin-right:6px;transition:transform .12s;display:inline-block}.subtasks-details[open]>summary:before{transform:rotate(90deg)}.subtask-list{border-top:1px solid var(--grid);margin:8px 0 0;padding:0;list-style:none}.subtask-row{border-bottom:1px solid var(--grid);grid-template-columns:72px 1fr auto;align-items:baseline;gap:10px;padding:7px 0;font-size:12px;display:grid}.subtask-row:last-child{border-bottom:none}.subtask-key{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.subtask-summary{color:var(--text-secondary);line-height:1.35}.subtask-status{color:var(--text-secondary);white-space:nowrap;font-size:10.5px;font-weight:600}.subtask-status.has-stage{color:var(--stage-color,var(--text-secondary))}@media (max-width:640px){.subtask-row{grid-template-columns:1fr auto;grid-template-areas:"key status""summary summary"}.subtask-key{grid-area:key}.subtask-status{grid-area:status}.subtask-summary{grid-area:summary}}.footnote{color:var(--muted);border-top:1px solid var(--grid);margin-top:30px;padding-top:14px;font-size:11.5px;line-height:1.5}.footnote b{color:var(--text-secondary)}.setup-card{background:#fff8ea;border:1px solid #f3d98a;border-radius:12px;margin-bottom:22px;padding:14px 18px;font-size:12.5px;line-height:1.6}.setup-card .setup-title{color:#7a5b00;align-items:center;gap:6px;margin-bottom:6px;font-weight:700;display:flex}.setup-card ol{color:var(--text-secondary);margin:6px 0 0 18px;padding:0}.setup-card code{background:#fff;border:1px solid #f3d98a;border-radius:4px;padding:1px 5px;font-size:11.5px}.setup-card .done-tag{color:var(--good);font-weight:700}.anomaly{color:#9a5a00;background:#fff4e2;border:1px solid #f3d98a;border-radius:8px;margin-top:10px;padding:8px 10px;font-size:11.5px;line-height:1.5}.empty-state{background:var(--surface-1);border:1px solid var(--border);text-align:center;color:var(--text-secondary);border-radius:14px;padding:40px 30px;line-height:1.6}.empty-state code{background:var(--page);border:1px solid var(--border);border-radius:4px;padding:2px 6px}.login-wrap{background:radial-gradient(ellipse at 20% 0%, #123a6314, transparent 55%), var(--page);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--surface-1);border:1px solid var(--border);border-radius:14px;width:100%;max-width:420px;padding:28px 26px 22px}.login-card h1{margin:0;font-size:16px}.login-form{flex-direction:column;gap:8px;display:flex}.login-form label{color:var(--text-secondary);font-size:12px;font-weight:600}.login-form input{border:1px solid var(--border);color:var(--text-primary);background:#fff;border-radius:8px;padding:10px 12px;font-size:14px}.login-form input:focus{border-color:var(--brand);outline:2px solid #123a6340}.login-form button{background:var(--brand);color:var(--brand-ink);cursor:pointer;border:none;border-radius:8px;margin-top:8px;padding:11px 14px;font-size:14px;font-weight:600}.login-form button:disabled{opacity:.6;cursor:not-allowed}.login-banner{border-radius:8px;margin-bottom:14px;padding:10px 12px;font-size:13px;line-height:1.45}.login-banner.ok{color:#0a5c0a;background:#eef9ee;border:1px solid #b7e0b7}.login-banner.warn{color:#7a5b00;background:#fff4e2;border:1px solid #f3d98a}.login-footnote{color:var(--muted);margin:16px 0 0;font-size:11.5px;line-height:1.45}.sign-out{color:var(--muted);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline}.sign-out:hover{color:var(--text-secondary)}.asof-block{flex-direction:column;align-items:flex-end;gap:6px;display:flex}
