:root{--bg:#0f1114;--surface:#1a1d22;--border:#2a2f36;--text:#e8eaed;--muted:#9aa0a6;--accent:#7cb4ff;--accent-dim:#7cb4ff26;--danger:#f2a6a6;--success:#8fd9a8;--radius:12px;--tap:44px;--maxw:430px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.45}*,:before,:after{box-sizing:border-box}body{min-height:100dvh;margin:0}#root{max-width:var(--maxw);background:var(--bg);min-height:100dvh;margin:0 auto}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.shell{min-height:100dvh;padding-bottom:env(safe-area-inset-bottom,0);flex-direction:column;display:flex}.topbar{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;justify-content:space-between;align-items:center;padding:12px 16px;display:flex;position:sticky;top:0}.logo{letter-spacing:-.02em;margin:0;font-size:1.1rem;font-weight:600}.logo>a{color:inherit;text-decoration:none}.logo>a:hover{color:var(--accent);text-decoration:none}.main{flex:1;padding:16px 16px 88px}.tabbar{width:100%;max-width:var(--maxw);padding:8px 8px calc(8px + env(safe-area-inset-bottom,0));background:var(--surface);border-top:1px solid var(--border);z-index:20;grid-template-columns:repeat(4,1fr);gap:0;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab{min-height:var(--tap);color:var(--muted);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;font-size:.7rem;text-decoration:none;display:flex}.tab:hover{background:var(--accent-dim);text-decoration:none}.tab.active{color:var(--accent);font-weight:600}.tab-icon{margin-bottom:2px;font-size:1.15rem;line-height:1}.page,.narrow-page{max-width:100%}.narrow-page{padding:24px 16px}.page-title{letter-spacing:-.02em;margin:0 0 8px;font-size:1.35rem;font-weight:600}.muted{color:var(--muted);font-size:.9rem}.muted.small,.small{font-size:.8rem}.row-between{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.parking-strip{flex-wrap:wrap;align-items:flex-start;margin-bottom:12px}.parking-strip-hint{flex:1;min-width:min(100%,12rem);margin:0}.field{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.field span{color:var(--muted);font-size:.85rem}input[type=email],input[type=password],input[type=search],input[type=text]{width:100%;min-height:var(--tap);border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);padding:0 14px;font-size:1rem}.search-input{font-size:1.05rem}.stack{flex-direction:column;gap:14px;margin-top:20px;display:flex}.btn-primary,.btn-secondary,.btn-text,.btn-link{min-height:var(--tap);border-radius:var(--radius);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:.95rem;font-weight:500;display:inline-flex}.btn-primary{background:var(--accent);color:#0f1114}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-text{color:var(--accent);background:0 0;min-height:36px;padding:0 8px}.btn-text.block{width:100%;margin-top:16px}.btn-link{color:var(--accent);border:1px solid var(--border);background:0 0;padding:0 12px;text-decoration:none}.btn-link:hover{background:var(--accent-dim);text-decoration:none}.banner{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);margin:12px 0;padding:12px 14px;font-size:.9rem}.banner.error{color:var(--danger);border-color:#5c2a2a}.card-list{flex-direction:column;gap:12px;margin:16px 0 0;padding:0;list-style:none;display:flex}.card-list-done{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.card-list-done .card-link{height:100%}.card-list-done .card-done-tile-inner{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:8px 6px 10px}.card-list-done .card-body{flex-direction:column;align-items:center;width:100%;display:flex}.card-list-done .card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 4px;font-size:.8rem;line-height:1.25;display:-webkit-box;overflow:hidden}.card-list-done .badge{padding:3px 6px;font-size:.65rem}.done-tile-poster img,.done-tile-poster .poster-ph{width:40px;height:60px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.card.compact .card-row{padding:10px 12px}.btn-primary.btn-compact-action,.btn-secondary.btn-compact-action{width:fit-content;max-width:100%;min-height:36px;padding:0 12px;font-size:.8125rem}.card-row{gap:12px;padding:12px;display:flex}.card-link{color:inherit;text-decoration:none;display:block}.card-link:hover{background:color-mix(in srgb, var(--accent) 6%, transparent);text-decoration:none}.card-link.card-tap-row{flex:1;align-items:flex-start;gap:12px;min-width:0;display:flex}.card-row>.card-compact-split{flex:1;grid-template-rows:auto auto auto;grid-template-columns:48px 1fr auto;align-items:center;gap:6px 12px;min-width:0;display:grid}.card-compact-split-parking{grid-template-rows:auto auto}.card-compact-split .card-compact-poster{grid-area:1/1/-1;align-self:start}.card-compact-split .card-compact-title{grid-area:1/2/auto/-1;align-self:start;min-width:0}.card-compact-split .card-compact-badge-cell{grid-area:2/2;min-width:0}.card-compact-split .card-compact-btn-cell{grid-area:2/3;justify-self:end}.card-compact-split .card-compact-btn-cell .btn-compact-action{white-space:nowrap}.card-compact-split .card-compact-next{grid-area:3/2/auto/-1;align-self:start;min-width:0}.card-compact-next-line{margin:0}.card-actions-tail{flex-wrap:wrap;align-items:center;gap:8px;padding:0 12px 12px 80px;display:flex}.card.compact .card-actions-tail{padding-bottom:10px;padding-left:72px}.poster{flex-shrink:0}.poster img,.poster-ph{object-fit:cover;border-radius:8px;display:block}.poster-ph{background:var(--border);width:56px;height:84px}.poster.sm .poster-ph,.poster.sm img{width:48px;height:72px}.card-body{text-align:left;flex:1;min-width:0}.card-title{margin:0 0 6px;font-size:1rem;font-weight:600}.card-overview{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0 0 10px;font-size:.82rem;display:-webkit-box;overflow:hidden}.card-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.badge{background:var(--accent-dim);color:var(--accent);border-radius:999px;margin:0;padding:4px 8px;font-size:.75rem;display:inline-block}.badge.success{background:color-mix(in srgb, var(--success) 18%, transparent);color:var(--success)}.centered{justify-content:center;align-items:center;min-height:50dvh;display:flex}.pad{padding:24px}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.show-head{align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.show-series-bar{flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:20px;display:flex}.show-poster{object-fit:cover;border-radius:8px;flex-shrink:0}.overview-clamp{-webkit-line-clamp:4;-webkit-box-orient:vertical;margin:6px 0 0;display:-webkit-box;overflow:hidden}.subhead{color:var(--muted);letter-spacing:-.01em;margin:0 0 10px;font-size:.95rem;font-weight:600}.upcoming-block{margin-bottom:20px}.upcoming-ep{padding:12px 14px}.upcoming-ep .ep-label{display:block}.seasons{flex-direction:column;gap:20px;display:flex}.season-head{flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:8px;display:flex}.season-toggle{cursor:pointer;min-width:0;color:inherit;font:inherit;text-align:left;background:0 0;border:none;flex:auto;align-items:center;gap:10px;margin:0;padding:6px 0;display:flex}.season-toggle:hover .season-title{color:var(--text)}.season-chevron{border-left:5px solid #0000;border-right:5px solid #0000;border-top:6px solid var(--muted);transform-origin:50% 35%;flex-shrink:0;width:0;height:0;transition:transform .15s}.season-collapsed .season-chevron{transform:rotate(-90deg)}.season-title{min-width:0;color:var(--muted);flex:auto;margin:0;font-size:.95rem;font-weight:600}.season-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.season-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem}.season-mark-all{white-space:nowrap;min-height:var(--tap);padding:6px 0}.ep-list{border:1px solid var(--border);border-radius:var(--radius);margin:0;padding:0;list-style:none;overflow:hidden}.ep-row{border-bottom:1px solid var(--border)}.ep-row:last-child{border-bottom:none}.ep-row label{cursor:pointer;min-height:var(--tap);align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.ep-row label.disabled{cursor:not-allowed;opacity:.65}.ep-row input{flex-shrink:0;width:20px;height:20px;margin-top:4px}.ep-label{font-size:.9rem;line-height:1.35}
