:root{font-family:Inter,system-ui,sans-serif;color:#182538;background:#f3f6fa;--card:#fff;--ink:#182538;--muted:#637082;--accent:#126b91;--border:#dbe3ec}html[data-theme=dark]{color:#e8eef7;background:#111a24;--card:#192532;--ink:#e8eef7;--muted:#a9b6c5;--accent:#61c2eb;--border:#304254}body{margin:0;background:radial-gradient(circle at top right,#cdebf6,transparent 32rem),#f3f6fa;color:var(--ink)}html[data-theme=dark] body{background:radial-gradient(circle at top right,#173c4d,transparent 32rem),#111a24}main{max-width:1050px;margin:3.5rem auto;padding:0 1.25rem}main.wide{max-width:min(1100px,100%)}
main.s3-page{overflow-x:clip}
.error{color:#b42318;background:#fef3f2;border:1px solid #fecdca;padding:.75rem 1rem;border-radius:.5rem}
html[data-theme=dark] .error{color:#ffb4ab;background:#3b1511;border-color:#7a271a}
.ok{color:#07834e;background:#e8f7ef;border:1px solid #abefc6;padding:.75rem 1rem;border-radius:.5rem}
html[data-theme=dark] .ok{color:#7ddbb2;background:#143528;border-color:#2a5a42}
.admin-streams td:last-child{min-width:14rem}
.stream-site-cell input{width:12rem;max-width:36vw}
.stream-actions{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}
.stream-actions input{width:9rem;max-width:36vw;padding:.35rem .5rem;font-size:.85rem}
.stream-actions button{padding:.35rem .65rem;font-size:.8rem}
button.danger{background:#b42318}
html[data-theme=dark] button.danger{background:#912018}
form.stream-edit{display:inline-flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.s3-table-wrap{width:100%;overflow-x:hidden}
.s3-objects{table-layout:fixed;width:100%;font-size:.82rem}
.s3-objects th,.s3-objects td{padding:.55rem .45rem;vertical-align:top;overflow-wrap:anywhere;word-break:break-word}
.s3-objects th:nth-child(1),.s3-objects td:nth-child(1){width:6.5rem}
.s3-objects th:nth-child(2),.s3-objects td:nth-child(2){width:9rem}
.s3-objects th:nth-child(3),.s3-objects td:nth-child(3){width:10rem}
.s3-objects th:nth-child(4),.s3-objects td:nth-child(4){width:6.2rem}
.s3-objects th:nth-child(5),.s3-objects td:nth-child(5){width:3.2rem}
.s3-objects th:nth-child(6),.s3-objects td:nth-child(6){width:4.5rem}
.s3-objects th:nth-child(7),.s3-objects td:nth-child(7){width:7rem}
.s3-objects td.num,.s3-objects th:nth-child(4),.s3-objects th:nth-child(6),.s3-objects th:nth-child(7){text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.s3-objects .file-key{font-size:.72rem;color:var(--muted)}
.s3-objects .file-key a{color:inherit}
.s3-objects tr.s3-unparsed{background:#fff4e5}
.s3-objects tr.s3-unknown-stream{background:#fef3f2}
html[data-theme=dark] .s3-objects tr.s3-unparsed{background:#3a2a14}
html[data-theme=dark] .s3-objects tr.s3-unknown-stream{background:#3b1511}
.unmatched-assign{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-end}
.unmatched-assign label{display:grid;gap:.2rem;font-size:.72rem;color:var(--muted)}
.unmatched-assign label.check{display:inline-flex;align-items:center;gap:.35rem;padding-bottom:.35rem}
.unmatched-assign label.check input{width:auto}
.unmatched-assign select{width:11rem;max-width:40vw;padding:.4rem .5rem;font-size:.85rem}
.unmatched-assign select[name=typeCode]{width:5rem}
.unmatched-assign button{padding:.45rem .75rem;font-size:.8rem}
.unmatched-assign-table th:nth-child(1),.unmatched-assign-table td:nth-child(1){width:auto}
.unmatched-assign-table th:nth-child(2),.unmatched-assign-table td:nth-child(2){width:6.5rem}
.unmatched-assign-table th:nth-child(3),.unmatched-assign-table td:nth-child(3){width:4.5rem}
.s3-match{display:inline-block;font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.s3-match.ok{color:#07834e}.s3-match.warn{color:#9a5b00}.s3-match.bad{color:#b42318}
html[data-theme=dark] .s3-match.ok{color:#7ddbb2}html[data-theme=dark] .s3-match.warn{color:#ffd39a}html[data-theme=dark] .s3-match.bad{color:#ffb4ab}
.toolbar label{display:inline-flex;gap:.45rem;align-items:center;color:var(--muted)}
.toolbar #s3-filter{width:14rem;max-width:42vw}header{display:flex;justify-content:space-between;gap:1rem;align-items:center}.header-actions{display:flex;gap:1rem;align-items:center}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:.72rem;font-weight:800;margin:0}h1{margin:.25rem 0;font-size:clamp(2rem,5vw,3.4rem)}h2{margin-top:3rem}.intro,.muted,small{color:var(--muted)}
.site-filter{display:grid;gap:.4rem;max-width:28rem;margin:1.25rem 0 0}
.site-filter input{font-size:1rem}
#site-filter-empty{margin:1rem 0 0}
#streams{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem;margin-top:1.25rem}.stream{display:grid;gap:.55rem;padding:1.25rem;border:1px solid var(--border);border-radius:1rem;background:var(--card);color:inherit;text-decoration:none;box-shadow:0 10px 28px #1a2d4012}.stream-primary{display:grid;gap:.55rem;color:inherit;text-decoration:none}.archive-link{font-size:.85rem;font-weight:700}.offline-card{opacity:.72}.offline-card .archive-link{opacity:1}.status{font-size:.68rem;letter-spacing:.08em;font-weight:800}.status.live{color:#07834e}a{color:var(--accent)}button,.button{background:var(--accent);color:white;border:0;border-radius:.5rem;padding:.65rem 1rem;cursor:pointer;text-decoration:none}button.theme-toggle{border:1px solid var(--border);background:var(--card);color:var(--ink);font-size:1.1rem;padding:.4rem .65rem}input,textarea,select{box-sizing:border-box;width:100%;padding:.65rem;border:1px solid var(--border);border-radius:.45rem;background:var(--card);color:var(--ink)}textarea{font-family:ui-monospace,monospace}table{width:100%;border-collapse:separate;border-spacing:0;background:var(--card);border:1px solid var(--border);border-radius:.8rem;overflow:hidden}th,td{text-align:left;padding:.8rem;border-bottom:1px solid var(--border)}tr:last-child td{border:0}.inline{display:inline}.toggle input{width:auto}.narrow{max-width:420px}
.toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.filter-toggle{display:inline-flex;gap:.5rem;align-items:center;margin:1rem 0;color:var(--muted)}.filter-toggle input{width:auto}
.site-meta{display:flex;flex-wrap:wrap;gap:.35rem .85rem;margin-top:.35rem;color:var(--muted);font-size:.85rem}
.status-pill{display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:.2rem .55rem;border-radius:.4rem;border:1px solid var(--border)}
.status-live{color:#07834e;background:#e8f7ef}.status-offline{color:var(--muted);background:transparent}.status-unassigned{color:#9a5b00;background:#fff4e5}
html[data-theme=dark] .status-live{color:#7ddbb2;background:#143528}html[data-theme=dark] .status-unassigned{color:#ffd39a;background:#3a2a14}
.admin-sites td:nth-child(3){min-width:14rem}
.archive-sync{display:grid;gap:.45rem;margin:0 0 1.5rem}
.scan-status{display:block;color:var(--muted);font-size:.85rem;line-height:1.35;word-break:break-word}
.scan-log{margin:0;max-height:12rem;overflow:auto;padding:.55rem .65rem;border:1px solid var(--border);border-radius:.45rem;background:var(--card);color:var(--ink);font:0.72rem/1.4 ui-monospace,Consolas,monospace;white-space:pre-wrap;word-break:break-word}
.scan-log[hidden]{display:none}
.archive-page video{width:100%;max-height:70vh;background:#000;border-radius:.8rem;margin:.75rem 0}
.archive-items{display:grid;gap:1rem;margin-top:1rem}
.archive-day{display:grid;gap:.45rem}
.archive-day-label{font-size:.85rem;font-weight:700;color:var(--muted)}
.archive-day-slots{display:grid;grid-template-columns:repeat(var(--archive-day-count,1),minmax(0,1fr));gap:.5rem}
.archive-slot{display:grid;gap:.35rem;min-width:0;align-content:start}
.archive-item{display:grid;gap:.25rem;align-content:start;text-align:left;padding:1rem 1.1rem;border:1px solid var(--border);border-radius:.75rem;background:var(--card);color:var(--ink);min-width:0}
.archive-item strong{font-size:.95rem}
.archive-item small{color:var(--muted);font-weight:500;overflow-wrap:anywhere}
.archive-item.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.archive-item-unpublished{border-style:dashed;opacity:.92}
.archive-unpublished{display:inline-block;margin-left:.4rem;font-size:.65rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#9a5b00}
html[data-theme=dark] .archive-unpublished{color:#ffd39a}
.archive-slot .transcript-start,.archive-slot .transcript-link{justify-self:stretch;text-align:center;padding:.4rem .55rem;font-size:.78rem;font-weight:700;border-radius:.5rem}
.archive-slot .transcript-link{display:block;background:transparent;border:1px solid var(--border);color:var(--accent);text-decoration:none}
@media (max-width:640px){.archive-day-slots{grid-template-columns:1fr}}
.transcript-body{white-space:pre-wrap;line-height:1.55;padding:1rem 1.15rem;border:1px solid var(--border);border-radius:.75rem;background:var(--card);max-width:52rem}
button.transcript-start{padding:.4rem .7rem;font-size:.85rem}
.admin-transcriptions td:last-child{white-space:nowrap}
.admin-transcriptions .button,.admin-transcriptions button{padding:.4rem .65rem;font-size:.8rem}
.queue-actions{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.queue-actions button:disabled{opacity:.4;cursor:not-allowed}
.transcript-page .progress-panel{margin-top:1.75rem;max-width:36rem}
.transcript-page .progress-panel h2{margin:0 0 .65rem;font-size:1.1rem}
.progress-track{height:.55rem;border-radius:.4rem;background:var(--border);overflow:hidden}
.progress-fill{height:100%;width:0;background:var(--accent);border-radius:.4rem;transition:width .35s ease}
.progress-fill.indeterminate{width:35%;animation:progress-indeterminate 1.2s ease-in-out infinite}
@keyframes progress-indeterminate{0%{transform:translateX(-120%)}100%{transform:translateX(320%)}}
.build-info{max-width:1050px;margin:0 auto 1.5rem;padding:0 1.25rem;font-size:.7rem;color:var(--muted);opacity:.7;text-align:center;font-variant-numeric:tabular-nums}
