@import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500&display=swap');
:root{--bg:#f7f7f6;--surface:#fff;--surface-muted:#f2f2f1;--surface-2:#f5f5f4;--ink:#1a1a1e;--ink-2:#3b3b42;--side-ink:#52525a;--muted:#68686f;--border:#dcdcda;--border-soft:#e8e8e6;--border-strong:#ccccc9;--brand:#4332b8;--brand-dark:#36187d;--brand-light:#efecfb;--danger:#dc2626;--success:#059669;--warn:#d97706;--warn-light:#fef3c7;--purple:#7c3aed;--orange:#ea580c;--r:10px;--r-lg:14px;--sh-sm:0 1px 3px #1c19170f;--sh:0 12px 30px #1c191712;
--font:"Geist",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--head:"Geist",system-ui,sans-serif;--mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font:13.5px/1.45 var(--font)}
a{color:var(--brand);text-decoration:none}button,input,select{font:inherit}
.hidden{display:none!important}
.up{font-size:11px;text-transform:uppercase;letter-spacing:.14em;font-weight:600;color:var(--muted)}
.ico{width:18px;height:18px;flex:none}
/* login */
.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}
.login .card{width:100%;max-width:380px;padding:26px}
/* ===== shell ===== */
.app{display:grid;grid-template-columns:224px minmax(0,1fr);grid-template-rows:64px 1fr;min-height:100vh}
.topbar{grid-column:1/-1;position:sticky;top:0;z-index:5;height:64px;background:var(--surface);border-bottom:1px solid var(--border);border-top:3px solid var(--brand);display:flex;align-items:center;gap:16px;padding:0 20px}
.brand{display:flex;flex-direction:column;line-height:1.05;min-width:190px}
.brand img{height:22px;display:block;width:auto;align-self:flex-start}.brand .wm{font-family:var(--head);font-weight:700;letter-spacing:.06em;font-size:20px;color:var(--ink)}.brand img+.wm{display:none}
.brand .sub{font-size:13px;color:var(--muted);margin-top:3px}
.search{display:flex;align-items:center;gap:8px;background:var(--surface-muted);border:1px solid transparent;border-radius:var(--r);padding:0 12px;height:38px;width:min(340px,40vw);color:var(--muted)}
.search:focus-within{border-color:var(--brand);background:var(--surface)}.search input{border:0;padding:0;height:100%;background:transparent;font-size:14px;width:100%}.search input:focus{outline:0}.search .ico{width:16px;height:16px}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.tb-right .pillbtn{display:inline-flex;white-space:nowrap;align-items:center;gap:7px;border:1px solid var(--border);border-radius:var(--r);padding:8px 14px;background:var(--surface);font-weight:600;font-size:13px;color:var(--ink);cursor:pointer}
.tb-right select{width:auto;padding:8px 30px 8px 12px;font-weight:600;font-size:13px;border-radius:var(--r)}
.avatar{width:36px;height:36px;border-radius:9px;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:700;font-size:15px;font-family:var(--head);position:relative}
.avatar i{position:absolute;right:-2px;bottom:-2px;width:9px;height:9px;border-radius:99px;background:var(--success);border:2px solid var(--surface)}
.side{background:var(--surface);border-right:1px solid var(--border);padding:12px 10px 20px;display:flex;flex-direction:column;position:sticky;top:64px;height:calc(100vh - 64px);overflow:auto}
.sec{display:flex;align-items:center;gap:10px;padding:14px 10px 6px;color:var(--ink-2);cursor:pointer;user-select:none}.sec .up{flex:1;font-size:11.5px;letter-spacing:.2em;font-weight:600;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sec .ico{width:16px;height:16px;color:var(--muted)}.sec .chev{width:13px;height:13px;transition:transform .15s;transform:rotate(180deg)}
.sgroup{border-bottom:1px solid var(--border-soft);padding-bottom:6px}.sgroup:last-child{border-bottom:0}.sgroup.folded .gitems{display:none}.sgroup.folded .chev{transform:none}
.sclient{margin:10px 6px 4px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--brand) 9%,transparent);display:flex;flex-direction:column;gap:1px}.sclient .up{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.sclient b{font-size:13px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:900px){.side .sclient{display:none}}
.gitems{margin-left:18px;padding-left:8px;border-left:1px solid var(--border-soft)}
.stop{display:flex;align-items:center;gap:6px;padding:0 0 6px;margin-bottom:2px;border-bottom:1px solid var(--border-soft)}
.sidefold{margin:0 10px 0 -8px;width:30px;height:30px;border:0;background:none;cursor:pointer;border-radius:8px;display:grid;place-items:center;color:var(--muted);flex:none}.sidefold:hover{background:var(--surface-muted);color:var(--ink)}.sidefold .ico{width:18px;height:18px;transition:transform .15s}
.srecent{flex:1;text-align:left;border:0;background:none;cursor:pointer;font-family:inherit;color:var(--muted);font-size:14px;padding:6px 6px;border-radius:8px}.srecent:hover{color:var(--ink);background:var(--surface-muted)}
.recent{padding:4px 0 8px;border-bottom:1px solid var(--border-soft)}.recent a{font-size:14px;padding:6px 12px}
/* « : icons only */
.app.narrow{grid-template-columns:68px minmax(0,1fr)}
.app.narrow .side{padding:12px 8px 20px}
.app.narrow .sidefold .ico{transform:rotate(180deg)}
.app.narrow .stop{display:none}
.app.narrow .srecent,.app.narrow .recent,.app.narrow .sclient,.app.narrow .side .lbl,.app.narrow .sec .up,.app.narrow .sec .chev{display:none}
.app.narrow .sec{justify-content:center;padding:14px 0 6px;pointer-events:none}
.app.narrow .gitems{margin:0;padding:0;border:0;display:block!important}
.app.narrow .side a{justify-content:center;padding:9px 0}
.app.narrow .side .cnt{position:absolute;top:2px;right:2px;margin:0;padding:0 5px;font-size:10px;line-height:15px;background:var(--brand);color:#fff}
.side a{display:flex;align-items:center;gap:11px;color:var(--side-ink);padding:5px 10px;margin:1px 0;border-radius:8px;font-weight:400;font-size:13.5px;letter-spacing:.005em;position:relative}
.side a .ico{width:16px;height:16px;color:var(--side-ink)}
.side a:hover{background:var(--surface-muted)}.side a.active{background:var(--brand-light);color:var(--brand);font-weight:500}.side a.active .ico{color:var(--brand)}
.side .cnt{margin-left:auto;background:var(--surface-muted);color:var(--ink-2);font-size:11.5px;font-weight:500;padding:1px 8px;border-radius:99px}.side a.active .cnt{background:var(--surface)}
.side .divider{height:1px;background:var(--border-soft);margin:6px 0}
.main{padding:20px 20px 28px;max-width:1500px;width:100%}
@media(max-width:900px){.app{grid-template-columns:1fr;grid-template-rows:64px auto 1fr}.side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--border);padding:6px}.side .sec,.side .divider,.side .stop,.side .recent{display:none}.side .gitems{margin:0;padding:0;border:0;display:contents}.side .sgroup{display:contents}.side a{padding:8px 10px}.side a span.lbl{display:none}.search{display:none}.brand .sub{display:none}.sidefold{display:none}.main{padding:12px}}
/* ===== strip of stat cells ===== */
.strip{display:grid;grid-template-columns:repeat(4,1fr) auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);margin-bottom:14px;overflow:hidden}
.cell{display:flex;align-items:center;gap:12px;padding:14px 18px;border-right:1px solid var(--border-soft)}.cell .ico{width:20px;height:20px;color:var(--ink-2)}
.cell .v{font-family:var(--head);font-weight:700;font-size:17px;line-height:1.1;margin-top:2px}.cell.b .v,.cell.b .ico{color:var(--brand)}.cell.g .v,.cell.g .ico{color:var(--success)}.cell.a .v,.cell.a .ico{color:var(--warn)}.cell.r .v,.cell.r .ico{color:var(--danger)}
.strip .link{display:flex;align-items:center;padding:0 18px;font-weight:600;color:var(--brand);white-space:nowrap}
@media(max-width:900px){.strip{grid-template-columns:1fr 1fr}.strip .link{grid-column:1/-1;padding:10px 18px;border-top:1px solid var(--border-soft)}}
/* ===== command card ===== */
.cmd{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:16px 18px;margin-bottom:14px}
.cmd .hd{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.cmd .title h1{font-family:var(--head);font-size:19px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;margin:0}.cmd .title .up{margin-top:2px;font-size:10px}
.kpis{display:flex;align-items:stretch;flex:1;flex-wrap:wrap}
.kpi{display:flex;align-items:center;gap:12px;padding:0 22px;border-left:1px solid var(--border-soft)}.kpi:first-child{border-left:0}
.kpi .ico{width:26px;height:26px}.kpi .v{font-family:var(--head);font-weight:700;font-size:17px}.kpi .v small{font-family:var(--font);font-weight:500;color:var(--muted);font-size:11px;margin-left:4px}
.kpi.b .ico{color:var(--brand)}.kpi.g .ico{color:var(--success)}.kpi.p .ico{color:var(--purple)}.kpi.a .ico{color:var(--warn)}.kpi.r .ico{color:var(--danger)}
.btn{border:1px solid var(--border);background:var(--surface);color:var(--ink);padding:8px 13px;border-radius:var(--r);cursor:pointer;font-weight:600;font-size:13px;display:inline-flex;align-items:center;gap:7px;transition:.15s ease;white-space:nowrap}
.btn:hover{border-color:var(--border-strong);background:var(--surface-2)}.btn .ico{width:15px;height:15px}
.btn.p{background:var(--brand);border-color:var(--brand);color:#fff;text-transform:uppercase;letter-spacing:.04em;padding:11px 20px;font-size:14px;border-radius:12px}.btn.p:hover{background:var(--brand-dark)}
.btn.s{padding:5px 9px;font-size:12px;font-weight:500}.btn.d{color:var(--danger)}.btn.u{text-transform:uppercase;letter-spacing:.06em;font-size:12px}
.filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--border-soft)}
.filters .fsearch{flex:1;min-width:220px;max-width:480px;height:40px}
.filters select{width:auto;min-width:170px;height:40px;background:var(--surface-muted);border-color:transparent;font-weight:500}
.filters .spacer{flex:1}
/* ===== table card ===== */
.tcard{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);overflow:hidden}
.tcard .tscroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.12em;padding:10px 12px;border-bottom:1px solid var(--border);background:var(--surface);border-right:1px solid var(--border-soft);white-space:nowrap}th:last-child{border-right:0}
td{padding:8px 12px;border-bottom:1px solid var(--border-soft);border-right:1px solid var(--border-soft);vertical-align:middle;white-space:nowrap}td:last-child{border-right:0}
tbody tr{position:relative}tbody tr:hover td{background:var(--surface-2)}tbody tr td:first-child{box-shadow:inset 3px 0 0 var(--brand-light)}tbody tr:hover td:first-child{box-shadow:inset 3px 0 0 var(--brand)}
td.act{text-align:right}td.id{font-weight:700}td.num{text-align:right;font-variant-numeric:tabular-nums}
.chip{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:6px;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--border);background:var(--surface);color:var(--ink-2)}
.chip.blue{color:var(--brand);border-color:#c7cdf5;background:#f3f5ff}.chip.amber{color:#b45309;border-color:transparent;background:var(--warn-light)}.chip.green{color:var(--success);border-color:#bfe8d5;background:#eaf8f1}.chip.red{color:var(--danger);border-color:#f5c2c2;background:#fdeeee}.chip.gray{color:var(--muted);background:var(--surface-muted);border-color:transparent}
.chip .dot{width:7px;height:7px;border-radius:99px;background:currentColor}
.datechip{display:inline-flex;gap:6px;align-items:center;font-size:12px}.datechip b{font-size:10px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;background:var(--surface-muted);padding:1px 6px;border-radius:5px}
.mono{font-family:var(--mono);font-size:12.5px}
.tfoot{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--border);background:var(--surface)}
.tfoot .sum{display:flex;gap:16px;align-items:center}.tfoot .sum span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}.tfoot .sum b{font-family:var(--head);color:var(--brand);font-size:14px;margin-left:6px}
.tfoot .clocks{display:flex;gap:18px;margin-left:auto;align-items:center;padding-left:18px;border-left:1px solid var(--border-soft)}
.clk{display:flex;align-items:center;gap:8px}.clk .ico{width:15px;height:15px}.clk .z{font-size:10px;letter-spacing:.14em;font-weight:700}.clk .t{font-family:var(--head);font-weight:700;font-size:13px}.clk .t small{font-family:var(--font);font-weight:500;color:var(--muted);font-size:10px;margin-left:3px}
.clk.pt .z,.clk.pt .ico{color:var(--brand)}.clk.mt .z,.clk.mt .ico{color:var(--danger)}.clk.ct .z,.clk.ct .ico{color:var(--orange)}.clk.et .z,.clk.et .ico{color:var(--success)}
.tfoot .pager{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;padding-left:18px;border-left:1px solid var(--border-soft)}.pager button{border:0;background:none;cursor:pointer;color:var(--ink-2);padding:2px 4px}
.empty{padding:34px;text-align:center;color:var(--muted)}
/* ===== generic cards / forms ===== */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:18px 20px}
.grid{display:grid;gap:14px}.grid>*{min-width:0}.g2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}@media(max-width:900px){.g2{grid-template-columns:1fr}}
h2{font-family:var(--font);font-size:11px;margin:0 0 12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.12em}
form .f{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}label{font-size:11px;color:var(--muted);font-weight:600;letter-spacing:.08em;text-transform:uppercase}
input,select{padding:9px 11px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);width:100%;color:var(--ink)}input:focus,select:focus{outline:3px solid var(--brand-light);border-color:var(--brand)}
.row{display:flex;gap:10px;align-items:center}.row>*{flex:1}.right{display:flex;gap:8px;justify-content:flex-end;margin-top:6px}
.err{color:var(--danger);font-size:13px;margin:6px 0}.ok{color:var(--success);font-size:13px}.muted{color:var(--muted);font-size:13px}
.modal{position:fixed;inset:0;background:rgba(26,26,30,.4);display:grid;place-items:center;padding:20px;z-index:10}.modal .card{width:100%;max-width:470px;max-height:92vh;overflow:auto;box-shadow:var(--sh)}
.modal h2{font-family:var(--head);font-size:16px;text-transform:none;letter-spacing:0;color:var(--ink);font-weight:700;margin-bottom:14px}
.kv{display:grid;grid-template-columns:130px 1fr;gap:6px 12px;font-size:13.5px}.kv b{color:var(--muted);font-weight:600;font-size:11px;letter-spacing:.08em;text-transform:uppercase;align-self:center}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:6px}.checks label{display:flex;gap:8px;align-items:center;font-weight:500;color:var(--ink);font-size:13.5px;text-transform:none;letter-spacing:0}.checks input{width:auto}
/* ===== phase A: routing core ===== */
.chip.purple{color:var(--purple);border-color:#ddd0fb;background:#f5f0ff}
textarea{padding:9px 11px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);width:100%;color:var(--ink);font:inherit;resize:vertical}textarea:focus{outline:3px solid var(--brand-light);border-color:var(--brand)}
.modal .card.wide{max-width:760px}
.hourspill{padding:5px 10px!important;gap:6px}.hourspill .chip{border:0}
.stsel{width:auto;padding:3px 24px 3px 8px;font-size:12px;border-radius:7px;margin-left:4px;background:var(--surface-muted);border-color:transparent}
.destpick{display:flex;gap:6px}.destpick select{flex:1;min-width:0}.destpick input{flex:1;min-width:0}
.keys{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px}@media(max-width:700px){.keys{grid-template-columns:1fr}}
.keyrow{display:flex;align-items:center;gap:8px;margin:2px 0}.keyrow .destpick{flex:1}
.key{flex:none;display:inline-grid;place-items:center;width:26px;height:26px;border-radius:7px;background:var(--surface-muted);border:1px solid var(--border);font-family:var(--mono);font-weight:700;font-size:13px}
.greet{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.greet label.btn{text-transform:none;letter-spacing:0;color:var(--ink);font-size:12px}
.order{list-style:none;counter-reset:o;margin:0 0 6px;padding:0;border:1px solid var(--border-soft);border-radius:var(--r)}.order:empty{display:none}
.order li{counter-increment:o;display:flex;align-items:center;gap:8px;padding:5px 8px;border-bottom:1px solid var(--border-soft);font-size:13px}.order li:last-child{border-bottom:0}
.order li::before{content:counter(o);color:var(--muted);font-size:11px;width:14px}.order .sp{flex:1}.order .btn.s{padding:3px 5px}.order .ico{width:13px;height:13px}
.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--border);margin-bottom:14px}
.tab{border:0;background:none;padding:8px 12px;font-weight:600;font-size:13px;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.tab.on{color:var(--brand);border-bottom-color:var(--brand)}
table.hrs td{border:0;padding:3px 6px 3px 0;white-space:nowrap}table.hrs tbody tr td:first-child{box-shadow:none}table.hrs tr:hover td{background:none}table.hrs input[type=time]{width:auto;padding:5px 7px}
.hol{margin-bottom:6px}
.ovr{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 4px}
/* ===== call queues / wallboard ===== */
.wtiles{display:grid;grid-template-columns:repeat(8,1fr);gap:10px}@media(max-width:1100px){.wtiles{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){.wtiles{grid-template-columns:1fr 1fr}}
.wtile{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:14px 16px;border-top:3px solid var(--border-strong)}
.wv{font-family:var(--head);font-weight:700;font-size:30px;line-height:1.1;margin-top:4px}
.wtile.g{border-top-color:var(--success)}.wtile.g .wv{color:var(--success)}.wtile.r{border-top-color:var(--danger)}.wtile.r .wv{color:var(--danger)}
.wtile.a{border-top-color:var(--warn)}.wtile.a .wv{color:var(--warn)}.wtile.b{border-top-color:var(--brand)}.wtile.b .wv{color:var(--brand)}
#wall.tv{background:var(--bg);padding:24px;overflow:auto}#wall.tv .wv{font-size:54px}#wall.tv table{font-size:17px}#wall.tv h2{font-size:15px}
/* ===== operator panel ===== */
.pgrid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:14px;align-items:start}@media(max-width:1100px){.pgrid{grid-template-columns:1fr}}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:10px 12px;border-left:4px solid var(--border-strong);transition:.15s}
.tile.free{border-left-color:var(--success)}.tile.ringing{border-left-color:var(--brand);background:#f3f5ff}.tile.talking{border-left-color:var(--purple)}.tile.held{border-left-color:var(--warn)}.tile.off{opacity:.7}
.tile.over{outline:3px solid var(--brand);outline-offset:1px}.tile .row{gap:6px}.tile .row span:not(.odot){flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.odot{flex:none;width:9px;height:9px;border-radius:99px;background:#c9c9c6}.odot.on{background:var(--success)}
.tact{font-size:12.5px;margin-top:6px;color:var(--ink-2)}.tact.idle{color:var(--muted)}.tact.ringing{color:var(--brand);font-weight:600}.tact.talking{color:var(--purple);font-weight:600}
tr[draggable="true"]{cursor:grab}
/* ===== messages ===== */
.smsgrid{display:grid;grid-template-columns:320px 1fr;gap:14px;height:calc(100vh - 260px);min-height:420px}@media(max-width:900px){.smsgrid{grid-template-columns:1fr;height:auto}}
.convs,.thread{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:auto}
.conv{padding:10px 12px;border-bottom:1px solid var(--border-soft);cursor:pointer}.conv:hover{background:var(--surface-2)}.conv.on{background:var(--brand-light);box-shadow:inset 3px 0 0 var(--brand)}
.conv .row{gap:6px}.conv .cnt{flex:none;background:var(--brand);color:#fff;font-size:11px;font-weight:700;padding:1px 7px;border-radius:99px}.conv .snip{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:2px 0}
.thread{display:flex;flex-direction:column}.thd{padding:12px 14px;border-bottom:1px solid var(--border-soft)}
.msgs{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:8px;background:var(--surface-2)}
.bub{max-width:72%;padding:8px 11px;border-radius:14px;white-space:pre-wrap;word-wrap:break-word}.bub.in{align-self:flex-start;background:var(--surface);border:1px solid var(--border-soft)}
.bub.out{align-self:flex-end;background:var(--brand);color:#fff}.bub .meta{font-size:11px;opacity:.75;margin-top:3px}.bub.out .err{color:#fecaca;font-weight:600}.bub img{max-width:220px;border-radius:8px;margin-top:6px;display:block}
.compose{display:flex;gap:8px;padding:10px;border-top:1px solid var(--border-soft)}.compose textarea{flex:1}
/* buy a number */
.pick{max-height:300px;overflow:auto;border:1px solid var(--border-soft);border-radius:var(--r)}
.pick label{display:grid;grid-template-columns:auto 140px 1fr auto auto;gap:10px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--border-soft);text-transform:none;letter-spacing:0;font-size:13.5px;color:var(--ink);font-weight:500;cursor:pointer}
.pick label:last-child{border-bottom:0}.pick label:has(input:checked){background:var(--brand-light)}.pick input{width:auto}
.seg{display:flex;border:1px solid var(--border);border-radius:var(--r);overflow:hidden}.seg label{flex:1;margin:0;text-align:center;padding:7px 4px;cursor:pointer;text-transform:none;letter-spacing:0;font-size:13px;color:var(--ink)}
.seg input{display:none}.seg label:has(input:checked){background:var(--brand-light);color:var(--brand);font-weight:700}

/* new-text pop-up */
.toast{position:fixed;right:18px;bottom:18px;z-index:50;max-width:340px;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--brand);border-radius:var(--r);box-shadow:var(--sh);padding:12px 14px;cursor:pointer;animation:toastin .25s ease-out}
.toast b{display:flex;align-items:center;gap:6px}.toast b .ico{width:16px;height:16px;color:var(--brand)}.toast div{margin:4px 0 2px;color:var(--ink-2)}.toast small{color:var(--muted)}
@keyframes toastin{from{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}
.asbar{position:sticky;top:0;z-index:60;background:#fef3c7;border-bottom:1px solid #fcd34d;color:#78350f;padding:8px 16px;font-size:13px;display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap}
.asbar button{border:0;background:#78350f;color:#fff;border-radius:8px;padding:5px 12px;font-weight:600;cursor:pointer}
.grid.g21{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr)}@media(max-width:1100px){.grid.g21{grid-template-columns:minmax(0,1fr)}}
.tscroll{overflow-x:auto;max-width:100%}

/* ===== dark theme (top bar toggle; remembered per browser) ===== */
[data-theme=dark]{color-scheme:dark;--bg:#111214;--surface:#1a1b1f;--surface-muted:#23242a;--surface-2:#1f2025;--ink:#ececef;--ink-2:#c9c9cf;--side-ink:#b4b4bc;--muted:#9a9aa3;--border:#2e2f36;--border-soft:#26272d;--border-strong:#3a3b43;
  --brand:#9a8cf5;--brand-dark:#8475ef;--brand-light:#2a1f52;--warn-light:#3a2c10;--sh-sm:0 1px 3px #0006;--sh:0 12px 30px #0008}
[data-theme=dark] .chip.blue{background:#1e2447;border-color:#2d3775}[data-theme=dark] .chip.green{background:#0f2a20;border-color:#1c4d39}[data-theme=dark] .chip.red{background:#351717;border-color:#5c2424}
[data-theme=dark] .chip.purple{background:#261a40;border-color:#42306b}[data-theme=dark] .chip.amber{color:#f5b454}[data-theme=dark] .avatar{background:#e8e8ec;color:#111}
[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:var(--surface-2);color:var(--ink);border-color:var(--border)}
[data-theme=dark] .modal{background:#000a}[data-theme=dark] img[src="/denemo.svg"]{filter:invert(1) hue-rotate(180deg) brightness(1.2)}
/* top bar: bell + theme + avatar menu */
.tbicon{position:relative;display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);color:var(--ink-2);cursor:pointer}
.tbicon:hover{background:var(--surface-muted)}.tbicon .badge{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:var(--danger);color:#fff;font:700 11px/18px var(--font);text-align:center}
.avatar{cursor:pointer;border:0}
.menu{position:fixed;z-index:50;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--sh);min-width:260px;padding:6px}
.menu .mh{padding:10px 12px 8px;border-bottom:1px solid var(--border-soft);margin-bottom:4px}.menu .mh b{display:block}.menu .mh span{color:var(--muted);font-size:12.5px}
.menu a,.menu button{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;border:0;background:none;border-radius:8px;color:var(--ink);text-align:left;cursor:pointer;font-size:13.5px}
.menu a:hover,.menu button:hover{background:var(--surface-muted)}.menu .ico{width:16px;height:16px;color:var(--muted)}
.notes{width:360px;max-height:70vh;overflow:auto}.notes .ni{display:flex;gap:10px;padding:9px 12px;border-radius:8px;color:var(--ink)}.notes .ni:hover{background:var(--surface-muted)}
.notes .ni .dot{width:8px;height:8px;border-radius:99px;margin-top:6px;flex:none}.notes .ni small{display:block;color:var(--muted);font-size:12px}.notes .ni.new b{font-weight:700}
.main{min-width:0}
.sbar{height:6px;border-radius:99px;background:var(--surface-muted);margin-top:5px;overflow:hidden;max-width:260px}.sbar i{display:block;height:100%;border-radius:99px}
.systabs{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 14px;border-bottom:1px solid var(--border)}.systabs a{padding:9px 14px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;text-decoration:none}
.systabs a.on{color:var(--ink);border-color:var(--brand)}.systabs a:hover{color:var(--ink)}
pre.syslog{font-size:11px;max-height:200px;overflow:auto;background:var(--surface-2);padding:8px;border-radius:8px;margin-top:10px;white-space:pre-wrap}

.asbar.mir{background:#efecfb;border-color:#d3ccf5;color:#36187d}.asbar.mir button{background:#4332b8}.asbar.mir button#mirsign{background:transparent;color:#36187d;border:1px solid #aa9ef0}.asbar.mir .ico{width:15px;height:15px}
[data-theme=dark] .asbar.mir{background:#2a1f52;border-color:#45397f;color:#e6e1ff}[data-theme=dark] .asbar.mir button#mirsign{color:#e6e1ff}

/* RING-101 logo: white lettering on dark backgrounds */
[data-theme=dark] img.rlogo{content:url(/ring-101-white.png)}
th.num{text-align:right}
