:root{--bg:#0f172a;--surface:#1e293b;--surface-2:#334155;--text:#e2e8f0;--muted:#94a3b8;--accent:#38bdf8;--danger:#f87171;--ok:#4ade80;--warn:#fbbf24;--radius:10px;--nav-h:60px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--muted)}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{border-bottom:1px solid var(--surface-2);background:var(--bg);z-index:10;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex;position:sticky;top:0}.app-title{letter-spacing:.02em;margin:0;font-size:1.15rem}.index-indicator{color:var(--muted);align-items:center;gap:8px;font-size:.72rem;display:flex}.index-indicator__bar{background:var(--surface-2);border-radius:999px;width:70px;height:5px;overflow:hidden}.index-indicator__fill{background:var(--accent);height:100%;transition:width .2s}.app-main{padding:16px;padding-bottom:calc(var(--nav-h) + 16px);flex:1;width:100%;max-width:900px;margin:0 auto}.app-nav{z-index:20;height:var(--nav-h);background:var(--surface);border-top:1px solid var(--surface-2);display:flex;position:fixed;bottom:0;left:0;right:0}.nav-tab{color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.72rem;text-decoration:none;display:flex}.nav-tab:hover{text-decoration:none}.nav-tab--active{color:var(--accent)}.nav-tab__icon{font-size:1.2rem}.section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:20px 0 10px;font-size:.95rem}.count{color:var(--surface-2);background:var(--muted);border-radius:999px;margin-left:4px;padding:0 7px;font-size:.75rem}.empty-state,.placeholder{text-align:center;margin-top:48px}.empty-state__emoji{margin:0;font-size:3rem}.badge{border-radius:var(--radius);margin-top:10px;padding:6px 10px;font-size:.85rem;display:inline-block}.badge--ok{color:var(--ok);background:#4ade8026}.badge--warn{color:var(--warn);background:#fbbf2426}.btn{background:var(--accent);color:#06283a;border-radius:var(--radius);cursor:pointer;border:1px solid #0000;padding:10px 16px;font-size:.95rem;font-weight:600}.btn:hover{filter:brightness(1.08)}.btn--danger{background:var(--danger);color:#3a0606}.divider{border:none;border-top:1px solid var(--surface-2);margin:16px 0}.library__controls{gap:10px;margin-bottom:8px;display:flex}.library__controls .search__input{flex:1;margin-bottom:0}.sort-select{flex-shrink:0;max-width:48%}.filter-bar{margin-bottom:8px;position:relative}.filter-bar__row{align-items:center;gap:10px;display:flex}.filter-bar__row .search__input{flex:1;min-width:0;margin-bottom:0}.filter-btn,.sort-btn,.run-btn{border:1px solid var(--surface-2);border-radius:var(--radius);background:var(--surface);width:46px;height:44px;color:var(--text);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.run-btn{border-color:var(--accent);background:var(--accent);color:#06283a}.run-btn:disabled{opacity:.6;cursor:default}.sort{flex-shrink:0;align-self:stretch;display:flex;position:relative}.filter-btn--active{border-color:var(--accent);color:var(--accent)}.filter-btn__badge{background:var(--accent);color:#06283a;text-align:center;border-radius:9px;min-width:18px;height:18px;padding:0 5px;font-size:.72rem;font-weight:700;line-height:18px;position:absolute;top:-6px;right:-6px}.sort-menu{z-index:30;background:var(--surface);border:1px solid var(--surface-2);border-radius:var(--radius);flex-direction:column;gap:2px;min-width:200px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #0006}.sort-menu__item{text-align:left;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:8px 10px;font-size:.9rem}.sort-menu__item:hover{background:var(--surface-2)}.sort-menu__item--on{color:var(--accent);font-weight:600}.sort-menu__item--on:before{content:"✓ "}.filter-pop{z-index:30;background:var(--surface);border:1px solid var(--surface-2);border-radius:var(--radius);flex-direction:column;gap:14px;width:min(100%,460px);max-height:70vh;padding:14px;display:flex;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto;box-shadow:0 12px 32px #0006}.filter-pop__group{flex-direction:column;gap:8px;display:flex}.filter-pop__group--dim{opacity:.45}.filter-pop__hint{font-size:.78rem}.sport-leagues{flex-direction:column;gap:14px;margin-top:10px;display:flex}.sport-leagues__group{flex-direction:column;gap:8px;display:flex}.sport-leagues__heading{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim,var(--text));font-size:.78rem;font-weight:600}.filter-pop__label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:600}.chip-row{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--surface-2);color:var(--text);cursor:pointer;background:0 0;border-radius:999px;padding:5px 11px;font-size:.82rem;line-height:1.2}.chip:hover{border-color:var(--accent)}.chip--on{background:var(--accent);border-color:var(--accent);color:#06283a;font-weight:600}.chip--exclude{background:var(--danger);border-color:var(--danger);color:#3a0a0a;font-weight:600}.chip--exclude:hover{border-color:var(--danger)}.filter-pop__input{background:var(--surface-2);color:var(--text);border:1px solid var(--surface-2);border-radius:8px;padding:7px 9px;font-size:.85rem}.filter-pop__input:disabled{opacity:.5}.filter-len{align-items:center;gap:8px;display:flex}.filter-len__num{width:80px}.filter-pop__foot{border-top:1px solid var(--surface-2);justify-content:flex-end;gap:8px;padding-top:12px;display:flex}.filter-pop__foot .btn{margin:0}.poster-cell{position:relative}.fav-star{width:30px;height:30px;color:var(--warn);cursor:pointer;opacity:0;background:#0f172ab3;border:none;border-radius:50%;font-size:1.05rem;line-height:1;transition:opacity .12s;position:absolute;top:6px;right:6px}.poster-cell:hover .fav-star,.fav-star--on,.fav-star:focus-visible{opacity:1}.fav-star:hover{background:#0f172ae6}.poster-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.poster-card{color:var(--text);flex-direction:column;display:flex}.poster-card:hover{text-decoration:none}.poster-card--current .poster-card__img{outline:2px solid var(--accent);outline-offset:2px}.poster-card--current .poster-card__title{color:var(--accent)}.poster-card__img{aspect-ratio:2/3;object-fit:cover;border-radius:var(--radius);background:var(--surface);width:100%}.poster-card__img--placeholder{justify-content:center;align-items:center;font-size:2rem;display:flex}.poster-card__title{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-top:6px;font-size:.82rem;line-height:1.2;display:-webkit-box;overflow:hidden}.genre-badges{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.genre-badge{color:var(--muted);border:1px solid var(--surface-2);border-radius:999px;padding:2px 10px;font-size:.72rem}.poster-card__rating{color:var(--warn);font-size:.75rem}.watching-cell{flex-direction:column;display:flex}.watching-art{z-index:2;display:block;position:relative}.fav-star{z-index:3}.watching-title{margin-top:7px}.next-ep{z-index:1;background:var(--surface-2);border-radius:0 0 10px 10px;align-items:center;gap:6px;width:90%;min-height:51px;margin:-20px auto 0;padding:22px 8px 7px;display:flex;position:relative;box-shadow:0 8px 14px #00000073}.next-ep--empty{justify-content:center}.next-ep--empty .next-ep__label{color:var(--muted);text-align:center;flex:none}.next-ep__label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.72rem;line-height:1.2;overflow:hidden}.next-ep__check{border:1.5px solid var(--surface-2);width:22px;height:22px;color:var(--accent);cursor:pointer;background:0 0;border-radius:5px;flex-shrink:0;font-size:.8rem;line-height:1}.next-ep__check:hover{border-color:var(--accent)}.next-ep__date{color:var(--warn);flex-shrink:0;font-size:.68rem}.movie-watch__info .movie-watch__count{margin:0;font-size:.82rem}.movie-watch__info .movie-watch__date{gap:2px;margin:0}.movie-watch__date input{max-width:220px}.card{background:var(--surface);border-radius:var(--radius);margin-bottom:16px;padding:16px}.field{border:none;flex-direction:column;gap:6px;margin:14px 0;padding:0;display:flex}.field>span,.field legend{color:var(--muted);font-size:.85rem}select,input[type=file]{background:var(--surface-2);color:var(--text);border:1px solid var(--surface-2);border-radius:var(--radius);padding:8px;font-size:.95rem}.radio{color:var(--text);align-items:center;gap:8px;margin:4px 0;font-size:.9rem;display:flex}.search__input{background:var(--surface);width:100%;color:var(--text);border:1px solid var(--surface-2);border-radius:var(--radius);margin-bottom:14px;padding:12px 14px;font-size:1rem}.search__input:focus{outline:2px solid var(--accent);outline-offset:1px}.result-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.result-item{flex-direction:column;display:flex}.result-row{background:var(--surface);border-radius:var(--radius);z-index:1;align-items:center;gap:12px;padding:8px;display:flex;position:relative}.appearances{z-index:0;background:var(--surface-2);border-radius:0 0 10px 10px;flex-wrap:wrap;align-items:baseline;gap:4px 8px;width:calc(100% - 20px);margin:-10px auto 0;padding:18px 12px 8px;display:flex;position:relative;box-shadow:0 8px 14px #00000059}.appearances__label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.68rem;font-weight:600}.appearances__eps{font-size:.8rem;line-height:1.5}.appearances__ep{color:var(--accent);white-space:nowrap}.appearances__sep{color:var(--muted)}.show-more{justify-content:center;margin:12px 0 4px;display:flex}.search__top{flex-direction:column;gap:12px;margin-top:28px;display:flex}.result-row__link{min-width:0;color:var(--text);flex:1;align-items:center;gap:12px;display:flex}.result-row__link:hover{text-decoration:none}.upcoming__detail{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.upcoming__date{color:var(--accent);white-space:nowrap;flex-shrink:0;font-size:.82rem}.upcoming__where{font-size:.75rem}.upcoming__when{flex-direction:column;flex-shrink:0;align-items:flex-end;display:flex}.upcoming__time{font-size:.72rem}.detail__where{margin:6px 0 0;font-size:.85rem}.upcoming-aired{opacity:.6;transition:opacity .15s}.upcoming-aired:hover{opacity:1}.upcoming-section{scroll-margin-top:64px}.result-row__poster{object-fit:cover;background:var(--surface-2);border-radius:6px;flex-shrink:0;width:46px;height:69px}.result-row__poster--placeholder{justify-content:center;align-items:center;font-size:1.3rem;display:flex}.result-row__info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.result-row__title{font-size:.92rem;line-height:1.25}.result-row__overview{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:.78rem;line-height:1.3;display:-webkit-box;overflow:hidden}.type-badge{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border:1px solid var(--surface-2);border-radius:999px;align-self:flex-start;padding:1px 8px;font-size:.68rem}.btn--small{flex-shrink:0;padding:6px 12px;font-size:.82rem}.btn:disabled{opacity:.5;cursor:default;filter:none}.detail__header{gap:16px;margin-bottom:8px;display:flex}.ratings-row{gap:28px;margin:14px 0;display:flex}.rating-col{flex-direction:column;gap:6px;display:flex}.rating-col__label{color:var(--muted);font-size:.85rem}.rating-value{color:var(--warn);white-space:nowrap;font-size:1rem}.stars-wrap{align-items:center;gap:10px;display:flex}.stars{display:inline-flex}.star-btn{cursor:pointer;color:var(--warn);background:0 0;border:none;padding:0 1px;font-size:1.25rem;line-height:1}.link-btn{cursor:pointer;color:var(--accent);background:0 0;border:none;padding:0;font-size:.8rem;text-decoration:underline}.detail__poster{aspect-ratio:2/3;object-fit:cover;border-radius:var(--radius);width:120px}.detail__poster--placeholder{background:var(--surface);justify-content:center;align-items:center;font-size:2.5rem;display:flex}.detail__title{margin:0 0 4px}.link-out{margin-top:8px;display:inline-block}.detail__overview{margin:12px 0;font-size:.9rem;line-height:1.45}.detail__cast{margin:10px 0;font-size:.85rem;line-height:1.5}.episodes{margin:20px 0}.episodes__progress{color:var(--muted);margin-bottom:12px;font-size:.9rem}.episodes__progress strong{color:var(--accent)}.season{border:1px solid var(--surface-2);border-radius:var(--radius);margin-bottom:8px;scroll-margin-top:64px;overflow:hidden}.season__header{background:var(--surface);width:100%;color:var(--text);cursor:pointer;text-align:left;border:none;align-items:center;gap:10px;padding:12px 14px;font-size:.95rem;display:flex}.season__header:hover{background:var(--surface-2)}.season__chevron{color:var(--muted);width:12px}.season__name{flex:1}.season__rating{color:var(--warn);margin-right:10px;font-size:.8rem}.season__meta{font-size:.82rem}.season__body{padding:10px 14px 14px}.btn--ghost{color:var(--accent);border:1px solid var(--surface-2);background:0 0;margin-bottom:10px}.episode-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.episode{border-top:1px solid var(--surface);padding:8px 0}.episode__row{align-items:flex-start;gap:10px;display:flex}.epi-check{border:1.5px solid var(--surface-2);color:#06283a;cursor:pointer;background:0 0;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;margin-top:1px;font-size:.8rem;line-height:1;display:inline-flex}.epi-check--on{background:var(--accent);border-color:var(--accent)}.epi-check--dim{background:var(--surface-2);border-color:var(--surface-2);color:var(--muted)}.epi-check:disabled{opacity:.4;cursor:default}.episodes__rewatch{margin-top:-6px;margin-bottom:12px;font-size:.85rem}.episode__main{flex:1;min-width:0}.episode__main--clickable{cursor:pointer}.episode__chevron{color:var(--muted);flex-shrink:0;margin-left:auto;font-size:1rem}.episode__top{align-items:baseline;gap:8px;min-width:0;display:flex}.episode__num{font-variant-numeric:tabular-nums;color:var(--muted);flex-shrink:0;font-size:.8rem}.episode__title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.9rem;overflow:hidden}.episode__imdb{flex-shrink:0;font-size:.85rem;text-decoration:none}.episode__meta{flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:3px;display:flex}.episode__date{font-size:.78rem}.episode__upcoming{color:var(--warn);white-space:nowrap;font-size:.75rem}.episode__watched{align-items:center;gap:6px;font-size:.78rem;display:inline-flex}.episode__watched input[type=date]{background:var(--surface-2);color:var(--text);border:1px solid var(--surface-2);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:6px;padding:2px 6px;font-size:.78rem}.back-link{margin-bottom:12px;font-size:.9rem;display:inline-block}.episode-page__title{margin-bottom:2px}.episode-page__num{font-variant-numeric:tabular-nums;font-size:.9rem}.episode-page__still{border-radius:10px;width:100%;max-width:500px;margin:12px 0;display:block}.credits{margin-top:18px}.credits__grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:12px;margin:8px 0 0;padding:0;list-style:none;display:grid}.credit__link{text-align:center;color:var(--text);flex-direction:column;align-items:center;gap:4px;text-decoration:none;display:flex}.credit__link:hover .credit__name{color:var(--accent)}.credit__photo{aspect-ratio:2/3;object-fit:cover;background:var(--surface-2);border-radius:8px;width:100%}.credit__photo--placeholder{justify-content:center;align-items:center;font-size:1.8rem;display:flex}.credit__name{font-size:.8rem;line-height:1.25}.credit__char{font-size:.72rem;line-height:1.2}.reviews{border:1px solid var(--surface-2);border-radius:var(--radius);background:var(--surface);margin:20px 0}.reviews--recs{margin-top:0}.reviews__summary{cursor:pointer;align-items:center;gap:10px;padding:12px 14px;font-weight:600;list-style:none;display:flex}.reviews__summary::-webkit-details-marker{display:none}.reviews__summary:before{content:"▸";color:var(--muted);font-size:.8rem}.reviews[open] .reviews__summary:before{content:"▾"}.reviews__soon,.reviews__powered{text-transform:uppercase;letter-spacing:.04em;color:#06283a;background:var(--accent);border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:600}.reviews__summary>span:first-of-type{margin-right:auto}.reviews__body{padding:0 14px 14px}.show-detail{flex-direction:column;gap:18px;display:flex}.hero{border-radius:var(--radius);background:var(--surface);position:relative;overflow:hidden}.hero__backdrop{object-fit:cover;opacity:.35;width:100%;height:100%;position:absolute;inset:0}.hero__overlay{background:linear-gradient(180deg, #0f172a66 0%, var(--bg) 100%);position:absolute;inset:0}.hero__links{justify-content:flex-end;gap:8px;padding:10px 12px 0;display:flex;position:relative}.ext-link{border:1px solid var(--surface-2);color:var(--text);white-space:nowrap;background:#0f172a99;border-radius:999px;padding:4px 9px;font-size:.75rem;font-weight:600;text-decoration:none}.ext-link:hover{border-color:var(--accent);color:var(--accent)}.hero__body{gap:16px;padding:10px 16px 18px;display:flex;position:relative}.hero__poster{border-radius:10px;flex-shrink:0;align-self:flex-start;width:120px;box-shadow:0 6px 20px #00000080}.hero__poster--ph{background:var(--surface-2);justify-content:center;align-items:center;height:180px;font-size:2rem;display:flex}.hero__meta{flex-direction:column;gap:8px;min-width:0;display:flex}.hero__title{margin:0;font-size:1.5rem;line-height:1.2}.hero__years{color:var(--muted);font-size:1rem;font-weight:400}.hero__status{margin:0;font-size:.85rem}.hero__tags{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:.85rem;display:flex}.hero__sep{opacity:.6}.where-pill{background:var(--surface-2);color:var(--text);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:600}.hero__overview{margin:4px 0 0;font-size:.92rem;line-height:1.5}.hero__topbar{z-index:1;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px 0;display:flex;position:relative}.hero__topbar .hero__links{padding:0}.hero__topbar .back-link{white-space:nowrap;margin:0;font-size:.85rem}.episode-hero__still{aspect-ratio:16/9;object-fit:cover;border-radius:10px;flex-shrink:0;align-self:flex-start;width:260px;max-width:42%;box-shadow:0 6px 20px #00000080}.episode-hero__still--ph{background:var(--surface-2);justify-content:center;align-items:center;font-size:2rem;display:flex}.episode-watch{flex-wrap:wrap;align-items:center;gap:16px;margin:4px 0;display:flex}.episode-watch .episode__watched{align-items:center;gap:6px;font-size:.82rem;display:inline-flex}.episode-watch input[type=date]{background:var(--surface-2);color:var(--text);border:1px solid var(--surface-2);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:6px;padding:4px 8px}.show-detail__add{align-self:flex-start}.show-detail__controls{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.show-detail__controls .field{margin:0}.show-detail__controls>.btn,.show-detail__controls>.show-detail__rewatching{margin-bottom:6px}.show-detail__rewatching{align-items:center;gap:8px;display:inline-flex}.show-detail__status{max-width:260px}.detail-actions{flex-direction:column;gap:12px;margin:14px 0;display:flex}.detail-actions__controls{flex-wrap:wrap;align-items:flex-end;gap:16px;display:flex}.detail-actions__controls .field{margin:0}.detail-actions__controls>.btn,.detail-actions__controls .show-detail__rewatching{margin:0 0 6px}.detail-actions .ratings-row,.detail-actions .episode-watch,.detail-actions__controls .movie-watch{margin:0}.show-detail .episodes__rewatch{margin:-4px 0 0}.season-bar{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.season-bar__rating{color:var(--warn);font-size:.85rem;font-weight:600}.section{flex-direction:column;gap:10px;display:flex}.hscroll{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;gap:10px;padding-bottom:6px;display:flex;overflow-x:auto}.hscroll>*{scroll-snap-align:start}.cast-wrap{flex-wrap:wrap;align-items:flex-start;gap:12px 10px;display:flex}.fav-actors{flex-wrap:wrap;gap:12px 10px;display:flex}.fav-actor{text-align:center;width:84px;color:var(--text);flex-direction:column;gap:4px;text-decoration:none;display:flex}.fav-actor__photo{object-fit:cover;background:var(--surface-2);border-radius:10px;width:84px;height:112px}.fav-actor__photo--ph{justify-content:center;align-items:center;font-size:1.8rem;display:flex}.fav-actor__name{font-size:.78rem;line-height:1.2}.sport-poster{background:var(--surface-2);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.sport-poster__mark{opacity:.22;pointer-events:none;font-size:3.4rem;line-height:1;position:absolute;bottom:-12px;right:-6px}.sport-poster__logo{object-fit:contain;width:100%;height:100%;padding:16px;position:relative}.sport-poster__logo--ph{justify-content:center;align-items:center;font-size:2rem;display:flex}.lib-chip__img--logo{object-fit:contain;background:var(--surface-2);padding:8px}.hero--sport-football{background:linear-gradient(135deg,#3f6212,#14532d)}.hero--sport-volleyball{background:linear-gradient(135deg,#9a3412,#7c2d12)}.hero--sport .hero__overlay{background:linear-gradient(#0206171a 0%,#02061773 100%)}.hero--sport .hero__poster{object-fit:contain;background:#fffffff2;height:120px;padding:10px}.hero__watermark{opacity:.12;pointer-events:none;font-size:8rem;line-height:1;position:absolute;bottom:-24px;right:14px}.sport-record{text-align:right;flex-direction:column;gap:1px;line-height:1.15;display:flex}.sport-record__wl{font-size:1.15rem}.sport-record__rank{color:var(--accent);font-size:.8rem;font-weight:700}.ep-card__still.ep-card__still--logo{object-fit:contain;background:#fff;padding:12px}.ep-card__result{font-size:.82rem;font-weight:700}.sport-win{color:#4ade80}.sport-loss{color:var(--muted)}.result-row__poster--logo{object-fit:contain;background:var(--surface-2);padding:4px}.cast-card-wrap{flex-shrink:0;width:96px;position:relative}.cast-star{color:#fbbf24;cursor:pointer;opacity:.55;z-index:2;background:#0f172ab8;border:none;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:.95rem;line-height:1;transition:opacity .12s,background .12s;display:flex;position:absolute;top:6px;right:6px}.cast-card-wrap:hover .cast-star,.cast-star--on,.cast-star:focus-visible{opacity:1}.cast-star:hover{background:#0f172aeb}.cast-card{text-align:center;width:96px;color:var(--text);flex-direction:column;flex-shrink:0;gap:3px;text-decoration:none;display:flex}.section-divider{border-left:2px solid var(--surface-2);color:var(--muted);flex-shrink:0;justify-content:center;align-self:stretch;align-items:center;gap:6px;padding:0 2px;display:flex}.section-divider--cast{width:96px;min-height:128px}.section-divider--lib{width:74px;min-height:111px}.section-divider__label{writing-mode:vertical-rl;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;font-size:.72rem;font-weight:700;transform:rotate(180deg)}.section-divider__meta{flex-direction:row;align-items:center;gap:8px;display:flex}.section-divider__count{writing-mode:vertical-rl;white-space:nowrap;font-size:.72rem;font-weight:600;transform:rotate(180deg)}.section-divider__hide{writing-mode:vertical-rl;cursor:pointer;white-space:nowrap;align-items:center;gap:4px;font-size:.68rem;display:inline-flex;transform:rotate(180deg)}.section-divider__hide input{accent-color:var(--accent);cursor:pointer}.cast-card__photo{object-fit:cover;background:var(--surface-2);border-radius:10px;width:96px;height:128px}.cast-card__photo--ph{justify-content:center;align-items:center;font-size:2rem;display:flex}.cast-card__char{color:var(--muted);font-size:.72rem;line-height:1.2}.cast-card__name{font-size:.8rem;font-weight:600;line-height:1.2}.cast-card:hover .cast-card__name{color:var(--accent)}.section-title--row{align-items:center;display:flex}.section-title--row .count{margin-right:auto}.lib-hide{text-transform:none;letter-spacing:0;color:var(--muted);cursor:pointer;align-items:center;gap:5px;font-size:.78rem;display:inline-flex}.lib-hide input{accent-color:var(--accent);cursor:pointer}.lib-hidden-note{margin:4px 0 0;font-size:.82rem}.lib-collapsed{flex-wrap:wrap;align-items:flex-start;gap:12px 10px;margin-top:14px;display:flex}.lib-chip{text-align:center;width:74px;color:var(--text);flex-direction:column;flex-shrink:0;gap:4px;text-decoration:none;display:flex}.lib-chip__img{object-fit:cover;background:var(--surface-2);border-radius:8px;width:74px;height:111px}.lib-chip__img--ph{justify-content:center;align-items:center;font-size:1.6rem;display:flex}.lib-chip__title{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:.72rem;line-height:1.2;display:-webkit-box;overflow:hidden}.lib-chip:hover .lib-chip__title{color:var(--accent)}.season-tabs{gap:8px}.season-tab{border:1px solid var(--surface-2);color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;flex-shrink:0;padding:7px 14px;font-size:.85rem;font-weight:600}.season-tab--on{background:var(--accent);border-color:var(--accent);color:#06283a}.season-tab__rating{color:var(--warn);font-weight:700}.season-tab--on .season-tab__rating{color:#06283a}.episode-row{gap:12px}.ep-card{background:var(--surface);border:1px solid var(--surface-2);cursor:pointer;border-radius:10px;flex-direction:column;flex-shrink:0;width:240px;display:flex;overflow:hidden}.ep-card:hover{border-color:var(--accent)}.ep-card__still{aspect-ratio:16/9;object-fit:cover;background:var(--surface-2);width:100%}.ep-card__still--ph{justify-content:center;align-items:center;font-size:1.8rem;display:flex}.ep-card__body{flex-direction:column;gap:6px;padding:8px 10px 10px;display:flex}.ep-card__code{font-size:.82rem;font-weight:600;line-height:1.25}.ep-card__summary{-webkit-line-clamp:4;-webkit-box-orient:vertical;margin:0;font-size:.78rem;line-height:1.4;display:-webkit-box;overflow:hidden}.ep-card__watched{color:var(--muted);cursor:pointer;align-items:center;gap:6px;font-size:.8rem;display:inline-flex}.ep-card__upcoming{color:var(--warn);font-size:.8rem;font-weight:600}.ep-card__unaired,.next-ep__date--unaired{color:var(--muted);font-style:italic;font-weight:500}.gallery{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.gallery__item img{aspect-ratio:16/9;object-fit:cover;border-radius:8px;width:100%;display:block}.gallery__item--video{position:relative}.gallery__play{color:#fff;pointer-events:none;background:#0009;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;padding-left:3px;font-size:15px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gallery__vtype{color:#fff;pointer-events:none;background:#000000b3;border-radius:6px;padding:2px 6px;font-size:11px;font-weight:600;position:absolute;bottom:6px;left:6px}.facts{background:var(--surface);border:1px solid var(--surface-2);border-radius:var(--radius)}.facts__summary{cursor:pointer;padding:10px 14px;font-weight:600;list-style:none}.facts__summary::-webkit-details-marker{display:none}.facts__summary:before{content:"▸ ";color:var(--muted)}.facts[open] .facts__summary:before{content:"▾ "}.facts__list{padding:0 14px 12px}.reviews-panel{flex-direction:column;gap:12px;display:flex}.reviews-panel__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.review-sort{gap:6px;display:inline-flex}.review-sort__btn{border:1px solid var(--surface-2);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.82rem;font-weight:600;display:inline-flex}.review-sort__btn:hover{color:var(--text);border-color:var(--muted)}.review-sort__btn--on{background:var(--accent);border-color:var(--accent);color:#06283a}.review-sort__btn svg{flex-shrink:0}.composer{background:var(--bg);border:1px solid var(--surface-2);border-radius:var(--radius);flex-direction:column;gap:6px;padding:10px;display:flex}.composer__input{resize:vertical;background:var(--surface-2);width:100%;color:var(--text);border:1px solid var(--surface-2);font:inherit;border-radius:8px;padding:8px;font-size:.9rem}.composer__row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.composer__spoiler{color:var(--muted);align-items:center;gap:6px;font-size:.82rem;display:inline-flex}.composer__actions{gap:8px;display:flex}.composer__hint{margin:0;font-size:.75rem}.comment-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.comment-list--loading{opacity:.5}.comment-list--replies{border-left:2px solid var(--surface-2);margin-top:10px;padding-left:14px}.comment{flex-direction:column;gap:6px;display:flex}.comment__head{align-items:center;gap:8px;display:flex}.comment__avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:32px;height:32px}.comment__avatar--ph{background:var(--surface-2);color:var(--muted);justify-content:center;align-items:center;display:inline-flex}.comment__avatar--ph svg{width:18px;height:18px}.comment__who{flex-direction:column;min-width:0;display:flex}.comment__user{font-size:.88rem;font-weight:600}.comment__date{font-size:.75rem}.comment__tags{flex-shrink:0;align-items:center;gap:6px;margin-left:auto;display:flex}.comment__rating{color:var(--warn);font-size:.8rem;font-weight:600}.pill{text-transform:uppercase;letter-spacing:.03em;background:var(--surface-2);color:var(--muted);border-radius:999px;padding:2px 7px;font-size:.68rem;font-weight:700}.pill--warn{background:var(--warn);color:#06283a}.comment__text{white-space:pre-wrap;margin:0;font-size:.9rem;line-height:1.5}.comment__spoiler-btn{background:var(--surface-2);color:var(--text);cursor:pointer;border:none;border-radius:8px;align-self:flex-start;padding:6px 12px;font-size:.82rem}.comment__foot{align-items:center;gap:14px;font-size:.82rem;display:flex}.comment__like{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:.82rem}.comment__like:disabled{cursor:default}.comment__like--on{color:var(--accent)}.comment__link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:.82rem}.reviews-pager{justify-content:center;align-items:center;gap:14px;margin-top:4px;display:flex}.reviews-pager .btn{margin:0}.reviews-pager span{white-space:nowrap;flex-shrink:0;font-size:.85rem}.trakt-code{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.trakt-code__code{letter-spacing:.15em;color:var(--accent);font-variant-numeric:tabular-nums;margin:2px 0;font-size:1.6rem;font-weight:700}.trakt-redirect{margin-top:10px;font-size:.8rem}.trakt-redirect__uri{background:var(--surface-2);color:var(--text);word-break:break-all;border-radius:6px;margin-top:4px;padding:5px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;display:block}.movie-watch{align-items:flex-end;gap:14px;display:flex}.movie-watch__info{flex-direction:column;gap:2px;display:flex}.app-header__right{align-items:center;gap:12px;display:flex}.user-btn{background:var(--surface-2);width:36px;height:36px;color:var(--muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex;overflow:hidden}.user-btn:hover{color:var(--accent)}.user-btn__img{object-fit:cover;width:100%;height:100%}.stats{flex-direction:column;gap:16px;display:flex}.stats__head{align-items:center;gap:14px;display:flex}.stats__indexing{text-align:center;margin:0}.stats__avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:56px;height:56px}.stats__avatar--placeholder{background:var(--surface-2);color:var(--muted);justify-content:center;align-items:center;display:inline-flex}.stats__avatar--placeholder svg{width:30px;height:30px}.stats__name{margin:0;font-size:1.3rem}.stat-hero{background:linear-gradient(135deg, var(--surface-2), var(--surface));border:1px solid var(--surface-2);border-radius:var(--radius);flex-direction:column;gap:6px;padding:18px;display:flex}.stat-hero__label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.78rem}.stat-hero__value{color:var(--accent);font-size:1.6rem;font-weight:700;line-height:1.2}.stat-hero__split{color:var(--muted);flex-wrap:wrap;gap:6px 18px;margin-top:6px;font-size:.9rem;display:flex}.stat-hero__split strong{color:var(--text)}.stat-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.stat-tile{background:var(--surface);border:1px solid var(--surface-2);border-radius:var(--radius);flex-direction:column;gap:2px;padding:14px;display:flex}.stat-tile__value{font-size:1.5rem;font-weight:700}.stat-tile__label{color:var(--muted);font-size:.78rem}.progress{background:var(--surface-2);border-radius:999px;height:24px;position:relative;overflow:hidden}.progress__fill{background:linear-gradient(90deg, var(--accent), var(--ok));border-radius:999px;height:100%;transition:width .4s}.progress__label{color:var(--text);justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:flex;position:absolute;inset:0}.bars{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.bar-row{grid-template-columns:7.5em 1fr auto;align-items:center;gap:10px;display:grid}.bar-row__label{text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.bar-row__track{background:var(--surface-2);border-radius:999px;height:10px;overflow:hidden}.bar-row__fill{background:var(--accent);border-radius:999px;height:100%;display:block}.bar-row__fill--alt{background:#c084fc}.bar-row__val{font-variant-numeric:tabular-nums;font-size:.78rem}.critic{justify-content:center;align-items:center;gap:20px;padding:6px 0;display:flex}.critic__col{flex-direction:column;align-items:center;gap:2px;font-size:.78rem;display:flex}.critic__num{color:var(--accent);font-size:2rem;font-weight:700;line-height:1}.critic__vs{color:var(--muted);font-size:.85rem}.meta-list{flex-direction:column;gap:8px;margin:0;display:flex}.meta-list>div{justify-content:space-between;gap:12px;font-size:.9rem;display:flex}.meta-list dt{color:var(--muted)}.meta-list dd{text-align:right;margin:0}.stat-note{margin:8px 0 0;font-size:.82rem}.stat-note--foot{text-align:center}.upcoming__controls{align-items:center;gap:10px;margin-bottom:12px;display:flex}.upcoming__controls--cal{justify-content:space-between;margin-bottom:8px}.upcoming__controls--cal .calendar__nav{margin-bottom:0}.upcoming__controls .search__input{flex:1;margin-bottom:0}.seg{border:1px solid var(--surface-2);border-radius:var(--radius);flex-shrink:0;height:44px;display:inline-flex;overflow:hidden}.seg__btn{background:var(--surface);width:46px;color:var(--muted);cursor:pointer;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.seg__btn--on{background:var(--accent);color:#06283a}.calendar__nav{align-items:center;gap:8px;min-width:0;margin-bottom:10px;display:flex}.calendar__month{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.upcoming__controls--cal .calendar__nav{flex:0 auto;gap:4px}.upcoming__controls--cal .calendar__nav .btn{flex-shrink:0}.upcoming__controls--cal .calendar__nav .btn--small{padding:6px 9px}.upcoming__controls--cal .calendar__month{padding:0 2px}.upcoming__controls--cal .seg{flex-shrink:0}.calendar__loading{margin-bottom:8px;font-size:.78rem}.calendar__weekdays{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px;display:grid}.calendar__weekday{text-align:center;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.7rem}.calendar__grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-day{background:var(--surface);border:1px solid #0000;border-radius:8px;flex-direction:column;gap:3px;min-height:84px;padding:4px;display:flex;overflow:hidden}.cal-day--muted{opacity:.4}.cal-day--today{border-color:var(--accent)}.cal-day__num{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.72rem}.cal-entry{cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:2px;width:100%;min-width:0;padding:0;display:flex}.cal-poster{object-fit:cover;background:var(--surface-2);border-radius:4px;width:30px;height:45px}.cal-poster--placeholder{justify-content:center;align-items:center;font-size:.9rem;display:inline-flex}.cal-entry__label{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.62rem;line-height:1}.cal-day__stack-wrap{flex-direction:column;align-items:center;gap:2px;display:flex}.cal-stack{justify-content:center;display:flex}.cal-stack__btn{cursor:pointer;background:0 0;border:none;padding:0}.cal-poster--stacked{border:1px solid var(--bg);margin-left:-14px}.cal-stack__btn:first-child .cal-poster--stacked{margin-left:0}.cal-day__count{color:var(--muted);font-size:.62rem}.toast-overlay{z-index:110;background:#02061773;justify-content:center;align-items:center;padding:16px;animation:.14s toast-overlay-in;display:flex;position:fixed;inset:0}@keyframes toast-overlay-in{0%{opacity:0}to{opacity:1}}.update-toast{z-index:1;background:var(--surface);border:1px solid var(--surface-2);border-radius:var(--radius);align-items:center;gap:10px;max-width:100%;padding:12px 16px;font-size:.85rem;animation:.16s toast-pop;display:flex;position:relative;box-shadow:0 10px 30px #00000080}@keyframes toast-pop{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:none}}.confirm-toast{flex-wrap:wrap;justify-content:flex-end;width:min(420px,100% - 32px)}.confirm-toast>span{flex:100%}.confirm-toast__actions{gap:8px;display:flex}.card--danger{border:1px solid #f8717166}.modal-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius);border:1px solid var(--surface-2);width:100%;max-width:420px;padding:20px}.modal h3{margin-top:0}.modal__actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.reset-confirm{margin:16px 0 4px}.import-progress{margin-top:12px}.progress-bar{background:var(--surface-2);border-radius:999px;height:8px;overflow:hidden}.progress-bar__fill{background:var(--accent);height:100%;transition:width .2s}.unmatched{margin-top:10px;font-size:.85rem}.unmatched summary{cursor:pointer;color:var(--warn)}.unmatched ul{max-height:180px;color:var(--muted);margin:8px 0 0;padding-left:18px;overflow:auto}.sync-actions{align-items:center;gap:10px;display:flex}.sync-last{margin-top:10px;font-size:.82rem}.tl-entry{color:inherit;align-items:center;gap:12px;text-decoration:none;display:flex}.tl-entry__icon{font-size:1.6rem}.tl-entry__text{flex-direction:column;flex:1;min-width:0;display:flex}.tl-entry__chev{color:var(--muted);font-size:1.4rem}.tl-entry,.tl-entry:hover{text-decoration:none}.tl-entry:hover{border-color:var(--accent)}.tl-entry:hover .tl-entry__name{text-decoration:underline}.tl-head{align-items:center;gap:12px;margin-bottom:12px;display:flex}.tl-head__title{flex:1;margin:0;font-size:1.3rem}.tl-cal__nav{align-items:center;gap:10px;margin-bottom:12px;display:flex}.tl-cal__nav strong{text-align:center;flex:1;font-size:.95rem}.tl-cal__arrow{border:1px solid var(--surface-2);width:30px;height:30px;color:var(--text);cursor:pointer;background:0 0;border-radius:8px;font-size:1.1rem}.tl-cal__arrow:hover{border-color:var(--accent)}.tl-cal__today{flex-shrink:0}.tl-cal__grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.tl-cal__grid--head{margin-bottom:4px}.tl-cal__wd{text-align:center;color:var(--muted);font-size:.7rem;font-weight:700}.tl-cal__cell{aspect-ratio:1;background:var(--surface-2);color:var(--text);cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;font-size:.82rem;display:flex;position:relative}.tl-cal__cell:hover{border-color:var(--accent)}.tl-cal__cell--empty{cursor:default;background:0 0}.tl-cal__cell--today{color:var(--accent);font-weight:700}.tl-cal__cell--sel{background:var(--accent);color:#06283a;font-weight:700}.tl-cal__dot{background:var(--accent);border-radius:50%;width:4px;height:4px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.tl-cal__cell--sel .tl-cal__dot{background:#06283a}.tl-day-title{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.tl-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.tl-list>li+li .tl-row{border-top:1px solid var(--surface-2)}.tl-row{text-align:left;width:100%;color:inherit;cursor:pointer;font:inherit;background:0 0;border:none;border-radius:8px;align-items:center;gap:12px;padding:9px 2px;text-decoration:none;display:flex}.tl-row:hover{background:var(--surface-2)}.tl-row__img{object-fit:cover;background:var(--surface-2);border-radius:5px;flex-shrink:0;width:38px;height:56px}.tl-row__img--logo{object-fit:contain;background:#fff;padding:4px}.tl-row__img--emoji{justify-content:center;align-items:center;font-size:1.5rem;display:flex}.tl-row--badge .tl-row__img--emoji{background:color-mix(in srgb, var(--accent) 14%, var(--surface-2))}.tl-row__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.tl-row__title{font-size:.9rem;line-height:1.2}.tl-row__sub{text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;line-height:1.25;overflow:hidden}.tl-row__date{white-space:nowrap;flex-shrink:0;font-size:.75rem}.tl-more{margin:14px auto 2px;display:block}.universe-tag{opacity:.85;font-size:.78rem}.section-title__count{font-size:.85rem;font-weight:500}.badge-group{margin-top:12px}.badge-group:first-of-type{margin-top:4px}.badge-group__title{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:.78rem;font-weight:700}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;display:grid}.badge-chip{text-align:center;border:1px solid var(--surface-2);background:var(--surface);opacity:.55;filter:grayscale();border-radius:12px;flex-direction:column;align-items:center;gap:3px;padding:12px 8px 10px;display:flex}.badge-chip--on{opacity:1;filter:none;border-color:color-mix(in srgb, var(--accent) 55%, var(--surface-2));background:color-mix(in srgb, var(--accent) 12%, var(--surface))}.badge-chip__icon{font-size:1.7rem;line-height:1}.badge-chip__name{font-size:.8rem;font-weight:600;line-height:1.2}.badge-chip__desc{font-size:.68rem;line-height:1.25}.badge-chip--on .badge-chip__desc{color:var(--accent)}.badge-chip--tap{font:inherit;color:inherit;cursor:pointer;transition:transform 80ms}.badge-chip--tap:hover{border-color:var(--accent)}.badge-chip--tap:active{transform:scale(.97)}.badge-toast{cursor:pointer;border-color:color-mix(in srgb, var(--accent) 45%, var(--surface-2));align-items:flex-start}.badge-toast__icon{font-size:1.9rem;line-height:1}.badge-toast__text{flex-direction:column;gap:2px;display:flex}.badge-toast__text strong{font-size:.9rem}.badge-toast__date{font-size:.75rem}.badge-toast__ok{align-self:center}.confetti-canvas{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;inset:0}
