
:root{--bg:#eceef1;--panel:#fff;--panel2:#f5f6f8;--line:#d9dce1;--ink:#14161a;--mute:#646b76;--blue:#1f5bff;--blue-soft:#e6edff;--side:#000;--side-ink:#c9cdd4;--good:#0f8a5f;--warn:#b86a00;--bad:#c2372f;
box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#17191d;--panel:#21242a;--panel2:#1b1e23;--line:#33373f;--ink:#f1f2f4;--mute:#9aa1ac;--blue:#4d7dff;--blue-soft:#1b2a55;--good:#3fc493;--warn:#e7a341;--bad:#f0756c}}
:root[data-theme="dark"]{--bg:#17191d;--panel:#21242a;--panel2:#1b1e23;--line:#33373f;--ink:#f1f2f4;--mute:#9aa1ac;--blue:#4d7dff;--blue-soft:#1b2a55;--good:#3fc493;--warn:#e7a341;--bad:#f0756c}
*{box-sizing:border-box}html,body{height:100%;margin:0}html{scroll-padding-top:env(safe-area-inset-top,0px)}
body{background:var(--bg);color:var(--ink);font:15px/1.5 "IBM Plex Sans",system-ui,sans-serif}
h1,h2,h3,.disp{font-family:Saira,"Arial Narrow",system-ui,sans-serif;margin:0;letter-spacing:.01em}
h1{font-size:26px;font-weight:700}h2{font-size:18px;font-weight:600}h3{font-size:15px;font-weight:600}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.btn{background:var(--blue);color:#fff;border:0;border-radius:6px;padding:9px 16px;font-weight:600}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn.sm{padding:5px 10px;font-size:13px}
input,select,textarea{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:8px 10px;width:100%}
label{display:block;font-size:13px;color:var(--mute);margin-bottom:4px}
.hide{display:none!important}
/* login */
#login{min-height:100%;display:grid;place-items:center;padding:24px;background:#000}
.lcard{width:100%;max-width:400px;background:var(--panel);border-radius:10px;padding:32px}
.lcard img{width:220px;max-width:100%;background:#fff;border-radius:6px;padding:6px;display:block;margin-bottom:24px}
.lcard .f{margin-bottom:14px}.lcard .btn{width:100%;margin-top:6px}
.note{font-size:13px;color:var(--mute)}
/* shell */
#app{display:grid;grid-template-columns:232px 1fr;height:100%}
aside{background:var(--side);color:var(--side-ink);display:flex;flex-direction:column;padding:16px 12px}
.logo{background:#fff;border-radius:8px;padding:8px 10px;margin-bottom:6px}.logo img{width:100%;display:block}
.by{font-size:12px;color:#8a909a;padding:0 4px 18px}
nav button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;color:var(--side-ink);padding:10px 12px;border-radius:6px;font-weight:500;border-left:3px solid transparent}
nav button:hover{color:#fff;background:#15171b}
nav button.on{color:#fff;background:#15171b;border-left-color:var(--blue)}
nav.main button{font-family:Saira,sans-serif;font-size:17px;font-weight:600}
nav.foot{margin-top:auto;border-top:1px solid #22252b;padding-top:10px}nav.foot button{font-size:14px;padding:8px 12px}
.who{font-size:12px;color:#8a909a;padding:10px 12px 0}
main{overflow:auto;padding:24px 28px 48px;min-width:0}
.top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.role{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--mute)}.role select{width:auto;padding:5px 8px}
.sample{font-size:12px;background:var(--blue-soft);color:var(--blue);border-radius:4px;padding:2px 8px;font-weight:600}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px;overflow-x:auto}
.tabs button{background:none;border:0;padding:9px 14px;color:var(--mute);font-weight:500;border-bottom:2px solid transparent;white-space:nowrap}
.tabs button.on{color:var(--ink);border-bottom-color:var(--blue)}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:18px;margin-bottom:18px}
.panel>h2{margin-bottom:12px}
.grid{display:grid;gap:14px}.g4{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px 16px}
.stat b{display:block;font:700 26px Saira,sans-serif}.stat span{font-size:13px;color:var(--mute)}
.scroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;font-weight:500;color:var(--mute);font-size:13px;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}tr:last-child td{border-bottom:0}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
tr.click{cursor:pointer}tr.click:hover td{background:var(--panel2)}
.tag{display:inline-block;font-size:12px;border-radius:4px;padding:1px 7px;background:var(--panel2);border:1px solid var(--line);color:var(--mute)}
.tag.g{color:var(--good);border-color:var(--good)}.tag.w{color:var(--warn);border-color:var(--warn)}.tag.b{color:var(--blue);border-color:var(--blue)}
.bar{height:8px;background:var(--panel2);border-radius:4px;overflow:hidden;border:1px solid var(--line)}.bar i{display:block;height:100%;background:var(--blue)}
.crit{display:grid;grid-template-columns:190px 1fr 44px;gap:12px;align-items:center;padding:7px 0}
.crit b{text-align:right;font-family:Saira,sans-serif}
/* speed to lead signature */
.stl{background:#000;color:#fff;border-radius:8px;padding:20px 22px;display:flex;gap:28px;align-items:center;flex-wrap:wrap;margin-bottom:18px}
.stl .clock{font:700 56px/1 Saira,sans-serif;color:#fff;font-variant-numeric:tabular-nums}.stl .clock small{font-size:20px;color:#8fb0ff;font-weight:600}
.stl p{margin:0;color:#b9bec7;max-width:46ch;font-size:14px}
.track{flex:1;min-width:220px}.track .line{height:6px;background:#22252b;border-radius:3px;position:relative;margin:10px 0 6px}
.track .line i{position:absolute;left:0;top:0;bottom:0;background:var(--blue);border-radius:3px;width:31%}
.track .line u{position:absolute;left:50%;top:-5px;bottom:-5px;width:2px;background:#fff}
.track div.lab{display:flex;justify-content:space-between;font-size:12px;color:#8a909a}
.folders{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.folder{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:14px;text-align:left}
.folder:hover{border-color:var(--blue)}.folder b{display:block}.folder span{font-size:13px;color:var(--mute)}
.fic{width:34px;height:26px;border-radius:3px 6px 6px 6px;background:var(--blue);margin-bottom:10px;position:relative}.fic:before{content:"";position:absolute;top:-5px;left:0;width:15px;height:6px;background:var(--blue);border-radius:3px 3px 0 0}
.files{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.file{border:1px solid var(--line);border-radius:6px;overflow:hidden;font-size:12px;background:var(--panel2)}
.file .th{height:84px;display:grid;place-items:center;color:var(--mute);background:var(--bg);font-weight:600}.file img{width:100%;height:84px;object-fit:cover;display:block}
.file p{margin:0;padding:6px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.row>div{flex:1;min-width:130px}.row>.fit{flex:0 0 auto;min-width:0}
.ad{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel)}
.ad .th{height:110px;background:linear-gradient(135deg,#2a2e36,#000);color:#fff;display:grid;place-items:center;font:600 15px Saira,sans-serif;text-align:center;padding:10px}
.ad div.b{padding:12px}.ad p{margin:4px 0 0;font-size:13px;color:var(--mute)}
.lesson{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.lesson:last-child{border:0}
.play{width:38px;height:38px;border-radius:50%;background:var(--blue);flex:none;position:relative}.play:after{content:"";position:absolute;left:15px;top:11px;border:8px solid transparent;border-left:12px solid #fff;border-right:0}
.lesson span{color:var(--mute);font-size:13px;margin-left:auto;white-space:nowrap}
.max{border-left:3px solid var(--blue);background:var(--blue-soft);padding:12px 14px;border-radius:0 6px 6px 0;margin:8px 0}
.max b{font-family:Saira,sans-serif}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;margin-bottom:14px}.seg button{background:var(--panel);border:0;padding:7px 14px}.seg button.on{background:var(--blue);color:#fff}
.pt{border:1px solid var(--line);border-radius:6px;padding:10px 12px;background:var(--panel2);font-size:13px}.pt b{display:block;font-size:14px}.pt.up{border-color:var(--blue);background:var(--blue-soft)}
.toast{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));background:#000;color:#fff;padding:10px 16px;border-radius:6px;border-left:3px solid var(--blue);font-size:14px;z-index:9}
@media (max-width:760px){#app{grid-template-columns:1fr;height:auto;min-height:100%}aside{flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px;padding:10px}
.logo{width:120px;margin:0}.by,.who{display:none}nav.main,nav.foot{display:flex;margin:0;border:0;padding:0}nav button{width:auto;padding:7px 10px;border-left:0;border-bottom:3px solid transparent}nav button.on{border-bottom-color:var(--blue)}nav.main button{font-size:15px}
main{padding:16px}.crit{grid-template-columns:120px 1fr 36px}.stl .clock{font-size:44px}}

.err{color:var(--bad);font-size:14px;margin:8px 0 0;min-height:1em}
.link{background:none;border:0;color:var(--blue);padding:0;font-size:14px;text-decoration:underline}
.empty{border:1px dashed var(--line);border-radius:8px;padding:22px;color:var(--mute);background:var(--panel)}
.empty b{color:var(--ink);display:block;margin-bottom:4px;font-family:Saira,sans-serif;font-size:16px}
td input{min-width:90px;padding:5px 8px}
.file a{display:block;color:inherit;text-decoration:none}.file .x{float:right;margin:4px}
.ad img{width:100%;height:110px;object-fit:cover;display:block}

nav .dot{width:8px;height:8px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px rgba(31,91,255,.25);flex:none}
.maxwrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:stretch}
.chat{background:#000;color:#eef0f3;border-radius:12px;display:flex;flex-direction:column;height:calc(100vh - 150px);min-height:420px;overflow:hidden;border:1px solid #1d2026}
.log{flex:1;overflow-y:auto;padding:22px;display:flex;flex-direction:column;gap:12px}
.m{max-width:78%;padding:11px 14px;border-radius:12px;white-space:pre-wrap;line-height:1.5}
.m.me{align-self:flex-end;background:#1f5bff;color:#fff;border-bottom-right-radius:3px}
.m.mx{align-self:flex-start;background:#15171b;border:1px solid #262a31;border-bottom-left-radius:3px}
.who2{display:block;font:600 12px Saira,sans-serif;color:#7fa2ff;margin-bottom:3px}
.think{color:#8a909a}.think:after{content:"...";animation:th 1.2s steps(4) infinite;display:inline-block;overflow:hidden;vertical-align:bottom;width:0}
@keyframes th{to{width:1.2em}}
.hello{margin:auto;text-align:center;max-width:520px}.hello h2{font-size:24px;color:#fff;margin:18px 0 8px}.hello p{color:#a4abb6;margin:0 0 20px}
.orb{width:64px;height:64px;border-radius:50%;margin:0 auto;background:radial-gradient(circle at 35% 30%,#8fb0ff,#1f5bff 55%,#0a1c5c);box-shadow:0 0 0 10px rgba(31,91,255,.12),0 0 60px rgba(31,91,255,.55);animation:orb 3.2s ease-in-out infinite}
@keyframes orb{50%{box-shadow:0 0 0 16px rgba(31,91,255,.06),0 0 80px rgba(31,91,255,.75)}}
@media (prefers-reduced-motion:reduce){.orb,.think:after{animation:none}.think:after{width:1.2em}}
.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.chips button{background:#15171b;border:1px solid #2b3038;color:#dfe3ea;border-radius:999px;padding:8px 14px;font-size:14px}.chips button:hover{border-color:#1f5bff;color:#fff}
.ask{display:flex;gap:10px;padding:14px;border-top:1px solid #1d2026;background:#0a0b0d}.ask input{background:#15171b;border-color:#2b3038;color:#fff;padding:11px 14px}.ask input::placeholder{color:#7b828d}.ask .btn{white-space:nowrap}
.rail{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;color:var(--ink);display:block}
.stage{display:grid;grid-template-columns:auto 1fr;gap:0 10px;align-items:baseline}.stage .sbar{grid-column:1/3;height:8px;background:var(--panel2);border-radius:4px;margin-bottom:5px;overflow:hidden}.stage .sbar i{display:block;height:100%;background:var(--blue);border-radius:4px}
.stage b{font:700 22px Saira,sans-serif}.stage span{color:var(--mute);font-size:14px}
.drop{font-size:12px;color:var(--mute);border-left:2px solid var(--line);margin:6px 0 6px 6px;padding:5px 0 5px 12px}.drop.bad{border-color:var(--bad);color:var(--bad)}.drop b{font-weight:600}
.rtot{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.rtot b{display:block;font:700 18px Saira,sans-serif}.rtot span{font-size:12px;color:var(--mute)}
@media (max-width:980px){.maxwrap{grid-template-columns:1fr}.chat{height:70vh}}
.scroll td:first-child,.tag{white-space:nowrap}

.toggles{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 14px}
.toggles button{display:inline-flex;align-items:center;gap:7px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:13px;color:var(--mute)}
.toggles button i{width:10px;height:10px;border-radius:50%;opacity:.3}
.toggles button.on{color:var(--ink);border-color:var(--ink)}.toggles button.on i{opacity:1}
.seg button{white-space:nowrap}

/* Light shell: no black panels */
#login{background:var(--bg)}.lcard{border:1px solid var(--line)}
aside{background:var(--panel);color:var(--mute);border-right:1px solid var(--line)}
.logo{padding:4px 2px}.by,.who{color:var(--mute)}
nav button{color:var(--ink)}nav button:hover{color:var(--ink);background:var(--panel2)}
nav button.on{color:var(--blue);background:var(--blue-soft);border-left-color:var(--blue)}
nav.foot{border-top-color:var(--line)}nav.foot button{color:var(--mute)}nav.foot button.on{color:var(--blue)}
.chat{background:var(--panel);color:var(--ink);border-color:var(--line)}
.m.mx{background:var(--panel2);border-color:var(--line)}.who2{color:var(--blue)}
.hello h2{color:var(--ink)}.hello p,.think{color:var(--mute)}
.orb{box-shadow:0 0 0 10px rgba(31,91,255,.08),0 12px 40px rgba(31,91,255,.35)}
@keyframes orb{50%{box-shadow:0 0 0 16px rgba(31,91,255,.05),0 12px 56px rgba(31,91,255,.5)}}
.chips button{background:var(--panel);border-color:var(--line);color:var(--ink)}.chips button:hover{border-color:var(--blue);color:var(--blue)}
.ask{background:var(--panel2);border-top-color:var(--line)}.ask input{background:var(--panel);border-color:var(--line);color:var(--ink)}.ask input::placeholder{color:var(--mute)}
.toast{background:var(--ink);color:var(--panel)}
@media (max-width:760px){aside{border-right:0;border-bottom:1px solid var(--line)}}
:root[data-theme="dark"] .logo{background:#fff;padding:8px 10px}

.swrow{display:flex;justify-content:space-between;align-items:center;gap:16px}
.switch{width:48px;height:28px;border-radius:14px;border:1px solid var(--line);background:var(--panel2);position:relative;flex:none;padding:0;transition:background .15s}
.switch i{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--mute);transition:transform .15s,background .15s}
.switch[aria-checked="true"]{background:var(--blue);border-color:var(--blue)}.switch[aria-checked="true"] i{transform:translateX(20px);background:#fff}

.conn{padding:14px 0;border-top:1px solid var(--line)}.conn:first-of-type{border-top:0}
details summary{cursor:pointer;color:var(--blue);font-size:14px;margin-top:10px}

.roigrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:28px}
.rl{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:16px}.rl b{font:600 18px Saira,sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap}
.rl.tot{border-bottom:0;border-top:2px solid var(--ink);margin-top:-1px}.rl.tot b{font-size:22px}
.roibig{margin-top:14px;background:var(--blue-soft);border-radius:10px;padding:16px 18px;display:flex;align-items:center;gap:16px}.roibig b{font:700 46px/1 Saira,sans-serif;color:var(--blue)}.roibig span{color:var(--ink);font-size:14px}
@media (max-width:900px){.roigrid{grid-template-columns:1fr}}
