@font-face{font-family:Inter;src:url(/app/fonts/inter-latin.woff2) format("woff2");font-weight:300 800;font-display:swap}
@font-face{font-family:JBMono;src:url(/app/fonts/jbmono-latin.woff2) format("woff2");font-weight:100 800;font-display:swap}

/* Tokens: one light theme, the website's black-and-white palette. Swiss/minimal: whitespace, hierarchy, hairlines, one blue accent. */
:root{
  --bg:#fafaf9;--bg2:#f2f2f0;--s1:#fff;--s2:#f4f4f5;--s3:#ebebec;--line:rgba(9,9,11,.09);--line2:rgba(9,9,11,.15);--line3:rgba(9,9,11,.3);--row:rgba(9,9,11,.06);
  --tx:#09090b;--tx2:#3a3a42;--tx3:#55555d;--tx4:#6b6b74;
  --pri:#2f5fe8;--pri2:#2b58dc;--cy:#0b7894;--ok:#087d57;--warn:#a2610a;--bad:#c51d40;--vio:#6234d4;
  --t-pri:#2b58dc;--t-vio:#6234d4;--t-cy:#0b7894;--t-ok:#087d57;--t-warn:#9a5b06;--t-bad:#c51d40;
  --glow:rgba(47,95,232,.16);--ink:#09090b;--ink-tx:#fff;
  --side:#fff;--logo-bg:#fff;--shadow:0 1px 2px rgba(9,9,11,.04),0 16px 40px -28px rgba(9,9,11,.22);--paper:#fff;
  --r:14px;--mono:JBMono,ui-monospace,SFMono-Regular,Menlo,monospace;--sans:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  --out:cubic-bezier(.16,1,.3,1);
  color-scheme:light
}
html{color-scheme:light}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
html,body{background:var(--bg);color:var(--tx);font:13.5px/1.5 var(--sans);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}
body{min-height:100dvh;overflow-x:hidden}
a{color:var(--pri2)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--pri);outline-offset:2px}
#view:focus,#view:focus-visible{outline:none}
svg.i{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
h1,h2,h3,h4{letter-spacing:-.02em}

/* Shell */
.app{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100dvh}
.side{background:var(--ink);color:#c2c2c9;display:flex;flex-direction:column;padding:16px 12px;position:sticky;top:0;height:100dvh;overflow-y:auto;position:relative;isolation:isolate}
.side:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:
  radial-gradient(520px 320px at 20% 0%,rgba(47,95,232,.28),transparent 65%),
  repeating-linear-gradient(0deg,transparent 0 47px,rgba(255,255,255,.045) 47px 48px),
  repeating-linear-gradient(90deg,transparent 0 47px,rgba(255,255,255,.045) 47px 48px)}
.side:after{content:"";position:absolute;right:0;top:0;bottom:0;width:1px;background:rgba(255,255,255,.08);pointer-events:none}
.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 16px;text-decoration:none;color:#fff}
.side .brand svg{--logo-bg:#111114;--tx:#fff;--line2:rgba(255,255,255,.18)}
.brand .wm{font-size:13px;letter-spacing:.22em;font-weight:650}
.brand .tag{margin-left:auto;font:500 9.5px var(--mono);color:#a0a0a9;border:1px solid rgba(255,255,255,.18);padding:2px 6px;border-radius:5px}
.ws{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);border-radius:10px;margin-bottom:10px;min-width:0;backdrop-filter:blur(6px)}
.ws .av{width:28px;height:28px;border-radius:7px;background:linear-gradient(135deg,#4c7dff,#2f5fe8);color:#fff;display:grid;place-items:center;font-weight:700;font-size:11px;flex:none}
.ws b{font-size:12.5px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}.ws small{color:#a0a0a9;font-size:11px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws>div{min-width:0}
.nav{display:flex;flex-direction:column;gap:2px}
.nav .h{font:600 10px var(--mono);letter-spacing:.14em;color:#80808a;text-transform:uppercase;padding:12px 10px 5px}
.nav a{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;color:#c2c2c9;text-decoration:none;font-weight:500;transition:background .2s,color .2s}
.nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.nav a .n{margin-left:auto;font:500 10.5px var(--mono);color:#80808a}
.nav a .soon{margin-left:auto;font:600 9px var(--mono);letter-spacing:.06em;color:#80808a;border:1px solid rgba(255,255,255,.18);border-radius:4px;padding:0 4px}
.nav a.on{background:rgba(255,255,255,.08);color:#fff;font-weight:600;box-shadow:inset 2px 0 0 var(--pri)}
.nav a.on svg{color:#8aa8ff}
.nav a.on .n{color:#c2c2c9}
.quota{margin-top:auto;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);border-radius:10px;padding:12px;margin-top:14px}
.quota h6{font:600 10px var(--mono);letter-spacing:.12em;color:#a0a0a9;text-transform:uppercase;margin-bottom:10px;display:flex;justify-content:space-between}
.qr{margin-bottom:9px}.qr:last-child{margin-bottom:0}
.qr div{display:flex;justify-content:space-between;font-size:11px;color:#c2c2c9;margin-bottom:4px}.qr div span{font-family:var(--mono);color:#a0a0a9}
.quota .bar{background:rgba(255,255,255,.1)}
.sidefoot{padding-top:10px}
.me{display:flex;align-items:center;gap:10px;padding:10px 6px 0;text-decoration:none;color:#fff;min-width:0}
.me .av{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#4c7dff,#2f5fe8);color:#fff;display:grid;place-items:center;font-weight:700;font-size:11px;flex:none}
.me b{font-size:12.5px;display:block}.me small{font-size:11px;color:#a0a0a9;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.me>div{min-width:0}
.main{display:flex;flex-direction:column;min-width:0;background:var(--bg)}
.top{height:60px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:0 24px;position:sticky;top:0;z-index:30;background:color-mix(in srgb,#fff 82%,transparent);backdrop-filter:blur(14px)}
.crumb{display:flex;align-items:center;gap:8px;color:var(--tx3);font-size:12.5px;white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}.crumb b{color:var(--tx);font-weight:600}
.crumb a{color:var(--tx3);text-decoration:none}
.qs{flex:1;max-width:520px;margin-left:12px;display:flex;align-items:center;gap:10px;height:36px;padding:0 12px;border:1px solid var(--line2);background:var(--s1);border-radius:999px;color:var(--tx3);cursor:text}
.qs input{border:0;background:transparent;outline:0;flex:1;min-width:0;color:var(--tx);font-size:13px}
.qs kbd{font:500 10.5px var(--mono);border:1px solid var(--line2);border-radius:5px;padding:1px 6px;color:var(--tx3)}
.purpose{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--t-ok);border:1px solid rgba(8,125,87,.3);background:rgba(8,125,87,.06);padding:6px 10px;border-radius:999px;white-space:nowrap;text-decoration:none;max-width:280px;overflow:hidden;text-overflow:ellipsis}
.purpose i{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px rgba(52,211,160,.18);flex:none}
.purpose.none{color:var(--tx3);border-color:var(--line2);background:var(--s1)}.purpose.none i{background:var(--tx4);box-shadow:none}
.tr{margin-left:auto;display:flex;gap:8px;align-items:center}
.ib{width:36px;height:36px;border:1px solid var(--line2);border-radius:999px;display:grid;place-items:center;color:var(--tx2);background:var(--s1);position:relative;cursor:pointer;text-decoration:none;flex:none;transition:border-color .2s,background .2s}
.ib:hover{border-color:var(--line3);background:var(--s2)}
.ib .dot{position:absolute;top:7px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--bad)}
.menu{display:none}
.content{padding:20px 22px 40px;min-width:0;flex:1}
.scrim{display:none}

/* Atoms */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--line2);background:var(--s1);color:var(--tx);font:550 12.5px var(--sans);letter-spacing:-.01em;white-space:nowrap;cursor:pointer;text-decoration:none;transition:background .25s var(--out),border-color .25s,transform .25s var(--out),box-shadow .25s}
.btn:hover{border-color:var(--line3);background:var(--s2)}
.btn:active{transform:scale(.97)}
.btn.p{background:var(--ink);color:var(--ink-tx);border-color:var(--ink)}
.btn.p:hover{box-shadow:0 10px 30px -10px var(--glow),0 0 0 4px var(--glow);background:var(--ink)}
.btn.d{color:var(--t-bad);border-color:rgba(197,29,64,.35)}
.btn.g{background:transparent;border-color:transparent}.btn.g:hover{background:var(--s2);border-color:transparent}
.btn.s{min-height:28px;padding:0 10px;font-size:11.5px}
.btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}
.btns{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.chip{display:inline-flex;align-items:center;gap:5px;min-height:21px;padding:0 8px;border-radius:999px;font:500 10.5px var(--mono);border:1px solid var(--line2);color:var(--tx2);background:var(--s1);white-space:nowrap}
.chip.ok{color:var(--t-ok);border-color:rgba(8,125,87,.3);background:rgba(8,125,87,.07)}
.chip.warn{color:var(--t-warn);border-color:rgba(162,97,10,.3);background:rgba(162,97,10,.07)}
.chip.bad{color:var(--t-bad);border-color:rgba(197,29,64,.28);background:rgba(197,29,64,.06)}
.chip.pri{color:var(--t-pri);border-color:rgba(47,95,232,.3);background:rgba(47,95,232,.07)}
.chip.vio{color:var(--t-vio);border-color:rgba(98,52,212,.3);background:rgba(98,52,212,.07)}
.card{background:var(--s1);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);min-width:0;transition:box-shadow .25s var(--out),border-color .25s}
.card:hover{border-color:var(--line2)}
.card>header{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.card>header h4{font-size:13px;font-weight:650;display:flex;align-items:center;gap:8px}
.card>header h4 svg{color:var(--pri2)}
.card>header>svg.i{color:var(--pri2)}
.card>header .r{margin-left:auto;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.card .pad{padding:14px}
.lbl{font:600 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tx4)}
.mono{font-family:var(--mono)}
.src{font:500 10.5px var(--mono);color:var(--tx3);overflow-wrap:anywhere}.src b{color:var(--pri2);font-weight:500}
.dim{color:var(--tx3)}
.col{display:flex;flex-direction:column;gap:14px;min-width:0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.split{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px;align-items:start}
.split.narrow{grid-template-columns:minmax(0,1fr) 320px}.split.wide{grid-template-columns:minmax(0,1fr) 400px}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:14px;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs a,.tabs button{padding:9px 12px;color:var(--tx3);font-weight:550;font-size:12.5px;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;display:flex;gap:7px;align-items:center;background:none;cursor:pointer;text-decoration:none;white-space:nowrap}
.tabs .on{color:var(--tx);border-color:var(--ink)}
.tabs .n{font:500 10px var(--mono);color:var(--tx3);background:var(--s2);border-radius:5px;padding:1px 5px}
table{width:100%;border-collapse:collapse}
th{font:600 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--tx4);text-align:left;padding:9px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:10px 14px;border-bottom:1px solid var(--row);color:var(--tx2);vertical-align:middle}
td b{color:var(--tx);font-weight:600}
tr:last-child td{border-bottom:0}
tr.click{cursor:pointer}tr.click:hover td{background:var(--s2)}
tr.click td:first-child{box-shadow:inset 0 0 0 0 var(--pri);transition:box-shadow .2s}tr.click:hover td:first-child{box-shadow:inset 3px 0 0 var(--pri)}
td.mono{white-space:nowrap}
.bar{height:6px;border-radius:9px;background:var(--s3);overflow:hidden}.bar i{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,#2f5fe8,#4fdcf5)}
.empty{padding:28px 14px;text-align:center;color:var(--tx3)}
.empty b{display:block;color:var(--tx);font-size:14px;margin-bottom:4px}
.note{font-size:12px;color:var(--tx3)}
.note.fine{font-size:11.5px;color:var(--tx4);margin-top:10px;line-height:1.5}
.warnbox{border:1px solid rgba(162,97,10,.35);background:rgba(162,97,10,.07);color:var(--t-warn);border-radius:10px;padding:10px 12px;font-size:12.5px}
.okbox{border:1px solid rgba(8,125,87,.35);background:rgba(8,125,87,.07);color:var(--t-ok);border-radius:10px;padding:10px 12px;font-size:12.5px}
.errbox{border:1px solid rgba(197,29,64,.35);background:rgba(197,29,64,.06);color:var(--t-bad);border-radius:10px;padding:10px 12px;font-size:12.5px}
.spin{display:inline-block;width:14px;height:14px;border:2px solid var(--line2);border-top-color:var(--tx);border-radius:50%;animation:sp .8s linear infinite;vertical-align:-2px}
@keyframes sp{to{transform:rotate(360deg)}}
.content>*{animation:rise .45s var(--out) both}
.content>*:nth-child(2){animation-delay:.05s}.content>*:nth-child(3){animation-delay:.1s}.content>*:nth-child(4){animation-delay:.15s}
@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.cav{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font:700 11px var(--sans);flex:none}
.c0{background:rgba(47,95,232,.12);color:var(--t-pri)}.c1{background:rgba(98,52,212,.12);color:var(--t-vio)}.c2{background:rgba(11,120,148,.12);color:var(--t-cy)}
.c3{background:rgba(8,125,87,.12);color:var(--t-ok)}.c4{background:rgba(162,97,10,.12);color:var(--t-warn)}.c5{background:rgba(197,29,64,.1);color:var(--t-bad)}
.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.pagehead h1{font-size:26px;font-weight:600;letter-spacing:-.04em;line-height:1.1}
.pagehead p{color:var(--tx3);margin-top:3px}
.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.toolbar .grow{flex:1}

/* Forms */
.f{display:grid;gap:12px}
.f .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
label.fl{display:grid;gap:6px;font-size:12.5px;font-weight:600;color:var(--tx2);align-content:start}
label.fl small{font-weight:400;color:var(--tx4);display:inline;margin-left:2px}
.in,select.in,textarea.in{width:100%;min-height:38px;border:1px solid var(--line2);background:var(--s1);border-radius:10px;padding:8px 11px;font-size:16px;color:var(--tx);transition:border-color .2s,box-shadow .2s}
@media (min-width:900px){.in,select.in,textarea.in{font-size:13.5px}}
textarea.in{min-height:90px;resize:vertical;line-height:1.45}
.in:focus{outline:0;border-color:var(--line3);box-shadow:0 0 0 4px var(--glow)}
.check{display:flex;gap:8px;align-items:center;font-size:13px;cursor:pointer}
.check input{width:16px;height:16px;accent-color:var(--ink)}
select.in.s{min-height:32px;padding:4px 10px;font-size:12.5px;width:auto;border-radius:999px}
.in.s{border-radius:999px}

/* Modal + toast */
.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:16px;background:rgba(9,9,11,.45);backdrop-filter:blur(4px)}
.modal .box{width:min(560px,100%);max-height:calc(100dvh - 32px);overflow:auto;background:var(--s1);border:1px solid var(--line);border-radius:18px;box-shadow:0 30px 80px -20px rgba(0,0,0,.4)}
.modal .box.wide{width:min(820px,100%)}
.modal header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--s1);z-index:1}
.modal header h3{font-size:15px;font-weight:650}
.modal header .x{margin-left:auto}
.modal .body{padding:16px}
.modal footer{display:flex;gap:8px;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--line);flex-wrap:wrap}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:var(--ink);color:var(--ink-tx);font-size:13px;font-weight:550;padding:10px 16px;border-radius:999px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:120;max-width:calc(100vw - 32px);text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}
.toast.err{background:var(--bad);color:#fff}

/* Overview: getting started */
.gs{margin-bottom:14px}
.gsl{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:0}
.gsl li{border-right:1px solid var(--line)}.gsl li:last-child{border-right:0}
.gsl a{display:flex;gap:10px;padding:14px;text-decoration:none;color:inherit;height:100%;transition:background .2s}.gsl a:hover{background:var(--s2)}
.gsl i{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line3);display:grid;place-items:center;flex:none;margin-top:1px;color:#fff}
.gsl li.ok i{background:var(--ok);border-color:var(--ok)}.gsl i svg{width:12px;height:12px}
.gsl b{display:block;font-size:13px}.gsl small{color:var(--tx3);font-size:12px;line-height:1.4}
.gsl li.ok b{color:var(--tx3);text-decoration:line-through}
@media (max-width:1180px){.gsl{grid-template-columns:1fr 1fr 1fr}.gsl li{border-bottom:1px solid var(--line)}}
@media (max-width:640px){.gsl{grid-template-columns:1fr}.gsl li{border-right:0}}

/* Overview */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}
.kpi{padding:18px 18px 16px;position:relative;overflow:hidden}.kpi .v{font-size:34px;font-weight:600;letter-spacing:-.05em;margin:8px 0 4px;line-height:1;font-variant-numeric:tabular-nums}
.kpi:after{content:"";position:absolute;left:18px;right:18px;bottom:0;height:2px;background:linear-gradient(90deg,#2f5fe8,#4fdcf5 60%,transparent)}.kpi .d{font-size:11.5px;color:var(--tx3)}.kpi .d b{color:var(--t-ok);font-weight:600}
.ov{display:grid;grid-template-columns:1.55fr 1fr;gap:14px}
.case-row td:first-child{display:flex;align-items:center;gap:10px}
.prog{width:120px}
.feed{padding:4px 14px}
.fi{display:flex;gap:11px;padding:11px 0;border-bottom:1px solid var(--row)}.fi:last-child{border:0}
.fi .ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;flex:none}
.fi p{color:var(--tx2);font-size:12.5px;overflow-wrap:anywhere}.fi p b{color:var(--tx)}.fi small{display:block;color:var(--tx4);font:500 10.5px var(--mono);margin-top:2px}

/* Subject dossier */
.subj{display:flex;gap:16px;align-items:center;padding:16px;flex-wrap:wrap}
.subj .ph{width:64px;height:64px;border-radius:16px;background:linear-gradient(135deg,#e3eaff,#cfdbff);color:#2550c8;border:1px solid #c8d5f5;display:grid;place-items:center;font-size:22px;font-weight:650;position:relative;flex:none}
.subj .ph.ok:after{content:"";position:absolute;right:-4px;bottom:-4px;width:16px;height:16px;border-radius:50%;background:var(--ok);border:3px solid var(--s1)}
.subj h2{font-size:20px;font-weight:650;letter-spacing:-.02em;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.subj .meta{display:flex;gap:6px 14px;color:var(--tx3);font-size:12px;margin-top:5px;flex-wrap:wrap}
.subj .meta span{display:flex;gap:6px;align-items:center}
.subj .grow{flex:1;min-width:200px}
.conf{text-align:center}
.ring{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;margin:0 auto}
.ring b{width:46px;height:46px;border-radius:50%;background:var(--s1);display:grid;place-items:center;font:600 14px var(--mono)}
.kv{display:grid;grid-template-columns:120px minmax(0,1fr);gap:8px 12px;padding:12px 14px;font-size:12.5px}.kv dd.hash{font-size:11px;overflow-wrap:anywhere}.kv dt{color:var(--tx3)}.kv dd{color:var(--tx);overflow-wrap:anywhere}
.tl{padding:6px 14px 10px}
.tli{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:10px;padding:8px 0;position:relative}
.tli:before{content:"";position:absolute;left:6px;top:24px;bottom:-8px;width:2px;background:var(--line)}
.tli:last-child:before{display:none}
.tli i{width:14px;height:14px;border-radius:50%;border:3px solid var(--s1);background:var(--pri);margin-top:3px;box-shadow:0 0 0 1px var(--line2)}
.tli b{font-size:12.5px;display:block;overflow-wrap:anywhere}.tli small{color:var(--tx3);font-size:11.5px;display:block;overflow-wrap:anywhere}.tli .when{font:500 11px var(--mono);color:var(--tx3);white-space:nowrap}
.ti{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px;background:var(--s2)}
.ti.relevant{background:var(--s1);border-color:rgba(8,125,87,.45);box-shadow:inset 3px 0 0 var(--ok)}
.ti.not_relevant,.ti.wrong_person{opacity:.62}
.ti .t{font-weight:600;font-size:12.5px;display:flex;gap:8px;align-items:flex-start;justify-content:space-between}
.ti p{font-size:12px;color:var(--tx2);margin:4px 0 6px;overflow-wrap:anywhere}
.ti .a{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.mini{font:600 10.5px var(--sans);padding:3px 9px;border-radius:999px;border:1px solid var(--line2);background:var(--s1);color:var(--tx2);cursor:pointer}
.mini.on{color:var(--t-ok);background:rgba(8,125,87,.08);border-color:rgba(8,125,87,.35)}
.mini.on.bad{color:var(--t-bad);background:rgba(197,29,64,.06);border-color:rgba(197,29,64,.3)}

/* Search results (people search) */
.sform{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,1fr) 90px minmax(0,1fr) minmax(0,1.2fr) minmax(0,1.3fr) auto;gap:10px;align-items:start}
.sform .c-go{align-self:end;min-height:38px}
.kindhint{font:500 11px var(--mono);color:var(--tx3);min-height:16px;margin-top:4px}
.tier{font-size:15px;font-weight:650;margin:20px 0 4px;display:flex;align-items:center;gap:8px}
.tier span,.others summary span{font:600 11px var(--mono);color:var(--tx3);border:1px solid var(--line2);border-radius:999px;padding:1px 7px}
.tierhint{font-size:12.5px;color:var(--tx3);margin-bottom:6px}
.group{background:var(--s1);border:1px solid var(--line);border-radius:14px;margin-top:10px;overflow:hidden;box-shadow:var(--shadow)}
.gh{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.gh .av{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,#e3eaff,#cfdbff);color:#2550c8;display:grid;place-items:center;font-weight:650;font-size:11.5px;flex:none}
.gh .who{min-width:0;flex:1}.gh .who b{display:block}.gh .who small{color:var(--tx3);font-size:11.5px}
.gh .sc{font:600 11px var(--mono);color:var(--t-ok)}
.it{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:10px;padding:10px 14px;border-bottom:1px solid var(--row);align-items:start}
.it:last-child{border:0}
.it .cat span{font:600 10px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--tx3)}
.it .cat em{display:block;font:700 9px var(--mono);color:var(--t-bad);font-style:normal;margin-top:3px}
.it .t{font-weight:600;font-size:12.5px;overflow-wrap:anywhere}.it .s{font-size:12px;color:var(--tx2);overflow-wrap:anywhere}
.it .tri{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.it.not_relevant,.it.wrong_person{opacity:.55}
.others{margin-top:18px}.others summary{cursor:pointer;font-weight:650;display:flex;gap:8px;align-items:center}
.handlink{display:block;padding:10px 12px;margin-top:8px;border:1px solid var(--line2);border-radius:12px;text-decoration:none;color:inherit;overflow-wrap:anywhere;background:var(--s1)}
.handlink:hover{border-color:var(--line3)}
.handlink b{display:block;font-size:13.5px}.handlink small{color:var(--tx3);font-size:12px}
.chips{display:flex;gap:5px;flex-wrap:wrap}
.status{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin:16px 0 4px}
.recent a{display:block;padding:8px 14px;border-bottom:1px solid var(--row);text-decoration:none;color:var(--tx)}.recent a:last-child{border:0}
.recent a small{display:block;color:var(--tx3);font-size:11px}
.recent a.on{background:var(--s2)}

/* Probability on result cards */
.prob{display:inline-flex;align-items:baseline;gap:5px;font-size:12px;color:var(--tx3);padding:4px 10px;border-radius:999px;border:1px solid var(--line2);background:var(--s1)}
.prob b{font:600 14px var(--mono);letter-spacing:-.02em;color:var(--tx)}
.prob.hi{border-color:rgba(8,125,87,.4)}.prob.hi b{color:var(--t-ok)}.prob.lo b{color:var(--tx3)}
.parts{display:flex;gap:6px;flex-wrap:wrap;padding:8px 14px;border-bottom:1px solid var(--line);background:var(--bg)}
.part{display:inline-flex;align-items:center;gap:4px;font:500 11px var(--mono);padding:3px 8px;border-radius:6px;border:1px solid var(--line);background:var(--s1);color:var(--tx2)}
.part svg{width:11px;height:11px}.part i{font-style:normal;color:var(--tx4)}
.part.match{border-color:rgba(8,125,87,.35);color:var(--t-ok)}.part.mismatch{border-color:rgba(197,29,64,.35);color:var(--t-bad)}.part.partial{border-color:rgba(162,97,10,.35);color:var(--t-warn)}
.more{grid-column:1/-1}.more summary{cursor:pointer;font-size:12.5px;color:var(--tx3);padding:4px 0}.more .morebody{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:8px}
@media (max-width:900px){.more .morebody{grid-template-columns:1fr 1fr}}

/* Evidence */
.drop{display:flex;align-items:center;gap:14px;padding:18px;border:1.5px dashed var(--line3);border-radius:14px;background:var(--s1);margin-bottom:14px;flex-wrap:wrap;transition:border-color .2s}
.drop.over{border-color:var(--pri)}
.drop .ic{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#e3eaff,#cfdbff);color:#2550c8;display:grid;place-items:center;flex:none}
.drop b{display:block}.drop small{color:var(--tx3)}
.drop .grow{flex:1;min-width:200px}
.pipe{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:14px}
.pipe .card{padding:12px 14px}.pipe .v{font-size:20px;font-weight:650;letter-spacing:-.02em}
.ft{font:700 9.5px var(--mono);padding:3px 6px;border-radius:5px;min-width:38px;text-align:center;display:inline-block}
.uprow{display:flex;gap:10px;align-items:center;font-size:12px;padding:6px 0;border-bottom:1px solid var(--row)}
.uprow .bar{flex:1}
.pages .pg{border-bottom:1px solid var(--line);padding:14px}
.pages .pg header{display:flex;gap:10px;align-items:center;margin-bottom:8px}
.pages pre{white-space:pre-wrap;word-break:break-word;font:12.5px/1.6 var(--mono);color:var(--tx2)}
mark{background:rgba(162,97,10,.2);color:inherit;border-radius:3px;padding:0 2px}
mark.y{background:rgba(162,97,10,.18)}
mark.r{background:rgba(197,29,64,.16)}
.viewer{width:100%;height:70vh;border:1px solid var(--line);border-radius:12px;background:var(--s2)}

/* Transcripts */
.player{padding:14px 16px}
.player .head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.play{width:38px;height:38px;border-radius:50%;background:var(--ink);color:var(--ink-tx);border:0;display:grid;place-items:center;cursor:pointer;flex:none}
.play svg{width:16px;height:16px}
.wave{display:flex;align-items:center;gap:2px;height:56px;margin:12px 0 8px;position:relative;cursor:pointer}
.wave i{flex:1;border-radius:2px;background:var(--s3);min-height:3px;transition:background .15s}
.wave i.a{background:var(--pri)}
.wave i.f{background:var(--bad)}
.ptime{display:flex;justify-content:space-between;font:500 10.5px var(--mono);color:var(--tx3)}
.lines{padding:6px 16px 10px}
.ln{display:grid;grid-template-columns:62px 110px minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid var(--row);font-size:12.5px;cursor:pointer}
.ln:last-child{border-bottom:0}
.ln:hover{background:var(--s2);margin:0 -16px;padding:9px 16px}
.ln .ts{font:500 11px var(--mono);color:var(--pri2)}
.ln .sp{font-weight:600;font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp.a{color:var(--t-pri)}.sp.b{color:var(--t-warn)}.sp.c{color:var(--t-vio)}.sp.d{color:var(--t-cy)}
.ln p{color:var(--tx2);overflow-wrap:anywhere}
.ln.now{background:var(--s2);margin:0 -16px;padding:9px 16px}
.ln.hl{background:rgba(197,29,64,.05);margin:0 -16px;padding:9px 16px;border-left:2px solid var(--bad)}
.ln.hl2{background:rgba(162,97,10,.05);margin:0 -16px;padding:9px 16px;border-left:2px solid var(--warn)}
.finds .fd2{padding:12px 14px;border-bottom:1px solid var(--line)}
.finds .fd2:last-child{border-bottom:0}
.finds .t{display:flex;gap:8px;align-items:center;font-weight:650;font-size:12.5px;margin-bottom:6px}
.finds p{font-size:12px;color:var(--tx2)}
.finds .c{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap}
.sev{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}
.aurow td:first-child{display:flex;gap:10px;align-items:center}

/* Analysis */
.fd{border:1px solid var(--line);border-radius:14px;background:var(--s1);margin-bottom:12px;overflow:hidden;box-shadow:var(--shadow)}
.fd>header{display:flex;gap:8px;align-items:center;padding:12px 14px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.fd>header b{font-size:13.5px;flex:1;min-width:200px}
.fd .body{padding:12px 14px;display:grid;gap:10px}
.fd .why{font-size:12.5px;color:var(--tx2)}.fd .why b{color:var(--tx)}
.fd.dismissed{opacity:.6}
.fd.accepted{border-color:rgba(8,125,87,.4)}
.vs{display:grid;grid-template-columns:1fr 40px 1fr;gap:10px;align-items:stretch}
.vs .mid{display:grid;place-items:center}.vs .mid span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font:700 10px var(--mono);color:var(--t-bad);background:rgba(197,29,64,.08);border:1px solid rgba(197,29,64,.3)}
.q{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--s2);font-size:12.5px}
.q blockquote{font-size:13px;line-height:1.55;color:var(--tx);margin:6px 0 8px;padding-left:10px;border-left:2px solid var(--line3);overflow-wrap:anywhere}
.q a{text-decoration:none}
.runbox{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 14px}
.runbox .grow{flex:1;min-width:200px}

/* Ask Evidentor */
.askbox textarea{min-height:64px}
.ans .qline{display:flex;gap:8px;align-items:flex-start;color:var(--tx3);font-size:12.5px}.ans .qline b{color:var(--tx);font-size:13.5px}
.ans .atext{margin-top:10px;font-size:14px;line-height:1.65}.ans .atext p{margin-bottom:8px}
.ans sup.cite{font:600 10px var(--mono);color:#fff;background:var(--pri);border-radius:999px;padding:1px 5px;margin-left:2px;cursor:pointer;vertical-align:super}
.srcs{display:grid;gap:6px;margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
.srcchip{display:flex;gap:10px;align-items:flex-start;padding:9px 11px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:inherit;background:var(--s2);transition:border-color .2s,background .2s}
.srcchip:hover{border-color:var(--line3)}.srcchip.flash{background:#eef2ff;border-color:var(--pri)}
.srcchip svg{color:var(--pri2);margin-top:2px}.srcchip b{display:block;font-size:12.5px}.srcchip small{color:var(--tx3);font-size:11.5px;display:block;overflow-wrap:anywhere}

/* Graph */
.gwrap{position:relative;min-height:640px;border-radius:14px;overflow:hidden;background:repeating-linear-gradient(0deg,transparent 0 31px,var(--line) 31px 32px),repeating-linear-gradient(90deg,transparent 0 31px,var(--line) 31px 32px),var(--s1);border:1px solid var(--line)}
.gwrap>svg{width:100%;height:640px;display:block;touch-action:none}
.gwrap>svg text{font:600 12px var(--sans);fill:var(--tx);paint-order:stroke;stroke:var(--s1);stroke-width:3px}
.gwrap text.sublab{font:500 10.5px var(--sans);fill:var(--tx4)}
.gwrap text.ini{paint-order:normal;stroke:none;font-family:var(--sans)}
.gwrap .edge{stroke-width:1.5;transition:opacity .2s,stroke-width .2s}.gwrap .edge.strong{stroke-width:2.4}.gwrap .edge.hl{stroke-width:3.2}
.gwrap .gn{cursor:pointer;transition:opacity .2s}.gwrap .gn.dim{opacity:.32}.gwrap .gn:hover circle,.gwrap .gn:focus-visible circle{stroke-width:3.2}.gwrap .gn:focus-visible{outline:none}
.gwrap .gn circle{filter:drop-shadow(0 2px 4px rgba(9,9,11,.12))}
.gtools{position:absolute;left:12px;top:12px;display:flex;gap:6px;flex-wrap:wrap}
.pathbtn{text-align:left;border:1px solid var(--line);background:var(--s2);border-radius:10px;padding:9px 11px;cursor:pointer;font-size:12.5px;display:grid;gap:2px;transition:border-color .2s,background .2s}
.pathbtn:hover{border-color:var(--line3)}.pathbtn.on{border-color:var(--pri);background:#eef2ff}
.pathbtn small{color:var(--tx3);font:500 11px var(--mono)}
.glegend{position:absolute;left:12px;bottom:12px;display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--tx2);background:color-mix(in srgb,var(--s1) 92%,transparent);border:1px solid var(--line);border-radius:999px;padding:6px 12px}
.glegend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px;vertical-align:-1px}

/* Reports */
.paper{background:var(--paper);color:#111;border-radius:6px;padding:44px 52px;box-shadow:0 20px 50px -20px rgba(9,9,11,.3);border:1px solid var(--line);font:14px/1.6 Georgia,"Times New Roman",serif;max-width:860px;position:relative}
.paper .draft{font:700 10px var(--mono);letter-spacing:.14em;color:#a4161a}
.paper h1{font:650 20px var(--sans);letter-spacing:-.02em;margin:6px 0 2px;color:#09090b}
.paper .meta{font:12px var(--sans);color:#555;margin-bottom:18px}
.paper h3{font:650 14px var(--sans);margin:18px 0 6px;color:#09090b}
.paper p{margin-bottom:8px;overflow-wrap:anywhere}
.paper sup{font:600 9px var(--mono);color:#2b58dc;cursor:help}
.paper table{margin:14px 0;font:12px var(--sans)}.paper th,.paper td{border:1px solid #d5d5d8;padding:6px 8px;color:#222}.paper th{background:#f2f2f0;color:#333}
.paper .notes{border-top:1px solid #ccc;margin-top:20px;padding-top:10px;font:12px var(--sans);color:#333}
.paper .notes li{margin:0 0 6px 18px;overflow-wrap:anywhere}
.paper .notes a{color:#2b58dc}
.paper textarea{width:100%;font:14px/1.6 Georgia,serif;border:1px dashed #9a9ab0;border-radius:6px;padding:6px;min-height:80px;background:#fbfbff;color:#111}
.ropts{display:grid;gap:10px}
.opt{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--row);font-size:12.5px}
.tg{width:34px;height:20px;border-radius:999px;background:var(--ink);position:relative;border:0;cursor:pointer;flex:none}
.tg:after{content:"";position:absolute;top:3px;left:17px;width:14px;height:14px;border-radius:50%;background:var(--ink-tx);transition:left .15s}
.tg.off{background:var(--s3)}.tg.off:after{left:3px;background:var(--tx4)}

/* Login */
.auth{min-height:100dvh;display:grid;place-items:center;padding:16px;overflow:hidden;background:var(--bg)}
.auth .box{width:min(400px,100%);background:var(--s1);border:1px solid var(--line);border-radius:20px;padding:26px 24px;box-shadow:var(--shadow)}
.auth .brand{padding:0 0 18px;justify-content:center}
.auth h1{font-size:19px;text-align:center;margin-bottom:4px;font-weight:650}
.auth p.sub{text-align:center;color:var(--tx3);font-size:12.5px;margin-bottom:18px}
.auth .btn{width:100%;min-height:42px;font-size:14px}
.auth .err{color:var(--t-bad);font-size:12.5px;min-height:18px;text-align:center}
.auth .foot{text-align:center;color:var(--tx4);font-size:11px;margin-top:14px}

/* Responsive */
@media (max-width:1180px){
  .kpis{grid-template-columns:repeat(2,1fr)}
  .ov,.split,.split.narrow,.split.wide{grid-template-columns:1fr!important}
  .pipe{grid-template-columns:repeat(3,1fr)}
  .sform{grid-template-columns:1fr 1fr}
  .sform .qcol,.sform .c-case,.sform .c-purpose,.sform .c-go{grid-column:1/-1}
}
@media (max-width:1000px){
  .app{grid-template-columns:1fr}
  .side{position:fixed;z-index:70;top:0;bottom:0;left:0;width:272px;transform:translateX(-100%);transition:transform .25s var(--out);height:100dvh}
  body.side-open .side{transform:none;box-shadow:0 0 60px rgba(0,0,0,.25)}
  body.side-open .scrim{display:block;position:fixed;inset:0;z-index:60;background:rgba(9,9,11,.45)}
  .menu{display:grid}
  .qs{display:none}
  .top{padding:0 14px;gap:10px}
  .content{padding:16px 14px 40px}
  .grid2,.grid3{grid-template-columns:1fr}
  .purpose{max-width:180px}
  .quota{display:none}
  .side:after{display:none}
}
@media (max-width:640px){
  html,body{font-size:14px}
  .btn{min-height:44px;padding:0 16px;font-size:14px}.btn.s{min-height:36px;font-size:12.5px}.ib{width:40px;height:40px}.mini{min-height:32px;padding:4px 11px;font-size:12px}
  .in,select.in,textarea.in{min-height:44px;border-radius:11px;padding:8px 12px}
  label.fl{font-size:12px}
  .tabs a,.tabs button{padding:10px 12px;font-size:13.5px}
  .card>header{padding:13px 14px}
  .top{height:56px}
  .pagehead{margin-bottom:12px}.pagehead p{font-size:13px}
  .content{padding:14px 14px 48px}
  .kindhint{min-height:0}
  .purpose{display:none}
  .kpis{grid-template-columns:1fr 1fr;gap:10px}
  .kpi{padding:12px}.kpi .v{font-size:22px}
  .pipe{grid-template-columns:1fr 1fr}
  .f .row{grid-template-columns:1fr}
  .sform{grid-template-columns:2fr 1fr;gap:10px 8px}
  .sform .c-city{grid-column:1}.sform .c-state{grid-column:2}.sform .c-by{grid-column:1/-1}
  .sform .c-go{margin-top:4px}
  .vs{grid-template-columns:1fr}.vs .mid{padding:2px 0}
  .it{grid-template-columns:1fr}.it .tri{justify-content:flex-start}
  .paper{padding:22px 18px}
  .pagehead h1{font-size:19px}
  .kv{grid-template-columns:1fr;gap:2px}.kv dd{margin-bottom:8px}
  .ln{grid-template-columns:52px minmax(0,1fr)}.ln .sp{grid-column:2}.ln p{grid-column:1/-1}
  .rt thead{display:none}
  .rt,.rt tbody,.rt tr,.rt td{display:block;width:100%}
  .rt tr{padding:12px 14px;border-bottom:1px solid var(--line)}
  .rt tr:last-child{border-bottom:0}
  .rt td{padding:3px 0;border:0;white-space:normal}
  .rt td.mono{white-space:normal}
  .rt td[data-l]:before{content:attr(data-l);display:inline-block;min-width:92px;font:600 10px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--tx4)}
  .prog{width:100%}
  .modal{align-items:end;padding:0}
  .modal .box{border-radius:18px 18px 0 0;max-height:92dvh}
  .gwrap>svg{height:520px}.gwrap{min-height:520px}
  .gtools{position:static;padding:12px 12px 0}
}
/* Phone and tablet: inputs never trigger iOS zoom (it zooms any field under 16px on focus, iPad included) */
.tabbar,.tlogo,.back,.sideacts{display:none}
@media (max-width:1000px){
  input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea{font-size:16px!important}
  body.modal-open{overflow:hidden}
}

/* Phone app shell: compact top bar with back or logo and the page title; bottom tab bar; help and sign-out live in the menu */
@media (max-width:760px){
  .menu,#helpBtn,#logoutBtn,#qsMobile{display:none!important}
  .top{height:calc(56px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 12px 0 10px;gap:8px}
  .tlogo{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:10px}
  .back:not([hidden]){display:grid}
  .back:not([hidden])~.tlogo{display:none}
  .crumb{flex:1;min-width:0;display:block}
  .crumb>span{display:none}
  .crumb b{display:block;font-size:16.5px;font-weight:650;letter-spacing:-.02em;color:var(--tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tr{gap:6px}
  .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:50;padding:6px max(6px,env(safe-area-inset-left)) calc(6px + env(safe-area-inset-bottom));
    background:color-mix(in srgb,#fff 90%,transparent);-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);border-top:1px solid var(--line);box-shadow:0 -8px 30px -18px rgba(9,9,11,.18)}
  .tabbar a,.tabbar button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:52px;border:0;background:none;cursor:pointer;
    color:var(--tx3);font:600 12px var(--sans);letter-spacing:-.005em;text-decoration:none;-webkit-tap-highlight-color:transparent}
  .tabbar svg.i{width:22px;height:22px;position:relative;z-index:1;transition:transform .25s var(--out)}
  .tabbar a:before{content:"";position:absolute;top:4px;left:50%;width:52px;height:30px;margin-left:-26px;border-radius:999px;background:rgba(47,95,232,.12);transform:scale(.4);opacity:0;transition:transform .3s var(--out),opacity .2s}
  .tabbar a.on{color:var(--tx)}.tabbar a.on svg{color:var(--pri2)}
  .tabbar a.on:before{transform:none;opacity:1}
  .tabbar a:active svg,.tabbar button:active svg{transform:scale(.88)}
  body.side-open #tbMenu{color:var(--tx)}
  .content{padding:16px max(16px,env(safe-area-inset-left)) calc(100px + env(safe-area-inset-bottom))}
  .toast{bottom:calc(86px + env(safe-area-inset-bottom))}
  .side{width:min(304px,86vw);padding-bottom:calc(16px + env(safe-area-inset-bottom))}
  .nav a{min-height:46px;font-size:15px;padding:0 12px}
  .nav .h{font-size:12px;padding:14px 12px 6px}
  .nav a .n{font-size:12.5px}
  .brand .tag{font-size:12px}
  .ws b,.me b{font-size:14px}.ws small,.me small{font-size:12.5px}.ws .av,.me .av{font-size:12.5px}
  .sideacts{display:grid;gap:2px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.1)}
  .sideacts a,.sideacts button{display:flex;align-items:center;gap:10px;min-height:46px;padding:0 12px;border-radius:8px;border:0;background:none;color:#c2c2c9;font:500 15px var(--sans);text-decoration:none;cursor:pointer;text-align:left}
  .sideacts a:active,.sideacts button:active{background:rgba(255,255,255,.08)}
  .me{min-height:52px}
}

/* Phone polish: 44px targets, 12px minimum text, balanced action rows, wrapped tabs, sheet dialogs with sticky actions */
@media (max-width:640px){
  html,body{font-size:15px}
  .pagehead{flex-direction:column;align-items:stretch;gap:14px;margin-bottom:16px}
  .pagehead h1{font-size:23px;letter-spacing:-.035em}
  .pagehead p{font-size:14px;line-height:1.5;margin-top:6px}
  .content .btns>.btn{flex:1 1 auto;min-width:calc(50% - 4px)}
  .content .btns>.btn.p{flex-basis:100%;order:-1}
  .content .btns>.btn.g{flex-grow:1}
  .btn{min-height:46px;font-size:14.5px}
  .btn.s{min-height:40px;padding:0 14px;font-size:13.5px}
  .ib{width:42px;height:42px}
  .mini{min-height:40px;padding:6px 14px;font-size:13px}
  .in,select.in,textarea.in{min-height:48px;border-radius:12px;padding:10px 14px}
  select.in.s,.in.s{min-height:46px;border-radius:12px;width:100%}
  textarea.in{min-height:110px}
  label.fl{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:6px;row-gap:8px;font-size:13.5px}
  label.fl>*:not(small){flex:1 0 100%;min-width:0}
  label.fl small{font-size:12.5px}
  .f{gap:16px}
  .check{min-height:44px;font-size:14.5px}.check input{width:20px;height:20px}
  .toolbar{gap:10px}
  .toolbar>*{flex:1 1 150px;min-width:0}
  .toolbar>.btn{flex:1 1 auto}
  .tabs{flex-wrap:wrap;gap:6px;border-bottom:0;overflow:visible;margin-bottom:16px}
  .tabs a,.tabs button{min-height:40px;padding:0 12px;margin:0;border:1px solid var(--line2);border-radius:999px;background:var(--s1);font-size:14px;color:var(--tx2)}
  .tabs .on{background:var(--ink);color:var(--ink-tx);border-color:var(--ink)}
  .tabs .on .n{background:rgba(255,255,255,.18);color:#fff}
  .tabs .n{font-size:12px}
  .card{border-radius:16px}
  .card>header{padding:14px 16px;gap:10px}.card>header h4{font-size:15px}
  .card .pad{padding:16px}
  .kpis{gap:12px}.kpi{padding:16px 14px 14px}.kpi .v{font-size:26px}.kpi .d{font-size:13px}
  .lbl{font-size:12px}
  th{font-size:12px}
  .chip{font-size:12px;min-height:24px;padding:0 9px}
  a.chip,button.chip{min-height:40px;padding:0 13px}
  .src{font-size:12px}
  a.src{display:inline-flex;align-items:center;min-height:40px}
  .it a[target=_blank],.ti a[target=_blank],.gh a[target=_blank],.group a[target=_blank]{display:inline-flex;align-items:center;min-height:40px}
  .tabs .n,.ft,.cav,.paper .draft,.ptime,.fi small,.it .cat span,.it .cat em,.tli .when,.recent a small,.kindhint,.part,.glegend,.auth .foot,.qs kbd{font-size:12px}
  .note{font-size:13.5px}.note.fine{font-size:12.5px}
  .content small{font-size:12.5px}
  .fi p,.ti p,.it .s,.finds p,.fd .why,.q{font-size:14px}
  .ti .t,.it .t,.finds .t{font-size:14.5px}
  .subj{padding:18px 16px;gap:14px}.subj h2{font-size:21px}.subj .meta{font-size:13.5px;gap:8px 14px}
  .kv{font-size:14px;padding:14px 16px}
  .kpi a,.subj .meta a,.kv a,.rt td a,.fi a,.tli a,.gh a{padding:12px 0}.paper .notes a{padding:13px 0}
  .mini{min-width:44px}
  .vs .mid span{width:36px;height:36px;font-size:12px}
  .kv dd.hash{font-size:12.5px}
  .paper sup{font-size:12px}
  .tg{width:52px;height:32px}.tg:before{content:"";position:absolute;inset:-8px -4px}
  .ln{font-size:14.5px;padding:12px 0;gap:6px 12px}.ln .ts{font-size:12.5px}.ln .sp{font-size:13px}
  .ln:hover,.ln.now,.ln.hl,.ln.hl2{padding:12px 16px}
  .player{padding:16px}
  .player .head{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;align-items:center}
  .player .head>div{min-width:0}.player .head b{font-size:16px!important;line-height:1.3;display:block}
  .player .head .src{margin-top:3px;line-height:1.45}
  .player .head>.btns{grid-column:1/-1}
  .play{width:48px;height:48px}.play svg{width:18px;height:18px}
  .wave{height:64px}
  .pathbtn{min-height:48px;font-size:14px;padding:10px 12px}
  .tg:after{top:4px;left:24px;width:24px;height:24px}.tg.off:after{left:4px}
  .opt{min-height:52px;font-size:14px}
  details>summary{min-height:44px;display:flex;align-items:center;gap:8px}
  .sform{align-items:end}
  .sform .c-go{min-height:50px}
  .drop{padding:18px 16px}.drop input.in,.drop>.btn,.drop .btn.p{flex:1 1 100%}
  .paper{padding:22px 18px;font-size:15px}.paper sup{font-size:12px}
  .gwrap.narrow{min-height:0}
  .gwrap.narrow>svg text{font-size:15px;stroke-width:3.5px}
  .gwrap.narrow text.sublab{font-size:12.5px}
  .gwrap.narrow text.ini{font-size:13px}
  .glegend{position:static;margin:0 12px 12px;border-radius:12px;display:flex}
  .modal .box{display:flex;flex-direction:column;border-radius:22px 22px 0 0;max-height:94dvh}
  .modal .box:before{content:"";display:block;width:40px;height:5px;border-radius:9px;background:var(--line2);margin:8px auto 0;flex:none}
  .modal header{padding:12px 16px 14px}
  .modal header h3{font-size:17px}
  .modal .body{padding:18px 16px}
  .modal footer{position:sticky;bottom:0;background:var(--s1);padding:12px 16px calc(12px + env(safe-area-inset-bottom));gap:10px;flex-wrap:nowrap}
  .modal footer .btn{flex:1}
  .toast{font-size:14px;padding:12px 18px}
  .empty{padding:32px 16px}.empty b{font-size:16px}
}
@media (max-height:940px){.quota{display:none}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{.side,.top,.ropts,.noprint{display:none!important}.app{display:block}.paper{box-shadow:none;border:0;max-width:none;padding:0}}
