:root{color-scheme:dark;--bg:#0c111d;--panel:#151d2c;--line:#293349;--muted:#a9b6cc;--accent:#9deedb;--gold:#f5c985}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#f1f5ff;font:15px system-ui;display:grid;grid-template-columns:235px 1fr;min-height:100vh}aside{padding:28px 18px;background:#101725;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:34px}.brand{display:flex;gap:12px;align-items:center;font-size:24px;font-weight:800;letter-spacing:-1px}.brand span{background:var(--accent);color:#10221f;border-radius:12px;padding:5px 11px}.brand small,small{display:block;font-size:11px;color:var(--muted);letter-spacing:.09em}nav{display:grid;gap:6px}button,input,textarea,select{font:inherit}button{cursor:pointer;background:#202b3e;color:inherit;border:1px solid var(--line);padding:8px 12px;border-radius:8px}button:hover{border-color:var(--accent)}nav button{text-align:left;background:transparent;border-color:transparent;color:var(--muted)}nav button.active{background:#22343e;color:var(--accent)}footer{margin-top:auto;color:var(--accent);font-size:11px;line-height:1.8}main{padding:0 32px 40px;min-width:0;max-width:1560px}header{height:75px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px;letter-spacing:.08em}.primary{background:var(--accent);color:#10221f;border-color:transparent;font-weight:750}.hero{margin:25px 0;background:radial-gradient(ellipse at 88% 12%,#284759,transparent 56%),linear-gradient(115deg,#172840,#151d2c);border:1px solid #35475d;border-radius:17px;padding:30px}.eyebrow{font-size:11px;letter-spacing:.19em;color:var(--accent);font-weight:800}h1{font-size:clamp(29px,5vw,49px);line-height:1.04;margin:12px 0}h2{margin:0 0 14px;font-size:21px}h3{margin:7px 0}p{color:var(--muted);line-height:1.5;margin:7px 0 12px}.stats,.grid,.split{display:grid;gap:14px}.stats{grid-template-columns:repeat(3,1fr);margin-bottom:24px}.grid{grid-template-columns:repeat(auto-fit,minmax(min(255px,100%),1fr))}.split{grid-template-columns:1.35fr 1fr}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:16px;min-width:0;overflow-wrap:anywhere}.stat{font-size:28px;font-weight:800;color:var(--accent);display:block}.row,.toolbar,.actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px}.between{justify-content:space-between}.toolbar{margin-bottom:16px}.tag{display:inline-block;background:#23364b;color:#bfe0ff;padding:4px 8px;border-radius:20px;font-size:11px;font-weight:700}.hyp{background:#3d3023;color:var(--gold)}.line{border-top:1px solid var(--line);padding:10px 0}.line:last-child{padding-bottom:0}.muted{color:var(--muted)}a{color:var(--accent)}dialog{width:min(720px,94vw);max-height:90vh;background:var(--panel);color:inherit;border:1px solid var(--line);border-radius:15px;padding:24px}dialog::backdrop{background:#050811bb}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{display:grid;gap:5px;color:var(--muted);font-size:13px}.wide{grid-column:1/-1}input,select,textarea{min-width:0;background:#0f1725;color:#f1f5ff;border:1px solid #394761;border-radius:7px;padding:9px}textarea{min-height:78px;resize:vertical}.actions{justify-content:flex-end;margin-top:18px}pre{white-space:pre-wrap;font:inherit;color:var(--muted)}#toast{position:fixed;bottom:18px;right:18px;background:#22343e;border-radius:8px;padding:10px;color:var(--accent)}#toast:empty{display:none}@media(max-width:760px){body{display:block}aside{padding:14px;gap:12px}nav{display:flex;flex-wrap:wrap}footer{display:none}main{padding:0 14px 25px}.split{grid-template-columns:1fr}.hero{padding:20px}.stats{gap:7px}.card,.panel{padding:12px}}@media(max-width:440px){.formgrid{grid-template-columns:1fr}}

[hidden]{display:none!important}
.episode-tabs{margin:0 0 16px}
.episode-tabs [aria-selected=true]{color:var(--accent);border-color:var(--accent)}
.episode-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0;padding:12px;border:1px solid var(--line);border-radius:8px}
.check{display:flex;align-items:center;gap:8px}
#cast-paste{margin-bottom:8px}
@media(max-width:440px){.episode-row{grid-template-columns:1fr}}

.login-page {
 display: grid;
 grid-template-columns: minmax(0, 1fr);
 place-items: center;
 min-height: 100vh;
 min-height: 100dvh;
 padding: 24px;
 background: radial-gradient(ellipse at 50% 10%, #253550 0%, #0c111d 65%);
}
.login-card {
 width: min(100%, 420px);
 padding: clamp(24px, 7vw, 40px);
 border: 1px solid #34445f;
 border-radius: 24px;
 background: #131c2d;
 box-shadow: 0 24px 80px #05081188;
 text-align: center;
}
.login-icon { display: block; margin: 0 auto 18px; border-radius: 16px; }
.login-card h1 { margin: 0; font-size: clamp(1.75rem, 7vw, 2.25rem); }
.login-card p { margin: 12px 0 22px; }
.login-card .login-error {
 padding: 12px;
 color: #ffdce1;
 background: #482733;
 border-radius: 10px;
}
.discord-login {
 display: flex;
 justify-content: center;
 align-items: center;
 gap: 12px;
 width: 100%;
 min-height: 48px;
 border: 1px solid transparent;
 background: #474fc6;
 color: white;
 font-weight: 700;
}
.discord-login:hover { background: #3e46b7; border-color: transparent; }
.discord-login:focus-visible, .logout-button:focus-visible {
 outline: 2px solid var(--accent);
 outline-offset: 3px;
}
.discord-login svg { width: 24px; height: 24px; flex: 0 0 24px; }
.app-header { height: auto; min-height: 75px; padding: 10px 0; flex-wrap: wrap; }
.header-actions { justify-content: flex-end; }
.logout-button { color: #f1f5ff; border-color: #536684; }
@media(max-width: 440px) {
 .header-actions { width: 100%; justify-content: flex-start; }
 .header-actions button { min-height: 44px; }
}

.episode-summary { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%, 210px),1fr)); gap:12px; margin:0 0 16px; }
.episode-summary > div { padding:12px; border:1px solid var(--line); border-radius:8px; overflow-wrap:anywhere; }
.episode-summary dt { color:var(--muted); font-size:.85rem; }
.episode-summary dd { margin:4px 0 0; }
.episode-review + .episode-review { margin-top:10px; }
.review-text { white-space:pre-wrap; }

.episode-cast { margin-top: 20px; }
.episode-cast dl { margin: 0; }
.episode-cast dl > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:8px 0; border-top:1px solid var(--line); overflow-wrap:anywhere; }
.episode-cast dd { margin:0; color:var(--muted); }

.preparation-fields { display:grid; gap:12px; }
#prepare-content, .preparation-anecdotes, #anecdote-editor { margin-top:18px; }
.anecdote { margin-top:10px; }
.drag-handle { cursor:grab; font-size:1.4rem; padding:0 8px; }
.drag-handle:active { cursor:grabbing; }
