:root{--r-sm:6px;--r-md:10px;--r-lg:14px;--r-pill:100px;--ground:#E4E9EF;--panel:#FCFDFE;--panel-2:#EFF3F7;--ink:#111C27;--ink-soft:#44515F;--ink-faint:#6B7887;--line:#C4CDD7;--line-soft:#DFE5EB;--accent:#2A5680;--accent-bright:#356D9F;--on-accent:#FFFFFF;--on-crit:#FFFFFF;--on-ok:#FFFFFF;--crit:#A33526;--warn:#7E4C0C;--ok:#1F6146;--info:#1B5E8C;--shadow:0 1px 1px rgba(17,28,39,.04),0 2px 7px rgba(17,28,39,.06)}@media (prefers-color-scheme:dark){:root{--ground:#0C141E;--panel:#15202D;--panel-2:#1C2937;--ink:#E9EFF5;--ink-soft:#A6B4C2;--ink-faint:#7A8896;--line:#2A3745;--line-soft:#202C39;--accent:#84ACD2;--accent-bright:#A6C6E4;--on-accent:#0C141E;--on-crit:#2A0D08;--on-ok:#06241A;--crit:#EC7A66;--warn:#D6A055;--ok:#68BE94;--info:#74B4E0;--shadow:0 1px 1px rgba(0,0,0,.3),0 3px 12px rgba(0,0,0,.38)}}:root[data-theme=dark]{--ground:#0C141E;--panel:#15202D;--panel-2:#1C2937;--ink:#E9EFF5;--ink-soft:#A6B4C2;--ink-faint:#7A8896;--line:#2A3745;--line-soft:#202C39;--accent:#84ACD2;--accent-bright:#A6C6E4;--on-accent:#0C141E;--on-crit:#2A0D08;--on-ok:#06241A;--crit:#EC7A66;--warn:#D6A055;--ok:#68BE94;--info:#74B4E0;--shadow:0 1px 1px rgba(0,0,0,.3),0 3px 12px rgba(0,0,0,.38)}:root[data-theme=light]{--ground:#E4E9EF;--panel:#FCFDFE;--panel-2:#EFF3F7;--ink:#111C27;--ink-soft:#44515F;--ink-faint:#6B7887;--line:#C4CDD7;--line-soft:#DFE5EB;--accent:#2A5680;--accent-bright:#356D9F;--on-accent:#FFFFFF;--on-crit:#FFFFFF;--on-ok:#FFFFFF;--crit:#A33526;--warn:#7E4C0C;--ok:#1F6146;--info:#1B5E8C;--shadow:0 1px 1px rgba(17,28,39,.04),0 2px 7px rgba(17,28,39,.06)}*{box-sizing:border-box}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}body{margin:0;background:var(--ground);color:var(--ink);font-family:-apple-system,system-ui,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace}.wrap{max-width:820px;margin:0 auto;padding:0 16px 60px}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,select{font-family:inherit;font-size:14px}a{color:var(--accent)}.topbar{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--ground) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-soft);margin:0 -16px;padding:12px 16px}.brand{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.logo{font-weight:800;font-size:20px;letter-spacing:.02em;text-transform:uppercase;color:var(--ink);border-bottom:2px solid var(--accent);padding-bottom:1px;line-height:1.1}.tag{font-family:ui-monospace,monospace;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);border:1px solid var(--line);border-radius:var(--r-pill);padding:3px 8px}.who{margin-left:auto;font-size:12px;color:var(--ink-soft);display:flex;align-items:center;gap:10px}.link{color:var(--accent);font-size:12px;cursor:pointer;background:none;border:none}.switcher{display:flex;align-items:center;gap:9px;margin-top:10px;flex-wrap:wrap}.switcher .l{font-family:ui-monospace,monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}.switcher select{padding:7px 11px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--panel);color:var(--ink);font-weight:600}.iso{font-size:11px;color:var(--ink-faint)}.iso .lock{color:var(--ok)}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;margin:16px 0}.kpi{background:var(--panel);padding:12px}.kpi .n{font-size:23px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1}.kpi .l{font-size:10.5px;color:var(--ink-soft);margin-top:6px;text-transform:uppercase;letter-spacing:.05em}.kpi.crit .n{color:var(--crit)}.kpi.warn .n{color:var(--warn)}.kpi.ok .n{color:var(--ok)}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tab{font-size:12.5px;font-weight:600;padding:7px 13px;border-radius:var(--r-pill);border:1px solid var(--line);color:var(--ink-soft);background:var(--panel)}.tab.active{background:var(--ink);color:var(--ground);border-color:var(--ink)}.tab .c{font-variant-numeric:tabular-nums;opacity:.6;margin-left:5px}.add-btn{font-size:12.5px;font-weight:700;color:var(--accent);border:1px dashed color-mix(in srgb,var(--accent) 50%,var(--line));border-radius:var(--r-pill);padding:7px 14px;background:var(--panel)}.addform{background:var(--panel);border:1px solid var(--accent-bright);border-radius:var(--r-lg);padding:14px;margin-bottom:12px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;box-shadow:var(--shadow)}.addform input{flex:1;min-width:180px;padding:9px 11px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--panel-2);color:var(--ink)}.addform select{padding:9px 11px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--panel-2);color:var(--ink)}.list{display:flex;flex-direction:column;gap:9px}.item{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}.item.blocking{border-left:4px solid var(--crit)}.item.open{border-left:4px solid var(--warn)}.item.closed{border-left:4px solid var(--ok)}.row{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;width:100%;text-align:left;background:none}.row:hover{background:color-mix(in srgb,var(--ground) 55%,var(--panel))}.row .main{flex:1;min-width:0}.row h3{margin:0;font-size:15px;font-weight:700;letter-spacing:-.01em}.row .sub{font-size:12px;color:var(--ink-faint);margin-top:4px}.chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.chip{font-family:ui-monospace,monospace;font-size:10px;padding:2px 7px;border-radius:var(--r-pill);background:var(--panel-2);border:1px solid var(--line);color:var(--ink-soft)}.chip.carry{background:color-mix(in srgb,var(--crit) 14%,var(--panel));border-color:color-mix(in srgb,var(--crit) 40%,transparent);color:var(--crit);font-weight:600}.rt{display:flex;flex-direction:column;align-items:flex-end;gap:7px;flex-shrink:0}.pill{font-family:ui-monospace,monospace;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:4px 9px;border-radius:var(--r-sm);white-space:nowrap}.pill.blocking{background:var(--crit);color:var(--on-crit)}.pill.open{background:color-mix(in srgb,var(--warn) 16%,var(--panel));color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 45%,transparent)}.pill.closed{background:color-mix(in srgb,var(--ok) 16%,var(--panel));color:var(--ok);border:1px solid color-mix(in srgb,var(--ok) 45%,transparent)}.age{font-family:ui-monospace,monospace;font-size:11px;color:var(--ink-faint);font-variant-numeric:tabular-nums}.age.hot{color:var(--crit);font-weight:700}.caret{color:var(--ink-faint);font-size:12px}.detail{border-top:1px solid var(--line-soft);padding:16px}.dsec{margin-bottom:15px}.dsec:last-child{margin-bottom:0}.dlabel{font-family:ui-monospace,monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.dsec p{margin:0;font-size:13.5px;color:var(--ink-soft)}.spec{font-size:13px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;color:var(--ink)}.ev-log{display:flex;flex-direction:column;gap:6px;margin-bottom:9px}.ev{display:flex;gap:9px;font-size:12.5px;color:var(--ink-soft);background:color-mix(in srgb,var(--ok) 9%,var(--panel));border:1px solid color-mix(in srgb,var(--ok) 30%,transparent);border-radius:var(--r-md);padding:8px 11px}.ev .ck{color:var(--ok);font-weight:800}.ev-empty{font-size:12.5px;color:var(--ink-faint);font-style:italic;margin-bottom:9px}.ev-row{display:flex;gap:8px}.ev-row input{flex:1;padding:9px 11px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--panel);color:var(--ink)}.actions{display:flex;gap:8px;margin-top:13px;flex-wrap:wrap}.btn{font-size:12.5px;font-weight:600;padding:9px 15px;border-radius:var(--r-md)}.btn.primary{background:var(--accent-bright);color:var(--on-accent)}.btn.ghost{background:var(--panel-2);color:var(--ink-soft);border:1px solid var(--line)}.btn.ok{background:var(--ok);color:var(--on-ok)}.gate{font-size:12.5px;color:var(--crit);margin-top:9px;display:flex;align-items:center;gap:7px}.empty{background:var(--panel);border:1px dashed var(--line);border-radius:var(--r-lg);padding:26px 20px;text-align:center;color:var(--ink-soft)}.empty b{color:var(--ink);display:block;margin-bottom:6px;font-size:15px}.center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:30px 26px;max-width:400px;width:100%;box-shadow:var(--shadow);text-align:center}.card h1{margin:0 0 4px;font-size:26px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:var(--ink)}.card p{color:var(--ink-soft);font-size:14px;margin:0 0 18px}.card input{width:100%;padding:11px 13px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--panel-2);color:var(--ink);margin-bottom:10px}.card .btn{width:100%}.msg{font-size:13px;margin-top:12px;color:var(--ok)}.msg.err{color:var(--crit)}.tool{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;margin-top:26px;box-shadow:var(--shadow)}.tool .shared{font-family:ui-monospace,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ok);border:1px solid color-mix(in srgb,var(--ok) 40%,transparent);border-radius:var(--r-pill);padding:3px 9px;display:inline-block;margin-bottom:10px}.tool h2{margin:0 0 4px;font-size:17px;font-weight:800;letter-spacing:-.02em}.tool .desc{font-size:13px;color:var(--ink-soft);margin:0 0 15px}.vgrid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-bottom:15px}.vfield label{display:block;font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:5px}.vfield input,.vfield select{width:100%;padding:9px 11px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--panel-2);color:var(--ink)}.vresult{border-radius:var(--r-md);padding:15px 16px;display:flex;gap:14px;align-items:center}.vresult.pass{background:color-mix(in srgb,var(--ok) 13%,var(--panel));border:1px solid color-mix(in srgb,var(--ok) 45%,transparent)}.vresult.fail{background:color-mix(in srgb,var(--crit) 13%,var(--panel));border:1px solid color-mix(in srgb,var(--crit) 45%,transparent)}.vbadge{font-family:ui-monospace,monospace;font-weight:800;font-size:14px;letter-spacing:.08em;padding:8px 12px;border-radius:var(--r-md)}.vresult.pass .vbadge{background:var(--ok);color:var(--on-ok)}.vresult.fail .vbadge{background:var(--crit);color:var(--on-crit)}.vnote{font-size:11.5px;color:var(--ink-faint);margin-top:11px;line-height:1.5}.banner{display:flex;gap:11px;align-items:flex-start;background:color-mix(in srgb,var(--crit) 12%,var(--panel));border:1px solid color-mix(in srgb,var(--crit) 45%,transparent);border-radius:var(--r-lg);padding:13px 15px;margin-bottom:16px}.banner b{color:var(--crit)}.setup{background:color-mix(in srgb,var(--warn) 12%,var(--panel));border:1px solid color-mix(in srgb,var(--warn) 45%,transparent);border-radius:var(--r-lg);padding:16px 18px;margin:16px 0;font-size:13.5px;color:var(--ink-soft)}.setup code{background:var(--panel-2);padding:1px 6px;border-radius:var(--r-sm);font-size:12.5px}footer{margin-top:30px;padding-top:16px;border-top:1px solid var(--line-soft);font-size:11.5px;color:var(--ink-faint);line-height:1.5}@media (max-width:520px){.kpis{grid-template-columns:repeat(2,1fr)}.vgrid{grid-template-columns:1fr}.rt .age{display:none}}.theme-toggle{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);border:1px solid var(--line);border-radius:var(--r-pill);padding:3px 10px;background:var(--panel);display:inline-flex;align-items:center;gap:6px;transition:color .12s ease,border-color .12s ease}.theme-toggle:hover{color:var(--ink-soft);border-color:var(--ink-faint)}@media (prefers-reduced-motion:reduce){.theme-toggle{transition:none}}
