:root{--bg:#0c0e13;--bg-elevated:#12151d;--surface:#171b25;--surface-hover:#1e2330;--border:#262c3a;--border-soft:#1d222e;--text:#e8ecf4;--text-dim:#9aa4b8;--text-faint:#6b7487;--accent:#7b6cf6;--accent-soft:#7b6cf62e;--accent-text:#a89dff;--done:#22d3a6;--done-soft:#22d3a626;--warn:#ffb020;--danger:#ff5f6d;--radius:12px;--radius-sm:8px;--shadow:0 8px 28px #00000073;--nav-width:232px;--content-max:1180px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,sans-serif;font-size:15px;line-height:1.5}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img{max-width:100%;display:block}::selection{background:var(--accent-soft)}.app{min-height:100%;display:flex}.sidebar{width:var(--nav-width);border-right:1px solid var(--border-soft);background:var(--bg-elevated);z-index:20;flex-direction:column;gap:4px;padding:22px 14px;display:flex;position:fixed;inset:0 auto 0 0}.brand{letter-spacing:-.01em;align-items:center;gap:10px;padding:0 10px 20px;font-size:17px;font-weight:650;display:flex}.brand-mark{background:linear-gradient(135deg, var(--accent), #4ac7ff);border-radius:8px;place-items:center;width:28px;height:28px;font-size:15px;display:grid}.nav-item{border-radius:var(--radius-sm);color:var(--text-dim);align-items:center;gap:11px;padding:9px 11px;font-weight:500;transition:background .12s,color .12s;display:flex}.nav-item:hover{background:var(--surface);color:var(--text)}.nav-item.active{background:var(--accent-soft);color:var(--accent-text)}.nav-icon{text-align:center;width:20px;font-size:15px}.nav-badge{background:var(--surface-hover);color:var(--text-dim);border-radius:20px;margin-left:auto;padding:1px 8px;font-size:12px;font-weight:600}.nav-item.active .nav-badge{background:var(--accent);color:#fff}.nav-spacer{flex:1}.main{margin-left:var(--nav-width);flex:1;min-width:0}.page{max-width:var(--content-max);margin:0 auto;padding:28px 28px 80px}.tabbar{display:none}.page-title{letter-spacing:-.02em;margin:0 0 4px;font-size:26px;font-weight:680}.page-sub{color:var(--text-dim);margin:0 0 24px;font-size:14px}.section-title{text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);margin:32px 0 12px;font-size:13px;font-weight:650}.section-title:first-child{margin-top:0}.row{align-items:center;gap:10px;display:flex}.wrap{flex-wrap:wrap}.spacer{flex:1}.dim{color:var(--text-dim)}.faint{color:var(--text-faint)}.small{font-size:13px}.tiny{font-size:12px}.mono{font-variant-numeric:tabular-nums}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.clamp-2{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.clamp-3{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:7px;padding:8px 14px;font-size:14px;font-weight:550;transition:background .12s,border-color .12s,opacity .12s;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-hover)}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:#8b7dff}.btn-done{background:var(--done-soft);color:var(--done);border-color:#0000}.btn-danger{color:var(--danger)}.btn-danger:hover:not(:disabled){background:#ff5f6d1a}.btn-sm{padding:5px 10px;font-size:13px}.btn-ghost{color:var(--text-dim);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--surface);color:var(--text)}.btn-icon{border-radius:var(--radius-sm);width:34px;height:34px;padding:0}.input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);width:100%;color:var(--text);outline:none;padding:10px 13px;font-size:15px;transition:border-color .12s}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text-faint)}textarea.input{resize:vertical;min-height:110px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px}.search-bar{margin-bottom:20px;position:relative}.search-bar .input{padding-top:12px;padding-bottom:12px;padding-left:38px;font-size:16px}.search-icon{color:var(--text-faint);position:absolute;top:50%;left:13px;transform:translateY(-50%)}.card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);padding:16px}.poster{aspect-ratio:2/3;background:var(--surface-hover);border-radius:10px;flex-shrink:0;position:relative;overflow:hidden}.poster img{object-fit:cover;width:100%;height:100%}.poster-fallback{width:100%;height:100%;color:var(--text-faint);place-items:center;font-size:22px;display:grid}.poster-badge{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a0c10db;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:650;position:absolute;top:6px;right:6px}.poster-badge.is-done{background:var(--done);color:#06281f}.poster-badge.is-new{background:var(--accent);color:#fff}.grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:18px 16px;display:grid}.grid-item .title{margin-top:9px;font-size:13.5px;font-weight:550;line-height:1.3}.grid-item .meta{color:var(--text-faint);margin-top:2px;font-size:12px}.progress{background:var(--border);border-radius:4px;height:4px;margin-top:8px;overflow:hidden}.progress-fill{background:var(--accent);border-radius:4px;height:100%;transition:width .25s}.progress-fill.is-done{background:var(--done)}.upnext-list{flex-direction:column;gap:10px;display:flex}.upnext{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);gap:14px;padding:10px;transition:border-color .12s,background .12s;display:flex}.upnext:hover{background:var(--surface-hover);border-color:var(--border)}.upnext .poster{width:62px}.upnext-body{flex-direction:column;flex:1;justify-content:center;gap:3px;min-width:0;display:flex}.upnext-show{font-size:15px;font-weight:600}.upnext-ep{color:var(--text-dim);font-size:13.5px}.upnext-code{color:var(--accent-text);font-variant-numeric:tabular-nums;font-weight:600}.upnext-actions{align-items:center;gap:8px;display:flex}.season-head{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);cursor:pointer;text-align:left;align-items:center;gap:12px;width:100%;margin-top:10px;padding:12px 14px;display:flex}.season-head:hover{background:var(--surface-hover)}.season-name{font-weight:600}.season-count{color:var(--text-faint);font-size:13px}.episode-list{padding:4px 0 8px}.episode{border-radius:var(--radius-sm);align-items:flex-start;gap:12px;padding:9px 14px;display:flex}.episode:hover{background:var(--bg-elevated)}.episode.is-watched .episode-title{color:var(--text-dim)}.episode.is-future{opacity:.62}.episode-body{flex:1;min-width:0}.episode-title{font-size:14px;font-weight:520}.episode-meta{color:var(--text-faint);margin-top:2px;font-size:12.5px}.episode-code{color:var(--text-faint);font-variant-numeric:tabular-nums;min-width:46px;padding-top:1px;font-size:13px}.check{border:1.5px solid var(--border);cursor:pointer;color:#0000;background:0 0;border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;margin-top:1px;font-size:12px;transition:background .12s,border-color .12s,color .12s;display:grid}.check:hover{border-color:var(--accent)}.check.is-on{background:var(--done);border-color:var(--done);color:#06281f}.check:disabled{cursor:default;opacity:.4}.day-group{margin-bottom:26px}.day-heading{color:var(--text-dim);border-bottom:1px solid var(--border-soft);margin-bottom:10px;padding-bottom:8px;font-size:13px;font-weight:650}.day-heading.is-today{color:var(--accent-text)}.hero{margin:-28px -28px 22px;position:relative}.hero-backdrop{background-position:50% 20%;background-size:cover;height:240px;position:relative}.hero-backdrop:after{content:"";background:linear-gradient(to bottom, #0c0e1359, var(--bg) 96%);position:absolute;inset:0}.hero-inner{max-width:var(--content-max);z-index:1;gap:22px;margin:-110px auto 0;padding:0 28px;display:flex;position:relative}.hero-inner .poster{width:150px;box-shadow:var(--shadow)}.hero-meta{flex:1;min-width:0;padding-top:116px}.hero-title{letter-spacing:-.02em;margin:0 0 6px;font-size:28px;font-weight:700}.chips{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.chip{background:var(--surface);border:1px solid var(--border-soft);color:var(--text-dim);border-radius:20px;padding:3px 9px;font-size:12px}.chip.is-accent{background:var(--accent-soft);color:var(--accent-text);border-color:#0000}.chip.is-done{background:var(--done-soft);color:var(--done);border-color:#0000}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;display:grid}.stat-value{letter-spacing:-.02em;font-size:27px;font-weight:700}.stat-label{color:var(--text-dim);margin-top:2px;font-size:12.5px}.bar-chart{align-items:flex-end;gap:6px;height:130px;margin-top:8px;display:flex}.bar-col{flex-direction:column;flex:1;justify-content:flex-end;gap:6px;height:100%;display:flex}.bar{background:var(--accent);border-radius:4px 4px 2px 2px;min-height:2px;transition:height .3s}.bar-label{color:var(--text-faint);text-align:center;font-size:10.5px}.empty{text-align:center;color:var(--text-dim);padding:56px 20px}.empty-icon{opacity:.55;margin-bottom:12px;font-size:38px}.empty h3{color:var(--text);margin:0 0 6px;font-size:17px;font-weight:600}.empty p{max-width:380px;margin:0 auto 18px;font-size:14px}.banner{border-radius:var(--radius-sm);color:#ffb3b9;background:#ff5f6d1a;border:1px solid #ff5f6d33;margin-bottom:16px;padding:12px 15px;font-size:13.5px}.banner.is-info{background:var(--accent-soft);color:var(--accent-text);border-color:#0000}.banner.is-done{background:var(--done-soft);color:var(--done);border-color:#0000}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:17px;height:17px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-row{color:var(--text-dim);align-items:center;gap:10px;padding:10px 0;font-size:13.5px;display:flex}.divider{background:var(--border-soft);height:1px;margin:22px 0}.field{margin-bottom:18px}.field label{margin-bottom:6px;font-size:13.5px;font-weight:600;display:block}.field .hint{color:var(--text-faint);margin-top:6px;font-size:12.5px;line-height:1.45}.switch{cursor:pointer;align-items:center;gap:12px;display:flex}.switch input{width:17px;height:17px;accent-color:var(--accent);cursor:pointer}.rating{gap:2px;display:flex}.star{cursor:pointer;color:var(--text-faint);background:0 0;border:none;padding:1px;font-size:17px;line-height:1}.star.is-on{color:var(--warn)}.seg{background:var(--bg-elevated);border:1px solid var(--border-soft);border-radius:var(--radius-sm);gap:2px;margin-bottom:18px;padding:3px;display:inline-flex}.seg button{cursor:pointer;color:var(--text-dim);background:0 0;border:none;border-radius:6px;padding:6px 14px;font-size:13.5px;font-weight:550}.seg button.is-on{background:var(--surface-hover);color:var(--text)}@media (width<=860px){.sidebar{display:none}.main{margin-left:0}.page{padding:20px 16px 96px}.hero{margin:-20px -16px 20px}.hero-inner{gap:16px;margin-top:-80px;padding:0 16px}.hero-inner .poster{width:108px}.hero-meta{padding-top:84px}.hero-title{font-size:21px}.hero-backdrop{height:190px}.page-title{font-size:22px}.grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:16px 12px}.tabbar{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border-soft);padding:7px 4px calc(7px + env(safe-area-inset-bottom));z-index:30;background:#12151ded;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{color:var(--text-faint);flex-direction:column;flex:1;align-items:center;gap:3px;padding:4px 0;font-size:10.5px;font-weight:550;display:flex}.tab.active{color:var(--accent-text)}.tab .nav-icon{font-size:18px}}.topbar{display:none}@media (width<=860px){.topbar{border-bottom:1px solid var(--border-soft);background:var(--bg-elevated);z-index:25;align-items:center;gap:10px;padding:10px 16px;display:flex;position:sticky;top:0}.topbar .brand{padding:0;font-size:15px}}.hero--plain{margin:0 0 22px}.hero--plain .hero-inner{margin-top:0;padding:0}.hero--plain .hero-meta{padding-top:0}.ep-bulk{color:var(--text-faint);flex-shrink:0;align-self:center}@media (hover:hover){.ep-bulk{opacity:0;transition:opacity .12s}.episode:hover .ep-bulk,.ep-bulk:focus-visible{opacity:1}}
