@font-face{font-family:Inter;src:url(/fonts/Inter-Regular.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url(/fonts/Inter-Medium.woff2) format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Inter;src:url(/fonts/Inter-SemiBold.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Inter;src:url(/fonts/Inter-Bold.woff2) format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Inter Display';src:url(/fonts/InterDisplay-SemiBold.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Inter Display';src:url(/fonts/InterDisplay-Bold.woff2) format('woff2');font-weight:700;font-display:swap}

:root{
  --ink:#0B1B3A;--ink-2:#33415C;--muted:#66708A;--paper:#F5F7FA;--surface:#fff;--rule:#E2E6ED;--rule-2:#EEF1F5;
  --signal:#2F6BFF;--signal-d:#1F54DB;--signal-l:#EAF0FF;
  --seal:#1E7A52;--seal-l:#E6F3EC;--hold:#A86A12;--hold-l:#FBF1DE;--stop:#A83A2F;--stop-l:#FBEAE7;
  --r-s:6px;--r-m:10px;--r-l:14px;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 Inter,ui-sans-serif,system-ui,sans-serif;font-feature-settings:'cv11','ss01';-webkit-font-smoothing:antialiased}
h1,h2,h3,p{margin:0}
h1{font:700 30px/1.15 'Inter Display',Inter,sans-serif;letter-spacing:-.02em}
h2{font:600 18px/1.3 'Inter Display',Inter,sans-serif;letter-spacing:-.01em}
h3{font-size:14px;font-weight:600}
p{color:var(--muted)}a{color:var(--signal-d);text-decoration:none}a:hover{text-decoration:underline}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--signal);outline-offset:2px;border-radius:4px}
.skip{position:fixed;left:16px;top:-60px;background:#fff;padding:10px;z-index:99}.skip:focus{top:10px}
.num{font-variant-numeric:tabular-nums}

/* shell */
.layout{display:flex;min-height:100vh}
.side{width:248px;flex-shrink:0;background:var(--ink);color:#BFC8DB;padding:22px 14px 18px;position:sticky;top:0;height:100vh;overflow:auto;display:flex;flex-direction:column}
.brand{display:flex;align-items:center;gap:10px;color:#F2F5FA;font:700 24px/1 'Inter Display',Inter,sans-serif;letter-spacing:-.04em;margin:2px 8px 22px}
.brand .mk{width:30px;height:30px;border:1px solid #56627F;border-radius:9px;display:grid;place-items:center;color:#C3CDE4}.brand .dot{color:#7FA3FF;margin-left:-9px}
.ws{border:1px solid #2A3757;border-radius:var(--r-m);padding:10px 12px;margin-bottom:18px}.ws b{display:block;color:#fff;font-size:13px;font-weight:600}.ws small{color:#8E9AB6;font-size:12px}
.nav a{display:flex;align-items:center;gap:11px;color:#BFC8DB;padding:8px 10px;border-radius:8px;font-size:14px;font-weight:500;text-decoration:none}
.nav a:hover{background:#15274D;color:#fff}.nav a.on{background:#fff;color:var(--ink)}
.nav .grp{font-size:12px;color:#7D89A6;margin:16px 10px 6px}
.nav .count{margin-left:auto;background:var(--signal);color:#fff;border-radius:99px;font-size:11.5px;font-weight:600;padding:0 7px;line-height:18px}
.nav a.on .count{background:var(--ink)}
.me{margin-top:auto;border-top:1px solid #22315A;padding:14px 8px 0;font-size:13px}.me b{color:#fff;display:block;font-weight:600}
.main{flex:1;min-width:0}
.top{height:60px;background:var(--surface);border-bottom:1px solid var(--rule);display:flex;align-items:center;gap:12px;padding:0 28px;position:sticky;top:0;z-index:5}
.top .crumb{color:var(--muted);font-size:13.5px}.top .sp{flex:1}
.kbd{border:1px solid var(--rule);border-bottom-width:2px;border-radius:6px;padding:1px 6px;font-size:12px;color:var(--muted);background:#fff}
.search{display:flex;align-items:center;gap:10px;border:1px solid var(--rule);border-radius:9px;padding:6px 10px 6px 12px;color:var(--muted);font-size:13.5px;background:var(--paper);cursor:pointer;min-width:260px}
.boundary-pill{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--ink-2);border-radius:99px;padding:5px 11px;background:var(--seal-l)}
.boundary-pill i{width:7px;height:7px;border-radius:9px;background:var(--seal)}
.page{padding:30px 32px 60px;max-width:1240px}
.head{display:flex;align-items:flex-end;gap:16px;margin-bottom:24px;flex-wrap:wrap}.head .sp{flex:1}.head p{margin-top:6px;max-width:68ch}
.back{display:inline-block;font-size:13.5px;margin-bottom:12px}

/* surfaces */
.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-l);padding:20px 22px}
.stack>*+*{margin-top:16px}
.card>.ch{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.card>.ch>div{flex:1}.card>.ch p{font-size:13.5px;margin-top:2px}
.grid{display:grid;gap:16px}.g2{grid-template-columns:1fr 1fr}.g4{grid-template-columns:repeat(4,1fr)}.g-side{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start}
@media (max-width:1000px){.g2,.g4,.g-side{grid-template-columns:1fr}.side{display:none;position:fixed;inset:0 auto 0 0;z-index:50;box-shadow:0 0 60px rgba(0,0,0,.4)}.side.open{display:flex}.menu{display:inline-flex!important}.top{padding:0 14px}.search{min-width:0}.search span.t,.boundary-pill{display:none}.page{padding:20px 16px 48px}h1{font-size:24px}table{display:block;overflow-x:auto}}
.top .menu{display:none}
.stat b{display:block;font:700 30px/1.1 'Inter Display',Inter,sans-serif;font-variant-numeric:tabular-nums}.stat span{font-size:13px;color:var(--muted)}

/* controls */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:7px 15px;border-radius:9px;border:1px solid #CDD3DE;background:#fff;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;color:var(--ink)}
.btn:hover{background:#F0F2F6}.btn.primary{background:var(--signal);border-color:var(--signal);color:#fff}.btn.primary:hover{background:var(--signal-d)}
.btn.danger{color:var(--stop)}.btn.small{min-height:30px;padding:3px 11px;font-size:13px}.btn.ghost{border-color:transparent;background:transparent}.btn:disabled{opacity:.5;cursor:not-allowed}
.btns{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.badge{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;padding:2px 9px;border-radius:99px;background:#EDF0F5;color:var(--ink-2);white-space:nowrap}
.badge.ok{background:var(--seal-l);color:var(--seal)}.badge.warn{background:var(--hold-l);color:var(--hold)}.badge.bad{background:var(--stop-l);color:var(--stop)}.badge.blue{background:var(--signal-l);color:var(--signal-d)}
table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;font-size:12.5px;color:var(--muted);font-weight:500;padding:8px 10px;border-bottom:1px solid var(--rule)}
td{padding:11px 10px;border-bottom:1px solid var(--rule-2);vertical-align:top}tr:last-child td{border-bottom:0}tr.click{cursor:pointer}tr.click:hover td{background:#F8FAFC}
td .sub{display:block;color:var(--muted);font-size:13px}
label.f{display:block;font-size:13.5px;font-weight:600;margin-bottom:14px}label.f span{display:block;margin-bottom:6px}label.f small{display:block;font-weight:400;color:var(--muted);margin-top:4px}
input.i,select.i,textarea.i{width:100%;border:1px solid #CBD2DD;border-radius:9px;padding:9px 11px;background:#fff;font-size:14.5px}textarea.i{min-height:90px;resize:vertical}
.banner{border-radius:var(--r-m);padding:12px 14px;font-size:14px;margin-bottom:16px}
.banner.warn{background:var(--hold-l);color:#6A440B}.banner.bad{background:var(--stop-l);color:#7A2A22}.banner.ok{background:var(--seal-l);color:#155A3C}.banner.info{background:var(--signal-l);color:#1C3D94}
.muted{color:var(--muted)}.mono,.hash{font-family:ui-monospace,'DejaVu Sans Mono',Menlo,monospace;font-size:12.5px}
.hash{color:#5E6880;background:#EFF2F6;border-radius:5px;padding:1px 6px}
.kv{display:grid;grid-template-columns:140px 1fr;gap:6px 14px;font-size:14px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0}
.row{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--rule-2);align-items:flex-start}.row:last-child{border-bottom:0}.row>.grow{flex:1;min-width:0}
.row small{display:block;color:var(--muted);font-size:13px}
.empty{padding:28px;text-align:center;color:var(--muted);font-size:14px}

/* checks */
.checks{list-style:none;margin:0;padding:0}.checks li{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--rule-2);font-size:14px}.checks li:last-child{border:0}
.mark{width:20px;height:20px;border-radius:99px;display:grid;place-items:center;font-size:12px;font-weight:700;flex-shrink:0;margin-top:1px}
.mark.y{background:var(--seal-l);color:var(--seal)}.mark.n{background:var(--hold-l);color:var(--hold)}
.checks small{display:block;color:var(--muted);font-size:13px}

/* the case path: the one bold element */
.path{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin:4px 0 0;position:relative}
.path .st{position:relative;padding:34px 10px 0 0;font-size:14px}
.path .st::before{content:'';position:absolute;left:0;right:0;top:12px;height:3px;background:var(--rule)}
.path .st.done::before{background:var(--seal)}
.path .st .seal{position:absolute;left:0;top:0;width:27px;height:27px;border-radius:99px;background:#fff;border:2px solid var(--rule);display:grid;place-items:center;font-size:13px;font-weight:700;color:var(--muted);z-index:1}
.path .st.done .seal{background:var(--seal);border-color:var(--seal);color:#fff}
.path .st.now .seal{border-color:var(--signal);color:var(--signal-d);box-shadow:0 0 0 5px var(--signal-l)}
.path .st b{display:block;font-weight:600}.path .st span{display:block;font-size:13px;color:var(--muted)}
.path .st.now b{color:var(--signal-d)}
.next{display:flex;align-items:center;gap:18px;border-radius:var(--r-l);padding:18px 22px;background:var(--ink);color:#fff;margin:22px 0}
.next .grow{flex:1}.next small{display:block;color:#9FB0D3;font-size:13px;margin-bottom:2px}.next b{font:600 19px/1.3 'Inter Display',Inter,sans-serif}
.next.done{background:var(--seal)}.next.done small{color:#CDE9DA}
.next .btn.primary{background:#fff;color:var(--ink);border-color:#fff}.next .btn.primary:hover{background:#E9EEF8}

/* today */
.today h1{font-size:34px}
.task{display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--rule-2)}.task:last-child{border-bottom:0}
.task .ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;flex-shrink:0}
.task .ic.hold{background:var(--hold-l);color:var(--hold)}.task .ic.stop{background:var(--stop-l);color:var(--stop)}.task .ic.sig{background:var(--signal-l);color:var(--signal-d)}
.task .grow{flex:1;min-width:0}.task b{display:block;font-weight:600}.task small{color:var(--muted);font-size:13.5px}
.health .row b{font-weight:600}

/* summary */
.stmt{padding:10px 0;border-bottom:1px solid var(--rule-2);font-size:14.5px}.stmt:last-child{border:0}
.cite{display:inline-block;font-size:11.5px;font-weight:700;color:var(--signal-d);background:var(--signal-l);border-radius:5px;padding:0 6px;margin-left:4px;cursor:help;border:0}
.srcs{margin-top:10px;font-size:13px}.srcs summary{cursor:pointer;color:var(--muted)}.srcs .s{padding:6px 0;border-top:1px solid var(--rule-2)}.srcs .s b{color:var(--signal-d)}
.feed .item{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--rule-2)}.feed .item:last-child{border:0}.feed .dot{width:8px;height:8px;border-radius:9px;background:#B7C1D6;margin-top:8px;flex-shrink:0}
.feed .item small{display:block;color:var(--muted);font-size:12.5px}
.bar{height:8px;border-radius:9px;background:#E9EDF3;position:relative;overflow:hidden}.bar i{position:absolute;inset:0 auto 0 0;border-radius:9px;background:var(--signal)}.bar i.base{background:#BACBF6}.bar i.bad{background:var(--stop)}

/* boundary */
.bd{display:grid;grid-template-columns:1fr 1.4fr;gap:16px;align-items:start}
@media (max-width:1000px){.bd{grid-template-columns:1fr}}
.inside{background:var(--ink);color:#DCE3F2;border-radius:var(--r-l);padding:22px}.inside h2{color:#fff;margin-bottom:12px}.inside li{padding:7px 0;border-top:1px solid #22315A;font-size:14px}.inside ul{list-style:none;margin:0;padding:0}
.switch{position:relative;width:44px;height:26px;border-radius:99px;border:0;background:#C9D0DC;cursor:pointer;flex-shrink:0}.switch::after{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:99px;background:#fff;transition:left .15s}
.switch[aria-checked=true]{background:var(--seal)}.switch[aria-checked=true]::after{left:21px}

/* dialogs, palette, toast */
dialog{border:0;border-radius:16px;padding:0;width:min(560px,94vw);box-shadow:0 30px 80px rgba(11,27,58,.32)}dialog::backdrop{background:rgba(11,27,58,.45)}
dialog .dh{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--rule)}dialog .dh h2{flex:1}dialog .db{padding:18px 20px;max-height:70vh;overflow:auto}dialog .df{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--rule)}
.x{background:none;border:0;font-size:22px;line-height:1;cursor:pointer;color:var(--muted);padding:4px 8px;border-radius:6px}.x:hover{background:#EEF0F4}
dialog.palette{width:min(620px,94vw);margin-top:12vh}.palette input{border:0;border-bottom:1px solid var(--rule);width:100%;padding:16px 20px;font-size:17px;outline:none}
.palette ul{list-style:none;margin:0;padding:8px;max-height:50vh;overflow:auto}.palette li{padding:10px 12px;border-radius:8px;cursor:pointer;display:flex;gap:10px}.palette li small{margin-left:auto;color:var(--muted)}.palette li.on{background:var(--signal-l)}
#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:100}#toast div{background:var(--ink);color:#fff;padding:11px 16px;border-radius:10px;margin-top:8px;font-size:14px;box-shadow:0 10px 30px rgba(0,0,0,.2)}#toast div.err{background:#8A2E27}
.login{min-height:100vh;display:grid;place-items:center;background:var(--ink);padding:20px}
.login .card{width:min(420px,100%);padding:30px}.login .brand{color:var(--ink);margin:0 0 20px}.login .brand .mk{border-color:#C6CEDE;color:#55627E}
.or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px;margin:16px 0}.or::before,.or::after{content:'';flex:1;height:1px;background:var(--rule)}
pre.code{white-space:pre-wrap;background:var(--ink);color:#DCE4F7;padding:14px;border-radius:10px;font:12.5px/1.55 ui-monospace,'DejaVu Sans Mono',Menlo,monospace;margin:8px 0 0}
.report h1{font-size:26px}.report section{margin-top:20px}
@media print{.side,.top,.noprint{display:none!important}.page{padding:0}.card{border:0}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* setup wizard */
.wiz .card{width:min(600px,100%);padding:34px 36px 30px}
.wsteps{list-style:none;padding:0;margin:0 0 26px;display:flex;gap:6px}
.wsteps li{flex:1;display:flex;flex-direction:column;gap:7px;font-size:12px;color:var(--muted);min-width:0}
.wsteps li::before{content:'';height:4px;border-radius:4px;background:var(--rule)}
.wsteps li.done::before{background:var(--seal)}.wsteps li.on::before{background:var(--signal)}
.wsteps li i{display:none}.wsteps li span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wsteps li.on{color:var(--ink);font-weight:600}
.wt{font-size:26px}.ws-sub{margin:8px 0 22px;font-size:15px}
.wbody .f{margin-bottom:14px}
.wfoot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px;padding-top:18px;border-top:1px solid var(--rule-2)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.small{font-size:13px}
.howto{margin:0 0 18px;padding-left:20px}.howto li{margin-bottom:12px;color:var(--ink-2)}.howto li::marker{color:var(--muted);font-weight:600}
.keybox{display:flex;align-items:center;gap:10px;justify-content:space-between;margin:8px 0 6px;padding:12px 14px;border:1px dashed #C6CEDE;border-radius:var(--r-m);background:var(--paper)}
.keybox .mono{font-size:15px;letter-spacing:.06em;word-break:normal;overflow-wrap:normal;color:var(--ink)}
.i.code{font-size:22px;letter-spacing:.3em;font-variant-numeric:tabular-nums;max-width:220px}
.conn{border:1px solid var(--rule);border-radius:var(--r-m);padding:16px 16px 4px;margin-bottom:14px}
.conn .ch{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.conn h2{font-size:16px}.conn p{font-size:13.5px;margin-top:3px}
.conn .f small a{word-break:break-all}
.choices{display:grid;gap:10px;margin-bottom:16px}
.choice{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--rule);border-radius:var(--r-m);padding:14px 16px;cursor:pointer;transition:border-color .15s,background .15s}
.choice:hover{border-color:#C6CEDE}.choice:has(input:checked){border-color:var(--signal);background:var(--signal-l)}
.choice input{margin-top:4px;accent-color:var(--signal)}.choice b{display:block}.choice small{color:var(--muted);font-size:13.5px}
.nextlist{list-style:none;padding:0;margin:0}.nextlist li{padding:13px 0;border-bottom:1px solid var(--rule-2)}.nextlist li:last-child{border-bottom:0}
.nextlist b{display:block}.nextlist small{color:var(--muted);font-size:13.5px}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (max-width:560px){.wiz .card{padding:24px 18px}.two{grid-template-columns:1fr}.wsteps li span{display:none}.wfoot{flex-wrap:wrap}}

.qrrow{display:flex;gap:22px;align-items:center;margin-bottom:12px}
.qr svg{display:block;border:1px solid var(--rule);border-radius:var(--r-m)}
.qrrow .howto{margin:0}
.manual{margin:4px 0 16px}.manual summary{cursor:pointer;color:var(--signal-d);font-size:14px}
@media (max-width:560px){.qrrow{flex-direction:column;align-items:flex-start}}
