:root,:root[data-theme=light]{--theme-mode:light;--tg-bg:var(--tg-theme-bg-color,#f8f9fa);--tg-text:var(--tg-theme-text-color,#0f172a);--tg-hint:var(--tg-theme-hint-color,#64748b);--tg-link:var(--tg-theme-link-color,#2563eb);--tg-button-bg:var(--tg-theme-button-color,#2481cc);--tg-button-text:var(--tg-theme-button-text-color,#ffffff);--tg-sec-bg:var(--tg-theme-secondary-bg-color,#ffffff);--primary:var(--brand);--primary-foreground:var(--brand-foreground);--background:var(--tg-bg);--foreground:var(--tg-text);--muted-foreground:var(--tg-hint);--card:var(--tg-sec-bg);--card-foreground:var(--tg-text);--font-serif:ui-serif,"New York","Noto Serif",Georgia,"Times New Roman",serif;--border:rgba(0,0,0,0.08);--border-strong:rgba(0,0,0,0.16);--border-subtle:rgba(0,0,0,0.05);--border-medium:rgba(0,0,0,0.10);--muted:rgba(0,0,0,0.04);--status-neutral-bg:rgba(0,0,0,0.05);--shadow-sm:0 1px 3px rgba(0,0,0,0.06);--shadow-md:0 4px 16px rgba(0,0,0,0.07);--shadow-lg:0 10px 30px rgba(0,0,0,0.09);--bg-deep:#f1f5f9;--bg-surface:#ffffff;--bg-card-quiet:#ffffff;--bg-card-subtle:#f8fafc;--brand:#25603a;--brand-foreground:#ffffff;--brand-soft:rgba(37,96,58,0.10);--brand-border:rgba(37,96,58,0.22);--accent-sage:#236c4b;--accent-sage-soft:rgba(35,108,75,0.10);--accent-sage-border:rgba(35,108,75,0.22);--text-primary:#0f172a;--text-secondary:#64748b;--text-tertiary:#94a3b8;--bottom-bar-bg:rgba(255,255,255,0.94);--header-btn-bg:#f1f5f9;--header-btn-border:rgba(0,0,0,0.08);--header-btn-hover:#e2e8f0;--status-reading:#1d5e96;--status-reading-bg:#e2eefa;--status-read:#2b6434;--status-read-bg:#e4f0e3;--status-want:#7c5407;--status-want-bg:#f8eed2;--status-shelved:#4a5563;--status-shelved-bg:#eceef1;--status-neutral:var(--muted-foreground);--status-wishlist:#5e4390;--status-wishlist-bg:#efe9f9;--star:#d0951a;--flame:#d2701c;--segment-selected:#ffffff;--danger:#dc2626;--danger-bg:rgba(220,38,38,0.10);--radius-xs:4px;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--radius-full:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:28px;--text-2xs:11px;--text-xs:12.5px;--text-sm:13.5px;--text-base:15px;--text-md:16px;--text-lg:19px;--text-xl:23px;--text-2xl:28px;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}:root[data-theme=dark]{--theme-mode:dark;--tg-bg:var(--tg-theme-bg-color,#0b0d12);--tg-text:var(--tg-theme-text-color,#f3f4f6);--tg-hint:var(--tg-theme-hint-color,#9ca3af);--tg-link:var(--tg-theme-link-color,#3b82f6);--tg-button-bg:var(--tg-theme-button-color,#2481cc);--tg-button-text:var(--tg-theme-button-text-color,#ffffff);--tg-sec-bg:var(--tg-theme-secondary-bg-color,#151922);--primary:var(--brand);--primary-foreground:var(--brand-foreground);--background:var(--tg-bg);--foreground:var(--tg-text);--muted-foreground:var(--tg-hint);--card:var(--tg-sec-bg);--card-foreground:var(--tg-text);--border:rgba(255,255,255,0.07);--border-strong:rgba(255,255,255,0.12);--border-subtle:rgba(255,255,255,0.06);--border-medium:rgba(255,255,255,0.10);--muted:rgba(255,255,255,0.04);--status-neutral-bg:rgba(255,255,255,0.06);--shadow-sm:0 1px 3px rgba(0,0,0,0.2);--shadow-md:0 8px 30px rgba(0,0,0,0.35);--shadow-lg:0 20px 50px rgba(0,0,0,0.5);--bg-deep:#0e1015;--bg-surface:#141720;--bg-card-quiet:#181c26;--bg-card-subtle:#1c212e;--brand:#8ccb9f;--brand-foreground:#0e1510;--brand-soft:rgba(140,203,159,0.14);--brand-border:rgba(140,203,159,0.28);--accent-sage:#5ba382;--accent-sage-soft:rgba(91,163,130,0.14);--accent-sage-border:rgba(91,163,130,0.28);--text-primary:#f0f2f5;--text-secondary:#9da4b0;--text-tertiary:#6b7280;--bottom-bar-bg:rgba(18,21,28,0.94);--header-btn-bg:#222632;--header-btn-border:rgba(255,255,255,0.11);--header-btn-hover:#2a3040;--status-reading:#9cc7ff;--status-reading-bg:rgba(94,162,255,0.16);--status-read:#92ddb6;--status-read-bg:rgba(69,201,138,0.15);--status-want:#f2c77e;--status-want-bg:rgba(240,169,53,0.16);--status-shelved:#b9c4d2;--status-shelved-bg:rgba(160,175,195,0.15);--status-neutral:var(--muted-foreground);--status-wishlist:#c9b8ff;--status-wishlist-bg:rgba(168,139,250,0.17);--star:#f0b545;--flame:#f29a4a;--segment-selected:rgba(255,255,255,0.14);--danger:#f87171;--danger-bg:rgba(239,68,68,0.14)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--theme-mode:dark;--tg-bg:var(--tg-theme-bg-color,#0b0d12);--tg-text:var(--tg-theme-text-color,#f3f4f6);--tg-hint:var(--tg-theme-hint-color,#9ca3af);--tg-link:var(--tg-theme-link-color,#3b82f6);--tg-button-bg:var(--tg-theme-button-color,#2481cc);--tg-button-text:var(--tg-theme-button-text-color,#ffffff);--tg-sec-bg:var(--tg-theme-secondary-bg-color,#151922);--primary:var(--brand);--primary-foreground:var(--brand-foreground);--background:var(--tg-bg);--foreground:var(--tg-text);--muted-foreground:var(--tg-hint);--card:var(--tg-sec-bg);--card-foreground:var(--tg-text);--border:rgba(255,255,255,0.07);--border-strong:rgba(255,255,255,0.12);--border-subtle:rgba(255,255,255,0.06);--border-medium:rgba(255,255,255,0.10);--muted:rgba(255,255,255,0.04);--status-neutral-bg:rgba(255,255,255,0.06);--shadow-sm:0 1px 3px rgba(0,0,0,0.2);--shadow-md:0 8px 30px rgba(0,0,0,0.35);--shadow-lg:0 20px 50px rgba(0,0,0,0.5);--bg-deep:#0e1015;--bg-surface:#141720;--bg-card-quiet:#181c26;--bg-card-subtle:#1c212e;--brand:#8ccb9f;--brand-foreground:#0e1510;--brand-soft:rgba(140,203,159,0.14);--brand-border:rgba(140,203,159,0.28);--accent-sage:#5ba382;--accent-sage-soft:rgba(91,163,130,0.14);--accent-sage-border:rgba(91,163,130,0.28);--text-primary:#f0f2f5;--text-secondary:#9da4b0;--text-tertiary:#6b7280;--bottom-bar-bg:rgba(18,21,28,0.94);--header-btn-bg:#222632;--header-btn-border:rgba(255,255,255,0.11);--header-btn-hover:#2a3040;--status-reading:#9cc7ff;--status-reading-bg:rgba(94,162,255,0.16);--status-read:#92ddb6;--status-read-bg:rgba(69,201,138,0.15);--status-want:#f2c77e;--status-want-bg:rgba(240,169,53,0.16);--status-shelved:#b9c4d2;--status-shelved-bg:rgba(160,175,195,0.15);--status-neutral:var(--muted-foreground);--status-wishlist:#c9b8ff;--status-wishlist-bg:rgba(168,139,250,0.17);--star:#f0b545;--flame:#f29a4a;--segment-selected:rgba(255,255,255,0.14);--danger:#f87171;--danger-bg:rgba(239,68,68,0.14)}}*{box-sizing:border-box;padding:0;margin:0}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}html{height:100%}body{font-family:var(--font-sans);font-size:var(--text-md);line-height:1.4;background-color:var(--background);color:var(--foreground);min-height:100vh;overflow-x:hidden;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer;border:none;background:none}[tabindex]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-xs)}.twa-app-wrapper{min-height:100vh;min-height:100dvh;width:100%;display:flex;justify-content:center;align-items:center;padding:20px;background-color:var(--bg-deep)}@media (max-width:480px){.twa-app-wrapper{padding:0}.twa-container{border-radius:0!important;border:none!important;height:100vh!important;height:100dvh!important;max-height:100vh!important;max-height:100dvh!important;width:100%!important}}.twa-container{width:100%;max-width:450px;height:840px;max-height:92vh;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);position:relative;overflow:hidden}.twa-container,.twa-loading-screen{background-color:var(--background);display:flex;flex-direction:column}.twa-loading-screen{min-height:100vh;min-height:100dvh;justify-content:center;align-items:center;color:var(--foreground);gap:var(--space-4)}.spinner{border-radius:22.5%;box-shadow:0 10px 24px rgba(31,77,46,.25);animation:pulse 1.8s ease-in-out infinite}@keyframes pulse{0%{transform:scale(.95);opacity:.8}50%{transform:scale(1.05);opacity:1}to{transform:scale(.95);opacity:.8}}.twa-loading-screen p{font-size:var(--text-sm);color:var(--muted-foreground)}.header-avatar-btn{background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;border-radius:50%;transition:transform .15s ease,opacity .15s ease}.header-avatar-btn:active{transform:scale(.92);opacity:.85}.user-avatar,.user-avatar-fallback{width:32px;height:32px;border-radius:50%;object-fit:cover;border:1px solid var(--border);flex-shrink:0}.user-avatar-fallback{background:var(--muted);display:flex;justify-content:center;align-items:center;color:var(--muted-foreground)}.trigger-arrow{color:var(--muted-foreground);flex-shrink:0;transition:transform .2s ease}.twa-alert{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:600;text-align:center;flex-shrink:0}.twa-alert.error{background-color:var(--danger-bg);color:var(--danger);border-bottom:1px solid rgba(239,68,68,.2)}.twa-alert.loading{background-color:rgba(59,130,246,.1);color:#60a5fa;border-bottom:1px solid rgba(59,130,246,.2)}.form-inline-error{font-size:var(--text-sm);font-weight:600;color:var(--danger);background-color:var(--danger-bg);border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}.twa-main-scroll{flex:1 1;overflow-y:auto;padding:var(--space-4);-webkit-overflow-scrolling:touch}.twa-main-scroll::-webkit-scrollbar{display:none}.view-content{gap:var(--space-4);padding-bottom:80px}.controls-stack,.view-content{display:flex;flex-direction:column}.controls-stack{gap:var(--space-2)}.clear-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;flex-shrink:0}.clear-btn,.pill-btn{color:var(--muted-foreground)}.pill-btn{flex:0 0 auto;gap:5px;font-size:var(--text-xs);padding:6px 11px;min-height:44px;border-radius:var(--radius-full);transition:background-color .15s ease,color .15s ease}.pill-btn.active{background-color:var(--muted);color:var(--foreground);font-weight:700}.books-mobile-list{display:flex;flex-direction:column;gap:var(--space-2)}.books-load-more-sentinel{height:1px}.status-icon{color:var(--status-neutral);flex-shrink:0}.status-icon.shelved{color:var(--status-shelved)}.status-icon.want{color:var(--status-want)}.status-icon.reading{color:var(--status-reading)}.status-icon.read{color:var(--status-read)}.status-icon.wishlist{color:var(--status-wishlist)}.status-text{font-weight:600;white-space:nowrap}.meta-sep,.status-text{font-size:var(--text-xs);color:var(--muted-foreground)}.meta-sep{opacity:.5}.pages-text{font-size:var(--text-xs);color:var(--muted-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-cover{width:44px;height:60px;display:flex;justify-content:center;align-items:center;color:#fff;font-weight:700;font-size:16px;overflow:hidden;box-shadow:var(--shadow-sm);flex-shrink:0}.mini-cover,.mini-cover-lg{border-radius:var(--radius-sm)}.mini-cover-lg{width:50px;height:68px;font-size:19px}.mini-cover img{width:100%;height:100%;object-fit:cover}.cover-image-field{display:flex;align-items:flex-start;gap:var(--space-3)}.cover-image-field .twa-input{flex:1 1;min-width:0}.cover-upload-buttons{display:flex;gap:var(--space-2)}.field-error{font-size:var(--text-xs);color:var(--danger);margin-top:6px}.twa-card{background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4)}.empty-state,.twa-card{display:flex;flex-direction:column}.empty-state{align-items:center;text-align:center;padding:var(--space-6) var(--space-4);gap:4px}.empty-state-icon{width:56px;height:56px;border-radius:50%;background:var(--muted);color:var(--primary);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-2)}.empty-state-title{font-size:var(--text-md);font-weight:700;color:var(--foreground)}.empty-state-desc{font-size:var(--text-sm);color:var(--muted-foreground);max-width:260px;line-height:1.5;margin-bottom:var(--space-3)}.metric-pill{font-size:var(--text-2xs);font-weight:700;padding:2px 7px;background-color:var(--background);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--muted-foreground)}.metric-pill.highlight{background-color:rgba(76,158,255,.12);color:var(--status-reading);border-color:rgba(76,158,255,.2)}.progress-labels{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--muted-foreground);font-weight:600}.progress-bar-container{height:6px;background-color:var(--background);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill{height:100%;background:var(--primary);border-radius:var(--radius-full);transition:background-color .2s ease}.progress-bar-fill.overdue{background:var(--danger)}.twa-btn-danger-link{font-size:var(--text-sm);font-weight:700;color:var(--danger);min-height:44px;padding:0 var(--space-2)}.section-desc{font-size:var(--text-sm);color:var(--muted-foreground);margin-top:-4px}.import-result{font-size:var(--text-sm);color:var(--status-read);background-color:var(--status-read-bg);border:1px solid rgba(52,211,153,.25);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}.import-result.has-errors{color:var(--status-want);background-color:var(--status-want-bg);border-color:rgba(245,165,36,.25)}.import-result.all-failed{color:var(--danger);background-color:var(--danger-bg);border-color:rgba(239,68,68,.25)}.import-limit-warning{font-weight:700;line-height:1.45;color:#fbbf24}.import-limit-warning,.import-verified-note{margin:var(--space-2) 0 0;font-size:var(--text-xs)}.import-verified-note{font-weight:600;color:var(--status-read,#34d399)}.import-error-list{margin-top:var(--space-2);padding-left:18px;display:flex;flex-direction:column;gap:4px;color:var(--muted-foreground)}.import-error-list li{font-size:var(--text-sm)}.language-selection-modal{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:var(--space-5)}.language-selection-content{background:var(--background);border-radius:var(--radius-lg);padding:var(--space-6) var(--space-5);max-width:380px;width:100%;text-align:center;border:1px solid var(--border)}.language-icon{color:var(--brand);margin-bottom:var(--space-3)}.language-selection-content h2{font-size:var(--text-xl);font-weight:700;margin-bottom:var(--space-5);color:var(--foreground)}.language-selection-buttons{display:flex;flex-direction:column;gap:var(--space-2)}.language-select-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-3);min-height:52px;padding:0 var(--space-5);border:1.5px solid var(--border);background:var(--background);color:var(--foreground);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease;font-size:var(--text-md);font-weight:600}.language-select-btn:active,.language-select-btn:hover{border-color:var(--brand);background:rgba(36,129,204,.06)}.lang-flag{font-size:22px}.settings-options-stack{display:flex;flex-direction:column;gap:var(--space-2)}.daily-progress-summary{font-size:var(--text-sm);color:var(--muted-foreground);margin-bottom:var(--space-2)}.twa-bottom-bar{position:absolute;bottom:0;left:0;right:0;min-height:60px;background-color:var(--bottom-bar-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--border-subtle);justify-content:space-around;z-index:10;padding-bottom:env(safe-area-inset-bottom)}.tab-item,.twa-bottom-bar{display:flex;align-items:center}.tab-item{flex-direction:column;justify-content:center;gap:3px;color:var(--text-tertiary);transition:color .15s ease,transform .15s ease;flex:1 1;min-height:52px}.tab-item:active{transform:scale(.92)}.tab-item.active{color:var(--brand)}.tab-item span{font-size:var(--text-2xs);font-weight:600;letter-spacing:.02em}.twa-btn-danger,.twa-btn-danger-block,.twa-btn-outline,.twa-btn-outline-block,.twa-btn-primary,.twa-btn-primary-block,.twa-btn-primary-sm{min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-md);font-weight:650;font-size:var(--text-base);display:inline-flex;justify-content:center;align-items:center;gap:var(--space-2);transition:transform .15s ease,opacity .15s ease}.twa-btn-danger-block:active,.twa-btn-danger:active,.twa-btn-outline-block:active,.twa-btn-outline:active,.twa-btn-primary-block:active,.twa-btn-primary-sm:active,.twa-btn-primary:active{transform:scale(.97);opacity:.92}.twa-btn-primary,.twa-btn-primary-block{background-color:var(--primary);color:var(--primary-foreground)}.twa-btn-primary-block:disabled,.twa-btn-primary:disabled{opacity:.55;cursor:not-allowed;transform:none}.twa-btn-primary-sm{background-color:var(--primary);color:var(--primary-foreground);min-height:44px;padding:0 var(--space-3);font-size:var(--text-sm)}.twa-btn-danger-block,.twa-btn-outline-block,.twa-btn-primary-block{width:100%}.twa-btn-outline,.twa-btn-outline-block{background-color:transparent;border:1px solid var(--border-strong);color:var(--foreground)}.twa-btn-danger,.twa-btn-danger-block{background-color:var(--danger-bg);color:var(--danger)}.twa-input,.twa-select{width:100%;min-height:44px;background-color:var(--background);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 var(--space-3);outline:none;font-size:var(--text-md)}.twa-input:focus,.twa-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(36,129,204,.15)}.twa-textarea{min-height:88px;padding-top:var(--space-2);resize:vertical}.twa-field{display:flex;flex-direction:column;gap:6px;width:100%;min-width:0}.twa-field-label{font-size:var(--text-xs);font-weight:650;color:var(--muted-foreground);display:inline-flex;align-items:center;gap:3px}.twa-field-required{color:var(--status-want)}.twa-field-hint{font-size:var(--text-2xs);color:var(--muted-foreground);opacity:.85}.sheet-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.65);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;opacity:0;pointer-events:none;transition:opacity .3s cubic-bezier(.16,1,.3,1)}.sheet-backdrop.open{opacity:1;pointer-events:auto}.bottom-sheet{position:fixed;bottom:0;left:0;right:0;max-height:85vh;max-height:85dvh;margin:0 auto;max-width:450px;background-color:var(--card);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);border-top:1px solid var(--border);z-index:101;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .3s cubic-bezier(.16,1,.3,1);box-shadow:0 -12px 40px rgba(0,0,0,.5)}.bottom-sheet.open{transform:translateY(0)}.sheet-drag-handle{width:36px;height:4px;background-color:var(--border-strong);border-radius:var(--radius-full);margin:var(--space-2) auto 4px;flex-shrink:0}.sheet-header{padding:var(--space-3) var(--space-4) var(--space-4);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);flex-shrink:0;gap:var(--space-2)}.sheet-header h3{font-size:var(--text-md);font-weight:700}.close-sheet{color:var(--muted-foreground);width:32px;height:32px;min-width:32px;display:flex;justify-content:center;align-items:center;border-radius:50%;background:var(--background)}.sheet-body{padding:var(--space-4);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1 1;display:flex;flex-direction:column;gap:var(--space-4)}.sheet-body::-webkit-scrollbar{display:none}.sheet-body>*{flex-shrink:0}.sheet-form{max-height:calc(85vh - 58px);max-height:calc(85dvh - 58px);overflow:hidden}.form-sub-section,.sheet-form{display:flex;flex-direction:column}.form-sub-section{gap:var(--space-3);flex-shrink:0}.form-row-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-3);gap:var(--space-3)}@media (max-width:360px){.form-row-2{grid-template-columns:1fr}}.plan-book-preview{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background-color:var(--background);border:1px solid var(--border);border-radius:var(--radius-md)}.plan-book-preview-info{display:flex;flex-direction:column;gap:2px;min-width:0}.plan-book-preview-info strong{font-size:var(--text-base);font-weight:650;color:var(--foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-book-preview-info span{font-size:var(--text-xs);color:var(--muted-foreground)}.plan-quick-durations{display:flex;gap:var(--space-2);flex-wrap:wrap}.quick-duration-chip{flex:0 0 auto;min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-full);border:1px solid var(--border);color:var(--foreground);font-size:var(--text-sm);font-weight:650;transition:background-color .15s ease,border-color .15s ease}.quick-duration-chip:active{background-color:var(--muted);border-color:var(--border-strong)}.plan-pace-preview{display:flex;gap:var(--space-2)}.form-actions-sticky{padding:var(--space-4);border-top:1px solid var(--border);background-color:var(--card);flex-shrink:0}.disclosure{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;flex-shrink:0}.disclosure-trigger{width:100%;min-height:46px;padding:0 var(--space-3);display:flex;align-items:center;justify-content:space-between;font-size:var(--text-base);font-weight:650;color:var(--foreground)}.disclosure-chevron{color:var(--muted-foreground);transition:transform .2s ease;flex-shrink:0}.disclosure.open .disclosure-chevron{transform:rotate(180deg)}.disclosure-body{padding:0 var(--space-3) var(--space-3);display:flex;flex-direction:column;gap:var(--space-3);border-top:1px solid var(--border);padding-top:var(--space-3)}.book-editor-backdrop{background:var(--background);-webkit-backdrop-filter:none;backdrop-filter:none}.book-editor-screen{inset:0;max-height:none;height:100%;height:100dvh;max-width:none;border-radius:0;border-top:none;box-shadow:none;background-color:var(--background)}.book-editor-header{min-height:56px;padding:var(--space-2) var(--space-2) var(--space-2) var(--space-1);justify-content:flex-start;gap:var(--space-2);background-color:var(--card)}.book-editor-header h3{flex:1 1}.book-editor-back{color:var(--foreground)}.book-editor-form{flex:1 1;min-height:0;max-height:none;overflow:hidden;display:flex;flex-direction:column;background-color:var(--card)}.book-editor-form .sheet-body{overflow-y:auto;padding:var(--space-4) var(--space-4) 110px;gap:var(--space-5)}.book-editor-form .twa-input,.book-editor-form .twa-select{min-height:46px}.book-editor-form .twa-textarea{min-height:100px}.book-editor-form .form-actions-sticky{position:-webkit-sticky;position:sticky;bottom:0;padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom));background-color:color-mix(in srgb,var(--card) 94%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:4}.desc-text{font-size:var(--text-sm);color:var(--foreground);line-height:1.55}.detail-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.detail-table td{padding:7px 0;border-bottom:1px solid var(--border-subtle)}.detail-table td:first-child{color:var(--muted-foreground);font-weight:600;width:38%}.detail-table td:last-child{color:var(--foreground);text-align:right}.color-palette-picker{display:flex;gap:var(--space-3);flex-wrap:wrap;padding:4px 0}.color-dot{width:30px;height:30px;border-radius:50%;border:2px solid transparent;transition:transform .15s ease}.color-dot:active{transform:scale(.9)}.color-dot.selected{border-color:#fff;box-shadow:0 0 0 2px var(--primary);transform:scale(1.06)}@keyframes scan-miss-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.scanner-overlay{position:fixed;inset:0;z-index:500;display:flex;flex-direction:column;background-color:#08090c;color:#fff;overscroll-behavior:contain;touch-action:manipulation;pointer-events:auto}.scanner-topbar{justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);padding-top:calc(var(--space-3) + env(safe-area-inset-top));background-color:rgba(10,11,14,.92);flex-shrink:0}.scanner-live,.scanner-topbar{display:flex;align-items:center}.scanner-live{gap:var(--space-2);font-size:var(--text-sm);font-weight:600;letter-spacing:.01em}.scanner-live-dot{width:8px;height:8px;border-radius:50%;background-color:#6b7280;flex-shrink:0}.scanner-live-dot.is-live{background-color:#34d399;box-shadow:0 0 0 0 rgba(52,211,153,.7);animation:scanner-pulse 1.6s ease-out infinite}@keyframes scanner-pulse{0%{box-shadow:0 0 0 0 rgba(52,211,153,.6)}70%{box-shadow:0 0 0 7px rgba(52,211,153,0)}to{box-shadow:0 0 0 0 rgba(52,211,153,0)}}.scanner-topbar-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.scanner-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:0;border-radius:var(--radius-full);background-color:rgba(255,255,255,.14);color:#fff;cursor:pointer;transition:background-color .18s ease,color .18s ease,transform .18s ease}.scanner-icon-btn:active{transform:scale(.92)}.scanner-icon-btn.is-on{background-color:#fbbf24;color:#111827}.scanner-stage{position:relative;flex:1 1;min-height:0;overflow:hidden;background-color:#000}.scanner-video{width:100%;height:100%;object-fit:cover;display:block}.scanner-canvas{width:1px;height:1px;opacity:0}.scanner-canvas,.scanner-frame{position:absolute;pointer-events:none}.scanner-frame{inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-5)}.scanner-frame.is-hidden{display:none}.scanner-frame-hint,.scanner-frame-sub{margin:0;font-size:var(--text-xs);text-align:center;color:rgba(255,255,255,.82);text-shadow:0 1px 3px rgba(0,0,0,.7);min-height:1em}.scanner-frame-sub{color:rgba(255,255,255,.55)}.scanner-reticle{position:relative;width:min(86%,340px);aspect-ratio:5/3;border-radius:var(--radius-md);box-shadow:0 0 0 100vmax rgba(4,6,10,.55);transition:box-shadow .3s ease}.scanner-corner{position:absolute;width:28px;height:28px;border:3px solid #34d399;border-radius:var(--radius-xs);transition:border-color .25s ease}.scanner-corner.tl{top:-2px;left:-2px;border-right:0;border-bottom:0}.scanner-corner.tr{top:-2px;right:-2px;border-left:0;border-bottom:0}.scanner-corner.bl{bottom:-2px;left:-2px;border-right:0;border-top:0}.scanner-corner.br{bottom:-2px;right:-2px;border-left:0;border-top:0}.scanner-laser{position:absolute;left:6%;right:6%;top:0;height:2px;border-radius:var(--radius-full);background:linear-gradient(90deg,transparent,#34d399,transparent);box-shadow:0 0 12px 2px rgba(52,211,153,.55);animation:scanner-sweep 2.1s ease-in-out infinite}@keyframes scanner-sweep{0%{top:4%;opacity:0}15%{opacity:1}85%{opacity:1}to{top:96%;opacity:0}}.scanner-frame.is-captured .scanner-reticle{box-shadow:0 0 0 100vmax rgba(4,6,10,.72),inset 0 0 0 2px rgba(52,211,153,.9);animation:scanner-lock .45s ease-out}.scanner-frame.is-captured .scanner-corner{border-color:#10b981}@keyframes scanner-lock{0%{transform:scale(1.04)}60%{transform:scale(.985)}to{transform:scale(1)}}.scanner-success-pill{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-full);background-color:#10b981;color:#fff;font-size:var(--text-sm);font-weight:700;white-space:nowrap;box-shadow:0 10px 30px rgba(16,185,129,.35);animation:scanner-pop .35s cubic-bezier(.34,1.56,.64,1)}.scanner-success-check{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background-color:rgba(255,255,255,.25)}@keyframes scanner-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.6)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.scanner-boot{inset:0;align-items:center;justify-content:center;color:rgba(255,255,255,.7)}.scanner-boot,.scanner-zoom{position:absolute;display:flex}.scanner-zoom{left:50%;bottom:var(--space-4);transform:translateX(-50%);gap:2px;padding:3px;border-radius:var(--radius-full);background-color:rgba(0,0,0,.55)}.scanner-zoom-btn{min-width:40px;height:32px;border:0;border-radius:var(--radius-full);background:transparent;color:rgba(255,255,255,.75);font-size:var(--text-sm);font-weight:700;cursor:pointer;transition:background-color .15s ease,color .15s ease}.scanner-zoom-btn.is-active{background-color:#fff;color:#111827}.scanner-notice,.scanner-slow-hint{position:absolute;left:var(--space-4);right:var(--space-4);bottom:calc(var(--space-4) + 52px);margin:0;text-align:center;font-size:var(--text-xs);line-height:1.45;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background-color:rgba(0,0,0,.65);color:rgba(255,255,255,.9)}.scanner-notice{bottom:auto;top:var(--space-4);background-color:rgba(251,191,36,.92);color:#1f2937;font-weight:600}.scanner-readout{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-3);gap:var(--space-3);padding:var(--space-4);background-color:rgba(10,11,14,.96);flex-shrink:0}.scanner-readout-cell{display:flex;flex-direction:column;gap:4px;min-width:0;text-align:center}.scanner-readout-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.5)}.scanner-readout-value{font-size:var(--text-sm);font-weight:700;color:rgba(255,255,255,.95);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scanner-readout-value.is-code{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;letter-spacing:.02em}.scanner-readout-value.is-filled{color:#34d399}.scanner-manual-btn{justify-content:center;gap:var(--space-2);width:100%;padding:var(--space-3);padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom));border:0;background-color:rgba(255,255,255,.06);color:rgba(255,255,255,.75);font-weight:600;cursor:pointer;flex-shrink:0}.scanner-error,.scanner-manual-btn{display:flex;align-items:center;font-size:var(--text-sm)}.scanner-error{position:absolute;left:var(--space-4);right:var(--space-4);bottom:calc(var(--space-6) + env(safe-area-inset-bottom));background-color:var(--card);color:var(--foreground);border-radius:var(--radius-md);padding:var(--space-4);flex-direction:column;gap:var(--space-3);text-align:center}.scanner-error p{margin:0}@media (prefers-reduced-motion:reduce){.scanner-frame.is-captured .scanner-reticle,.scanner-laser,.scanner-live-dot.is-live,.scanner-success-pill{animation:none}.scanner-laser{top:50%}}.rotating-icon{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.isbn-moderation-list{display:flex;flex-direction:column;gap:var(--space-3)}.isbn-moderation-item{gap:var(--space-3)}.isbn-moderation-header{display:flex;align-items:center;gap:var(--space-3)}.isbn-moderation-info{min-width:0}.isbn-moderation-info h4{font-size:var(--text-base);font-weight:650;color:var(--foreground)}.isbn-moderation-actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.isbn-moderation-actions button{flex:1 1}.libraries-list{display:flex;flex-direction:column;gap:var(--space-2)}.library-option-btn{display:flex;justify-content:space-between;align-items:center;background-color:var(--background);border:1px solid var(--border);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);text-align:left;transition:all .15s ease;gap:var(--space-2)}.library-option-btn.active{border-color:var(--primary);background-color:rgba(36,129,204,.05)}.library-option-btn .lib-details{min-width:0}.library-option-btn .lib-details h4{font-size:var(--text-base);font-weight:650;color:var(--foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-option-btn .lib-details p{font-size:var(--text-xs);color:var(--muted-foreground);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-option-btn .role-chip{font-size:9px;font-weight:800;padding:2px 6px;border-radius:var(--radius-xs);background:var(--muted);color:var(--muted-foreground);flex-shrink:0}.library-option-btn.active .role-chip{background-color:var(--primary);color:var(--primary-foreground)}.twa-landing-page{min-height:100vh;min-height:100dvh;align-items:center;background:radial-gradient(circle at top,#0f172a,#020617);padding:var(--space-5)}.landing-mockup-frame,.twa-landing-page{width:100%;display:flex;justify-content:center}.landing-mockup-frame{max-width:420px;height:800px;max-height:92vh;background-color:#0b0d12;border:6px solid #1e293b;border-radius:40px;box-shadow:0 25px 60px -15px rgba(0,0,0,.8);padding:var(--space-6);flex-direction:column;position:relative;overflow:hidden}.landing-mockup-screen{display:flex;flex-direction:column;height:100%;justify-content:space-between}.landing-brand{text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-3);margin-top:30px}.landing-brand h1{font-size:var(--text-2xl);font-weight:700;letter-spacing:-.5px;color:#f8fafc}.landing-brand p{font-size:var(--text-sm);color:#9ca3af;line-height:1.5;max-width:240px}.features-list-brief{display:flex;flex-direction:column;gap:var(--space-4);margin:var(--space-5) 0}.feat-item{display:flex;gap:var(--space-3);align-items:flex-start}.feat-item .icon{color:#8ccb9f;margin-top:2px;flex-shrink:0}.feat-item strong{display:block;font-size:var(--text-sm);font-weight:700;color:#f8fafc}.feat-item span{display:block;font-size:var(--text-xs);color:#9ca3af;line-height:1.45;margin-top:2px}.landing-actions{display:flex;flex-direction:column;margin-bottom:var(--space-5)}.landing-actions .twa-btn-outline-block{color:#f8fafc;border-color:rgba(248,250,252,.25)}.link-btn{text-decoration:none;font-size:var(--text-base)}.landing-error-box{background-color:var(--danger-bg);color:var(--danger);border:1px solid rgba(239,68,68,.2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-xs);text-align:center;margin-top:var(--space-2)}.stars-input-row{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.star-btn{background:none;border:none;padding:var(--space-1);color:var(--muted-foreground);cursor:pointer;transition:transform .1s ease,color .1s ease}.star-btn:active{transform:scale(1.25)}.star-btn{min-width:44px;min-height:44px;display:grid;place-items:center}.star-btn[aria-pressed=true],.stars{color:var(--star)}.star-icon{transition:stroke .15s ease,fill .15s ease}.review-textarea{width:100%;font-family:inherit;font-size:var(--text-sm);padding:var(--space-3);background-color:var(--background);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--foreground);resize:none}.save-review-row{display:flex;justify-content:flex-end;align-items:center;margin-top:var(--space-1)}.save-review-success-msg{color:var(--status-read);font-size:var(--text-sm);font-weight:600;display:flex;align-items:center;margin-right:auto;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.cover-reticle{aspect-ratio:2/3!important;width:min(65%,260px)!important}.scanner-bottombar{display:flex;justify-content:center;align-items:center;padding:24px 16px calc(24px + env(safe-area-inset-bottom));background-color:#0a0b0e;flex-shrink:0;border-top:1px solid rgba(255,255,255,.05)}.scanner-shot{position:absolute;inset:0;width:100%;height:100%;padding:var(--space-5);box-sizing:border-box;object-fit:contain;background-color:#000;display:block}.scanner-confirmbar{gap:var(--space-3);flex-wrap:wrap}.scanner-upload-error{flex-basis:100%;margin:0;text-align:center;font-size:var(--text-sm);color:#ff9b8f}.scanner-confirm-btn{flex:1 1;max-width:190px;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2)}.scanner-capture-btn{position:relative;z-index:1;width:72px;height:72px;border-radius:50%;background-color:rgba(255,255,255,.3);border:4px solid #ffffff;display:flex;justify-content:center;align-items:center;cursor:pointer;outline:none;transition:transform .15s ease,background-color .15s ease}.scanner-capture-btn:active{transform:scale(.92);background-color:rgba(255,255,255,.5)}.scanner-capture-btn-inner{width:56px;height:56px;border-radius:50%;background-color:#ffffff;color:#1e293b;display:flex;justify-content:center;align-items:center}.skeleton{position:relative;overflow:hidden;background-color:var(--muted);border-radius:var(--radius-xs)}.skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background-image:linear-gradient(90deg,transparent 0,var(--status-neutral-bg) 50%,transparent 100%);animation:skeleton-sweep 1.4s ease-in-out infinite}@keyframes skeleton-sweep{to{transform:translateX(100%)}}.book-skeleton-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background-color:var(--card)}.book-skeleton-cover{width:50px;height:68px;border-radius:var(--radius-sm);flex-shrink:0}.book-skeleton-body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:var(--space-2)}.book-skeleton-line{height:10px}.book-skeleton-line.is-title{width:62%}.book-skeleton-line.is-author{width:40%}.book-skeleton-line.is-meta{width:28%;height:8px}@media (prefers-reduced-motion:reduce){.skeleton:after{animation:none}}.cover.is-generated,.mini-cover.is-generated{background-image:radial-gradient(120% 90% at 18% 0,rgba(255,255,255,.22) 0,rgba(255,255,255,0) 55%),linear-gradient(var(--cover-angle,160deg),hsl(var(--cover-h,176),42%,42%) 0,hsl(calc(var(--cover-h, 176) + 26),40%,27%) 100%);position:relative}.cover.is-generated:before,.mini-cover.is-generated:before{content:"";position:absolute;top:0;bottom:0;left:0;width:14%;max-width:10px;background-image:linear-gradient(90deg,rgba(0,0,0,.28),rgba(0,0,0,.1) 55%,rgba(255,255,255,.14) 80%,rgba(255,255,255,0));pointer-events:none}.cover-monogram{position:relative;font-weight:700;letter-spacing:-.04em;color:rgba(255,255,255,.92);padding-left:8%;text-shadow:0 1px 2px rgba(0,0,0,.28)}.today-view{padding-bottom:12px}.today-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:4px 2px 16px}.large-title{font-size:29px;font-weight:700;letter-spacing:-.02em;line-height:1.1;color:var(--foreground)}.today-date{margin-top:3px;font-size:14px;color:var(--muted-foreground)}.streak-chip{display:inline-flex;align-items:center;gap:4px;height:34px;padding:0 12px 0 9px;border-radius:999px;background:var(--card);color:var(--foreground);font-size:15px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;flex:none}.streak-chip svg{color:var(--flame)}.today-card{background:var(--card);border-radius:16px;padding:16px;margin-bottom:12px}.today-book{width:100%;display:flex;align-items:center;gap:12px;padding:0;border:0;background:none;color:inherit;text-align:left;cursor:pointer}.today-book-text{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:4px}.today-book-title{font-family:var(--font-serif);font-size:17px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-meta{font-size:13px;color:var(--muted-foreground);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.today-book .progress-bar{margin-top:4px}.today-label{margin:18px 0 8px;font-size:12.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted-foreground)}.primary-btn{width:100%;min-height:48px;margin-top:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;background:var(--brand);color:var(--brand-foreground);font-size:16px;font-weight:600;cursor:pointer}.primary-btn:active:not(:disabled){transform:scale(.98)}.pill-btn:disabled,.primary-btn:disabled,.text-btn:disabled{opacity:.6;cursor:default}.pill-btn{flex:none;min-height:36px;display:inline-flex;align-items:center;gap:6px;padding:0 14px;border:0;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:13.5px;font-weight:600;white-space:nowrap;cursor:pointer}.pill-btn.loading{opacity:.7;pointer-events:none}.book-view-more .action-menu-trigger,.pill-btn,.segmented>button{position:relative}.book-view-more .action-menu-trigger:after,.pill-btn:after,.segmented>button:after{content:"";position:absolute;inset:-4px 0}.book-view-more .action-menu-trigger:after{inset:-2px}.text-btn{min-height:44px;padding:0 4px;border:0;background:none;color:var(--brand);font-size:14.5px;font-weight:600;cursor:pointer}.icon-btn{width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:12px;background:none;color:var(--muted-foreground);cursor:pointer}.icon-btn:focus-visible,.pill-btn:focus-visible,.primary-btn:focus-visible,.text-btn:focus-visible,.today-book:focus-visible,.today-hcard-main:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.today-rescue{margin-top:14px;padding-top:12px;border-top:1px solid var(--border);display:flex;flex-direction:column;align-items:flex-start;gap:10px;font-size:14px;line-height:1.4;color:var(--foreground)}.today-rescue .primary-btn{margin-top:0}.today-done{display:grid;justify-items:center;grid-gap:6px;gap:6px;padding:18px 8px 0;text-align:center}.today-done-mark{width:54px;height:54px;display:grid;place-items:center;border-radius:999px;background:var(--brand-soft);color:var(--brand)}.today-done strong{font-size:18px;color:var(--foreground)}.today-done p{font-size:14px;color:var(--muted-foreground)}.week-strip{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px;margin:0 0 4px;padding:12px 10px;border-radius:16px;background:var(--card);list-style:none}.goal-card{margin-top:12px}.goal-card-top{display:flex;align-items:center;gap:8px;margin-bottom:10px}.goal-card-top svg{color:var(--brand);flex:none}.goal-card-title{flex:1 1;min-width:0;font-size:15px;font-weight:600}.goal-card-note{margin-top:8px}.week-day{display:grid;justify-items:center;grid-gap:4px;gap:4px;font-size:11px;color:var(--muted-foreground)}.week-day i{width:28px;height:28px;display:grid;place-items:center;border-radius:999px;background:var(--border-medium);color:var(--muted-foreground)}.week-day.logged i{background:var(--brand-soft);color:var(--brand)}.week-day.today{color:var(--foreground);font-weight:650}.week-day.today i{box-shadow:inset 0 0 0 1.5px var(--brand)}.today-hscroll{display:flex;gap:10px;overflow-x:auto;margin:0 calc(var(--space-4, 16px) * -1);padding:0 var(--space-4,16px) 2px;scrollbar-width:none}.today-hscroll::-webkit-scrollbar{display:none}.today-hcard{flex:none;width:240px;display:flex;flex-direction:column;gap:2px;padding:12px 12px 4px;border-radius:14px;background:var(--card)}.today-hcard-main{display:flex;align-items:center;gap:12px;min-width:0;padding:0;border:0;background:none;color:inherit;text-align:left;cursor:pointer}.today-hcard .text-btn{align-self:flex-start;padding-left:50px}.today-see-all{display:block;margin:6px auto 0}.finish-card-top{display:flex;align-items:flex-start;justify-content:space-between}.finish-card-top .icon-btn{margin:-10px -10px 0 0}.finish-card-emoji{font-size:30px;line-height:1}.finish-card-title{margin:6px 0 2px;font-family:var(--font-serif);font-size:20px;font-weight:600;color:var(--foreground)}.finish-card-next{margin:16px 0 6px;font-size:14px;font-weight:650;color:var(--foreground)}.finish-card-list{list-style:none;margin:0;padding:0}.finish-card-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0}.finish-card-list li+li{border-top:1px solid var(--border)}.finish-card-book{display:flex;flex-direction:column;min-width:0}.empty-state-secondary{min-height:44px;margin-top:4px;border:0;background:none;color:var(--brand);font-size:14.5px;font-weight:600;cursor:pointer}.progress-segments{margin:4px 0 16px}.book-view{position:fixed;inset:0;z-index:50;overflow-y:auto;overscroll-behavior:contain;background:var(--background);padding:8px var(--space-4,16px) calc(28px + env(safe-area-inset-bottom, 0px))}.book-view-bar{display:flex;align-items:center;min-height:44px}.book-view-back{display:inline-flex;align-items:center;gap:2px;margin-left:-8px}.book-view-more{margin-left:auto}.book-view-hero{display:grid;justify-items:center;grid-gap:6px;gap:6px;text-align:center;margin-bottom:18px}.book-view-title{margin-top:12px;font-family:var(--font-serif);font-size:23px;font-weight:600;line-height:1.2;color:var(--foreground)}.book-view-author{font-size:15px;color:var(--muted-foreground)}.book-view-facts{font-size:13px;color:var(--muted-foreground)}.book-view-status{margin-bottom:14px}.book-view-ask{margin:-4px 0 14px;padding:12px 14px;border-radius:14px;background:var(--card);font-size:14.5px;color:var(--foreground)}.book-view-ask-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.pill-btn.quiet{background:var(--border-medium);color:var(--foreground)}.book-view-bought{margin-bottom:14px}.book-view-plan{margin-bottom:4px}.book-view-progress{padding:14px 14px 12px}.book-view-progress-top{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.book-view-progress-top strong{font-size:17px;color:var(--foreground)}.book-view-progress-top span{font-size:14px;color:var(--muted-foreground)}.grouped-row-text{font-size:15px;color:var(--foreground)}.grouped-row-value{max-width:60%;text-align:right;overflow-wrap:anywhere}.book-view-rescue{flex-wrap:wrap}.book-view-rescue .grouped-row-text{font-size:14px;line-height:1.4;flex-basis:100%}.book-view-day-pages{font-size:14px;color:var(--muted-foreground);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.book-view-day-input{width:64px;min-height:36px;padding:0 8px;border:1px solid var(--border);border-radius:10px;background:var(--background);color:var(--foreground);font-size:15px;text-align:center}.text-btn.destructive{color:var(--danger)}.book-view-review{padding:8px 14px 12px}.book-view-member{--row-inset:60px}.book-view-avatar{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:999px;overflow:hidden;background:var(--brand-soft);color:var(--brand)}.book-view-avatar img{width:100%;height:100%;object-fit:cover}.book-view-quote{font-size:13.5px;font-style:italic;color:var(--muted-foreground)}.book-view-description{padding:12px 14px;font-size:14.5px;line-height:1.5;color:var(--foreground);white-space:pre-line}.book-view dd,.book-view dl{margin:0}.action-menu{position:relative;display:inline-flex}.action-menu-trigger{width:44px;height:40px;display:grid;place-items:center;border:0;border-radius:999px;background:transparent;color:var(--foreground);cursor:pointer}.book-view-more .action-menu-trigger{width:40px;background:var(--card)}.action-menu-list{position:absolute;top:calc(100% + 6px);z-index:60;min-width:180px;display:flex;flex-direction:column;padding:4px;border-radius:12px;background:var(--card);box-shadow:var(--shadow-lg);border:1px solid var(--border)}.action-menu-list.align-end{right:0}.action-menu-item{min-height:44px;padding:0 14px;border:0;border-radius:9px;background:transparent;color:var(--foreground);font-size:15px;text-align:left;cursor:pointer}.action-menu-item:focus-visible,.action-menu-item:hover{background:var(--border-medium);outline:none}.action-menu-item.destructive{color:var(--danger)}.action-menu-trigger:focus-visible{outline:2px solid var(--brand);outline-offset:1px}@media (prefers-reduced-motion:reduce){.primary-btn:active:not(:disabled){transform:none}}.cover{position:relative;flex:none;width:var(--cover-w,46px);aspect-ratio:1/1.45;border-radius:3px 6px 6px 3px;overflow:hidden;display:grid;place-items:center;font-size:calc(var(--cover-w, 46px) * .36);background-color:var(--border-medium);box-shadow:0 1px 3px rgba(0,0,0,.16)}.cover-sm{--cover-w:38px}.cover-md{--cover-w:46px}.cover-lg{--cover-w:118px;border-radius:4px 9px 9px 4px;box-shadow:0 16px 30px -14px rgba(0,0,0,.45)}.cover img{width:100%;height:100%;object-fit:cover}.status-chip{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.status-chip.reading{background:var(--status-reading-bg);color:var(--status-reading)}.status-chip.read{background:var(--status-read-bg);color:var(--status-read)}.status-chip.want{background:var(--status-want-bg);color:var(--status-want)}.status-chip.shelved{background:var(--status-shelved-bg);color:var(--status-shelved)}.status-chip.wishlist{background:var(--status-wishlist-bg);color:var(--status-wishlist)}.progress-bar{height:4px;border-radius:4px;background:var(--border-medium);overflow:hidden}.progress-bar i{display:block;height:100%;background:var(--brand);border-radius:inherit;transition:width .5s cubic-bezier(.32,.72,0,1)}.segmented{display:flex;gap:2px;padding:2px;border-radius:11px;background:var(--border-medium)}.segmented>button{flex:1 1;min-width:0;min-height:40px;padding:4px 6px;line-height:1.15;border:0;border-radius:9px;background:transparent;color:var(--foreground);font-size:13.5px;font-weight:500;cursor:pointer}.segmented>button[aria-pressed=true]{background:var(--segment-selected);font-weight:650;box-shadow:0 1px 3px rgba(0,0,0,.12)}.segmented>.segmented-more{flex:0 0 44px;display:grid;place-items:center}.book-row-main:focus-visible,.segmented>button:focus-visible,.stepper>button:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.stepper{display:grid;grid-template-columns:52px 1fr 52px;align-items:center;grid-gap:8px;gap:8px}.stepper>button{height:52px;border:0;border-radius:14px;background:var(--border-medium);color:var(--foreground);display:grid;place-items:center;cursor:pointer}.stepper>button:disabled{opacity:.4;cursor:default}.stepper>button:active:not(:disabled){transform:scale(.96)}.stepper-value{display:flex;align-items:baseline;justify-content:center;gap:4px}.stepper-value input{border:0;border-radius:8px;background:transparent;color:var(--foreground);text-align:center;font-size:34px;font-weight:700;letter-spacing:-.03em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.stepper-value input::-webkit-inner-spin-button,.stepper-value input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper-value input:focus-visible{outline:2px solid var(--brand)}.stepper-value span{font-size:15px;color:var(--muted-foreground)}.grouped{background:var(--card);border-radius:14px;overflow:hidden}.grouped-row{position:relative;display:flex;align-items:center;gap:12px;min-height:46px;padding:10px 14px}.book-row+.book-row:before,.grouped-row+.grouped-row:before{content:"";position:absolute;top:0;right:0;left:var(--row-inset,14px);height:1px;background:var(--border)}.section-label{margin:22px 16px 7px;font-size:13px;font-weight:500;letter-spacing:.02em;text-transform:uppercase;color:var(--muted-foreground)}.book-row{--row-inset:64px;position:relative;gap:10px;padding:8px 14px}.book-row,.book-row-main{display:flex;align-items:center}.book-row-main{flex:1 1;min-width:0;min-height:44px;gap:12px;padding:0;border:0;background:none;color:inherit;text-align:left;cursor:pointer}.book-row-text{display:flex;flex-direction:column;min-width:0}.book-row-title{font-family:var(--font-serif);font-size:15.5px;font-weight:600}.book-row-sub,.book-row-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-row-sub{margin-top:2px;font-size:13px;color:var(--muted-foreground)}@media (prefers-reduced-motion:reduce){.progress-bar i{transition:none}.stepper>button:active:not(:disabled){transform:none}}.share-sheet{gap:16px}.share-preview{width:100%;max-width:360px;height:auto;aspect-ratio:1/1;align-self:center;border-radius:16px;background:var(--brand,#25603a)}.share-actions{display:flex;flex-direction:column;gap:10px}.share-actions .pill-btn,.share-actions .primary-btn{justify-content:center;min-height:44px}.share-link-row{display:flex;align-items:center;gap:8px}.share-link{flex:1 1;min-width:0;min-height:44px;padding:0 12px;border:1px solid var(--border,rgba(0,0,0,.12));border-radius:12px;background:transparent;color:inherit;font:inherit}.finish-card-share{align-self:flex-start;margin-top:4px}.shelf-top{margin:4px 2px 14px}.shelf-title{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:44px;padding:0;border:0;background:none;color:var(--foreground);cursor:pointer}.shelf-title .large-title,.shelf-title-static{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shelf-title svg{flex:none;color:var(--muted-foreground)}.shelf-members{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:13px;color:var(--muted-foreground)}.shelf-avatars{display:flex}.shelf-avatar{width:24px;height:24px;display:grid;place-items:center;overflow:hidden;border-radius:999px;border:2px solid var(--background);background:var(--brand-soft);color:var(--brand);font-size:11px;font-weight:700}.shelf-avatar+.shelf-avatar{margin-left:-7px}.shelf-avatar img{width:100%;height:100%;object-fit:cover}.add-search-row,.shelf-search,.shelf-search-row{display:flex;align-items:center;gap:8px}.shelf-search{flex:1 1;min-width:0;height:44px;padding:0 12px;border-radius:12px;background:var(--card);color:var(--muted-foreground)}.shelf-search:focus-within{box-shadow:0 0 0 2px var(--brand)}.shelf-search input{flex:1 1;min-width:0;height:100%;border:0;outline:none;background:none;color:var(--foreground);font-size:16px}.shelf-search input::placeholder{color:var(--muted-foreground)}.shelf-search input::-webkit-search-cancel-button{display:none}.shelf-search-clear{width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:999px;background:none;color:var(--muted-foreground);cursor:pointer}.shelf-add{flex:none;width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:12px;background:var(--brand);color:var(--brand-foreground);cursor:pointer}.shelf-filters{display:flex;gap:6px;margin:12px -16px 0;padding:0 16px 2px;overflow-x:auto;scrollbar-width:none}.shelf-filters::-webkit-scrollbar{display:none}.filter-chip{flex:none;position:relative;min-height:34px;display:inline-flex;align-items:center;gap:6px;padding:0 12px;border:0;border-radius:999px;background:var(--card);color:var(--foreground);font-size:13.5px;font-weight:500;white-space:nowrap;cursor:pointer}.filter-chip:after{content:"";position:absolute;inset:-5px 0}.filter-chip.active{background:var(--brand);color:var(--brand-foreground)}.filter-chip-count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;opacity:.7}.shelf-sort-line{display:flex;align-items:center;gap:6px;margin:14px 4px 8px;font-size:13px;color:var(--muted-foreground)}.shelf-sort{position:relative;display:inline-flex;align-items:center;gap:3px;min-height:32px;color:var(--brand);font-weight:600}.shelf-sort select{position:absolute;inset:0;width:100%;opacity:0;font-size:16px;cursor:pointer}.shelf-sort:focus-within{outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}.shelf-row{--row-inset:72px}.shelf-row-state{display:flex;align-items:center;gap:8px;margin-top:5px}.shelf-row-meta{font-size:12.5px;font-weight:600;color:var(--status-reading);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.shelf-row-reread{padding:1px 6px;border-radius:6px;background:rgba(245,196,81,.18);color:color-mix(in srgb,#e0a82e 70%,var(--foreground));font-size:12px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.shelf-row-stars{display:inline-flex;gap:1px;color:var(--border-strong)}.shelf-row-stars .on{color:#e0a526}.shelf-loading{margin:10px 4px}.add-scan-tile{width:100%;display:flex;align-items:center;gap:14px;padding:18px 16px;border:0;border-radius:16px;background:var(--brand);color:var(--brand-foreground);text-align:left;cursor:pointer}.add-scan-tile:active{transform:scale(.99)}.add-scan-icon{flex:none;width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:rgba(255,255,255,.16)}.add-scan-text{display:flex;flex-direction:column;gap:3px}.add-scan-text strong{font-size:17px}.add-scan-text span{font-size:13.5px;opacity:.85}.add-or{margin:16px 4px 8px;font-size:13px;color:var(--muted-foreground)}.add-search-btn{min-height:44px}.add-note{margin:12px 4px 0}.add-results{margin-top:12px}.add-result{width:100%;border:0;background:none;color:inherit;text-align:left;font:inherit;cursor:pointer;min-height:56px;gap:12px}.add-result .book-row-text{flex:1 1}.verified-badge{flex:none;display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--status-read)}.add-manual{display:block;margin:10px auto 0}.add-way{width:100%;border:0;background:none;color:var(--foreground);font:inherit;font-size:15.5px;text-align:left;cursor:pointer}.add-way>span{flex:1 1}.add-way>svg:first-child{color:var(--brand)}.add-way>svg:last-child{color:var(--muted-foreground);transition:transform .15s ease}.add-way>svg.rotated{transform:rotate(90deg)}.book-editor-form.confirm-form{background:transparent}.confirm-form .disclosure,.confirm-form .form-sub-section{background:var(--card)}.confirm-form .form-sub-section{padding:14px;border-radius:16px}.confirm-notice{margin-bottom:12px;padding:10px 12px;border-radius:12px;background:var(--brand-soft);color:var(--foreground);font-size:14px}.confirm-summary{display:flex;align-items:center;gap:14px;padding:14px;border-radius:16px;background:var(--card)}.confirm-summary-text{min-width:0;display:flex;flex-direction:column;gap:3px}.confirm-summary-title{font-family:var(--font-serif);font-size:18px;font-weight:600;line-height:1.25}.confirm-status{margin:0;padding:0;border:0;min-width:0}.confirm-status legend{padding:0}.confirm-status-row{width:100%;border:0;background:none;color:var(--foreground);font:inherit;font-size:15.5px;text-align:left;cursor:pointer}.confirm-status-row>span:nth-child(2){flex:1 1}.confirm-status-row.selected{font-weight:600}.confirm-status-check{color:var(--brand)}.status-dot{width:10px;height:10px;border-radius:999px;flex:none}.status-dot.reading{background:var(--status-reading)}.status-dot.read{background:var(--status-read)}.status-dot.want{background:var(--status-want)}.status-dot.shelved{background:var(--status-shelved)}.status-dot.wishlist{background:var(--status-wishlist)}.confirm-hint{margin:8px 16px 0}.confirm-body .disclosure{margin-top:12px}.confirm-sub-label{margin-left:0}.confirm-body .cover-upload-buttons{display:flex;flex-wrap:wrap;gap:8px}@media (prefers-reduced-motion:reduce){.add-scan-tile:active{transform:none}.add-way>svg:last-child{transition:none}}.grouped-section{margin-top:4px}.grouped-section+.grouped-section,.grouped-section+p+.grouped-section{margin-top:0}.grouped-footer{margin:7px 16px 0;font-size:13px;line-height:1.4;color:var(--muted-foreground)}.grouped-row.is-action{width:100%;border:0;background:none;color:var(--foreground);font:inherit;text-align:left;cursor:pointer}.grouped-row.is-action:active:not(:disabled){background:var(--muted)}.grouped-row.is-action:disabled{opacity:.6;cursor:default}.grouped-row.is-action:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.grouped-row{--row-inset:50px}.grouped-row-icon{flex:none;width:24px;display:grid;place-items:center;color:var(--brand)}.grouped-row-text{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.grouped-row-label{font-size:15.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grouped-row-sub{font-size:13px;line-height:1.35;color:var(--muted-foreground)}.grouped-row-value{flex:none;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;color:var(--muted-foreground);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.grouped-row-chevron{flex:none;color:var(--muted-foreground);transition:transform .15s ease}.grouped-row.is-open .grouped-row-chevron{transform:rotate(90deg)}.grouped-row.has-select{position:relative}.grouped-row.has-select select{position:absolute;inset:0;width:100%;opacity:0;font-size:16px;cursor:pointer}.grouped-row.has-select:focus-within{outline:2px solid var(--brand);outline-offset:-2px}.switch{flex:none;position:relative;width:51px;height:31px;background:var(--border-strong);transition:background-color .2s ease}.switch,.switch i{border-radius:999px}.switch i{position:absolute;top:2px;left:2px;width:27px;height:27px;background:#ffffff;box-shadow:0 2px 4px rgba(0,0,0,.2);transition:transform .2s ease}.switch.on{background:var(--brand)}.switch.on i{transform:translateX(20px)}.member-line{--row-inset:50px;padding-left:50px}.member-line .grouped-row-label{font-size:15px}.member-remove{width:36px;height:36px;margin-right:-8px}.progress-segments,.ranking-metrics{margin-bottom:14px}.ranking-metrics{margin-top:16px}.progress-loading{margin:16px 4px}.streak-card{display:flex;align-items:center;gap:14px}.streak-card-icon{flex:none;width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:var(--brand-soft);color:var(--flame)}.streak-card-value{margin:2px 0;font-size:26px;font-weight:700;letter-spacing:-.01em;color:var(--foreground)}.day-chart-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.day-chart-title{font-size:15px;font-weight:600}.day-chart-readout{margin:4px 0 10px;font-size:14px;font-weight:600;color:var(--brand);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.day-chart-plot{position:relative;height:128px;display:flex;align-items:stretch;gap:4px;padding-bottom:18px}.day-chart-average{position:absolute;left:0;right:0;margin-bottom:18px;border-top:1.5px dashed var(--muted-foreground);opacity:.55;pointer-events:none}.day-chart-bar{position:relative;flex:1 1;min-width:0;display:flex;align-items:flex-end;justify-content:center;padding:0;border:0;background:none;cursor:pointer}.day-chart-bar i{width:100%;max-width:18px;border-radius:5px 5px 2px 2px;background:var(--brand);opacity:.55}.day-chart-bar.empty i{height:4px;background:var(--border-medium);opacity:1}.day-chart-bar.selected i{opacity:1}.day-chart-bar span{position:absolute;bottom:-18px;font-size:10px;color:var(--muted-foreground)}.day-chart-bar:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}.rank-row{--row-inset:50px}.rank-number{flex:none;width:24px;text-align:center;font-size:14px;font-weight:700;color:var(--muted-foreground);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rank-row.is-you{background:var(--brand-soft)}.rank-you{flex:none;padding:2px 8px;border-radius:999px;background:var(--brand);color:var(--brand-foreground);font-size:12px;font-weight:600}.ranking-privacy{margin-top:14px;text-align:center}.profile-head{display:flex;align-items:center;gap:14px;margin:8px 2px 10px}.profile-avatar{flex:none;width:64px;height:64px;display:grid;place-items:center;overflow:hidden;border-radius:999px;background:var(--brand-soft);color:var(--brand)}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-head-text{min-width:0}.profile-name{font-size:22px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-footer{margin:26px 0 8px;text-align:center;font-size:13px;color:var(--muted-foreground)}@media (prefers-reduced-motion:reduce){.grouped-row-chevron,.switch,.switch i{transition:none}}.listen-card-label{display:flex;align-items:center;gap:6px;margin:0 0 10px;font-size:12.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--brand)}.listen-card .today-book{cursor:default}.has-audio-mini .view-content{padding-bottom:148px}.audio-mini{position:absolute;left:8px;right:8px;bottom:calc(66px + env(safe-area-inset-bottom));z-index:11;display:flex;align-items:center;gap:2px;padding:6px 4px 6px 8px;border-radius:14px;background:var(--card);border:1px solid var(--border-subtle);box-shadow:0 8px 24px -10px rgba(0,0,0,.35);overflow:hidden}.audio-mini-progress{position:absolute;left:0;top:0;height:2px;background:var(--brand);transition:width .4s linear}.audio-mini-main{flex:1 1;min-width:0;min-height:44px;display:flex;align-items:center;gap:10px;padding:0;border:0;background:none;color:inherit;text-align:left;cursor:pointer}.audio-mini-text{min-width:0;display:flex;flex-direction:column;gap:2px}.audio-mini-title{font-family:var(--font-serif);font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audio-mini-sub{font-size:12.5px;color:var(--muted-foreground)}.audio-mini-play{color:var(--brand)}.audio-mini-main:focus-visible,.audio-part:focus-visible,.audio-play:focus-visible,.audio-scrubber input:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.spin{animation:spin 1s linear infinite}.audio-sheet-heading{font-size:15px;color:var(--muted-foreground);font-weight:600}.audio-player{gap:18px}.audio-hero{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.audio-hero .cover{--cover-w:150px;margin-bottom:8px}.audio-title{font-family:var(--font-serif);font-size:21px;font-weight:600;line-height:1.25}.audio-author{font-size:14px;color:var(--muted-foreground)}.audio-finished{text-align:center;font-weight:650;color:var(--brand)}.audio-scrubber input{width:100%;height:28px;margin:0;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer}.audio-scrubber input::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(to right,var(--brand) var(--audio-fill,0),var(--border-medium) var(--audio-fill,0))}.audio-scrubber input::-moz-range-track{height:4px;border-radius:2px;background:linear-gradient(to right,var(--brand) var(--audio-fill,0),var(--border-medium) var(--audio-fill,0))}.audio-scrubber input::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;margin-top:-6px;border-radius:50%;background:var(--brand);border:0}.audio-scrubber input::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--brand);border:0}.audio-times{font-size:12.5px;color:var(--muted-foreground);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.audio-controls,.audio-times{display:flex;justify-content:space-between}.audio-controls{align-items:center;padding:0 4px}.audio-controls .icon-btn{color:var(--foreground)}.audio-controls .icon-btn:disabled{opacity:.35;cursor:default}.audio-skip{position:relative}.audio-skip span{position:absolute;inset:0;display:grid;place-items:center;padding-top:1px;font-size:9.5px;font-weight:700}.audio-play{width:68px;height:68px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--brand);color:var(--brand-foreground);cursor:pointer}.audio-play:active{transform:scale(.96)}.audio-setting{display:flex;flex-direction:column}.audio-setting .today-label{margin:0 0 8px}.audio-sleep-left{text-transform:none;letter-spacing:0;color:var(--brand)}.audio-part{width:100%;text-align:left}.audio-part:disabled{cursor:default}.audio-part-number{flex:0 0 28px;display:grid;place-items:center;font-size:13px;font-weight:600;color:var(--muted-foreground);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.audio-part.is-current .audio-part-number,.audio-part.is-current .grouped-row-label{color:var(--brand);font-weight:650}@media (prefers-reduced-motion:reduce){.audio-mini-progress,.spin{animation:none;transition:none}}.audio-on-shelf{display:inline-flex;align-items:center;gap:4px;margin-top:4px;font-size:13px;font-weight:600;color:var(--brand)}.audio-hero .pill-btn{margin-top:6px}.audio-shelf-ask{padding:14px;border-radius:14px;background:var(--brand-soft);border:1px solid var(--brand-border)}.audio-shelf-ask p{font-size:14px;line-height:1.4}.audio-shelf-ask-actions{display:flex;align-items:center;gap:10px;margin-top:10px}.audio-shelf-ask-actions .primary-btn{flex:1 1;margin-top:0;min-height:44px}.audio-shelf-ask-actions .pill-btn{min-height:44px}.audio-catalogue{gap:14px}.audio-catalogue-row{width:100%;text-align:left}.audio-catalogue-row .status-chip{flex:none}.book-view-times{margin:8px 0 0;font-size:13.5px;font-weight:600;color:var(--brand)}.book-view-reread{align-self:flex-start;min-height:44px}.audio-finished{display:flex;flex-direction:column;align-items:center;gap:10px}.audio-finished .pill-btn{min-height:44px}.hold{display:flex;flex-direction:column;align-items:stretch;gap:6px}.hold-btn{position:relative;min-height:52px;border:0;border-radius:14px;background:var(--brand-soft);color:var(--brand);font-size:16px;font-weight:650;overflow:hidden;cursor:pointer;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none}.hold-btn-fill{position:absolute;inset:0;background:var(--brand);transform-origin:left center;transform:scaleX(var(--hold,0))}.hold-btn-label{position:relative}.hold-btn.filling .hold-btn-label{color:var(--brand-foreground)}.hold-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.hold-hint{text-align:center;font-size:12.5px;color:var(--muted-foreground)}.finish-moment{position:fixed;inset:0;z-index:200;overflow-y:auto;background:var(--background);animation:finish-moment-in .35s ease-out}@keyframes finish-moment-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}.finish-moment-body{position:relative;z-index:2;max-width:450px;margin:0 auto;padding:calc(24px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.finish-moment-emoji{font-size:44px;line-height:1}.finish-moment-title{margin-top:6px;font-family:var(--font-serif);font-size:24px;font-weight:700;line-height:1.25}.finish-moment-nth,.finish-moment-stats{font-size:15px;color:var(--muted-foreground);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.finish-moment-nth{font-weight:650;color:var(--foreground)}.finish-moment-milestone{width:100%;padding:10px 12px;border-radius:12px;background:var(--brand-soft);border:1px solid var(--brand-border);color:var(--brand);font-weight:650;font-size:14.5px}.finish-moment-goal{display:flex;align-items:center;gap:12px;font-weight:600}.finish-moment-goal .goal-fill,.finish-moment-goal .goal-track{fill:none;stroke-width:5}.finish-moment-goal .goal-track{stroke:var(--border-medium)}.finish-moment-goal .goal-fill{stroke:var(--brand);stroke-linecap:round;transform:rotate(-90deg);transform-origin:22px 22px;transition:stroke-dasharray .9s ease-out}.finish-moment-answers{width:100%;margin-top:8px;display:flex;flex-direction:column;align-items:center;gap:6px}.finish-moment-answers .today-label{margin:12px 0 4px}.feeling-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.feeling-chip{min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--border-medium);background:var(--card);color:var(--foreground);font-size:14px;font-weight:550;cursor:pointer}.feeling-chip.selected{background:var(--brand);border-color:var(--brand);color:var(--brand-foreground)}.feeling-chip:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.finish-moment-quote{width:100%;margin-top:6px}.finish-moment-actions{width:100%;display:flex;flex-direction:column;align-items:stretch;gap:8px;margin-top:14px}.finish-moment-actions .pill-btn{justify-content:center;min-height:44px}.confetti{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:1}.confetti i{position:absolute;top:-12px;width:8px;height:14px;border-radius:2px;opacity:.9;animation:confetti-fall linear forwards}@keyframes confetti-fall{to{top:105%;transform:rotate(540deg) translateX(30px);opacity:.7}}@media (prefers-reduced-motion:reduce){.confetti{display:none}.finish-moment{animation:none}.finish-moment-goal .goal-fill{transition:none}}