@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&family=Sora:wght@400;600;700&display=swap";:root{--paper:#f4f7fa;--panel:#fff;--ink:#0b2545;--soft:#5b6b7f;--faint:#a9b4c2;--line:#d5dde6;--line-soft:#e6ecf2;--stone:#c3cdd8;--wash:#f9fbfc;--teal:#0a6f78;--teal-ink:#08565d;--teal-tint:#d3f1f3;--brand-teal:#0e9aa7;--indigo:#0b2545;--indigo-deep:#06182e;--indigo-tint:#e4eef9;--ok:#14563a;--ok-tint:#e2f8ee;--warn:#6b3f00;--warn-ink:#7a4a00;--warn-tint:#fef1dc;--bad:#7a2113;--bad-tint:#fbe3e3;--unk:#3f4650;--unk-tint:#ecf0f4;--alert-bg:#fff7e8;--alert-line:#f0d9a8;--alert-ink:#5c3a00;--row-attn:#fff9ee;--row-bad:#fff5f2;--dot-ok:#3ddc97;--dot-bad:#d64545;--dot-warn:#f5a623;--dot-unk:#5b6b7f;--mono:"IBM Plex Mono", ui-monospace, monospace;--sans:"IBM Plex Sans", system-ui, -apple-system, sans-serif;--display:"Sora", "IBM Plex Sans", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--sans);background:var(--paper);color:var(--ink);margin:0}a{color:var(--teal);text-decoration:none}button{font-family:inherit}input[type=checkbox]{width:18px;height:18px;accent-color:var(--indigo);cursor:pointer}:focus-visible{outline:2.5px solid var(--indigo);outline-offset:2px}.mono{font-family:var(--mono)}.dash{color:var(--faint)}table{border-collapse:collapse;width:100%}th{letter-spacing:.04em;text-transform:uppercase;color:var(--soft);text-align:left;border-bottom:1px solid var(--line);padding:10px 12px;font-size:12px;font-weight:600}td{border-bottom:1px solid var(--line-soft);vertical-align:top;padding:12px;font-size:14px}.page{background:var(--paper);flex-direction:column;min-height:100vh;display:flex}.appbar{background:var(--panel);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:64px;padding:0 32px;display:flex}.appbar .left,.appbar .right{align-items:center;gap:16px;display:flex}.appbar .right{gap:20px}.logo{color:var(--ink);align-items:center;gap:9px;display:inline-flex}.logo svg{width:auto;height:24px;display:block}.wordmark{font-family:var(--display);letter-spacing:-.01em;font-size:22px;font-weight:700;line-height:1}.divider{background:var(--line);width:1px;height:24px}.pagelabel{font-size:15px;font-weight:500}.meta{color:var(--soft);white-space:nowrap;font-size:13px}.meta strong{color:var(--ink);font-weight:500}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:16px;padding:20px 24px;display:flex}.sec-head{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.sec-head h2{margin:0;font-size:18px;font-weight:600}.sec-meta{color:var(--soft);text-align:right;font-size:12px}.chip{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:13px;font-weight:500;display:inline-flex}.chip.ok{background:var(--ok-tint);color:var(--ok)}.chip.sys{background:var(--teal-tint);color:var(--teal)}.chip.hum{background:var(--indigo-tint);color:var(--indigo)}.chip.warn{background:var(--warn-tint);color:var(--warn)}.chip.bad{background:var(--bad-tint);color:var(--bad)}.chip.unk{background:var(--unk-tint);color:var(--soft)}.chip.open{background:var(--panel);color:var(--soft);border:1px dashed var(--faint)}.pill{border-radius:999px;padding:2px 8px;font-size:12px;font-weight:500}.pill.warn{background:var(--warn-tint);color:var(--warn-ink)}.pill.unk{background:var(--unk-tint);color:var(--soft)}.count{background:var(--indigo);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:26px;height:26px;padding:0 8px;font-size:13px;font-weight:600;display:inline-flex}.btn{white-space:nowrap;cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;height:40px;padding:0 16px;font-size:14px;font-weight:500;transition:background .12s;display:inline-flex}.btn.primary{background:var(--teal);border-color:var(--teal);color:#fff}.btn.primary:hover:not(:disabled){background:var(--teal-ink);border-color:var(--teal-ink)}.btn.ghost{background:var(--panel);border-color:var(--ink);color:var(--ink)}.btn.ghost:hover:not(:disabled){background:var(--wash)}.btn.go{background:var(--ok);border-color:var(--ok);color:#fff}.btn.go:hover:not(:disabled){background:#0f4530;border-color:#0f4530}.btn.sm{height:36px;padding:0 14px;font-size:13px}.btn.big{border-radius:10px;width:100%;height:48px;font-size:15px;font-weight:600}.btn.full{width:100%}.btn:disabled{background:var(--stone);border-color:var(--stone);color:#fff;cursor:not-allowed}.btn.ghost:disabled{background:var(--panel);border-color:var(--line);color:var(--faint)}.hero{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;padding:24px 32px 16px;display:flex}.hero h1{font-family:var(--display);letter-spacing:-.01em;margin:0;font-size:34px;font-weight:700;line-height:1.15}.hero .sub{color:var(--soft);max-width:92ch;margin-top:6px;font-size:14px}.stat-row{flex-wrap:wrap;gap:10px;display:flex}.stat{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:2px;min-width:120px;padding:12px 18px;display:flex}.stat .n{font-size:24px;font-weight:600}.stat .l{color:var(--soft);font-size:12px}.board-wrap{padding:0 32px 24px}.board{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:4px 16px 12px}.board tr.live td{background:var(--teal-tint)}.legend{flex-wrap:wrap;align-items:center;gap:14px;padding:14px 8px 4px;font-size:13px;display:flex}.legend .k{align-items:center;gap:6px;display:inline-flex}.legend .dot{border-radius:999px;flex:none;width:10px;height:10px}.legend .trail{color:var(--soft);margin-left:auto}.case-hero{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:32px;padding:28px 32px 20px;display:flex}.kicker{color:var(--soft);flex-wrap:wrap;align-items:center;gap:12px;font-size:13px;display:flex}.kicker .mono{color:var(--ink);font-weight:500}.case-hero h1{font-family:var(--display);letter-spacing:-.01em;margin:10px 0 0;font-size:34px;font-weight:700;line-height:1.15}.who{color:var(--soft);margin-top:10px;font-size:16px}.who strong{color:var(--ink);font-weight:500}.who .mono{color:var(--ink)}.status-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:10px;min-width:420px;padding:18px 20px;display:flex}.fillbar{background:var(--line-soft);border-radius:999px;height:10px;display:flex;overflow:hidden}.fillkeys{flex-wrap:wrap;gap:20px;font-size:13px;display:flex}.fillkeys .k{align-items:center;gap:6px;display:flex}.fillkeys .sq{border-radius:2px;flex:none;width:10px;height:10px}.body-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:24px;padding:0 32px 32px;display:grid}.col{flex-direction:column;gap:24px;display:flex}@media (width<=1180px){.body-grid{grid-template-columns:1fr}.status-box{width:100%;min-width:0}}.journey-wrap{padding:0 32px 4px}.journey{align-items:stretch;display:flex}.jstep{flex-direction:column;flex-grow:1;align-items:center;gap:10px;min-width:0;display:flex}.jstep.can{cursor:pointer}.jstep.cant{cursor:default;opacity:.55}.jline{align-items:center;width:100%;display:flex}.jline i{background:var(--stone);flex-grow:1;height:3px}.jline i.on{background:var(--indigo)}.jline i.off{background:0 0}.circ{box-sizing:border-box;width:34px;height:34px;font-family:var(--mono);background:var(--panel);border:3px solid var(--stone);color:var(--faint);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:600;display:flex}.circ.done{background:var(--indigo);border-color:var(--indigo);color:#fff}.circ.staged{background:var(--warn-tint);border-color:var(--warn);color:var(--warn)}.circ.here{box-shadow:0 0 0 4px #1f4e8c2e}.jtxt{text-align:center;flex-direction:column;align-items:center;gap:2px;padding:0 6px;display:flex}.jtxt .lbl{font-size:14px;font-weight:600}.jtxt .code{font-family:var(--mono);font-size:12px}.jtxt .whoby{color:var(--soft);font-size:11px}.kv-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.kv{flex-direction:column;gap:4px;display:flex}.kv .k{color:var(--soft);font-size:12px}.kv .v{flex-wrap:wrap;align-items:center;gap:8px;font-size:15px;display:flex}.kv .v.strong{font-weight:500}.tile-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.tile{background:var(--wash);border-radius:8px;flex-direction:column;gap:6px;padding:14px;display:flex}.tile .k{color:var(--soft);font-size:12px}.tile .v{font-size:15px;font-weight:500}.tile .s{color:var(--soft);font-size:13px}.alert{background:var(--alert-bg);border:1px solid var(--alert-line);color:var(--alert-ink);border-radius:8px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:13px;display:flex}.alert svg{flex:none;margin-top:1px}.note{color:var(--soft);font-size:13px}.note-row{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.note-row .note{color:var(--soft);flex:260px;min-width:0;font-size:13px}.note-row .btn{flex:none}.inset{background:var(--wash);border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;font-size:13px;display:flex}.eq-legend{flex-wrap:wrap;gap:12px;font-size:13px;display:flex}.eq-legend .k{align-items:center;gap:6px;display:inline-flex}.eq-legend .dot{border-radius:999px;flex:none;width:10px;height:10px}tr.row-attn td{background:var(--row-attn)}tr.row-bad td{background:var(--row-bad)}.hard-row{border-bottom:1px solid var(--line-soft);align-items:flex-start;gap:12px;padding:12px 0;display:flex}.hard-row:last-of-type{border-bottom:0}.hard-row label{cursor:pointer;flex:1;font-size:14px;font-weight:500}.hard-row small{color:var(--soft);margin-top:2px;font-size:12px;font-weight:400;display:block}.hs-tag{color:var(--bad);letter-spacing:.04em;text-transform:uppercase;margin-left:8px;font-size:11px;font-weight:600}.attest{color:var(--ok);margin-top:3px;font-size:12px;font-weight:500}.sublabel{letter-spacing:.04em;text-transform:uppercase;color:var(--soft);margin:14px 0 4px;font-size:12px;font-weight:600}.needs{border:2px solid var(--indigo);gap:14px;padding:20px 22px}.needs .top{justify-content:space-between;align-items:center;display:flex}.needs h2{margin:0;font-size:18px;font-weight:600}.needs .lede{color:var(--soft);margin:0;font-size:13px}.need-card{border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:10px;padding:14px;display:flex}.need-card .kick{color:var(--soft);font-size:12px}.need-card .q{font-size:15px;font-weight:500}.need-card .why{color:var(--soft);font-size:13px}.gate-tile{background:var(--wash);border-radius:10px;align-items:center;gap:12px;padding:14px;display:flex}.gate-tile .lt{background:var(--unk-tint);width:44px;height:44px;color:var(--soft);border-radius:999px;flex:none;justify-content:center;align-items:center;display:flex}.gate-tile.go .lt{background:var(--ok);color:#fff}.gate-tile .head{font-size:17px;font-weight:600}.gate-tile .sub{color:var(--soft);margin-top:2px;font-size:13px}.c3{text-align:center;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.c3>div{background:var(--unk-tint);border-radius:8px;padding:10px 6px}.c3 .n{color:var(--unk);font-size:22px;font-weight:600}.c3 .l{color:var(--soft);font-size:12px}.c3 .sys{background:var(--teal-tint)}.c3 .sys .n{color:var(--teal-ink)}.c3 .hum{background:var(--indigo-tint)}.c3 .hum .n{color:var(--indigo)}.log{flex-direction:column;gap:10px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.log li{gap:12px;display:flex}.log .t{font-family:var(--mono);color:var(--soft);flex:none}.toast{background:var(--ink);color:#fff;z-index:50;opacity:0;pointer-events:none;text-align:center;border-radius:10px;max-width:80vw;padding:12px 20px;font-size:13px;transition:opacity .25s;position:fixed;bottom:26px;left:50%;transform:translate(-50%)}.toast.show{opacity:1}.to-top{background:var(--panel);width:46px;height:46px;color:var(--ink);border:1px solid var(--faint);cursor:pointer;z-index:60;opacity:0;pointer-events:none;border-radius:999px;justify-content:center;align-items:center;transition:opacity .2s,transform .2s;display:flex;position:fixed;bottom:26px;right:26px;transform:translateY(8px);box-shadow:0 2px 10px #1b1f241f}.to-top.show{opacity:1;pointer-events:auto;transform:translateY(0)}.state{color:var(--soft);padding:40px 32px;font-size:15px}.saving-bar{z-index:60;text-align:center;letter-spacing:.04em;text-transform:uppercase;color:var(--paper);background:var(--teal);padding:4px 0;font-size:12px;position:fixed;top:0;left:0;right:0}.select-all{cursor:pointer;align-items:center;gap:8px;font-size:13px;font-weight:500;display:inline-flex}.select-all .n{font-family:var(--mono);color:var(--soft);font-size:12px}.select-all-row{border-bottom:1px solid var(--line-soft);align-items:center;padding:4px 0 10px;display:flex}.bulk-confirm{border:1px solid var(--teal);background:var(--teal-tint);color:var(--ink);border-radius:8px;flex-direction:column;gap:10px;padding:12px 14px;font-size:13px;display:flex}.bulk-confirm .msg{font-weight:600}.bulk-confirm .note{color:var(--soft)}.bulk-confirm .acts{gap:8px;display:flex}.summary-form{flex-direction:column;gap:8px;display:flex}.summary-form label{font-size:13px;font-weight:600}.summary-form textarea{font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--ink);resize:vertical;border-radius:8px;min-height:96px;padding:10px 12px;font-size:14px}.summary-form textarea:focus{outline:2px solid var(--teal);outline-offset:1px;border-color:var(--teal)}.summary-form .row{justify-content:space-between;align-items:center;gap:12px;display:flex}.summary-form .n{font-family:var(--mono);color:var(--soft);font-size:12px}.summary-form .acts{gap:8px;display:flex}.summary-text{white-space:pre-wrap}.summary-by{color:var(--soft);font-size:12px}
