/* StreamGrid — broadcast design system */
:root{
  --ink:#0a0e1a; --panel:#10162a; --panel2:#182036; --line:#232d47;
  --fg:#e8ecf6; --dim:#8b94ad; --live:#ff3b4e; --signal:#ffd166; --ok:#3ecf8e;
  --font-display:'Archivo',system-ui,sans-serif; --font-body:'Inter',system-ui,sans-serif; --font-mono:'JetBrains Mono',ui-monospace,monospace;
}
*{box-sizing:border-box}
body{margin:0;background:var(--ink);color:var(--fg);font:15px/1.6 var(--font-body)}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--font-display);line-height:1.15;margin:0 0 8px}
.mono{font-family:var(--font-mono)}
.dim{color:var(--dim)}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}
.smpte{height:5px;background:linear-gradient(90deg,#fff 0 14.3%,#ffd166 0 28.6%,#4ecdc4 0 42.9%,#3ecf8e 0 57.2%,#c56cf0 0 71.5%,#ff6b6b 0 85.8%,#3d6cf0 0)}

/* Header / footer */
.site-header{position:sticky;top:0;z-index:50;background:rgba(10,14,26,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;gap:22px;height:60px}
.logo{font-family:var(--font-display);font-weight:800;font-size:18px;white-space:nowrap}
.logo-mark{color:var(--signal)}
.main-nav{display:flex;gap:16px;font-size:14px;overflow-x:auto}
.main-nav a:hover{color:var(--signal)}
.header-search{margin-left:auto}
.header-search input{background:var(--panel2);border:1px solid var(--line);border-radius:8px;color:var(--fg);padding:8px 12px;font:inherit;width:190px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--signal);outline-offset:0}
.site-footer{margin-top:70px;border-top:1px solid var(--line)}
.footer-inner{padding:28px 20px;font-size:14px}
.site-footer a{color:var(--signal)}

/* Hero */
.hero{padding:64px 0 40px}
.kicker{color:var(--signal);letter-spacing:.14em;font-size:12px;margin:0 0 10px}
.hero h1{font-size:clamp(32px,6vw,56px);font-weight:800}
.hero-actions{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap}

/* Buttons */
.btn{display:inline-block;padding:10px 18px;border-radius:8px;border:1px solid var(--line);background:var(--panel2);color:var(--fg);font:600 14px var(--font-body);cursor:pointer}
.btn:hover{border-color:var(--signal)}
.btn-primary{background:var(--signal);color:var(--ink);border-color:var(--signal)}
.btn.wide{width:100%}

/* Sections & grid */
.sec-title{font-size:18px;margin:38px 0 16px;display:flex;align-items:center;gap:8px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px}
.page-title{font-size:28px;margin:34px 0 18px}

/* Card */
.card{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden;transition:transform .12s,border-color .12s;display:block}
.card:hover{transform:translateY(-3px);border-color:var(--signal)}
.card-smpte{opacity:0;transition:opacity .12s;position:absolute;bottom:0;left:0;right:0}
.card:hover .card-smpte{opacity:1}
.card-media{position:relative;aspect-ratio:16/9;background:var(--panel2);display:flex;align-items:center;justify-content:center}
.card-media img{max-width:70%;max-height:70%;object-fit:contain}
.card-noimg{font-size:24px;color:var(--dim)}
.card-body{padding:12px 14px 16px}
.card-body h3{font-size:15px;margin:0 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-body p{margin:0;font-size:12px}
.onair{position:absolute;top:8px;left:8px;background:rgba(10,14,26,.85);color:var(--live);font:600 10px var(--font-mono);letter-spacing:.1em;padding:3px 8px;border-radius:5px;display:flex;align-items:center;gap:5px}
.onair.inline{position:static;display:inline-flex;vertical-align:middle;margin-left:8px}
.onair i{width:7px;height:7px;border-radius:50%;background:var(--live);animation:pulse 1.6s infinite}
.live-dot{width:9px;height:9px;border-radius:50%;background:var(--live);display:inline-block;animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.res{position:absolute;top:8px;right:8px;background:rgba(10,14,26,.85);color:var(--signal);font-size:10px;padding:3px 7px;border-radius:5px}
.fav{position:absolute;right:10px;bottom:12px;background:none;border:0;color:var(--line);font-size:18px;cursor:pointer;padding:2px 4px}
.fav:hover{color:var(--live)}
.fav.on{color:var(--live)}

/* Chips */
.chip-grid{display:flex;flex-wrap:wrap;gap:10px}
.chip-grid.big{margin-top:10px}
.chip{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:14px}
.chip:hover{border-color:var(--signal)}

/* Filters / forms */
.filters{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 22px}
.filters input,.filters select{background:var(--panel2);border:1px solid var(--line);border-radius:8px;color:var(--fg);padding:9px 12px;font:inherit}
select option{background:var(--panel2)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;max-width:760px}
.form-grid label{font-weight:600;font-size:13px;margin:8px 0}
.form-grid .span2{grid-column:1/-1}
.form-grid input,.form-grid select,.form-grid textarea{display:block;width:100%;margin-top:6px;background:var(--panel2);border:1px solid var(--line);border-radius:8px;color:var(--fg);padding:10px 12px;font:inherit}
.form-grid .check{display:flex;align-items:center;gap:8px;font-weight:400}
.form-grid .check input{width:auto;margin:0}

/* Watch page */
.watch{display:grid;grid-template-columns:1fr 300px;gap:28px;margin-top:28px}
@media(max-width:900px){.watch{grid-template-columns:1fr}}
.player-shell{position:relative;background:#000;border-radius:10px;overflow:hidden;border:1px solid var(--line)}
.player-shell video{display:block;width:100%;aspect-ratio:16/9;background:#000}
.player-error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;background:rgba(10,14,26,.94);color:var(--live);font-size:14px;padding:20px}
.watch-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-top:16px;flex-wrap:wrap}
.watch-head h1{font-size:24px}
.watch-head a{color:var(--signal)}
.watch-actions{display:flex;gap:8px}
.watch-side .side-row{display:flex;gap:12px;padding:10px;border:1px solid var(--line);border-radius:8px;margin-bottom:10px;background:var(--panel);font-size:14px;align-items:center}
.watch-side .side-row:hover{border-color:var(--signal)}
.side-logo{width:52px;height:38px;background:var(--panel2);border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.side-logo img{max-width:80%;max-height:80%;object-fit:contain}

/* Misc */
.empty{border:1px dashed var(--line);border-radius:10px;padding:56px 20px;text-align:center;color:var(--dim)}
.pager{display:flex;gap:6px;flex-wrap:wrap;margin:26px 0}
.pager a{padding:6px 11px;border:1px solid var(--line);border-radius:6px;font-size:13px}
.pager a.on{background:var(--signal);color:var(--ink);border-color:var(--signal)}
.notfound{text-align:center;padding:110px 0}
.notfound h1{font-size:40px;letter-spacing:.08em}
.alert{border-radius:8px;padding:12px 14px;margin:0 0 18px;font-size:14px}
.alert.ok{background:rgba(62,207,142,.12);border:1px solid var(--ok)}
.alert.err{background:rgba(255,59,78,.12);border:1px solid var(--live)}

/* Admin */
.admin-shell{display:grid;grid-template-columns:230px 1fr;min-height:calc(100vh - 5px)}
@media(max-width:800px){.admin-shell{grid-template-columns:1fr}.admin-side{position:static !important;height:auto !important}}
.admin-side{background:var(--panel);border-right:1px solid var(--line);padding:22px 18px;position:sticky;top:0;height:calc(100vh - 5px);display:flex;flex-direction:column}
.admin-side nav{display:flex;flex-direction:column;gap:4px;margin-top:26px}
.admin-side nav a{padding:9px 12px;border-radius:8px;font-size:14px}
.admin-side nav a:hover{background:var(--panel2)}
.admin-side nav a.on{background:var(--panel2);color:var(--signal)}
.admin-side-foot{margin-top:auto;font-size:12px}
.admin-side-foot a{color:var(--signal)}
.admin-main{padding:26px 32px;min-width:0}
.page-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 6px}
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin:18px 0 6px}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px;font-size:13px;color:var(--dim)}
.stat .big{font-size:26px;color:var(--fg)}
.bars{display:flex;align-items:flex-end;gap:6px;height:120px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px}
.bar{flex:1;background:var(--signal);border-radius:3px 3px 0 0;min-height:4px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:10px}
@media(max-width:900px){.two-col{grid-template-columns:1fr}}
.table{width:100%;border-collapse:collapse;font-size:14px}
.table td,.table th{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left}
.table a{color:var(--signal)}
.wide-table{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.st-ok{color:var(--ok)}.st-bad{color:var(--live)}
.code-block{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px;font-size:12px;overflow-x:auto;white-space:pre-wrap;word-break:break-all}

/* Auth box */
.auth-box{max-width:420px;margin:10vh auto;background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.auth-inner{padding:30px}
.auth-inner label{display:block;font-weight:600;font-size:13px;margin:12px 0}
.auth-inner input{display:block;width:100%;margin-top:6px;background:var(--panel2);border:1px solid var(--line);border-radius:8px;color:var(--fg);padding:11px 12px;font:inherit}
