:root{--bg-base:#0e0d0b;--bg-base-recovery:#0b0a08;--bg-surface:#161412;--bg-raised:#1d1a16;--bg-tabbar:#12100d;--text-primary:#ece9e2;--text-secondary:#8f887b;--text-faint:#6b665c;--text-ghost:#4a463e;--accent:#f2a93b;--accent-ink:#14110c;--danger:#d96c5f;--border:#ffffff14;--border-strong:#ffffff1f;--star-empty:#332f27;--feed-sentence:#c9c4ba;--accent-fill-weak:color-mix(in srgb, var(--accent) 10%, transparent);--accent-fill:color-mix(in srgb, var(--accent) 14%, transparent);--accent-fill-strong:color-mix(in srgb, var(--accent) 16%, transparent);--accent-border:color-mix(in srgb, var(--accent) 45%, transparent);--accent-border-weak:color-mix(in srgb, var(--accent) 25%, transparent);--font-ui:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, "Roboto Mono", monospace;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--r-mini:4px;--r-poster:10px;--r-card:12px;--r-sheet:20px;--r-pill:999px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{background:var(--bg-base);color:var(--text-primary);font-family:var(--font-ui);margin:0;font-size:14px;line-height:1.5}button,input{color:inherit;font-family:inherit}button{appearance:none}.mono,.rating-readout,.rating-username,[class*=mono-]{font-variant-numeric:tabular-nums}button,.poster-card,.home-card-poster,.activity-row,.member-poster-strip img,.member-poster-strip .mini-poster-placeholder{transition:opacity .1s,transform .1s}button:active,.poster-card:active,.home-card-poster:active,.activity-row:active{opacity:.7;transform:scale(.97)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}button:active,.poster-card:active,.home-card-poster:active,.activity-row:active{transform:none}}.mono-label{font-family:var(--font-mono);letter-spacing:.22em;color:var(--accent);text-transform:uppercase;font-size:10px}.screen-title{letter-spacing:-.01em;color:var(--text-primary);margin:4px 0 0;font-size:28px;font-weight:700}.screen-header{margin-bottom:var(--sp-4);flex-direction:column;gap:4px;display:flex}.error-banner{background:color-mix(in srgb, var(--danger) 16%, transparent);border:1px solid color-mix(in srgb, var(--danger) 45%, transparent);color:#f3c7bf;border-radius:var(--r-card);padding:var(--sp-2) var(--sp-3);justify-content:space-between;align-items:center;gap:var(--sp-2);font-size:.85rem;display:flex}.error-retry-btn{all:unset;cursor:pointer;color:var(--accent);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-poster);background:color-mix(in srgb, var(--accent) 14%, transparent);white-space:nowrap;flex-shrink:0;font-size:.8rem;font-weight:700}.error-retry-btn:active{opacity:.7}.btn{border-radius:var(--r-poster);padding:0 var(--sp-5);cursor:pointer;justify-content:center;align-items:center;gap:var(--sp-2);border:none;min-height:44px;font-size:15px;font-weight:700;display:inline-flex}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:disabled{opacity:.5;cursor:default}.btn-secondary{background:var(--bg-raised);color:var(--text-primary);border:1px solid var(--border-strong)}.btn-danger-outline{color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 45%, transparent);background:0 0;min-height:52px}.btn-link{color:var(--accent);cursor:pointer;padding:var(--sp-2) 0;text-align:left;background:0 0;border:none;align-items:center;gap:6px;min-height:44px;font-size:.85rem;display:inline-flex}.auth-screen{min-height:100%;padding:var(--sp-6) var(--sp-5);background:var(--bg-base);flex-direction:column;justify-content:center;align-items:center;display:flex}.auth-card{gap:var(--sp-4);flex-direction:column;width:100%;max-width:340px;display:flex}.auth-title{margin:0 0 var(--sp-1);letter-spacing:-.01em;color:var(--text-primary);font-size:28px;font-weight:700}.field{flex-direction:column;gap:6px;display:flex}.field label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);font-size:10px}.field input{background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--r-card);color:var(--text-primary);padding:0 var(--sp-3);min-height:48px;font-size:16px}.field input:focus{outline:2px solid var(--accent);outline-offset:1px}.field-hint{color:var(--text-faint);font-size:12px}.auth-links{justify-content:space-between;margin-top:2px;display:flex}.recovery-reveal{min-height:100%;padding:56px var(--sp-5) var(--sp-6);gap:var(--sp-6);background:var(--bg-base-recovery);flex-direction:column;display:flex}.recovery-label{font-family:var(--font-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--accent);font-size:10px}.recovery-headline{margin:var(--sp-3) 0 0;letter-spacing:-.015em;color:var(--text-primary);font-size:34px;font-weight:700}.recovery-body{margin:var(--sp-3) 0 0;color:var(--text-secondary);max-width:320px;font-size:14px;line-height:1.5}.recovery-card{border:1px solid var(--accent-border-weak);gap:var(--sp-5);background:#14110c;border-radius:14px;flex-direction:column;padding:30px 22px;display:flex;position:relative;overflow:hidden}.recovery-card:before,.recovery-card:after{content:"";background:repeating-linear-gradient(to bottom, transparent 0 4px, var(--accent-border-weak) 4px 8px);width:1px;position:absolute;top:0;bottom:0}.recovery-card:before{left:9px}.recovery-card:after{right:9px}.recovery-code-grid{gap:var(--sp-3) var(--sp-2);font-family:var(--font-mono);letter-spacing:.1em;color:var(--accent);word-break:break-all;grid-template-columns:1fr 1fr;justify-items:center;font-size:28px;font-weight:600;display:grid}@media (width>=360px){.recovery-code-grid{font-size:33px}}.recovery-copy-btn{background:var(--accent-fill);width:100%;min-height:48px;color:var(--accent);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:10px;font-size:13px;display:flex}.recovery-warning-row{gap:var(--sp-2);color:var(--text-secondary);align-items:flex-start;font-size:13px;line-height:1.5;display:flex}.recovery-warning-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.recovery-ack{align-items:center;gap:var(--sp-2);color:var(--text-secondary);min-height:44px;font-size:13px;display:flex}.recovery-ack input{width:18px;height:18px;accent-color:var(--accent)}.recovery-actions{gap:var(--sp-3);flex-direction:column;margin-top:auto;display:flex}.recovery-actions .btn-primary{min-height:52px;font-size:16px}.app-shell{background:var(--bg-base);flex-direction:column;min-height:100%;display:flex;overflow-x:hidden}.app-content{width:100%;min-width:0;padding:var(--sp-4) var(--sp-5);padding-bottom:calc(76px + env(safe-area-inset-bottom));flex:1}.tab-bar{background:var(--bg-tabbar);border-top:1px solid var(--border);padding:6px 0 calc(6px + env(safe-area-inset-bottom));z-index:20;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-bar button{color:var(--text-faint);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;min-height:44px;padding:4px 0;display:flex}.tab-bar button.active{color:var(--accent)}.tab-icon{line-height:0;display:flex}.tab-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:10px}.profile-row{padding:var(--sp-2) 0;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;min-height:44px;display:flex}.offline-banner{align-items:center;gap:var(--sp-2);background:var(--accent-fill-weak);min-height:36px;padding:0 var(--sp-3);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--sp-3);border-radius:8px;font-size:11px;display:flex}.offline-banner-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px}.tmdb-attribution{margin-top:var(--sp-6);padding-top:var(--sp-4);border-top:1px solid var(--border);align-items:center;gap:var(--sp-2);text-align:center;flex-direction:column;display:flex}.tmdb-logo{filter:brightness(0)invert()opacity(.7);height:14px}.tmdb-attribution p{color:var(--text-faint);max-width:300px;margin:0;font-size:11px;line-height:1.4}.footer-version{margin-top:var(--sp-4);text-align:center;font-family:var(--font-mono);letter-spacing:.1em;color:var(--text-ghost);text-transform:uppercase;font-size:10px}.search-field{align-items:center;gap:var(--sp-2);background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--r-card);min-height:48px;padding:0 var(--sp-3);margin:var(--sp-3) 0 var(--sp-4);color:var(--text-faint);display:flex;position:relative}.search-field:focus-within{outline:2px solid var(--accent);outline-offset:1px}.search-input{color:var(--text-primary);background:0 0;border:none;flex:1;min-width:0;padding:0;font-size:16px}.search-input:focus{outline:none}.search-input::placeholder{color:var(--text-faint)}.search-clear{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);cursor:pointer;background:0 0;border:none;min-width:44px;min-height:44px;font-size:10px}.results-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);margin-bottom:var(--sp-3);font-size:10px}.poster-grid{margin-top:var(--sp-2);grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px;display:grid}.poster-card{color:var(--text-primary);cursor:pointer;gap:var(--sp-2);text-align:left;background:0 0;border:none;flex-direction:column;min-width:0;padding:0;display:flex;position:relative}.poster-frame{aspect-ratio:2/3;border-radius:var(--r-poster);background:var(--bg-surface);width:100%;position:relative;overflow:hidden}.poster-card img,.home-card-poster img{aspect-ratio:2/3;object-fit:cover;border-radius:var(--r-poster);background:var(--bg-surface);width:100%;display:block}.poster-placeholder{aspect-ratio:2/3;border-radius:var(--r-poster);background:var(--bg-surface);border:1px solid var(--border);width:100%;padding:var(--sp-2);color:var(--text-faint);text-align:center;justify-content:center;align-items:center;font-size:11px;display:flex;overflow:hidden}.poster-meta-row{justify-content:space-between;align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:11px;display:flex}.poster-meta-left{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.poster-meta-right{color:var(--text-faint);flex-shrink:0}.poster-title{color:var(--text-primary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.3;display:-webkit-box;overflow:hidden}.tracked-badge{color:var(--accent);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;background:#0e0d0bbf;border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:9px;display:flex;position:absolute;top:8px;left:8px}.skeleton{background:var(--bg-surface);position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(100deg,#0000 30%,#ffffff0f 50%,#0000 70%);animation:1.4s ease-in-out infinite skeleton-shimmer;position:absolute;inset:0}@keyframes skeleton-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.skeleton:after{animation:none}}.skeleton-poster{aspect-ratio:2/3;border-radius:var(--r-poster);width:100%}.skeleton-line{border-radius:4px;height:11px}.skeleton-card{gap:var(--sp-2);flex-direction:column;display:flex}.skeleton-bar{border-radius:2px;height:3px}.skeleton-row{align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;display:flex}.skeleton-avatar{border-radius:50%;flex-shrink:0;width:40px;height:40px}.skeleton-row-lines{gap:var(--sp-2);flex-direction:column;flex:1;display:flex}.empty-state{align-items:center;gap:var(--sp-3);padding:26px var(--sp-3);border:1px dashed var(--border-strong);text-align:center;margin-top:var(--sp-4);border-radius:14px;flex-direction:column;display:flex}.empty-state-posters{gap:var(--sp-2);display:flex}.empty-state-poster{border:1.5px dashed var(--border-strong);border-radius:5px;width:44px;height:66px}.empty-state-glyph{font-family:var(--font-mono);letter-spacing:.2em;color:var(--text-ghost);font-size:12px}.empty-state-title{color:var(--text-primary);font-size:15px;font-weight:600}.empty-state-body{color:var(--text-secondary);max-width:220px;font-size:13px;line-height:1.5}.show-screen{margin:calc(var(--sp-4) * -1) calc(var(--sp-5) * -1) 0}.show-back-btn{z-index:2;margin:var(--sp-4) 0 0 var(--sp-4);width:40px;height:40px;color:var(--text-primary);cursor:pointer;background:#0e0d0b8c;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.show-backdrop{background:linear-gradient(160deg,#2a4644,#0e1c1c);height:216px;position:relative;overflow:hidden}.show-backdrop img{object-fit:cover;width:100%;height:100%}.show-backdrop-scrim{background:linear-gradient(to bottom, #0e0d0b40, transparent 40%, var(--bg-base));pointer-events:none;position:absolute;inset:0}.show-body{padding:0 var(--sp-5) var(--sp-4);gap:var(--sp-3);flex-direction:column;margin-top:-34px;display:flex;position:relative}.show-title-block{flex-direction:column;gap:6px;display:flex}.show-title{letter-spacing:-.01em;color:var(--text-primary);margin:0;font-size:27px;font-weight:700}.show-meta-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.show-meta{font-family:var(--font-mono);letter-spacing:.08em;color:var(--text-secondary);text-transform:uppercase;font-size:11px}.status-pill{font-family:var(--font-mono);letter-spacing:.1em;color:var(--accent);border:1px solid var(--accent-border);border-radius:var(--r-pill);text-transform:uppercase;white-space:nowrap;padding:3px 9px;font-size:10px}.show-poster-fallback{flex-shrink:0;width:96px}.rating-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-card);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.rating-card-row{justify-content:space-between;align-items:center;gap:var(--sp-2);display:flex}.rating-card-label{font-family:var(--font-mono);letter-spacing:.18em;color:var(--text-faint);text-transform:uppercase;font-size:10px}.rating-card-divider{border-top:1px dashed var(--border-strong)}.rating-card-footer{font-family:var(--font-mono);letter-spacing:.08em;color:var(--text-secondary);text-transform:uppercase;justify-content:space-between;align-items:center;font-size:11px;display:flex}.rating-card-footer .group-avg-value{color:var(--accent)}.track-add-btn{border-radius:var(--r-pill);border:1px solid var(--accent-border);min-width:44px;min-height:32px;font-family:var(--font-mono);letter-spacing:.04em;color:var(--accent);white-space:nowrap;cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:4px;padding:0 10px;font-size:11px;display:inline-flex}.track-status-label{font-family:var(--font-mono);letter-spacing:.08em;color:var(--text-secondary);text-transform:uppercase;font-size:11px}.track-status-row{align-items:center;gap:var(--sp-2);margin-top:4px;display:flex}.track-status-row .track-add-btn{min-height:32px}.track-error{color:var(--danger);font-size:11px}.track-chip-row{flex-wrap:wrap;gap:6px;display:flex}.track-chip{border-radius:var(--r-pill);border:1px solid var(--border-strong);min-height:32px;color:var(--text-secondary);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;padding:0 12px;font-size:10px}.track-chip.active{border-color:var(--accent-border);color:var(--accent);background:var(--accent-fill-weak)}.track-chip:disabled{opacity:.6}.sheet-scrim{z-index:30;background:#00000080;align-items:flex-end;animation:.2s ease-out sheet-fade;display:flex;position:fixed;inset:0}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}.add-sheet{border-radius:var(--r-sheet) var(--r-sheet) 0 0;width:100%;max-width:480px;padding:var(--sp-3) var(--sp-5) calc(var(--sp-5) + env(safe-area-inset-bottom));gap:var(--sp-4);background:#1a1714;flex-direction:column;margin:0 auto;animation:.25s ease-out sheet-up;display:flex}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.sheet-scrim,.add-sheet{animation:none}}.add-sheet-handle{background:var(--border-strong);border-radius:999px;width:36px;height:4px;margin:0 auto}.add-sheet-title{color:var(--text-primary);margin:0;font-size:16px;font-weight:600}.add-sheet-label{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-faint);text-transform:uppercase;font-size:10px}.add-sheet-row{align-items:center;gap:var(--sp-3);min-height:48px;padding:0 var(--sp-3);color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;width:100%;font-size:15px;font-weight:600;display:flex}.add-sheet-row.selected{background:var(--accent-fill-weak)}.add-sheet-dot{border:1.5px solid var(--border-strong);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.add-sheet-row.selected .add-sheet-dot{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.seasons-accordion{margin-top:var(--sp-3);flex-direction:column;display:flex}.season-block{border-bottom:1px solid var(--border)}.season-block:last-child{border-bottom:none}.season-header-row{align-items:center;gap:10px;min-height:48px;display:flex}.season-header{min-width:0;color:var(--text-primary);cursor:pointer;flex:1;align-items:center;gap:10px;display:flex}.season-header-chevron{color:var(--text-faint);flex-shrink:0;transition:transform .2s ease-out;display:flex}.season-header.open .season-header-chevron{color:var(--text-primary);transform:rotate(90deg)}.season-header-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:15px;font-weight:600;overflow:hidden}.season-header-count{font-family:var(--font-mono);color:var(--text-secondary);align-items:center;gap:6px;margin-left:auto;font-size:11px;display:flex}.season-header-count.complete{color:var(--accent)}.season-body{padding:0 0 var(--sp-3);flex-direction:column;gap:2px;animation:.22s ease-out accordion-open;display:flex}@keyframes accordion-open{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.mark-season-btn{border-radius:var(--r-pill);border:1px solid var(--accent-border);min-height:32px;color:var(--accent);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;align-self:flex-start;margin-bottom:6px;padding:0 12px;font-size:10px}.mark-season-btn:disabled{opacity:.5}.season-mark-btn{box-sizing:border-box;background:var(--accent-fill);border:1.5px solid var(--accent-border);width:40px;height:40px;color:var(--accent);font-family:var(--font-mono);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;transition:background .1s,border-color .1s,color .1s,opacity .1s;display:flex}.season-mark-btn.complete{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.season-mark-btn:active{opacity:.75}.season-mark-btn:disabled{opacity:.4;cursor:default}.season-mark-btn-spinner{font-size:16px;line-height:1}.show-mark-all-row{justify-content:flex-end;margin-bottom:-4px;display:flex}.mark-show-btn{border-radius:var(--r-pill);border:1px solid var(--border-strong);min-height:32px;color:var(--text-secondary);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;padding:0 12px;font-size:10px}.mark-show-btn:disabled{opacity:.5}.episode-row{border-bottom:1px solid var(--border);min-height:52px;padding:8px 0}.episode-row:last-child{border-bottom:none}.episode-row-main{align-items:center;gap:10px;width:100%;display:flex}.episode-watch-toggle{cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;min-width:44px;height:26px;min-height:44px;padding:0;display:flex}.episode-watch-circle{color:#0000;border:1.5px solid #ffffff2e;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;display:flex}.episode-watch-circle.watched{background:var(--accent-fill-strong);color:var(--accent);border-color:#0000}.episode-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.episode-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.episode-code-row{font-family:var(--font-mono);color:var(--text-faint);letter-spacing:.04em;font-size:10px}.episode-rating-toggle{color:var(--text-secondary);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:0 6px;font-size:12px;display:flex}.episode-rating-expand{padding:var(--sp-3);gap:var(--sp-2);background:#141210;border-radius:8px;flex-direction:column;margin:6px 0 4px 36px;display:flex}.episode-rating-expand-label{font-family:var(--font-mono);letter-spacing:.1em;color:var(--text-faint);text-transform:uppercase;font-size:10px}.episode-member-ratings{flex-direction:column;gap:6px;display:flex}.episode-member-ratings-empty{color:var(--text-faint);font-size:12px}.rating-control{align-items:center;gap:var(--sp-2);display:flex}.rating-stars{gap:max(2px, calc(var(--star-size,20px) * .16));cursor:pointer;touch-action:none;padding:var(--sp-2) 2px;align-items:center;min-height:44px;display:flex}.rating-readonly .rating-stars{cursor:default;min-height:0;padding:0}.rating-star{width:var(--star-size,20px);height:var(--star-size,20px);font-size:var(--star-size,20px);line-height:1;display:inline-block;position:relative}.rating-star-empty,.rating-star-filled{white-space:nowrap;position:absolute;top:0;left:0}.rating-star-empty{color:var(--star-empty)}.rating-star-filled{color:var(--accent);width:0%;overflow:hidden}.rating-readout{font-family:var(--font-mono);text-align:right;min-width:2.6em;color:var(--text-primary);font-size:19px;font-weight:600}.rating-control-sm .rating-readout,.rating-control-md .rating-readout{min-width:2.2em;font-size:14px}.rating-username{font-family:var(--font-mono);color:var(--text-secondary);min-width:3.2rem;font-size:12px}.rating-clear{border:1px solid var(--border-strong);width:30px;height:30px;color:var(--text-faint);cursor:pointer;background:0 0;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.home-tabs{gap:var(--sp-1);border-bottom:1px solid var(--border);margin:var(--sp-2) 0 var(--sp-4);display:flex}.home-tab{color:var(--text-faint);padding:0 var(--sp-2);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;min-height:44px;font-size:14px}.home-tab.active{color:var(--text-primary);border-bottom-color:var(--accent);font-weight:600}.home-tab-count{font-family:var(--font-mono);color:inherit;opacity:.7;margin-left:4px;font-size:11px}.home-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px;display:grid}.home-card{gap:var(--sp-2);flex-direction:column;min-width:0;display:flex}.home-card-poster{cursor:pointer;border-radius:var(--r-poster);position:relative;overflow:hidden}.home-card-poster img,.home-card-poster .poster-placeholder{aspect-ratio:2/3;object-fit:cover;border-radius:var(--r-poster);background:var(--bg-surface);width:100%}.home-card-title{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.home-card-meta-row{font-family:var(--font-mono);justify-content:space-between;font-size:11px;display:flex}.home-card-meta-left{color:var(--text-secondary)}.home-card-meta-right{color:var(--text-faint)}.progress-bar{background:#ffffff17;border-radius:2px;width:100%;height:3px;overflow:hidden}.progress-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .2s ease-out}.tick-btn{background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--r-poster);width:100%;min-height:44px;color:var(--accent);font-family:var(--font-mono);cursor:pointer;justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex}.tick-btn:disabled{opacity:.6}.tick-btn-uptodate,.tick-btn-sparse{width:100%;min-height:44px;font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-faint);text-transform:uppercase;justify-content:center;align-items:center;font-size:11px;display:flex}.member-profile-back-btn{margin:0 0 var(--sp-3);background:var(--bg-raised);border:1px solid var(--border-strong);color:var(--text-primary);position:static}.member-sort-toggle{gap:var(--sp-1);border-bottom:1px solid var(--border);margin:0 0 var(--sp-4);display:flex}.member-sort-btn{color:var(--text-faint);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;padding:0 var(--sp-2);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;min-height:40px;font-size:11px}.member-sort-btn.active{color:var(--text-primary);border-bottom-color:var(--accent);font-weight:600}.member-show-poster{cursor:default}.member-show-rating{width:100%;min-height:44px;font-family:var(--font-mono);color:var(--accent);justify-content:center;align-items:center;gap:6px;font-size:12px;display:flex}.member-show-rating-empty{color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.member-row{align-items:stretch;gap:var(--sp-2);margin-bottom:var(--sp-2);display:flex}.member-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--sp-3) 14px;align-items:center;gap:var(--sp-3);cursor:pointer;text-align:left;width:100%;min-width:0;display:flex}.follow-toggle{border-radius:var(--r-pill);border:1px solid var(--border-strong);min-height:32px;color:var(--text-secondary);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;flex-shrink:0;align-self:center;padding:0 12px;font-size:10px}.follow-toggle.active{border-color:var(--accent-border);color:var(--accent);background:var(--accent-fill-weak)}.follow-toggle:disabled{opacity:.6;cursor:default}.member-avatar{background:var(--accent-fill-strong);width:40px;height:40px;color:var(--accent);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;font-weight:700;display:flex}.member-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.member-username{color:var(--text-primary);font-size:15px;font-weight:600}.member-watching-label{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-faint);text-transform:uppercase;font-size:10px}.member-poster-strip{flex-shrink:0;gap:4px;max-width:45%;display:flex;overflow-x:auto}.member-poster-strip img,.member-poster-strip .mini-poster-placeholder{object-fit:cover;border-radius:var(--r-mini);background:var(--bg-raised);cursor:pointer;flex-shrink:0;width:30px;height:45px}.ticker-strip{white-space:nowrap;margin:var(--sp-4) 0;border-top:1px dashed var(--border-strong);border-bottom:1px dashed var(--border-strong);font-family:var(--font-mono);color:var(--text-secondary);scrollbar-width:none;gap:14px;padding:10px 2px;font-size:11px;display:flex;overflow-x:auto}.ticker-strip::-webkit-scrollbar{display:none}.ticker-strip-delta{color:var(--accent)}.activity-feed{margin-top:var(--sp-2)}.activity-feed-title{font-family:var(--font-mono);letter-spacing:.14em;color:var(--text-faint);text-transform:uppercase;margin-bottom:4px;font-size:10px}.activity-row{border-top:1px dashed var(--border-strong);cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border-bottom:none;border-left:none;border-right:none;align-items:flex-start;gap:10px;padding:12px 0;display:flex}.activity-row:last-child{border-bottom:1px dashed var(--border-strong)}.activity-glyph{color:var(--accent);font-family:var(--font-mono);flex-shrink:0;margin-top:3px;font-size:10px}.activity-sentence{color:var(--feed-sentence);flex:1;font-size:14px;line-height:1.45}.activity-sentence strong{color:var(--text-primary)}.activity-sentence .activity-rating-value{color:var(--accent);font-family:var(--font-mono);font-weight:600}.activity-time{font-family:var(--font-mono);color:var(--text-faint);text-transform:uppercase;flex-shrink:0;margin-top:3px;font-size:10px}.profile-header{align-items:center;gap:var(--sp-2);padding:var(--sp-4) 0 var(--sp-5);text-align:center;flex-direction:column;display:flex}.profile-avatar{background:var(--accent-fill-strong);width:64px;height:64px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;font-size:24px;font-weight:700;display:flex}.profile-username{color:var(--text-primary);margin:0;font-size:24px;font-weight:700}.stats-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-card);margin-bottom:var(--sp-5);display:flex;overflow:hidden}.stats-col{padding:var(--sp-3) var(--sp-2);border-left:1px solid var(--border);flex-direction:column;flex:1;align-items:center;gap:6px;display:flex}.stats-col:first-child{border-left:none}.stats-value{font-family:var(--font-mono);color:var(--text-primary);font-size:20px;font-weight:600}.stats-label{font-family:var(--font-mono);letter-spacing:.08em;color:var(--text-faint);text-transform:uppercase;text-align:center;font-size:9px}.profile-section-label{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-faint);text-transform:uppercase;margin:var(--sp-5) 0 var(--sp-2);font-size:10px}.import-row{border:1px dashed var(--border-strong);border-radius:var(--r-card);align-items:center;gap:var(--sp-3);min-height:64px;padding:0 var(--sp-4);color:var(--accent);cursor:not-allowed;opacity:.55;background:0 0;width:100%;display:flex}.import-row-copy{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.import-row-caption{font-family:var(--font-mono);letter-spacing:.08em;color:var(--text-faint);text-transform:uppercase;font-size:10px}.import-row-note{color:var(--text-faint);font-size:11px}.import-instructions{gap:var(--sp-2);padding:var(--sp-3);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-card);margin-bottom:var(--sp-2);flex-direction:column;display:flex}.import-instructions-text{color:var(--text-secondary);margin:0;font-size:12px;line-height:1.5}.import-instructions-text strong{font-weight:600}.import-instructions-link{color:var(--accent);align-self:flex-start;font-size:11px;font-weight:600;text-decoration:none;transition:opacity .2s}.import-instructions-link:hover{opacity:.8}.import-row-active{cursor:pointer;opacity:1;border-style:solid;border-color:var(--border)}.import-row-active:hover{border-color:var(--accent)}.import-progress-card,.import-result-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--sp-4);gap:var(--sp-2);flex-direction:column;display:flex}.import-progress-label{color:var(--text-secondary);font-size:13px}.import-progress-note{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-faint);font-size:10px}.import-result-header{align-items:center;gap:var(--sp-2);color:var(--accent);font-size:14px;font-weight:600;display:flex}.import-result-stats{justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) 0;display:flex}.import-result-stat{flex-direction:column;flex:1;align-items:center;gap:2px;display:flex}.import-unmatched-note{gap:var(--sp-2);color:var(--text-secondary);padding:var(--sp-3);border-radius:var(--r-card);background:#ffffff08;flex-direction:column;font-size:12px;display:flex}.account-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden}.account-row{justify-content:space-between;align-items:center;gap:var(--sp-3);min-height:56px;padding:0 var(--sp-4);border-bottom:1px solid var(--border);width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border-top:none;border-left:none;border-right:none;display:flex}.account-card .account-row:last-child{border-bottom:none}.account-row:disabled{cursor:not-allowed;opacity:.55}.account-row-copy{flex-direction:column;gap:2px;display:flex}.account-row-title{align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.account-row-caption{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-faint);text-transform:uppercase;font-size:10px}.toggle{cursor:pointer;background:#ffffff1f;border:none;border-radius:999px;flex-shrink:0;width:44px;height:26px;transition:background .15s;position:relative}.toggle:disabled{cursor:not-allowed;opacity:.7}.toggle.on{background:var(--accent)}.toggle-knob{background:var(--text-faint);border-radius:50%;width:20px;height:20px;transition:transform .15s,background .15s;position:absolute;top:3px;left:3px}.toggle.on .toggle-knob{background:var(--accent-ink);transform:translate(18px)}.logout-section{margin-top:var(--sp-6);padding-top:var(--sp-5);border-top:1px solid var(--border)}.confirm-dialog-scrim{z-index:40;padding:var(--sp-5);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--r-card);padding:var(--sp-5);gap:var(--sp-4);flex-direction:column;max-width:320px;display:flex}.confirm-dialog p{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.5}.confirm-dialog-actions{gap:var(--sp-2);display:flex}.confirm-dialog-actions .btn{flex:1}.update-toast{left:var(--sp-4);right:var(--sp-4);bottom:calc(76px + var(--sp-3) + env(safe-area-inset-bottom));z-index:30;justify-content:center;animation:.22s ease-out toast-up;display:flex;position:fixed}.update-toast-btn{align-items:center;gap:var(--sp-2);min-height:44px;padding:0 var(--sp-4);border-radius:var(--r-pill);border:1px solid var(--accent-border);background:var(--bg-raised);color:var(--accent);font-family:var(--font-ui);cursor:pointer;font-size:13px;font-weight:600;display:flex;box-shadow:0 8px 24px #0006}.update-toast-btn:active{opacity:.7}.update-toast-btn:disabled{opacity:.6;cursor:default}@keyframes toast-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.update-toast{animation:none}}.error-boundary-screen{min-height:100%;padding:var(--sp-4);background:var(--bg-base);flex-direction:column;justify-content:center;align-items:center;display:flex}.error-boundary-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--sp-8) var(--sp-6);align-items:center;gap:var(--sp-3);text-align:center;flex-direction:column;width:100%;max-width:320px;display:flex}.error-boundary-title{color:var(--text-primary);margin:0;font-size:16px;font-weight:600}.error-boundary-body{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.5}.error-boundary-reload{margin-top:var(--sp-2);height:44px;padding:0 var(--sp-6);background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--r-poster);color:var(--text-primary);cursor:pointer;min-width:44px;font-size:14px;font-weight:600}.error-boundary-reload:active{opacity:.7}
