:root{
  --side-w:248px;
  --side-bg:#ffffff;
  --ink:#0f172a;--muted:#64748b;--line:#e2eaf6;--soft:#f4f8ff;--blue:#2563eb;--blue-dark:#1d4ed8;
  --blue-soft:#eaf2ff;--green:#10b981;--red:#dc2626;--amber:#d97706;--card:#fff;--navy:#0c1a2e;
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--soft);
}
*{box-sizing:border-box}
body{margin:0;background:var(--soft);color:var(--ink)}
a{color:inherit}
button{font:inherit}

/* ============ Shell / sidebar ============ */
.shell{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);min-height:calc(100vh - 64px);max-width:1280px;margin:0 auto;background:linear-gradient(to right,var(--side-bg) 0 var(--side-w),var(--soft) var(--side-w));color:var(--ink)}
.side{position:sticky;top:64px;height:calc(100vh - 64px);overflow:auto;background:var(--side-bg);border-right:1px solid var(--line);color:#475569;padding:22px 14px 20px;display:flex;flex-direction:column}
.brand{display:flex;align-items:center;gap:10px;padding:2px 10px 24px;color:#0f172a;font-weight:800;letter-spacing:.01em;font-size:15px}
.brand-mark{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:#2563eb;color:#fff;font-size:11px;font-weight:800;letter-spacing:.03em}
.side-label{margin:16px 10px 8px;text-transform:uppercase;font-size:10px;letter-spacing:.14em;color:#94a3b8;font-weight:700}
.side-label-seo{display:flex;align-items:center;gap:6px;text-transform:none;font-size:11px;letter-spacing:.02em;font-weight:800;color:#7c8ea8}
.side-label-seo svg{width:14px;height:14px;flex:0 0 14px}
.nav{display:flex;flex-direction:column;gap:4px}
.nav button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:#64748b;text-align:left;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,color .15s}
.nav button svg{width:16px;height:16px;flex:0 0 16px;opacity:.8}
.nav button:hover{background:#f1f5fb;color:#0f172a}
.nav button.active{background:#2563eb;color:#fff;box-shadow:0 8px 20px -10px rgba(37,99,235,.8)}
.nav button.active svg{opacity:1}
.side-bottom{margin-top:auto;padding:18px 14px 16px;border-radius:16px;background:#f8fbff;border:1px solid #dbe9ff;text-align:center}
.side-bottom .upgrade-icon{width:34px;height:34px;margin:0 auto 8px;display:grid;place-items:center;border-radius:50%;background:#1d4ed8;color:#fff}
.side-bottom strong{display:block;font-size:13px;color:#0f172a}
.side-bottom p{margin:6px 0 10px;font-size:11px;color:#64748b;line-height:1.5}
.side-bottom .btn{width:100%}
.side-bottom .btn.primary{background:#2563eb;color:#fff}
.main{min-width:0}
.page{width:100%;max-width:1180px;margin:0 auto;padding:28px 32px 40px}

/* ============ Typography / buttons ============ */
h1,h2,h3,p{margin:0}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}
.page-head h1{font-size:26px;line-height:1.2;font-weight:800;letter-spacing:-.02em}
.page-head p{margin-top:6px;font-size:13px;color:var(--muted)}
.actions{display:flex;flex-wrap:wrap;gap:8px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);background:#fff;color:#334155;border-radius:10px;padding:9px 14px;font-size:12.5px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;text-decoration:none;white-space:nowrap}
.btn:hover{border-color:#bfd3f5;color:var(--blue);background:#f8fbff}
.btn.primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);border-color:#2563eb;color:#fff;box-shadow:0 10px 22px -12px rgba(37,99,235,.7)}
.btn.primary:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af);color:#fff}
.btn.small{padding:7px 11px;font-size:11.5px;border-radius:9px}
.btn.danger{color:var(--red);border-color:#fecaca;background:#fff7f7}
.btn.danger:hover{background:#fef2f2;border-color:#fca5a5;color:#b91c1c}
.btn.ghost{background:transparent;border-color:#c7d9f5;color:var(--blue)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.muted{color:var(--muted);font-size:12.5px;line-height:1.6}
.footer-note{margin-top:10px;font-size:11.5px;color:var(--muted);line-height:1.6}
.empty{padding:26px 18px;text-align:center;color:var(--muted);font-size:12.5px;line-height:1.7}
.notice{border-radius:12px;padding:12px 14px;background:#eff6ff;border:1px solid #dbeafe;color:#1e40af;font-size:12.5px;line-height:1.6}
.notice.warn{background:#fffbeb;border-color:#fde68a;color:#92400e}
.error{margin-bottom:14px;border-radius:12px;padding:11px 14px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-size:12.5px}

/* ============ Cards / grids ============ */
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 10px 30px -28px rgba(15,23,42,.35)}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.section-title h2{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:800;letter-spacing:-.01em}
.section-title h2 svg{width:17px;height:17px;color:var(--blue)}
.grid{display:grid;gap:16px}
.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.stat-label{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.stat-value{margin-top:8px;font-size:26px;font-weight:800;letter-spacing:-.03em}
.stat-note{margin-top:5px;font-size:11.5px;color:var(--muted)}
.stat-note.positive{color:var(--green)}
.stat-note.warning{color:var(--amber)}
.positive{color:var(--green)}
.warning{color:var(--amber)}

/* ============ Badges ============ */
.badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 9px;font-size:10.5px;font-weight:700;white-space:nowrap}
.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}
.badge.green{background:#ecfdf5;color:#047857}
.badge.blue{background:#eff6ff;color:#1d4ed8}
.badge.amber{background:#fffbeb;color:#b45309}
.badge.red{background:#fef2f2;color:#b91c1c}
.badge.gray{background:#f1f5f9;color:#64748b}
.live-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.15);display:inline-block}
.dot{width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block}

/* ============ Overview hero ============ */
.hero{position:relative;overflow:hidden;display:grid;grid-template-columns:1.05fr .95fr;gap:26px;align-items:center;padding:34px 36px;border:1px solid #dbe9ff;border-radius:24px;background:
  radial-gradient(520px 300px at 88% 8%,#dbeafe 0%,rgba(219,234,254,0) 70%),
  linear-gradient(135deg,#f4f9ff 0%,#eef5ff 55%,#f8fbff 100%);margin-bottom:18px}
.hero-copy{position:relative;z-index:1}
.eyebrow{display:inline-flex;align-items:center;gap:7px;border-radius:999px;background:#fff;border:1px solid #dbe9ff;padding:6px 11px;font-size:10.5px;font-weight:800;color:#1d4ed8}
.hero h1{margin-top:14px;font-size:clamp(28px,3.4vw,44px);line-height:1.08;letter-spacing:-.04em;font-weight:900;color:#0f172a}
.hero h1 .accent{color:#2563eb}
.hero p{margin-top:13px;max-width:470px;font-size:13px;line-height:1.7;color:#52637a}
.hero-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}
.hero-visual{position:relative;min-height:220px}
.hero-visual img{width:100%;height:100%;min-height:220px;max-height:280px;object-fit:cover;border-radius:16px;box-shadow:0 24px 50px -30px rgba(15,23,42,.55);display:block}
.hero-visual .hero-live{position:absolute;left:14px;top:14px;display:inline-flex;align-items:center;gap:4px;border-radius:6px;background:#ef4444;color:#fff;padding:3px 7px;font-size:9px;font-weight:800;letter-spacing:.06em}
.hero-visual .hero-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.92);color:#2563eb;font-size:16px;box-shadow:0 10px 24px rgba(15,23,42,.2)}
.hero-online{position:absolute;right:-8px;bottom:18px;display:flex;align-items:center;gap:9px;background:#fff;border-radius:14px;padding:9px 13px;box-shadow:0 16px 34px -18px rgba(15,23,42,.45);border:1px solid #e7eef9}
.hero-online .dot{background:#22c55e;width:8px;height:8px}
.hero-online b{display:block;font-size:12px;line-height:1.1}
.hero-online small{display:block;font-size:10px;color:var(--muted);margin-top:2px}

/* ============ Overview sections ============ */
.live-now .section-title h2 .status-dot{width:9px;height:9px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.14)}
.live-now-body{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:center}
.live-now-cover{position:relative;border-radius:14px;overflow:hidden;background:#e8f0fb}
.live-now-cover img{width:100%;height:150px;object-fit:cover;display:block}
.live-now-cover .hero-live{position:absolute;left:10px;top:10px;background:#ef4444;color:#fff;border-radius:5px;padding:2px 6px;font-size:9px;font-weight:800}
.live-now-info h3{font-size:20px;font-weight:800;letter-spacing:-.02em}
.live-now-info>p{margin-top:5px;font-size:12.5px;color:var(--muted)}
.live-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}
.live-stats span{display:block;font-size:10.5px;color:var(--muted);font-weight:600}
.live-stats b{display:block;margin-top:4px;font-size:13px;font-weight:800}
.preview-card .muted{margin:-6px 0 12px}
.preview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.preview-grid a{display:block;border-radius:9px;overflow:hidden;background:#e8f0fb}
.preview-grid img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;transition:transform .2s}
.preview-grid a:hover img{transform:scale(1.04)}
.preview-placeholder{aspect-ratio:16/9;border-radius:9px;background:linear-gradient(135deg,#e8f0fb,#dbeafe);display:grid;place-items:center;color:#93a8c3;font-size:11px}
.feature-banner{margin-top:16px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:20px;align-items:center;border-radius:20px;border:1px solid #dbe9ff;background:linear-gradient(110deg,#edf5ff,#e8f1ff 60%,#f2f8ff);padding:22px 24px;overflow:hidden}
.feature-banner .feature-icon{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#2563eb;color:#fff;box-shadow:0 12px 24px -12px rgba(37,99,235,.8)}
.feature-banner h2{font-size:17px;font-weight:800;letter-spacing:-.02em}
.feature-banner p{margin-top:4px;font-size:12px;color:#52637a;max-width:560px}
.feature-art{position:relative;width:130px;height:80px}
.feature-art .cloud{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 50% 50%,#bfdbfe,#dbeafe 55%,transparent 72%);filter:blur(1px)}
.feature-art .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;display:grid;place-items:center;box-shadow:0 14px 26px -12px rgba(37,99,235,.7)}
.quick-links{margin-top:16px}
.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.quick-link{display:flex;align-items:flex-start;gap:11px;border:1px solid #e7eef9;border-radius:12px;padding:12px 13px;background:#fff;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s;color:inherit;text-decoration:none}
.quick-link:hover{border-color:#bfd3f5;box-shadow:0 8px 20px -16px rgba(37,99,235,.5)}
.quick-link .quick-icon{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue);flex:0 0 30px}
.quick-link strong{display:block;font-size:11.5px;font-weight:800;color:#1e293b}
.quick-link small{display:block;margin-top:2px;font-size:10px;color:var(--muted)}
.cta-banner{margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-radius:18px;padding:20px 24px;background:linear-gradient(100deg,#0b2f6b,#123f86 55%,#1d4ed8);color:#fff;box-shadow:0 18px 40px -28px rgba(15,23,42,.8)}
.cta-banner .cta-logo{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);flex:0 0 48px}
.cta-banner h2{font-size:17px;font-weight:800}
.cta-banner p{margin-top:3px;font-size:11.5px;color:#cfe0ff}
.cta-banner .btn{background:#3b82f6;border-color:#3b82f6;color:#fff}
.cta-banner .btn:hover{background:#2563eb;border-color:#2563eb;color:#fff}

/* ============ Stream / media / playlist rows ============ */
.stream-list{display:flex;flex-direction:column;gap:12px}
.stream-row{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px 14px;box-shadow:0 10px 24px -26px rgba(15,23,42,.35)}
.stream-row-main{min-width:0;flex:1}
.stream-row-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.stream-row-title h3{font-size:13.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stream-row-title h3 a{text-decoration:none}
.stream-row-meta{margin-top:5px;font-size:11px;color:var(--muted)}
.stream-row-error{margin-top:5px;font-size:11px;color:#b91c1c}
.stream-row-side{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.stream-row-playlist{font-size:10.5px;color:#475569;background:#f1f5f9;border-radius:999px;padding:4px 9px}
.stream-countdown{font-size:11px;font-weight:700;color:var(--blue)}
.stream-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff}
.stream-info{min-width:0}
.stream-title{font-size:12.5px;font-weight:800}
.stream-meta{margin-top:4px;font-size:11px;color:var(--muted)}
.stream-right{display:flex;align-items:center;gap:8px;flex-shrink:0}
.media-cover-wrap{display:block;width:120px;height:70px;border-radius:10px;overflow:hidden;background:#e8f0fb;flex:0 0 120px}
.media-cover{width:100%;height:100%;object-fit:cover;display:block}
.media-cover-placeholder{width:120px;height:70px;border-radius:10px;background:linear-gradient(135deg,#e8f0fb,#dbeafe);display:grid;place-items:center;color:#93a8c3;font-size:10px;flex:0 0 120px}

/* ============ Tables ============ */
.table-wrap{width:100%;overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}
.table{width:100%;border-collapse:collapse;font-size:11.5px}
.table th{background:#f8fbff;color:#64748b;text-align:left;font-weight:700;padding:9px 12px;white-space:nowrap;border-bottom:1px solid var(--line)}
.table td{padding:9px 12px;border-bottom:1px solid #eef4fc;vertical-align:middle}
.table tr:last-child td{border-bottom:0}
.table tbody tr:hover{background:#f8fbff}
.media-table td:first-child{width:130px}
.media-cover-wrap.small{width:90px;height:52px;flex-basis:90px}
.media-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 2px 2px;font-size:11.5px;color:var(--muted)}
.media-pagination>div{display:flex;align-items:center;gap:8px}
.media-pagination strong{font-size:12px;color:var(--ink);padding:0 3px;white-space:nowrap}

/* ============ Forms ============ */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field label{font-size:11.5px;font-weight:700;color:#334155}
.field-hint{font-size:11px;color:var(--muted)}
.input,.field input,.field select,.field textarea{width:100%;border:1px solid #d9e4f2;border-radius:10px;background:#fff;padding:9px 11px;font:inherit;font-size:12.5px;color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s}
.input:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:#93b4f8;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.input-action{display:flex;gap:8px}
.readonly-value{background:#f8fbff;border:1px dashed #d9e4f2;border-radius:10px;padding:9px 11px;font-size:12px;color:#475569;word-break:break-all}
.segmented{display:inline-flex;background:#f1f6fd;border:1px solid #dbe7f7;border-radius:11px;padding:3px;gap:3px}
.segmented button{border:0;background:transparent;border-radius:8px;padding:7px 12px;font-size:11.5px;font-weight:700;color:#64748b;cursor:pointer}
.segmented button.active{background:#fff;color:var(--blue);box-shadow:0 2px 8px rgba(15,23,42,.08)}
.duration-input{width:90px}
.duration-unlimited{border:1px solid #bfdbfe;background:#eff6ff;border-radius:12px;padding:12px 14px;color:#1e40af;font-size:12px}
.num{font-variant-numeric:tabular-nums}

/* ============ Playlist editor ============ */
.playlist-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.playlist-editor-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.playlist-list{display:flex;flex-direction:column;gap:10px}
.playlist-row{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:14px;padding:10px 12px;background:#fff}
.playlist-row-main{min-width:0;flex:1}
.playlist-row-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;font-weight:800}
.playlist-row-meta{margin:0;font-size:11px;font-weight:500;color:var(--muted)}
.playlist-row-actions{display:flex;gap:6px;flex-wrap:wrap}
.playlist-thumb{width:64px;height:40px;border-radius:8px;object-fit:cover;background:#e8f0fb;flex:0 0 64px}
.playlist-thumb.placeholder{display:grid;place-items:center;color:#93a8c3;font-size:10px}
.playlist-media-list{display:flex;flex-direction:column;gap:8px;max-height:420px;overflow:auto}
.playlist-media-option{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:#fff;cursor:pointer}
.playlist-media-option:hover{border-color:#bfd3f5;background:#f8fbff}
.playlist-selected-list{display:flex;flex-direction:column;gap:8px}
.playlist-selected{display:flex;align-items:center;gap:10px;border:1px solid #dbeafe;border-radius:12px;padding:8px 10px;background:#f8fbff}
.playlist-selected-name{font-size:12px;font-weight:700}
.playlist-position{font-size:10px;color:var(--muted);width:20px;text-align:right}
.playlist-empty{padding:20px;text-align:center;color:var(--muted);font-size:12px}

/* ============ Usage ============ */
.usage-chart{display:flex;flex-direction:column;gap:8px}
.usage-row{display:grid;grid-template-columns:70px minmax(0,1fr) 70px;align-items:center;gap:10px;font-size:11px;color:var(--muted)}
.usage-day{font-weight:700;color:#475569}
.usage-hours{height:9px;border-radius:999px;background:#e8f0fb;overflow:hidden}
.usage-hours>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#60a5fa,#2563eb)}

/* ============ Pricing ============ */
.price{font-size:26px;font-weight:900;letter-spacing:-.03em}
.price small{font-size:12px;font-weight:600;color:var(--muted)}
.price small{font-size:12px;font-weight:600;color:var(--muted)}
.price-card{position:relative;display:flex;flex-direction:column;gap:10px;border:1px solid var(--line);border-radius:16px;padding:18px;background:#fff}
.price-card .btn{margin-top:auto}
.price-card ul{margin:0;padding-left:16px;color:#475569;font-size:12px;line-height:1.9}

/* ============ Modal ============ */
.modal-backdrop{position:fixed;inset:0;z-index:80;background:rgba(15,23,42,.55);display:grid;place-items:center;padding:20px}
/* 通用提示/确认弹层永远在最上层（上传弹层 99、播放列表弹层 95 之上） */
.dialog-backdrop{z-index:130}
.modal{width:100%;max-width:460px;background:#fff;border-radius:18px;padding:20px;box-shadow:0 30px 80px rgba(15,23,42,.35)}
.modal-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.modal-head h2{font-size:16px;font-weight:800}
.modal-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#eff6ff;color:#2563eb;flex:0 0 34px}
.modal-message{font-size:12.5px;line-height:1.7;color:#475569;white-space:pre-wrap}
.modal .pay-qr{display:block;margin:12px auto 0;width:220px;height:220px;border-radius:12px;background:#fff;padding:8px;border:1px solid var(--line)}
.modal.pay-qr-modal .modal-head{align-items:flex-start}
/* 扫码弹窗底部按钮居中显示 */
.modal.pay-qr-modal .modal-actions{justify-content:center}
.modal .pay-qr-timer{margin:8px 0 0;text-align:center;font-size:12px;font-weight:700;color:#0f766e}
.modal .pay-qr-expired{display:flex;align-items:flex-start;gap:10px;margin-top:12px;padding:12px 14px;border-radius:12px;background:#fef2f2;border:1px solid #fecaca}
.modal .pay-qr-expired p{margin:0;font-size:12.5px;line-height:1.7;color:#b91c1c}
.modal .pay-qr-expired-icon{width:22px;height:22px;flex:0 0 22px;border-radius:50%;display:grid;place-items:center;background:#fee2e2;color:#b91c1c;font-weight:900;font-size:13px}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.media-cover-float{display:none;position:fixed;z-index:90;width:340px;max-width:calc(100vw - 24px);background:#fff;border:1px solid var(--line);border-radius:14px;padding:6px;box-shadow:0 24px 60px rgba(15,23,42,.3);pointer-events:none}
.media-cover-float.visible{display:block}
.media-cover-float img{display:block;max-width:100%;max-height:min(70vh,420px);border-radius:10px;object-fit:contain}

/* ============ Legacy hero (landing page) ============ */
.hero-side{background:#0f2748;color:#dbeafe;border-radius:16px;padding:18px}
.hero-side span{font-size:11px;color:#93a8c3}
.hero-side b{display:block;margin-top:6px;font-size:20px}
.hero-side p{margin-top:8px;font-size:11.5px;line-height:1.7}
.feature .icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#eff6ff;color:#2563eb;font-size:11px;font-weight:800}
.card.feature h3{font-size:14px;font-weight:800;margin-top:10px}
.card.feature p{margin-top:5px;font-size:12px;color:var(--muted);line-height:1.7}
.numbered{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#eff6ff;color:#1d4ed8;font-size:11px;font-weight:800}

/* ============ Responsive ============ */
@media (max-width:1100px){
  :root{--side-w:220px}
  .shell{grid-template-columns:220px minmax(0,1fr)}
  .page{padding:24px 22px 34px}
  .hero{grid-template-columns:1fr;padding:28px}
  .hero-visual{min-height:200px}
  .grid.stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .live-now-body{grid-template-columns:220px minmax(0,1fr)}
}
@media (max-width:900px){
  .shell{display:block;min-height:0;background:var(--soft)}
  .side{position:static;height:auto;padding:14px 14px 16px;overflow:visible}
  .brand{padding-bottom:12px}
  .side-label{display:none}
  .nav{flex-direction:row;overflow:auto;gap:6px;padding-bottom:4px}
  .nav button{width:auto;white-space:nowrap;padding:8px 10px}
  .side-bottom{display:none}
  .page{padding:18px 16px 30px}
  .grid.two,.grid.three,.grid.stats{grid-template-columns:1fr}
  .live-now-body{grid-template-columns:1fr}
  .feature-banner{grid-template-columns:auto minmax(0,1fr);}
  .feature-art{display:none}
  .quick-grid{grid-template-columns:1fr}
  .cta-banner{flex-direction:column;align-items:flex-start}
  .form-grid,.playlist-editor-grid{grid-template-columns:1fr}
  .page-head{flex-direction:column;align-items:flex-start}
}
@media (max-width:560px){
  .hero h1{font-size:28px}
  .preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .live-stats{grid-template-columns:1fr 1fr}
  .stream-row{align-items:flex-start;flex-wrap:wrap}
  .stream-row-side{width:100%;justify-content:flex-start}
}


/* ============ Dark theme follows the public site theme ============ */
html[data-theme="dark"]{
  --ink:#e6ecf5;--muted:#8b9bb4;--line:#1f2d44;--soft:#0b1220;--card:#111827;--blue-soft:#17233c;--blue:#60a5fa;
}
html[data-theme="dark"] body{background:var(--soft)}
html[data-theme="dark"] .hero{
  border-color:#1f2d44;
  background:radial-gradient(520px 300px at 88% 8%,#14264a 0%,rgba(20,38,74,0) 70%),linear-gradient(135deg,#101c31 0%,#0d1729 55%,#0b1220 100%);
}
html[data-theme="dark"] .hero h1{color:#e6ecf5}
html[data-theme="dark"] .hero p{color:#a7b6cc}
html[data-theme="dark"] .eyebrow{background:#111827;border-color:#24304a;color:#93b4ff}
html[data-theme="dark"] .hero-online{background:#111827;border-color:#24304a}
html[data-theme="dark"] .btn{background:#111827;border-color:#24304a;color:#c7d3e3}
html[data-theme="dark"] .btn:hover{background:#16233a;border-color:#2c4a7a;color:#93b4ff}
html[data-theme="dark"] .btn.primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);border-color:#2563eb;color:#fff}
html[data-theme="dark"] .btn.primary:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af);color:#fff}
html[data-theme="dark"] .btn.ghost{background:transparent;border-color:#2c4a7a;color:#93b4ff}
html[data-theme="dark"] .btn.danger{background:#2a1418;border-color:#7f2c3c;color:#fda4af}
html[data-theme="dark"] .btn.danger:hover{background:#3a1620;border-color:#a33b4d;color:#fecaca}
html[data-theme="dark"] .preview-grid a,
html[data-theme="dark"] .media-cover-wrap,
html[data-theme="dark"] .live-now-cover{background:#16233a}
html[data-theme="dark"] .preview-placeholder,
html[data-theme="dark"] .media-cover-placeholder{background:linear-gradient(135deg,#16233a,#1b2b4d);color:#7d8ea8}
html[data-theme="dark"] .feature-banner{background:linear-gradient(110deg,#101c31,#0d1729 60%,#101c31);border-color:#1f2d44}
html[data-theme="dark"] .feature-banner p{color:#a7b6cc}
html[data-theme="dark"] .quick-link{background:#111827;border-color:#1f2d44}
html[data-theme="dark"] .quick-link:hover{border-color:#2c4a7a;box-shadow:0 8px 20px -16px rgba(0,0,0,.6)}
html[data-theme="dark"] .quick-link strong{color:#e6ecf5}
html[data-theme="dark"] .table-wrap,
html[data-theme="dark"] .price-card,
html[data-theme="dark"] .modal,
html[data-theme="dark"] .stream-row,
html[data-theme="dark"] .stream-card,
html[data-theme="dark"] .playlist-row,
html[data-theme="dark"] .playlist-media-option,
html[data-theme="dark"] .playlist-selected{background:#111827;border-color:#1f2d44}
html[data-theme="dark"] .table th{background:#16233a;color:#a7b6cc;border-color:#1f2d44}
html[data-theme="dark"] .table td{border-color:#1f2d44}
html[data-theme="dark"] .table tbody tr:hover{background:#16233a}
html[data-theme="dark"] .input,
html[data-theme="dark"] .field input,
html[data-theme="dark"] .field select,
html[data-theme="dark"] .field textarea{background:#16233a;border-color:#24304a;color:#e6ecf5}
html[data-theme="dark"] .readonly-value{background:#16233a;border-color:#24304a;color:#c7d3e3}
html[data-theme="dark"] .segmented{background:#16233a;border-color:#24304a}
html[data-theme="dark"] .segmented button.active{background:#1b2b4d;color:#93b4ff}
html[data-theme="dark"] .notice{background:#17233c;border-color:#24304a;color:#93b4ff}
html[data-theme="dark"] .notice.warn{background:#32270e;border-color:#5a4412;color:#fbbf24}
html[data-theme="dark"] .error{background:#3a1620;border-color:#7f2c3c;color:#fda4af}
html[data-theme="dark"] .badge.green{background:#0f2f27;color:#4ade80}
html[data-theme="dark"] .badge.blue{background:#17233c;color:#93b4ff}
html[data-theme="dark"] .badge.amber{background:#32270e;color:#fbbf24}
html[data-theme="dark"] .badge.red{background:#3a1620;color:#f87171}
html[data-theme="dark"] .badge.gray{background:#16233a;color:#8b9bb4}
html[data-theme="dark"] .stream-row-playlist{background:#16233a;color:#a7b6cc}
html[data-theme="dark"] .usage-hours{background:#16233a}
html[data-theme="dark"] .playlist-media-option:hover{background:#16233a;border-color:#2c4a7a}
html[data-theme="dark"] .playlist-selected{background:#17233c;border-color:#24304a}
html[data-theme="dark"] .media-cover-float{background:#111827;border-color:#1f2d44}
html[data-theme="dark"] .cta-banner .btn{background:#3b82f6;border-color:#3b82f6;color:#fff}
html[data-theme="dark"] .cta-banner .btn:hover{background:#2563eb;border-color:#2563eb;color:#fff}
html[data-theme="dark"] .feature-art .cloud{background:radial-gradient(circle at 50% 50%,#1e3a8a,#17233c 55%,transparent 72%)}

html[data-theme="dark"]{--side-bg:#0b1729}
html[data-theme="dark"] .side{background:linear-gradient(180deg,#0d1c31 0%,#0b1729 100%);border-right-color:transparent;color:#cbd5e1}
html[data-theme="dark"] .brand{color:#fff}
html[data-theme="dark"] .side-label{color:#6f829b}
html[data-theme="dark"] .nav button{color:#a9bad0}
html[data-theme="dark"] .nav button:hover{background:rgba(148,163,184,.1);color:#fff}
html[data-theme="dark"] .side-bottom{background:linear-gradient(160deg,#162a49,#101f36);border-color:#223a5e}
html[data-theme="dark"] .side-bottom strong{color:#fff}
html[data-theme="dark"] .side-bottom p{color:#93a8c3}

/* ============ Create stream ============ */
.stream-create{display:flex;flex-direction:column;gap:18px}
.stream-hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;overflow:hidden;border:1px solid #dbe9ff;border-radius:20px;padding:24px 26px;background:radial-gradient(520px 240px at 88% 10%,#d8e9ff 0,rgba(216,233,255,0) 72%),linear-gradient(135deg,#eef6ff 0%,#e3efff 60%,#dbeaff 100%)}
.stream-hero-copy{position:relative;z-index:1;min-width:0}
.stream-breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:14px;color:#64748b;font-size:11.5px;font-weight:600}
.stream-breadcrumb button{border:0;background:none;color:#2563eb;font:inherit;font-weight:700;cursor:pointer;padding:0}
.stream-hero h1{display:flex;align-items:center;gap:14px;margin:0;color:#0f2748;font-size:28px;line-height:1.15;letter-spacing:-.03em;font-weight:800}
.stream-hero-play{width:50px;height:50px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 10px 24px -10px rgba(37,99,235,.7);flex:0 0 50px}
.stream-hero-play svg{width:22px;height:22px;margin-left:2px}
.stream-hero p{margin:10px 0 0 64px;color:#527099;font-size:12.5px}
.stream-hero-art{position:relative;flex:0 0 330px;height:142px;border:4px solid #fff;border-radius:16px;overflow:hidden;background:#0b1729;box-shadow:0 18px 40px -24px rgba(15,23,42,.55)}
.stream-hero-art img{width:100%;height:100%;object-fit:cover;display:block;border-radius:12px}
.stream-hero-dots{position:absolute;z-index:2;top:7px;left:10px;display:flex;gap:4px}
.stream-hero-dots i{width:5px;height:5px;border-radius:50%;background:#fff;opacity:.9}
.stream-hero-live{position:absolute;z-index:2;top:8px;right:8px;border-radius:4px;background:#ef4444;color:#fff;font-size:8px;font-weight:800;letter-spacing:.06em;padding:3px 5px}
.stream-hero-247{position:absolute;z-index:2;right:-24px;bottom:-18px;width:84px;height:84px;display:grid;place-items:center;border-radius:50%;background:#fff;color:#2563eb;font-size:15px;font-weight:800;box-shadow:0 8px 20px -12px rgba(15,23,42,.5)}
.stream-create-layout{display:grid;grid-template-columns:minmax(0,1fr) 296px;gap:18px;align-items:start}
.stream-form-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:0 24px;box-shadow:0 16px 40px -34px rgba(15,23,42,.35)}
.stream-section{padding:22px 0;border-bottom:1px solid var(--line)}
.stream-section-head{display:flex;align-items:center;gap:10px;margin-bottom:15px}
.stream-step{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:#2563eb;color:#fff;font-size:11px;font-weight:800;flex:0 0 26px}
.stream-section-head h2{margin:0;font-size:15px;font-weight:800;color:var(--ink)}
.stream-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 16px}
.stream-form-grid .span-2{grid-column:1/-1}
.stream-form-card .field label{color:var(--ink)}
.stream-form-card .field-hint,.stream-form-card .muted{line-height:1.55}
/* 推流内容：媒体来源（多选平台）与播放列表各占一行 */
.stream-content-rows{display:grid;gap:14px}
.upload-spec-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.upload-spec-row label{font-weight:700;font-size:12px;color:var(--muted)}
.upload-spec-row select{padding:6px 10px;border:1px solid #d9e4f2;border-radius:8px;background:var(--card);color:var(--ink);font-size:13px;font-weight:700}
.upload-spec-row .field-hint{flex:1 1 200px;min-width:0}
.stream-content-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:14px;align-items:start}
@media (max-width:640px){
  .stream-content-row{grid-template-columns:1fr}
}
.pl-trigger:disabled{cursor:not-allowed;opacity:.6}
.platform-picker{display:flex;flex-wrap:wrap;gap:8px}
.platform-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 11px 4px 5px;border:1px solid #d9e4f2;border-radius:999px;background:var(--card);color:var(--ink);font-size:12px;font-weight:700;line-height:1.3;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s}
.platform-chip:hover{border-color:#bfd3f5}
.platform-chip.active{border-color:#2563eb;background:var(--blue-soft);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.platform-chip:disabled{cursor:not-allowed;opacity:.55;color:var(--muted)}
.platform-chip:disabled:hover{border-color:#d9e4f2}
.platform-chip em{font-style:normal;font-size:10px;font-weight:600;color:var(--muted)}
.platform-chip-dot{width:18px;height:18px;display:grid;place-items:center;border-radius:5px;background:#ef4444;color:#fff;flex:0 0 18px}
.platform-chip-dot svg{width:9px;height:9px;margin:0}
.platform-chip:disabled .platform-chip-dot{background:#94a3b8}
html[data-theme="dark"] .platform-chip{border-color:#24304a;background:#111827}
html[data-theme="dark"] .platform-chip:hover{border-color:#2c4a7a}
html[data-theme="dark"] .platform-chip.active{border-color:#3b82f6;background:#17233c}
html[data-theme="dark"] .platform-chip:disabled:hover{border-color:#24304a}
.link-btn{align-self:flex-start;margin-top:1px;border:0;background:none;padding:0;color:#2563eb;font:inherit;font-size:11.5px;font-weight:700;cursor:pointer}
.link-btn:hover{text-decoration:underline}
.stream-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.stream-mode-card{display:flex;align-items:flex-start;gap:10px;width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);text-align:left;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
.stream-mode-card:hover{border-color:#b9d2ff;background:#f8fbff}
.stream-mode-card.active{border-color:#6ea2ff;background:#eef5ff;box-shadow:0 0 0 2px rgba(37,99,235,.08)}
/* 免费套餐不可选的定时开播：整体置灰、不可点、无 hover 高亮 */
.stream-mode-card.locked,.stream-mode-card:disabled{cursor:not-allowed;opacity:.45;background:var(--soft);border-style:dashed}
.stream-mode-card.locked:hover,.stream-mode-card:disabled:hover{border-color:var(--line);background:var(--soft);box-shadow:none}
.stream-mode-card.locked strong,.stream-mode-card:disabled strong{color:var(--muted)}
.stream-mode-card.locked small,.stream-mode-card:disabled small{color:var(--muted)}
html[data-theme="dark"] .stream-mode-card.locked,html[data-theme="dark"] .stream-mode-card:disabled{background:#131c2d;border-color:#243449}
html[data-theme="dark"] .stream-mode-card.locked:hover,html[data-theme="dark"] .stream-mode-card:disabled:hover{background:#131c2d;border-color:#243449}
.stream-mode-card strong{display:block;color:var(--ink);font-size:12.5px;font-weight:800}
.stream-mode-card small{display:block;margin-top:3px;color:var(--muted);font-size:11px}
.stream-radio{width:17px;height:17px;margin-top:1px;border:2px solid #c3d3ea;border-radius:50%;background:#fff;flex:0 0 17px;position:relative}
.stream-mode-card.active .stream-radio{border-color:#2563eb}
.stream-mode-card.active .stream-radio:after{content:"";position:absolute;inset:3px;border-radius:50%;background:#2563eb}
.stream-form-card .segmented{flex-wrap:wrap}
.stream-form-card .duration-input{width:auto;display:flex;align-items:center;gap:6px;margin-top:10px}
.stream-form-card .duration-input input{width:72px}
.stream-recovery{display:flex;align-items:center;gap:7px;color:#15803d;font-weight:700}
.stream-actions{display:flex;align-items:center;gap:10px;padding:20px 0 24px}
.why-card{position:sticky;top:84px;border:1px solid #dbe9ff;border-radius:20px;padding:22px 20px;background:linear-gradient(180deg,#f7fbff 0%,#edf5ff 100%)}
.why-card h2{display:flex;align-items:center;gap:8px;margin:0 0 20px;color:#0f2748;font-size:15px;font-weight:800;line-height:1.3}
.why-card h2 svg{width:18px;height:18px;color:#2563eb;flex:0 0 18px}
.why-list{display:grid;gap:19px}
.why-item{display:flex;align-items:flex-start;gap:11px}
.why-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#e3efff;color:#2563eb;flex:0 0 32px}
.why-icon svg{width:16px;height:16px}
.why-item strong{display:block;color:#17345c;font-size:12px;font-weight:800}
.why-item p{margin:3px 0 0;color:#5b769c;font-size:11px;line-height:1.55}
@media (max-width:1100px){
  .stream-create-layout{grid-template-columns:1fr}
  .why-card{position:static}
}
@media (max-width:640px){
  .stream-hero{align-items:flex-start;flex-direction:column;padding:20px}
  .stream-hero h1{font-size:23px}
  .stream-hero p{margin-left:0}
  .stream-hero-art{width:100%;flex:0 0 140px}
  .stream-form-card{padding:0 16px}
  .stream-form-grid,.stream-mode-grid{grid-template-columns:1fr}
  .stream-form-grid .span-2{grid-column:auto}
  .stream-actions{flex-wrap:wrap}
}
html[data-theme="dark"] .stream-hero{border-color:#1f2d44;background:radial-gradient(520px 240px at 88% 10%,#14264a 0,rgba(20,38,74,0) 72%),linear-gradient(135deg,#101c31 0%,#0d1729 60%,#0b1220 100%)}
html[data-theme="dark"] .stream-hero h1{color:#e6ecf5}
html[data-theme="dark"] .stream-hero p{color:#a7b6cc}
html[data-theme="dark"] .stream-breadcrumb{color:#8b9bb4}
html[data-theme="dark"] .stream-hero-art{border-color:#111827}
html[data-theme="dark"] .stream-hero-247{background:#111827;color:#93b4ff}
html[data-theme="dark"] .stream-mode-card:hover{background:#16233a;border-color:#2c4a7a}
html[data-theme="dark"] .stream-mode-card.active{background:#17233c;border-color:#3b82f6}
html[data-theme="dark"] .stream-radio{background:#111827;border-color:#334866}
html[data-theme="dark"] .why-card{background:linear-gradient(180deg,#111827 0%,#0f1a2c 100%);border-color:#1f2d44}
html[data-theme="dark"] .why-card h2{color:#e6ecf5}
html[data-theme="dark"] .why-item strong{color:#dbe7f7}
html[data-theme="dark"] .why-item p{color:#8b9bb4}
html[data-theme="dark"] .why-icon{background:#17233c;color:#93b4ff}
html[data-theme="dark"] .stream-recovery{color:#6ee7b7}

/* Compact create layout: benefits on top, form in two columns */
.stream-hero-compact{padding:20px 24px}
.stream-hero-compact .stream-hero h1,.stream-hero-compact h1{font-size:25px}
.stream-hero-compact p{margin-left:0}
.stream-benefits{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px 20px 18px}
.stream-benefits h2{display:flex;align-items:center;gap:8px;margin:0 0 14px;color:var(--ink);font-size:13.5px;font-weight:800}
.stream-benefits h2 svg{width:16px;height:16px;color:var(--blue);flex:0 0 16px}
.stream-benefit-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.stream-benefit-grid .why-item{gap:9px}
.stream-benefit-grid .why-icon{width:28px;height:28px;flex-basis:28px;background:var(--blue-soft)}
.stream-benefit-grid .why-icon svg{width:14px;height:14px}
.stream-benefit-grid .why-item strong{font-size:11.5px}
.stream-benefit-grid .why-item p{font-size:10.5px;line-height:1.45}
.stream-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}
.stream-column{min-width:0}
.stream-column .stream-form-grid{grid-template-columns:1fr}
.stream-column .stream-form-grid .span-2{grid-column:auto}
.stream-column .stream-section{padding:17px 0}
.stream-column .stream-section-head{margin-bottom:12px}
.stream-column .stream-mode-grid{gap:8px}
.stream-column .stream-mode-card{padding:10px 11px}
.stream-column .stream-form-card .stream-actions{padding-top:16px}
@media (max-width:1100px){
  .stream-benefit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .stream-columns{grid-template-columns:1fr;gap:0}
  .stream-column .stream-section:last-child{border-bottom:0}
}
@media (max-width:640px){
  .stream-benefit-grid{grid-template-columns:1fr}
  .stream-benefits{padding:14px 16px}
  .stream-hero-compact{padding:18px 16px}
}
html[data-theme="dark"] .stream-benefits{border-color:#1f2d44}
html[data-theme="dark"] .stream-benefit-grid .why-icon{background:#17233c}
.stream-column .stream-form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.stream-column .stream-form-grid.two .span-2{grid-column:1/-1}
@media (max-width:640px){.stream-column .stream-form-grid.two{grid-template-columns:1fr}.stream-column .stream-form-grid.two .span-2{grid-column:auto}}
.stream-hero-compact{padding:14px 22px}
.stream-hero-compact .stream-breadcrumb{margin-bottom:6px}
.stream-hero-compact h1{font-size:23px}
.stream-hero-compact .stream-hero-play{width:42px;height:42px;flex-basis:42px}
.stream-hero-compact .stream-hero-play svg{width:19px;height:19px}
.stream-hero-compact p{margin-top:4px}
.stream-benefits{padding:11px 18px 12px}
.stream-benefits h2{margin-bottom:8px}
.stream-benefit-grid{gap:10px}
.stream-benefit-grid .why-item p{line-height:1.35}
.stream-column .stream-section{padding:13px 0}
.stream-column .stream-section-head{margin-bottom:8px}
.stream-form-card .field{gap:4px}
.stream-actions{padding:12px 0 16px}
.stream-hero-merged{display:block;padding:18px 22px 14px}
.stream-hero-merged .stream-benefits{background:transparent;border:0;border-top:1px solid rgba(37,99,235,.16);border-radius:0;padding:12px 0 0;margin-top:14px}
.stream-hero-merged .stream-benefits h2{color:#17345c;margin-bottom:10px}
html[data-theme="dark"] .stream-hero-merged .stream-benefits{border-top-color:#24304a}
html[data-theme="dark"] .stream-hero-merged .stream-benefits h2{color:#e6ecf5}
/* Hero + benefits on one row, left/right */
.stream-hero-merged{display:flex;align-items:center;gap:26px;padding:18px 22px}
.stream-hero-merged .stream-hero-copy{flex:0 0 292px;min-width:0}
.stream-hero-merged .stream-benefits{flex:1;min-width:0;background:transparent;border:0;border-left:1px solid rgba(37,99,235,.16);border-radius:0;padding:0 0 0 24px;margin:0}
.stream-hero-merged .stream-benefits h2{margin-bottom:10px;color:#17345c}
.stream-hero-merged .stream-benefit-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}
@media (max-width:1100px){
  .stream-hero-merged{display:block}
  .stream-hero-merged .stream-hero-copy{flex:auto}
  .stream-hero-merged .stream-benefits{border-left:0;border-top:1px solid rgba(37,99,235,.16);padding:12px 0 0;margin-top:14px}
  .stream-hero-merged .stream-benefit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:640px){
  .stream-hero-merged .stream-benefit-grid{grid-template-columns:1fr}
}
html[data-theme="dark"] .stream-hero-merged .stream-benefits{border-left-color:#24304a;border-top-color:#24304a}
html[data-theme="dark"] .stream-hero-merged .stream-benefits h2{color:#e6ecf5}
/* Vertical form flow, compact spacing */
.stream-columns{display:block}
.stream-column .stream-form-grid,.stream-column .stream-form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.stream-column .stream-form-grid .span-2,.stream-column .stream-form-grid.two .span-2{grid-column:1/-1}
.stream-column .stream-section{padding:10px 0}
.stream-column .stream-section-head{margin-bottom:7px}
.stream-column .stream-section:last-child{border-bottom:1px solid var(--line)}
.stream-column:last-child .stream-section:last-child{border-bottom:0}
.stream-column .stream-form-grid{gap:9px 12px}
.stream-column .stream-mode-grid{gap:9px}
.stream-actions{padding:10px 0 14px}
@media (max-width:640px){
  .stream-column .stream-form-grid,.stream-column .stream-form-grid.two{grid-template-columns:1fr}
  .stream-column .stream-form-grid .span-2,.stream-column .stream-form-grid.two .span-2{grid-column:auto}
}
.stream-column .stream-form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.stream-schedule-row{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:12px;align-items:start}
.stream-schedule-row .field{min-width:0}
@media (max-width:900px){
  .stream-column .stream-form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stream-schedule-row{grid-template-columns:1fr}
}
@media (max-width:640px){
  .stream-column .stream-form-grid.three{grid-template-columns:1fr}
}
.stream-advanced{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:12px 20px;align-items:start}
.stream-duration-field{min-width:0}
.stream-duration-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.stream-duration-line .segmented{flex:0 0 auto}
.stream-duration-line .duration-input{display:flex;align-items:center;gap:5px;width:auto;margin:0}
.stream-duration-line .duration-input input{width:66px}
.stream-hints{display:flex;flex-wrap:wrap;gap:2px 14px;margin-top:4px}
.stream-hints .field-hint{white-space:nowrap}
.stream-advanced-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}
@media (max-width:900px){
  .stream-advanced{grid-template-columns:1fr}
}
@media (max-width:640px){
  .stream-advanced-meta{grid-template-columns:1fr}
  .stream-hints .field-hint{white-space:normal}
}
/* Native date/time picker follows the active theme */
.field input[type="datetime-local"]:disabled{opacity:.45;cursor:not-allowed;background:var(--soft)}
.field input[type="datetime-local"]{color-scheme:light}
html[data-theme="dark"] .field input[type="datetime-local"]{color-scheme:dark}
.field input[type="datetime-local"]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.7}
/* Three schedule boxes share one height */
.stream-schedule-row{align-items:stretch}
.stream-schedule-row .field{display:flex;flex-direction:column}
.stream-schedule-row .field input[type="datetime-local"]{height:72px}
.stream-schedule-row .stream-mode-card{height:72px}
html[data-theme="light"]{color-scheme:light}
html[data-theme="dark"]{color-scheme:dark}
.stream-schedule-row .field input[type="datetime-local"]{font-size:14px;font-weight:600;color:var(--ink);background:var(--card)}
html[data-theme="dark"] .stream-schedule-row .field input[type="datetime-local"]{background:#111827;color:#e6ecf5}
html[data-theme="light"] .stream-schedule-row .field input[type="datetime-local"]{background:#fff;color:#0f172a}
.stream-schedule-row .field input[type="datetime-local"]{font-size:15px}
.field input[type="datetime-local"]::-webkit-datetime-edit,
.field input[type="datetime-local"]::-webkit-datetime-edit-fields-wrapper{color:var(--ink)}
html[data-theme="dark"] .field input[type="datetime-local"]::-webkit-datetime-edit,
html[data-theme="dark"] .field input[type="datetime-local"]::-webkit-datetime-edit-fields-wrapper{color:#e6ecf5}
.playlist-modal-backdrop{z-index:95}
.playlist-modal{max-width:960px;max-height:calc(100vh - 40px);overflow:auto;padding:0;background:transparent;box-shadow:none}
.playlist-modal .playlist-editor{margin:0;padding:20px;max-height:calc(100vh - 40px);overflow:auto}
.playlist-modal{height:60vh;max-height:60vh}
.playlist-modal .playlist-editor{height:100%;max-height:none;display:flex;flex-direction:column}
.playlist-modal .playlist-editor .playlist-editor-grid{flex:1;min-height:0}
.playlist-modal .playlist-editor .playlist-selected-list,
.playlist-modal .playlist-editor .playlist-media-list{max-height:none;height:100%;overflow:auto;min-height:0}
.playlist-media-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.playlist-media-head h3{margin:0}
/* Upload dialog */
.upload-modal-backdrop{z-index:99}
.upload-modal{width:80vw;max-width:80vw;height:80vh;max-height:80vh;display:flex;flex-direction:column;gap:12px;overflow:hidden}
@media (max-width:760px){
  .upload-modal{width:94vw;max-width:94vw;height:86vh;max-height:86vh}
}
.upload-modal .modal-head{align-items:flex-start;margin-bottom:0}
.upload-requirements{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px}
.upload-requirements li{display:flex;align-items:center;gap:5px;font-size:10.5px;color:var(--muted)}
.upload-requirements li span{font-weight:600}
.upload-requirements li b{color:var(--ink);font-weight:700}
.upload-error{margin-bottom:10px}
.upload-error strong{font-weight:700}
.upload-rejected ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.upload-rejected li{display:flex;flex-direction:column}
.upload-rejected li b{font-size:11.5px}
.upload-rejected li small{font-size:10.5px;opacity:.85}
.upload-modal .modal-head > div{flex:1;min-width:0}
.upload-dropzone{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px dashed #c9dcf6;border-radius:12px;padding:14px;background:#f8fbff}
.upload-dropzone span{font-size:11.5px;color:var(--muted)}
.upload-file-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;overflow:auto}
.upload-file{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--card)}
.upload-file-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:var(--blue-soft);color:var(--blue);flex:0 0 28px}
.upload-file-icon svg{width:13px;height:13px}
.upload-file-main{min-width:0;flex:1;display:flex;flex-direction:column}
.upload-file-main b{font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upload-file-main small{font-size:11px;color:var(--muted)}
.upload-empty{border:1px dashed var(--line);border-radius:10px;padding:18px;text-align:center;font-size:11.5px;color:var(--muted)}
.upload-modal .upload-empty{flex:1;min-height:0;display:grid;place-items:center}
.upload-summary{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:11.5px;color:var(--muted)}
.upload-progress{display:flex;flex-direction:column;gap:6px}
.upload-progress-head{display:flex;justify-content:space-between;gap:12px;font-size:12px}
.upload-progress .field-hint{margin:0;font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html[data-theme="dark"] .upload-dropzone{background:#16233a;border-color:#2c4a7a}
/* Playlist media header + pagination spacing */
.playlist-media-head{margin-bottom:10px;gap:12px}
.playlist-upload-btn{flex:0 0 auto;padding:7px 14px;white-space:nowrap}
.playlist-media-pagination{padding:8px 0 0;font-size:11px}
.playlist-modal .playlist-editor .playlist-editor-grid > div{display:flex;flex-direction:column;min-height:0}
.playlist-modal .playlist-editor .playlist-editor-grid h3{margin:0 0 8px}
.playlist-modal .playlist-editor .playlist-selected-list,
.playlist-modal .playlist-editor .playlist-media-list{flex:1;min-height:0;overflow:auto;padding-right:2px}
.playlist-modal .playlist-editor .playlist-media-pagination{flex:0 0 auto}
.playlist-modal .playlist-selected-list .playlist-empty{align-self:flex-start;padding:12px 14px;text-align:left}

.upload-file-main .upload-file-error{color:#dc2626;font-weight:600}
html[data-theme="dark"] .upload-file-main .upload-file-error{color:#fda4af}

.upload-modal .modal-actions{margin-top:auto;flex:0 0 auto}
.playlist-media-option.disabled{cursor:not-allowed;background:var(--soft)}
.playlist-media-option.disabled .playlist-thumb{opacity:.5}
.playlist-media-option.disabled:hover{border-color:var(--line);background:var(--card)}
.playlist-media-option .badge{margin-left:auto;flex:0 0 auto}
.upload-rejected li .muted{font-size:10.5px;color:var(--muted)}

/* 进度条（上传/转码） */
.upload-progress .indeterminate>i{background:linear-gradient(90deg,#60a5fa,#2563eb,#60a5fa);background-size:200% 100%;animation:upload-shimmer 1.1s linear infinite}
@keyframes upload-shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}
.bar{height:8px;border-radius:999px;background:var(--blue-soft);overflow:hidden}
.bar>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#60a5fa,#2563eb);transition:width .2s ease}
html[data-theme="dark"] .bar{background:#1b2b4d}
html[data-theme="dark"] .bar>i{background:linear-gradient(90deg,#3b82f6,#60a5fa)}
.playlist-reuse{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:11px;color:var(--muted);flex-wrap:wrap}
.playlist-reuse .segmented button{padding:5px 10px}
/* 播放列表自定义下拉（名称 + 素材名 + 封面） */
.pl-select{position:relative}
.pl-trigger{display:flex;flex-direction:column;align-items:stretch;gap:0;width:100%;padding:8px 10px;border:1px solid #d9e4f2;border-radius:10px;background:var(--card);color:var(--ink);text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.pl-trigger:hover{border-color:#bfd3f5}
.pl-trigger.open{border-color:#93b4f8;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.pl-trigger-head{display:flex;align-items:center;gap:9px;min-width:0}
.pl-trigger-text{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}
.pl-trigger-text b{font-size:12.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-chevron{flex:0 0 auto;color:var(--muted);font-size:11px}
.pl-backdrop{position:fixed;inset:0;z-index:20}
.pl-menu{position:absolute;z-index:21;left:0;right:0;top:calc(100% + 6px);max-height:360px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--card);box-shadow:0 22px 50px -24px rgba(15,23,42,.45);padding:6px}
.pl-option{display:flex;flex-direction:column;align-items:stretch;gap:0;width:100%;padding:9px 10px;border:0;border-radius:9px;background:transparent;text-align:left;cursor:pointer}
.pl-option:hover{background:#f4f8ff}
.pl-option.active{background:var(--blue-soft)}
.pl-option:disabled{opacity:.55;cursor:not-allowed}
.pl-option:disabled:hover{background:transparent}
.pl-option-title{display:flex;align-items:center;gap:7px;min-width:0;flex-wrap:wrap}
.pl-option-title b{font-size:12.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-option-title em{font-style:normal;font-size:10.5px;color:var(--muted);white-space:nowrap}
.pl-option-title .badge{flex:0 0 auto}
.pl-media-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.pl-media-strip .playlist-media-chip{width:auto;flex:0 0 auto;max-width:110px;color:var(--muted)}
.pl-media-strip .playlist-media-chip .playlist-thumb{box-sizing:content-box;width:auto;height:31px;aspect-ratio:16/9;flex:none;align-self:flex-start;object-fit:cover;border-radius:6px;border:0}
.pl-media-strip .playlist-media-chip .playlist-thumb.placeholder{width:56px}
.pl-media-strip .playlist-media-name{font-size:10.5px}
.pl-media-empty{margin-top:6px;font-size:10.5px;color:var(--muted)}
.pl-empty{padding:14px 10px;text-align:center;font-size:11.5px;color:var(--muted)}
html[data-theme="dark"] .pl-trigger{border-color:#24304a;background:#111827}
html[data-theme="dark"] .pl-trigger:hover{border-color:#2c4a7a}
html[data-theme="dark"] .pl-option:hover{background:#16233a}
html[data-theme="dark"] .pl-option.active{background:#17233c}
/* 播放列表：每行展开显示全部素材（缩略图 + 名称，按顺序） */
.playlist-row{flex-wrap:wrap}
.playlist-row-media{flex:1 0 100%;display:flex;flex-wrap:wrap;gap:10px;padding:12px 0 2px;border-top:1px dashed var(--line);margin-top:10px}
.playlist-media-chip{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:96px;flex:0 0 96px;text-decoration:none;color:var(--muted)}
.playlist-media-chip .playlist-thumb{width:96px;height:54px;border-radius:8px;object-fit:cover;display:block;background:var(--blue-soft)}
.playlist-media-chip .playlist-thumb.placeholder{display:grid;place-items:center;font-size:10px;color:#7d8ea8}
.playlist-media-name{font-size:10.5px;line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}
.playlist-media-chip:hover .playlist-media-name{color:var(--blue)}
.playlist-row-empty{flex:1 0 100%;margin:8px 0 0;font-size:11px;color:var(--muted)}
.playlist-row{align-items:flex-start;padding:14px}
.playlist-row-main{padding-top:2px}
.playlist-media-chip{width:auto;flex:0 0 auto;max-width:140px}
.playlist-media-chip .playlist-thumb{box-sizing:content-box;width:auto;height:39px;aspect-ratio:16/9;flex:none;align-self:flex-start;object-fit:cover;border-radius:9px;border:1px solid var(--line)}
.playlist-media-chip .playlist-thumb.placeholder{box-sizing:border-box;width:70px;height:39px}

/* ============ 订阅页：套餐卡片 + 付款方式 ============ */
.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;align-items:stretch}
.plan-card{position:relative;display:flex;flex-direction:column;gap:12px;padding:18px 18px 16px;border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:0 20px 45px -38px rgba(15,23,42,.5)}
.plan-card.is-current{border-color:#8eb3ff}
.plan-card.is-recommended{border-color:#3b82f6;box-shadow:0 0 0 1px rgba(59,130,246,.35),0 24px 50px -34px rgba(37,99,235,.55)}
.plan-tag{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:4px 10px;border-radius:999px;background:#eef2f8;color:#475569;font-size:11.5px;font-weight:700}
.plan-tag.current{background:var(--blue-soft);color:var(--blue-dark)}
.plan-tag svg{width:13px;height:13px}
.plan-recommend{position:absolute;top:10px;right:10px;display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:999px;background:#2563eb;color:#fff;font-size:11.5px;font-weight:700;box-shadow:0 10px 22px -12px rgba(37,99,235,.9)}
.plan-recommend svg{width:12px;height:12px}
.plan-price{display:flex;align-items:baseline;gap:6px;font-size:30px;font-weight:900;letter-spacing:-.035em;line-height:1.05}
.plan-price span{font-size:12px;font-weight:600;color:var(--muted);letter-spacing:0}
.plan-feats{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.plan-feats li{display:flex;align-items:center;gap:9px;font-size:12.5px;color:#334155}
.plan-feats svg{width:15px;height:15px;flex:0 0 15px;color:#64748b}
.plan-note{margin:0;font-size:11.5px;color:var(--muted)}
.plan-card .plan-subscribe{margin-top:auto;width:100%;justify-content:center;padding:10px 12px;font-size:13px}
.plan-renew{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 0;padding:10px 14px;border:1px dashed var(--line);border-radius:12px;background:var(--card)}
.plan-renew-note{font-size:12px;color:var(--muted)}
.payment-card{margin-top:16px}
.payment-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.payment-head h3{display:flex;align-items:center;gap:8px;margin:0;font-size:14px;font-weight:800}
.payment-head h3 svg{width:16px;height:16px;color:#64748b}
.payment-secure{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted)}
.payment-secure svg{width:13px;height:13px;color:var(--green)}
/* 订阅方式多于一行时向下排列，整体左对齐 */
.payment-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:12px;justify-content:start}
.payment-tile{display:flex;align-items:center;gap:11px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink);text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.payment-tile.on:hover{border-color:#bfd3f5;box-shadow:0 14px 30px -26px rgba(15,23,42,.7)}
.payment-tile.on{border-color:#c7d8f5}
.payment-tile:disabled{cursor:not-allowed;opacity:.6}
.payment-logo{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:9px;color:#fff;font-size:14px;font-weight:800;background:#475569}
.payment-logo svg{width:18px;height:18px}
.payment-logo.alipay{background:#1677ff}
.payment-logo.wechat{background:#12b76a}
.payment-logo.paypal{background:#1b4ddb}
.payment-logo.card{background:#475569}
.payment-text{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}
.payment-text b{font-size:12.5px;font-weight:700}
.payment-text em{display:inline-flex;align-items:center;gap:5px;font-style:normal;font-size:11px;color:var(--muted)}
.payment-dot{width:6px;height:6px;border-radius:50%;background:var(--green);display:inline-block}
.payment-chevron{color:#94a3b8;display:grid;place-items:center}
.payment-chevron svg{width:15px;height:15px}
.billing-foot{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin:18px 0 4px;font-size:11.5px;color:var(--muted)}
.billing-foot span{display:inline-flex;align-items:center;gap:6px}
.billing-foot svg{width:13px;height:13px;color:var(--green)}
.billing-foot i{width:1px;height:12px;background:var(--line)}
html[data-theme="dark"] .plan-card{background:#111827;border-color:#1f2d44}
html[data-theme="dark"] .plan-card.is-current{border-color:#2f5aa8}
html[data-theme="dark"] .plan-card.is-recommended{border-color:#3b82f6}
html[data-theme="dark"] .plan-tag{background:#16233a;color:#a7b6cc}
html[data-theme="dark"] .plan-tag.current{background:#17233c;color:#93b4f8}
html[data-theme="dark"] .plan-feats li{color:#cbd5e1}
html[data-theme="dark"] .plan-feats svg{color:#94a3b8}
html[data-theme="dark"] .plan-renew{background:#111827;border-color:#233150}
html[data-theme="dark"] .payment-tile{background:#111827;border-color:#1f2d44}
html[data-theme="dark"] .payment-tile.on{border-color:#2c4a7a}
html[data-theme="dark"] .payment-tile.on:hover{border-color:#3b82f6}
@media (max-width:720px){.plan-grid{grid-template-columns:1fr}.payment-list{grid-template-columns:1fr}}

/* 侧边栏外部工具链接（SEO 工具） */
.nav-ext{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:#64748b;font-size:13px;font-weight:600;text-decoration:none;transition:background .15s,color .15s}
.nav-ext svg{width:16px;height:16px;flex:0 0 16px}
.nav-ext:hover{background:var(--soft);color:var(--blue-dark)}
html[data-theme="dark"] .nav-ext{color:#8fa3bf}
html[data-theme="dark"] .nav-ext:hover{background:#16233a;color:#e6ecf5}

/* 会员中心类页面：左侧菜单用链接（与工作区按钮同一套观感） */
.side-link{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:10px;color:#64748b;text-decoration:none;font-size:13px;font-weight:600;transition:background .15s,color .15s}
.side-link svg{width:16px;height:16px;flex:0 0 16px}
.side-link:hover{background:var(--soft);color:var(--blue-dark)}
.side-link.active{background:var(--blue);color:#fff}
html[data-theme="dark"] .side-link{color:#93a8c3}
html[data-theme="dark"] .side-link:hover{background:#16233a;color:#e6ecf5}
html[data-theme="dark"] .side-link.active{background:#2563eb;color:#fff}
