.app-shell{background:var(--bg);max-width:480px;min-height:100dvh;margin:0 auto}.page{padding:20px 16px 40px}.top-bar{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.eyebrow{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 4px;font-size:12px}.top-bar h1,.section h2,.hero-block h1{margin:0}.top-bar h1{letter-spacing:-.03em;font-size:28px}.pill{background:var(--surface);border-radius:999px;flex-shrink:0;padding:6px 10px;font-size:12px;font-weight:600}.pill.ok{color:var(--ok)}.pill.warn{color:var(--warn)}.banner{border-radius:12px;margin-bottom:16px;padding:12px 14px;font-size:14px}.warn-banner{background:#f59e0b1f;border:1px solid #f59e0b59}.section{margin-top:8px}.section h2{margin-bottom:4px;font-size:18px}.muted{color:var(--muted);margin:0 0 14px;font-size:14px}.drama-grid{gap:14px;display:grid}.drama-card{background:var(--surface);border-radius:16px;grid-template-rows:160px auto;display:grid;overflow:hidden}.drama-cover{width:100%;height:100%}.drama-meta{padding:12px 14px 14px}.drama-meta h3{margin:0 0 4px;font-size:17px}.drama-meta p{color:var(--muted);margin:0;font-size:13px}.back-link{color:var(--muted);margin-bottom:14px;font-size:14px;display:inline-block}.hero-block{border-radius:16px;flex-direction:column;justify-content:flex-end;gap:8px;min-height:160px;margin-bottom:22px;padding:28px 18px;display:flex}.hero-block p{color:#f4f4f5d9;max-width:36ch;margin:0;font-size:14px}.episode-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.episode-row{background:var(--surface);border-radius:12px;grid-template-columns:36px 1fr 28px;align-items:center;gap:10px;padding:12px;display:grid}.episode-row.locked{opacity:.72}.ep-index{width:36px;height:36px;color:var(--accent);background:#fe2c5526;border-radius:10px;place-items:center;font-size:13px;font-weight:700;display:grid}.ep-body{flex-direction:column;gap:2px;min-width:0;display:flex}.ep-body strong{font-size:15px}.ep-body small{color:var(--muted);font-size:12px}.ep-cta{text-align:center;opacity:.9}.player-page{flex-direction:column;min-height:100dvh;display:flex}.player-stage{background:#000;border-radius:16px;flex:1;place-items:center;min-height:52vh;display:grid;overflow:hidden}.player-placeholder{text-align:center;padding:24px}.player-title{margin:0 0 8px;font-size:20px;font-weight:700}.lock-note{color:var(--warn);margin-top:12px;font-size:13px}.player-actions{margin-top:16px}.btn{background:var(--surface);border-radius:12px;justify-content:center;align-items:center;width:100%;padding:14px 16px;font-weight:600;display:inline-flex}.btn.primary{background:var(--accent);color:#fff}.admin-page{max-width:560px}.admin-form{gap:12px;display:grid}.admin-form label{color:var(--muted);gap:6px;font-size:13px;display:grid}.admin-form input,.admin-form textarea{width:100%;color:var(--text);font:inherit;background:#101016;border:1px solid #2a2a33;border-radius:10px;padding:10px 12px}.admin-form input[type=file]{padding:8px}.cover-preview{object-fit:cover;background:#000;border-radius:12px;width:100%;max-height:220px}.admin-card{background:var(--surface);border-radius:14px;margin-bottom:16px;padding:14px}.admin-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.episode-admin-row{background:#0b0b0f;border-radius:10px;gap:8px;padding:10px;display:grid}.ok-banner{background:#22c55e1f;border:1px solid #22c55e59}.veplayer-root{background:#000;width:100%;height:56vh;min-height:280px}.player-overlay-meta{padding:12px 4px 0}button.episode-row{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;border:0}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0b0f;--surface:#15151c;--text:#f4f4f5;--muted:#a1a1aa;--accent:#fe2c55;--ok:#22c55e;--warn:#f59e0b;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-weight:400;line-height:1.4}*{box-sizing:border-box}html,body,#root{background:var(--bg);min-height:100%;margin:0}a{color:inherit;text-decoration:none}button{font:inherit}
