:root{--bg:#f4f7fb;--surface:#fff;--surface-2:#f8fbff;--ink:#102033;--muted:#6d7d90;--line:#d8e2ee;--line-blue:#bcd4ff;--blue:#2a67e8;--blue-soft:#eaf2ff;--green:#119c55;--green-soft:#e7f8ee;--amber:#d97706;--amber-soft:#fff4dc;--red:#cf304a;--red-soft:#fff0f3;--shadow:0 8px 28px rgba(31,56,88,.08);font-family:Arial,Helvetica,sans-serif;color-scheme:light}
*{box-sizing:border-box}
html{background:var(--bg);color:var(--ink)}
body{margin:0;min-width:320px;background:var(--bg);color:var(--ink);font:14px/1.35 Arial,Helvetica,sans-serif}
button,input,select,textarea{font:inherit;color:inherit}
button{border:1px solid var(--line);border-radius:7px;background:#fff;padding:9px 13px;font-weight:800;cursor:pointer;transition:border-color .16s,background .16s,transform .16s}
button:hover:not(:disabled){border-color:#8eb5ff;background:#f7faff}
button:active:not(:disabled){transform:translateY(1px)}
button:disabled{opacity:.45;cursor:not-allowed}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:7px;background:#fff;padding:9px 10px;outline:none}
input:focus,select:focus,textarea:focus{border-color:#75a2f8;box-shadow:0 0 0 3px rgba(42,103,232,.1)}
.primary{border-color:var(--blue);background:var(--blue);color:#fff}
.primary:hover:not(:disabled){border-color:#1d57cc;background:#1d57cc}
.danger{border-color:#f0a3b0;color:var(--red);background:var(--red-soft)}
.full{width:100%}
.shell{width:min(1600px,calc(100% - 20px));margin:0 auto;padding:10px 0 42px}
.topFixed{position:sticky;z-index:20;top:0;padding-top:2px;background:linear-gradient(var(--bg) 92%,rgba(244,247,251,0))}
.topbar{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:6px 4px 8px}
.downloadRange{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);min-width:150px;border-color:var(--blue);background:var(--blue);color:#fff;letter-spacing:.06em}
.downloadRange:hover:not(:disabled){border-color:#1748b8;background:#1748b8}
.brand{display:flex;align-items:center;gap:10px;min-width:0}
.brandmark{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:#ffae00;box-shadow:0 0 0 4px #fff,0 3px 10px rgba(16,32,51,.12)}
.brandmark img{width:32px;height:32px;object-fit:contain}
.eyebrow{display:block;color:#4672bd;font-size:10px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
h1,h2,h3,p{margin:0}
h1{font-size:23px;line-height:1.05;letter-spacing:-.025em}
h2{font-size:14px;letter-spacing:.02em;text-transform:uppercase}
h3{font-size:12px;letter-spacing:.06em}
.statusbar{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.statusbar>span,.statusbar>button{border:1px solid var(--line);border-radius:999px;background:#fff;padding:7px 11px;color:var(--muted);font-size:11px;box-shadow:0 2px 8px rgba(16,32,51,.04)}
.status{display:inline-flex;align-items:center;gap:7px}
.status i{width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 0 3px rgba(207,48,74,.12)}
.status.online i{background:var(--green);box-shadow:0 0 0 3px rgba(17,156,85,.12)}
.status.online b{color:var(--green)}
.statusbar button{font-weight:900;color:var(--ink);padding:7px 11px}
.toolbar{display:grid;grid-template-columns:140px 140px 160px minmax(210px,1fr) minmax(220px,1.25fr) auto;gap:8px;align-items:end;border:1px solid var(--line);border-radius:9px;background:#fff;padding:8px;box-shadow:0 4px 14px rgba(31,56,88,.05)}
.toolbar label{display:grid;gap:4px;min-width:0}
.toolbar label>span{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.toolbarActions{display:flex;gap:6px}
.toolbarActions button{white-space:nowrap}
.topSummaryRow{display:grid;grid-template-columns:minmax(0,1fr) minmax(410px,.9fr);gap:8px;margin-top:8px}
.summaryLeft{display:grid;gap:8px;min-width:0}
.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.kpis article{min-width:0;border:1px solid var(--line);border-radius:8px;background:#fff;padding:9px 10px;box-shadow:0 3px 10px rgba(31,56,88,.04)}
.kpis article.accent{border-color:var(--line-blue);box-shadow:inset 0 3px 0 var(--blue),0 3px 10px rgba(31,56,88,.04)}
.kpis span{display:block;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.06em}
.kpis strong{display:block;margin-top:1px;font-size:25px;line-height:1.05;letter-spacing:-.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpis small{display:block;margin-top:3px;color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.band,.rankCard,.livePanel,.mainPanel,.sidePanel,.sessionsPanel{border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:0 4px 14px rgba(31,56,88,.045)}
.band,.rankCard,.livePanel,.mainPanel,.sidePanel,.sessionsPanel{padding:10px}
.sectionHead{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:23px}
.sectionHead>span,.headMeta{color:var(--muted);font-size:11px}
.dayBars{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:6px;margin-top:7px}
.dayBar{position:relative;overflow:hidden;display:grid;gap:1px;min-height:67px;padding:7px;border-color:#b7ead0;background:var(--green-soft);text-align:left}
.dayBar::after{content:"";position:absolute;left:0;right:auto;bottom:0;width:calc(var(--level,0)*100%);height:4px;background:var(--green)}
.dayBar.zero{border-color:#f0ced4;background:var(--red-soft)}
.dayBar.zero::after{background:var(--red)}
.dayBar span{color:var(--muted);font-size:9px;font-weight:800}
.dayBar strong{color:#08723c;font-size:18px;line-height:1}
.dayBar small{color:var(--muted);font-size:9px}
.topRankings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0}
.rankList{display:grid;gap:5px;margin-top:7px}
.rankItem{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center;width:100%;min-height:48px;padding:6px 8px;border-color:#aee4c6;background:var(--green-soft);text-align:left}
.rankList.worst .rankItem{border-color:#f3c3cb;background:var(--red-soft)}
.rankItem strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.rankItem small{display:block;color:var(--muted);font-size:9px}
.rankItem>span{color:var(--green);font-size:13px;font-weight:900;white-space:nowrap}
.rankList.worst .rankItem>span{color:var(--red)}
.livePanel{margin-top:8px}
.liveList{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:7px;margin-top:7px}
.liveCard{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;border:1px solid var(--line);border-left:4px solid var(--amber);border-radius:8px;background:var(--surface-2);padding:9px}
.liveCard.online{border-left-color:var(--green);background:linear-gradient(90deg,var(--green-soft),#fff 46%)}
.liveCard strong{display:block;font-size:13px}
.liveCard small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.liveCard p{grid-column:1/-1;color:#42566f;font-size:11px;line-height:1.45;display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.liveCard button{font-size:10px;padding:7px 9px;color:var(--blue);border-color:var(--line-blue)}
.emptyLive{grid-column:1/-1;padding:18px;color:var(--muted);text-align:center;border:1px dashed var(--line);border-radius:8px}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:8px;margin-top:8px;align-items:start}
.mainPanel,.sidePanel{min-width:0}
.activityTableWrap,.tableWrap{overflow:auto;margin-top:8px;border:1px solid var(--line);border-radius:7px}
table{width:100%;border-collapse:separate;border-spacing:0;white-space:nowrap}
th,td{border-bottom:1px solid #e8eef5;padding:7px 8px;text-align:left;font-size:11px}
th{position:sticky;z-index:3;top:0;background:#f3f7fc;color:#65768b;font-size:9px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:#f8fbff}
.activityTable th:first-child,.activityTable td:first-child{position:sticky;z-index:2;left:0;min-width:215px;background:#fff}
.activityTable th:first-child{z-index:4;background:#f3f7fc}
.identity strong{display:block;font-size:11px;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.identity small{display:block;color:var(--muted);font-size:9px}
.metricCell{min-width:63px;padding:5px 7px;text-align:center}
.metricCell strong,.metricCell small{display:block}
.metricCell strong{font-size:12px}
.metricCell small{color:var(--muted);font-size:8px}
.onlinePill,.offlinePill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:900}
.onlinePill{background:var(--green-soft);color:var(--green)}
.offlinePill{background:#edf1f6;color:var(--muted)}
.sectionSpace{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.hourGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:7px}
.hourCell{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:#f8fbff;padding:6px;text-align:center}
.hourCell::before{content:"";position:absolute;inset:auto 0 0 0;height:calc(var(--level,0)*100%);background:rgba(42,103,232,.12)}
.hourCell>*{position:relative}
.hourCell strong,.hourCell small{display:block}
.hourCell strong{font-size:10px}.hourCell small{color:var(--muted);font-size:8px}
.branchList{display:grid;gap:5px;max-height:420px;margin-top:7px;overflow:auto}
.branchItem{display:grid;grid-template-columns:45px minmax(0,1fr) auto;gap:7px;align-items:center;width:100%;padding:7px;text-align:left}
.branchItem>strong{color:var(--blue)}
.branchItem span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}
.branchItem b{font-size:11px}
.sessionsPanel{margin-top:8px}
.sessionFilters{display:flex;gap:6px;align-items:center}
.sessionFilters select{width:180px}.sessionFilters input{width:145px}
.sessionsPanel .tableWrap{max-height:540px}
.sessionsPanel tbody button{padding:6px 9px;font-size:9px;color:var(--blue)}
.mono{font-family:Consolas,"SFMono-Regular",monospace}
.badge{display:inline-flex;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:900;background:#edf1f6;color:#566579}
.badge.capturing,.badge.transcribing{background:var(--green-soft);color:var(--green)}
.badge.live_requested,.badge.queued,.badge.claimed{background:var(--blue-soft);color:var(--blue)}
.badge.failed,.badge.cancelled{background:var(--red-soft);color:var(--red)}
.badge.hold,.badge.needs_review,.badge.pending{background:var(--amber-soft);color:var(--amber)}
.pager{display:flex;align-items:center;justify-content:space-between;padding-top:8px;color:var(--muted);font-size:11px}
.pager div{display:flex;gap:6px}
.empty{padding:30px;text-align:center;color:var(--muted)}
#drawer{position:fixed;z-index:40;top:0;right:0;width:min(700px,94vw);height:100vh;overflow:auto;background:#fff;border-left:1px solid var(--line);box-shadow:-18px 0 50px rgba(16,32,51,.16);padding:15px;transform:translateX(104%);transition:transform .2s ease}
#drawer.open{transform:translateX(0)}
#scrim{position:fixed;z-index:35;inset:0;pointer-events:none;background:rgba(16,32,51,.42);opacity:0;transition:opacity .2s}
#scrim.open{pointer-events:auto;opacity:1}
.drawerHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:11px;border-bottom:1px solid var(--line)}
.drawerHead h2{margin-top:3px;font-size:20px;text-transform:none}
.drawerHead>button{padding:6px 10px;font-size:20px;line-height:1}
.detailGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:11px 0}
.detailGrid>div{border:1px solid var(--line);border-radius:7px;background:var(--surface-2);padding:8px;min-width:0}
.detailGrid span{display:block;color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.06em}
.detailGrid strong{display:block;margin-top:3px;font-size:11px;overflow-wrap:anywhere}
.actions{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
#drawer section{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
.sectionTitle{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}
.chunks,.events{display:grid;gap:5px}
.chunk,.event{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);padding:7px;font-size:10px}
.event span{white-space:pre-line}
.transcriptMeta{display:grid;grid-template-columns:1fr 100px;gap:6px;margin-bottom:6px}
#transcript{min-height:250px;resize:vertical;line-height:1.55}
dialog{width:min(420px,calc(100vw - 24px));border:0;border-radius:12px;padding:0;box-shadow:0 24px 80px rgba(16,32,51,.28)}
dialog::backdrop{background:rgba(16,32,51,.64)}
dialog form{display:grid;gap:11px;padding:23px}
dialog h2{font-size:19px}
#authError{min-height:18px;color:var(--red);font-size:11px;font-weight:900}
#toast{position:fixed;z-index:60;left:50%;bottom:18px;max-width:min(520px,90vw);transform:translate(-50%,20px);border-radius:8px;background:#102033;color:#fff;padding:10px 15px;font-size:11px;font-weight:900;opacity:0;pointer-events:none;transition:.18s}
#toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1120px){.toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.toolbarActions{justify-content:flex-end}.topSummaryRow{grid-template-columns:1fr}.layout{grid-template-columns:1fr}.topRankings{grid-template-columns:1fr 1fr}.sidePanel{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sectionSpace{margin:0;padding:0 0 0 12px;border-top:0;border-left:1px solid var(--line)}}
@media(max-width:720px){.shell{width:min(100% - 10px,1600px);padding-top:5px}.topFixed{position:static}.topbar{align-items:flex-start;flex-wrap:wrap}.downloadRange{position:static;order:3;width:100%;transform:none}.statusbar{max-width:48%}.statusbar>#updatedAt{display:none}.toolbar{grid-template-columns:1fr 1fr}.toolbar .search,.toolbarActions{grid-column:1/-1}.toolbarActions>*{flex:1}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.topRankings{grid-template-columns:1fr}.liveList{grid-template-columns:1fr}.sidePanel{display:block}.sectionSpace{margin-top:14px;padding:12px 0 0;border-left:0;border-top:1px solid var(--line)}.sessionFilters{width:100%;display:grid;grid-template-columns:1fr 1fr}.sessionFilters button{grid-column:1/-1}.sessionFilters select,.sessionFilters input{width:100%}.sessionsPanel>.sectionHead{align-items:flex-start;flex-direction:column}.detailGrid{grid-template-columns:1fr}.brandmark{width:34px;height:34px}.brandmark img{width:27px;height:27px}h1{font-size:18px}}
@media(max-width:460px){.toolbar{grid-template-columns:1fr}.toolbar .search,.toolbarActions{grid-column:auto}.kpis{grid-template-columns:1fr 1fr}.kpis strong{font-size:21px}.dayBars{grid-template-columns:repeat(2,1fr)}.statusbar>#lockBtn{display:none}}
