:root { color-scheme: dark; --bg:#111; --panel:#1b1b1b; --line:#2b2b2b; --text:#ddd; --dim:#8a8a8a; --accent:#7fb069; --bad:#d9705f; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--text); font:15px/1.45 system-ui, -apple-system, Segoe UI, sans-serif; }
a { color:inherit; }
main { max-width:1180px; margin:0 auto; padding:20px 18px 60px; }
h1 { font-size:1.5rem; margin:.2rem 0 1rem; font-weight:650; }
h2 { font-size:1.1rem; margin:1.8rem 0 .8rem; font-weight:600; }
.dim { color:var(--dim); }
.small { font-size:.85rem; }

.top { display:flex; align-items:center; gap:18px; padding:10px 18px; border-bottom:1px solid var(--line); background:#151515; position:sticky; top:0; z-index:5; flex-wrap:wrap; }
.brand { font-weight:700; text-decoration:none; }
.top nav { display:flex; gap:4px; flex:1; flex-wrap:wrap; }
.top nav a { text-decoration:none; padding:6px 10px; border-radius:7px; color:var(--dim); }
.top nav a:hover, .top nav a.on { color:#fff; background:#232323; }
.me { display:flex; gap:12px; align-items:center; color:var(--dim); }
.me a { text-decoration:none; }
.me form { margin:0; }

button, .btn { font:inherit; cursor:pointer; background:#262626; color:#eee; border:1px solid #3a3a3a; padding:7px 13px; border-radius:8px; text-decoration:none; display:inline-block; }
button:hover, .btn:hover { background:#303030; }
.btn.primary, button.primary { background:var(--accent); border-color:var(--accent); color:#111; font-weight:600; }
.btn.primary:hover, button.primary:hover { filter:brightness(1.08); }
button.danger { border-color:#5a2c25; color:#f0a596; }
button.link { background:none; border:none; padding:0; color:var(--dim); }
button.link:hover { color:#fff; text-decoration:underline; }
button.sm, .btn.sm { padding:3px 9px; font-size:.85rem; }
input[type=text], input[type=password], input[type=search], select { font:inherit; background:#191919; color:#eee; border:1px solid #3a3a3a; border-radius:8px; padding:8px 11px; }
input:focus { outline:2px solid #4b6b3d; border-color:transparent; }
form.inline { display:inline; margin:0; }

.auth { max-width:340px; margin:12vh auto; }
.auth form { display:grid; gap:10px; }
.err { background:#2a1714; border:1px solid #5a2c25; color:#f0b4a8; padding:9px 12px; border-radius:8px; }
.ok { background:#16241a; border:1px solid #2d5235; color:#a8dcb1; padding:9px 12px; border-radius:8px; }

.searchbar { display:flex; gap:8px; margin-bottom:8px; }
.searchbar input { flex:1; font-size:1.05rem; padding:11px 14px; }

.grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(140px, 1fr)); gap:16px; }
.card { text-decoration:none; display:block; }
.poster { aspect-ratio:2/3; background:#1e1e1e; border-radius:9px; overflow:hidden; position:relative; display:flex; align-items:center; justify-content:center; text-align:center; color:var(--dim); padding:0; border:1px solid var(--line); }
.poster img { width:100%; height:100%; object-fit:cover; display:block; }
.poster span { padding:10px; }
.card:hover .poster { border-color:#666; }
.badge { position:absolute; left:6px; top:6px; background:var(--accent); color:#111; font-size:.72rem; padding:2px 7px; border-radius:20px; }
.ct { margin-top:6px; font-weight:550; line-height:1.25; }
.cs { color:var(--dim); font-size:.85rem; }

.hero { display:grid; grid-template-columns:220px 1fr; gap:26px; margin-bottom:12px; }
.hero img { width:100%; border-radius:10px; border:1px solid var(--line); }
.meta-line { color:var(--dim); margin:-.6rem 0 .8rem; }
.actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin:14px 0; }
.note { color:#e0c37a; font-size:.88rem; }
@media (max-width:640px) { .hero { grid-template-columns:1fr; } .hero img { max-width:200px; } }

.seasons { display:flex; gap:6px; flex-wrap:wrap; margin:6px 0 12px; }
.seasons a { text-decoration:none; padding:5px 11px; border-radius:20px; background:#1d1d1d; border:1px solid var(--line); color:var(--dim); }
.seasons a.on { color:#111; background:var(--accent); border-color:var(--accent); }
.eps { border-top:1px solid var(--line); }
.ep { display:grid; grid-template-columns:54px 1fr auto; gap:12px; padding:10px 2px; border-bottom:1px solid var(--line); align-items:center; }
.ep .num { color:var(--dim); font-variant-numeric:tabular-nums; }
.ep .t { font-weight:550; }
.ep .d { color:var(--dim); font-size:.85rem; }
.ep .r { display:flex; gap:8px; align-items:center; }

.rows { width:100%; border-collapse:collapse; }
.rows th { text-align:left; color:var(--dim); font-weight:500; font-size:.85rem; padding:6px 8px; border-bottom:1px solid var(--line); }
.rows td { padding:9px 8px; border-bottom:1px solid var(--line); vertical-align:middle; }
.rows tr:hover td { background:#161616; }
.bar { height:5px; background:#262626; border-radius:4px; overflow:hidden; margin-top:5px; min-width:120px; }
.bar i { display:block; height:100%; background:var(--accent); }

.st { font-size:.8rem; padding:2px 8px; border-radius:20px; background:#262626; color:#ccc; white-space:nowrap; }
.st-downloading, .st-processing, .st-searching { background:#1f2f1a; color:#b5dca3; }
.st-failed { background:#2f1a17; color:#f0a596; }
.st-done { background:#1d2a33; color:#a7cbe2; }

.cont { display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:12px; }
.cont a { display:block; text-decoration:none; background:var(--panel); border:1px solid var(--line); border-radius:9px; padding:10px 12px; }
.cont a:hover { border-color:#555; }

.player { background:#000; border-radius:10px; overflow:hidden; }
.player video { width:100%; max-height:78vh; display:block; background:#000; }
video::cue { background:rgba(0,0,0,.7); font-size:1.05em; }

.files td.n a { text-decoration:none; }
.files td.n a:hover { text-decoration:underline; }
.crumbs { color:var(--dim); margin-bottom:12px; }
.crumbs a { text-decoration:none; }
.admin-box { background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:14px 16px; margin-bottom:14px; }
.copy { font-family:ui-monospace, monospace; background:#141414; padding:8px 10px; border-radius:7px; border:1px solid var(--line); word-break:break-all; user-select:all; }
details summary { cursor:pointer; }
