@import "https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:ital,wght@0,400;0,700;1,400&family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=Literata:ital,opsz,wght@0,7..72,400;0,7..72,600;1,7..72,400&family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,600;1,6..72,400&display=swap";*,:before,:after{box-sizing:border-box}html,body{width:100%;max-width:100%;position:relative;overflow-x:clip}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;margin:0;font-family:DM Sans,system-ui,-apple-system,sans-serif}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=button]):not([type=submit]):not([type=reset]):not([type=file]):not([type=color]):not([type=image]),select,textarea{font-size:16px!important}#root{min-width:0;max-width:100%;min-height:100vh}:root,[data-theme=dark]{--bg-base:#0a0c10;--bg-elevated:#11151c;--bg-surface:#181d27;--bg-hover:#1f2633;--bg-input:#12161e;--border:#2a3344;--border-subtle:#1e2533;--text-primary:#eef1f6;--text-secondary:#9aa5b8;--text-muted:#5f6b7e;--accent:#7c8cff;--accent-hover:#9aa4ff;--accent-rgb:124, 140, 255;--accent-soft:rgba(var(--accent-rgb), .14);--read:#4ade80;--read-soft:#4ade801f;--want:#60a5fa;--want-soft:#60a5fa1f;--reject:#f87171;--reject-soft:#f871711f;--reading:#c084fc;--reading-soft:#c084fc24;--dnf:#fbbf24;--dnf-soft:#fbbf2424;--recommend:#f0abfc;--recommend-mid:#38bdf8;--recommend-hot:#fb923c;--recommend-bg:linear-gradient(128deg, #d946ef8c 0%, #3b82f69e 46%, #fb923c85 100%);--recommend-bg-hover:linear-gradient(128deg, #e879f9c7 0%, #38bdf8d1 44%, #fb923cbd 100%);--recommend-bg-active:linear-gradient(128deg, #f0abfce6 0%, #60a5faeb 42%, #fdba74db 100%);--recommend-text:linear-gradient(118deg, #fdf4ff 0%, #e0f2fe 48%, #ffedd5 100%);--recommend-text-shimmer:linear-gradient(118deg, #fdf4ff 0%, #e0f2fe 22%, #fff 46%, #e0f2fe 68%, #ffedd5 100%);--recommend-nav-text:linear-gradient(128deg, #f0abfc 0%, #60a5fa 42%, #fdba74 100%);--recommend-nav-text-shimmer:linear-gradient(128deg, #f0abfc 0%, #93c5fd 20%, #fff 42%, #60a5fa 62%, #fdba74 100%);--body-glow:rgba(var(--accent-rgb), .08);--hover-overlay:#ffffff0a;--header-bg:#0a0c10d9;--scrim:#0a0c10b8;--scrim-strong:#0a0c10eb;--chrome-bg:#0a0c10f0;--shadow:0 8px 32px #00000073;--shadow-sm:0 2px 8px #0000004d;--color-scheme:dark}[data-theme=dim]{--bg-base:#1c1e24;--bg-elevated:#24272f;--bg-surface:#2a2d36;--bg-hover:#343844;--bg-input:#22252d;--border:#3d4250;--border-subtle:#323642;--text-primary:#e6e8ee;--text-secondary:#a0a8b8;--text-muted:#6d7588;--accent:#8b9cf7;--accent-hover:#a8b4ff;--accent-rgb:139, 156, 247;--accent-soft:rgba(var(--accent-rgb), .16);--read:#6ee7a0;--read-soft:#6ee7a024;--want:#7eb6f5;--want-soft:#7eb6f524;--reject:#f0a0a0;--reject-soft:#f0a0a024;--reading:#c9a0f5;--reading-soft:#c9a0f529;--dnf:#fcd34d;--dnf-soft:#fcd34d29;--body-glow:rgba(var(--accent-rgb), .07);--hover-overlay:#ffffff0d;--header-bg:#1c1e24e6;--scrim:#12141ab8;--scrim-strong:#12141aeb;--chrome-bg:#1c1e24f0;--shadow:0 8px 28px #00000059;--shadow-sm:0 2px 8px #00000038;--color-scheme:dark}[data-theme=light]{--bg-base:#f5f6f8;--bg-elevated:#fff;--bg-surface:#fff;--bg-hover:#eef0f4;--bg-input:#f0f2f6;--border:#d0d5de;--border-subtle:#e2e5ec;--text-primary:#1a1d26;--text-secondary:#5a6478;--text-muted:#8b94a7;--accent:#4f6ef7;--accent-hover:#3b5ae8;--accent-rgb:79, 110, 247;--accent-soft:rgba(var(--accent-rgb), .1);--read:#16a34a;--read-soft:#16a34a1a;--want:#2563eb;--want-soft:#2563eb1a;--reject:#dc2626;--reject-soft:#dc26261a;--reading:#7c3aed;--reading-soft:#7c3aed1a;--dnf:#d97706;--dnf-soft:#d977061f;--body-glow:rgba(var(--accent-rgb), .06);--hover-overlay:#0f172a0a;--header-bg:#f5f6f8e6;--scrim:#0f172a8c;--scrim-strong:#0f172abf;--chrome-bg:#fffffff0;--shadow:0 8px 28px #0f172a14;--shadow-sm:0 2px 8px #0f172a0f;--color-scheme:light}[data-theme=mist]{--bg-base:#e8eef4;--bg-elevated:#f0f4f8;--bg-surface:#f4f7fa;--bg-hover:#dde5ee;--bg-input:#e4ebf2;--border:#c5d0dc;--border-subtle:#d5dee8;--text-primary:#243040;--text-secondary:#5a6b7d;--text-muted:#8494a6;--accent:#5a7d9a;--accent-hover:#456885;--accent-rgb:90, 125, 154;--accent-soft:rgba(var(--accent-rgb), .12);--read:#2f9e6b;--read-soft:#2f9e6b1f;--want:#4a90b8;--want-soft:#4a90b81f;--reject:#c45c5c;--reject-soft:#c45c5c1f;--reading:#7a6aad;--reading-soft:#7a6aad1f;--dnf:#c27820;--dnf-soft:#c2782024;--body-glow:rgba(var(--accent-rgb), .08);--hover-overlay:#2430400d;--header-bg:#e8eef4eb;--scrim:#2430408c;--scrim-strong:#243040bf;--chrome-bg:#f0f4f8f0;--shadow:0 8px 28px #24304014;--shadow-sm:0 2px 8px #2430400d;--color-scheme:light}[data-theme=pastel]{--bg-base:#f3eef8;--bg-elevated:#f8f4fc;--bg-surface:#fbf8fe;--bg-hover:#ebe3f5;--bg-input:#f0eaf8;--border:#d4c8e4;--border-subtle:#e4daf0;--text-primary:#2d2540;--text-secondary:#6b5f82;--text-muted:#9689ad;--accent:#9b7ed9;--accent-hover:#8666cc;--accent-rgb:155, 126, 217;--accent-soft:rgba(var(--accent-rgb), .14);--read:#4aad7a;--read-soft:#4aad7a24;--want:#6a9fd4;--want-soft:#6a9fd424;--reject:#d47878;--reject-soft:#d4787824;--reading:#9b7ed9;--reading-soft:#9b7ed924;--dnf:#d4a017;--dnf-soft:#d4a01729;--body-glow:rgba(var(--accent-rgb), .1);--hover-overlay:#2d25400d;--header-bg:#f3eef8eb;--scrim:#2d25408c;--scrim-strong:#2d2540bf;--chrome-bg:#f8f4fcf0;--shadow:0 8px 28px #2d254014;--shadow-sm:0 2px 8px #2d25400d;--color-scheme:light}[data-theme=pink]{--bg-base:#ffe4f0;--bg-elevated:#fff0f7;--bg-surface:#fff5fa;--bg-hover:#ffd6ea;--bg-input:#ffeaf4;--border:#f5b0d4;--border-subtle:#f9cce4;--text-primary:#5a1a3a;--text-secondary:#a04570;--text-muted:#c4789c;--accent:#ff4da6;--accent-hover:#ff2d95;--accent-rgb:255, 77, 166;--accent-soft:rgba(var(--accent-rgb), .16);--read:#3ecf8e;--read-soft:#3ecf8e29;--want:#5a9fe0;--want-soft:#5a9fe024;--reject:#ff5c8a;--reject-soft:#ff5c8a29;--reading:#c07ae0;--reading-soft:#c07ae024;--dnf:#e8a0c0;--dnf-soft:#ff8cb42e;--body-glow:rgba(var(--accent-rgb), .14);--hover-overlay:#5a1a3a0d;--header-bg:#ffe4f0eb;--scrim:#5a1a3a8c;--scrim-strong:#5a1a3abf;--chrome-bg:#fff0f7f0;--shadow:0 8px 28px #ff4da629;--shadow-sm:0 2px 8px #ff4da61f;--color-scheme:light}:root{--radius:12px;--radius-sm:8px;--radius-pill:999px;--env-local:#dc2626;--env-dev:#ea580c;--env-banner-height:0px;--z-toast:15000;color:var(--text-primary);background:var(--bg-base);color-scheme:var(--color-scheme);font-family:DM Sans,system-ui,sans-serif;line-height:1.5}html[data-env-banner]{--env-banner-height:calc(1.375rem + env(safe-area-inset-top,0px))}.env-banner{z-index:14000;box-sizing:border-box;min-height:var(--env-banner-height);padding:.2rem .75rem;padding-top:max(.2rem, env(safe-area-inset-top,0px));letter-spacing:.14em;text-transform:uppercase;color:#fff;pointer-events:none;justify-content:center;align-items:center;font-size:.68rem;font-weight:750;line-height:1;display:flex;position:fixed;top:0;left:0;right:0}.env-banner[data-deploy-env=local]{background:var(--env-local)}.env-banner[data-deploy-env=dev]{background:var(--env-dev)}body{padding-top:var(--env-banner-height);background:radial-gradient(ellipse 80% 50% at 50% -20%, var(--body-glow), transparent), var(--bg-base);margin:0;transition:background-color .2s,color .2s}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}.app-shell{min-height:calc(100vh - var(--env-banner-height));box-sizing:border-box;flex-direction:column;width:100%;min-width:0;max-width:960px;margin:0 auto;padding:0 1.5rem 2rem;display:flex}.pull-to-refresh-root{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative}.pull-to-refresh-indicator{pointer-events:none;justify-content:center;align-items:flex-end;transition:height .12s ease-out;display:flex;overflow:hidden}.pull-to-refresh-indicator.is-visible{padding-bottom:.35rem}.pull-to-refresh-label{letter-spacing:.02em;color:var(--text-secondary);font-size:.75rem;font-weight:500}.pull-to-refresh-indicator.is-refreshing .pull-to-refresh-label{color:var(--accent)}.pull-to-refresh-content{flex-direction:column;flex:auto;min-height:0;display:flex}.app-main{flex:auto;padding-bottom:2rem}.app-footer{border-top:1px solid var(--border-subtle);text-align:center;flex-shrink:0;margin-top:auto;padding:1.25rem 0 .5rem}.app-footer-about{color:var(--text-muted);margin:0 0 .35rem;font-size:.8125rem;line-height:1.45}.app-footer-brand{justify-content:center;align-items:center;gap:.55rem;margin:0 0 .55rem;display:flex}.app-footer-tagline{color:var(--text-secondary);letter-spacing:.01em;font-size:.9rem;font-weight:500}.app-footer-copy{color:var(--text-muted);opacity:.85;flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem .45rem;margin:0;font-size:.75rem;display:flex}.app-footer-dot{opacity:.7}.app-footer-report{appearance:none;font:inherit;color:var(--text-secondary);cursor:pointer;text-underline-offset:.15em;background:0 0;border:0;padding:0;text-decoration:underline}.app-footer-report:hover,.app-footer-report:focus-visible{color:var(--accent)}.app-footer-build{color:var(--text-muted);opacity:.8;font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem .45rem;margin:.35rem 0 0;font-size:.6875rem;line-height:1.4;display:flex}.app-footer-tiles{color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;gap:.5rem;margin:0 0 .65rem;font-size:.9rem;font-weight:600;display:flex}.app-footer-tiles input{width:1.15rem;height:1.15rem;accent-color:var(--accent);cursor:pointer;margin:0}.app-footer-build-sha{color:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;text-decoration:none}a.app-footer-build-sha:hover,a.app-footer-build-sha:focus-visible{color:var(--accent);text-underline-offset:.15em;text-decoration:underline}.report-issue-root{z-index:10020;pointer-events:none;position:fixed;inset:0}.report-issue-backdrop{pointer-events:auto;cursor:pointer;background:#04060a8c;position:absolute;inset:0}.report-issue-card{pointer-events:auto;background:var(--bg-elevated);border:1px solid var(--border);width:min(440px,100vw - 2rem);max-height:calc(100vh - 2rem);color:var(--text-primary);z-index:1;border-radius:14px;padding:1.15rem 1.25rem 1rem;position:absolute;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 18px 50px #00000073}.report-issue-heading{letter-spacing:-.02em;margin:0 0 .5rem;font-size:1.15rem;font-weight:650}.report-issue-body{color:var(--text-secondary);margin:0 0 .75rem;font-size:.95rem;line-height:1.45}.report-issue-label{color:var(--text-muted);margin:.65rem 0 .3rem;font-size:.82rem;display:block}.report-issue-kind{border:0;flex-wrap:wrap;gap:.75rem 1rem;margin:0;padding:0;display:flex}.report-issue-kind legend{padding:0}.report-issue-kind-option{color:var(--text-primary);align-items:center;gap:.35rem;font-size:.9rem;display:inline-flex}.report-issue-input,.report-issue-textarea{box-sizing:border-box;border:1px solid var(--border);background:var(--bg-input);width:100%;color:inherit;font:inherit;border-radius:.4rem;padding:.45rem .6rem}.report-issue-textarea{resize:vertical;min-height:7rem;line-height:1.45}.report-issue-page{color:var(--text-muted);word-break:break-all;margin:.5rem 0 0;font-size:.75rem}.report-issue-error{color:var(--reject);margin:.55rem 0 0;font-size:.85rem}.report-issue-actions{align-items:center;gap:.6rem;margin-top:.9rem;display:flex}.app-header{border-bottom:1px solid var(--border-subtle);top:var(--env-banner-height);z-index:40;background:var(--header-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex-direction:column;gap:.65rem;margin-bottom:2rem;padding:1rem 0 1.15rem;display:flex;position:sticky}.app-header-top{justify-content:space-between;align-items:center;gap:.75rem 1rem;min-width:0;display:flex}.app-header-top-start{flex:auto;align-items:center;gap:.55rem;min-width:0;display:flex}.app-back{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--accent-soft);min-height:2.15rem;color:var(--accent);font:inherit;letter-spacing:.01em;cursor:pointer;flex:none;align-items:center;gap:.35rem;margin:0;padding:.4rem .85rem .4rem .65rem;font-size:.92rem;font-weight:650;line-height:1.2;text-decoration:none;display:inline-flex}.app-back:hover{background:var(--accent);color:var(--bg,#0f1115);border-color:var(--accent)}.app-back:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-header-bar{flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;min-width:0;display:flex}.impersonation-banner{border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:.75rem;padding:.45rem .75rem;font-size:.85rem;font-weight:550;line-height:1.3;display:flex}.impersonation-banner-read{background:var(--accent-soft);color:var(--accent);border:1px solid rgba(var(--accent-rgb), .35)}.impersonation-banner-write{color:var(--recommend-hot);background:#fb923c29;border:1px solid #fb923c66}.impersonation-banner-stop{color:inherit;background:0 0;border-color:currentColor;flex:none;padding:.25rem .65rem;font-size:.8rem}.impersonation-banner-stop:hover:not(:disabled){background:var(--hover-overlay);color:inherit}.app-brand{flex:none;align-items:center;min-width:0;margin:0;display:flex}.app-header-search{z-index:2;width:100%;min-width:0;position:relative}.app-brand-link,.app-brand a{color:inherit;align-items:center;gap:.65rem;min-width:0;text-decoration:none;display:flex}.app-brand-tagline{letter-spacing:.01em;color:var(--text-secondary);white-space:nowrap;font-size:.92rem;font-weight:500;line-height:1.2}@media (width<=720px){.app-brand-tagline{display:none}}.tattersail-logo{object-fit:contain;flex-shrink:0;width:auto;display:block}.tattersail-logo-header{height:4.7rem}.tattersail-logo-footer{height:2.4rem}.tattersail-logo-hero{width:min(100%,26rem);height:auto;margin:0 auto}.app-nav{flex-wrap:wrap;flex:auto;align-items:center;gap:.35rem;min-width:0;display:flex}.nav-more{position:relative}.nav-more-toggle{cursor:pointer;font:inherit;background:0 0;border:0}.nav-more-menu{z-index:40;border:1px solid var(--border);border-radius:var(--radius-sm,.5rem);background:var(--bg-elevated,var(--bg-surface));flex-direction:column;gap:.15rem;min-width:13.5rem;padding:.35rem;display:flex;position:absolute;top:calc(100% + .35rem);left:0;box-shadow:0 12px 32px #00000047}.nav-more-menu .nav-link{justify-content:flex-start;width:100%}.nav-more-menu-hidden{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.ux-preview-banner{border:1px dashed var(--border);border-radius:var(--radius-sm,.5rem);background:var(--bg-surface);flex-wrap:wrap;align-items:center;gap:.45rem .75rem;margin:0 0 .35rem;padding:.35rem .55rem;font-size:.78rem;display:flex}.ux-preview-banner-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:650}.ux-preview-banner-stages{flex-wrap:wrap;gap:.3rem;display:flex}.ux-preview-stage{border:1px solid var(--border);color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:.15rem .55rem;font-size:.78rem}.ux-preview-stage.is-active{background:var(--accent-soft);border-color:var(--accent);color:var(--text-primary)}.ux-preview-banner-dot{color:var(--text-muted)}.tip-toast{right:1.1rem;bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));z-index:var(--z-toast);border-radius:var(--radius-sm,.5rem);background:var(--bg-elevated,var(--bg-surface));max-width:min(22rem,100vw - 2rem);color:var(--text-primary);border:1px solid var(--border);flex-direction:column;align-items:stretch;gap:.45rem;padding:.75rem .9rem .55rem;transition:opacity .3s,transform .3s;display:flex;position:fixed;box-shadow:0 10px 28px #00000047}.tip-toast.is-fading{opacity:0;transform:translateY(.35rem)}.tip-toast-main{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:.2rem;margin:0;padding:0;display:flex}.tip-toast-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:.68rem;font-weight:700}.tip-toast-title{font-size:.95rem;font-weight:650}.tip-toast-body{color:var(--text-secondary);font-size:.82rem;line-height:1.4}.tip-toast-disable{color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0;align-self:flex-start;margin:0;padding:0;font-size:.75rem;text-decoration:underline}.tour-hint-actions{flex-wrap:wrap;gap:.4rem;margin-top:.15rem;display:flex}.tour-dismiss-all-root{z-index:16000}@media (width<=767px){.tip-toast{max-width:none;left:.75rem;right:.75rem;bottom:calc(4.1rem + env(safe-area-inset-bottom,0px))}}.bundle-update-banner{z-index:10030;right:1.1rem;bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));border-radius:var(--radius-sm,.5rem);background:var(--bg-elevated,var(--bg-surface));max-width:min(22rem,100vw - 2rem);color:var(--text-primary);border:1px solid var(--border);flex-direction:column;gap:.55rem;padding:.85rem 1rem;display:flex;position:fixed;box-shadow:0 10px 28px #00000047}.bundle-update-copy{margin:0;font-size:.88rem;font-weight:600;line-height:1.35}.bundle-update-actions{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.bundle-update-actions .btn{align-items:center;gap:.3rem;display:inline-flex}@media (width<=767px){.bundle-update-banner{max-width:none;left:.75rem;right:.75rem;bottom:calc(4.1rem + env(safe-area-inset-bottom,0px))}}.phone-more-group-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:.35rem .2rem .15rem;font-size:.7rem;font-weight:650}.phone-more-hint{color:var(--text-muted);text-transform:none;letter-spacing:0;margin-left:auto;font-size:.7rem;font-weight:500;display:block}.welcome-intro-actions-stack{flex-wrap:wrap;justify-content:flex-end}.preferences-tour-actions{flex-wrap:wrap;gap:.5rem;display:flex}.preferences-advanced{margin-top:1.25rem}.preferences-advanced-summary{cursor:pointer;color:var(--text-secondary);font-weight:650}.detail-more{margin-top:1.25rem}.detail-more-summary{cursor:pointer;color:var(--text-secondary);margin-bottom:.75rem;font-size:1.05rem;font-weight:650}.detail-more[open] .detail-more-summary{margin-bottom:1rem}.detail-read-as{flex-wrap:wrap;align-items:center;gap:.45rem .85rem;margin:0 0 1rem;display:flex}.detail-main-grid{grid-template-columns:max-content minmax(12rem,1fr) minmax(12rem,.95fr);align-items:start;gap:1.15rem 1.75rem;margin-bottom:.15rem;display:grid}.detail-main-grid.is-reading{grid-template-columns:minmax(0,1.2fr) max-content minmax(12rem,1fr) minmax(11rem,.9fr)}.detail-main-progress{min-width:0}.detail-main-progress .book-actions{margin-top:.75rem}.detail-reading-eta{flex-wrap:wrap;align-items:center;gap:.35rem .9rem;margin-top:.5rem;display:flex}.detail-main-progress .reading-progress{max-width:none}.detail-main-progress>h3{align-items:center;gap:.45rem;margin:0 0 .65rem;font-size:.95rem;font-weight:600;display:flex}.detail-main-stats{align-content:start;margin:0}.detail-main-tags{min-width:0}.detail-main-tags .book-tags{border-top:none;margin-top:0;padding-top:0}.detail-main-tags .book-tags-group:last-of-type{margin-bottom:0}.detail-main-goals{min-width:0}.detail-main-goals .book-reading-goals{border-top:none;margin-top:0;padding-top:0}.detail-main-goals .book-reading-goals-add{max-width:none}.detail-main-goals .book-reading-goals-list{margin-bottom:.5rem}@media (width<=1023px){.detail-main-grid.is-reading{grid-template-columns:max-content minmax(12rem,1fr) minmax(12rem,.95fr)}.detail-main-progress{grid-column:1/-1}}@media (width<=767px){.detail-main-grid,.detail-main-grid.is-reading{grid-template-columns:1fr}.detail-main-progress{grid-column:auto}}.app-header-continue{min-width:0;max-width:min(28rem,52vw);font:inherit;letter-spacing:.01em;color:var(--accent);background:var(--accent-soft);cursor:pointer;border:0;border-radius:999px;flex:0 auto;align-items:center;gap:.4rem;margin-left:auto;padding:.38rem .75rem;font-size:.86rem;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.app-header-continue:hover{background:var(--accent);color:var(--bg,#0f1115);text-decoration:none}.app-header-continue:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-header-continue-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.app-header-continue-title{font-weight:650}.omnibar-wrap{z-index:1;width:100%;min-width:0;max-width:100%;position:relative}.omnibar-input-wrap{box-sizing:border-box;border-radius:var(--radius-sm);background:0 0;border:1px solid #7c8cff6b;width:100%;min-width:0;max-width:100%;transition:border-color .2s,box-shadow .2s}.omnibar-input-wrap:focus-within{border-color:#bfdbfe80;box-shadow:0 0 0 1px #c084fc61,0 0 18px #d946ef4d,0 0 28px #38bdf833}.omnibar-input-wrap .input-icon{color:#7c8cffb8;transition:color .2s,filter .2s}.omnibar-input-wrap:focus-within .input-icon{color:#e0f2fe;filter:drop-shadow(0 0 5px #f0abfca6)}.omnibar-input{width:100%;min-width:0;max-width:100%;color:var(--text-primary);appearance:none;background:0 0;border:none;outline:none;padding:.55rem 2.25rem;font-family:inherit;font-size:.9rem}.omnibar-input::-webkit-search-decoration{-webkit-appearance:none}.omnibar-input::-webkit-search-cancel-button{-webkit-appearance:none}.omnibar-input::placeholder{color:var(--text-muted)}.omnibar-input:focus{outline:none}.omnibar-pending{color:#f0abfcd9;position:absolute;top:50%;right:.65rem;transform:translateY(-50%)}.omnibar-tag-badge{border-radius:var(--radius-pill);color:#93c5fd;letter-spacing:.02em;text-transform:uppercase;pointer-events:none;background:#4a7fd438;padding:.12rem .4rem;font-size:.65rem;font-weight:600;position:absolute;top:50%;right:.55rem;transform:translateY(-50%)}.omnibar-tag-suggestions{z-index:40;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--surface-elevated,var(--bg-elevated,#1a1d27));max-height:16rem;margin:0;padding:.25rem;list-style:none;position:absolute;top:calc(100% + .25rem);left:0;right:0;overflow-y:auto;box-shadow:0 10px 28px #00000059}.omnibar-tag-suggestion{border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:.75rem;margin:0;padding:.45rem .55rem;font-size:.875rem;display:flex}.omnibar-tag-suggestion:hover,.omnibar-tag-suggestion-active{background:#7c8cff24}.omnibar-tag-suggestion-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.omnibar-tag-suggestion .book-tag-kind{flex-shrink:0}.all-page-search-mode .all-library-tier{margin-bottom:1.25rem}.all-page-search-mode .catalog-results-section{border-top:1px solid var(--border-subtle);padding-top:.25rem}.shelves-layout{flex-direction:column;gap:1rem;display:flex}.shelves-tab-bar{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;gap:.35rem;padding-bottom:.25rem;display:flex}.shelves-tab{color:var(--text-muted);border:1px solid #0000;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .75rem;font-size:.88rem;text-decoration:none;display:inline-flex}.shelves-tab:hover{color:var(--text-primary,#e8ecf2);background:#ffffff0a}.shelves-tab-active{color:var(--text-primary,#e8ecf2);border-color:var(--border-subtle);background:#ffffff0f}.search-tier{margin-top:1.25rem}.search-tier-title{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0 0 .65rem;font-size:.78rem;font-weight:600}.search-tier-more{margin:.5rem 0 0;font-size:.85rem}.btn-linkish{color:var(--accent,#7eb6ff);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.nav-link{border-radius:var(--radius-sm);color:var(--text-secondary);align-items:center;gap:.45rem;padding:.45rem .85rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.nav-link:hover{background:var(--bg-hover);color:var(--text-primary);text-decoration:none}.nav-link.active{background:var(--accent-soft);color:var(--accent)}.nav-link-recommend{isolation:isolate;background-color:#0000;background-image:var(--recommend-nav-text-shimmer);color:#0000;-webkit-text-fill-color:transparent;box-shadow:none;background-size:220% 100%;-webkit-background-clip:text;background-clip:text;animation:5.5s ease-in-out infinite recommendNavTextShimmer;position:relative}.nav-link-recommend:before{content:"";border-radius:inherit;z-index:-1;opacity:0;background:var(--recommend-bg-active);transition:opacity .15s;position:absolute;inset:0;box-shadow:inset 0 1px #ffffff38,0 0 0 1px #bfdbfe73,0 0 26px #d946ef6b,0 0 40px #38bdf847}.nav-link-recommend svg{color:#60a5fa;-webkit-text-fill-color:currentColor;animation:5.5s ease-in-out infinite recommendNavIconShimmer}.nav-link-recommend:hover{background-color:#0000;background-image:var(--recommend-nav-text-shimmer);color:#0000;-webkit-text-fill-color:transparent;background-size:220% 100%;-webkit-background-clip:text;background-clip:text;animation-duration:3.8s}.nav-link-recommend.active{color:#fff;-webkit-text-fill-color:#fff;background-image:none;background-size:auto;-webkit-background-clip:border-box;background-clip:border-box;animation:none}.nav-link-recommend.active:before{opacity:1}.nav-link-recommend:hover svg{color:#93c5fd;filter:drop-shadow(0 0 5px #60a5fa73)}.nav-link-recommend.active svg,.nav-link-recommend.active:hover svg{color:#fff;filter:drop-shadow(0 0 4px #ffffff59);animation:none}@keyframes recommendNavTextShimmer{0%,to{background-position:0%}50%{background-position:100%}}@keyframes recommendNavIconShimmer{0%,to{opacity:.88;filter:drop-shadow(0 0 2px #e0f2fe59)}50%{opacity:1;filter:drop-shadow(0 0 7px #fdf4ffa6)}}@media (prefers-reduced-motion:reduce){.nav-link-recommend:not(.active){background-image:var(--recommend-nav-text);background-position:0%;background-size:auto;animation:none}.nav-link-recommend:not(.active) svg{animation:none}}.nav-link-read{color:var(--read)}.nav-link-read:hover{color:var(--read);background:var(--read-soft)}.nav-link-read.active{background:var(--read-soft);color:var(--read)}.nav-link-reading{color:var(--reading)}.nav-link-reading:hover{color:var(--reading);background:var(--reading-soft)}.nav-link-reading.active{background:var(--reading-soft);color:var(--reading)}.nav-link-want{color:var(--want)}.nav-link-want:hover{color:var(--want);background:var(--want-soft)}.nav-link-want.active{background:var(--want-soft);color:var(--want)}.nav-link-all{color:var(--text-secondary)}.nav-link-all:hover{color:var(--accent);background:var(--accent-soft)}.nav-link-all.active{background:var(--accent-soft);color:var(--accent)}.nav-count{border-radius:var(--radius-pill);border:1px solid #0000;justify-content:center;align-items:center;min-width:1.35rem;height:1.35rem;padding:0 .4rem;font-size:.72rem;font-weight:700;line-height:1;display:inline-flex}.nav-count-read{background:var(--read-soft);color:var(--read);border-color:#4ade8040}.nav-count-want{background:var(--want-soft);color:var(--want);border-color:#60a5fa40}.nav-count-reading{background:var(--reading-soft);color:var(--reading);border-color:#c084fc40}.nav-count-dnf{background:var(--dnf-soft);color:var(--dnf);border-color:#fbbf244d}.nav-count-filtering{opacity:.55}.badge{background:var(--accent);color:#0f1220;border-radius:var(--radius-pill);justify-content:center;align-items:center;min-width:1.25rem;height:1.25rem;padding:0 .35rem;font-size:.7rem;font-weight:700;display:inline-flex}.page h2{letter-spacing:-.02em;align-items:center;gap:.5rem;margin:0 0 .25rem;font-size:1.5rem;font-weight:700;display:flex}.page-icon{border-radius:var(--radius-sm);background:var(--accent-soft);width:2rem;height:2rem;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.page-icon-read{background:var(--read-soft);color:var(--read)}.page-icon-reading{background:var(--reading-soft);color:var(--reading)}.page-icon-want{background:var(--want-soft);color:var(--want)}.page-icon-all{background:var(--accent-soft);color:var(--accent)}.page-title-read{color:var(--read)}.page-title-reading{color:var(--reading)}.page-title-want{color:var(--want)}.page-title-all{color:var(--accent)}.shelf-status-badge{border-radius:var(--radius-sm);flex-shrink:0;align-items:center;gap:.2rem;padding:.1rem .4rem;font-size:.68rem;font-weight:600;display:inline-flex}.shelf-status-read{background:var(--read-soft);color:var(--read)}.shelf-status-reading{background:var(--reading-soft);color:var(--reading)}.shelf-status-want{background:var(--want-soft);color:var(--want)}.shelf-status-dnf{background:var(--dnf-soft);color:var(--dnf)}.shelf-status-rejected{background:var(--reject-soft);color:var(--reject)}.page-desc{color:var(--text-secondary);margin:0 0 1.25rem;font-size:.95rem}.page-header-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.filters{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.input-wrap{flex:1;align-items:center;min-width:min(100%,10rem);max-width:100%;display:flex;position:relative}.input-wrap-grow{flex:2;min-width:min(100%,14rem);max-width:100%}.input-wrap.omnibar-input-wrap{min-width:0}.input-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:.7rem}.input-wrap input{width:100%;padding:.55rem .75rem .55rem 2.25rem}.filters input,.filters select,.seed-form input[type=text],.seed-form select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);padding:.55rem .75rem;font-family:inherit;font-size:.9rem;transition:border-color .15s,box-shadow .15s}.filters input:focus,.filters select:focus,.seed-form input:focus,.seed-form select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.filters select{cursor:pointer;padding-right:2rem}.select-wrap{align-items:center;display:flex;position:relative}.select-wrap .input-icon{pointer-events:none;left:auto;right:.65rem}.filter-checkbox{color:var(--text-secondary);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);align-items:center;gap:.45rem;padding:.45rem .75rem;font-size:.85rem;transition:border-color .15s,background .15s;display:inline-flex}.filter-checkbox:hover{background:var(--bg-hover)}.filter-checkbox input{cursor:pointer;min-width:0;accent-color:var(--accent);flex:none;margin:0}.filters-with-action{align-items:center}.library-view-tabs{border:0;border-bottom:1px solid var(--border-subtle);background:0 0;border-radius:0;flex-wrap:wrap;align-items:center;gap:.25rem;width:fit-content;max-width:100%;margin-bottom:1.25rem;padding:0 0 .45rem;display:flex}.library-view-tabs .btn-tab,.btn-tab{border-radius:var(--radius-pill);color:var(--text-secondary);box-shadow:none;background:0 0;border:1px solid #0000;align-items:center;gap:.4rem;padding:.3rem .7rem;font-size:.85rem;font-weight:600;line-height:1.2;display:inline-flex}.library-view-tabs .btn-tab:hover:not(:disabled),.btn-tab:hover:not(:disabled){color:var(--text-primary);background:var(--bg-hover);border-color:#0000}.library-view-tabs .btn-tab-active,.btn-tab-active{background:var(--text-primary)!important;color:var(--bg-base)!important;border-color:var(--text-primary)!important}.library-view-tabs .btn-tab-active:hover:not(:disabled),.btn-tab-active:hover:not(:disabled){filter:brightness(1.06);background:var(--text-primary)!important;color:var(--bg-base)!important;border-color:var(--text-primary)!important}.library-breadcrumb{color:var(--text-secondary);align-items:center;gap:.35rem;margin:0 0 .75rem;font-size:.9rem;display:flex}.link-button{color:var(--accent);font:inherit;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:.3rem;margin:-.25rem -.5rem;padding:.25rem .5rem;font-size:.9rem;transition:background .15s;display:inline-flex}.link-button:hover{background:var(--accent-soft)}.author-list .author-row{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit}.author-list .author-row:hover{border-color:var(--accent);background:var(--bg-hover)}.seed-panel{margin-bottom:1.25rem}.seed-panel h3{align-items:center;gap:.45rem;margin:0 0 .35rem;font-size:1rem;display:flex}.seed-form{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.seed-form input[type=text]{flex:1;min-width:14rem}.book-list{margin:0;padding:0;list-style:none}.book-row{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);color:inherit;grid-template-columns:1fr auto;gap:.25rem 1rem;margin-bottom:.5rem;padding:.85rem 1rem;text-decoration:none;transition:border-color .15s,background .15s,box-shadow .15s;display:grid}.book-row:hover{border-color:var(--border);background:var(--bg-hover);box-shadow:var(--shadow-sm);text-decoration:none}.book-title{grid-column:1;font-weight:600}.book-author{color:var(--text-secondary);grid-column:1}.book-meta{color:var(--text-muted);grid-area:1/2/span 2;align-self:center;font-size:.8rem}.book-solid{display:contents}.book-cover{border-radius:var(--radius-sm);background:var(--bg-elevated);border:1px solid var(--border-subtle);--book-depth:8px;--book-rest-y:-14deg;--book-rest-x:4deg;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.book-cover img,.book-cover-img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.book-cover-img.recommend-cover-pending{opacity:0}.book-cover-img.recommend-cover-loaded{opacity:1;transition:opacity .3s,transform .3s;animation:.3s recommendCoverSnap;transform:scale(1)}@keyframes recommendCoverSnap{0%{transform:scale(1.02)}to{transform:scale(1)}}.book-cover-sm{--book-depth:7px;--book-rest-y:-14deg;--book-rest-x:4deg;width:2.5rem;height:3.5rem}.book-cover-md{--book-depth:10px;--book-rest-y:-18deg;--book-rest-x:5deg;width:3.25rem;height:4.75rem}.search-list .book-cover-md,.shelf-list .book-cover-md{width:6.5rem;height:9.5rem}.book-cover-lg{--book-depth:14px;--book-rest-y:-22deg;--book-rest-x:6deg;width:5.5rem;height:8rem}.book-cover-fallback{width:100%;height:100%;color:var(--text-muted);background:var(--bg-hover);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.book-card,.shelf-list .shelf-item,.search-list .search-item{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);opacity:1;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;max-height:12rem;margin-bottom:.5rem;padding:.85rem 1rem;transition:opacity .2s,max-height .2s,margin .2s,padding .2s,border-color .15s,background .15s;display:flex;overflow:hidden}.shelf-list .shelf-item:hover,.search-list .search-item:hover{border-color:var(--border);background:var(--bg-hover)}.search-list .search-item,.shelf-list .book-card{align-items:flex-start;max-height:none}.want-order-hint{margin:0 0 .75rem;font-size:.85rem}.want-queue-summary{margin-bottom:.75rem}.want-queue-summary .count{margin-bottom:.35rem}.want-queue-pace{flex-wrap:wrap;align-items:center;gap:.35rem;margin:0;font-size:.8rem;display:flex}.want-book-length,.want-book-completion{align-items:center;gap:.25rem;display:inline-flex}.want-order-list .want-order-item{cursor:default}.want-order-list .want-order-item.want-order-dragging{opacity:.55}.want-order-list .want-order-item.want-order-drop-target{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.want-order-rank{color:var(--text-muted);text-align:center;flex:0 0 1.5rem;font-size:.8rem;font-weight:600}.want-order-grip{color:var(--text-muted);cursor:grab;touch-action:none;flex:none;align-items:center;margin-right:-.25rem;padding:.25rem .15rem;display:flex}.want-order-grip:active{cursor:grabbing}.want-order-grip[draggable=true]{cursor:grab}.want-order-grip svg{pointer-events:none}.want-row-trailing{flex-direction:column;flex:none;align-items:flex-end;gap:.35rem;min-width:0;display:flex}.want-goal-filter{flex-wrap:wrap;align-items:center;gap:.45rem;min-width:0;display:inline-flex}.want-goal-filter-label{color:var(--text-secondary,#78716c);white-space:nowrap;font-size:.8rem;font-weight:600}.want-goal-filter-pills{background:0 0;border:0;flex-wrap:wrap;align-items:center;gap:.35rem;padding:0;display:inline-flex}.want-goal-filter-pill{font:inherit;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-surface,var(--bg-elevated));color:var(--text-secondary);cursor:pointer;white-space:nowrap;padding:.2rem .55rem;font-size:.75rem;font-weight:600;line-height:1.2;transition:background .15s,color .15s,border-color .15s}.want-goal-filter-pill:hover{color:var(--text-primary);border-color:var(--text-muted);background:var(--bg-hover)}.want-goal-filter-pill.is-active{background:var(--text-primary);color:var(--bg-base);border-color:var(--text-primary);box-shadow:none}.want-goal-filter-pill.is-active:hover{background:var(--text-primary);color:var(--bg-base);border-color:var(--text-primary);filter:brightness(1.06)}.want-goal-filter-pill:focus-visible{outline:2px solid var(--focus-ring,var(--accent));outline-offset:2px}.want-order-actions{flex-direction:column;flex:none;gap:.15rem;display:flex}.shelf-item-exit{opacity:0;pointer-events:none;border-width:0;max-height:0;margin-bottom:0;padding-top:0;padding-bottom:0}.shelf-cover-link{color:inherit;flex:none;text-decoration:none}.shelf-cover-link:hover{opacity:.92}.shelf-item-text,.search-item-text{flex:0 16rem;min-width:10rem;max-width:24rem}.book-row-blurb{min-width:5rem;max-width:22rem;color:var(--text-secondary);-webkit-line-clamp:3;-webkit-box-orient:vertical;flex:8rem;align-self:center;margin:0;padding:0 .25rem;font-size:.8rem;line-height:1.35;display:-webkit-box;overflow:hidden}.book-row-blurb-placeholder{visibility:hidden;min-height:0;padding:0;display:block}.book-card .book-actions,.book-card .search-item-actions{flex:none;align-self:center}.search-item-actions{flex-direction:column;align-items:flex-end;gap:.35rem;display:flex}.shelf-item-text .book-title,.search-item-text .book-title{display:block}.search-title-btn{text-align:left;cursor:pointer;background:0 0;border:none;width:100%;padding:0}.search-title-btn:disabled{cursor:wait;opacity:.7}.book-actions,.book-actions-group{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.stop-here-sheet{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-panel,var(--bg-input));width:100%;margin-top:.65rem;padding:.75rem .85rem}.stop-here-sheet h3{margin:0 0 .35rem;font-size:.95rem}.stop-here-pct,.stop-here-note{flex-direction:column;gap:.3rem;margin:.65rem 0;font-size:.85rem;display:flex}.stop-here-note textarea{resize:vertical;width:100%;min-height:4.5rem;font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:inherit;padding:.45rem .55rem}.stop-here-actions{flex-wrap:wrap;justify-content:flex-end;gap:.45rem;display:flex}.book-actions-group+.book-actions-group{border-left:1px solid var(--border-subtle);margin-left:.45rem;padding-left:.55rem}.triage-overflow{flex-shrink:0;display:inline-flex;position:relative}.triage-overflow-trigger{border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--bg-input);width:2rem;height:2rem;color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;padding:0;display:inline-flex}.triage-overflow-trigger:hover:not(:disabled){background:var(--bg-hover,var(--scrim));color:var(--text-primary)}.triage-overflow-trigger:disabled{opacity:.45;cursor:not-allowed}.triage-overflow-menu{z-index:12100;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-panel,var(--bg-elevated,var(--bg-input)));min-width:10.5rem;padding:.3rem;position:fixed;box-shadow:0 8px 24px #00000047}.triage-overflow-item{width:100%;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:.35rem;align-items:center;gap:.4rem;padding:.4rem .55rem;font-size:.82rem;display:flex}.triage-overflow-item:hover:not(:disabled){background:var(--bg-hover,var(--scrim))}.triage-overflow-item.is-danger{color:var(--reject)}.triage-overflow-item:disabled{opacity:.5;cursor:not-allowed}.recommend-overflow{z-index:4;position:absolute;top:.5rem;right:.5rem}.recommend-overflow .triage-overflow-trigger{background:var(--scrim);color:var(--text-secondary);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-color:#0000}.similar-cards{grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:.85rem;margin:.85rem 0 0;padding:0;list-style:none;display:grid}.similar-cards .recommend-slot{min-width:0}.dashboard-rec-grid.dashboard-rec-grid-single{grid-template-columns:minmax(0,16.5rem);justify-content:start}.btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-secondary);cursor:pointer;align-items:center;gap:.4rem;padding:.45rem .85rem;font-family:inherit;font-size:.85rem;font-weight:500;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-read{color:var(--read);background:var(--read-soft);border-color:#4ade8059}.btn-read:hover:not(:disabled){color:var(--read);background:#4ade8033}.btn-want{color:var(--want);background:var(--want-soft);border-color:#60a5fa59}.btn-want:hover:not(:disabled){color:var(--want);background:#60a5fa33}.btn-reject{color:var(--reject);background:var(--reject-soft);border-color:#f8717159}.btn-reject:hover:not(:disabled){color:var(--reject);background:#f8717133}.icon-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;transition:background .15s,border-color .15s,color .15s,transform .1s;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary);transform:translateY(-1px)}.icon-btn:active:not(:disabled){transform:translateY(0)}.icon-btn:disabled{opacity:.45;cursor:not-allowed}.icon-btn-md{width:2.1rem;height:2.1rem}.icon-btn-sm{width:1.85rem;height:1.85rem}.icon-btn-labeled{white-space:nowrap;gap:.35rem;width:auto;height:auto;min-height:2.1rem;padding:.35rem .7rem}.icon-btn-labeled.icon-btn-sm{gap:.3rem;min-height:1.85rem;padding:.3rem .55rem}.icon-btn-label{font-size:.78rem;font-weight:600;line-height:1}.icon-btn-read{color:var(--read);background:var(--read-soft);border-color:#4ade8059}.icon-btn-read:hover:not(:disabled){color:var(--read);background:#4ade8038}.icon-btn-want{color:var(--want);background:var(--want-soft);border-color:#60a5fa59}.icon-btn-want:hover:not(:disabled){color:var(--want);background:#60a5fa38}.icon-btn-reject{color:var(--reject);background:var(--reject-soft);border-color:#f8717159}.icon-btn-reject:hover:not(:disabled){color:var(--reject);background:#f8717138}.icon-btn-reading{color:var(--reading);background:var(--reading-soft);border-color:#c084fc59}.icon-btn-reading:hover:not(:disabled){color:var(--reading);background:#c084fc38}.icon-btn-primary{color:var(--accent);background:var(--accent-soft);border-color:#7c8cff66}.icon-btn-primary:hover:not(:disabled){color:var(--accent-hover);background:#7c8cff38}.library-title-row{flex-wrap:wrap;align-items:baseline;gap:.35rem .5rem;display:flex}.epub-read-link{border-radius:var(--radius-sm);color:var(--accent);background:var(--accent-soft);font:inherit;cursor:pointer;vertical-align:middle;border:0;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;text-decoration:none;transition:background .15s,color .15s,transform .12s;display:inline-flex}.epub-read-link:hover{background:var(--accent);color:var(--bg,#0f1115);text-decoration:none;transform:translateY(-1px)}.epub-read-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.epub-read-link-inline{margin-left:.2rem}.library-title-row .epub-read-link-pill{align-self:center}.epub-read-link-pill{letter-spacing:.01em;border-radius:999px;gap:.4rem;width:auto;height:auto;min-height:1.75rem;padding:.4rem .85rem;font-size:.92rem;font-weight:600;line-height:1.2}.detail-title-row .epub-read-link-pill{flex-basis:100%;justify-content:center;max-width:max-content;margin:.5rem 0 0}.epub-read-link-pill svg{width:1rem;height:1rem}.epub-read-link-pill span{white-space:nowrap}.epub-upload-btn-wrap{vertical-align:middle;align-items:center;gap:.2rem;display:inline-flex;position:relative}.epub-upload-btn{border:1px dashed var(--border-strong,var(--border-subtle));border-radius:var(--radius-sm);min-height:1.4rem;color:var(--text-secondary);letter-spacing:.02em;cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;gap:.25rem;padding:.1rem .35rem;font-size:.7rem;font-weight:600;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.epub-upload-btn-icon{width:1.4rem;height:1.4rem;padding:0}.epub-upload-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.epub-upload-btn:disabled{opacity:.7;cursor:wait}.epub-upload-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.epub-upload-btn-inline{margin-left:.2rem}.epub-upload-btn-error{color:var(--danger,#c44);cursor:help;font-size:.75rem;font-weight:700}.dashboard-epub-drop-tile{background:color-mix(in srgb, var(--accent-soft) 35%, var(--bg-surface));border-style:dashed;border-width:1.5px;padding:0}.reader-epub-drop{margin-bottom:1.25rem}.reader-sort{flex-wrap:wrap;align-items:center;gap:.4rem .55rem;margin:0 0 .9rem;font-size:.8rem;display:flex}.reader-sort-label{color:var(--text-muted,#78716c);font-weight:550}.reader-sort-keys{border:1px solid var(--border,#0000001f);border-radius:.3rem;flex-wrap:wrap;display:inline-flex;overflow:hidden}.reader-sort-keys button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:.25rem .55rem}.reader-sort-keys button+button{border-left:1px solid var(--border,#0000001f)}.reader-sort-keys button.is-active{background:var(--bg-hover,#0000000f);font-weight:600}.reader-sort-keys button:hover{background:var(--bg-hover,#0000000a)}.shelf-length-row,.shelf-labels-row{flex-wrap:wrap;align-items:center;gap:.25rem .55rem;display:flex}.shelf-synopsis-cell{flex-direction:column;flex:16rem;align-self:stretch;gap:.4rem;min-width:min(100%,10rem);min-height:0;display:flex}.shelf-synopsis-cell .book-row-blurb-slot{flex:auto;width:100%;max-width:none;min-height:3.4rem}.shelf-synopsis-cell .book-row-blurb{max-width:none}.shelf-synopsis-actions{flex-wrap:wrap;flex:none;gap:.35rem;display:flex}.shelf-file-status{color:var(--text-secondary);flex-wrap:wrap;align-items:baseline;gap:.15rem .7rem;margin-top:.15rem;font-size:.8rem;display:flex}.shelf-file-status button{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;align-items:center;gap:.3rem;padding:0;text-decoration:underline;display:inline-flex}.shelf-file-status button:disabled{color:var(--text-muted);cursor:default;text-decoration:none}.shelf-file-size{font-variant-numeric:tabular-nums;color:var(--text-muted)}.shelf-file-note{color:var(--text-muted);flex-basis:100%;margin:0;font-size:.75rem}.reader-server-storage{border-top:1px solid var(--border);margin-top:1.75rem;padding-top:1.15rem}.reader-server-storage h3{margin:0 0 .65rem;font-size:1rem;font-weight:650}.reader-storage-rows{grid-template-columns:auto minmax(0,1fr);gap:.2rem 1rem;max-width:22rem;margin:0;display:grid}.reader-storage-rows dt{color:var(--text-muted);margin:0}.reader-storage-rows dd{text-align:right;font-variant-numeric:tabular-nums;margin:0}.reader-storage-limit-bar{background:var(--bg-input);border-radius:999px;max-width:22rem;height:.45rem;margin-top:.75rem;overflow:hidden}.reader-storage-limit-bar>span{background:var(--accent);border-radius:inherit;height:100%;display:block}.reader-storage-limit-label{margin:.35rem 0 0;font-size:.85rem}.reader-storage-books{max-width:28rem;margin:.85rem 0 0;padding:0;list-style:none}.reader-storage-book{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:.75rem;padding:.28rem 0;display:flex}.reader-storage-book-title{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.reader-storage-book-size{color:var(--text-muted);font-variant-numeric:tabular-nums;flex:none;font-size:.85rem}.reader-storage-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:0;flex:none;padding:.15rem;display:inline-flex}.reader-storage-remove:hover{color:var(--danger,#e11d48)}.epub-drop-zone{border-radius:inherit;padding:1.25rem 1.15rem 1.35rem}.epub-drop-zone-dragging{background:color-mix(in srgb, var(--accent-soft) 70%, transparent);outline:2px solid var(--accent);outline-offset:-2px}.epub-drop-zone-busy{opacity:.92}.epub-drop-zone-inner{text-align:center;flex-direction:column;align-items:center;gap:.4rem;max-width:32rem;margin:0 auto;display:flex}.epub-drop-zone-icon{background:var(--accent-soft);width:3rem;height:3rem;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.25rem;display:flex}.epub-drop-zone-title{color:var(--text-primary);margin:0;font-size:1.05rem;font-weight:650}.epub-drop-zone-label{color:var(--accent);margin:0;font-size:1.15rem;font-weight:600}.epub-drop-zone-hint{color:var(--text-secondary);margin:.15rem 0 .5rem;font-size:.88rem;line-height:1.4}.epub-drop-zone-browse{margin-top:.15rem}.epub-drop-zone-error{margin:.5rem 0 0;font-size:.85rem}.search-title-row{flex-wrap:wrap;align-items:baseline;gap:.25rem .4rem;display:flex}.dashboard-book-title-row{flex-wrap:wrap;align-items:center;gap:.25rem .35rem;display:inline-flex}.dashboard-book-title-row .epub-read-link-pill{flex-basis:100%;justify-content:center;max-width:max-content;margin-top:.25rem}.library-view-link{border-radius:var(--radius-sm);width:1.75rem;height:1.75rem;color:var(--text-muted);justify-content:center;align-items:center;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.library-view-link:hover{background:var(--accent-soft);color:var(--accent)}.ol-link{border-radius:var(--radius-sm);width:1.5rem;height:1.5rem;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.ol-link:hover{background:var(--accent-soft);color:var(--accent);text-decoration:none}button.ol-link{cursor:pointer;font:inherit;background:0 0;border:0;padding:0}button.ol-link:disabled{opacity:.5;cursor:default}.library-title-row .kind-badge,.shelf-labels-row .kind-badge,.library-title-row .reading-format-badge,.shelf-labels-row .reading-format-badge,.search-title-row .reading-format-badge{border-radius:var(--radius-pill);vertical-align:middle;background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border-subtle);align-items:center;gap:.25rem;padding:.15rem .45rem;font-size:.7rem;font-weight:600;display:inline-flex}.editable-field{display:inline}.editable-field-with-detail{align-items:center;gap:.25rem;max-width:100%;display:inline-flex}.book-title-link{color:var(--text);font-weight:600;text-decoration:none}.book-title-link:hover{color:var(--accent);text-decoration:underline}.editable-field-edit-btn{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:.15rem;display:inline-flex}.editable-field-edit-btn:hover{background:var(--accent-soft);color:var(--accent)}.reading-history-inline{width:100%;margin-top:.15rem;font-size:.8rem;line-height:1.4;display:block}.reading-history-panel{margin-top:0}.detail-section{border-top:1px solid var(--border);box-shadow:none;background:0 0;margin-top:1.25rem;padding-top:1rem}.detail-section>h3,.detail-section .page-header-row h3{align-items:center;gap:.45rem;margin:0 0 .65rem;font-size:.95rem;font-weight:600;display:flex}.detail-section .page-header-row{margin-bottom:.5rem}.detail-section .page-header-row h3{margin-bottom:0}.book-reading-goals-list{flex-wrap:wrap;gap:.4rem;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.book-reading-goal-chip{border:1px solid var(--border-subtle);border-radius:var(--radius-sm,6px);background:0 0;align-items:center;gap:.2rem;max-width:100%;padding:.15rem .2rem .15rem .55rem;display:inline-flex}.book-reading-goal-link{min-width:0;color:var(--accent);align-items:center;gap:.35rem;font-size:.85rem;font-weight:500;text-decoration:none;display:inline-flex}.book-reading-goal-link:hover{text-decoration:underline}.book-reading-goal-complete-flag{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.7rem;font-weight:600}.book-reading-goal-detach{border-radius:var(--radius-sm,6px);width:1.4rem;height:1.4rem;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.book-reading-goal-detach:hover:not(:disabled){color:var(--reject);background:color-mix(in srgb, var(--reject) 12%, transparent)}.book-reading-goal-detach:disabled{opacity:.5;cursor:not-allowed}.book-reading-goals-empty,.book-reading-goals-status{margin:0 0 .65rem;font-size:.85rem}.book-reading-goals-add{flex-direction:column;align-items:stretch;gap:.3rem;max-width:22rem;display:flex}.book-reading-goals-add-label{color:var(--text-secondary);font-size:.8rem;font-weight:600}.book-reading-goals-select{width:100%;max-width:none;padding:.45rem .55rem;font-size:.9rem}.reading-goal-card-focus{outline:2px solid var(--accent);outline-offset:2px}.reading-span-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.reading-span-row{border:1px solid var(--border);background:var(--surface-2,var(--bg));border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem .75rem;padding:.45rem .6rem;display:flex}.reading-span-text{flex-direction:column;gap:.15rem;min-width:0;display:flex}.reading-span-range{font-size:.9rem;font-weight:500}.reading-span-actions{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.reading-span-edit,.reading-span-add{flex-wrap:wrap;align-items:flex-end;gap:.65rem .85rem;width:100%;margin-top:.35rem;display:flex}.reading-span-edit label,.reading-span-add label{color:var(--muted);flex-direction:column;gap:.2rem;font-size:.8rem;display:flex}.book-tags{border-top:1px solid var(--border);margin-top:1.25rem;padding-top:1rem}.book-tags-add-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:.2rem .35rem;display:inline-flex}.book-tags-add-btn:hover{border-color:var(--accent);color:var(--accent)}.book-tags-group{flex-wrap:wrap;align-items:flex-start;gap:.4rem .5rem;margin-bottom:.65rem;display:flex}.book-tags-form-inline{flex:12rem;margin:0}.book-tags-empty-inline{color:var(--text-muted);font-size:.8rem;font-style:italic}.book-tag-kind{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);min-width:4.5rem;font-size:.7rem;font-weight:600}.book-tag-list{flex-wrap:wrap;gap:.35rem;display:flex}.book-tag{border:1px solid var(--border);background:var(--surface-elevated,var(--bg));border-radius:999px;align-items:center;gap:.25rem;padding:.15rem .45rem;font-size:.8rem;display:inline-flex}.book-tag-source{background:#8a8f9818;border-color:#8a8f9855}.book-tag-series{background:#5b8def18;border-color:#5b8def55}.book-tag-subseries{background:#4a7fd422;border-color:#4a7fd455;font-weight:600}.book-tag-genre{background:#6b9e7818;border-color:#6b9e7855}.book-tag-subgenre{background:#b07cc818;border-color:#b07cc855}.book-tag-tag{color:var(--text-primary);background:#e8a83818;border-color:#e8a83855}.book-tag-kind-series{color:#5b8def}.book-tag-kind-subseries{color:#4a7fd4;font-weight:700}.book-tag-kind-genre{color:#6b9e78}.book-tag-kind-subgenre{color:#b07cc8}.book-tag-kind-tag{color:#e8a838}.book-tag-kind-source{color:#8a8f98}.book-tag-remove{color:inherit;opacity:.55;cursor:pointer;background:0 0;border:none;padding:0;display:inline-flex}.book-tag-remove:hover{opacity:1}.tag-manager-page .page-lead{color:var(--text-secondary);max-width:42rem;margin:.35rem 0 1rem;font-size:.9rem}.tag-manager-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.tag-manager-search{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);min-width:10rem;color:var(--text-primary);flex:12rem;padding:.45rem .65rem}.tag-manager-table-wrap{border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.tag-manager-table{border-collapse:collapse;width:100%;font-size:.88rem}.tag-manager-table th,.tag-manager-table td{text-align:left;border-bottom:1px solid var(--border-subtle);vertical-align:middle;padding:.5rem .65rem}.tag-manager-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--bg-elevated);font-size:.72rem}.tag-manager-name,.tag-manager-kind,.tag-manager-parent{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);width:100%;color:var(--text-primary);font-size:inherit;padding:.35rem .5rem}.tag-manager-count{text-align:right;color:var(--text-secondary);white-space:nowrap}.tag-manager-actions{white-space:nowrap;text-align:right}.tag-manager-delete:hover{color:var(--reject)}.tag-manager-message{color:var(--read);margin:0 0 .75rem;font-size:.88rem}.book-tags-form{flex-wrap:wrap;gap:.4rem;margin-top:.5rem;display:flex}.book-tags-form input,.book-tags-form select{font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:inherit;padding:.3rem .5rem}.book-tags-form input{flex:1;min-width:10rem}.tag-name-input{flex:1;min-width:10rem;position:relative}.tag-name-input>input{width:100%}.tag-name-input-hint{color:var(--text-muted);margin-top:.2rem;font-size:.75rem;display:block}.tag-name-suggestions{z-index:30;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);max-height:12rem;margin:0;padding:.25rem 0;list-style:none;position:absolute;top:calc(100% + .2rem);left:0;right:0;overflow-y:auto}.tag-name-suggestion{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .55rem;display:flex}.tag-name-suggestion:hover,.tag-name-suggestion-active{background:var(--accent-soft)}.tag-name-suggestion .book-tag-kind{border-radius:var(--radius-sm);flex-shrink:0;padding:.1rem .35rem;font-size:.68rem}.book-tags-empty{color:var(--text-muted);margin:0;font-size:.85rem}.book-tags-error{color:#c44;margin:.35rem 0 0;font-size:.8rem}.library-count-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;display:flex}.library-select-actions{flex-wrap:wrap;gap:.65rem;font-size:.85rem;display:flex}.book-select-wrap{flex-shrink:0;align-items:center;display:flex}.book-select-checkbox{width:1rem;height:1rem;accent-color:var(--accent);cursor:pointer;margin:0}.book-card-selected{border-color:var(--accent);background:var(--accent-soft)}.bulk-tag-bar{z-index:20;border:1px solid var(--accent);border-radius:var(--radius);background:var(--bg-elevated);box-shadow:var(--shadow);margin-top:1rem;padding:.85rem 1rem;position:sticky;bottom:.75rem}.bulk-tag-bar-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.6rem;display:flex}.bulk-tag-bar-count{color:var(--text-primary);align-items:center;gap:.4rem;font-size:.9rem;font-weight:600;display:inline-flex}.bulk-tag-bar-clear{align-items:center;gap:.25rem;font-size:.85rem;display:inline-flex}.bulk-tag-bar-form{margin-top:0}.bulk-tag-bar-message{color:var(--read);margin:.5rem 0 0;font-size:.85rem}.detail-actions-row{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.editable-field-display{cursor:pointer;border-radius:4px;margin:0 -.15rem;padding:0 .15rem;transition:background .15s}.editable-field-display:hover{background:var(--accent-soft);outline:1px dashed var(--border)}.editable-field-heading{font-size:1.5rem;font-weight:700;line-height:1.3}.editable-field-input{font:inherit;color:inherit;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--bg-input);width:100%;max-width:100%;padding:.2rem .45rem}.editable-field-input.editable-field-heading{font-size:1.5rem;font-weight:700}.editable-field-saving .editable-field-input{opacity:.7}.editable-field-error{color:var(--reject);margin-top:.15rem;font-size:.75rem;display:block}.editable-page-count{align-items:center;gap:.25rem;display:inline-flex}.editable-page-count-input{text-align:right;width:5.5rem}.editable-page-count-suffix{color:var(--muted);font-size:.9em}.editable-page-count-with-edit{gap:.35rem}.editable-word-count{align-items:center;gap:.25rem;display:inline-flex}.editable-word-count-input{text-align:right;width:7rem}.editable-word-count-with-edit{gap:.35rem}.star-rating{touch-action:none;align-items:center;gap:.1rem;display:inline-flex;position:relative}.star-rating-pop{z-index:35;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-primary);font-variant-numeric:tabular-nums;pointer-events:none;border-radius:.35rem;padding:.12rem .4rem;font-size:.75rem;font-weight:650;line-height:1.2;position:fixed;transform:translate(-50%,calc(-100% - .35rem));box-shadow:0 4px 14px #00000047}.star-rating-pop.is-fading{opacity:0;transition:opacity .5s linear}.star-rating-sm{margin-top:.2rem}.star-rating-star{width:1.15em;height:1.15em;line-height:0;display:inline-flex;position:relative}.star-rating-md .star-rating-star{width:1.25em;height:1.25em}.star-rating-icon{flex-shrink:0}.star-rating-empty{color:var(--border)}.star-rating-filled{color:#fbbf24;pointer-events:none;position:absolute;top:0;left:0}.star-rating-half{clip-path:inset(0 50% 0 0)}.star-rating-hit{cursor:pointer;z-index:1;background:0 0;border:none;margin:0;padding:0;position:absolute;inset:-2px}.star-rating-hit:disabled{cursor:wait}.star-rating-saving{opacity:.65;pointer-events:none}.star-rating-hit:hover~.star-rating-empty,.star-rating:hover .star-rating-empty{color:var(--text-muted)}.kind-badge-comic{color:#fca5a5;background:#f871711f;border-color:#f8717140}.kind-badge-novel{color:#86efac;background:#4ade801a;border-color:#4ade8033}.kind-badge-nonfiction{color:#fcd34d;background:#fbbf241a;border-color:#fbbf2433}.kind-badge-drama{color:#c4b5fd;background:#a78bfa1f;border-color:#a78bfa40}.kind-badge-poetry{color:#fdba74;background:#fb923c1a;border-color:#fb923c33}.kind-badge-anthology{color:#93c5fd;background:#60a5fa1a;border-color:#60a5fa33}.kind-badge-novella{color:#6ee7b7;background:#34d3991a;border-color:#34d39933}.kind-badge-short_story{color:#fde047;background:#facc151a;border-color:#facc1533}.kind-filters{flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:1rem;display:flex}.kind-filters-label{color:var(--text-muted);align-items:center;gap:.35rem;margin-right:.25rem;font-size:.85rem;font-weight:600;display:inline-flex}.kind-chip{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-input);color:var(--text-secondary);cursor:pointer;align-items:center;gap:.35rem;padding:.35rem .7rem;font-family:inherit;font-size:.8rem;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.kind-chip:hover{background:var(--bg-hover);color:var(--text-primary)}.kind-chip-active{background:var(--accent-soft);color:var(--accent);border-color:#7c8cff59}.kind-chip-count{opacity:.75;border-radius:var(--radius-pill);background:#ffffff0f;padding:.05rem .35rem;font-size:.72rem}.kind-chip-active .kind-chip-count{opacity:1;background:#7c8cff33}.btn-primary{background:var(--accent-soft);color:var(--accent);border-color:#7c8cff66}.btn-primary:hover:not(:disabled){color:var(--accent-hover);background:#7c8cff38}.action-error{color:var(--reject);font-size:.8rem}.panel{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin:1.25rem 0;padding:1.15rem 1.35rem}.panel h3{align-items:center;gap:.45rem;margin:0 0 .75rem;font-size:1rem;display:flex}.community-share-review .community-share-list{flex-direction:column;gap:.4rem;margin:.75rem 0;padding:0;list-style:none;display:flex}.community-share-review .community-share-list label{cursor:pointer;align-items:center;gap:.5rem;display:flex}.community-share-review .btn-row{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.meta-dl{grid-template-columns:auto 1fr;gap:.35rem 1.25rem;margin:1rem 0;font-size:.9rem;display:grid}.meta-dl dt{color:var(--text-muted);align-items:center;gap:.35rem;font-weight:500;display:flex}.meta-dl .editable-date-field{align-items:center;gap:.35rem;display:inline-flex}.meta-dl .editable-date-field-with-edit{flex-wrap:wrap}.meta-dl .editable-date-display-btn{font:inherit;font-size:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;margin:0 -.15rem;padding:0 .15rem;transition:background .15s}.meta-dl .editable-date-display-btn:hover:not(:disabled){background:var(--accent-soft);outline:1px dashed var(--border)}.meta-dl .editable-date-display-btn:disabled{opacity:.6;cursor:default}.meta-dl .editable-date-field-saving .meta-date-input{opacity:.7}.meta-dl input.meta-date-input{font:inherit;font-size:inherit;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-primary);color-scheme:var(--color-scheme);padding:.15rem .4rem}.meta-dl input.meta-date-input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:none}.meta-dl input.meta-date-input:disabled{opacity:.6}.media-kind-editor{flex-direction:column;gap:.2rem;min-width:0;display:flex}.media-kind-select{font:inherit;color:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input,var(--bg-surface,var(--bg-elevated)));cursor:pointer;max-width:100%;padding:.2rem 1.7rem .2rem .45rem;font-size:.92rem}.media-kind-select:hover:not(:disabled){border-color:var(--text-muted)}.media-kind-select:disabled{opacity:.65;cursor:default}.reading-format-editor{flex-direction:column;gap:.35rem;min-width:0;display:flex}.reading-format-row{flex-wrap:wrap;align-items:center;gap:.4rem .7rem;display:flex}.reading-format-pills{flex-wrap:wrap;gap:.3rem;display:inline-flex}.reading-format-pill{font:inherit;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-surface,var(--bg-elevated));color:var(--text-secondary);cursor:pointer;white-space:nowrap;align-items:center;gap:.28rem;padding:.22rem .55rem;font-size:.78rem;font-weight:600;line-height:1.2;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.reading-format-pill:hover:not(:disabled){color:var(--text-primary);border-color:var(--text-muted);background:var(--bg-hover)}.reading-format-pill.is-active{background:var(--text-primary);color:var(--bg-base);border-color:var(--text-primary)}.reading-format-pill:disabled{opacity:.65;cursor:default}.reading-format-editor-icons{flex-shrink:0}.reading-format-editor-icons .reading-format-row{gap:0}.reading-format-icons{flex-shrink:0;align-items:center;gap:.05rem;display:inline-flex}.reading-format-icon{font:inherit;width:1.45rem;height:1.45rem;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.reading-format-icon:hover:not(:disabled){color:var(--text-primary);background:var(--bg-hover)}.reading-format-icon.is-active{color:var(--bg-base);background:var(--text-primary);border-color:var(--text-primary)}.reading-format-icon:disabled{opacity:.5;cursor:default}.reading-format-audiobook{flex-wrap:wrap;align-items:center;gap:.4rem .55rem;display:inline-flex}.reading-format-field{color:var(--text-muted);flex-direction:row;align-items:center;gap:.2rem;font-size:.75rem;display:inline-flex}.reading-format-input{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);width:5.5rem;color:var(--text-primary);padding:.15rem .4rem;font-size:.9rem}.reading-format-speed{width:3.6rem}.reading-format-suffix{color:var(--text-muted);margin-left:.15rem}.reading-format-hint{color:var(--text-muted);white-space:nowrap;margin:0;font-size:.78rem}.reading-format-badge{border-radius:var(--radius-pill);vertical-align:middle;background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border-subtle);white-space:nowrap;align-items:center;gap:.22rem;padding:.12rem .45rem;font-size:.7rem;font-weight:600;line-height:1.2;display:inline-flex}.reading-format-badge-ebook{color:#93c5fd;background:#60a5fa1a;border-color:#60a5fa38}.reading-format-badge-audiobook{color:#c4b5fd;background:#a78bfa1f;border-color:#a78bfa40}.detail-author{color:var(--text-secondary);margin:0 0 .5rem;font-size:1.1rem}.book-status-line{margin:0 0 .5rem;font-size:.92rem;font-weight:550;line-height:1.4}.book-status-line.is-read{color:var(--read)}.book-status-line.is-reading{color:var(--reading)}.book-status-line.is-want{color:var(--want)}.book-status-line a{color:inherit;text-underline-offset:.15em;text-decoration:underline}.book-status-line a:hover{text-decoration-thickness:2px}.back{margin:0 0 .75rem}.back a{color:var(--text-secondary);border-radius:var(--radius-sm);align-items:center;gap:.35rem;margin:-.3rem -.6rem;padding:.3rem .6rem;font-size:.9rem;transition:background .15s,color .15s;display:inline-flex}.back a:hover{background:var(--bg-hover);color:var(--text-primary)}.muted{color:var(--text-muted)}.count{align-items:center;gap:.35rem;margin:0 0 .75rem;font-size:.85rem;display:flex}.explore-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,11rem),1fr));gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.explore-card{border:1px solid var(--border-subtle);border-radius:var(--radius);background:var(--bg-surface);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;gap:.45rem;padding:1rem;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.explore-card:hover{border-color:var(--accent);background:var(--bg-hover);box-shadow:var(--shadow-sm)}.explore-card-icon{border-radius:var(--radius-sm);background:var(--accent-soft);width:2.5rem;height:2.5rem;color:var(--accent);justify-content:center;align-items:center;display:flex}.series-card .explore-card-icon{background:var(--want-soft);color:var(--want)}.explore-card-title{font-size:.95rem;font-weight:600;line-height:1.3}.explore-card-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.35rem .5rem;font-size:.75rem;display:flex}.series-pos{opacity:.75;font-variant-numeric:tabular-nums;margin-left:.25rem;font-weight:600}.series-pos-standalone,.subseries-pos-standalone{border-radius:var(--radius-pill);font-variant-numeric:tabular-nums;align-items:center;gap:.25rem;margin-top:.15rem;padding:.15rem .45rem;font-size:.75rem;font-weight:600;display:inline-flex}.series-pos-standalone{background:var(--accent-soft);color:var(--accent)}.series-pos-standalone .series-pos{opacity:1;margin-left:0}.subseries-pos-standalone{color:#4a7fd4;background:#4a7fd422}.subseries-pos-standalone .series-pos{opacity:1;margin-left:0}.series-link{border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent);font:inherit;cursor:pointer;border:none;align-items:center;gap:.3rem;margin-top:.15rem;padding:.15rem .45rem;font-size:.75rem;transition:background .15s;display:inline-flex}.series-link:hover{background:#fbbf2438}.subseries-link{border-radius:var(--radius-pill);color:#4a7fd4;font:inherit;cursor:pointer;background:#4a7fd422;border:none;align-items:center;gap:.3rem;margin-top:.15rem;padding:.15rem .45rem;font-size:.75rem;font-weight:600;text-decoration:none;transition:background .15s;display:inline-flex}.subseries-link:hover{background:#4a7fd444}.book-tag-clickable{cursor:pointer;font:inherit;text-decoration:none;transition:filter .15s,background .15s}button.book-tag-clickable{appearance:none}.book-tag-clickable:hover{filter:brightness(1.12)}.library-subseries-groups{flex-direction:column;gap:1.25rem;display:flex}.library-subseries-heading{color:#4a7fd4;letter-spacing:.01em;margin:0 0 .5rem;font-size:.85rem;font-weight:600}.book-meta-inline{color:var(--text-muted);align-items:center;gap:.3rem;margin-top:.15rem;font-size:.75rem;display:inline-flex}.shelf-book-tags{flex-wrap:wrap;gap:.35rem;margin-top:.25rem;display:flex}.shelf-book-tags .book-tag{padding:.1rem .45rem;font-size:.7rem}.breadcrumb-sep{color:var(--text-muted);flex-shrink:0}.detail-hero{align-items:flex-start;gap:1.25rem;margin-bottom:1rem;display:flex}.detail-cover-upload{flex-shrink:0;position:relative}.detail-cover-upload input[type=file]{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.detail-cover-upload-btn{cursor:pointer;background:0 0;border:none;border-radius:4px;margin:0;padding:0;display:block;position:relative}.detail-cover-upload-btn:disabled{cursor:default;opacity:.85}.detail-cover-upload-btn:not(:disabled):hover .detail-cover-upload-hint,.detail-cover-upload-btn:not(:disabled):focus-visible .detail-cover-upload-hint{opacity:1}.detail-cover-upload-hint{color:#fff;opacity:0;pointer-events:none;background:#00000073;border-radius:4px;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;inset:0}.detail-cover-upload-btn:disabled .detail-cover-upload-hint{opacity:1;background:#00000059}.detail-hero-text{flex:1;min-width:0}.detail-blurb{color:var(--text-secondary);margin:0 0 1.25rem;font-size:.95rem;line-height:1.55}.detail-blurb-loading{color:var(--text-muted);align-items:center;gap:.4rem;font-size:.85rem;display:flex}.detail-title-row{align-items:center;width:100%}.detail-title-row h2{margin:0}.detail-title-actions{flex-wrap:wrap;align-items:center;gap:.35rem;margin-left:auto;display:inline-flex}.detail-ol-row{margin:.35rem 0 0}.detail-ol-link{color:var(--accent);align-items:center;gap:.35rem;font-size:.82rem;font-weight:500;text-decoration:none;display:inline-flex}.detail-ol-link:hover{text-decoration:underline}.editable-ol-work-key-display{font-family:var(--font-mono,ui-monospace, monospace);font-size:.85rem}.editable-ol-work-key-input{min-width:14rem;font-family:var(--font-mono,ui-monospace, monospace);font-size:.85rem}.book-links-panel-desc{margin:0 0 .85rem;font-size:.85rem}.book-links-editor{flex-direction:column;gap:.75rem;display:flex}.book-authors-editor{flex-direction:column;gap:.5rem;width:100%;display:flex}.book-authors-editor-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.book-authors-editor-row.is-primary{position:relative}.book-authors-editor-label{min-width:4.5rem;color:var(--text-muted);font-size:.8rem}.book-authors-editor-tip{z-index:20;border:1px solid var(--border,#ffffff24);background:var(--bg-elevated,#1a1c22);width:max-content;max-width:min(24rem,70vw);color:var(--text-primary,#f2f2f2);white-space:normal;opacity:0;visibility:hidden;pointer-events:none;border-radius:.35rem;padding:.4rem .55rem;font-size:.78rem;font-weight:400;line-height:1.35;transition:opacity .12s;position:absolute;top:calc(100% + .4rem);left:0;box-shadow:0 8px 22px #00000047}.book-authors-editor-row.is-primary:hover .book-authors-editor-tip{opacity:1;visibility:visible}.book-authors-editor-input{flex:1;min-width:10rem}.detail-author .book-authors-editor-input{color:inherit;font:inherit;box-shadow:none;background:0 0;border:1px solid #0000;border-radius:0;padding:.1rem 0}.detail-author .book-authors-editor-input:hover{border-bottom-color:var(--border)}.detail-author .book-authors-editor-input:focus{border-bottom-color:var(--accent);background:0 0;outline:none}.detail-author .book-authors-editor-input:-webkit-autofill{-webkit-text-fill-color:var(--text-secondary);caret-color:var(--text-secondary);box-shadow:0 0 0 1000px var(--bg-base) inset;transition:background-color 9999s ease-out}.detail-author .book-authors-editor-input:-webkit-autofill:hover{-webkit-text-fill-color:var(--text-secondary);caret-color:var(--text-secondary);box-shadow:0 0 0 1000px var(--bg-base) inset;transition:background-color 9999s ease-out}.detail-author .book-authors-editor-input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text-secondary);caret-color:var(--text-secondary);box-shadow:0 0 0 1000px var(--bg-base) inset;transition:background-color 9999s ease-out}.book-authors-editor-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.25rem}.book-authors-editor-add{align-self:flex-start;font-size:.85rem}.book-authors-editor-error{color:var(--danger,#c44);margin:0;font-size:.8rem}.shelf-author-link{color:inherit;text-decoration:none}.shelf-author-link:hover{color:var(--accent)}.book-links-list{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.book-link-item{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.book-link-anchor{color:var(--accent);align-items:center;gap:.35rem;font-size:.9rem;font-weight:500;text-decoration:none;display:inline-flex}.book-link-anchor:hover{text-decoration:underline}.book-link-kind-muted{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem}.book-link-item-actions{gap:.25rem;display:inline-flex}.book-link-form{grid-template-columns:minmax(7rem,auto) 1fr;gap:.5rem;width:100%;display:grid}.book-link-form input[type=url],.book-link-form input[type=text]{grid-column:2}.book-link-form-actions{grid-column:1/-1;justify-content:flex-end;gap:.5rem;display:flex}.book-link-error{margin:0}.book-create-hero{align-items:flex-start}.book-create-cover-placeholder{border:1px dashed var(--border);border-radius:var(--radius);width:7.5rem;height:11rem;color:var(--text-muted);background:var(--bg-elevated);flex-shrink:0;justify-content:center;align-items:center;display:flex}.book-create-fields{flex-direction:column;flex:1;gap:.75rem;min-width:min(100%,20rem);display:flex}.book-create-field{flex-direction:column;gap:.3rem;display:flex}.book-create-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.78rem;font-weight:600}.book-create-field input{font-size:1rem}.book-create-actions{justify-content:flex-end;gap:.75rem;margin-top:1rem;display:flex}.empty{color:var(--text-muted);text-align:center;background:var(--bg-elevated);border:1px dashed var(--border);border-radius:var(--radius);justify-content:center;align-items:center;gap:.5rem;padding:1.5rem;font-style:italic;display:flex}.error{color:var(--reject);align-items:center;gap:.4rem;display:flex}.loading-row{color:var(--text-muted);align-items:center;gap:.5rem;display:flex}.search-pending{color:var(--text-muted);align-items:center;gap:.4rem;margin:0 0 .75rem;font-size:.8rem;display:inline-flex}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.stats-page .page-desc{margin-bottom:1.25rem}.stats-filters{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;margin-bottom:1.5rem;padding:1rem 1.1rem;display:flex}.stats-kind-filters{flex:100%}.stats-kind-filters .kind-filters{margin-bottom:0}.stats-filter{color:var(--text-muted);flex-direction:column;gap:.35rem;min-width:8rem;font-size:.75rem;display:flex}.stats-filter select,.stats-filter input[type=date]{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);padding:.45rem .6rem;font-size:.875rem}.stats-chart-panel-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem .75rem;margin-bottom:.75rem;display:flex}.stats-chart-panel-header h3{margin:0}.stats-metric-toggle{gap:.25rem;display:flex}.stats-metric-toggle button{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-input);color:var(--text-secondary);cursor:pointer;padding:.45rem .75rem;font-size:.8rem}.stats-metric-toggle button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.stats-summary{grid-template-columns:repeat(auto-fill,minmax(min(100%,7.5rem),1fr));gap:.65rem;margin-bottom:1.5rem;display:grid}.last-365d-glance{background:var(--bg-elevated,var(--bg-surface));border:1px solid var(--border-subtle);border-radius:var(--radius);margin-bottom:1.25rem;padding:.85rem 1rem .5rem}.last-365d-glance-compact{margin-bottom:.85rem;padding:.55rem .65rem .25rem}.last-365d-glance-range{margin:0 0 .55rem;font-size:.72rem}.last-365d-glance-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,8.5rem),1fr));align-items:stretch;gap:.65rem;margin-bottom:.35rem;display:grid}.last-365d-glance-cards .stats-card{box-sizing:border-box;height:100%;min-height:7.25rem}.last-365d-glance-cards .stats-card-wide,.last-365d-glance-cards .stats-card-projection{grid-column:span 1;min-width:0}.last-365d-glance-cards .stats-card-prose{-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:.85rem;line-height:1.3;display:-webkit-box;overflow:hidden}.last-365d-words-split{margin-top:.15rem;display:block}.last-365d-value-row{align-items:center;gap:.35rem;display:inline-flex}.last-365d-pace-icon{opacity:1;flex-shrink:0}.last-365d-pace-up .last-365d-pace-icon,.last-365d-pace-icon.last-365d-pace-up{color:var(--read,#4ade80)}.last-365d-pace-down .last-365d-pace-icon,.last-365d-pace-icon.last-365d-pace-down{color:#f87171}.last-365d-pace-flat .last-365d-pace-icon,.last-365d-pace-icon.last-365d-pace-flat{color:var(--text-muted)}.last-365d-pace-sub{color:var(--text-muted);text-transform:none;letter-spacing:normal;margin-top:.2rem;font-size:.68rem;font-weight:500;line-height:1.35;display:block}.last-365d-footnote{margin:0 0 .35rem;font-size:.72rem}.stats-last-365d{margin-bottom:1.25rem}.dashboard-last-365d{margin-bottom:.75rem}.stats-metric-def{cursor:help;min-width:0}.stats-metric-def-inline{align-items:baseline;max-width:100%;display:inline-flex}.stats-metric-def-block{width:100%;display:block}.stats-metric-def-card{flex-direction:column;height:100%;display:flex}.stats-metric-def-popup{z-index:2100;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);pointer-events:none;padding:.7rem .85rem;animation:.14s statsDefIn}.stats-metric-def-popup-below{animation-name:statsDefInBelow}.stats-metric-def-title{color:var(--text-primary);margin:0 0 .35rem;font-size:.82rem;font-weight:700;line-height:1.3}.stats-metric-def-body{color:var(--text-secondary);white-space:normal;margin:0;font-size:.76rem;line-height:1.45}@keyframes statsDefIn{0%{opacity:0}to{opacity:1}}@keyframes statsDefInBelow{0%{opacity:0}to{opacity:1}}.stats-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-muted);box-sizing:border-box;flex-direction:column;align-items:flex-start;gap:.25rem;height:100%;padding:.85rem 1rem;display:flex}.stats-metric-def-card .stats-card{width:100%;transition:border-color .15s,background .15s}.stats-metric-def-card:hover .stats-card,.stats-metric-def-card:focus-within .stats-card{border-color:var(--border);background:var(--bg-hover)}.stats-card svg{opacity:.7}.stats-card-value{color:var(--text-primary);letter-spacing:-.02em;font-size:1.35rem;font-weight:700}.stats-card-prose{color:var(--text-primary);letter-spacing:-.01em;margin:0;font-size:.92rem;font-weight:600;line-height:1.4}.stats-card-sub{color:var(--text-muted);margin-top:.2rem;font-size:.68rem;font-weight:500;line-height:1.35;display:block}.stats-card-projection-up svg{color:var(--read)}.stats-card-projection-down svg{color:#f87171}.stats-card-projection-flat svg{color:var(--text-muted)}.stats-card-label{text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.stats-charts{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.stats-chart-panel{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:1rem 1rem .5rem}.stats-chart-panel-wide{grid-column:1/-1}.stats-chart-panel h3{color:var(--text-secondary);margin:0 0 .75rem;font-size:.9rem;font-weight:600}.last-365d-chart-title{color:var(--text-secondary);margin:.75rem 0 .5rem;font-size:.85rem;font-weight:600}.last-365d-glance-compact+.last-365d-daily-words .last-365d-chart-title{margin-top:.5rem;font-size:.78rem}.stats-section-title,.stats-window-summary-heading{cursor:help}.stats-chart-panel-clickable .stats-chart-bar{transition:opacity .15s}.stats-chart-panel-clickable .stats-chart-bar:hover{opacity:.85}.stats-empty{color:var(--text-muted);margin:1rem 0 1.5rem;font-size:.85rem}.ratings-moods-charts{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem;display:grid}.ratings-moods-pane-title{color:var(--text-secondary);margin:0 0 .35rem;font-size:.78rem;font-weight:600}@media (width<=720px){.ratings-moods-charts{grid-template-columns:1fr}}.chart-tooltip{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);padding:.5rem .65rem;font-size:.8rem}.chart-tooltip-label{color:var(--text-primary);margin-bottom:.35rem;font-weight:600}.chart-tooltip-row{color:var(--text-secondary);justify-content:space-between;gap:1rem;display:flex}.chart-tooltip-books{max-height:8rem;color:var(--text-secondary);margin:.35rem 0 0;padding:.35rem 0 0 1rem;font-size:.75rem;line-height:1.35;overflow-y:auto}.chart-tooltip-books li+li{margin-top:.15rem}.chart-tooltip-total{border-top:1px solid var(--border-subtle);color:var(--text-primary);margin-top:.35rem;padding-top:.35rem;font-weight:600}.chart-expand-header{justify-content:space-between;align-items:flex-start;gap:.5rem .75rem;margin-bottom:.35rem;display:flex}.chart-expand-heading{flex:1;min-width:0}.chart-expand-heading .stats-metric-def-block{width:auto}.chart-expand-header h3,.chart-expand-header .last-365d-chart-title{margin:0}.chart-expand-header-actions{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.chart-expand-open{flex-shrink:0;margin-top:.05rem}.chart-table-open{color:var(--text-secondary);align-items:center;gap:.3rem;padding:.2rem .5rem;font-size:.78rem;font-weight:550;line-height:1.2;display:inline-flex}.chart-table-open:hover{color:var(--text-primary)}.daily-words-table-body{min-height:0}.daily-words-table-scroll{flex:1;min-height:0;max-height:none}.daily-words-table-scroll thead th{z-index:1;background:var(--bg-page,#0e1116);position:sticky;top:0}.daily-words-table-date{display:block}.daily-words-table-books{overflow-wrap:anywhere;max-width:28rem;line-height:1.35;display:block}.chart-expand-overlay{z-index:13000;background:var(--bg-page,#0e1116);color:var(--text-primary);flex-direction:column;display:flex;position:fixed;inset:0}.chart-expand-overlay-header{border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:.75rem 1rem;padding:.75rem 1rem;display:flex}.chart-expand-overlay-titles{min-width:0}.chart-expand-overlay-title{margin:0;font-size:1.05rem;font-weight:650;line-height:1.3}.chart-expand-overlay-hint{margin:.3rem 0 0;font-size:.78rem}.chart-expand-close{flex-shrink:0;align-items:center;gap:.35rem;display:inline-flex}.chart-expand-overlay-body{flex-direction:column;flex:1;gap:.5rem;min-height:0;padding:.65rem 1rem 1rem;display:flex}.chart-expand-viewport{flex:1;width:100%;min-height:12rem}.chart-expand-overlay-footer{flex-shrink:0}.chart-expand-overlay .chart-tooltip-books{max-height:14rem}.chart-expand-overlay .stats-daily-wpm-summary{margin-bottom:.35rem}.monthly-finishes-chart{min-width:0}.stats-chart-pan-active{cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none}.stats-chart-pan-active:active{cursor:grabbing}.stats-zoom-row{color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.35rem 1rem;margin:.25rem 0 .6rem;font-size:.75rem;display:flex}.stats-zoom-label{align-items:center;gap:.5rem;display:flex}.stats-zoom-label input[type=range]{width:10rem;accent-color:var(--accent,#7c8cff)}.stats-zoom-value{min-width:4.5rem;color:var(--text-secondary)}.stats-zoom-range{white-space:nowrap}.stats-chart-hint{color:var(--text-muted);margin:-.35rem 0 .5rem;font-size:.75rem}.stats-table-panel{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:1rem}.stats-table-panel h3{color:var(--text-secondary);flex-wrap:wrap;align-items:baseline;gap:.5rem .75rem;margin:0 0 .75rem;font-size:.9rem;font-weight:600;display:flex}.stats-table-count{color:var(--text-muted);font-size:.75rem;font-weight:400}.stats-table-scroll{max-height:min(70vh,960px);overflow:auto}.stats-table{border-collapse:collapse;width:100%;font-size:.85rem}.stats-table th{text-align:left;border-bottom:1px solid var(--border);color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;padding:.5rem .65rem;font-size:.75rem;font-weight:500}.sortable-th-btn{font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:.3rem;padding:0;display:inline-flex}.sortable-th-btn:hover,.sortable-th-btn-active{color:var(--text-secondary)}.sortable-th-idle{opacity:.35}.sortable-th-btn:hover .sortable-th-idle,.sortable-th-btn-active .sortable-th-idle{opacity:.65}.sortable-th-right,.sortable-td-right{text-align:right}.sortable-th-right .sortable-th-btn{justify-content:flex-end;width:100%}.stats-table td{border-bottom:1px solid var(--border-subtle);vertical-align:top;padding:.55rem .65rem}.stats-table-author{color:var(--text-muted);font-size:.75rem;display:block}.stats-list-tabs{margin-bottom:.75rem}.stats-list-tab-count{color:var(--text-muted);background:var(--bg-surface);border-radius:999px;padding:.05rem .45rem;font-size:.72rem;font-weight:600}.btn-tab-active .stats-list-tab-count{color:var(--bg-base);background:color-mix(in srgb, var(--bg-base) 18%, transparent)}.stats-list-tab-desc{color:var(--text-muted);margin:0 0 .75rem;font-size:.78rem}.stats-table-empty{color:var(--text-muted);text-align:center;font-style:italic;padding:1.25rem .65rem!important}.stats-table-row-reading{background:#60a5fa0f}.stats-table-row-undated{opacity:.82}.stats-table-badge{text-transform:uppercase;letter-spacing:.04em;color:var(--want);margin-bottom:.15rem;font-size:.68rem;font-weight:600;display:inline-block}.stats-table-badge-muted{color:var(--text-muted)}.stats-table-date-sub{color:var(--text-muted);font-size:.75rem;display:block}@media (width<=720px){.stats-charts{grid-template-columns:1fr}.stats-chart-panel-header{flex-direction:column;align-items:flex-start}.stats-metric-toggle{width:100%}}.dashboard-page .page-desc{margin-bottom:1.25rem}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;width:100%;min-width:0;display:grid}.dashboard-tile{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);overflow-wrap:anywhere;min-width:0;max-width:100%;padding:1rem 1rem .85rem}.dashboard-tile-wide{grid-column:1/-1}.dashboard-sortable{min-width:0;max-width:100%;position:relative}.dashboard-sortable.dashboard-tile-wide{grid-column:1/-1}.dashboard-sortable>.dashboard-tile{height:100%}.dashboard-sortable:not(:has(.dashboard-tile,.epub-drop-zone)){display:none}.dashboard-tile-grip{z-index:6;color:var(--text-muted);cursor:grab;touch-action:none;align-items:center;padding:.2rem .1rem;display:flex;position:absolute;top:.7rem;left:.35rem}.dashboard-tile-grip:active{cursor:grabbing}.dashboard-tile-grip svg{pointer-events:none}.dashboard-sortable .dashboard-tile-header{padding-left:1.2rem}.dashboard-grid:has(.dashboard-tile-dragging){-webkit-user-select:none;user-select:none}.dashboard-sortable.dashboard-tile-dragging{opacity:.55;pointer-events:none}.dashboard-sortable.dashboard-tile-dragging .dashboard-tile-grip{pointer-events:auto}.dashboard-tile-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem .75rem;margin-bottom:.85rem;display:flex}.dashboard-tile-header h3,.dashboard-tile-header .page-section-anchor{color:var(--text-secondary);align-items:center;gap:.45rem;margin:0;font-size:.9rem;font-weight:600;display:flex}.dashboard-tile-header h3 svg,.dashboard-tile-header .page-section-anchor svg{opacity:.75}.dashboard-tile-link{color:var(--accent);align-items:center;gap:.15rem;font-size:.78rem;font-weight:500;text-decoration:none;display:inline-flex}.dashboard-tile-link:hover{text-decoration:underline}.dashboard-stats-summary{margin-bottom:.85rem}.stats-universal-section{border-bottom:1px solid var(--border-subtle);margin-bottom:1.75rem;padding-bottom:1.5rem}.stats-last-30-section{margin:0 0 1.25rem}.stats-last-30-summary{cursor:pointer;list-style:none}.stats-last-30-summary::marker{content:""}.stats-last-30-summary::-webkit-details-marker{display:none}.stats-last-30-summary:before{content:"▸";width:.9rem;color:var(--text-secondary);margin-right:.35rem;font-size:.85rem;line-height:1;display:inline-block;transform:translateY(-.15em)}.stats-last-30-section[open]>.stats-last-30-summary:before{content:"▾"}.stats-last-30-summary .stats-section-header{vertical-align:top;margin-bottom:.5rem;display:inline-block}.stats-last-30-section[open]>.stats-last-30-summary .stats-section-header{margin-bottom:.85rem}.stats-filtered-section{margin-top:.25rem}.stats-last-365-section{margin-top:.15rem}.stats-section-header{margin-bottom:.85rem}.stats-section-title{color:var(--text-primary);margin:0 0 .25rem;font-size:1.05rem;font-weight:650}.stats-section-desc{margin:0;font-size:.8rem}.span-audit-section{border-top:1px solid var(--border-subtle);margin-top:2rem;padding-top:.35rem}.span-audit-summary{cursor:pointer;list-style:none}.span-audit-summary::marker{content:""}.span-audit-summary::-webkit-details-marker{display:none}.span-audit-summary:before{content:"▸";width:.9rem;color:var(--text-secondary);margin-right:.35rem;font-size:.85rem;line-height:1;display:inline-block;transform:translateY(-.15em)}.span-audit-section[open]>.span-audit-summary:before{content:"▾"}.span-audit-summary .stats-section-header{vertical-align:top;margin-bottom:.5rem;display:inline-block}.span-audit-section[open]>.span-audit-summary .stats-section-header{margin-bottom:.85rem}.span-audit-note{margin:0 0 .75rem}.span-audit-table{min-width:46rem}.span-audit-table-events{min-width:64rem}.span-audit-title{font-weight:600}.span-audit-actions{flex-wrap:wrap;gap:.35rem;display:flex}.span-audit-actions .btn{padding:.25rem .55rem;font-size:.78rem}.span-audit-more{margin-top:.75rem}.span-audit-when{width:11.5rem}.span-audit-select{width:7.5rem;font:inherit;color:inherit;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--bg-input);padding:.2rem .35rem}.stats-last-365d-section{border-bottom:1px solid var(--border-subtle);margin-bottom:1.75rem;padding-bottom:1.25rem}.last-365d-habits-summary-heading,.stats-window-summary-heading{color:var(--text-primary);margin:0 0 .65rem;font-size:.9rem;font-weight:650}.last-365d-habits-block .last-365d-glance{margin-bottom:1rem}.dashboard-empty{margin:.5rem 0 .25rem;font-size:.85rem}.dashboard-book-list{flex-direction:column;gap:.65rem;margin:0;padding:0;list-style:none;display:flex}.dashboard-book-row{align-items:flex-start;gap:.65rem;display:flex}.dashboard-rate-read-lede{margin:0 0 .85rem;font-size:.82rem}.dashboard-rate-read-book{align-items:flex-start;gap:.75rem;margin-bottom:.85rem;display:flex}.dashboard-rate-read-form{flex-direction:column;gap:.55rem;display:flex}.dashboard-rate-read-stars{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.dashboard-rate-read-actions{flex-wrap:wrap;align-items:center;gap:.65rem;margin-top:.25rem;display:flex}.dashboard-rate-read-loading{align-items:center;gap:.4rem;margin:0 0 .5rem;display:flex}.dashboard-continue-count{margin:0 0 .65rem}.dashboard-continue-shelf{margin:0}.dashboard-continue-tile .book-card:last-child{margin-bottom:0}.dashboard-want-rank{color:var(--text-muted);text-align:center;flex:0 0 1.25rem;padding-top:.15rem;font-size:.75rem;font-weight:600}.dashboard-book-series{flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.2rem;display:flex}.dashboard-book-meta{flex-direction:column;gap:.15rem;min-width:0;display:flex}.dashboard-book-title{color:var(--text-primary);font-size:.88rem;font-weight:600;line-height:1.3;text-decoration:none}.dashboard-book-title:hover{color:var(--accent)}.dashboard-book-author{color:var(--text-muted);font-size:.78rem}.dashboard-want-cleanup-lead{margin:0 0 .65rem;font-size:.85rem}.dashboard-want-cleanup-actions{flex-wrap:wrap;gap:.35rem;margin-top:.35rem;display:flex}.dashboard-want-cleanup-actions .btn{padding:.25rem .55rem;font-size:.78rem}.dashboard-book-date,.dashboard-book-length{color:var(--text-muted);align-items:center;gap:.25rem;font-size:.72rem;display:inline-flex}.dashboard-queue-stat{color:var(--text-muted);margin:-.15rem 0 .65rem;font-size:.75rem}.dashboard-rec-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;width:100%;min-width:0;display:grid}.dashboard-rec-item{flex-direction:column;gap:.45rem;min-width:0;max-width:100%;display:flex}.dashboard-rec-seed{color:var(--text-muted);margin:0;font-size:.72rem;line-height:1.35}.dashboard-rec-seed a{color:var(--text-secondary);font-weight:500}.dashboard-rec-card{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);gap:.6rem;min-width:0;max-width:100%;padding:.55rem;display:flex;position:relative}.dashboard-rec-dismiss{z-index:2;border-radius:var(--radius-pill);background:var(--scrim-strong);width:1.65rem;height:1.65rem;color:var(--text-muted);cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:none;justify-content:center;align-items:center;padding:0;transition:color .15s,background .15s;display:flex;position:absolute;top:.35rem;right:.35rem}.dashboard-rec-dismiss:hover:not(:disabled){color:#f87171;background:var(--scrim-strong)}.dashboard-rec-dismiss:disabled{opacity:.45;cursor:not-allowed}.dashboard-rec-hide{color:var(--text-muted);font-weight:500}.dashboard-rec-hide:hover:not(:disabled){color:var(--text-secondary)}.dashboard-rec-hide:disabled{opacity:.45;cursor:not-allowed}.dashboard-rec-meta{flex-direction:column;gap:.2rem;min-width:0;display:flex}.dashboard-rec-cover-hit{cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex:none;padding:0}.dashboard-rec-cover-hit:disabled{cursor:wait;opacity:.7}.dashboard-rec-cover-hit:not(:disabled):hover{opacity:.92}.dashboard-rec-title-row{align-items:flex-start;gap:.25rem;min-width:0;display:flex}.dashboard-rec-title{color:var(--text-primary);text-align:left;margin:0;font-size:.82rem;font-weight:600;line-height:1.3;text-decoration:none}.dashboard-rec-title:hover{color:var(--accent)}.dashboard-rec-title-btn{cursor:pointer;background:0 0;border:none;padding:0}.dashboard-rec-title-btn:disabled{cursor:wait;opacity:.7}.dashboard-rec-meta h4{color:var(--text-primary);margin:0;font-size:.82rem;font-weight:600;line-height:1.3}.dashboard-rec-meta p{color:var(--text-muted);margin:0;font-size:.74rem}.dashboard-rec-why{color:var(--text-secondary);margin:.15rem 0 0;font-size:.7rem}.dashboard-rec-why-summary{cursor:pointer;color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3;list-style:none;display:-webkit-box;overflow:hidden}.dashboard-rec-why-summary::-webkit-details-marker{display:none}.dashboard-rec-why[open] .dashboard-rec-why-summary{-webkit-line-clamp:unset;color:var(--text-secondary);font-weight:600}.dashboard-rec-why-list{color:var(--text-muted);flex-direction:column;gap:.15rem;margin:.25rem 0 0;padding:0 0 0 .85rem;display:flex}.book-signals{flex-direction:column;gap:.55rem;display:flex}.book-signals-lede{margin:0;font-size:.82rem}.book-signals-note-label,.book-signals-field-label{color:var(--text-secondary);font-size:.78rem;font-weight:600}.book-signals-note{resize:vertical;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-elevated,var(--bg-surface));width:100%;min-height:4.5rem;color:var(--text-primary);font:inherit;padding:.5rem .65rem;line-height:1.4}.book-signals-reread{align-items:center;gap:.65rem;display:flex}.book-signals-reread-btn.is-yes{border-color:var(--read);color:var(--read)}.book-signals-reread-btn.is-no{opacity:.75}.book-signals-mood-chips{flex-wrap:wrap;gap:.35rem;margin-top:.35rem;display:flex}.book-signals-mood-chip{border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);border-radius:var(--radius-pill);cursor:pointer;padding:.2rem .65rem;font-size:.75rem}.book-signals-mood-chip.is-on{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.book-signals-mood-chip:disabled{opacity:.45;cursor:not-allowed}.book-signals-status{align-items:center;gap:.35rem;min-height:1.1rem;font-size:.75rem;display:flex}.goals-planning-mode{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);margin:0 0 .5rem;padding:.5rem .75rem .65rem}.goals-planning-mode legend{color:var(--text-secondary);padding:0 .25rem;font-size:.78rem;font-weight:600}.goals-mode-option{cursor:pointer;align-items:center;gap:.4rem;margin:.2rem 0;font-size:.85rem;display:flex}.want-sim-panel{border:1px dashed var(--border-subtle);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--bg-hover) 55%, transparent);margin-top:.65rem;padding:.55rem .7rem}.want-sim-title{color:var(--text-secondary);margin:0 0 .4rem;font-size:.78rem;font-weight:700}.want-sim-row{flex-wrap:wrap;align-items:flex-end;gap:.5rem .75rem;display:flex}.want-sim-row label{color:var(--text-muted);flex-direction:column;gap:.2rem;font-size:.72rem;display:flex}.want-sim-row input{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);min-width:7rem;color:var(--text-primary);font:inherit;padding:.25rem .4rem}.want-sim-hint{margin:.4rem 0 0;font-size:.75rem}.dashboard-rec-actions{flex-wrap:wrap;align-items:center;gap:.3rem;margin-top:.25rem;display:flex}.dashboard-rec-actions-group{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.dashboard-rec-actions-group+.dashboard-rec-actions-group{border-left:1px solid var(--border-subtle);margin-left:.4rem;padding-left:.5rem}.dashboard-rec-actions .btn{gap:.2rem;padding:.28rem .45rem;font-size:.68rem}@media (width<=960px){.dashboard-rec-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.book-blurb-hover{flex-shrink:0;display:inline-block;position:relative}.book-blurb-hover-cover-card{width:100%;height:100%;display:block}.book-blurb-popup{z-index:2000;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);pointer-events:none;padding:.7rem .8rem;animation:.16s bookBlurbIn}.book-blurb-popup-right{animation-name:bookBlurbInSide}.book-blurb-popup-below{animation-name:bookBlurbInBelow}.book-blurb-popup-title{color:var(--text-primary);margin:0 0 .2rem;font-size:.88rem;font-weight:700;line-height:1.3}.book-blurb-popup-author{color:var(--text-muted);margin:0 0 .45rem;font-size:.76rem;line-height:1.3}.book-blurb-popup-text{color:var(--text-secondary);align-items:flex-start;gap:.35rem;margin:0;font-size:.78rem;line-height:1.45;display:flex}@keyframes bookBlurbIn{0%{opacity:0;transform:translate(-50%,calc(4px - 100%))}to{opacity:1;transform:translate(-50%,-100%)}}@keyframes bookBlurbInSide{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}@keyframes bookBlurbInBelow{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.series-suggestions{margin-bottom:1.25rem}.series-suggestions h3{align-items:center;gap:.5rem;margin:0 0 .5rem;font-size:1rem;display:flex}.series-suggestions-desc{color:var(--text-secondary);margin:0 0 1rem;font-size:.9rem}.series-suggestions-empty .muted{margin:0}.series-next-actions{border-bottom:1px solid var(--border,#ddd);margin:0 0 1rem;padding:.75rem 0}.series-next-progress{color:var(--text-secondary);margin:0 0 .5rem;font-size:.9rem}.series-next-row{align-items:flex-start;gap:.75rem;display:flex}.series-next-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin:0;font-size:.75rem}.series-next-title{margin:.15rem 0;font-weight:600;display:block}.series-next-author{color:var(--text-secondary);margin:0 0 .5rem;font-size:.9rem}.series-next-buttons{flex-wrap:wrap;gap:.5rem;display:flex}.series-next-buttons button{align-items:center;gap:.35rem;display:inline-flex}.series-pos-edit{align-items:center;gap:.2rem;margin-left:.25rem;display:inline-flex}.series-pos-button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.series-pos-reset{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;padding:.1rem;display:inline-flex}.series-pos-input{width:3.5rem;font:inherit;padding:.1rem .25rem}.series-next-empty{color:var(--text-secondary);align-items:center;gap:.35rem;margin:0;font-size:.9rem;display:flex}.search-series-name{font-size:.85rem}.dashboard-continue-list{flex-direction:column;gap:1rem;margin:0;padding:0;list-style:none;display:flex}.dashboard-continue-item{border-bottom:1px solid var(--border,#ddd);margin:0;padding:0}.dashboard-continue-item:last-child{border-bottom:none}.dashboard-continue-header{justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.25rem;display:flex}.dashboard-continue-series{margin:0;font-size:1rem;font-weight:600}.dashboard-continue-item .series-next-actions{border-bottom:none;margin-bottom:0;padding-bottom:.5rem}.dashboard-continue-goal{margin:-.15rem 0 .65rem;padding-left:0}.dashboard-continue-goal .add-to-goal-menu-compact{max-width:14rem}.admin-corpus-health,.admin-settings{margin-bottom:1.25rem}.admin-settings h3{margin:0 0 .5rem;font-size:1rem}.admin-settings-row{align-items:flex-start}.admin-settings-row .preferences-hint{margin-top:.25rem;display:block}.admin-settings-saving{margin:.5rem 0 0}.admin-issues{margin-bottom:1.25rem}.admin-issues h3{margin:0 0 .5rem;font-size:1rem}.admin-issues-intro{margin:0 0 .75rem}.admin-issues-filters{flex-wrap:wrap;gap:.4rem;margin-bottom:.85rem;display:flex}.admin-issues-filter{padding:.25rem .65rem;font-size:.82rem}.admin-issues-filter-active{border-color:var(--accent);color:var(--accent)}.admin-issues-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.admin-issue-card{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-elevated);padding:.75rem .85rem}.admin-issue-done{opacity:.78}.admin-issue-head{flex-wrap:wrap;align-items:baseline;gap:.4rem .55rem;display:flex}.admin-issue-kind{letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--border);color:var(--text-secondary);border-radius:999px;padding:.1rem .4rem;font-size:.7rem;font-weight:650}.admin-issue-kind-bug{color:var(--reject);border-color:var(--reject-soft);background:var(--reject-soft)}.admin-issue-kind-feature{color:var(--want);border-color:var(--want-soft);background:var(--want-soft)}.admin-issue-title{font-size:.95rem}.admin-issue-done-label{color:var(--read);font-size:.75rem}.admin-issue-meta{color:var(--text-muted);margin:.3rem 0 .45rem;font-size:.8rem}.admin-issue-page{word-break:break-all}.admin-issue-body{white-space:pre-wrap;margin:0;font-size:.9rem;line-height:1.45}.admin-issue-actions{margin-top:.65rem}.admin-corpus-health h3{margin:0 0 .5rem;font-size:1rem}.admin-corpus-dl{grid-template-columns:repeat(auto-fill,minmax(min(100%,12rem),1fr));gap:.75rem 1.25rem;margin:0;display:grid}.admin-corpus-dl dt{text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);font-size:.75rem}.admin-corpus-dl dd{margin:.15rem 0 0}.series-suggestions-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,8.5rem),1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.series-suggestions-grid .book-cover-md{width:6.5rem;height:9.5rem;margin:0 auto}.series-suggestions-grid .book-cover-fallback svg{width:28px;height:28px}.series-suggestion-card{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-surface);width:100%;color:var(--text-primary);cursor:pointer;text-align:left;flex-direction:column;align-items:stretch;gap:.35rem;padding:.65rem;transition:border-color .15s,background .15s,transform .12s;display:flex}.series-suggestion-card:hover:not(:disabled){border-color:var(--accent);background:var(--bg-hover)}.series-suggestion-card:active:not(:disabled){transform:scale(.98)}.series-suggestion-card:disabled{opacity:.6;cursor:wait}.series-suggestion-title{-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.8rem;font-weight:600;line-height:1.25;display:-webkit-box;overflow:hidden}.series-suggestion-author{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.72rem;line-height:1.2;display:-webkit-box;overflow:hidden}.series-suggestion-action{color:var(--want);align-items:center;gap:.25rem;margin-top:.15rem;font-size:.72rem;font-weight:600;display:inline-flex}.series-suggestion-item{flex-direction:column;gap:.4rem;min-width:0;display:flex}.series-suggestion-triage{align-items:center;gap:.35rem;display:flex}.series-suggestion-triage .btn{flex:1;justify-content:center;padding:.3rem .55rem;font-size:.75rem}.recommend-page .page-desc{margin-bottom:1rem}.recommend-seed{color:var(--text-secondary);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);align-items:center;gap:.4rem;margin:0 0 1.25rem;padding:.35rem .5rem .35rem .75rem;font-size:.85rem;display:inline-flex}.recommend-seed-text{line-height:1.35}.recommend-seed-text strong{color:var(--text-primary);font-weight:600}.recommend-seed-refresh,.recommend-seed-dismiss{border-radius:var(--radius-pill);width:1.65rem;height:1.65rem;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.recommend-seed-refresh:hover:not(:disabled),.recommend-seed-dismiss:hover{background:var(--bg-elevated);color:var(--text-primary)}.recommend-seed-refresh:disabled{cursor:default;opacity:.6}.recommend-shelf-empty{color:var(--text-muted);margin:0;padding:.75rem 0;font-size:.85rem}.recommend-section{margin-bottom:2.25rem}.recommend-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;display:grid}.recommend-sentinel{width:100%;height:1px}.recommend-end{text-align:center;color:var(--text-secondary);margin:1.5rem 0 .5rem}.recommend-end p{margin:0 0 .75rem}.recommend-slot{aspect-ratio:2/3;position:relative}.recommend-card{border-radius:var(--radius);border:1px solid var(--border-subtle);background:var(--bg-surface);height:100%;transition:transform .2s,box-shadow .2s,border-color .15s;position:relative;overflow:hidden}.recommend-card-idle:hover{box-shadow:var(--shadow);border-color:var(--accent);transform:translateY(-4px)}.recommend-card-hit:active{transform:scale(.98)}.recommend-card-hit{width:100%;height:100%;color:inherit;cursor:pointer;text-align:left;font:inherit;background:0 0;border:none;padding:0;transition:transform .1s;display:block}.recommend-corner-btn,.recommend-dismiss,.recommend-start-reading,.recommend-mark-read,.recommend-want{border-radius:var(--radius-pill);background:var(--scrim);height:2rem;color:var(--text-secondary);cursor:pointer;white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:none;justify-content:center;align-items:center;gap:.3rem;padding:0 .6rem;transition:opacity .15s,transform .12s,background .15s,color .15s;display:flex}.recommend-corner-actions{z-index:3;opacity:0;pointer-events:none;flex-wrap:wrap;align-items:center;gap:.35rem;transition:opacity .15s,transform .12s;display:flex;position:absolute;top:.5rem;left:.5rem;right:3.5rem;transform:translateY(-4px)scale(.98)}.recommend-corner-actions-group{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.recommend-corner-actions-group+.recommend-corner-actions-group{border-left:1px solid #ffffff1f;margin-left:.35rem;padding-left:.45rem}.recommend-card:hover .recommend-corner-actions,.recommend-corner-actions:focus-within{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.recommend-corner-label{font-size:.72rem;font-weight:600;line-height:1}.recommend-ol-link{border-radius:var(--radius-pill);background:var(--scrim);border:1px solid var(--border-subtle);width:1.65rem;height:1.65rem;color:var(--text-secondary);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:center;text-decoration:none;transition:background .15s,color .15s,border-color .15s;display:flex}.recommend-ol-link:hover{background:var(--scrim-strong);color:var(--text-primary);border-color:var(--border)}.recommend-author-actions{z-index:3;opacity:0;pointer-events:none;align-items:center;gap:.3rem;transition:opacity .15s,transform .12s;display:flex;position:absolute;bottom:.5rem;left:.5rem;transform:translateY(4px)scale(.9)}.recommend-card:hover .recommend-author-actions,.recommend-author-actions:focus-within{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.recommend-author-link{border-radius:var(--radius-pill);background:var(--scrim);border:1px solid var(--border-subtle);height:1.75rem;color:var(--text-secondary);white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);align-items:center;gap:.3rem;padding:0 .6rem;font-size:.7rem;font-weight:600;line-height:1;text-decoration:none;transition:background .15s,color .15s,border-color .15s;display:flex}.recommend-author-link:hover{background:var(--scrim-strong);color:var(--text-primary);border-color:var(--border)}.recommend-ol-author-link{border-radius:var(--radius-pill);background:var(--scrim);border:1px solid var(--border-subtle);width:1.75rem;height:1.75rem;color:var(--text-muted);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;transition:background .15s,color .15s,border-color .15s;display:flex}.recommend-ol-author-link:hover{background:var(--scrim-strong);color:var(--text-secondary);border-color:var(--border)}.recommend-dismiss:hover{color:var(--reject);background:var(--scrim-strong)}.recommend-dismiss{z-index:3;position:absolute;top:.5rem;right:.5rem}.recommend-hide{border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--scrim);height:1.65rem;color:var(--text-muted);cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);flex-shrink:0;justify-content:center;align-items:center;padding:0 .5rem;font-size:.72rem;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.recommend-hide:hover,.recommend-hide:focus-visible{background:var(--scrim-strong);color:var(--text-secondary);border-color:var(--border)}.recommend-mark-read{color:var(--read);background:#4ade802e;border:1px solid #4ade8066}.recommend-mark-read:hover{color:#bbf7d0;background:#4ade8052}.recommend-start-reading{color:var(--reading);background:#c084fc2e;border:1px solid #c084fc66}.recommend-start-reading:hover{color:#e9d5ff;background:#c084fc52}.recommend-want{color:var(--want);background:#fbbf242e;border:1px solid #fbbf2466}.recommend-want:hover{color:#fde68a;background:#fbbf2452}.recommend-cover-wrap{width:100%;height:100%;position:relative}.recommend-cover-wrap .book-cover-lg{border:none;border-radius:0;width:100%;height:100%}.recommend-card-overlay{z-index:1;background:linear-gradient(#0000 0%,#080a0e59 28%,#080a0ed1 62%,#080a0ef5 100%);flex-direction:column;gap:.15rem;padding:1.75rem .85rem .7rem;display:flex;position:absolute;inset:auto 0 0}.recommend-accept-overlay{z-index:2;color:var(--want);background:#60a5fa59;justify-content:center;align-items:center;animation:.48s recommendAcceptOverlay;display:flex;position:absolute;inset:0}.recommend-accept-overlay-read{color:var(--read);background:#4ade8059}.recommend-accept-overlay-reading{color:var(--reading);background:#c084fc59}@keyframes recommendAcceptOverlay{0%{opacity:0}to{opacity:1}}.recommend-card-title{color:#fff;-webkit-line-clamp:2;text-shadow:0 1px 3px #0009;-webkit-box-orient:vertical;margin:0;font-size:.95rem;font-weight:700;line-height:1.25;display:-webkit-box;overflow:hidden}.recommend-card-author{color:#ffffffc7;-webkit-line-clamp:1;-webkit-box-orient:vertical;margin:0;font-size:.78rem;display:-webkit-box;overflow:hidden}.recommend-card-why-line{color:#ffffffb8;-webkit-line-clamp:2;text-shadow:0 1px 2px #0000008c;-webkit-box-orient:vertical;margin:.2rem 0 0;font-size:.68rem;line-height:1.25;display:-webkit-box;overflow:hidden}.recommend-why{border-radius:var(--radius-sm);background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-secondary);margin:.35rem .4rem .45rem;padding:.25rem .4rem;font-size:.72rem}.recommend-why-summary{cursor:pointer;color:var(--text-muted);font-weight:600;list-style:none}.recommend-why-summary::-webkit-details-marker{display:none}.recommend-why-summary:before{content:"▸ ";color:var(--accent)}.recommend-why[open] .recommend-why-summary:before{content:"▾ "}.recommend-why-list{flex-direction:column;gap:.25rem;margin:.35rem 0 .15rem;padding:0 0 0 .9rem;display:flex}.recommend-why-list li{line-height:1.3}.recommend-why-label{color:var(--text-primary);display:block}.recommend-why-detail{margin-top:.1rem;font-size:.68rem;display:block}.recommend-card-cta{z-index:2;color:var(--want);border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;opacity:0;pointer-events:none;background:#080a0eb8;border:1px solid #60a5fa59;align-items:center;gap:.35rem;padding:.4rem .85rem;font-size:.8rem;font-weight:700;transition:opacity .18s,transform .18s;display:inline-flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.85)}.recommend-card:hover .recommend-card-cta{opacity:1;transform:translate(-50%,-50%)scale(1)}.page-desc-icon{vertical-align:-2px;color:var(--read);display:inline-block}.recommend-card-skeleton{border-radius:var(--radius);border:1px solid var(--border-subtle);background:linear-gradient(110deg, var(--bg-surface) 8%, var(--bg-hover) 18%, var(--bg-surface) 33%);background-size:200% 100%;height:100%;min-height:18rem;animation:1.2s ease-in-out infinite recommendShimmer}@keyframes recommendShimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes recommendEnter{0%{opacity:0;transform:translateY(16px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.recommend-card-enter{animation:.4s cubic-bezier(.22,1,.36,1) both recommendEnter}.recommend-card-enter-0{animation-delay:0s}.recommend-card-enter-1{animation-delay:80ms}.recommend-card-enter-2{animation-delay:.16s}.recommend-card-enter-3{animation-delay:.24s}.recommend-card-enter-4{animation-delay:.32s}.recommend-card-enter-5{animation-delay:.4s}.recommend-card-accepting{border-color:var(--want);box-shadow:0 0 0 2px var(--want-soft);transition:transform .8s,box-shadow .8s,border-color .6s;transform:scale(1.03)}.recommend-card-accepting-read{border-color:var(--read);box-shadow:0 0 0 2px var(--read-soft)}.recommend-card-accepting-reading{border-color:var(--reading);box-shadow:0 0 0 2px var(--reading-soft)}.recommend-card-exit-accept{opacity:0;pointer-events:none;transition:opacity .8s,transform .8s;transform:scale(.92)translateY(-8px)}.recommend-card-exit-dismiss{opacity:0;pointer-events:none;transition:opacity 1.12s,transform 1.12s;transform:translate(24px)}.recommend-empty{text-align:center;padding:2rem 1.25rem}.recommend-busy{color:var(--text-muted);align-items:center;gap:.4rem;margin-top:1rem;font-size:.8rem;display:flex}@media (width<=720px){.recommend-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=420px){.recommend-grid{grid-template-columns:1fr}.recommend-slot{aspect-ratio:auto;min-height:22rem}}@media (prefers-reduced-motion:reduce){.recommend-card-enter,.recommend-card-exit-accept,.recommend-card-exit-dismiss,.recommend-card-skeleton,.recommend-accept-overlay,.book-cover-img.recommend-cover-loaded{animation:none!important}.recommend-card-enter,.recommend-card-exit-accept,.recommend-card-exit-dismiss{transition:opacity .2s!important;transform:none!important}.recommend-card-idle:hover{transform:none}}.reading-dates{z-index:1;flex-wrap:wrap;gap:.5rem .9rem;margin-top:.4rem;display:flex;position:relative}.reading-date-field{color:var(--text-secondary);align-items:center;gap:.35rem;font-size:.78rem;display:inline-flex}.reading-date-field>span{font-weight:500}.reading-date-field input[type=date]{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-primary);color-scheme:var(--color-scheme);padding:.2rem .4rem;font-size:.78rem}.reading-date-field input[type=date]:focus-visible{border-color:var(--reading);box-shadow:0 0 0 2px var(--reading-soft);outline:none}.reading-date-field input[type=date]:disabled{opacity:.6}.app-auth{flex:0 auto;justify-content:flex-end;align-items:center;gap:.65rem;min-width:0;max-width:min(14rem,38%);margin-left:auto;display:flex}.app-auth-user{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.9rem;font-weight:500;overflow:hidden}.btn-auth{text-decoration:none}.login-shell{min-height:calc(100vh - var(--env-banner-height));flex-direction:column;justify-content:center;align-items:stretch;max-width:960px;margin:0 auto;padding:2rem 1.5rem 1.5rem;display:flex}.login-shell .app-footer{margin-top:2.5rem}.login-page{width:min(100%,28rem);margin:0 auto}.login-brand{margin:0 0 1.75rem}.login-user-grid{gap:.65rem;margin:1.25rem 0;display:grid}.login-user-btn{justify-content:center;padding:.75rem 1rem;font-size:1rem}.login-status{color:var(--text-secondary);align-items:center;gap:.5rem;display:flex}.login-error{color:var(--reject);margin:.5rem 0 0}.login-oauth{margin-top:.5rem}.login-oauth-buttons{flex-wrap:wrap;gap:.5rem;display:flex}.btn-google{font-weight:500}.login-divider{color:var(--text-muted);text-align:center;margin:1.75rem 0 1rem;font-size:.85rem}.login-oauth-placeholder{border-top:1px solid var(--border-subtle);margin-top:2rem;padding-top:1.5rem}.login-oauth-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 .75rem;font-size:.85rem}.login-back{margin-top:1.5rem;font-size:.9rem}.login-back a{color:var(--text-secondary)}.login-prompt{border-radius:var(--radius-sm);background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:.35rem;margin:.75rem 0 0;padding:.65rem .85rem;font-size:.9rem;display:flex}.login-prompt a{color:var(--accent);font-weight:500}.star-rating-readonly{opacity:.85;touch-action:auto}.editable-field-readonly{cursor:default}.preferences-page .preferences-panel{border-radius:var(--radius);background:var(--bg-elevated);border:1px solid var(--border-subtle);margin-top:1.25rem;padding:1.25rem}.theme-picker{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;display:grid}.theme-card{text-align:left;border:1px solid var(--border-subtle);border-radius:var(--radius);background:var(--bg-surface);min-height:auto;color:var(--text-primary);box-shadow:var(--shadow-sm);cursor:pointer;flex-direction:column;align-items:stretch;gap:.75rem;padding:.9rem 1rem;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.theme-card:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border);color:var(--text-primary)}.theme-card--active,.theme-card--active:hover:not(:disabled){border-color:rgba(var(--accent-rgb), .55);background:var(--accent-soft);color:var(--text-primary);box-shadow:0 0 0 2px rgba(var(--accent-rgb), .2)}.theme-card__swatches{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);grid-template-columns:1.4fr 1fr .7fr;height:2.25rem;display:grid;overflow:hidden}.theme-card__swatches span{min-width:0;display:block}.theme-card__meta{flex-direction:column;gap:.2rem;display:flex}.theme-card__label{color:var(--text-primary);font-size:.95rem;font-weight:600}.theme-card__desc{color:var(--text-secondary);font-size:.8rem;font-weight:400;line-height:1.35}.preferences-section-title{color:var(--text-primary);align-items:center;gap:.45rem;margin:0 0 1rem;font-size:.95rem;font-weight:600;display:flex}h3.preferences-section-title.page-section-anchor,.preferences-section-title.page-section-anchor{display:inline-flex}.language-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,9.5rem),1fr));gap:.55rem;display:grid}.language-chip{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.65rem .75rem;transition:border-color .15s,background .15s,color .15s;display:flex}.language-chip:hover{border-color:var(--accent);background:var(--bg-hover);color:var(--text-primary)}.language-chip-on{border-color:var(--accent);background:var(--accent-soft);color:var(--text-primary)}.language-chip-code{letter-spacing:.06em;color:var(--accent);font-size:.72rem;font-weight:700}.language-chip-label{font-size:.88rem}.preferences-field-label{color:var(--text-muted);margin:1rem 0 .35rem;font-size:.88rem;display:block}.preferences-text-input{border:1px solid var(--border,#00000026);background:var(--bg-elevated,#fff);width:min(100%,20rem);color:inherit;border-radius:.35rem;padding:.4rem .55rem}.preferences-number-input{border:1px solid var(--border);background:var(--surface);width:8rem;color:var(--text);font:inherit;border-radius:6px;padding:.45rem .6rem}.validated-number-input{flex-direction:column;align-items:flex-start;gap:.15rem;min-width:0;display:inline-flex}.validated-number-input .editable-field-error{margin:0}.validated-number-input input[aria-invalid=true]{border-color:var(--reject)}.preferences-hint{color:var(--text-muted);margin:1rem 0 0;font-size:.85rem;line-height:1.45}.preferences-hint-tight{margin-top:.35rem}.preferences-hint-tight>p{margin:0}.preferences-import-errors{max-height:18rem;margin:.5rem 0 0;padding-left:1.2rem;overflow:auto}.preferences-import-row{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.85rem;display:flex}.preferences-file-input{max-width:100%;color:var(--text-muted);font-size:.9rem}.preferences-subsection-title{color:var(--text-primary);align-items:center;gap:.4rem;margin:1.35rem 0 .35rem;font-size:.9rem;font-weight:600;display:flex}.preferences-device-tabs{flex-wrap:wrap;gap:.4rem;margin-top:.75rem;display:flex}.preferences-device-tab{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary);font:inherit;cursor:pointer;align-items:center;gap:.4rem;padding:.45rem .75rem;font-size:.88rem;display:inline-flex}.preferences-device-tab:hover{border-color:var(--accent);color:var(--text-primary)}.preferences-device-tab.is-selected{border-color:var(--accent);background:var(--accent-soft);color:var(--text-primary)}.preferences-device-this{letter-spacing:.03em;text-transform:uppercase;color:var(--accent);font-size:.68rem;font-weight:600}.preferences-device-panel{margin-top:.35rem}.preferences-theme-fieldset{border:0;min-inline-size:0;margin:.85rem 0 0;padding:0}.preferences-theme-fieldset legend.preferences-field-label{margin:0 0 .35rem;padding:0}.preferences-theme-row{flex-wrap:wrap;gap:1rem;display:flex}.preferences-radio-row{cursor:pointer;align-items:center;gap:.4rem;font-size:.9rem;display:inline-flex}.preferences-checkbox-row{cursor:pointer;align-items:flex-start;gap:.6rem;margin-top:.75rem;font-size:.92rem;line-height:1.45;display:flex}.preferences-checkbox-row input{flex-shrink:0;margin-top:.2rem}.preferences-actions{align-items:center;gap:.75rem;margin-top:1.25rem;display:flex}.preferences-autosave-status{min-height:1.5rem}.preferences-saving,.preferences-saved{align-items:center;gap:.35rem;font-size:.85rem;display:inline-flex}.preferences-saving{color:var(--text-muted)}.preferences-saved{color:var(--read)}.page-error{border-radius:var(--radius-sm);background:var(--reject-soft);color:var(--reject);border:1px solid #f8717159;align-items:flex-start;gap:.5rem;margin:0 0 1rem;padding:.75rem 1rem;font-size:.9rem;line-height:1.45;display:flex}.preferences-panel-actions{flex-wrap:wrap;align-items:center;gap:.65rem;margin-top:1rem;display:flex}.rejection-count-pill{border-radius:var(--radius-pill);background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-muted);align-items:center;gap:.45rem;margin-top:1rem;padding:.55rem .85rem;font-size:.88rem;display:inline-flex}.rejection-count-pill-active{background:var(--reject-soft);color:var(--text-secondary);border-color:#f8717159}.rejection-count-pill strong{color:var(--reject);font-size:1rem}.preferences-feedback{border-radius:var(--radius-sm);align-items:flex-start;gap:.55rem;margin-top:1rem;padding:.8rem .95rem;font-size:.9rem;line-height:1.45;display:flex}.preferences-feedback-success{background:var(--read-soft);color:var(--read);border:1px solid #4ade8059}.preferences-feedback-error{background:var(--reject-soft);color:var(--reject);border:1px solid #f8717159}.preferences-feedback-busy{background:var(--accent-soft);color:var(--text-secondary);border:1px solid #7c8cff47}.preferences-confirm-box{border-radius:var(--radius-sm);background:var(--bg-surface);box-shadow:var(--shadow-sm);border:1px solid #f8717166;margin-top:1rem;padding:1rem 1.05rem}.preferences-confirm-title{color:var(--text-primary);margin:0;font-size:.98rem;font-weight:600}.preferences-confirm-desc{color:var(--text-muted);margin:.55rem 0 0;font-size:.88rem;line-height:1.45}.preferences-confirm-actions{flex-wrap:wrap;gap:.6rem;margin-top:1rem;display:flex}.preferences-confirm-danger{background:var(--reject);border-color:var(--reject);color:#fff}.preferences-confirm-danger:hover{filter:brightness(1.08)}.agent-token-create{margin-top:1rem}.agent-token-label{color:var(--text-secondary);margin-bottom:.4rem;font-size:.85rem;display:block}.agent-token-create-row,.agent-skill-package-url-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.agent-skill-package-url-input{flex:14rem;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem}.agent-skill-package-url-hint{margin-top:.45rem!important;margin-bottom:.75rem!important}.agent-token-input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-surface);min-width:0;color:var(--text-primary);flex:14rem;padding:.55rem .7rem;font-size:.9rem}.agent-token-reveal{border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent-soft);margin-top:1rem;padding:1rem}.agent-setup-guide{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);margin-top:1rem;padding:1rem 1.1rem}.agent-setup-title{color:var(--text-primary);margin:0 0 .75rem;font-size:.9rem;font-weight:600}.agent-setup-subtitle{color:var(--text-secondary);margin:1rem 0 .45rem;font-size:.82rem;font-weight:600}.agent-mcp-config-row{flex-wrap:wrap;align-items:flex-start;gap:.65rem;margin:.5rem 0 .75rem;display:flex}.agent-mcp-config{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg);max-height:14rem;color:var(--text-primary);white-space:pre;flex:16rem;margin:0;padding:.75rem .85rem;font-size:.78rem;line-height:1.4;overflow:auto}.agent-setup-steps{color:var(--text-secondary);margin:0;padding-left:1.25rem;font-size:.85rem;line-height:1.55}.agent-setup-steps li+li{margin-top:.55rem}.agent-setup-curl{border-radius:var(--radius-sm);background:var(--bg-elevated);border:1px solid var(--border-subtle);word-break:break-all;color:var(--text-primary);margin-top:.45rem;padding:.55rem .65rem;font-size:.72rem;display:block}.agent-setup-downloads{margin-top:1rem}.agent-setup-zip-hint{margin-top:.5rem!important}.agent-setup-paths{border-collapse:collapse;width:100%;margin-top:1rem;font-size:.82rem}.agent-setup-paths th,.agent-setup-paths td{text-align:left;border-bottom:1px solid var(--border-subtle);padding:.45rem .55rem}.agent-setup-paths th{color:var(--text-muted);font-size:.75rem;font-weight:600}.agent-token-reveal-title{color:var(--text-primary);margin:0 0 .35rem;font-weight:600}.agent-token-reveal-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.agent-token-value{border-radius:var(--radius-sm);background:var(--bg-surface);border:1px solid var(--border-subtle);word-break:break-all;color:var(--text-primary);margin:.75rem 0;padding:.65rem .75rem;font-size:.78rem;display:block}.agent-token-table{border-collapse:collapse;width:100%;margin-top:1.25rem;font-size:.88rem}.agent-token-table th,.agent-token-table td{text-align:left;border-bottom:1px solid var(--border-subtle);padding:.55rem .65rem}.agent-token-table th{color:var(--text-muted);font-size:.78rem;font-weight:600}.agent-token-revoke{color:var(--reject);align-items:center;gap:.35rem;display:inline-flex}.admin-users-table-scroll{max-height:none}.admin-users-table th,.admin-users-table td{white-space:nowrap}.admin-users-row-error{opacity:.75}.admin-users-error-label{color:var(--danger,#c45c5c)}.admin-users-nickname{color:var(--text-secondary);font-weight:500}.admin-users-actions,.admin-quota-cell{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.admin-quota-cell input{width:4.5rem}.admin-impersonate-btn{padding:.25rem .5rem;font-size:.78rem}.goals-toolbar{flex-wrap:wrap;gap:.5rem;margin:.75rem 0 1rem;display:flex}.daily-reading-goal-editor{border:1px solid var(--border-subtle);border-radius:var(--radius);background:var(--bg-surface);margin:0 0 1.25rem;padding:.9rem 1rem 1rem}.daily-reading-goal-title{margin:0 0 .25rem;font-size:1rem;font-weight:650}.daily-reading-goal-help,.daily-reading-goal-hint{margin:0 0 .65rem;font-size:.82rem;line-height:1.35}.daily-reading-goal-hint{margin:.4rem 0 0}.daily-reading-goal-row{flex-wrap:wrap;align-items:flex-end;gap:.5rem;display:flex}.daily-reading-goal-field{flex-direction:column;gap:.2rem;min-width:9rem;display:flex}.daily-reading-goal-label{color:var(--text-secondary);font-size:.75rem;font-weight:600}.daily-reading-goal-input{width:9rem}.daily-reading-goal-status{flex-direction:column;gap:.25rem;margin-top:.45rem;display:flex}.daily-reading-goal-today{align-items:center;gap:.35rem;margin:0;font-size:.92rem;font-weight:600;display:flex}.daily-reading-goal-pct{color:var(--text-secondary);font-weight:500}.daily-reading-goal-bar{background:var(--bg-input);border-radius:999px;height:.35rem;display:flex;overflow:hidden}.daily-reading-goal-bar>span{background:var(--accent);flex:none;height:100%;display:block}.daily-reading-goal-legend{color:var(--text-secondary);flex-wrap:wrap;gap:.45rem .85rem;margin:.4rem 0 0;padding:0;font-size:.72rem;list-style:none;display:flex}.daily-reading-goal-legend li{align-items:center;gap:.3rem;display:inline-flex}.daily-reading-goal-legend-swatch{border-radius:2px;flex-shrink:0;width:.55rem;height:.55rem}.daily-reading-goal-targets{margin:.15rem 0 0;font-size:.75rem;line-height:1.4}.daily-reading-goal-today .last-365d-pace-icon{vertical-align:-.15em;flex-shrink:0;margin-left:.15rem}.goals-form-title,.goals-create-form .page-section-anchor.goals-form-title{margin:0;font-size:1rem}.goals-form-actions{flex-wrap:wrap;gap:.5rem;display:flex}.goals-create-form{border:1px solid var(--border-subtle);border-radius:var(--radius);background:var(--bg-surface);gap:.85rem;margin-bottom:1.5rem;padding:1rem;display:grid}.goals-create-form label{gap:.35rem;font-size:.9rem;font-weight:500;display:grid}.goals-date-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}@media (width<=520px){.goals-date-row{grid-template-columns:1fr}}.goals-create-form input[type=text],.goals-create-form input[type=date],.goals-create-form input[type=number],.goals-create-form input[type=search],.goals-create-form input[type=datetime-local],.goals-create-form select,.goals-create-form textarea{font:inherit;border:1px solid var(--border-subtle);border-radius:var(--radius-sm,6px);background:var(--bg);color:var(--text);padding:.45rem .6rem}.goals-create-hint{margin:0;font-size:.82rem}.goals-wizard-preview{border-top:1px solid var(--border-subtle);margin:.25rem 0 0;padding-top:.75rem}.goals-wizard-book-list{max-height:14rem;margin:.5rem 0 0;padding-left:1.25rem;font-size:.9rem;overflow:auto}.goals-wizard-book-title{font-weight:500}.goals-section{margin-top:1.5rem}.goals-section h3,.goals-section .page-section-anchor{margin:0 0 .75rem;font-size:1rem}.goals-list,.dashboard-goals-list{gap:.85rem;display:grid}.reading-goal-card{border:1px solid var(--border-subtle);border-radius:var(--radius);background:var(--bg-elevated,var(--bg-surface));padding:.85rem .95rem;transition:border-color .12s,box-shadow .12s}.reading-goal-card.reading-goal-drop-active,.reading-goal-card.reading-goal-card-drop-target{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.reading-goal-card.reading-goal-card-dragging{opacity:.55}.reading-goal-card-grip{color:var(--text-muted);cursor:grab;touch-action:none;flex:none;align-items:center;margin:.1rem .15rem 0 -.1rem;padding:.2rem .1rem;display:flex}.reading-goal-card-grip:active{cursor:grabbing}.reading-goal-card-grip svg{pointer-events:none}.reading-goal-compact{padding:.7rem .8rem}.reading-goal-card-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.reading-goal-card-header h4{flex:auto;align-items:center;gap:.4rem;min-width:0;margin:0;font-size:.95rem;display:flex}.reading-goal-toggle{border-radius:var(--radius-sm,6px);color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;margin:0;padding:.1rem;display:inline-flex}.reading-goal-toggle:hover{color:var(--text);background:var(--bg-hover,var(--bg))}.reading-goal-title-btn{color:inherit;font:inherit;text-align:left;cursor:pointer;text-overflow:ellipsis;background:0 0;border:none;min-width:0;margin:0;padding:0;font-weight:600;display:inline;overflow:hidden}.reading-goal-summary{color:var(--text-secondary);margin:.25rem 0 0;font-size:.72rem;line-height:1.4}.reading-goal-card.is-collapsed{padding-bottom:.65rem}.reading-goal-title-edit{width:100%}.reading-goal-title-input{min-width:0;font:inherit;border-radius:var(--radius-sm,6px);color:var(--text);background:0 0;border:1px solid #0000;flex:auto;padding:.2rem .4rem;font-size:.95rem;font-weight:600}.reading-goal-title-input:hover,.reading-goal-title-input:focus{border-color:var(--border-subtle);background:var(--bg);outline:none}.reading-goal-actions{flex-wrap:wrap;gap:.35rem;display:flex}.reading-goal-meta{color:var(--text-secondary);flex-wrap:wrap;gap:.65rem 1rem;margin:.45rem 0 .25rem;font-size:.82rem;display:flex}.reading-goal-meta span{align-items:center;gap:.3rem;display:inline-flex}.reading-goal-meta-edit .reading-goal-date-fields{flex-wrap:wrap;align-items:center;gap:.35rem;display:inline-flex}.reading-goal-date-label input[type=date]{font:inherit;border:1px solid var(--border-subtle);border-radius:var(--radius-sm,6px);background:var(--bg);color:var(--text);padding:.15rem .35rem;font-size:.82rem}.reading-goal-days-left{margin-left:.15rem}.reading-goal-meta-error{margin:.25rem 0 0;font-size:.8rem}.reading-goal-pace{color:var(--text);font-weight:600}.reading-goal-remaining{margin:.15rem 0 .2rem;font-size:.8rem}.reading-goal-in-span{opacity:.9;margin:0 0 .45rem;font-size:.72rem;line-height:1.35}.reading-goal-estimate{white-space:nowrap}.reading-goal-missing-flag{color:var(--danger,#c45c5c);align-items:center;gap:.2rem;display:inline-flex}.reading-goal-order-hint{margin:.2rem 0 0;font-size:.78rem}.reading-goal-books{gap:.25rem;margin:.35rem 0 0;padding:0;font-size:.82rem;list-style:none;display:grid}.reading-goal-books li{grid-template-columns:minmax(0,1fr) minmax(4.5rem,20%);align-items:center;gap:.5rem;display:grid}.reading-goal-books-reorderable li:not(.reading-goal-book-add-row){border:1px solid #0000;border-radius:4px;grid-template-columns:1.25rem auto minmax(0,1fr) minmax(4.5rem,20%);padding:.15rem .25rem}.reading-goal-books-editable li:not(.reading-goal-book-add-row){grid-template-columns:minmax(0,1fr) minmax(4.5rem,20%) auto}.reading-goal-books-reorderable.reading-goal-books-editable li:not(.reading-goal-book-add-row){grid-template-columns:1.25rem auto minmax(0,1fr) minmax(4.5rem,20%) auto}.reading-goal-books-reorderable li.reading-goal-book-dragging{opacity:.55}.reading-goal-books-reorderable li.reading-goal-book-drop-target{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.reading-goal-books-reorderable li.reading-goal-book-drop-end{border:1px dashed var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);pointer-events:none;border-radius:3px;min-height:.35rem;margin-top:.1rem;grid-template-columns:1fr!important}.reading-goal-order-rank{color:var(--text-muted);text-align:center;font-size:.75rem;font-weight:600}.reading-goal-order-grip{color:var(--text-muted);cursor:grab;touch-action:none;align-items:center;padding:.2rem .1rem;display:flex}.reading-goal-order-grip:active{cursor:grabbing}.reading-goal-order-grip svg{pointer-events:none}.reading-goal-book-missing .reading-goal-book-title,.reading-goal-book-missing .reading-goal-book-meta{color:var(--danger,#c45c5c)}.reading-goal-book-info{min-width:0}.reading-goal-book-head{align-items:center;gap:.35rem;min-width:0;display:flex}.reading-goal-book-head .reading-goal-book-title{flex:1;min-width:0}.reading-goal-book-title{flex-wrap:wrap;align-items:center;gap:.35rem .5rem;font-weight:500;display:flex}.reading-goal-book-author{color:var(--text-muted);font-size:.78rem;font-weight:400}.reading-goal-book-status-icon{color:var(--text-muted);flex-shrink:0}.reading-goal-book-title .epub-read-link-pill{flex-basis:100%;justify-content:center;max-width:max-content;margin-top:.2rem}.reading-goal-book-meta{margin-left:.35rem}.reading-goal-book-progress{z-index:1;grid-column:2;min-width:0;position:relative;overflow:visible}.reading-goal-book-progress:has(.reading-progress-page-open){z-index:2}.reading-goal-books-reorderable .reading-goal-book-progress{grid-column:4}.reading-goal-book-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;grid-column:-1;justify-content:center;align-items:center;padding:.2rem;display:inline-flex}.reading-goal-book-remove:hover:not(:disabled){color:var(--danger,#c45c5c);background:color-mix(in srgb, var(--danger,#c45c5c) 12%, transparent)}.reading-goal-book-remove:disabled{opacity:.5;cursor:wait}.reading-goal-book-add-row{align-items:start;padding:.2rem .25rem;position:relative;grid-template-columns:1.25rem minmax(0,1fr)!important}.reading-goal-books li.reading-goal-book-add-row{grid-template-rows:auto auto;grid-template-columns:1.25rem minmax(0,1fr);align-items:start;gap:.25rem .5rem;display:grid}.reading-goal-book-add-plus{color:var(--text-muted);grid-area:1/1;justify-content:center;align-items:center;padding-top:.45rem;display:flex}.reading-goal-book-add-search{grid-area:1/2;width:100%;min-width:0;position:relative}.reading-goal-book-add-search input[type=search]{box-sizing:border-box;width:100%;font:inherit;border:1px dashed var(--border-subtle);border-radius:var(--radius-sm,6px);background:var(--bg);color:var(--text);padding:.4rem .55rem;font-size:.82rem}.reading-goal-book-add-search input[type=search]:focus{border-style:solid;border-color:var(--accent);outline:none}.reading-goal-book-suggestions{z-index:5;box-sizing:border-box;border:1px solid var(--border-subtle);border-radius:var(--radius-sm,6px);background:var(--bg-elevated,var(--bg-surface));grid-area:2/1/auto/-1;width:100%;max-height:16rem;margin:0;padding:.25rem;list-style:none;position:relative;overflow:auto;box-shadow:0 6px 18px #0000001f}.reading-goal-book-suggestion{box-sizing:border-box;text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.35rem .75rem;padding:.45rem .55rem;display:flex}.reading-goal-book-suggestion:hover,.reading-goal-book-suggestion-active{background:color-mix(in srgb, var(--accent) 14%, transparent)}.reading-goal-book-suggestion-label{flex:auto;min-width:0;font-weight:500}.reading-goal-book-suggestion-empty{padding:.45rem .5rem;font-size:.8rem}.reading-goal-overdue .reading-goal-pace{color:var(--danger,#c45c5c)}.reading-goal-complete{opacity:.85}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.add-to-goal-menu{flex-direction:column;align-items:flex-end;gap:.25rem;min-width:0;display:flex}.add-to-goal-menu-compact{flex:none;align-items:stretch;max-width:11.5rem}.add-to-goal-menu-compact .add-to-goal-control{width:100%}.add-to-goal-plus{color:var(--text-secondary,#78716c);flex:none;justify-content:center;align-items:center;display:inline-flex}.add-to-goal-select-compact{flex:auto;min-width:0;max-width:none;padding:.22rem .35rem;font-size:.75rem}.add-to-goal-menu-compact .add-to-goal-notice,.add-to-goal-menu-compact .action-error{text-align:right;max-width:11.5rem;font-size:.7rem;line-height:1.25}.add-to-goal-menu-labeled{border-top:1px solid var(--border-subtle);align-items:stretch;margin-top:.75rem;padding-top:.75rem}.add-to-goal-label{align-items:center;gap:.35rem;margin-bottom:.25rem;font-size:.85rem;font-weight:600;display:inline-flex}.add-to-goal-control{align-items:center;gap:.35rem;max-width:100%;display:inline-flex}.add-to-goal-select{font:inherit;border:1px solid var(--border-subtle);border-radius:var(--radius-sm,6px);background:var(--bg);max-width:14rem;color:var(--text);padding:.3rem .45rem;font-size:.8rem}.add-to-goal-menu-labeled .add-to-goal-select{width:100%;max-width:none;padding:.45rem .55rem;font-size:.9rem}.add-to-goal-spinner{flex:none}.add-to-goal-notice{font-size:.75rem}.dashboard-goals-more{margin:0;font-size:.8rem}.reading-progress{z-index:1;isolation:isolate;max-width:16rem;margin-top:.45rem;position:relative}.reading-progress-compact{max-width:14rem}.reading-progress-inline{max-width:none;margin-top:0;position:relative}.reading-progress-inline .reading-progress-label{justify-content:flex-end;gap:.25rem;margin-bottom:0}.reading-progress-label{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:.25rem;margin-bottom:.15rem;font-size:.75rem;display:flex}.reading-progress-value{font-variant-numeric:tabular-nums;color:var(--text);margin-left:auto;font-weight:600}.reading-progress-summary{color:var(--text);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:none;justify-content:flex-end;align-items:center;margin-top:.35rem;padding:.05rem .15rem;font-size:.8rem;font-weight:600;line-height:1.2;display:inline-flex}.reading-progress-summary:hover,.reading-progress-summary:focus-visible{color:var(--accent)}.reading-goal-book-progress .reading-progress-summary{width:100%;margin-top:0}.reading-progress-instructions{max-width:22rem;margin:.15rem 0 .25rem;font-size:.72rem;line-height:1.35}.book-card-progress-closed,.book-card-progress-open,.reading-goal-book-closed,.reading-goal-book-open{cursor:pointer}.book-card-progress-open input,.book-card-progress-open textarea,.reading-goal-book-open input,.reading-goal-book-open textarea{cursor:auto}.book-card-progress-open{background:color-mix(in srgb, var(--accent) 6%, transparent)}.reading-goal-books li.reading-goal-book-open{background:color-mix(in srgb, var(--accent) 6%, transparent);align-items:start}.reading-goal-books li.reading-goal-book-open .reading-goal-book-progress,.reading-goal-books-reorderable li.reading-goal-book-open .reading-goal-book-progress{grid-area:2/1/auto/-1;width:100%;max-width:22rem}.reading-progress-range-btn{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:.1rem;line-height:0;display:inline-flex}.reading-progress-range-btn:hover:not(:disabled){color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.reading-progress-range-btn:disabled{opacity:.4;cursor:not-allowed}.reading-progress input[type=range]{width:100%;height:1.25rem;accent-color:var(--accent);cursor:pointer;appearance:none;background:0 0;margin:0}.reading-progress input[type=range]::-webkit-slider-runnable-track{background:color-mix(in srgb, var(--accent) 28%, var(--border-subtle));border-radius:999px;height:.35rem}.reading-progress input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);border:none;border-radius:50%;width:1rem;height:1rem;margin-top:-.325rem}.reading-progress input[type=range]::-moz-range-track{background:color-mix(in srgb, var(--accent) 28%, var(--border-subtle));border-radius:999px;height:.35rem}.reading-progress input[type=range]::-moz-range-thumb{background:var(--accent);border:none;border-radius:50%;width:1rem;height:1rem}.reading-progress-loc{font-size:.7rem;font-weight:500}.reading-progress-page-popover{background:var(--bg-elevated,var(--bg-surface));border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);z-index:2;margin-top:.45rem;padding:.65rem .7rem;position:relative}.reading-progress-page-panel{background:var(--bg-elevated,var(--bg-surface));border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:.4rem;padding:.45rem .5rem .5rem}.reading-progress-range-set{max-width:18rem}.reading-progress-inline.reading-progress-range-set{max-width:none}.reading-progress-inline .reading-progress-page-popover{min-width:14rem;max-width:min(18rem,90vw);margin-top:.25rem;position:absolute;top:100%;right:0}.reading-progress-inline .reading-progress-page-panel{min-width:0;max-width:none;position:static}.reading-progress-page-open{z-index:2}.reading-progress-page-hint{margin:0 0 .5rem;font-size:.7rem;line-height:1.35}.reading-progress-page-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;display:grid}.reading-progress-page-fields label{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);flex-direction:column;gap:.15rem;font-size:.68rem;font-weight:600;display:flex}.reading-progress-page-fields input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input,var(--bg-surface));width:100%;min-width:0;color:var(--text-primary);font-variant-numeric:tabular-nums;padding:.3rem .35rem;font-size:.85rem}.reading-progress-page-preview{color:var(--text-secondary);margin:.4rem 0 0;font-size:.8rem;font-weight:600}.reading-progress-page-actions{gap:.4rem;margin-top:.5rem;display:flex}.reading-progress-page-actions .btn{padding:.3rem .6rem;font-size:.78rem}.reading-progress-error{color:var(--danger,#c45c5c);margin:.25rem 0 0;font-size:.75rem}.reading-progress-epub-locked input[type=range]{cursor:not-allowed;opacity:.55}.reading-progress-locked-hint{margin:.25rem 0 0;font-size:.7rem;line-height:1.35}.reading-progress-saving{opacity:.75}.epub-reader{--epub-bg:#faf7f2;--epub-ink:#1c1917;--epub-muted:#78716c;--epub-chrome:#faf7f2f0;--epub-chrome-border:#1c191714;--epub-control-border:#1c19171f;--epub-control-bg:#fff;top:var(--env-banner-height);background:var(--epub-bg);color:var(--epub-ink);z-index:80;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;grid-template-rows:1fr;display:grid;position:fixed;bottom:0;left:0;right:0}.epub-reader[data-theme=dark]{--epub-bg:#0c0a09;--epub-ink:#f5f5f4;--epub-muted:#a8a29e;--epub-chrome:#0c0a09f0;--epub-chrome-border:#f5f5f41f;--epub-control-border:#f5f5f42e;--epub-control-bg:#1c1917}.epub-reader-chrome{padding:.55rem .75rem;padding-left:max(.75rem, env(safe-area-inset-left));padding-right:max(.75rem, env(safe-area-inset-right));background:var(--epub-chrome);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--epub-chrome-border);z-index:5;align-items:center;gap:.65rem;display:flex}.epub-reader-top{padding-top:max(.4rem, env(safe-area-inset-top));flex-direction:column;align-items:stretch;gap:.35rem;padding-bottom:.4rem;transition:transform .22s,opacity .22s;display:flex;position:absolute;top:0;left:0;right:0}.epub-reader-top.is-hidden{opacity:0;pointer-events:none;transform:translateY(-110%)}.epub-reader-top-meta{align-items:center;gap:.5rem;min-width:0;display:flex}.epub-reader-error-hint{color:var(--text-secondary,#9aa3ad);margin:.35rem 0 0;font-size:.85rem;font-weight:400}.epub-offline-chip{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.01em;background:color-mix(in srgb, var(--epub-chrome-border) 70%, transparent);max-width:42%;color:var(--text-secondary,#9aa3ad);border-radius:999px;flex-shrink:0;padding:.15rem .45rem;font-size:.68rem;font-weight:600;overflow:hidden}.epub-reader-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;margin:0;font-family:Literata,Georgia,serif;font-size:.95rem;font-weight:600;overflow:hidden}.epub-reader-title a{color:inherit;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;display:block;overflow:hidden}.epub-reader-title a:hover{text-decoration:underline}.epub-reader-pages{font-variant-numeric:tabular-nums;color:var(--epub-muted);white-space:nowrap;flex-shrink:0}.epub-reader-controls{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.25rem;width:100%;min-width:0;display:flex}.epub-reader-control-group{flex:0 auto;justify-content:center;align-items:center;gap:.2rem;min-width:0;display:inline-flex}.epub-reader-icon-btn{border:1px solid var(--epub-control-border);width:2rem;height:2rem;color:inherit;cursor:pointer;background:0 0;border-radius:.35rem;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.epub-reader-back{border:1px solid var(--epub-control-border);height:2rem;color:inherit;cursor:pointer;font:inherit;background:0 0;border-radius:.4rem;flex-shrink:0;align-items:center;gap:.35rem;padding:0 .7rem 0 .45rem;font-size:.85rem;font-weight:650;line-height:1;display:inline-flex}.epub-reader-back:hover{background:color-mix(in srgb, var(--epub-ink) 12%, transparent)}.epub-reader-back:focus-visible{outline:2px solid var(--epub-ink);outline-offset:2px}.epub-reader-icon-btn:disabled{opacity:.4;cursor:not-allowed}.epub-reader-icon-btn.is-active{background:var(--epub-ink);color:var(--epub-bg);border-color:var(--epub-ink)}.epub-reader-font{min-width:0}.epub-reader-font select{font:inherit;border:1px solid var(--epub-control-border);background:var(--epub-control-bg);color:inherit;border-radius:.35rem;min-width:5.5rem;max-width:7.5rem;padding:.25rem .4rem;font-size:.8rem}.epub-reader-size{text-align:center;font-variant-numeric:tabular-nums;flex-shrink:0;min-width:1.5rem;font-size:.8rem}.epub-reader-lh-label{color:var(--epub-muted);flex-shrink:0;font-size:.75rem}@media (width<=767px){.epub-reader-top{padding-top:max(.3rem, env(safe-area-inset-top));padding-bottom:.3rem;padding-left:max(.45rem, env(safe-area-inset-left));padding-right:max(.45rem, env(safe-area-inset-right));gap:.25rem}.epub-reader-title{font-size:.85rem}.epub-reader-controls{grid-template-columns:auto auto 1fr;align-items:center;gap:.45rem .2rem;display:grid;overflow:visible}.epub-reader-control-group{gap:.1rem}.epub-reader-control-group[data-group=session]{grid-column:1/-1;justify-content:space-between}.epub-reader-icon-btn{border-radius:.3rem;width:1.65rem;height:1.65rem}.epub-reader-back{height:1.65rem;padding:0 .5rem 0 .3rem;font-size:.75rem}.epub-reader-font{min-width:0}.epub-reader-font select{min-width:4rem;max-width:4.25rem;padding:.12rem .2rem;font-size:.68rem}.epub-reader-lh-label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.epub-reader-size{min-width:1.05rem;font-size:.68rem}}.epub-reader-stage{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;height:100%;min-height:0;position:relative;overflow:hidden}.epub-reader-focus-band{pointer-events:none;z-index:3;--focus-band-half:2.5rem;--focus-band-fade:16px;--focus-dim:#1c191738;background:linear-gradient(to bottom, var(--focus-dim) 0%, var(--focus-dim) calc(50% - var(--focus-band-half) - var(--focus-band-fade)), transparent calc(50% - var(--focus-band-half)), transparent calc(50% + var(--focus-band-half)), var(--focus-dim) calc(50% + var(--focus-band-half) + var(--focus-band-fade)), var(--focus-dim) 100%);position:absolute;inset:0}.epub-reader[data-theme=dark] .epub-reader-focus-band{--focus-dim:#0000008c}.epub-reader-stage.is-manual-scroll{touch-action:pan-y;-webkit-user-select:auto;user-select:auto}.epub-reader-viewer{--epub-side-margin:max(.85rem, calc((100% - var(--epub-reader-column,32rem)) / 2));z-index:0;box-sizing:border-box;padding-left:var(--epub-side-margin);padding-right:var(--epub-side-margin);position:absolute;inset:0}@media (width>=768px){.epub-reader-viewer{--epub-side-margin:max(calc(.85rem * 3), calc((100% - var(--epub-reader-column,32rem)) / 2))}}@media (width>=1024px){.epub-reader-viewer{--epub-side-margin:max(.85rem, calc((100% - var(--epub-reader-column,32rem)) / 2))}}.epub-reader-viewer .epub-container{-webkit-overflow-scrolling:touch;overflow-anchor:none;width:100%!important;height:100%!important;overflow-y:auto!important}.epub-reader[data-autoscroll=true][data-paused=false][data-hold-paused=false] .epub-reader-viewer .epub-container{-webkit-overflow-scrolling:auto}.epub-reader[data-page-anim=true] .epub-container{overflow-y:hidden!important}.epub-reader-gesture-layer{z-index:2;touch-action:none;cursor:default;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;position:absolute;inset:0}.epub-reader-gesture-layer.is-manual-scroll{touch-action:none;cursor:grab}.epub-reader-gesture-layer.is-manual-scroll:active{cursor:grabbing}.epub-page-curl{z-index:4;pointer-events:none;opacity:0;visibility:hidden;width:100%;height:100%;position:absolute;inset:0}.epub-page-curl.is-active{opacity:1;visibility:visible}.epub-reader[data-page-curl=true] .epub-reader-focus-band,.epub-reader[data-page-curl=true] .epub-reader-paused-cue{opacity:0}.epub-reader-status{z-index:3;text-align:center;background:var(--epub-bg);place-content:center;gap:.75rem;padding:1.5rem;display:grid;position:absolute;inset:0}.epub-reader-error{color:#9f1239}.epub-reader-paused-cue{z-index:4;color:#faf7f2;pointer-events:none;background:#1c1917c7;border-radius:.35rem;padding:.35rem .75rem;font-size:.8rem;position:absolute;top:1rem;left:50%;transform:translate(-50%)}.epub-reader-toast{top:max(.85rem, env(safe-area-inset-top));z-index:var(--z-toast);color:#faf7f2;letter-spacing:.01em;text-align:center;pointer-events:none;opacity:1;background:#1c1917e0;border-radius:.5rem;max-width:min(34rem,100% - 2rem);padding:.55rem 1rem;font-size:.9rem;font-weight:500;line-height:1.35;transition:opacity .4s,transform .4s;animation:.28s ease-out epub-toast-in;position:absolute;left:50%;transform:translate(-50%)translateY(0);box-shadow:0 6px 24px #00000047}.epub-reader-toast.has-action{pointer-events:auto;justify-content:center;align-items:center;gap:.75rem;display:flex}.epub-reader-toast-undo{color:inherit;font:inherit;text-underline-offset:.12em;cursor:pointer;background:0 0;border:0;padding:0;font-weight:650;text-decoration:underline}.epub-reader[data-theme=dark] .epub-reader-toast{color:#1c1917;background:#faf7f2eb;box-shadow:0 6px 24px #00000073}.epub-reader-toast.is-fading{opacity:0;transform:translate(-50%)translateY(-.35rem)}.epub-reader-toggle-help-toast{top:max(.85rem, env(safe-area-inset-top));z-index:20;color:#faf7f2;letter-spacing:.02em;text-align:center;white-space:nowrap;pointer-events:none;opacity:1;background:#1c1917e0;border-radius:.4rem;padding:.38rem .85rem;font-size:.82rem;font-weight:600;line-height:1.25;transition:opacity .35s,transform .35s,top .22s;animation:.22s ease-out epub-toast-in;position:absolute;left:50%;transform:translate(-50%)translateY(0);box-shadow:0 6px 20px #00000047}.epub-reader-toggle-help-toast.is-below-chrome{top:max(8.15rem, calc(env(safe-area-inset-top) + 7.65rem))}@media (width<=767px){.epub-reader-toggle-help-toast.is-below-chrome{top:max(9.35rem, calc(env(safe-area-inset-top) + 8.85rem))}}.epub-reader[data-theme=dark] .epub-reader-toggle-help-toast{color:#1c1917;background:#faf7f2eb;box-shadow:0 6px 20px #00000073}.epub-reader-toggle-help-toast.is-fading{opacity:0;transform:translate(-50%)translateY(-.35rem)}.epub-reader-wpm-toast{top:max(.65rem, env(safe-area-inset-top));right:max(.65rem, env(safe-area-inset-right));z-index:8;color:#faf7f2;font-variant-numeric:tabular-nums;letter-spacing:.02em;text-align:center;white-space:nowrap;pointer-events:none;opacity:1;background:#1c1917d1;border-radius:.28rem;min-width:3.25rem;max-width:6.5rem;padding:.28rem .5rem;font-size:.72rem;font-weight:600;line-height:1.2;transition:opacity .35s,transform .35s;animation:.22s ease-out epub-wpm-toast-in;position:absolute;left:auto;transform:translateY(0);box-shadow:0 3px 12px #00000038}.epub-reader[data-theme=dark] .epub-reader-wpm-toast{color:#1c1917;background:#faf7f2e6;box-shadow:0 3px 12px #0006}.epub-reader-wpm-toast.is-fading{opacity:0;transform:translateY(-.25rem)}.epub-reader-wpm-toast.is-steady{opacity:.92;animation:none}.epub-reader-flow-hud{z-index:7;box-sizing:border-box;width:100%;max-width:none;padding:.44rem .8rem;padding-right:max(7.25rem, env(safe-area-inset-right));color:#1c1917;font-variant-numeric:tabular-nums;letter-spacing:.01em;opacity:.9;cursor:default;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:#faf7f2e0;border-bottom:1px solid #1c191747;border-radius:0;font-size:1.36rem;font-weight:600;line-height:1.25;transition:top .22s,opacity .2s,background .2s,color .2s,padding .15s,border-color .2s;position:absolute;top:0;left:0;right:0}.epub-reader-flow-hud.is-below-chrome{top:max(5.35rem, calc(env(safe-area-inset-top) + 4.85rem))}@media (width<=767px){.epub-reader-flow-hud.is-below-chrome{top:max(6.55rem, calc(env(safe-area-inset-top) + 6.05rem))}}.epub-reader[data-theme=dark] .epub-reader-flow-hud{color:#faf7f2eb;opacity:.72;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0c0a09b8;border-bottom-color:#faf7f229}.epub-reader-flow-hud.is-dim{opacity:.72}.epub-reader-flow-hud.is-idle{opacity:.68}.epub-reader[data-theme=dark] .epub-reader-flow-hud.is-dim{opacity:.48}.epub-reader[data-theme=dark] .epub-reader-flow-hud.is-idle{opacity:.4}.epub-reader-flow-hud:hover,.epub-reader-flow-hud:focus-visible,.epub-reader-flow-hud.is-expanded{opacity:.97;color:#1c1917;background:#faf7f2f5;border-bottom-color:#1c19175c;outline:none}.epub-reader[data-theme=dark] .epub-reader-flow-hud:hover,.epub-reader[data-theme=dark] .epub-reader-flow-hud:focus-visible,.epub-reader[data-theme=dark] .epub-reader-flow-hud.is-expanded{color:#1c1917;background:#faf7f2f0;border-bottom-color:#faf7f247}.epub-reader-flow-hud.is-gap:not(:hover):not(:focus-visible):not(.is-expanded){opacity:.78}.epub-reader[data-theme=dark] .epub-reader-flow-hud.is-gap:not(:hover):not(:focus-visible):not(.is-expanded){opacity:.55}.epub-reader-achievement-flow-hud{z-index:7;color:#faf7f2f0;font-variant-numeric:tabular-nums;letter-spacing:.01em;opacity:.36;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1c191747;border-radius:0 .5rem 0 0;flex-wrap:nowrap;align-items:baseline;gap:.28rem;max-width:min(16.5rem,72vw);padding:.36rem .75rem;font-size:1.1rem;font-weight:600;line-height:1.25;transition:bottom .22s,opacity .2s,background .2s,color .2s;display:flex;position:absolute;bottom:0;left:0}.epub-reader-achievement-flow-hud.is-above-chrome{bottom:max(3.4rem, calc(env(safe-area-inset-bottom) + 2.9rem))}@media (width<=767px){.epub-reader-achievement-flow-hud.is-above-chrome{bottom:max(4.1rem, calc(env(safe-area-inset-bottom) + 3.5rem))}}.epub-reader[data-theme=dark] .epub-reader-achievement-flow-hud{color:#faf7f2d9;background:#faf7f229}.epub-reader-achievement-flow-hud.is-dim{opacity:.21}.epub-reader-achievement-flow-hud.is-idle{opacity:0}.epub-reader-achievement-flow-hud.is-gap{opacity:.28}.epub-reader-achievement-flow-hud.is-ended{opacity:.14}.epub-reader-achievement-flow-hud-sep{opacity:.55;font-weight:500}.epub-reader-achievement-flow-hud-seam{opacity:.75;font-size:.92em;font-weight:500}.epub-reader-achievement-flow-hud.is-pending{color:#fde68af5;opacity:.55;background:#1c191757}.epub-reader[data-theme=dark] .epub-reader-achievement-flow-hud.is-pending{color:#fde047f0;background:#faf7f224}.epub-reader-achievement-flow-hud.is-pending.is-dim{opacity:.38}.epub-reader-flow-hud-compact{white-space:nowrap;flex-wrap:nowrap;align-items:baseline;gap:.4rem;display:flex}.epub-reader-flow-hud-sep{opacity:.72}.epub-reader-flow-hud-expanded{flex-direction:column;gap:.24rem;min-width:13rem;max-width:22rem;padding:.2rem .1rem;display:flex}.epub-reader-flow-hud-row{justify-content:space-between;align-items:baseline;gap:1.3rem;display:flex}.epub-reader-flow-hud-label{opacity:.85;text-transform:uppercase;letter-spacing:.04em;font-size:1.24rem;font-weight:600}.epub-reader-flow-hud-value{font-weight:600}@keyframes epub-toast-in{0%{opacity:0;transform:translate(-50%)translateY(-.45rem)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes epub-wpm-toast-in{0%{opacity:0;transform:translateY(-.3rem)}to{opacity:1;transform:translateY(0)}}.preferences-epub-block{border-top:1px solid var(--border,#78716c47);flex-direction:column;gap:.55rem;margin:1rem 0 .25rem;padding:.85rem 0 0;display:flex}.preferences-epub-block .preferences-checkbox-row{margin-top:.35rem}.preferences-epub-block .preferences-field-label{margin-top:.15rem}.epub-reader-stats{border-bottom:none;border-top:1px solid var(--epub-chrome-border);color:var(--epub-muted);padding-bottom:max(.55rem, env(safe-area-inset-bottom));font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:space-between;font-size:.78rem;transition:transform .22s,opacity .22s;position:absolute;bottom:0;left:0;right:0}.epub-reader-page-btns{align-items:center;gap:.15rem;display:inline-flex}.epub-reader-page-btn{border:1px solid var(--epub-chrome-border);background:color-mix(in srgb, var(--epub-bg,#fff) 70%, transparent);width:1.85rem;height:1.85rem;color:inherit;cursor:pointer;border-radius:.3rem;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}.epub-reader-page-btn:hover:not(:disabled){color:var(--epub-fg,inherit);border-color:color-mix(in srgb, var(--accent,#a8a29e) 55%, var(--epub-chrome-border))}.epub-reader-page-btn:disabled{opacity:.4;cursor:default}.epub-reader-stats.is-hidden{opacity:0;pointer-events:none;transform:translateY(110%)}.epub-reader-furthest-jump{font:inherit;font-variant-numeric:inherit;color:inherit;text-underline-offset:.15em;cursor:pointer;background:0 0;border:0;margin:0;padding:0;text-decoration:underline;display:inline}.epub-reader-furthest-jump:disabled{cursor:default;opacity:1;text-decoration:none}.epub-reader-furthest-jump:not(:disabled):hover,.epub-reader-furthest-jump:not(:disabled):focus-visible{color:var(--epub-ink)}.detail-epub-panel{border-top:1px solid var(--border,#00000014);border-bottom:1px solid var(--border,#00000014);margin:1rem 0 1.25rem;padding:.85rem 0}.detail-epub-panel h3{margin:0 0 .4rem;font-size:.95rem}.detail-epub-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.book-share-toast{bottom:auto;top:calc(4.5rem + env(safe-area-inset-top,0px));right:1.1rem}.book-share-landing-cover{border-radius:4px;width:6.5rem;height:auto;box-shadow:0 2px 8px #0000002e}.detail-epub-meta{color:var(--text-secondary);margin:.35rem 0 0;font-size:.8rem}.detail-epub-stats{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:8px;grid-template-columns:repeat(auto-fit,minmax(min(100%,6.5rem),1fr));gap:.55rem .75rem;margin:.65rem 0 0;padding:.55rem .65rem;font-size:.8rem;display:grid}.detail-epub-stats>div{min-width:0;margin:0}.detail-epub-stats dt{letter-spacing:.02em;text-transform:uppercase;color:var(--text-secondary);margin:0;font-size:.7rem;font-weight:500}.detail-epub-stats dd{font-variant-numeric:tabular-nums;color:var(--text-primary);margin:.15rem 0 0;font-weight:600}.detail-reading-sessions{margin-top:.75rem}.detail-reading-sessions-title{letter-spacing:.02em;text-transform:uppercase;color:var(--text-secondary);margin:0 0 .4rem;font-size:.8rem;font-weight:600}.detail-reading-sessions-label{letter-spacing:.02em;text-transform:uppercase;color:var(--text-secondary);margin:.65rem 0 0;font-size:.75rem;font-weight:600}.stats-wpm-mode{flex-wrap:wrap;align-items:center;gap:.25rem;margin:0 0 .45rem;display:flex}.book-reading-activity{flex-direction:column;gap:.35rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.book-reading-activity-row{flex-wrap:wrap;gap:.35rem .65rem;font-size:.82rem;line-height:1.35;display:flex}.book-reading-activity-kind{color:var(--text-secondary);flex:none;min-width:5.5rem;font-weight:600}.book-reading-activity-main{color:var(--text-primary);font-variant-numeric:tabular-nums;flex:12rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.epub-reader-toc-backdrop{z-index:4;cursor:pointer;background:#0c0a0952;border:0;margin:0;padding:0;position:absolute;inset:0}.epub-reader-toc{z-index:9;width:min(22rem,100% - 4.5rem);padding:.75rem;padding-left:max(.75rem, env(safe-area-inset-left));border:1px solid var(--epub-control-border);background:var(--epub-chrome);color:var(--epub-ink);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-left:0;border-radius:0;flex-direction:column;gap:.65rem;display:flex;position:absolute;inset:0 auto 0 0;overflow:hidden;box-shadow:10px 0 30px #0000002e}.epub-reader-toc-complete{color:var(--epub-muted);margin:0;font-size:.8rem}.epub-reader-toc-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.epub-reader-toc-header h2{margin:0;font-family:Literata,Georgia,serif;font-size:1.05rem;font-weight:600}.epub-reader-toc-progress{color:var(--epub-muted);justify-content:space-between;gap:.75rem;font-size:.8rem;display:flex}.epub-reader-toc-progress strong{color:var(--epub-ink);font-variant-numeric:tabular-nums}.epub-reader-toc-actions{flex-wrap:wrap;gap:.4rem;display:flex}.epub-reader-toc-actions .btn{padding:.35rem .55rem;font-size:.78rem}.epub-reader-toc-empty{color:var(--epub-muted);margin:.5rem 0 0;font-size:.85rem}.epub-reader-toc-list{flex:1;min-height:0;margin:0;padding:0;list-style:none;overflow:auto}.epub-reader-toc-list li{margin:0}.epub-reader-toc-list button{text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:.3rem;padding:.4rem .35rem;font-size:.9rem}.epub-reader-toc-list button:hover,.epub-reader-toc-list button:focus-visible{background:#1c19170f;outline:none}.epub-reader-toc-list li.is-current button{background:color-mix(in srgb, var(--accent,#a8a29e) 22%, transparent);color:var(--epub-ink,inherit);box-shadow:inset 3px 0 0 var(--accent,#a8a29e);font-weight:600}.epub-reader[data-theme=dark] .epub-reader-toc-list li.is-current button{background:color-mix(in srgb, var(--accent,#a8a29e) 28%, transparent)}.epub-reader-footer-chapter{color:var(--epub-ink,inherit);text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:min(42vw,14rem);font-weight:600;display:inline-block;overflow:hidden}.epub-reader-start-overlay{z-index:3;text-align:center;color:var(--epub-ink);background:linear-gradient(180deg, color-mix(in srgb, var(--epub-bg) 18%, transparent) 0%, color-mix(in srgb, var(--epub-bg) 78%, transparent) 42%, color-mix(in srgb, var(--epub-bg) 92%, transparent) 100%);pointer-events:auto;cursor:pointer;place-content:center;gap:.65rem;padding:1.5rem;display:grid;position:absolute;inset:0}.epub-reader-start-overlay p{color:var(--epub-muted);margin:0;font-size:.85rem}.epub-reader-start-btn{background:var(--epub-control-bg);color:var(--epub-ink);border:1px solid var(--epub-control-border);justify-content:center;align-items:center;gap:.4rem;padding:.7rem 1.2rem;font-size:1rem;display:inline-flex}.epub-reader-start-btn:hover:not(:disabled){background:color-mix(in srgb, var(--epub-ink) 10%, var(--epub-control-bg));color:var(--epub-ink);border-color:var(--epub-control-border)}.epub-reader-start-btn:focus-visible{outline:2px solid var(--accent,#7c8cff);outline-offset:2px}.welcome-intro-root,.welcome-tour-root{z-index:10000;pointer-events:none;position:fixed;inset:0}.welcome-intro-backdrop,.welcome-tour-backdrop{pointer-events:auto;background:#04060a8c;position:absolute;inset:0}.welcome-tour-hole{outline:2px solid var(--accent);outline-offset:2px;pointer-events:none;border-radius:10px;transition:top .15s,left .15s,width .15s,height .15s;position:absolute;box-shadow:0 0 0 9999px #04060a8c}.welcome-intro-card,.welcome-tour-bubble{pointer-events:auto;background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-primary);z-index:1;border-radius:14px;padding:1.15rem 1.25rem 1rem;position:absolute;box-shadow:0 18px 50px #00000073}.welcome-tour-bubble{box-sizing:border-box;max-width:min(400px,100vw - 1.5rem);max-height:calc(100vh - 1.5rem);overflow-y:auto}.welcome-intro-card{width:min(440px,100vw - 2rem);top:50%;left:50%;transform:translate(-50%,-50%)}.welcome-intro-card input[type=text]{box-sizing:border-box;width:100%;margin:.35rem 0 .75rem}.welcome-intro-title,.welcome-tour-title{letter-spacing:-.02em;margin:0 0 .5rem;font-size:1.15rem;font-weight:650}.welcome-intro-body,.welcome-tour-body{color:var(--text-secondary);margin:0 0 .75rem;font-size:.95rem;line-height:1.45}.welcome-intro-credit{color:var(--text-muted);margin:0 0 1rem;font-size:.85rem}.welcome-intro-credit a{color:var(--accent)}.welcome-tour-meta{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:.35rem;font-size:.75rem}.welcome-intro-actions,.welcome-tour-actions{justify-content:space-between;align-items:center;gap:.75rem;margin-top:.25rem;display:flex}.epub-cross-device-root{z-index:10050;pointer-events:none;position:fixed;inset:0}.epub-cross-device-backdrop{pointer-events:auto;background:#04060a8c;position:absolute;inset:0}.epub-cross-device-card{pointer-events:auto;background:var(--bg-elevated,#1a1c22);border:1px solid var(--border,#ffffff1f);width:min(420px,100vw - 2rem);color:var(--text-primary,#f2f2f2);z-index:1;border-radius:14px;padding:1.15rem 1.25rem 1rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 18px 50px #00000073}.epub-cross-device-title{letter-spacing:-.02em;margin:0 0 .5rem;font-size:1.15rem;font-weight:650}.epub-cross-device-body{color:var(--text-secondary,#b8b8c0);margin:0 0 1rem;font-size:.95rem;line-height:1.45}.epub-cross-device-actions{justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.epub-jump-to-page-field{margin:0 0 1rem}.epub-jump-to-page-field .validated-number-input{width:100%}.epub-jump-to-page-field input{box-sizing:border-box;border:1px solid var(--border,#ffffff1f);background:var(--bg,#12141a);width:100%;color:var(--text-primary,#f2f2f2);border-radius:8px;padding:.45rem .6rem;font-size:1.15rem}.large-progress-root{z-index:13500;pointer-events:none;position:fixed;inset:0}.large-progress-backdrop{pointer-events:auto;background:#04060a8c;position:absolute;inset:0}.large-progress-card{pointer-events:auto;background:var(--bg-elevated,#1a1c22);border:1px solid var(--border,#ffffff1f);width:min(440px,100vw - 2rem);color:var(--text-primary,#f2f2f2);z-index:1;border-radius:14px;padding:1.15rem 1.25rem 1rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 18px 50px #00000073}.large-progress-title{letter-spacing:-.02em;margin:0 0 .5rem;font-size:1.15rem;font-weight:650}.large-progress-title:focus{outline:none}.large-progress-body{color:var(--text-secondary,#b8b8c0);margin:0 0 1rem;font-size:.95rem;line-height:1.45}.large-progress-audio-move{cursor:pointer;align-items:center;gap:.5rem;margin:0 0 1rem;font-size:.95rem;display:flex}.large-progress-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.55rem;display:flex}@media (width<=520px){.large-progress-actions{flex-direction:column-reverse;align-items:stretch}}.welcome-tour-actions-right{align-items:center;gap:.5rem;display:flex}.epub-lex-popover,.epub-fandom-embed{--epub-bg:#faf7f2;--epub-ink:#1c1917;--epub-muted:#78716c;--epub-link:#57534e;--epub-border:#1c19171f;--epub-chip-bg:#1c191714;--epub-chip-vocab:#8a6914;--epub-chip-invented:#2d7a6e;--epub-error:#b4534a;--epub-btn-bg:#1c19170d;--epub-btn-hover:#1c19171a;--epub-embed-btn-bg:#2d7a6e1f;--epub-embed-btn-hover:#2d7a6e38;--epub-shadow:0 10px 28px #1c19172e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.epub-lex-popover[data-theme=dark],.epub-fandom-embed[data-theme=dark]{--epub-bg:#0c0a09;--epub-ink:#f5f5f4;--epub-muted:#a8a29e;--epub-link:#a8a29e;--epub-border:#f5f5f42e;--epub-chip-bg:#ffffff1a;--epub-chip-vocab:#e8c27a;--epub-chip-invented:#7ecfc0;--epub-error:#f0a8a0;--epub-btn-bg:#ffffff0f;--epub-btn-hover:#ffffff1f;--epub-embed-btn-bg:#7ecfc026;--epub-embed-btn-hover:#7ecfc047;--epub-shadow:0 10px 28px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.epub-lex-popover{z-index:80;box-sizing:border-box;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--epub-bg);width:min(420px,100vw - 16px);color:var(--epub-ink);border:1px solid var(--epub-border);box-shadow:var(--epub-shadow);pointer-events:auto;border-radius:.65rem;padding:.75rem .9rem .85rem;font-size:.92rem;line-height:1.4;position:fixed;overflow:auto}.epub-lex-popover-head{align-items:center;gap:.4rem;margin-bottom:.35rem;display:flex}.epub-lex-popover-head strong{flex:1;font-size:1rem}.epub-lex-chip{text-transform:uppercase;letter-spacing:.04em;background:var(--epub-chip-bg);border-radius:.2rem;padding:.1rem .35rem;font-size:.68rem}.epub-lex-chip-vocabulary{color:var(--epub-chip-vocab)}.epub-lex-chip-invented{color:var(--epub-chip-invented)}.epub-lex-popover-close{color:inherit;cursor:pointer;background:0 0;border:0;padding:0 .15rem;font-size:1.2rem;line-height:1}.epub-lex-popover-lemma{opacity:.7;margin-bottom:.35rem;font-size:.78rem}.epub-lex-popover-excerpt{border-left:2px solid var(--epub-border);opacity:.8;margin:.5rem 0 .2rem;padding-left:.55rem;font-size:.72rem;font-style:italic;line-height:1.35}.epub-lex-popover-body ul{margin:.25rem 0 .5rem;padding-left:1.1rem}.epub-lex-popover-phonetic{opacity:.75;font-size:.8rem}.epub-lex-popover-source{color:var(--epub-link);font-size:.78rem}.epub-lex-popover-status{opacity:.85;margin:.35rem 0}.epub-lex-popover-error{color:var(--epub-error)}.epub-lex-popover-actions{margin-top:.5rem}.epub-lex-popover-actions button{border:1px solid var(--epub-border);background:var(--epub-btn-bg);width:100%;color:inherit;cursor:pointer;border-radius:.3rem;padding:.35rem .5rem}.epub-lex-popover-embed-btn{border:1px solid var(--epub-border);background:var(--epub-embed-btn-bg);color:var(--epub-chip-invented);font:inherit;cursor:pointer;border-radius:.25rem;margin:.35rem .5rem .35rem 0;padding:.28rem .55rem;font-size:.8rem;display:inline-block}.epub-lex-popover-embed-btn:hover{background:var(--epub-embed-btn-hover)}.epub-fandom-embed{z-index:85;background:var(--epub-bg);width:min(840px,100vw - 1.5rem);height:min(78vh,720px);color:var(--epub-ink);border:1px solid var(--epub-border);box-shadow:var(--epub-shadow);border-radius:.45rem;flex-direction:column;display:flex;position:fixed;top:max(.75rem,8vh);left:max(.75rem,50% - min(420px,46vw));overflow:hidden}.epub-fandom-embed-chrome{border-bottom:1px solid var(--epub-border);flex-shrink:0;align-items:center;gap:.5rem;padding:.45rem .65rem;display:flex}.epub-fandom-embed-chrome strong{flex:1;font-size:.9rem}.epub-fandom-embed-ext{color:var(--epub-chip-invented);font-size:.78rem;text-decoration:none}.epub-fandom-embed-ext:hover{text-decoration:underline}.epub-fandom-embed-frame{background:#fff;border:0;flex:1;width:100%}.epub-fandom-embed-hint{opacity:.7;flex-shrink:0;margin:0;padding:.35rem .65rem .45rem;font-size:.72rem}.epub-lex-popover-actions button:disabled{opacity:.6;cursor:default}.detail-epub-lexicon{color:var(--text-secondary,#78716c);flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin:.5rem 0 0;font-size:.88rem;display:flex}.detail-epub-lexicon p{margin:0}.detail-fandom-wiki{max-width:28rem;margin:.75rem 0 0}.detail-fandom-wiki-label{color:var(--text-secondary,#78716c);margin-bottom:.3rem;font-size:.78rem;font-weight:600;display:block}.fandom-wiki-input{align-items:center;gap:.35rem;display:flex;position:relative}.fandom-wiki-input>input{min-width:0;font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated,#fff);color:var(--text-primary);flex:1;padding:.4rem .55rem}.fandom-wiki-suffix{color:var(--text-muted);flex-shrink:0;font-size:.8rem}.fandom-wiki-suggestions{z-index:30;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);max-height:14rem;margin:0;padding:.25rem 0;list-style:none;position:absolute;top:calc(100% + .2rem);left:0;right:0;overflow-y:auto}.fandom-wiki-suggestion{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:.1rem;padding:.4rem .6rem;display:flex}.fandom-wiki-suggestion:hover,.fandom-wiki-suggestion-active{background:var(--bg-hover,#0000000d)}.fandom-wiki-suggestion-label{font-size:.9rem}.fandom-wiki-suggestion-sub{color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem}.detail-fandom-wiki-hint{color:var(--text-muted);margin:.35rem 0 0;font-size:.8rem;line-height:1.35}.detail-fandom-wiki-hint code{font-size:.78rem}.epub-lex-popover-provider{text-transform:uppercase;letter-spacing:.05em;opacity:.75;margin-bottom:.2rem;font-size:.72rem}.epub-lex-popover-body+.epub-lex-popover-body{border-top:1px solid var(--epub-border);margin-top:.65rem;padding-top:.55rem}.detail-vocab-highlights{margin:1.25rem 0 1.5rem}.detail-more .detail-vocab-highlights{margin:.15rem 0 0}.detail-vocab-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-bottom:.35rem;display:flex}.detail-vocab-highlights h3{margin:0;font-size:1.05rem}.detail-vocab-sort{flex-wrap:wrap;align-items:center;gap:.4rem .55rem;font-size:.8rem;display:flex}.detail-vocab-sort-label{color:var(--text-muted,#78716c);font-weight:550}.detail-vocab-sort-keys,.detail-vocab-sort-dirs{border:1px solid var(--border,#0000001f);border-radius:.3rem;display:inline-flex;overflow:hidden}.detail-vocab-sort button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:.25rem .55rem}.detail-vocab-sort-keys button+button,.detail-vocab-sort-dirs button+button{border-left:1px solid var(--border,#0000001f)}.detail-vocab-sort button.is-active{background:var(--bg-hover,#0000000f);font-weight:600}.detail-vocab-sort button:hover{background:var(--bg-hover,#0000000a)}.detail-vocab-hint{color:var(--text-secondary,#78716c);margin:0 0 .75rem;font-size:.85rem}.detail-vocab-toast{color:var(--text-primary,#1c1917);margin:0 0 .5rem;font-size:.88rem}.detail-vocab-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem .55rem;margin:0;padding:0;list-style:none;display:grid}@media (width<=900px){.detail-vocab-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=640px){.detail-vocab-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.detail-vocab-cell{align-items:stretch;gap:.2rem;min-width:0;display:flex}.detail-vocab-word{text-align:left;border:1px solid var(--border,#0000001a);min-width:0;color:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;border-radius:.3rem;flex-direction:column;flex:1;align-items:flex-start;gap:.15rem;padding:.4rem .5rem;display:flex}.detail-vocab-word.is-in-vocab{background:color-mix(in srgb, var(--bg,#fff) 88%, #c48a2a 12%)}.detail-vocab-toggle{border:1px solid var(--border,#0000001f);width:1.75rem;color:inherit;cursor:pointer;background:0 0;border-radius:.3rem;flex:0 0 1.75rem;padding:0;font-size:1.1rem;line-height:1}.detail-vocab-toggle.is-add:hover{color:#c48a2a;border-color:#c48a2a}.detail-vocab-toggle.is-remove:hover{color:#a33;border-color:#a33}.detail-vocab-word-vocabulary{box-shadow:inset 3px 0 #c48a2a}.detail-vocab-word-invented{box-shadow:inset 3px 0 #2a8a7a}.detail-vocab-surface{word-break:break-word;font-size:.92rem;font-weight:550}.detail-vocab-cat{text-transform:uppercase;letter-spacing:.04em;opacity:.65;font-size:.68rem}:root{--ach-bronze:#cd7f32;--ach-silver:silver;--ach-gold:#d4af37;--ach-platinum:#e5e4e2;--ach-master:#7c3aed;--ach-legend:#f0abfc}.achievement-toast{top:calc(var(--env-banner-height) + 1.25rem);z-index:var(--z-toast);border-radius:var(--radius);background:var(--recommend-bg-active);color:#fdf4ff;cursor:pointer;background-size:200% 200%;align-items:flex-start;gap:.75rem;max-width:min(28rem,100vw - 2rem);padding:.85rem 1.1rem;transition:opacity .3s,transform .3s;animation:.45s ease-out achievement-toast-in,4.5s ease-in-out infinite achievement-toast-shimmer;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #00000073,0 0 0 1px #ffffff2e,0 0 28px #f0abfc59}.achievement-toast[data-track=pace]{box-shadow:0 12px 40px #00000073,0 0 0 1px #38bdf859,0 0 36px #fb923c73}.achievement-toast.is-fading{opacity:0;animation:none;transform:translate(-50%)translateY(-.35rem)}@keyframes achievement-toast-in{0%{opacity:0;transform:translate(-50%)translateY(-.75rem)scale(.96)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}@keyframes achievement-toast-shimmer{0%,to{background-position:0%}50%{background-position:100%}}.achievement-toast-badge{filter:drop-shadow(0 0 4px #ffffff59);flex-shrink:0;font-size:1.35rem;line-height:1}.achievement-toast-body{flex-direction:column;gap:.2rem;min-width:0;display:flex}.achievement-toast-kicker{letter-spacing:.08em;text-transform:uppercase;opacity:.88;font-size:.68rem;font-weight:700}.achievement-toast-title{letter-spacing:.01em;font-size:.95rem;font-weight:650}.achievement-toast-desc{opacity:.92;font-size:.8rem;line-height:1.35}.metal-bronze{color:var(--ach-bronze)}.metal-silver{color:var(--ach-silver)}.metal-gold{color:var(--ach-gold)}.metal-platinum{color:var(--ach-platinum)}.metal-master{color:var(--ach-master)}.metal-legend{background:var(--recommend-nav-text);color:#0000;-webkit-background-clip:text;background-clip:text}.page-section-anchor-target,.page-section-anchor[id]{scroll-margin-top:calc(7.5rem + var(--env-banner-height))}.page-section-anchor{flex-wrap:wrap;align-items:center;gap:.35rem .45rem;margin:0;display:inline-flex}.page-section-anchor-title{align-items:center;gap:.4rem;min-width:0;display:inline-flex}.page-section-anchor-share{width:1.6rem;height:1.6rem;color:var(--text-muted,var(--text-secondary));opacity:.45;cursor:pointer;background:0 0;border:none;border-radius:.35rem;flex:none;justify-content:center;align-items:center;margin:0;padding:0;transition:opacity .15s,background .15s,color .15s;display:inline-flex}.page-section-anchor:hover .page-section-anchor-share,.page-section-anchor:focus-within .page-section-anchor-share,.page-section-anchor-share:focus-visible{opacity:1}.page-section-anchor-share:hover,.page-section-anchor-share:focus-visible{background:var(--surface-2,#ffffff0f);color:var(--text-primary,inherit)}.page-section-anchor-share:focus-visible{outline:2px solid var(--focus-ring,#6ea8fe);outline-offset:1px}.stats-achievements{border-top:1px solid var(--border-subtle);margin-top:2rem;padding-top:1.5rem}.stats-achievements.is-standalone{border-top:none;margin-top:0;padding-top:0}.achievements-disabled h1{margin:0 0 .5rem;font-size:1.35rem}.achievements-disabled p{color:var(--text-secondary);max-width:36rem;margin:0;line-height:1.45}.stats-achievements-header h1,.stats-achievements-header h2,.stats-achievements-header .page-section-anchor{margin:0 0 .35rem;font-size:1.25rem}.stats-achievements.is-standalone .stats-achievements-header h1,.stats-achievements.is-standalone .stats-achievements-header .page-section-anchor{font-size:1.45rem}.stats-achievements-lead{color:var(--text-secondary);max-width:40rem;margin:0 0 1rem;font-size:.9rem}.stats-achievements-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;margin-bottom:1rem;display:flex}.stats-achievements-filter-groups{flex-wrap:wrap;align-items:center;gap:.55rem 1rem;display:flex}.stats-achievements-filters{flex-wrap:wrap;gap:.4rem;display:flex}.stats-achievements-metal-filters{gap:.3rem}.stats-achievements-metal-tab{border:1.5px solid color-mix(in srgb, currentColor 45%, var(--border));background:var(--bg-surface);cursor:pointer;opacity:.72;border-radius:50%;place-items:center;width:1.85rem;height:1.85rem;padding:0;font-size:.85rem;line-height:1;transition:opacity .15s,box-shadow .15s,border-color .15s,background .15s;display:grid}.stats-achievements-metal-tab:hover{opacity:1;background:var(--bg-elevated)}.stats-achievements-metal-tab.is-active{opacity:1;box-shadow:0 0 10px color-mix(in srgb, currentColor 40%, transparent);background:var(--bg-elevated);border-color:currentColor}.stats-achievements-metal-tab.metal-legend{background:var(--bg-surface);color:var(--ach-legend)}.stats-achievements-metal-tab.metal-legend span{background:var(--recommend-nav-text);color:#0000;-webkit-background-clip:text;background-clip:text}.stats-achievements-metal-tab.metal-legend.is-active{background:var(--bg-elevated)}.stats-achievements-sort{flex-wrap:wrap;align-items:center;gap:.4rem .55rem;font-size:.8rem;display:flex}.stats-achievements-sort-label{color:var(--text-muted);font-weight:550}.stats-achievements-sort-keys,.stats-achievements-sort-dirs{border:1px solid var(--border);border-radius:.3rem;display:inline-flex;overflow:hidden}.stats-achievements-sort button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:.25rem .55rem}.stats-achievements-sort-keys button+button,.stats-achievements-sort-dirs button+button{border-left:1px solid var(--border)}.stats-achievements-sort button.is-active{background:var(--bg-elevated);color:var(--text-primary);font-weight:600}.stats-achievements-sort button:hover{background:var(--bg-surface)}.achievement-list{flex-direction:column;gap:.65rem;margin:0;padding:0;list-style:none;display:flex}.achievement-row{border-radius:var(--radius);background:var(--bg-elevated);border:1px solid var(--border-subtle);align-items:flex-start;gap:.85rem;padding:.85rem 1rem;display:flex}.achievement-row.is-locked{opacity:.92}.achievement-row.is-tier-locked{opacity:.42;filter:grayscale(.75)}.achievement-row.is-tier-locked .achievement-progress-bar{opacity:.55}.achievement-locked-pill{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border:1px solid var(--border);border-radius:999px;padding:.1rem .45rem;font-size:.68rem}.achievement-badge{background:var(--bg-surface);border:2px solid;border-radius:50%;flex-shrink:0;place-items:center;width:2.25rem;height:2.25rem;font-size:1.1rem;display:grid}.achievement-badge.is-muted{border-color:var(--border);filter:grayscale(.85);opacity:.75;color:var(--text-muted)!important}.achievement-row.is-unlocked .achievement-badge{box-shadow:0 0 12px color-mix(in srgb, currentColor 35%, transparent)}.achievement-row-main{flex:1;min-width:0}.achievement-row-title-line{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.achievement-row-title{color:var(--text-primary);font-weight:600}.achievement-track-pill{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border:1px solid var(--border);border-radius:999px;padding:.1rem .45rem;font-size:.68rem}.achievement-row-desc{color:var(--text-secondary);margin:.25rem 0 .4rem;font-size:.85rem;line-height:1.4}.achievement-row-meta{color:var(--text-muted);margin:0;font-size:.78rem}.achievement-evidence{color:var(--text-secondary);margin:.45rem 0 0;font-size:.8rem}.achievement-evidence-summary{cursor:pointer;color:var(--text-muted);font-weight:550;list-style-position:outside}.achievement-evidence-summary:hover{color:var(--text-primary)}.achievement-evidence-lead{color:var(--text-primary);margin:.4rem 0 .35rem;line-height:1.4}.achievement-evidence-facts{gap:.2rem .75rem;margin:0;display:grid}.achievement-evidence-fact{grid-template-columns:minmax(5.5rem,8rem) 1fr;align-items:baseline;gap:.35rem .75rem;display:grid}.achievement-evidence-fact dt{color:var(--text-muted);margin:0;font-weight:500}.achievement-evidence-fact dd{color:var(--text-primary);margin:0}.achievement-evidence-list-block{margin:.45rem 0 0}.achievement-evidence-list-heading{letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted);margin:0 0 .2rem;font-size:.72rem;font-weight:650}.achievement-evidence-list{margin:0;padding-left:1.1rem;line-height:1.4}.achievement-evidence-more{color:var(--text-muted);margin:.15rem 0 0}.achievement-progress-bar{background:var(--bg-input);border-radius:999px;height:.4rem;margin:.35rem 0 .25rem;overflow:hidden}.achievement-progress-bar>span{background:var(--accent);border-radius:inherit;height:100%;transition:width .25s;display:block}.dashboard-today-progress{flex-direction:column;gap:.35rem;padding:.15rem 0 .25rem;display:flex}.dashboard-today-progress-words{letter-spacing:-.02em;color:var(--text-primary);margin:0;font-size:1.85rem;font-weight:650;line-height:1.15}.dashboard-today-progress-unit{color:var(--text-secondary);margin-left:.25rem;font-size:.95rem;font-weight:500}.dashboard-today-progress-pages{color:var(--text-secondary);margin-left:.55rem;font-size:.85rem;font-weight:500}.dashboard-today-progress-time{letter-spacing:-.01em;color:var(--text-primary);margin:0;font-size:1.15rem;font-weight:600;line-height:1.2}.dashboard-today-progress-detail{margin:0;font-size:.8rem;line-height:1.35}.dashboard-today-week{flex-direction:column;gap:.28rem;margin-top:.35rem;display:flex}.dashboard-today-week-caption{margin:0;font-size:.72rem;line-height:1.2}.dashboard-today-week-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:.15rem;margin:0;padding:0;list-style:none;display:grid}.dashboard-today-week-day{width:100%;min-width:0;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:.35rem;flex-direction:column;align-items:center;gap:.12rem;padding:.2rem .05rem;display:flex}.dashboard-today-week-day.is-selected{outline:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 18%, transparent)}.dashboard-today-week-day.is-today{background:color-mix(in srgb, var(--accent) 12%, transparent)}.dashboard-today-week-dow{letter-spacing:.02em;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.62rem;font-weight:600;line-height:1;overflow:hidden}.dashboard-today-week-day.is-today .dashboard-today-week-dow{color:var(--text-primary)}.dashboard-today-week-kept{color:var(--text-secondary);font-size:.62rem;line-height:1}.today-week-day-detail{margin-top:.45rem}.today-week-day-detail-title,.today-week-day-detail-stats{margin:0}.today-week-day-detail-title{font-size:.8rem;font-weight:650}.today-week-day-detail-stats{color:var(--text-secondary);font-size:.85rem}.dashboard-today-week-words{font-variant-numeric:tabular-nums;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.72rem;font-weight:650;line-height:1.15;overflow:hidden}.dashboard-vocab-stats{flex-direction:column;gap:.55rem;display:flex}.dashboard-vocab-stat{color:inherit;border:1px solid #0000;border-radius:.3rem;flex-direction:column;gap:.1rem;margin:0 -.45rem;padding:.35rem .45rem;text-decoration:none;transition:background-color .12s,border-color .12s;display:flex}.dashboard-vocab-stat:hover{background:#c48a2a1f;border-color:#c48a2a59}.dashboard-vocab-stat-value{font-variant-numeric:tabular-nums;font-size:1.55rem;font-weight:650;line-height:1.15}.dashboard-vocab-stat-label{color:var(--text-secondary);text-transform:lowercase;font-size:.78rem}.stats-today-progress{border:1px solid var(--border,#2a3344);background:var(--surface-elevated,#ffffff08);border-radius:10px;margin:0 0 1rem;padding:.75rem 1rem}.stats-today-progress-title{margin:0 0 .35rem;font-size:.95rem;font-weight:600}.stats-today-progress-words{letter-spacing:-.02em;margin:0;font-size:1.6rem;font-weight:650}.stats-today-progress-unit{color:var(--text-secondary);margin-left:.25rem;font-size:.9rem;font-weight:500}.stats-today-progress-pages{color:var(--text-secondary);margin-left:.5rem;font-size:.85rem;font-weight:500}.stats-today-progress-time{letter-spacing:-.01em;color:var(--text-primary);margin:.25rem 0 0;font-size:1.05rem;font-weight:600}.stats-today-progress-detail{margin:.35rem 0 0;font-size:.8rem}.today-reading-spans-panel{margin-top:.55rem}.today-reading-spans-wrap{overflow-x:auto}.today-reading-spans{border-collapse:collapse;width:100%;font-size:.78rem}.today-reading-spans th,.today-reading-spans td{text-align:left;border-bottom:1px solid var(--border,#2a3344);white-space:nowrap;vertical-align:baseline;padding:.28rem .4rem}.today-reading-spans th{color:var(--text-secondary);font-size:.68rem;font-weight:600}.today-reading-spans td:first-child{white-space:normal;min-width:8rem}.today-reading-spans .num{text-align:right;font-variant-numeric:tabular-nums}.today-reading-spans a{color:inherit}.today-reading-spans-note{margin:.35rem 0 0;font-size:.75rem}.today-reading-span-compact{display:none}@media (width<=700px){.today-reading-spans thead,.today-reading-spans td:not(.today-reading-span-compact){display:none}.today-reading-span-compact{white-space:normal;min-width:0;padding:.4rem 0;display:block}.today-reading-span-compact-title{font-weight:600;display:block}.today-reading-span-compact-meta{color:var(--text-secondary);margin-top:.1rem;font-size:.75rem;display:block}}.club-goals{border:1px solid var(--border,#2a3344);background:var(--surface-elevated,#ffffff08);border-radius:10px;margin:0 0 1rem;padding:.75rem 1rem}.club-goals-title{margin:0 0 .35rem;font-size:.95rem;font-weight:600}.club-goals-total{letter-spacing:-.02em;margin:0;font-size:1.35rem;font-weight:650}.club-goals-total-unit{color:var(--text-secondary);margin-left:.25rem;font-size:.9rem;font-weight:500}.club-goals-hint{margin:.25rem 0 .6rem;font-size:.8rem}.club-goals-board{margin:0;padding:0;list-style:none}.club-goals-row{border-top:1px solid var(--border,#2a3344);justify-content:space-between;gap:.75rem;padding:.35rem 0;font-size:.9rem;display:flex}.club-goals-form{flex-wrap:wrap;align-items:end;gap:.75rem 1rem;margin-top:.75rem;display:flex}.dashboard-achievements-link{margin:.75rem 0 0;font-size:.85rem}.dashboard-achievements-link a{color:var(--accent);text-decoration:none}.dashboard-achievements-link a:hover{text-decoration:underline}.dashboard-achievements-teaser-block+.dashboard-achievements-teaser-block{border-top:1px solid color-mix(in srgb, var(--border,#444) 70%, transparent);margin-top:1.1rem;padding-top:.85rem}.dashboard-achievements-teaser-heading{letter-spacing:.01em;margin:0 0 .25rem;font-size:.95rem;font-weight:650}.dashboard-achievements-teaser-lead{color:var(--text-secondary);margin:0 0 .75rem;font-size:.85rem}.dashboard-achievements-teaser-list{flex-direction:column;gap:.65rem;margin:0;padding:0;list-style:none;display:flex}.dashboard-achievements-teaser-row{align-items:flex-start;gap:.75rem;display:flex}.dashboard-achievements-teaser-row .achievement-badge{width:1.85rem;height:1.85rem;font-size:.95rem}.dashboard-achievements-teaser-main{flex:1;min-width:0}.dashboard-achievements-teaser-title-line{flex-wrap:wrap;align-items:baseline;gap:.4rem .55rem;display:flex}.dashboard-achievements-teaser-title{color:var(--text-primary);font-size:.92rem;font-weight:600}.dashboard-achievements-teaser-pct{font-variant-numeric:tabular-nums;color:var(--text-muted);margin-left:auto;font-size:.78rem}.dashboard-achievements-teaser-desc{color:var(--text-secondary);margin:.2rem 0 0;font-size:.82rem;line-height:1.35}.dashboard-achievements-teaser-meta{color:var(--text-muted);margin:0;font-size:.75rem}.dashboard-achievements-teaser-row.is-unlocked .dashboard-achievements-teaser-title{font-weight:650}.stats-daily-wpm-summary{margin:0 0 .5rem;font-size:.88rem}.stats-daily-wpm-summary strong{color:var(--text-primary,inherit);font-weight:650}.last-365d-daily-wpm,.last-365d-daily-reading-time{margin-top:1.25rem}.dashboard-achievements-teaser .achievement-progress-bar{margin:.3rem 0 .2rem}.dashboard-friends-activity{flex-direction:column;gap:.7rem;margin:.15rem 0 0;padding:0;list-style:none;display:flex}.dashboard-friends-activity-row{align-items:flex-start;gap:.65rem;min-width:0;display:flex}.dashboard-friends-activity-body{flex:1;min-width:0}.dashboard-friends-activity-copy{margin:0;font-size:.92rem;line-height:1.4}.dashboard-friends-activity-name,.dashboard-friends-activity-title{color:var(--text-primary);font-weight:600;text-decoration:none}.dashboard-friends-activity-name:hover,.dashboard-friends-activity-title:hover{text-decoration:underline}.dashboard-friends-activity-when{color:var(--text-muted);margin-top:.15rem;font-size:.78rem;display:block}.nav-badge{font-variant-numeric:tabular-nums;color:#8a5a12;background:#c48a2a47;border-radius:999px;justify-content:center;align-items:center;min-width:1.15rem;height:1.15rem;padding:0 .3rem;font-size:.68rem;font-weight:650;line-height:1;display:inline-flex}.vocabulary-page .vocab-due-line{margin:.35rem 0 .85rem;font-size:1.05rem;font-weight:550}.vocab-start-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 .85rem;display:flex}.vocab-start-row .btn-secondary{align-items:center;gap:.3rem;display:inline-flex}.vocab-add-root{z-index:10040;pointer-events:none;position:fixed;inset:0}.vocab-add-backdrop{cursor:pointer;pointer-events:auto;background:#04060a8c;border:0;margin:0;padding:0;position:absolute;inset:0}.vocab-add-card{pointer-events:auto;background:var(--bg-elevated);border:1px solid var(--border);width:min(420px,100vw - 2rem);color:var(--text-primary);z-index:1;border-radius:14px;padding:1.15rem 1.25rem 1rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 18px 50px #00000073}.vocab-add-heading{letter-spacing:-.02em;margin:0 0 .45rem;font-size:1.15rem;font-weight:650}.vocab-add-body{color:var(--text-secondary);margin:0 0 .85rem;font-size:.95rem;line-height:1.45}.vocab-add-label{color:var(--text-muted);margin:0 0 .3rem;font-size:.82rem;display:block}.vocab-add-input{box-sizing:border-box;border:1px solid var(--border);background:var(--bg-input);width:100%;color:inherit;font:inherit;border-radius:.4rem;padding:.5rem .65rem}.vocab-add-error{color:var(--reject,#c45c5c);margin:.55rem 0 0;font-size:.85rem}.vocab-add-actions{align-items:center;gap:.6rem;margin-top:.9rem;display:flex}.vocabulary-page .vocab-toolbar{flex-wrap:wrap;gap:.35rem;margin:0 0 1.25rem;display:flex}.vocabulary-page .vocab-toolbar button{border:1px solid var(--border,#0000001f);color:inherit;cursor:pointer;background:0 0;border-radius:.3rem;padding:.35rem .75rem;font-size:.88rem}.vocabulary-page .vocab-toolbar button.is-active{background:#c48a2a24;border-color:#c48a2a}.vocab-statistics{margin-top:.25rem}.vocab-stat-tiles{grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));gap:.75rem;margin-bottom:1.25rem;display:grid}.vocab-stats-charts{grid-template-columns:1fr}.vocab-statistics .chart-expand-hint,.vocab-statistics .stats-empty{color:var(--text-muted);font-size:.85rem}.vocab-mem-summary{flex-wrap:wrap;gap:.35rem 1.1rem;margin:0 0 .35rem;font-size:.85rem;display:flex}.vocab-mem-legend{color:var(--text-muted);flex-wrap:wrap;gap:.45rem 1rem;margin:.4rem 0 0;padding:0;font-size:.78rem;list-style:none;display:flex}.vocab-mem-legend li{align-items:center;gap:.35rem;display:inline-flex}.vocab-mem-swatch{border-radius:2px;flex:none;width:.7rem;height:.7rem}.vocab-mem-hardest{margin:.35rem 0 0}.vocab-card{border:1px solid var(--border,#0000001f);border-radius:.4rem;max-width:36rem;padding:1.25rem 1.35rem;box-shadow:inset 4px 0 #c48a2a}.vocab-card-invented{box-shadow:inset 4px 0 #2a8a7a}.vocab-card-meta{flex-wrap:wrap;align-items:baseline;gap:.5rem .85rem;margin-bottom:.65rem;font-size:.82rem;display:flex}.vocab-card-cat{text-transform:uppercase;letter-spacing:.04em;opacity:.7;font-size:.7rem}.vocab-card-goods{white-space:nowrap;margin-left:auto;font-size:.75rem}.vocab-card-lemma{word-break:break-word;margin:0 0 1rem;font-size:1.65rem;font-weight:600}.vocab-card-def{margin:0 0 .75rem;line-height:1.45}.vocab-card-senses{max-height:100%;margin:0 0 .75rem;padding-left:1.15em;line-height:1.35;overflow-y:auto}.vocab-card-senses li+li{margin-top:.4em}.vocab-card-pos{opacity:.72;text-transform:lowercase;margin-right:.4em;font-style:italic;font-weight:650}.vocab-card-context{border-left:2px solid var(--border,#00000026);opacity:.8;margin:0 0 1rem;padding-left:.75rem;font-size:.85rem;line-height:1.4}.vocab-rate{grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;display:grid}.vocab-rate button{border:1px solid var(--border,#00000024);color:inherit;cursor:pointer;background:0 0;border-radius:.3rem;padding:.55rem .35rem;font-size:.88rem;transition:transform 60ms,background-color 60ms,border-color 60ms,box-shadow 60ms}@media (hover:hover){.vocab-rate button:hover:not(:disabled){border-color:#c48a2a}}.vocab-rate button:active:not(:disabled),.vocab-rate button.is-pressed:not(:disabled){background:#c48a2a47;border-color:#c48a2a;transform:translateY(2px)scale(.97);box-shadow:inset 0 2px 4px #00000047}.vocab-rate button:disabled{opacity:.5;cursor:default}.vocab-list ul{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.vocab-row{border:1px solid var(--border,#0000001a);border-radius:.35rem;flex-wrap:wrap;justify-content:space-between;align-items:stretch;gap:.5rem .75rem;padding:.65rem .75rem;display:flex;box-shadow:inset 3px 0 #c48a2a}.vocab-row-invented{box-shadow:inset 3px 0 #2a8a7a}.vocab-row-main{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.vocab-row-cat{text-transform:uppercase;letter-spacing:.04em;opacity:.65;font-size:.68rem}.vocab-row-ctx{opacity:.8;font-size:.85rem}.vocab-row-def{opacity:.88;-webkit-line-clamp:3;white-space:pre-line;-webkit-box-orient:vertical;font-size:.85rem;line-height:1.35;display:-webkit-box;overflow:hidden}.vocab-edit-btn{border:1px solid var(--border,#0000001f);color:inherit;cursor:pointer;background:0 0;border-radius:.3rem;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.8rem;display:inline-flex}.vocab-card-def-wrap{flex-direction:column;align-items:flex-start;gap:.45rem;min-width:0;display:flex}.vocab-card-def-actions{flex-wrap:wrap;gap:.35rem;display:flex}.vocab-lookup-chooser{flex-direction:column;align-items:stretch;gap:.55rem;width:100%;min-width:0;display:flex}.vocab-lookup-chooser-meta{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.vocab-lookup-chooser-provider{letter-spacing:.02em;text-transform:uppercase;opacity:.78;font-size:.82rem;font-weight:650}.vocab-lookup-chooser-count{opacity:.62;font-size:.78rem}.vocab-lookup-chooser-hint{margin:0;font-size:.85rem}.vocab-lookup-chooser-flip,.vocab-lookup-chooser-actions{flex-wrap:wrap;gap:.4rem;display:flex}.vocab-lookup-chooser-flip .btn{align-items:center;gap:.2rem;display:inline-flex}.vocab-def-editor{flex-direction:column;gap:.45rem;width:100%;min-width:0;display:flex}.vocab-def-editor-label{letter-spacing:.02em;opacity:.72;font-size:.75rem}.vocab-def-editor-word{font-size:1.15rem;font-weight:650}.vocab-def-editor-input,.vocab-review-missing-input{box-sizing:border-box;width:100%;font:inherit;border:1px solid var(--border,#00000024);background:var(--bg-input,transparent);color:inherit;resize:vertical;border-radius:.35rem;padding:.45rem .55rem}.vocab-def-editor-actions,.vocab-review-missing-actions{flex-wrap:wrap;gap:.4rem;display:flex}.vocab-row-side{flex-direction:column;flex:none;justify-content:space-between;align-items:flex-end;gap:.45rem;display:flex}.vocab-row-scores{flex-direction:column;align-items:flex-end;gap:.02rem;margin-top:auto;line-height:1.15;display:flex}.vocab-row-avg{font-variant-numeric:tabular-nums;opacity:.48;font-size:.72rem}.vocab-row-retention{font-variant-numeric:tabular-nums;opacity:.3;font-size:.64rem}.vocab-row-actions{flex-wrap:wrap;gap:.35rem;display:flex}.vocab-row-actions button{border:1px solid var(--border,#00000024);color:inherit;cursor:pointer;background:0 0;border-radius:.3rem;padding:.3rem .65rem;font-size:.85rem}.vocab-review-done{flex-direction:column;align-items:flex-start;gap:.75rem;display:flex}.vocab-review-modal-root{z-index:10050;pointer-events:none;position:fixed;inset:0}.vocab-review-modal-backdrop{cursor:pointer;pointer-events:auto;background:#04060a8c;border:0;margin:0;padding:0;position:absolute;inset:0}.vocab-review-modal-panel{pointer-events:auto;background:var(--bg-elevated,#1a1c22);border:1px solid var(--border,#ffffff1f);width:66.666vw;max-width:none;height:66.666vh;max-height:none;color:var(--text-primary,#f2f2f2);z-index:1;border-radius:14px;flex-direction:column;padding:1.25rem 1.5rem 7.5rem;display:flex;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 18px 50px #00000073}.vocab-review-modal-header{flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.vocab-review-modal-header-actions{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.vocab-review-modal-delete{color:var(--danger,#c45c5c);align-items:center;gap:.35rem;display:inline-flex}.vocab-review-modal-delete:hover:not(:disabled){color:var(--danger,#c45c5c)}.vocab-review-modal-delete:active:not(:disabled),.vocab-review-modal-delete.is-pressed:not(:disabled){filter:brightness(.88)}.vocab-review-modal-header h3{margin:0;font-size:1.05rem;font-weight:650}.vocab-review-modal-panel .vocab-review{flex-direction:column;flex:1;min-height:0;display:flex}.vocab-review-modal-panel .vocab-card{border-color:var(--border,#ffffff1a);background:0 0;flex-direction:column;flex:1;max-width:none;min-height:0;padding:1.5rem 1.75rem;display:flex;overflow:hidden}.vocab-review-modal-panel .vocab-card-meta{margin-bottom:1rem;font-size:2.46rem}.vocab-review-modal-panel .vocab-card-cat{font-size:2.1rem}.vocab-review-modal-panel .vocab-card-lemma{overflow-wrap:break-word;min-width:0;margin:0 0 .35rem;font-size:4.95rem;line-height:1.15}.vocab-review-modal-panel .vocab-card-lemma.is-single-token{white-space:nowrap}.vocab-card-phonetic{opacity:.75;letter-spacing:.02em;margin:0 0 1.25rem;font-size:.95rem;font-style:italic}.vocab-review-modal-panel .vocab-card-phonetic{margin:0 0 1.5rem;font-size:2.7rem}.vocab-review-modal-panel .vocab-card-def,.vocab-review-modal-panel .vocab-card-senses{margin:0 0 1.25rem;font-size:2.7rem;line-height:1.35}.vocab-review-modal-panel .vocab-card-context{opacity:.78;margin:0 0 1.5rem;padding-left:1rem;font-size:.95rem;line-height:1.4}.vocab-review-modal-panel .vocab-card-back{flex-direction:column;flex:1;min-width:0;min-height:0;padding-bottom:.25rem;display:flex;overflow:auto}.vocab-reveal-spacer{flex:1;min-height:2rem}.vocab-review-missing{flex-direction:column;align-items:stretch;gap:.45rem;max-width:36rem;display:flex}.vocab-review-missing .muted{font-size:.95rem}.vocab-review-missing-label{font-size:.82rem;font-weight:600}.vocab-review-missing-input{resize:vertical;width:100%;min-height:5.5rem;font:inherit;border:1px solid var(--border,#ffffff29);background:var(--bg,#12141a);color:inherit;border-radius:.35rem;padding:.55rem .65rem;font-size:1rem;line-height:1.4}.vocab-review-missing-save{align-self:flex-start;font-size:.92rem}.vocab-review-modal-footer{text-align:center;letter-spacing:.01em;color:var(--text-muted,#f2f2f29e);flex-shrink:0;margin-top:auto;padding-top:.35rem;padding-bottom:.15rem;font-size:.78rem;line-height:1.3}.vocab-review-dock{pointer-events:none;z-index:2;flex-direction:column;justify-content:flex-end;width:66.666vw;height:66.666vh;padding:0 3rem 1.5rem;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.vocab-review-dock>*{pointer-events:auto}.vocab-review-dock .vocab-rate{gap:.75rem;margin-top:0}.vocab-review-dock .vocab-rate button{padding:1rem .5rem;font-size:2.64rem}.vocab-review-dock button{touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.vocab-review-dock .vocab-reveal{align-self:center;padding:1rem 2rem;font-size:2.64rem;transition:transform 60ms,background-color 60ms,border-color 60ms,box-shadow 60ms,filter 60ms}.vocab-review-dock .vocab-reveal:active:not(:disabled),.vocab-review-dock .vocab-reveal.is-pressed:not(:disabled){filter:brightness(.88);background:#aa741f;border-color:#8a5a12;transform:translateY(3px)scale(.97);box-shadow:inset 0 3px 6px #00000059}.vocab-review-dock .vocab-kbd{margin-left:.5rem;padding:.15rem .45rem;font-size:1.6rem}.vocab-review-modal-panel .vocab-review-done{text-align:center;flex:1;justify-content:center;align-items:center;font-size:2.7rem}.vocab-review-modal-panel .vocab-card-meta .muted,.vocab-review-modal-panel .vocab-review .muted{font-size:inherit}.vocab-kbd{border:1px solid var(--border,#fff3);opacity:.75;vertical-align:middle;border-radius:.2rem;margin-left:.35rem;padding:.05rem .3rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.68rem;display:inline-block}.vocab-history-table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:.92rem}.vocab-history-table th,.vocab-history-table td{text-align:left;border-bottom:1px solid var(--border,#0000001a);vertical-align:top;padding:.55rem .35rem;overflow:hidden}.vocab-history-table th:first-child,.vocab-history-table td:first-child{width:6.5rem}.vocab-history-table th:nth-child(2),.vocab-history-table td:nth-child(2){width:3.6rem}.vocab-history-table th:nth-child(3),.vocab-history-table td:nth-child(3){width:4.4rem}.vocab-history-date{white-space:nowrap;font-variant-numeric:tabular-nums;width:6.2rem}.vocab-history-table th{text-transform:uppercase;letter-spacing:.03em;opacity:.8;font-size:.8rem;font-weight:600}.vocab-history-sort{color:inherit;cursor:pointer;font:inherit;text-transform:uppercase;letter-spacing:.03em;background:0 0;border:0;padding:0;font-weight:600}.vocab-history-sort:hover{color:#c48a2a}.vocab-history-book{margin-top:.15rem;font-size:.82rem;display:block}.vocab-history-mem{font-variant-numeric:tabular-nums;opacity:.52;font-size:.85rem}.vocab-history-table .vocab-row-cat{margin-left:.4rem;display:inline-block}.vocab-history-word{cursor:help;border-bottom:1px dotted color-mix(in srgb, currentColor 35%, transparent);max-width:100%;display:block;position:relative}.vocab-history-word strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.vocab-history-def-tip{z-index:20;border:1px solid var(--border,#ffffff24);background:var(--bg-elevated,#1a1c22);width:min(22rem,70vw);color:var(--text-primary,#f2f2f2);white-space:pre-line;opacity:0;visibility:hidden;pointer-events:none;border-radius:.35rem;padding:.55rem .7rem;font-size:.85rem;font-weight:400;line-height:1.4;transition:opacity .12s;position:absolute;bottom:calc(100% + .4rem);left:0;box-shadow:0 10px 28px #00000059}.vocab-history-word:hover .vocab-history-def-tip,.vocab-history-word:focus .vocab-history-def-tip,.vocab-history-word:focus-within .vocab-history-def-tip{opacity:1;visibility:visible}@media (width<=767px){.vocab-history-table{font-size:.78rem}.vocab-history-table th,.vocab-history-table td{padding:.45rem .22rem}.vocab-history-table th:first-child,.vocab-history-table td:first-child{width:4.6rem}.vocab-history-book,.vocab-history-table .vocab-row-cat{display:none}}.phone-bottom-nav,.phone-more-backdrop,.phone-more-sheet{display:none}@media (width<=1023px){html,body{max-width:100%;overflow-x:clip}#root,.pull-to-refresh-root,.pull-to-refresh-content,.app-shell,.app-main,.page{min-width:0;max-width:100%}.tag-manager-table-wrap,.admin-users-table-scroll,.stats-table-scroll{max-width:100%}}@media (width<=767px){.app-shell{padding-left:.9rem;padding-right:.9rem;padding-bottom:calc(3.25rem + env(safe-area-inset-bottom,0px))}.app-header{gap:.45rem;margin-bottom:1rem;padding:.55rem 0 .65rem}.app-header-bar{gap:.45rem}.tattersail-logo-header{height:2.35rem}.app-shell .app-header-bar,.app-shell .app-nav,.app-shell .app-auth{display:none}.app-header-continue{max-width:min(16.5rem,64vw);padding:.28rem .55rem;font-size:.75rem}.app-back{min-height:1.9rem;padding:.28rem .65rem .28rem .5rem;font-size:.82rem}.app-main{padding-bottom:1rem}.input-wrap,.input-wrap-grow,.tag-manager-search,.stats-filter{flex:100%;min-width:0;max-width:100%}.app-footer{margin-bottom:.25rem;padding:.75rem 0 .35rem}.app-footer-about{display:none}.app-footer-tagline{font-size:.8rem}.tattersail-logo-footer{height:1.6rem}.page-section-anchor-target,.page-section-anchor[id]{scroll-margin-top:calc(4.5rem + var(--env-banner-height))}.phone-bottom-nav{z-index:12000;min-height:3.05rem;padding:.2rem .15rem calc(.2rem + env(safe-area-inset-bottom,0px));background:var(--chrome-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border-subtle);justify-content:space-around;align-items:stretch;gap:0;display:flex;position:fixed;bottom:0;left:0;right:0}.phone-bottom-nav[data-deploy-env=local]{background:color-mix(in srgb, var(--env-local) 22%, var(--chrome-bg));border-top-color:color-mix(in srgb, var(--env-local) 35%, var(--border-subtle))}.phone-bottom-nav[data-deploy-env=dev]{background:color-mix(in srgb, var(--env-dev) 24%, var(--chrome-bg));border-top-color:color-mix(in srgb, var(--env-dev) 38%, var(--border-subtle))}.phone-bottom-nav[data-deploy-env=prod]{background:var(--chrome-bg)}.phone-bottom-nav-tab{color:var(--text-muted);font:inherit;letter-spacing:.01em;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:.12rem;margin:0;padding:.35rem .15rem;font-size:.625rem;font-weight:550;line-height:1.1;text-decoration:none;display:flex;position:relative}.phone-bottom-nav-tab span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:0 .1rem;overflow:hidden}.phone-bottom-nav-tab.is-active{color:var(--accent)}.phone-bottom-nav-badge{background:var(--accent);color:#0a0c10;text-align:center;border-radius:999px;min-width:1rem;height:1rem;padding:0 .25rem;font-size:.55rem;font-weight:700;line-height:1rem;position:absolute;top:.15rem;right:calc(50% - 1.35rem)}.phone-more-backdrop{z-index:12010;cursor:pointer;background:#00000073;border:none;margin:0;padding:0;display:block;position:fixed;inset:0}.phone-more-sheet{z-index:12020;max-height:min(70vh,28rem);padding:.35rem .85rem calc(3.6rem + env(safe-area-inset-bottom,0px));background:var(--bg-elevated,#141820);border-top:1px solid var(--border-subtle);border-radius:.85rem .85rem 0 0;flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:auto;box-shadow:0 -8px 28px #00000059}.phone-more-sheet-handle{background:var(--border-subtle);border-radius:999px;width:2.25rem;height:.28rem;margin:.25rem auto .75rem}.phone-more-sheet-nav{flex-direction:column;gap:.15rem;display:flex}.phone-more-link{border-radius:var(--radius-sm,.4rem);color:var(--text-primary);align-items:center;gap:.75rem;padding:.7rem .55rem;font-size:.95rem;font-weight:500;text-decoration:none;display:flex}.phone-more-link.is-active{color:var(--accent);background:#7c8cff14}.phone-more-sheet-auth{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:.75rem;margin-top:.65rem;padding-top:.65rem;display:flex}.phone-more-user{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.8rem;overflow:hidden}.dashboard-page .page-desc{display:none}.dashboard-grid{grid-template-columns:1fr;gap:.75rem}.dashboard-tile{padding:.85rem .85rem .75rem}.dashboard-tile-header{gap:.35rem .5rem;margin-bottom:.35rem}.dashboard-tile-header h3,.dashboard-tile-header .page-section-anchor{flex:auto;min-width:0}.dashboard-today-progress-words{overflow-wrap:anywhere;font-size:1.55rem}.dashboard-today-progress-time{font-size:1.1rem}.dashboard-page .last-365d-glance-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,6.5rem),1fr));gap:.45rem}.dashboard-page .last-365d-glance-cards .stats-card{min-height:5.25rem}.dashboard-rec-grid{grid-template-columns:1fr}.dashboard-rec-card{flex-direction:row;align-items:flex-start}.recommend-grid{grid-template-columns:1fr}.recommend-slot{aspect-ratio:auto;min-height:22rem}.stats-charts,.book-link-form{grid-template-columns:1fr}.book-link-form input[type=url],.book-link-form input[type=text]{grid-column:1}.goals-date-row,.reading-progress-page-fields{grid-template-columns:1fr}.reading-progress-page-panel .reading-progress-page-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.reading-goal-books li:not(.reading-goal-book-add-row):not(.reading-goal-book-drop-end){grid-template-columns:minmax(0,1fr);align-items:start;gap:.35rem .45rem}.reading-goal-books-reorderable li:not(.reading-goal-book-add-row):not(.reading-goal-book-drop-end){grid-template-columns:1.25rem auto minmax(0,1fr)}.reading-goal-books-editable li:not(.reading-goal-book-add-row):not(.reading-goal-book-drop-end){grid-template-columns:minmax(0,1fr) auto}.reading-goal-books-reorderable.reading-goal-books-editable li:not(.reading-goal-book-add-row):not(.reading-goal-book-drop-end){grid-template-columns:1.25rem auto minmax(0,1fr) auto}.reading-goal-book-progress,.reading-goal-books-reorderable .reading-goal-book-progress,.reading-goal-books li.reading-goal-book-open .reading-goal-book-progress,.reading-goal-books-reorderable li.reading-goal-book-open .reading-goal-book-progress{grid-area:2/1/auto/-1;width:100%;max-width:none}.reading-goal-book-remove{grid-area:1/-1;align-self:start}.reading-goal-book-head{flex-wrap:nowrap}.reading-goal-book-info{min-width:0}.reading-progress-inline{width:100%;max-width:none}.reading-progress-inline .reading-progress-label{justify-content:flex-start}.reading-progress-inline .reading-progress-page-popover{max-width:min(18rem,100vw - 2rem);left:0;right:auto}.dashboard-book-title,.dashboard-rec-title,.dashboard-book-author{overflow-wrap:anywhere;word-break:break-word}.dashboard-continue-header{flex-wrap:wrap;min-width:0}.dashboard-continue-series{overflow-wrap:anywhere;min-width:0}.shelf-list .shelf-item,.search-list .search-item,.book-card{min-width:0;max-width:100%}.shelf-list .book-cover-md,.search-list .book-cover-md{width:5rem;height:7.25rem}}body.vocab-review-open .phone-bottom-nav,body.vocab-review-open .phone-more-backdrop,body.vocab-review-open .phone-more-sheet{display:none!important}@media (width<=1023px){.vocab-review-modal-panel{height:calc(100dvh - 11.2rem - env(safe-area-inset-bottom,0px));width:min(92vw,100vw - 1rem);max-height:none;padding-bottom:1.1rem;top:.7rem;transform:translate(-50%)}.vocab-review-modal-panel .vocab-card-meta{margin-bottom:.45rem;font-size:.82rem}.vocab-review-modal-panel .vocab-card-cat{font-size:.72rem}.vocab-review-dock{pointer-events:auto;z-index:12050;width:100%;height:auto;padding:.35rem .4rem calc(.25rem + env(safe-area-inset-bottom,0px));background:var(--bg-elevated,#1a1c22);border-top:1px solid var(--border,#ffffff1f);position:fixed;inset:auto 0 0;transform:none;box-shadow:0 -10px 28px #00000047}.vocab-review-dock .vocab-reveal{align-self:stretch;width:100%;min-height:7rem;padding:1.6rem .75rem;font-size:1.25rem}.vocab-review-dock .vocab-rate{gap:.25rem;width:100%}.vocab-review-dock .vocab-rate button{min-height:7rem;padding:1.6rem .2rem;font-size:1.1rem}.vocab-review-dock .vocab-kbd{font-size:.78rem}}@media (width<=767px){.vocab-review-dock .vocab-kbd,.vocab-review-modal-delete .vocab-kbd{display:none}}.friends-page{max-width:46rem}.friend-detail-page{max-width:58rem}.friends-invite-form,.friends-section{margin-top:1.4rem}.friends-invite-label{margin-bottom:.35rem;font-size:.85rem;display:block}.friends-invite-row{flex-wrap:wrap;gap:.5rem;display:flex}.friends-invite-row input{flex:16rem;min-width:0}.friends-invite-help,.friends-invite-feedback,.friends-empty,.friends-row-email,.friends-row-unlocks{color:var(--muted,#6b6560);font-size:.9rem}.friends-invite-error{color:var(--danger,#a33);font-size:.9rem}.friends-rows{flex-direction:column;gap:.65rem;margin:0;padding:0;list-style:none;display:flex}.friends-row{border-bottom:1px solid var(--border,#00000014);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem 0;display:flex}.friends-row-id{flex-direction:column;gap:.15rem;min-width:0;display:flex}.friends-row-actions{flex-wrap:wrap;gap:.4rem;display:flex}.friends-back{margin:0 0 .75rem}.friend-detail-header{flex-direction:column;align-items:flex-start;gap:.35rem;margin-bottom:1.25rem;display:flex}.friend-detail-header h1{margin:0}.friend-detail-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.public-profile-shell{max-width:58rem;margin:0 auto}.public-profile-chrome{justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem 0;display:flex}.public-profile-brand{align-items:center;display:inline-flex}.friends-public-toggle{flex:16rem}.friend-detail-tabs{border-bottom:1px solid var(--border,#00000014);flex-wrap:wrap;gap:.35rem;margin:0 0 1.1rem;padding-bottom:.45rem;display:flex}.friend-detail-tab{border:1px solid var(--border,#0000001f);color:inherit;border-radius:999px;align-items:center;padding:.28rem .7rem;font-size:.88rem;text-decoration:none;display:inline-flex}.friend-detail-tab.is-selected{background:var(--text,#1c1917);color:var(--bg,#fff);border-color:#0000}.friend-shelf,.friend-goals,.friend-goal-books{margin:0;padding:0;list-style:none}.friend-shelf{flex-direction:column;gap:.75rem;display:flex}.friend-shelf-row{border-bottom:1px solid var(--border,#00000014);align-items:flex-start;gap:.75rem;padding-bottom:.75rem;display:flex}.friend-shelf-cover{object-fit:cover;background:var(--border,#00000014);border-radius:.2rem;flex:none;width:3.2rem;height:4.7rem}.friend-shelf-cover--empty{display:block}.friend-shelf-main{flex:auto;min-width:0}.friend-shelf-main p{margin:.15rem 0 0}.friend-shelf-meta{flex-wrap:wrap;align-items:center;gap:.35rem;font-size:.82rem;display:flex}.friend-shelf-tag{border:1px solid var(--border,#00000024);border-radius:999px;padding:.05rem .45rem}.friend-shelf-actions{flex:none}.friend-shelf-mine{color:var(--muted,#6b6560);font-size:.82rem}.friend-goals{flex-direction:column;gap:1rem;display:flex}.friend-goal-card{border-bottom:1px solid var(--border,#00000014);padding:.75rem 0}.friend-goal-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.friend-goal-head h2{margin:0;font-size:1.1rem}.friend-goal-books{flex-direction:column;gap:.25rem;margin-top:.45rem;display:flex}@media (width<=767px){.friend-shelf-row{flex-wrap:wrap}.friend-shelf-actions{width:100%}}[data-depth=on]{--book-spine:linear-gradient(90deg, #16110e 0%, #3a322c 45%, #241e1a 100%);--book-pages:repeating-linear-gradient(#f4eadc 0px, #f4eadc 1px, #e6d9c6 1px, #e6d9c6 2px);--book-pages-edge:#d4c4ab;--depth-slab:var(--border);--depth-extrude:8px}[data-depth=on] .dashboard-grid,[data-depth=on] .goals-list,[data-depth=on] .last-365d-glance-cards,[data-depth=on] .recommend-grid,[data-depth=on] .dashboard-rec-grid,[data-depth=on] .preferences-page{perspective:1600px}[data-depth=on] .book-solid{perspective:800px;perspective-origin:50% 40%;flex-shrink:0;display:block}[data-depth=on] .book-solid-sm{padding:0 .35rem .3rem .12rem}[data-depth=on] .book-solid-md{padding:0 .5rem .4rem .18rem}[data-depth=on] .book-solid-lg{padding:0 .65rem .5rem .22rem}[data-depth=on] .shelf-list .shelf-item,[data-depth=on] .search-list .search-item,[data-depth=on] .book-card{overflow:visible}[data-depth=on] .book-cover{transform-style:preserve-3d;transform:rotateY(var(--book-rest-y)) rotateX(var(--book-rest-x));background:0 0;border-color:#0000;transition:transform .18s,box-shadow .18s;overflow:visible;box-shadow:4px 10px 18px #00000073}[data-depth=on] .book-cover-img,[data-depth=on] .book-cover-fallback{border-radius:inherit}[data-depth=on] .book-cover:before,[data-depth=on] .book-cover:after{content:"";pointer-events:none;position:absolute;top:0;bottom:0}[data-depth=on] .book-cover:before{width:var(--book-depth);background:var(--book-spine);transform-origin:0;left:0;transform:rotateY(-90deg);box-shadow:inset -1px 0 #ffffff14}[data-depth=on] .book-cover:after{width:var(--book-depth);background:var(--book-pages);border-right:1px solid var(--book-pages-edge);transform-origin:100%;right:0;transform:rotateY(90deg)}@media (hover:hover) and (pointer:fine){[data-depth=on] .book-solid:hover .book-cover,[data-depth=on] .book-blurb-hover:hover .book-cover{transform:rotateY(calc(var(--book-rest-y) * .4)) rotateX(2deg) translateY(-2px);box-shadow:4px 12px 20px #0000006b}}[data-depth=on] .recommend-cover-wrap .book-solid,[data-depth=on] .book-blurb-hover-cover-card .book-solid{perspective:none;width:100%;height:100%;padding:0}[data-depth=on] .recommend-card .book-cover{box-shadow:none;border-color:#0000;overflow:hidden;transform:none}[data-depth=on] .recommend-card .book-cover:before,[data-depth=on] .recommend-card .book-cover:after{content:none}[data-depth=on] .recommend-slot{perspective:1100px}[data-depth=on] .dashboard-tile,[data-depth=on] .stats-card,[data-depth=on] .reading-goal-card,[data-depth=on] .preferences-page .preferences-panel,[data-depth=on] .recommend-card.recommend-card-idle{box-shadow:var(--depth-extrude) var(--depth-extrude) 0 0 var(--depth-slab), 0 18px 32px -8px #0000008c;transition:transform .18s,box-shadow .18s,border-color .15s;transform:rotateX(1.3deg)}[data-depth=on] .recommend-card.recommend-card-idle{transform-style:preserve-3d;overflow:visible;transform:rotateY(-7deg)rotateX(3deg)}[data-depth=on] .recommend-card.recommend-card-idle .recommend-cover-wrap{border-radius:inherit;overflow:hidden}@media (hover:hover) and (pointer:fine){[data-depth=on] .dashboard-tile:hover,[data-depth=on] .stats-card:hover,[data-depth=on] .reading-goal-card:hover,[data-depth=on] .preferences-page .preferences-panel:hover{box-shadow:var(--depth-extrude) calc(var(--depth-extrude) + 2px) 0 0 var(--depth-slab), 12px 18px 26px #00000052;transform:rotateX(.4deg)translateY(-3px)}[data-depth=on] .recommend-card-idle:hover{box-shadow:var(--depth-extrude) var(--depth-extrude) 0 0 var(--depth-slab), 12px 18px 26px #00000061;transform:rotateY(-3deg)rotateX(1deg)translateY(-4px)}}@media (prefers-reduced-motion:reduce){[data-depth=on] .book-cover,[data-depth=on] .dashboard-tile,[data-depth=on] .stats-card,[data-depth=on] .reading-goal-card,[data-depth=on] .preferences-page .preferences-panel,[data-depth=on] .recommend-card.recommend-card-idle{transition:none}[data-depth=on] .book-solid:hover .book-cover,[data-depth=on] .book-blurb-hover:hover .book-cover,[data-depth=on] .dashboard-tile:hover,[data-depth=on] .stats-card:hover,[data-depth=on] .reading-goal-card:hover,[data-depth=on] .preferences-page .preferences-panel:hover,[data-depth=on] .recommend-card-idle:hover{transform:rotateY(var(--book-rest-y,0deg)) rotateX(var(--book-rest-x,1.3deg));box-shadow:var(--depth-extrude,6px) var(--depth-extrude,6px) 0 0 var(--depth-slab,transparent), 10px 14px 22px #00000047}[data-depth=on] .book-solid:hover .book-cover,[data-depth=on] .book-blurb-hover:hover .book-cover{transform:rotateY(var(--book-rest-y)) rotateX(var(--book-rest-x));box-shadow:3px 8px 16px #00000061}[data-depth=on] .recommend-card-idle:hover{transform:rotateY(-7deg)rotateX(3deg)}}.sync-account-pills{flex-wrap:wrap;align-items:center;gap:.25rem;min-width:0;display:inline-flex}.sync-account-pill{text-overflow:ellipsis;white-space:nowrap;border-radius:var(--radius-pill);background:var(--bg-hover,var(--bg-elevated));max-width:10rem;color:var(--text-secondary);border:1px solid var(--border-subtle,var(--border));padding:.15rem .5rem;font-size:.7rem;font-weight:600;line-height:1.2;display:inline-block;overflow:hidden}.sync-account-control{flex-direction:column;align-items:flex-end;gap:.2rem;min-width:0;display:flex}.sync-account-control-compact{flex:none;max-width:12.5rem}.sync-account-control-row{align-items:center;gap:.25rem;max-width:100%;display:inline-flex}.sync-account-select{font:inherit;border:1px solid var(--border-subtle);border-radius:var(--radius-sm,6px);background:var(--bg);min-width:0;max-width:10rem;color:var(--text);padding:.22rem .35rem;font-size:.75rem}.sync-account-send{font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm,6px);background:var(--bg-surface,var(--bg-elevated));min-width:1.75rem;height:1.75rem;color:var(--text-primary);cursor:pointer;padding:0 .35rem;font-size:.85rem;font-weight:700;line-height:1}.sync-account-send:disabled{opacity:.55;cursor:default}.sync-account-notice{text-align:right;font-size:.7rem;line-height:1.25}.associated-accounts-form{margin-top:.75rem}.associated-accounts-add{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.associated-accounts-add input{min-width:0;font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm,6px);background:var(--bg);color:var(--text);flex:14rem;padding:.4rem .55rem}.associated-accounts-list{flex-direction:column;gap:.4rem;margin:.4rem 0 0;padding:0;list-style:none;display:flex}.associated-accounts-list li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem .75rem;font-size:.9rem;display:flex}.associated-accounts-actions{align-items:center;gap:.4rem;display:inline-flex}.audiobook-audio{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.audiobook-player h3{margin-bottom:.35rem}.audiobook-hint{color:var(--text-secondary);margin:0 0 .75rem;font-size:.85rem}.audiobook-place{flex-wrap:wrap;gap:.5rem .8rem;margin:0 0 .5rem;font-size:.8rem;display:flex}.audiobook-actions{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.audiobook-actions progress,.audiobook-player progress{width:min(100%,16rem);margin-top:.35rem;display:block}.audiobook-transport{flex-wrap:wrap;align-items:center;gap:.4rem;margin:.75rem 0;display:flex}.audiobook-seek-row{align-items:center;gap:.6rem;display:flex}.audiobook-seek-row input[type=range]{flex:1;min-width:0}.audiobook-time{font-variant-numeric:tabular-nums;color:var(--text-secondary);font-size:.85rem}.audiobook-speed{flex-direction:column;align-items:stretch;gap:.45rem;margin:.7rem 0 .2rem;font-size:.85rem;display:flex}.audiobook-speed-head{justify-content:space-between;align-items:baseline;gap:.6rem;display:flex}.audiobook-speed input[type=range]{width:100%;min-width:0;max-width:16rem}.audiobook-speed-steps{justify-content:center;gap:.75rem;display:flex}.audiobook-chapters{max-height:14rem;margin:.75rem 0 0;padding:0;list-style:none;overflow:auto}.audiobook-stage-chapters{text-align:left;margin-top:.5rem}.audiobook-chapters li+li{border-top:1px solid var(--border-subtle)}.audiobook-chapters button{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;gap:.75rem;padding:.45rem .1rem;display:flex}.audiobook-chapters button[aria-current=true]{color:var(--accent)}.audiobook-chapter-size{color:var(--text-secondary);flex:none;font-size:.8rem}.audiobook-stage-inline-top{justify-content:space-between;align-items:center;gap:.5rem;width:100%;margin:-.15rem 0 .15rem;display:flex}.audiobook-stage-tools{align-items:center;gap:.4rem;display:flex}.audiobook-sleep{position:relative}.audiobook-sleep-badge{white-space:nowrap;color:var(--accent);pointer-events:none;font-size:.62rem;line-height:1;position:absolute;bottom:-.15rem;left:50%;transform:translate(-50%)}.audiobook-sleep-menu{z-index:5;border:1px solid var(--border-subtle);background:var(--surface,var(--chrome-bg));border-radius:.65rem;flex-direction:column;gap:.15rem;min-width:10rem;padding:.35rem;display:flex;position:absolute;top:calc(100% + .35rem);right:0;box-shadow:0 8px 24px #0000002e}.audiobook-sleep-menu button{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:.4rem;padding:.4rem .55rem}.audiobook-sleep-menu button[aria-checked=true]{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.audiobook-sleep-menu button:hover{background:color-mix(in srgb, var(--accent) 10%, transparent)}.audiobook-round-armed{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, var(--border-subtle))}.audiobook-mini-bar{z-index:11000;padding:.45rem .9rem calc(.45rem + env(safe-area-inset-bottom,0px));background:var(--chrome-bg);border-top:1px solid var(--border-subtle);align-items:center;gap:.75rem;display:flex;position:fixed;bottom:0;left:0;right:0}.audiobook-mini-open{flex-direction:column;flex:1;align-items:flex-start;gap:.05rem;min-width:0;display:flex}.audiobook-mini-chapter-open{max-width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}button.audiobook-mini-title,button.audiobook-mini-time,button.audiobook-cover{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0}button.audiobook-mini-title{text-align:left;padding:0}button.audiobook-mini-time{font-variant-numeric:tabular-nums;color:var(--text-secondary);flex:none;padding:0;font-size:.85rem}.audiobook-mini-title,.audiobook-mini-chapter{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.audiobook-mini-title{font-weight:650}.audiobook-mini-chapter{color:var(--text-secondary);font-size:.8rem}body[data-audiobook-bar] .app-shell{padding-bottom:4.2rem}.audiobook-stage-root{z-index:13000;justify-content:center;align-items:center;padding:5vh 6vw;display:flex;position:fixed;inset:0}.audiobook-stage-backdrop{cursor:pointer;touch-action:none;background:#00000073;border:0;position:absolute;inset:0}body[data-audiobook-stage]{overflow:hidden}.audiobook-stage{z-index:1;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:min(46rem,100%);min-height:min(70vh,40rem);max-height:86vh;box-shadow:var(--shadow-sm);padding:1.1rem 1.4rem 1.5rem;position:relative;overflow:auto}.audiobook-stage-top{justify-content:space-between;align-items:center;display:flex}.audiobook-cover{justify-content:center;width:100%;margin:.4rem auto .8rem;display:flex}button.audiobook-cover{padding:0}.audiobook-cover .book-cover{width:9rem;height:13rem}.audiobook-cover-page{margin:.15rem auto .7rem}.audiobook-cover-page .book-cover{width:7rem;height:10rem}.audiobook-cover-mini{flex:none;width:auto;margin:0}.audiobook-cover-mini .book-cover{width:2.5rem;height:3.5rem}.audiobook-stage-title{text-align:center;margin:0}.audiobook-stage-title a{color:inherit;text-decoration:none}.audiobook-stage-title a:hover{text-decoration:underline}.audiobook-stage-author,.audiobook-stage-chapter{text-align:center;color:var(--text-secondary);margin:.25rem 0 0}.audiobook-transport-row{align-items:center;gap:.45rem;margin-top:1.15rem;display:flex}.audiobook-transport-spacer{flex:1 1 0;min-width:0}.audiobook-stage-transport{flex-wrap:nowrap;flex:none;justify-content:center;gap:.7rem;margin:0}.audiobook-seek-scope{flex:auto;justify-content:flex-end;min-width:max-content;display:flex}.audiobook-seek-scope button{border:1px solid var(--border);background:var(--bg-input);color:var(--text-secondary);font:inherit;cursor:pointer;padding:.38rem .5rem;font-size:.72rem;line-height:1}.audiobook-seek-scope button:first-child{border-radius:999px 0 0 999px}.audiobook-seek-scope button:last-child{border-radius:0 999px 999px 0;margin-left:-1px}.audiobook-seek-scope button[aria-pressed=true]{z-index:1;background:var(--accent);border-color:var(--accent);color:#fff;position:relative}.audiobook-seek-scope button:hover:not([aria-pressed=true]){background:var(--bg-hover);color:var(--text-primary)}.audiobook-round{border:1px solid var(--border);background:var(--bg-input);width:3rem;height:3rem;color:var(--text-primary);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.audiobook-round:hover:not(:disabled){background:var(--bg-hover)}.audiobook-round:disabled{opacity:.45;cursor:not-allowed}.audiobook-round-sm{width:2.4rem;height:2.4rem}.audiobook-round-play{background:var(--accent);border-color:var(--accent);color:#fff;width:4.25rem;height:4.25rem}.audiobook-round-sm.audiobook-round-play{width:2.4rem;height:2.4rem}.audiobook-round-play:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.audiobook-play-glyph{margin-left:2px}.audiobook-skip15{place-items:center;width:1.65rem;height:1.65rem;display:grid;position:relative}.audiobook-skip15 svg{grid-area:1/1}.audiobook-skip15-num{font-variant-numeric:tabular-nums;grid-area:1/1;margin-top:1px;font-size:.58rem;font-weight:700;line-height:1}.audiobook-player .audiobook-stage-inline{border:1px solid var(--border);border-radius:var(--radius);width:100%;height:auto;min-height:0;max-height:none;box-shadow:none;margin-top:.85rem;padding:.85rem .95rem 1rem}.audiobook-player .audiobook-stage-inline .audiobook-round{width:2.55rem;height:2.55rem}.audiobook-player .audiobook-stage-inline .audiobook-round-play{width:3.35rem;height:3.35rem}.audiobook-player .audiobook-stage-inline .audiobook-transport-row{margin-top:.85rem}.audiobook-player .audiobook-stage-inline .audiobook-stage-transport{gap:.5rem;margin-top:0}.audiobook-stage .audiobook-speed{margin-top:1rem}.audiobook-stage .audiobook-speed input[type=range]{max-width:none}.audiobook-stage-stats{text-align:center;justify-content:center;gap:1.75rem;margin:1.15rem 0 .15rem;display:flex}.audiobook-stage-stat-value{font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:600;display:block}.audiobook-stage-stat-label{color:var(--text-secondary);margin-top:.15rem;font-size:.75rem;display:block}.audiobook-stage-stat-pace{color:var(--text-secondary);font-variant-numeric:tabular-nums;margin-top:.12rem;font-size:.68rem;font-weight:500;display:block}@media (width<=1023px){.audiobook-stage-root{padding:0}.audiobook-stage-backdrop{display:none}.audiobook-stage{width:100%;height:100%;max-height:none;padding:calc(.75rem + env(safe-area-inset-top,0px)) 1rem calc(1.2rem + env(safe-area-inset-bottom,0px));border:0;border-radius:0}.audiobook-stage-transport{gap:.45rem}.audiobook-round{width:2.7rem;height:2.7rem}.audiobook-round-play{width:3.7rem;height:3.7rem}.audiobook-stage-stats{gap:1.1rem}}@media (width<=420px){.audiobook-transport-row{flex-wrap:wrap;justify-content:center}.audiobook-transport-spacer{display:none}.audiobook-seek-scope{flex:1 0 100%;justify-content:flex-end}}body[data-audiobook-stage] .phone-bottom-nav,body[data-audiobook-stage] .audiobook-mini-bar{display:none!important}@media (width<=767px){.audiobook-mini-bar{bottom:calc(3.55rem + env(safe-area-inset-bottom,0px));padding-bottom:.45rem}body[data-audiobook-bar] .app-shell{padding-bottom:calc(3.55rem + 3.7rem + env(safe-area-inset-bottom,0px))}}.phone-fast-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;min-width:0;display:grid}.phone-fast-span{grid-column:1/-1}.phone-fast-tile{text-align:left;width:100%;min-height:6.5rem;color:inherit;font:inherit;cursor:pointer;flex-direction:column;align-items:flex-start;gap:.15rem;text-decoration:none;display:flex}.phone-fast-book{text-align:center;align-items:center;gap:.35rem}.phone-fast-book .phone-fast-value{-webkit-line-clamp:3;-webkit-box-orient:vertical;width:100%;display:-webkit-box;overflow:hidden}.phone-fast-book .phone-fast-verb{width:100%}.phone-fast-kicker{color:var(--text-muted);align-items:center;gap:.3rem;font-size:.75rem;font-weight:600;display:inline-flex}.phone-fast-value{font-size:1.05rem;font-weight:650;line-height:1.25}.phone-fast-unit{color:var(--text-muted);font-size:.8rem;font-weight:600}.phone-fast-verb{margin-top:auto;font-size:.82rem;font-weight:650}.phone-fast-today-words{margin:0;font-size:1.45rem;font-weight:650;line-height:1.2}.phone-fast-resume{border:0;border-top:1px solid var(--border-subtle);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;align-items:center;gap:.65rem;margin-top:.75rem;padding:.45rem 0 0;text-decoration:none;display:flex}.phone-fast-resume-copy{flex-direction:column;flex:auto;gap:.1rem;min-width:0;display:flex}.phone-fast-resume-title{font-weight:650;line-height:1.25}.phone-fast-empty{margin:.75rem 0 0}.phone-fast-grid .dashboard-rate-read-tile.is-compact,.phone-fast-grid .phone-fast-friends{min-height:6.5rem}.phone-fast-grid .is-compact .dashboard-rate-read-book{align-items:center}.phone-fast-grid .is-compact .dashboard-rate-read-actions{flex-wrap:wrap}.phone-progress-root{z-index:12500;background:var(--bg-base);color:var(--text-primary);display:flex;position:fixed;inset:0}.phone-progress-panel{background:var(--bg-base);width:100%;min-height:0;padding:calc(var(--env-banner-height) + .75rem) .9rem calc(.9rem + env(safe-area-inset-bottom,0px));flex-direction:column;gap:.75rem;display:flex;overflow:auto}.phone-progress-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.phone-progress-header h2{margin:0;font-size:1.15rem}.phone-progress-list{flex-direction:column;gap:.85rem;margin:0;padding:0;list-style:none;display:flex}.phone-progress-row{align-items:flex-start;gap:.7rem;min-width:0;display:flex}.phone-progress-row-main{flex:auto;min-width:0}.phone-progress-title{justify-content:space-between;gap:.5rem;margin:0 0 .35rem;font-weight:650;display:flex}.phone-progress-pct{color:var(--text-muted);flex:none;font-weight:600}.phone-progress-count{margin:0}.writing-page .goals-form-title{margin:0;font-size:1rem}.writing-page .goals-create-form input,.writing-page .goals-create-form select,.writing-page .goals-create-form textarea{box-sizing:border-box;width:100%}.writing-layout{gap:1.5rem;display:grid}@media (width>=900px){.writing-layout{grid-template-columns:minmax(0,1.2fr) minmax(16rem,.8fr);align-items:start}}.writing-work-list{margin:0;padding:0;list-style:none}.writing-work-row{border-bottom:1px solid var(--border-subtle);color:inherit;gap:.2rem;padding:.75rem 0;text-decoration:none;display:grid}.writing-work-title{font-weight:650}.writing-work-counts{font-variant-numeric:tabular-nums}.writing-progress{background:var(--bg-input);border-radius:999px;height:.4rem;display:block;overflow:hidden}.writing-progress>span{background:var(--accent);height:100%;display:block}.writing-targets{margin-top:1.25rem}.writing-goal-stats{gap:.35rem;margin:.6rem 0;display:grid}.writing-goal-stats div{justify-content:space-between;gap:.75rem;display:flex}.writing-goal-stats dt{color:var(--text-secondary);margin:0;font-weight:500}.writing-goal-stats dd{font-variant-numeric:tabular-nums;margin:0}.writing-goal-months,.writing-goal-revision,.writing-goal-kept{margin:.35rem 0}.writing-goal-kept{font-size:.85rem}.writing-goal-works{margin:.5rem 0;padding:0;list-style:none}.writing-goal-works li{flex-wrap:wrap;align-items:baseline;gap:.35rem .6rem;margin:.35rem 0;display:flex}.writing-goal-attach{flex-wrap:wrap;align-items:end;gap:.5rem;margin:.5rem 0 .75rem;display:flex}.writing-goal-attach label{flex:12rem;gap:.3rem;display:grid}.writing-session-list{margin:0;padding:0;list-style:none}.writing-session-list li{border-bottom:1px solid var(--border-subtle);padding:.75rem 0}.writing-session-list p{margin:0 0 .35rem}.writing-today-slot{min-width:0;max-width:100%}.writing-goal-pace{margin-top:.35rem}.writing-goal-bar-wrap{padding:.28rem 0 .15rem;position:relative}.writing-goal-bar-tip{z-index:6;pointer-events:none;min-width:9.5rem;display:none;position:absolute;top:calc(100% - .05rem);left:0}.writing-goal-bar-tip .chart-tooltip-row>span:first-child{align-items:center;gap:.35rem;display:inline-flex}.writing-goal-bar-wrap:hover .writing-goal-bar-tip,.writing-goal-bar-wrap:focus-within .writing-goal-bar-tip{display:block}[data-testid=dashboard-writing-today] .dashboard-today-week-day{cursor:default}.writing-today-chips{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin:.15rem 0 .2rem;display:grid}.writing-today-chip{gap:.1rem;margin:0;display:grid}.writing-today-chip-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.85rem;font-weight:650;line-height:1.15}.writing-today-chip-label{color:var(--text-secondary);font-size:.75rem}.writing-today-minutes{margin:.55rem 0 0;font-size:.85rem}.shelf-list .shelf-item,.search-list .search-item,.shelf-list .book-card{align-items:flex-start;gap:.45rem .65rem;margin-bottom:.35rem;padding:.45rem .65rem}.search-list .book-cover-md,.shelf-list .book-cover-md{--book-depth:10px;--book-rest-y:-16deg;--book-rest-x:5deg;width:4.35rem;height:6.4rem}[data-depth=on] .search-list .book-solid-md,[data-depth=on] .shelf-list .book-solid-md{padding:0 .55rem .4rem .15rem}.search-list .book-cover-fallback svg,.shelf-list .book-cover-fallback svg{width:20px;height:20px}.shelf-item-text,.search-item-text{flex-wrap:wrap;flex:14rem;align-items:baseline;gap:.1rem .5rem;min-width:0;max-width:none;display:flex}.library-title-row,.search-title-row{flex:100%;order:1;align-items:center;gap:.2rem .4rem}.shelf-row-actions{flex-direction:column;flex:none;align-self:flex-start;align-items:flex-end;gap:.3rem;display:flex}.shelf-row-actions .epub-read-link-pill,.search-item-actions .epub-read-link-pill{align-self:flex-end}.library-title-row .kind-badge,.library-title-row .reading-format-badge,.search-title-row .reading-format-badge{padding:.05rem .35rem;font-size:.65rem}.search-item-text .book-author,.search-item-text .search-series-row,.search-item-text .library-status-badge,.search-item-text .book-meta-inline{order:2}.shelf-item-text>.shelf-labels-row{flex:100%;order:2}.library-title-row>.book-author,.library-title-row>.star-rating{order:0}.shelf-item-text .book-author,.search-item-text .book-author{display:inline}.shelf-item-text .star-rating-sm{margin-top:0}.shelf-series-row,.search-series-row{flex-wrap:wrap;align-items:center;gap:.25rem .4rem;display:inline-flex}.shelf-item-text .series-link,.shelf-item-text .subseries-link,.search-item-text .series-link,.search-item-text .subseries-link,.series-pos-standalone,.subseries-pos-standalone,.shelf-item-text .book-meta-inline,.search-item-text .book-meta-inline{margin-top:0}.search-item-text .library-status-badge{font-size:.75rem;display:inline}.shelf-book-tags-series{flex-wrap:wrap;flex:0 auto;order:2;gap:.2rem;margin-top:0;display:inline-flex}.shelf-book-tags-other{flex:100%;order:10;gap:.2rem;margin-top:.2rem}.shelf-labels-row>.shelf-series-row{order:2}.shelf-labels-row>.shelf-length-row{order:3}.shelf-labels-row>.shelf-file-status{order:4}.shelf-book-tags{gap:.2rem}.shelf-book-tags .book-tag{padding:.04rem .32rem;font-size:.62rem;line-height:1.2}.shelf-item-text .shelf-labels-row>.reading-dates,.shelf-item-text .shelf-labels-row>.book-meta-inline{flex:100%;order:12;margin-top:.15rem}.shelf-item-text>.reading-progress,.shelf-item-text>.reading-progress-summary,.shelf-item-text>.book-meta-inline{flex:100%;order:13;margin-top:.15rem}.shelf-item-text .reading-progress-compact{max-width:22rem}.book-row-blurb-placeholder{display:none}.book-row-blurb-slot{flex:0 13rem;align-self:stretch;min-width:8rem;max-width:18rem;position:relative;overflow:hidden}.book-row-blurb-slot .book-row-blurb{-webkit-box-orient:vertical;flex:none;align-self:auto;min-width:0;max-width:none;margin:0;padding:0;font-size:.75rem;line-height:1.3;display:-webkit-box;position:absolute;inset:0;overflow:hidden}.want-row-trailing,.search-item-actions,.book-card .book-actions{align-self:flex-start}.book-select-wrap,.want-order-rank,.want-order-grip{align-self:flex-start;padding-top:.15rem}@media (width<=720px){.search-list .book-cover-md,.shelf-list .book-cover-md{width:3.4rem;height:5rem}.shelf-item-text,.search-item-text{flex:10rem;min-width:0}.book-row-blurb-slot,.book-row-blurb{display:none}}
