:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#eef7ff;background:#071018;--panel:#0d1c29;--line:#203b50;--accent:#48a9ff}
*{box-sizing:border-box}body{margin:0;background:#071018;color:#eef7ff}button,input,select{font:inherit}.hidden{display:none!important}
#app{display:grid;grid-template-columns:250px 1fr;min-height:100vh}aside{padding:26px 18px;background:#0b1722;border-right:1px solid #203040;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}
.brand h1{margin:0;font-size:24px}.brand small,.muted{opacity:.65}nav{display:grid;gap:8px;margin-top:28px}nav button,.btn,.logout{background:#12283a;color:#eef7ff;border:1px solid #27475f;padding:11px 14px;border-radius:12px;cursor:pointer;text-decoration:none}
nav button{text-align:left}.btn{display:inline-block;text-align:center}.logout{margin-top:auto}nav button:hover,.btn:hover,.logout:hover{background:#18364d}
main{min-width:0}header{height:72px;padding:22px 28px;border-bottom:1px solid #203040;background:#09141e;display:flex;justify-content:space-between}#status{margin-left:14px;opacity:.55;font-size:13px}#userBadge{opacity:.7}
#content{padding:26px}.hero{padding:28px;border:1px solid #24445b;border-radius:20px;background:radial-gradient(circle at 80% 15%,#16476b 0,transparent 35%),linear-gradient(135deg,#102a3d,#101d2a);margin-bottom:22px}.hero h2{font-size:34px;margin:.25em 0}.kicker{letter-spacing:.18em;font-size:11px;opacity:.7}
.grid,.posterGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.card,.posterCard,.downloadCard{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px;overflow:hidden}.actionCard{text-align:left;color:inherit;cursor:pointer}.actionCard:hover{transform:translateY(-2px)}
.stats{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:12px;margin-bottom:24px}.stat{background:#0d1c29;border:1px solid var(--line);padding:18px;border-radius:14px;display:grid}.stat b{font-size:28px}.stat span{opacity:.6}
.serviceRow,.row,.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.service{padding:16px 20px;border-radius:14px;background:#101f2d;color:#fff;text-decoration:none;border:1px solid var(--line)}
.toolbar{position:sticky;top:0;z-index:4;background:#071018;padding:8px 0 14px}.toolbar input,.toolbar select{min-width:180px;flex:1}
input,select{background:#07131d;color:#fff;border:1px solid #29475d;padding:10px;border-radius:9px}.field{display:grid;gap:5px}.formGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#playerWrap,#mediaPlayer{margin:14px 0}.playerCard{background:#05090d;padding:10px;border-radius:18px;border:1px solid var(--line)}video{width:100%;max-height:62vh;background:#000;border-radius:12px}.nowPlaying{padding:8px 4px}
.channelGrid{display:grid;gap:8px}.channelCard{display:grid;grid-template-columns:64px 1fr auto auto;align-items:center;gap:12px;background:#0d1c29;border:1px solid var(--line);padding:9px;border-radius:14px}.logoBox{width:58px;height:42px;display:grid;place-items:center;background:#08131d;border-radius:8px}.logoBox img{max-width:54px;max-height:38px}.channelInfo{display:grid}.channelInfo small{opacity:.6}.round{width:42px;height:42px;border-radius:50%;background:#152d40;border:1px solid #2b506b;color:#fff;cursor:pointer}
.posterGrid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.posterCard{padding:0;color:#fff;text-align:left}.posterCard>img,.posterPlaceholder{width:100%;aspect-ratio:2/3;object-fit:cover;background:#0a141e;display:grid;place-items:center;font-size:46px}.posterBody{padding:12px;display:grid;gap:6px}.posterBody small{opacity:.6}.seriesButton{cursor:pointer}
.seriesHero{display:grid;grid-template-columns:180px 1fr;gap:20px;margin:18px 0}.seriesHero img{width:180px;border-radius:14px}.episodeList{display:grid;gap:8px}.episode{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#0d1c29;border:1px solid var(--line);padding:10px 14px;border-radius:12px}
.timelineWrap{overflow:auto;border:1px solid var(--line);border-radius:14px;background:#08131d}.timelineHead,.timelineRow{display:grid;grid-template-columns:180px minmax(900px,1fr)}.timelineHead{position:sticky;top:0;z-index:3;background:#0c1b28}.channelHead{padding:12px}.timeAxis{display:grid;grid-template-columns:repeat(7,1fr);padding:12px}.timelineRow{min-height:70px;border-top:1px solid #172c3c}.timelineChannel{background:#0d1c29;border:0;color:#fff;padding:8px;display:flex;align-items:center;gap:8px;text-align:left;cursor:pointer}.timelineChannel img{width:40px;max-height:34px;object-fit:contain}.programLane{position:relative;min-height:70px;background-image:linear-gradient(to right,transparent 0,transparent calc(14.285% - 1px),#173044 calc(14.285% - 1px),#173044 14.285%)}.prog{position:absolute;top:6px;height:58px;background:#163750;color:#fff;border:1px solid #2d668b;border-radius:7px;padding:5px 7px;text-align:left;overflow:hidden}.prog b,.prog small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.downloadList{display:grid;gap:10px}.downloadCard{display:grid;gap:9px}.progress{height:8px;background:#172b39;border-radius:5px;overflow:hidden}.progress>div{height:100%;background:var(--accent);transition:width .25s}.danger,.bad{color:#ff9b9b}.status{opacity:.7}
.auth{min-height:100vh;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 50% 0,#123f5d,#071018 55%)}.authCard{width:min(440px,100%);display:grid;gap:10px;background:#0d1c29;border:1px solid var(--line);border-radius:20px;padding:28px}.authCard h1{margin-top:0}.authCard input{width:100%}#authmsg{color:#ffb0b0;min-height:20px}
@media(max-width:800px){#app{grid-template-columns:1fr}aside{position:sticky;top:0;height:auto;z-index:6;padding:12px}.brand{display:flex;align-items:baseline;gap:10px}nav{display:flex;overflow:auto;margin-top:10px}.logout{position:absolute;right:12px;top:10px;padding:7px}main header{display:none}#content{padding:14px}.formGrid{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.timelineHead,.timelineRow{grid-template-columns:130px minmax(900px,1fr)}.seriesHero{grid-template-columns:100px 1fr}.seriesHero img{width:100px}.channelCard{grid-template-columns:48px 1fr auto auto}}

.healthDot{width:12px;height:12px;border-radius:50%;display:inline-block;background:#768697}.healthDot.ok{background:#53d78b}.healthDot.fail{background:#ff6f79}
