:root{color-scheme:dark;--bg: #0e1014;--surface: #12151b;--panel: #161920;--raised: #1d212a;--border: #2a2f3a;--line: #222631;--text: #e8eaee;--soft: #c9cfda;--muted: #9ba3b1;--accent: #f5a524;--danger: #ff8a8a;font-family:Inter,system-ui,sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--text);text-decoration:none}a:hover{color:var(--accent)}button,input,select{font:inherit;color:inherit}button{cursor:pointer;background:transparent;border:1px solid var(--border);border-radius:8px;min-height:36px;padding:0 12px;color:var(--text)}button:hover{border-color:#3a4150}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#0e1014;font-weight:700;min-height:44px}button.link{border:0;color:var(--muted);padding:0 6px}input{background:var(--bg);border:1px solid var(--border);border-radius:8px;min-height:40px;padding:0 10px}code,kbd,.tc,.time{font-family:JetBrains Mono,ui-monospace,monospace}kbd{border:1px solid var(--border);border-radius:4px;padding:0 5px;font-size:12px}.hint{color:var(--muted);font-size:13px}.error{color:var(--danger)}.spacer{flex:1}.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:10px 24px;background:var(--surface);border-bottom:1px solid var(--border)}.brand{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:18px}.context-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;font-size:12px;font-weight:700}.context-badge.is-cloud{background:#15304d;color:#8ec3ff;border:1px solid #2f6aae}.context-badge.is-site{background:#123a33;color:#5fe0c4;border:1px solid #2c7a6a}.main-nav{display:flex;gap:4px}.main-nav a{padding:8px 14px;border-radius:8px;color:var(--muted)}.main-nav a.active{background:var(--raised);color:var(--text);font-weight:600}.user{display:flex;align-items:center;gap:8px}.avatar{width:34px;height:34px;border-radius:50%;background:#2b3242;display:grid;place-items:center;font-weight:600;font-size:12px}.content{padding:20px 24px}.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:24px}.sign-in{max-width:400px;margin:48px auto;display:flex;flex-direction:column;gap:14px}.sign-in h1{margin:0;font-size:22px}.sign-in label{display:flex;flex-direction:column;gap:6px}.sign-in label span{font-size:12px;color:var(--muted)}.page-head{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:16px}.page-head h1{margin:0;font-size:22px}.search{min-width:260px}.site-group h2{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:20px 0 10px}.station-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.station-card{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:12px;row-gap:2px;align-items:center;padding:14px;background:var(--panel);border:1px solid var(--border);border-radius:12px}.station-card.state-interrupted{border-color:#6b2a2f;background:#1f1416}.station-card.state-silence{border-color:#5a4720}.station-card.state-offline{border-color:#4a3a73}.levels{grid-column:2;display:grid;gap:3px;margin:4px 0 2px}.level{display:block;height:4px;border-radius:2px;background:#232836;overflow:hidden}.level span{display:block;height:100%;border-radius:2px;transition:width .4s}.station-state{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600}.station-state i,.state-summary i{width:8px;height:8px;border-radius:50%;display:inline-block}.station-now{grid-column:1 / -1;display:flex;flex-direction:column;margin-top:8px;padding-top:8px;border-top:1px solid var(--line);font-size:12px;min-width:0}.station-now-title{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.state-summary{display:flex;flex-wrap:wrap;gap:6px}.state-summary span{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:600}.station-card:hover{border-color:var(--accent);color:var(--text)}.station-logo{grid-row:span 2;width:40px;height:40px;border-radius:10px;color:#0e1014;display:grid;place-items:center;font-weight:800;font-size:13px}.station-name{font-weight:700}.listen{display:flex;flex-direction:column;gap:14px}.listen-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.listen-head .titles{display:flex;flex-direction:column}.listen-head h1{margin:0;font-size:22px}.listen-head .back{color:var(--muted)}.day-nav{display:flex;gap:4px}.day-nav input{min-height:36px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:14px 16px}.day-band{display:flex;flex-direction:column;gap:4px}.day-band .band{position:relative;height:34px;background:var(--surface);border:1px solid var(--border);border-radius:8px;cursor:pointer;overflow:hidden}.day-band .seg,.day-band .gap,.day-band .window-mark{position:absolute;top:0;bottom:0}.day-band .seg.available{background:#2b3a52}.day-band .seg.remote{background:#233044}.day-band .seg.gone{background:#252830}.day-band .gap{background:#8a4048}.day-band .window-mark{border:2px solid var(--accent);border-radius:4px;background:#f5a52426}.day-band .hours{position:relative;height:16px;font-size:11px;color:var(--muted);font-family:JetBrains Mono,monospace}.day-band .hours span{position:absolute;transform:translate(-2px)}.listen-body{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start}.window{flex:999 1 560px;min-width:0;display:flex;flex-direction:column;gap:10px}.window-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.segmented{display:inline-flex;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:3px}.segmented button{border:0;min-height:30px}.segmented button[aria-pressed=true]{background:#2b3242;font-weight:600}.legend{display:flex;flex-wrap:wrap;gap:6px}.legend span{font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px}.lane{position:relative;height:30px;background:var(--surface);border-radius:6px}.lane button{position:absolute;top:2px;bottom:2px;min-height:0;min-width:3px;border:0;border-left:2px solid;border-radius:4px;padding:0 6px;font-size:12px;font-weight:600;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.waveform{width:100%;height:150px;display:block;border-radius:6px;background:var(--surface);cursor:grab;touch-action:pan-y}.waveform:active{cursor:grabbing}.axis{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);font-family:JetBrains Mono,monospace}.items{flex:1 1 320px;min-width:0;max-height:460px;overflow:auto}.items h2{margin:0 0 8px;font-size:15px}.items ol{list-style:none;margin:0;padding:0}.items li button{width:100%;display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:10px;align-items:center;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:8px 4px;text-align:left;min-height:48px}.items li.on button{background:#232836}.items .what{display:flex;flex-direction:column;min-width:0}.items .title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.items .sub{font-size:12px;color:var(--muted)}.items .badge{font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px;white-space:nowrap}.player{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.player .play{width:52px;height:52px;border-radius:50%;border:0;background:var(--accent);color:#0e1014;display:grid;place-items:center;padding:0}.player .clock{display:flex;flex-direction:column}.player .time{font-size:26px;font-weight:600}.player .now{display:flex;flex-direction:column;min-width:0;max-width:360px}.player .now .title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fetching{color:#8ec3ff;font-size:13px}.shortcuts{margin:0}.filters{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chips button{border-radius:999px;min-height:32px;font-size:13px}.chips button[aria-pressed=true]{background:#2b3242;border-color:var(--accent)}.heat{margin-bottom:12px;overflow-x:auto}.heat-grid{display:grid;gap:3px;min-width:640px;align-items:center}.heat-hour,.heat-day{font-size:11px;color:var(--muted)}.heat-cell{height:16px;border-radius:3px;background:var(--surface)}.results{overflow-x:auto}.results table{width:100%;border-collapse:collapse}.results th,.results td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);font-size:13px}.results th{color:var(--muted);font-weight:600;font-size:12px}.results td a{font-weight:600}.results .badge{font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px;white-space:nowrap}.compare .track{display:flex;flex-direction:column;gap:6px;padding:10px 0;border-bottom:1px solid var(--line)}.compare .track.muted{opacity:.6}.track-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.track-head a{font-weight:700}.station-logo.small{width:28px;height:28px;border-radius:7px;font-size:11px;grid-row:auto}.listen-btn{min-height:32px}.listen-btn.active{background:var(--accent);border-color:var(--accent);color:#0e1014;font-weight:700}.offset{display:inline-flex;align-items:center;gap:6px}.offset input{width:70px;min-height:32px}.snapshot{flex:1 1 320px;display:flex;flex-direction:column;gap:8px}.snapshot h2{margin:0;font-size:15px}.snapshot-row{display:flex;align-items:center;gap:10px;min-width:0}.snapshot-row .what{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.snapshot-row .badge{font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px}.compare .player{flex:999 1 520px}select{background:var(--bg);border:1px solid var(--border);border-radius:8px;min-height:36px;padding:0 8px}@media (max-width: 720px){.content{padding:14px 16px}.topbar{padding:10px 16px}.search{min-width:0;width:100%}}.alerts{display:grid;gap:6px;margin-bottom:16px}.alert-line{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;padding:10px 14px;border-radius:10px;background:#1f1416;border:1px solid #6b2a2f;color:#ff8a8a}.alert-line span:not(.hint){color:var(--text)}.admin h2{margin:0 0 10px;font-size:16px}.admin h3{margin:12px 0 6px;font-size:14px}.admin>section,.admin .site-cards{margin-bottom:16px}select,textarea{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--border);border-radius:8px;min-height:40px;padding:0 10px}button.danger{border-color:var(--danger);color:var(--danger)}.ok-text{color:#6be39c}.admin-form form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}.admin-form label{display:flex;flex-direction:column;gap:6px;flex:1 1 180px;min-width:0}.admin-form label.wide{flex:2 1 320px}.admin-form label.narrow{flex:0 1 100px}.admin-form label span,.rule-fields label span{font-size:12px;color:var(--muted)}.inline-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.inline-form input{flex:1 1 240px;min-width:0}.row-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.results td.row-actions{justify-content:flex-end}.row-edit td{background:var(--raised)}.secret{display:grid;gap:6px;padding:12px 16px;margin-bottom:16px;border-radius:12px;border:1px solid var(--accent);background:#2a2110}.secret>div{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.secret code{font-size:16px;padding:4px 10px;border-radius:6px;background:var(--bg);-webkit-user-select:all;user-select:all}.secret .link{justify-self:start}.site-cards{display:grid;gap:12px}.site-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px}.site-card-head h2{margin:0}.pill{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px}.pill.ok{background:#143323;color:#6be39c}.pill.bad{background:#3d1518;color:#ff8a8a}.pill.warn{background:#3a2e12;color:#f5c46a}.pill.muted{background:#232836;color:var(--muted)}.facts{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 16px;margin:0 0 10px;font-size:13px}.facts dt{color:var(--muted)}.facts dd{margin:0;overflow-wrap:anywhere}.disks{display:grid;gap:6px;margin-bottom:10px}.disk{display:grid;grid-template-columns:minmax(60px,max-content) minmax(80px,200px) minmax(0,1fr);gap:10px;align-items:center;font-size:13px}.disk .bar{height:6px;border-radius:3px;background:#232836;overflow:hidden}.disk .bar span{display:block;height:100%;background:#6ab0ff}.disk .bar span.full{background:#ff5d5d}.site-stations{list-style:none;padding:0;margin:0 0 6px;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px}.site-stations i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.site-stations i.ok{background:#3ccf7a}.site-stations i.bad{background:#ff5d5d}.requests{border-top:1px solid var(--line);padding-top:6px}.request{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:6px 0}.rule-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:12px}.rule-card{display:grid;gap:10px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);min-width:0}.rule-card.off{opacity:.75}.rule-card p{margin:0}.rule-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px}.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.switch input{width:18px;height:18px;min-height:0;accent-color:var(--accent)}.rule-fields{display:flex;flex-wrap:wrap;gap:10px}.rule-fields label{display:flex;flex-direction:column;gap:4px;flex:1 1 120px}.rule-card fieldset{border:1px solid var(--line);border-radius:10px;padding:8px 10px;display:grid;gap:8px;min-width:0}.rule-card legend{font-size:12px;color:var(--muted);padding:0 4px}.quiet,.action{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.quiet input[type=time]{min-height:34px}.quiet .chips button{min-height:28px;padding:0 8px}.action input{flex:1 1 180px;min-width:0}.deliveries{margin:0;padding-left:18px;display:grid;gap:4px;font-size:13px}.results tr.selected td{background:var(--raised)}.station-sheet{display:grid;gap:14px;margin-bottom:16px}.station-sheet .sheet-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px}.station-sheet .sheet-head h2,.station-sheet p{margin:0}.station-sheet fieldset{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;min-width:0}.station-sheet legend{font-size:12px;color:var(--muted);padding:0 4px}.station-sheet label small{font-size:11px}.station-sheet .wide-hint{flex-basis:100%}.sheet-alerts{margin-bottom:16px;display:grid;gap:10px}.sheet-alerts h2{margin:0}.admin-form label.switch{flex:0 0 100%;flex-direction:row;align-items:center}
