:root{color-scheme:dark;--bg: #0a0a0e;--surface: #16161c;--surface-2: #1f1f27;--line: #2a2a34;--text: #f2f2f5;--muted: #9a9aa8;--accent: #7cc4ff;--danger: #ff6b6b}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}button{cursor:pointer}.app{display:flex;flex-direction:column;min-height:100%}.topbar{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#0a0a0eeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20}.brand{font-weight:700;letter-spacing:-.02em;margin-right:8px}.tabs{display:flex;gap:6px;flex-wrap:wrap;flex:1}.tab{border:1px solid transparent;background:transparent;padding:8px 14px;border-radius:999px;color:var(--muted)}.tab.active{background:var(--text);color:#101014;font-weight:600}.tab:hover:not(.active){background:var(--surface-2);color:var(--text)}.content{padding:20px;flex:1}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:12px;margin-bottom:8px}.chip{white-space:nowrap;border:1px solid var(--line);background:var(--surface);padding:7px 13px;border-radius:999px;color:var(--muted)}.chip.active{background:var(--accent);border-color:var(--accent);color:#06131d;font-weight:600}.list{display:flex;flex-direction:column;gap:6px}.channel{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;border:1px solid transparent;background:var(--surface);text-align:left;width:100%}.channel:hover{border-color:var(--line);background:var(--surface-2)}.channel img,.channel .logo-fallback{width:40px;height:40px;border-radius:8px;object-fit:contain;background:#101014;flex-shrink:0}.channel .name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel .num{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px}.card{background:var(--surface);border:1px solid transparent;border-radius:14px;overflow:hidden;padding:0;text-align:left}.card:hover{border-color:var(--line)}.card .poster{width:100%;aspect-ratio:2 / 3;object-fit:cover;background:#101014;display:block}.card .meta{padding:8px 10px 10px}.card .title{font-size:14px;font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card .sub{color:var(--muted);font-size:12px;margin-top:2px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:13px;color:var(--muted)}.field input,.field select{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;outline:none}.field input:focus,.field select:focus{border-color:var(--accent)}.btn{border:1px solid var(--line);background:var(--surface-2);padding:10px 16px;border-radius:10px;font-weight:600}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#06131d}.btn.danger{background:transparent;border-color:#5a2a2a;color:var(--danger)}.btn:disabled{opacity:.5;cursor:default}.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px;max-width:560px}.login-wrap{min-height:100%;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:26px}.login-card h1{margin:0 0 6px;font-size:22px}.login-card p{margin:0 0 20px;color:var(--muted);font-size:14px}.error{background:#2a1414;border:1px solid #5a2a2a;color:#ffb4b4;padding:10px 12px;border-radius:10px;font-size:14px;margin-bottom:14px}.muted{color:var(--muted)}.source-row{display:flex;align-items:center;gap:12px;padding:12px;border-radius:12px;background:var(--surface);border:1px solid var(--line);margin-bottom:8px}.source-row .grow{flex:1;min-width:0}.badge{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border:1px solid var(--line);padding:2px 8px;border-radius:999px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;z-index:100;display:flex;flex-direction:column}.overlay .head{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#000000b3}.overlay video{flex:1;width:100%;min-height:0;background:#000}.episodes{position:fixed;right:0;top:0;bottom:0;width:min(420px,92vw);background:var(--surface);border-left:1px solid var(--line);z-index:90;display:flex;flex-direction:column}.episodes .head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}.episodes .body{overflow-y:auto;padding:10px}.episode{display:flex;gap:10px;align-items:center;width:100%;padding:10px;border-radius:10px;background:transparent;border:1px solid transparent;text-align:left}.episode:hover{background:var(--surface-2);border-color:var(--line)}.episode .code{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px;min-width:44px}@media(max-width:600px){.content{padding:14px}.topbar{padding:10px 14px}.brand{display:none}}.search{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-width:240px;outline:none}.search:focus{border-color:var(--accent)}.channel.playing{border-color:var(--accent)}.channel-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.channel-line{display:flex;align-items:center;gap:8px;min-width:0}.channel-now{display:flex;align-items:baseline;gap:8px;font-size:12.5px;min-width:0}.now-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#c9c9d4}.now-time{flex-shrink:0;color:var(--muted);font-variant-numeric:tabular-nums}.channel-bar{height:3px;background:var(--line);border-radius:999px;overflow:hidden;max-width:420px}.channel-bar i{display:block;height:100%;background:var(--accent);border-radius:999px}.overlay video{object-fit:contain}.osd{position:absolute;left:0;right:0;transition:opacity .25s ease;pointer-events:none}.osd.show{opacity:1}.osd.hidden{opacity:0}.osd.show button{pointer-events:auto}.osd-top{top:0;padding:18px 22px 46px;background:linear-gradient(180deg,#000000e0,#0000)}.osd-id{display:flex;gap:14px;align-items:center}.osd-id img,.osd-logo-fallback{width:56px;height:56px;border-radius:10px;object-fit:contain;background:#0b0b10;flex-shrink:0}.osd-meta{min-width:0}.osd-line{display:flex;gap:10px;align-items:center}.osd-num{background:var(--accent);color:#06131d;font-weight:700;border-radius:6px;padding:1px 8px;font-variant-numeric:tabular-nums}.osd-name{font-size:22px;letter-spacing:-.01em}.osd-program{display:flex;gap:10px;align-items:baseline;margin-top:4px;flex-wrap:wrap}.osd-now{color:#e8e8ee}.osd-time{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.osd-progress{margin-top:14px;max-width:720px}.osd-bar{height:4px;border-radius:999px;background:#ffffff2e;overflow:hidden}.osd-bar-fill{height:100%;background:var(--accent)}.osd-next{margin-top:8px;font-size:13px;color:#d6d6e0}.osd-bottom{bottom:0;display:flex;gap:10px;align-items:center;padding:18px 22px;background:linear-gradient(0deg,#000000e0,#0000)}.osd-close{margin-left:auto}.osd-hint{font-size:12px}.osd-spinner{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:46px;height:46px;border-radius:50%;border:3px solid rgba(255,255,255,.2);border-top-color:var(--accent);animation:osd-spin 1s linear infinite}@keyframes osd-spin{to{transform:rotate(360deg)}}.osd-error{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:14px;color:var(--muted)}.guide-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}.guide{border:1px solid var(--line);border-radius:14px;overflow:auto;max-height:calc(100vh - 230px);background:var(--surface)}.guide-track{position:relative}.guide-row{display:flex;align-items:stretch;border-bottom:1px solid var(--line)}.guide-ruler{position:sticky;top:0;z-index:6;background:var(--surface-2)}.guide-cell{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--surface);border:0;border-right:1px solid var(--line);text-align:left;flex-shrink:0}.guide-cell:not(.sticky-col){background:var(--surface-2)}.sticky-col{position:sticky;left:0;z-index:5}.guide-cell.playing{color:var(--accent)}.guide-cell img,.guide-cell .logo-fallback{width:34px;height:34px;border-radius:6px;object-fit:contain;background:#101014;flex-shrink:0}.guide-name{display:flex;flex-direction:column;min-width:0;font-size:13px}.guide-name>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guide-time{position:relative;flex-shrink:0;background:repeating-linear-gradient(90deg,transparent 0,transparent 119px,rgba(255,255,255,.04) 119px,rgba(255,255,255,.04) 120px)}.guide-ruler .guide-time{background:var(--surface-2)}.guide-tick{position:absolute;top:9px;transform:translate(-50%);font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.guide-tick.future{color:#6d6d7c}.guide-prog{position:absolute;top:6px;height:calc(100% - 12px);border-radius:8px;border:1px solid var(--line);background:var(--surface-2);color:var(--text);text-align:left;padding:5px 8px;overflow:hidden;display:flex;flex-direction:column;gap:2px}.guide-prog:hover{border-color:var(--accent)}.guide-prog.live{border-color:var(--accent);background:#14293a}.guide-prog-title{font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guide-prog-time{font-size:11px;color:var(--muted)}.guide-empty{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--muted)}.guide-now{position:absolute;width:2px;background:#ff5a5a;z-index:4;pointer-events:none}@media(max-width:600px){.guide{max-height:calc(100vh - 260px)}.osd-name{font-size:17px}.osd-id img,.osd-logo-fallback{width:42px;height:42px}.osd-hint{display:none}}
