:root{--bg:#0f1115;--panel:#171a21;--panel2:#1f232c;--text:#e6e8ee;--muted:#9aa3b2;--accent:#5ac8fa;--ok:#3ddc84;--warn:#f5b342;--bad:#ff5c5c;--border:#2a2f3a;--radius:10px;font-size:15px}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;line-height:1.45}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
header.top{display:flex;align-items:center;gap:1.5rem;padding:.6rem 1.2rem;background:var(--panel);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}
header.top .brand{font-weight:700;letter-spacing:.3px;color:var(--text);font-size:1.1rem}
header.top nav a{color:var(--muted);margin-right:1rem;padding:.3rem 0}
header.top nav a.active,header.top nav a:hover{color:var(--text);text-decoration:none;border-bottom:2px solid var(--accent)}
header.top .spacer{flex:1}
main{max-width:1200px;margin:0 auto;padding:1.2rem}
h1{font-size:1.5rem;margin:.2rem 0 1rem}h2{font-size:1.15rem;margin:1.4rem 0 .6rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}
.card .big{font-size:2rem;font-weight:700}.card .label{color:var(--muted);font-size:.85rem}
table{width:100%;border-collapse:collapse;font-size:.92rem}
th,td{text-align:left;padding:.45rem .6rem;border-bottom:1px solid var(--border);vertical-align:top}
th{color:var(--muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}
tr:hover td{background:var(--panel2)}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.badge{display:inline-block;padding:.12rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--panel2);color:var(--muted);border:1px solid var(--border)}
.badge.ok{color:var(--ok);border-color:var(--ok)}.badge.warn{color:var(--warn);border-color:var(--warn)}.badge.bad{color:var(--bad);border-color:var(--bad)}.badge.info{color:var(--accent);border-color:var(--accent)}
button,.btn{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.4rem .8rem;cursor:pointer;font-size:.9rem}
button:hover,.btn:hover{border-color:var(--accent);text-decoration:none}
button.primary,.btn.primary{background:var(--accent);color:#04121a;border-color:var(--accent);font-weight:600}
button.danger{color:var(--bad)}button:disabled{opacity:.5;cursor:default}
input[type=text],input[type=search],input[type=number],select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.45rem .6rem;font-size:.95rem;min-width:220px}
form.inline{display:inline}
.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin:.6rem 0}
.muted{color:var(--muted)}.small{font-size:.82rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.flash{padding:.6rem .9rem;border-radius:8px;margin:.6rem 0;border:1px solid var(--border);background:var(--panel2)}
.flash.ok{border-color:var(--ok)}.flash.bad{border-color:var(--bad)}
.center{max-width:480px;margin:8vh auto;text-align:center}
.center .card{padding:2rem}
.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.3rem;letter-spacing:.08em;background:var(--bg);padding:1rem;border-radius:8px;border:1px dashed var(--warn);margin:1rem 0;user-select:all}
.tabs{display:flex;gap:.3rem;border-bottom:1px solid var(--border);margin-bottom:.8rem}
.tabs a{padding:.4rem .8rem;color:var(--muted);border-bottom:2px solid transparent}
.tabs a.active{color:var(--text);border-bottom-color:var(--accent)}
details summary{cursor:pointer;color:var(--muted)}
.htmx-request{opacity:.6}
.progress{height:6px;background:var(--panel2);border-radius:3px;overflow:hidden}.progress span{display:block;height:100%;background:var(--ok)}
@media (max-width:700px){header.top{flex-wrap:wrap}main{padding:.6rem}th,td{padding:.35rem .4rem}}
.show-head{display:flex;gap:1.2rem;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;background-size:cover;background-position:center top;margin-bottom:1rem}
.show-head .poster{width:150px;height:225px;object-fit:cover;border-radius:8px;flex:none;box-shadow:0 4px 18px rgba(0,0,0,.5)}
.show-head h1{margin:0 0 .4rem}
.chip{display:inline-flex;align-items:center;gap:.3rem;cursor:pointer}
.movie-head{display:flex;gap:1.2rem;align-items:flex-start}
.movie-head .poster{width:120px;border-radius:8px;flex:none}
.filters select,.filters input{min-width:120px}
