:root{--bg: #100e17;--panel: #181321;--panel-2: #211830;--border: #2e243d;--text: #e6e8ee;--muted: #8b91a5;--accent: #783594;--accent-2: #5a2770;--live: #ff4d5e;--ok: #2ecc71;--danger: #e5484d;--radius: 10px}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px}#root{min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:24px;padding:0 24px;height:56px;background:var(--panel);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.brand{font-weight:700;font-size:17px;letter-spacing:.3px}.brand img{height:26px;width:auto;display:block}.nav{display:flex;gap:8px;flex:1}.nav a{color:var(--muted);text-decoration:none;padding:7px 14px;border-radius:8px;font-weight:500}.nav a:hover{color:var(--text);background:var(--panel-2)}.nav a.active{color:var(--text);background:var(--accent-2)}.content{flex:1;padding:24px;max-width:1280px;width:100%;margin:0 auto}.grid{display:grid;grid-template-columns:2fr 1fr;gap:20px}@media (max-width: 900px){.grid{grid-template-columns:1fr}}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:20px}.card.full{grid-column:1 / -1}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.card h1,.card h2{margin:0 0 14px;font-size:17px}.card h1{font-size:22px}.placeholder{padding:40px;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:var(--radius)}.player-wrap{position:relative;background:#000;border-radius:var(--radius);overflow:hidden}.player-wrap video{width:100%;display:block;aspect-ratio:16 / 9;background:#000;cursor:pointer}.player-controls{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:10px;padding:30px 14px 12px;background:linear-gradient(transparent,#000000bf);opacity:0;transition:opacity .2s}.player-wrap:hover .player-controls,.player-controls:hover{opacity:1}.player-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:#00000080;color:#fff;font-size:14px;line-height:1;cursor:pointer;transition:background .15s}.player-btn:hover{background:#000c}.player-live{margin-left:auto;font-size:11px;font-weight:700;letter-spacing:1.5px;color:#fff;background:#e5484d;border-radius:999px;padding:4px 10px}.player-waiting{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;letter-spacing:.5px;background:radial-gradient(circle,#00000059,#000000bf);pointer-events:none}.player-waiting:before{content:"";width:26px;height:26px;margin-right:12px;border-radius:50%;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;animation:player-spin .9s linear infinite}@keyframes player-spin{to{transform:rotate(360deg)}}.btn{border:none;border-radius:8px;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer;color:var(--text);background:var(--panel-2);border:1px solid var(--border)}.btn:hover:not(:disabled){filter:brightness(1.15)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.small{padding:6px 12px;font-size:13px}.btn.primary{background:var(--accent-2);border-color:var(--accent-2)}.btn.live{background:var(--live);border-color:var(--live)}.btn.danger{background:var(--danger);border-color:var(--danger)}.btn.ghost{background:transparent}.danger-text{color:var(--danger)}.badge{background:var(--panel-2);border:1px solid var(--border);color:var(--muted);padding:4px 12px;border-radius:999px;font-size:13px;font-weight:600}.badge-live{background:var(--live);border-color:var(--live);color:#fff;animation:pulse 1.6s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}.meta{width:100%;border-collapse:collapse;margin:16px 0}.meta td{padding:6px 0;border-bottom:1px solid var(--border)}.meta td:first-child{color:var(--muted);width:120px}.controls{display:flex;gap:12px;margin-top:16px}.progress{height:8px;background:var(--panel-2);border-radius:999px;overflow:hidden;margin-top:8px}.progress-fill{height:100%;background:var(--accent);width:0;transition:width .4s linear}.np-title{font-size:18px;font-weight:700}.np-sub{color:var(--muted);font-size:13px;margin-top:4px}.hint{color:var(--muted);font-size:13px;margin:8px 0}.hint code,.code{background:var(--panel-2);padding:2px 6px;border-radius:5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}details.hint{margin-top:14px}details.hint summary{cursor:pointer;color:var(--accent)}.error{color:var(--danger);background:#e5484d1f;border:1px solid rgba(229,72,77,.4);padding:10px 14px;border-radius:8px;margin:12px 0}.success{color:#4ade80;background:#4ade801f;border:1px solid rgba(74,222,128,.4);padding:10px 14px;border-radius:8px;margin:12px 0}.debug{background:#0a0c11;color:#9fe8a0;padding:14px;border-radius:8px;font-size:12px;overflow:auto;max-height:300px;white-space:pre-wrap}label{display:block;font-size:13px;color:var(--muted);margin-bottom:12px}label input,label select,input,select{display:block;width:100%;margin-top:6px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:9px 12px;font-size:14px}input[type=file]{padding:8px}.form-row{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:12px}.form-row+.form-row{margin-top:12px}.form-row .wide{grid-column:1 / -1}.form-actions{display:flex;gap:10px;margin-top:10px}.segment-form{margin:14px 0;border:1px solid var(--accent-2)}.segment-row{display:grid;grid-template-columns:190px 1fr auto;gap:16px;align-items:center;padding:14px;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;background:var(--panel-2)}@media (max-width: 760px){.segment-row{grid-template-columns:1fr}}.seg-time{display:flex;flex-direction:column;gap:4px}.seg-time strong{font-size:16px}.seg-title{font-size:13px;font-weight:600;color:var(--accent)}.seg-type{align-self:flex-start;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--panel);border:1px solid var(--border);color:var(--accent)}.seg-lists{color:var(--text);font-size:13px;line-height:1.5}.seg-actions{display:flex;gap:8px}.muted{color:var(--muted)}.picker{margin:4px 0}.picker-list{list-style:none;margin:10px 0 0;padding:0}.picker-list li{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--border);border-radius:8px;margin-bottom:6px;background:var(--panel-2)}.picker-list .idx{width:22px;height:22px;border-radius:50%;background:var(--panel);border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:var(--muted);flex-shrink:0}.picker-list .title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-list .icon{width:26px;height:26px;border-radius:6px;border:1px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer}.picker-list .icon:disabled{opacity:.3;cursor:not-allowed}.picker-list .icon.danger:hover{background:var(--danger);border-color:var(--danger)}.picker-list .dur{display:inline-block;margin-left:8px;font-size:11px;color:var(--muted);background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:1px 7px;flex-shrink:0}.totals{display:flex;flex-direction:column;gap:4px;margin-top:12px;font-size:13px;color:var(--muted)}.totals .warn{color:var(--danger);font-weight:600}.poster-cell{display:flex;align-items:center;gap:10px}.poster-cell img{width:96px;height:54px;object-fit:cover;border-radius:8px;border:1px solid var(--border);background:#0a0c11}.poster-btn{position:relative;cursor:pointer;margin:0}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}.table th{color:var(--muted);font-weight:600;font-size:13px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login{width:360px;max-width:92vw}.login h1{text-align:center}.login-logo{height:48px;width:auto;display:block;margin:0 auto 16px}.stack{display:flex;flex-direction:column;gap:6px}.watch{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(1200px 500px at 20% -10%,rgba(120,53,148,.28),transparent 60%),radial-gradient(900px 400px at 85% 0%,rgba(120,53,148,.14),transparent 55%),#100e17}.watch-top{display:flex;align-items:center;justify-content:space-between;padding:16px 28px;border-bottom:1px solid var(--border);background:#181321b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20}.watch-brand{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:800;letter-spacing:2px}.watch-logo-img{height:30px;width:auto;display:block}.watch-brand-sub{color:var(--muted);font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase}.watch-top-right{display:flex;align-items:center;gap:14px}.watch-live-badge,.watch-live-flag{background:var(--live);color:#fff;font-weight:700;font-size:12px;letter-spacing:1px;border-radius:999px;padding:5px 12px;animation:pulse 1.6s infinite}.watch-clock{color:var(--muted);font-variant-numeric:tabular-nums;font-size:14px}.watch-main{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:24px 28px 32px;display:grid;grid-template-columns:1fr 340px;gap:24px;align-items:start}@media (max-width: 960px){.watch-main{grid-template-columns:1fr}}.watch-stage{min-width:0}.watch-player{position:relative;border-radius:14px;overflow:hidden;box-shadow:0 18px 50px #0000008c;border:1px solid var(--border);background:#000}.watch-player video{width:100%;display:block;aspect-ratio:16 / 9;background:#000}.watch-live-flag{position:absolute;top:14px;left:14px;box-shadow:0 2px 10px #00000080}.watch-offair{aspect-ratio:16 / 9;display:flex;align-items:center;justify-content:center;background:#05060a;overflow:hidden}.watch-offair img{width:100%;height:100%;object-fit:cover;display:block}.watch-loading{aspect-ratio:16 / 9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--muted);background:radial-gradient(600px 300px at 50% 30%,rgba(120,53,148,.16),transparent),#0d0a14}.watch-loading-spin{width:34px;height:34px;border-radius:50%;border:3px solid var(--panel-2);border-top-color:var(--accent);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.watch-now{padding:18px 4px 4px}.watch-now-kicker{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--accent)}.watch-now-dot{width:8px;height:8px;border-radius:50%;background:var(--panel-2);border:1px solid var(--border)}.watch-now-dot.live{background:var(--live);border-color:var(--live);animation:pulse 1.6s infinite}.watch-now-dot.off{background:var(--muted);border-color:var(--muted)}.watch-now-title{font-size:26px;font-weight:800;line-height:1.25;margin:8px 0 0}.watch-now-sub{color:var(--muted);font-size:13px;margin-top:4px}.watch-now-video{color:var(--muted);font-size:12px}.watch-schedule{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:14px;overflow:hidden;max-height:calc(100vh - 150px);position:sticky;top:80px}.watch-schedule-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 12px;border-bottom:1px solid var(--border)}.watch-schedule-head h2{margin:0;font-size:15px;letter-spacing:.3px}.watch-schedule-now{color:var(--muted);font-size:12px;text-transform:capitalize}.watch-timeline{flex:1;min-height:0;overflow-y:auto;padding:6px 0}.watch-seg{display:grid;grid-template-columns:62px 1fr auto;gap:12px;align-items:center;padding:10px 16px;border-left:3px solid transparent;transition:background .25s ease}.watch-seg.active{background:#7835941f;border-left-color:var(--accent)}.watch-seg+.watch-seg{border-top:1px solid var(--border)}.watch-seg-time{display:flex;flex-direction:column;font-variant-numeric:tabular-nums;gap:1px}.watch-seg-start{font-size:14px;font-weight:700}.watch-seg-end{font-size:12px;color:var(--muted)}.watch-seg-body{min-width:0}.watch-seg-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.watch-seg-tag{font-size:9px;font-weight:800;letter-spacing:1px;padding:2px 7px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted)}.watch-seg-tag.live{background:#ff4d5e26;border-color:#ff4d5e80;color:var(--live)}.watch-seg-sub{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin-top:4px}.watch-onair{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:800;letter-spacing:1.5px;color:var(--live);background:#ff4d5e1f;border:1px solid rgba(255,77,94,.4);border-radius:999px;padding:4px 10px;animation:pulse 1.6s infinite;white-space:nowrap}.watch-empty{padding:28px 18px;text-align:center;color:var(--muted)}.watch-support{flex-shrink:0;border-top:1px solid var(--border);padding:16px 18px 18px;display:flex;flex-direction:column;align-items:center;gap:12px}.watch-support-head{display:flex;flex-direction:column;align-items:center;gap:3px}.watch-support-head span{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700}.watch-support-head-logo{height:18px;width:auto;display:inline-block}.watch-support-head a{font-size:11px;color:var(--accent);text-decoration:none}.watch-support-logo-link{width:100%;display:block}.watch-support-logo{width:100%;max-width:280px;border-radius:12px;display:block}.watch-support-qr{display:flex;flex-direction:column;align-items:center;gap:6px}.watch-support-qr-img{width:96px;height:96px;border-radius:8px;background:#fff;padding:6px;display:block}.watch-support-qr-hint{font-size:11px;color:var(--muted)}.watch-foot{text-align:center;color:var(--muted);font-size:12px;letter-spacing:1px;padding:18px;border-top:1px solid var(--border)}@media (max-width: 720px){.watch-top{padding:12px 16px}.watch-brand{font-size:18px}.watch-brand-sub{display:none}.watch-main{padding:14px 14px 24px;gap:16px}.watch-now{padding:14px 2px 0}.watch-now-title{font-size:20px}.watch-seg{grid-template-columns:46px 1fr;gap:10px;padding:10px 12px}.watch-onair{grid-column:1 / -1;justify-self:start;margin-top:2px}.watch-schedule{max-height:none;position:static}.watch-schedule-head{padding:14px 14px 10px}.watch-timeline{max-height:420px}.watch-clock{font-size:13px}}
