@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(./source-serif-4-cyrillic-ext-wght-normal-DHTKMUil.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(./source-serif-4-cyrillic-wght-normal-B1g8a0vD.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(./source-serif-4-greek-wght-normal-BpXpdlRW.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(./source-serif-4-vietnamese-wght-normal-BsaNuasd.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(./source-serif-4-latin-ext-wght-normal-BVZ5su8S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(./source-serif-4-latin-wght-normal-DMe4EKeb.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(./source-serif-4-cyrillic-ext-wght-italic-y6hTrs-Y.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(./source-serif-4-cyrillic-wght-italic-CRzqOTyj.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(./source-serif-4-greek-wght-italic-CUp-f2uw.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(./source-serif-4-vietnamese-wght-italic-D3EGHrWW.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(./source-serif-4-latin-ext-wght-italic-B_cmBfNX.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(./source-serif-4-latin-wght-italic-B-rCj6ir.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg-app:#f4efe6;--color-surface:#faf7f1;--color-surface-raised:#fffdf9;--color-surface-sunken:#ebe4d6;--color-hover:#3c2c160f;--color-pressed:#3c2c161c;--color-margin-bg:#efe9dd;--color-text:#2a2622;--color-text-secondary:#575046;--color-text-muted:#6a6155;--color-text-inverse:#fbf8f2;--color-border-subtle:#e8e1d2;--color-border:#dcd3c1;--color-border-control:#877d6d;--color-accent:#962d22;--color-accent-hover:#7a2219;--color-accent-subtle:#f3e0d9;--color-on-accent:#fffaf4;--color-bookmark:#962d22;--color-focus-ring:#2a5f99;--color-selection:#f0cdc2;--color-selection-page:#9a342647;--color-danger:#b3261e;--color-danger-subtle:#fbe6e2;--color-on-danger:#fffaf9;--color-float-bg:#2a2622;--color-float-text:#fbf8f2;--color-float-accent:#f0a898;--color-float-border:#ffffff14;--color-scrim:#2a221861;--page-sheet-bg:#fffdf8;--page-sheet-border:#34281812;--page-canvas-blend:multiply;--page-canvas-filter:none;--note-amber-bg:#fbefc8;--note-amber-border:#e6cd85;--note-amber-text:#5b4207;--note-sage-bg:#e5eedb;--note-sage-border:#bcd1aa;--note-sage-text:#2f4a27;--note-sky-bg:#e0edf8;--note-sky-border:#abcbe6;--note-sky-text:#1f4566;--note-rose-bg:#f9e2e5;--note-rose-border:#e6b5bd;--note-rose-text:#6c2335;--note-lavender-bg:#ebe5f7;--note-lavender-border:#cbbfe6;--note-lavender-text:#43326f;--note-amber-dot:#9f6806;--note-sage-dot:#4f8453;--note-sky-dot:#3a7bb8;--note-rose-dot:#c24668;--note-lavender-dot:#7b65c2;--shadow-rgb:52 40 24;--shadow-k:1;--shadow-sm:0 1px 2px rgb(var(--shadow-rgb) / calc(.08 * var(--shadow-k))), 0 1px 1px rgb(var(--shadow-rgb) / calc(.04 * var(--shadow-k)));--shadow-md:0 2px 4px rgb(var(--shadow-rgb) / calc(.06 * var(--shadow-k))), 0 6px 16px rgb(var(--shadow-rgb) / calc(.09 * var(--shadow-k)));--shadow-lg:0 4px 8px rgb(var(--shadow-rgb) / calc(.06 * var(--shadow-k))), 0 16px 40px rgb(var(--shadow-rgb) / calc(.16 * var(--shadow-k)));--shadow-sheet:0 1px 2px rgb(var(--shadow-rgb) / calc(.07 * var(--shadow-k))), 0 6px 14px rgb(var(--shadow-rgb) / calc(.07 * var(--shadow-k))), 0 18px 40px rgb(var(--shadow-rgb) / calc(.1 * var(--shadow-k)));--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--font-ui:"Inter Variable", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-serif:"Source Serif 4 Variable", "Source Serif 4", "Iowan Old Style", Georgia, "Times New Roman", serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;--font-size-xs:.75rem;--font-size-sm:.8125rem;--font-size-note:.84375rem;--font-size-base:.9375rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.375rem;--font-size-2xl:1.75rem;--font-size-3xl:2.25rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-note:400;--leading-tight:1.2;--leading-snug:1.35;--leading-normal:1.5;--leading-relaxed:1.65;--tracking-tight:-.011em;--tracking-caps:.06em;--z-base:0;--z-text-layer:1;--z-margin-note:10;--z-margin-note-active:15;--z-sticky:20;--z-sidebar:30;--z-toolbar:40;--z-popover:50;--z-return-pill:60;--z-modal:70;--z-toast:80;--z-tooltip:90;--duration-instant:80ms;--duration-fast:.14s;--duration-base:.2s;--duration-slow:.32s;--duration-slower:.48s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-spring:cubic-bezier(.34, 1.4, .64, 1);--transition-colors:color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);--scroll-behavior:smooth;--toolbar-height:48px;--sidebar-width:300px;--margin-column-width:280px;--margin-rail-width:44px;--margin-note-width:248px;--margin-note-gap:8px;--page-gap:24px;--book-card-width:176px;--review-thumb-width:160px}[data-theme=sepia]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg-app:#e9dcc1;--color-surface:#f1e6cd;--color-surface-raised:#f7eed9;--color-surface-sunken:#dfd0b1;--color-hover:#46301412;--color-pressed:#46301421;--color-margin-bg:#e4d6b9;--color-text:#33281b;--color-text-secondary:#58472f;--color-text-muted:#665539;--color-text-inverse:#f7eed9;--color-border-subtle:#dccdab;--color-border:#d0bf9b;--color-border-control:#7d694a;--color-accent:#8a2a1c;--color-accent-hover:#701f13;--color-accent-subtle:#ecd2bf;--color-on-accent:#fbf3e3;--color-bookmark:#8a2a1c;--color-focus-ring:#285a8f;--color-selection:#e8c3ad;--color-selection-page:#8a2a1c4d;--color-danger:#a8231a;--color-danger-subtle:#f1d4c4;--color-on-danger:#fbf3e3;--color-float-bg:#33281b;--color-float-text:#f7eed9;--color-float-accent:#eea08a;--color-float-border:#fff0d21a;--color-scrim:#33281b6b;--page-sheet-bg:#f8efd9;--page-sheet-border:#4630141a;--note-amber-bg:#f5e1a6;--note-amber-border:#d9bd6c;--note-amber-text:#533c06;--note-sage-bg:#dde5c3;--note-sage-border:#b3c38f;--note-sage-text:#2e4624;--note-sky-bg:#d6e4e4;--note-sky-border:#a1bfc4;--note-sky-text:#1f4452;--note-rose-bg:#f2d6c9;--note-rose-border:#dcae9c;--note-rose-text:#64261f;--note-lavender-bg:#e4dae3;--note-lavender-border:#c3b0c4;--note-lavender-text:#46305f;--shadow-rgb:70 48 20;--shadow-k:1.1}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg-app:#1d1c1a;--color-surface:#252321;--color-surface-raised:#2e2c29;--color-surface-sunken:#171615;--color-hover:#fff4e40f;--color-pressed:#fff4e41c;--color-margin-bg:#262421;--color-text:#ece6db;--color-text-secondary:#bdb5a7;--color-text-muted:#a1998c;--color-text-inverse:#1d1c1a;--color-border-subtle:#2b2926;--color-border:#373430;--color-border-control:#7f776a;--color-accent:#ee9884;--color-accent-hover:#f7b3a2;--color-accent-subtle:#3d2621;--color-on-accent:#1d1410;--color-bookmark:#c24a38;--color-focus-ring:#7db0e8;--color-selection:#5a3a33;--color-selection-page:#e58b7659;--color-danger:#f0807a;--color-danger-subtle:#43231f;--color-on-danger:#1d1410;--color-float-bg:#423e38;--color-float-text:#f4eee3;--color-float-accent:#f2a894;--color-float-border:#fff4e424;--color-scrim:#0000008c;--page-sheet-bg:#e3ddd0;--page-sheet-border:#fff4e40f;--note-amber-bg:#3b3216;--note-amber-border:#665428;--note-amber-text:#f2dfa4;--note-sage-bg:#273428;--note-sage-border:#43604a;--note-sage-text:#cde3c4;--note-sky-bg:#1f3142;--note-sky-border:#3a5c7b;--note-sky-text:#c3dcf2;--note-rose-bg:#402530;--note-rose-border:#704050;--note-rose-text:#f6cdd6;--note-lavender-bg:#2d2a43;--note-lavender-border:#54497e;--note-lavender-text:#dcd3f5;--shadow-rgb:0 0 0;--shadow-k:3.2;--font-weight-regular:380;--font-weight-note:340}[data-theme=dark] .invert-pages,[data-theme=dark].invert-pages{--page-sheet-bg:#242321;--page-sheet-border:#fff4e41a;--page-canvas-blend:normal;--page-canvas-filter:invert(.86) hue-rotate(180deg) sepia(.12)}[data-note-color=amber]{--note-bg:var(--note-amber-bg);--note-border:var(--note-amber-border);--note-text:var(--note-amber-text);--note-dot:var(--note-amber-dot)}[data-note-color=sage]{--note-bg:var(--note-sage-bg);--note-border:var(--note-sage-border);--note-text:var(--note-sage-text);--note-dot:var(--note-sage-dot)}[data-note-color=sky]{--note-bg:var(--note-sky-bg);--note-border:var(--note-sky-border);--note-text:var(--note-sky-text);--note-dot:var(--note-sky-dot)}[data-note-color=rose]{--note-bg:var(--note-rose-bg);--note-border:var(--note-rose-border);--note-text:var(--note-rose-text);--note-dot:var(--note-rose-dot)}[data-note-color=lavender]{--note-bg:var(--note-lavender-bg);--note-border:var(--note-lavender-border);--note-text:var(--note-lavender-text);--note-dot:var(--note-lavender-dot)}@media (prefers-reduced-motion:reduce){:root{--duration-instant:.01ms;--duration-fast:.01ms;--duration-base:.01ms;--duration-slow:.01ms;--duration-slower:.01ms;--scroll-behavior:auto}}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;accent-color:var(--color-accent);scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--color-text) 26%, transparent) transparent}html,body,#root{height:100%}img,svg,video{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}ul,ol{padding:0;list-style:none}table{border-collapse:collapse}[hidden]{display:none!important}body{font-family:var(--font-ui);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg-app);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}h1,h2,h3,h4{font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);text-wrap:balance}h1,h2{font-family:var(--font-serif)}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}h4{font-size:var(--font-size-md)}p{text-wrap:pretty}strong,b{font-weight:var(--font-weight-semibold)}blockquote{font-family:var(--font-serif);color:var(--color-text-secondary);font-style:italic}code,pre{font-family:var(--font-mono);font-size:.92em}::placeholder{color:var(--color-text-muted);opacity:1}::selection{background:var(--color-selection);color:var(--color-text)}a{color:var(--color-accent);text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);transition:var(--transition-colors)}a:hover{color:var(--color-accent-hover);text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}:focus:not(:focus-visible){outline:none}.page-sheet,.page-thumb{background:var(--page-sheet-bg);isolation:isolate}.page-sheet{box-shadow:0 0 0 1px var(--page-sheet-border), var(--shadow-sheet);border-radius:2px}.page-thumb{box-shadow:0 0 0 1px var(--page-sheet-border), var(--shadow-sm);border-radius:3px}.page-sheet canvas,.page-thumb canvas{mix-blend-mode:var(--page-canvas-blend);filter:var(--page-canvas-filter);display:block}.page-sheet ::selection{background:var(--color-selection-page);color:#0000}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.lucide{stroke-width:1.75px;flex-shrink:0}.btn{--btn-height:34px;justify-content:center;align-items:center;gap:var(--space-2);height:var(--btn-height);padding:0 var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;color:var(--color-text);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);-webkit-user-select:none;user-select:none;transition:var(--transition-colors), transform var(--duration-instant) var(--ease-standard);line-height:1;display:inline-flex}.btn .lucide{width:18px;height:18px}.btn:hover{background:color-mix(in srgb, var(--color-surface-raised), var(--color-text) 6%)}.btn:active{background:color-mix(in srgb, var(--color-surface-raised), var(--color-text) 11%);transform:translateY(.5px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;pointer-events:none}.btn--primary{color:var(--color-on-accent);background:var(--color-accent);border-color:#0000}.btn--primary:hover,.btn--primary:active{background:var(--color-accent-hover)}.btn--ghost{color:var(--color-text-secondary);box-shadow:none;background:0 0;border-color:#0000}.btn--ghost:hover{color:var(--color-text);background:var(--color-hover)}.btn--ghost:active{background:var(--color-pressed)}.btn--icon{width:var(--btn-height);padding:0}.btn--sm{--btn-height:28px;padding:0 var(--space-3);font-size:var(--font-size-xs);border-radius:var(--radius-xs)}.btn--sm .lucide{width:16px;height:16px}.btn--sm.btn--icon{padding:0}.btn.is-active,.btn[aria-pressed=true]{color:var(--color-accent);background:var(--color-accent-subtle);box-shadow:none;border-color:#0000}.input{width:100%;height:34px;padding:0 var(--space-3);font-size:var(--font-size-base);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-surface-raised);border:1px solid var(--color-border-control);border-radius:var(--radius-sm);transition:var(--transition-colors)}.input:hover{border-color:var(--color-text-muted)}.input:focus-visible{border-color:var(--color-focus-ring);outline-offset:1px}.input--sm{width:auto;height:28px;font-size:var(--font-size-sm);text-align:center}textarea.input{height:auto;min-height:72px;padding:var(--space-2) var(--space-3);resize:vertical}.kbd{min-width:20px;height:20px;padding:0 var(--space-1);font-family:var(--font-ui);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-xs);border-bottom-width:2px;justify-content:center;align-items:center;line-height:1;display:inline-flex}.chip{align-items:center;gap:var(--space-1);height:24px;padding:0 var(--space-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;color:var(--color-text-secondary);background:var(--color-surface-sunken);border-radius:var(--radius-full);transition:var(--transition-colors);line-height:1;display:inline-flex}.chip.is-active{color:var(--color-accent);background:var(--color-accent-subtle)}.card{background:var(--color-surface-raised);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out), border-color var(--duration-fast) var(--ease-standard)}.card--interactive{cursor:pointer}.card--interactive:hover{border-color:var(--color-border);box-shadow:var(--shadow-md);transform:translateY(-2px)}.divider{height:1px;margin:var(--space-4) 0;background:var(--color-border-subtle);border:0}.divider--vertical{width:1px;height:20px;margin:0 var(--space-2);flex:none;align-self:center}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);z-index:var(--z-tooltip);padding:5px var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;color:var(--color-float-text);background:var(--color-float-bg);border-radius:var(--radius-xs);box-shadow:var(--shadow-md);opacity:0;pointer-events:none;transition:opacity var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);line-height:1.2;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,3px)}.tooltip--below:after{top:calc(100% + 8px);bottom:auto;transform:translate(-50%,-3px)}.tooltip:focus-visible:after{opacity:1;transform:translate(-50%)}@media (hover:hover){.tooltip:hover:after{opacity:1;transition-delay:.45s;transform:translate(-50%)}}.tooltip[aria-expanded=true]:after{opacity:0;transition-delay:0s}.segmented{background:var(--color-surface-sunken);border-radius:var(--radius-md);gap:2px;padding:2px;display:inline-flex}.segmented--full{display:flex}.segmented--full .segmented__item{flex:1}.segmented__item{justify-content:center;align-items:center;gap:var(--space-1);height:28px;padding:0 var(--space-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;color:var(--color-text-secondary);border-radius:calc(var(--radius-md) - 2px);transition:var(--transition-colors);line-height:1;display:inline-flex}.segmented__item .lucide{width:16px;height:16px}.segmented__item:hover{color:var(--color-text)}.segmented__item.is-active,.segmented__item[aria-selected=true],.segmented__item[aria-checked=true],.segmented__item[aria-pressed=true]{color:var(--color-text);background:var(--color-surface-raised);box-shadow:var(--shadow-sm)}.empty-state{align-items:center;gap:var(--space-3);max-width:420px;padding:var(--space-7) var(--space-5);text-align:center;flex-direction:column;margin:0 auto;display:flex}.empty-state__icon{width:56px;height:56px;margin-bottom:var(--space-2);color:var(--color-text-muted);background:var(--color-surface-sunken);border-radius:var(--radius-full);place-items:center;display:grid}.empty-state__icon .lucide{width:24px;height:24px}.empty-state__title{font-family:var(--font-serif);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-tight)}.empty-state__body{color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.empty-state__actions{justify-content:center;gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.screen-center{min-height:100%;padding:var(--space-6);place-items:center;display:grid}.loading-mark{align-items:center;gap:var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:inline-flex}.loading-mark__spinner{border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:var(--radius-full);width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.theme-menu{align-items:center;gap:var(--space-1);display:inline-flex}.popover{z-index:var(--z-popover);min-width:240px;padding:var(--space-3);background:var(--color-surface-raised);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:popover-in var(--duration-base) var(--ease-out);position:absolute;top:calc(100% + 6px);right:0}@keyframes popover-in{0%{opacity:0;transform:translateY(4px)scale(.97)}}.appearance-menu{position:relative}.appearance-menu__panel{gap:var(--space-4);flex-direction:column;width:288px;display:flex}.appearance-menu__group{gap:var(--space-3);flex-direction:column;display:flex}.appearance-menu__row,.appearance-menu__switch{align-items:center;gap:var(--space-2);min-height:28px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);display:flex}.appearance-menu__row>span,.appearance-menu__switch>span{flex:1;min-width:0}.appearance-menu__switch{cursor:pointer}.appearance-menu__switch small{font-size:var(--font-size-xs);font-weight:var(--font-weight-regular);color:var(--color-text-secondary);display:block}.appearance-menu__switch.is-disabled{cursor:not-allowed;opacity:.55}.appearance-menu__key{background:0 0;flex:none}.appearance-menu__group--links{margin:0 calc(-1 * var(--space-2)) calc(-1 * var(--space-1));gap:0}.appearance-menu__link{align-items:center;gap:var(--space-2);padding:var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);border-radius:var(--radius-sm);transition:var(--transition-colors);display:flex}.appearance-menu__link:hover{color:var(--color-text);background:var(--color-hover)}.appearance-menu__link .lucide{width:16px;height:16px}.appearance-menu__link .appearance-menu__key{margin-left:auto}input[type=checkbox][role=switch]{appearance:none;background:var(--color-surface-sunken);border:1px solid var(--color-border-control);border-radius:var(--radius-full);width:34px;height:20px;cursor:inherit;transition:var(--transition-colors);flex:none;position:relative}input[type=checkbox][role=switch]:after{content:"";background:var(--color-text-secondary);border-radius:var(--radius-full);width:14px;height:14px;transition:transform var(--duration-fast) var(--ease-out), background-color var(--duration-fast);position:absolute;top:2px;left:2px}input[type=checkbox][role=switch]:checked{background:var(--color-accent);border-color:var(--color-accent)}input[type=checkbox][role=switch]:checked:after{background:var(--color-on-accent);transform:translate(14px)}input[type=checkbox][role=switch]:disabled:checked{background:var(--color-surface-sunken);border-color:var(--color-border-control)}input[type=checkbox][role=switch]:disabled:checked:after{background:var(--color-text-secondary)}.toast-host{bottom:var(--space-5);left:var(--space-5);z-index:var(--z-toast);pointer-events:none;position:fixed}.toast-host__list{align-items:flex-start;gap:var(--space-2);flex-direction:column;display:flex}.toast{align-items:center;gap:var(--space-3);max-width:min(520px,100vw - 32px);min-height:40px;padding:0 var(--space-1) 0 var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-float-text);background:var(--color-float-bg);border:1px solid var(--color-float-border);border-radius:var(--radius-full);box-shadow:var(--shadow-lg);pointer-events:auto;animation:toast-in var(--duration-slow) var(--ease-spring);display:flex}.toast--error .toast__message:before{content:"";width:8px;height:8px;margin-right:var(--space-2);vertical-align:1px;background:var(--color-danger);border-radius:var(--radius-full);display:inline-block}.toast__message{flex:1;min-width:0}.toast__action{padding:var(--space-1) var(--space-2);font-weight:var(--font-weight-semibold);color:var(--color-float-accent);border-radius:var(--radius-sm)}.toast__action:hover{background:var(--color-float-border)}.toast__close{width:30px;height:30px;color:var(--color-float-text);border-radius:var(--radius-full);opacity:.75;place-items:center;display:grid}.toast__close:hover{background:var(--color-float-border);opacity:1}.toast__close .lucide{width:16px;height:16px}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)scale(.97)}}.page-field{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;display:flex}.page-field__input{width:52px;padding:0 var(--space-1)}.page-field__input--labeled{width:80px}.page-field__input.is-invalid{border-color:var(--color-danger);animation:page-field-shake var(--duration-base) var(--ease-standard)}.page-field__total{color:var(--color-text-muted);white-space:nowrap}@keyframes page-field-shake{25%,75%{transform:translate(-3px)}50%{transform:translate(3px)}}.outline{padding-bottom:var(--space-2)}.outline>[role=treeitem]+[role=treeitem]{margin-top:var(--space-1)}.outline [role=treeitem]:focus-visible{outline-offset:-2px;border-radius:var(--radius-xs)}.outline__item{min-height:32px;padding-right:var(--space-2);color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-colors);align-items:center;display:flex}.outline__item:hover{color:var(--color-text);background:var(--color-hover)}.outline__item[data-depth="1"]{font-weight:var(--font-weight-semibold);color:var(--color-text)}.outline__item.is-current{color:var(--color-accent);background:var(--color-accent-subtle)}.outline__item.is-unresolved{color:var(--color-text-muted);cursor:default}.outline__chevron{width:28px;height:32px;color:var(--color-text-secondary);flex:0 0 28px;place-items:center;display:grid}.outline__chevron .lucide{width:16px;height:16px}.outline__label{min-width:0;font-size:var(--font-size-sm);line-height:var(--leading-snug);flex:1;align-items:baseline;gap:6px;display:flex}.outline__number{font-variant-numeric:tabular-nums;color:var(--color-text-muted);flex:none}.outline__item.is-current .outline__number{color:inherit}.outline__title{overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;min-width:0;display:-webkit-box;overflow:hidden}.outline__page,.bookmark-list__page{margin-left:var(--space-2);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;color:var(--color-text-muted)}.outline__item.is-current .outline__page{color:inherit}.outline__empty,.bookmark-list__empty{padding:var(--space-6) var(--space-3)}.outline__empty .empty-state__title,.bookmark-list__empty .empty-state__title{font-size:var(--font-size-lg)}.outline__empty .empty-state__body,.bookmark-list__empty .empty-state__body{font-size:var(--font-size-sm)}.bookmark-list__toggle{width:100%;margin-bottom:var(--space-2);justify-content:flex-start}.bookmark-list__toggle span{text-align:left;flex:1}.bookmark-list__item{min-width:0;min-height:36px;padding:0 var(--space-1);border-radius:var(--radius-xs);align-items:center;display:flex}.bookmark-list__item:hover{background:var(--color-hover)}.bookmark-list__item.is-current{color:var(--color-accent);background:var(--color-accent-subtle)}.bookmark-list__link{min-width:0;min-height:36px;padding:var(--space-1) var(--space-2);text-align:left;flex:1;align-items:center;display:flex}.bookmark-list__label{min-width:0;font-size:var(--font-size-sm);line-height:var(--leading-snug);overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;display:-webkit-box;overflow:hidden}.bookmark-list__input{min-width:0;height:28px;font-size:var(--font-size-sm);flex:1}.bookmark-list__action{transition:var(--transition-colors), opacity var(--duration-fast) var(--ease-standard);flex:0 0 28px}@media (hover:hover){.bookmark-list__item:not(:hover,:focus-within) .bookmark-list__action{opacity:0}}.bookmark-ribbon{z-index:3;pointer-events:auto;width:22px;height:38px;position:absolute;top:0;right:24px}.bookmark-ribbon:before,.page-sheet__ribbon{clip-path:polygon(0 0,100% 0,100% 100%,50% 78%,0 100%);position:absolute;inset:0}.bookmark-ribbon:before{content:"";background:var(--color-border-control);opacity:0;transition:opacity var(--duration-fast) var(--ease-standard)}.page-sheet[data-ribbon-reveal] .bookmark-ribbon:before{opacity:.4}.bookmark-ribbon:hover:before{background:var(--color-bookmark);opacity:.6}@media (hover:none){.bookmark-ribbon:before{opacity:.25}}.bookmark-ribbon[aria-pressed=true]:before{content:none}.page-sheet__ribbon{background:var(--color-bookmark);animation:ribbon-enter var(--duration-slow) var(--ease-spring) both}@keyframes ribbon-enter{0%{transform:translateY(-100%)}}.return-pill-region{z-index:var(--z-return-pill);pointer-events:none;justify-content:center;display:flex;position:absolute;bottom:24px;left:0;right:0}.return-pill{height:40px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-float-text);background:var(--color-float-bg);border:1px solid var(--color-float-border);border-radius:var(--radius-full);box-shadow:var(--shadow-lg);pointer-events:auto;animation:return-enter var(--duration-slow) var(--ease-spring) both, return-pulse .9s var(--ease-out) both;transition:var(--transition-colors);align-items:center;padding:0 6px 0 14px;display:flex}.return-pill:hover{background:color-mix(in srgb, var(--color-float-bg), var(--color-float-text) 6%)}.return-pill__action{align-items:center;gap:var(--space-2);height:100%;display:flex}.return-pill__action .lucide,.return-pill__close .lucide{width:16px;height:16px}.return-pill__label{animation:return-label var(--duration-fast) var(--ease-out) both}.return-pill__label strong{color:var(--color-float-accent);font-variant-numeric:tabular-nums}.return-pill__close{width:28px;height:28px;margin-left:var(--space-2);border-radius:var(--radius-full);place-items:center;display:grid}.return-pill__close:hover{background:color-mix(in srgb, var(--color-float-text) 14%, transparent)}.return-trail{position:relative}.popover.return-trail__list{width:max-content;min-width:100px;max-height:min(320px,50dvh);padding:var(--space-1);color:var(--color-float-text);background:var(--color-float-bg);border-color:var(--color-float-border);inset:auto auto calc(100% + 10px) 50%;overflow-y:auto;translate:-50%}.return-trail__item{width:100%;min-height:30px;padding:var(--space-1) var(--space-3);font-size:var(--font-size-sm);text-align:left;border-radius:var(--radius-xs);color:var(--color-float-accent);font-variant-numeric:tabular-nums;display:block}.return-trail__item:hover,.return-trail__item:focus-visible{background:color-mix(in srgb, var(--color-float-text) 12%, transparent)}.return-trail__item:focus-visible{outline-offset:-2px}@keyframes return-enter{0%{opacity:0;transform:translateY(16px)scale(.96)}}@keyframes return-label{0%{opacity:0}}@keyframes return-pulse{0%{box-shadow:var(--shadow-lg), 0 0 0 0 color-mix(in srgb, var(--color-float-accent) 45%, transparent)}to{box-shadow:var(--shadow-lg), 0 0 0 10px transparent}}@media (prefers-reduced-motion:reduce){.page-sheet__ribbon,.return-pill,.return-pill__label,.page-field__input.is-invalid{animation:none}}.shortcuts-dialog{width:min(760px, calc(100vw - 2 * var(--space-4)));max-width:none;max-height:calc(100dvh - 2 * var(--space-4));font-family:var(--font-ui);color:var(--color-text);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin:auto;padding:0;position:fixed;inset:0;overflow-y:auto}.shortcuts-dialog::backdrop{background:var(--color-scrim)}.shortcuts-dialog__header{align-items:flex-start;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-subtle);display:flex}.shortcuts-dialog__icon{height:40px;color:var(--color-accent);background:var(--color-accent-subtle);border-radius:var(--radius-md);flex:0 0 40px;place-items:center;display:grid}.shortcuts-dialog__icon .lucide{width:20px;height:20px}.shortcuts-dialog__heading{flex:1;min-width:0}.shortcuts-dialog__heading h2{font-family:var(--font-ui);font-size:var(--font-size-lg)}.shortcuts-dialog__heading p{margin-top:var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.shortcuts-dialog__groups{padding:var(--space-4) var(--space-5) 0;column-gap:var(--space-6);columns:2 300px}.shortcuts-dialog__group{padding-bottom:var(--space-3);break-inside:avoid}.shortcuts-dialog h3{margin-bottom:var(--space-1);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-muted)}.shortcuts-dialog dl,.shortcuts-dialog dd{margin:0}.shortcuts-dialog__row{align-items:center;gap:var(--space-3);min-height:28px;font-size:var(--font-size-sm);grid-template-columns:minmax(0,1fr) auto;display:grid}.shortcuts-dialog__row dt{min-width:0}.shortcuts-dialog__detail{font-size:var(--font-size-xs);color:var(--color-text-muted);display:block}.shortcuts-dialog__keys{justify-content:flex-end;align-items:center;gap:var(--space-1);color:var(--color-text-muted);flex-wrap:wrap;display:inline-flex}.shortcuts-dialog__or{font-size:var(--font-size-xs);padding:0 2px}.shortcuts-dialog__pointer{padding:var(--space-3) var(--space-5) var(--space-5);border-top:1px solid var(--color-border-subtle)}.shortcuts-dialog__pointer dl{gap:var(--space-2) var(--space-6);margin-top:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.shortcuts-dialog__way{font-size:var(--font-size-sm)}.shortcuts-dialog__way dd{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.library{max-width:1184px;min-height:100%;margin:0 auto;padding:38px 32px 48px}.library__topline,.library__header,.library__section-heading{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.library__topline{border-bottom:1px solid var(--color-border);padding-bottom:25px}.library__topline-actions{align-items:center;gap:var(--space-2);display:flex}.library__brand{font-family:var(--font-serif);font-size:19px;font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-tight);align-items:center;gap:9px;display:flex}.library__brand svg{width:20px;height:20px;color:var(--color-accent)}.library__header{align-items:end;margin:38px 0 42px}.library__header--with-status{margin-bottom:var(--space-3)}.library__status-row{margin-bottom:34px}.library__header h1{margin-top:6px}.library__eyebrow,.library__empty-kicker,.library__section-heading>span{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.1em}.library__open{height:40px}.folder-chip{align-items:center;gap:var(--space-2);max-width:100%;height:30px;padding:0 var(--space-3) 0 10px;color:var(--color-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-full);transition:var(--transition-colors);display:inline-flex}.folder-chip:hover:not(:disabled){background:color-mix(in srgb, var(--color-surface-raised), var(--color-text) 6%)}.folder-chip:disabled{opacity:.6;cursor:progress}.folder-chip .lucide{width:15px;height:15px;color:var(--color-text-secondary)}.folder-chip__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.folder-chip__detail{color:var(--color-text-secondary);font-weight:var(--font-weight-regular);white-space:nowrap;flex:none}.folder-chip--notice,.folder-chip--notice .lucide{color:var(--color-accent)}.folder-chip--notice{background:var(--color-accent-subtle);border-color:#0000}.folder-chip--notice:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent-subtle), var(--color-accent) 10%)}.folder-chip--error .lucide{color:var(--color-danger)}.folder-chip__spinner{animation:.8s linear infinite library-spin}.library__loading,.library__error{color:var(--color-text-secondary)}.library__error button{color:var(--color-accent);text-decoration:underline}.dropzone{border:2px dashed var(--color-border-control);border-radius:var(--radius-lg);transition:background-color var(--duration-fast), border-color var(--duration-fast)}.dropzone.is-dragover{background:var(--color-accent-subtle);border-color:var(--color-accent)}.library__empty{min-height:456px;padding:var(--space-6);background:color-mix(in srgb, var(--color-surface) 70%, transparent);place-items:center;display:grid}.library__empty .empty-state{gap:var(--space-3);max-width:390px;padding:32px 8px}.library__empty .empty-state__title{font-size:var(--font-size-2xl)}.library__empty .empty-state__body{max-width:330px}.library__empty .empty-state__actions{margin-top:var(--space-3)}.library__empty .empty-state__actions .btn{height:40px}.library__empty-hint{max-width:330px;color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--leading-normal)}.library__empty-kicker{margin-top:var(--space-3);color:var(--color-accent)}.library__empty-illustration{width:104px;height:106px;margin-bottom:12px;position:relative}.library__empty-paper{border:1px solid var(--color-border);width:70px;height:91px;box-shadow:var(--shadow-md);border-radius:3px 6px 6px 3px;position:absolute}.library__empty-paper--back{background:var(--color-surface-sunken);top:3px;left:18px;transform:rotate(-12deg)}.library__empty-paper--front{color:var(--color-accent);background:var(--color-surface-raised);place-items:center;display:grid;top:9px;left:25px;transform:rotate(7deg)}.library__empty-paper--front:before{content:"";border-left:1px solid var(--color-border);position:absolute;inset:0 auto 0 7px}.library__empty-paper--front svg{width:27px;height:27px}.library__section-heading{align-items:baseline;margin-bottom:16px}.library__section-heading h2{font-size:var(--font-size-lg)}.now-reading{align-items:center;gap:28px;padding:24px 28px;display:flex}.now-reading>.now-reading__cover{flex:none;width:120px}.now-reading__body{overflow-wrap:anywhere;flex:1;min-width:0}.now-reading__eyebrow{color:var(--color-accent);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.1em}.now-reading__eyebrow span{color:var(--color-text-muted);font-weight:var(--font-weight-medium);letter-spacing:0}.now-reading__title{font-family:var(--font-serif);font-size:var(--font-size-2xl);line-height:var(--leading-tight);margin:8px 0 4px}.now-reading__where{color:var(--color-text-secondary);font-family:var(--font-serif)}.now-reading__bar{gap:3px;margin:18px 0 8px;display:flex}.now-reading__bar>span{background:var(--color-surface-sunken);border-radius:2px;flex-basis:0;min-width:3px;height:6px;position:relative;overflow:hidden}.now-reading__bar>span>span{background:color-mix(in srgb, var(--color-accent) 50%, var(--color-surface-sunken));position:absolute;inset:0 auto 0 0}.now-reading__bar>.is-current>span{background:var(--color-accent)}.now-reading__stats{color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums}.library__books{margin-top:48px}.library__grid{grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:32px 24px;display:grid}.book-card{min-width:0;position:relative}.book-card__main{text-align:left;flex-direction:column;width:100%;display:flex}.book-card__cover{aspect-ratio:3/4;background:var(--color-surface-sunken);width:100%;box-shadow:var(--shadow-sheet);transition:transform var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);border-radius:3px;position:relative;overflow:hidden}.book-card__cover:after{content:"";background:linear-gradient(90deg, rgb(var(--shadow-rgb) / .24), transparent);pointer-events:none;width:7%;position:absolute;inset:0 auto 0 0}.book-card__cover img{object-fit:cover;width:100%;height:100%}.book-card__placeholder{width:100%;height:100%;color:var(--color-text);background:var(--color-accent-subtle);text-align:center;place-items:center;padding:22% 15%;display:grid}.book-card__placeholder span{font-family:var(--font-serif);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);overflow-wrap:anywhere}.book-card:hover .book-card__main .book-card__cover,.book-card:focus-within .book-card__main .book-card__cover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}[data-theme=dark] .book-card__cover img{filter:brightness(.9)}.book-card__title{-webkit-line-clamp:2;width:100%;min-height:2.6em;font-family:var(--font-serif);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);-webkit-box-orient:vertical;margin:12px 0 10px;line-height:1.3;display:-webkit-box;overflow:hidden}.book-card__meta{width:100%;color:var(--color-text-secondary);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;align-items:center;gap:10px;display:flex}.book-card__progress{background:var(--color-surface-sunken);border-radius:2px;flex:1;height:3px;overflow:hidden}.book-card__progress>span{background:var(--color-accent);border-radius:inherit;height:100%;display:block}.book-card__opened{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;color:var(--color-text-muted);font-size:var(--font-size-xs);margin-top:5px;display:flex}.book-card__source{flex:none;display:inline-flex}.book-card__source .lucide{width:13px;height:13px}.book-card__missing{min-width:0;color:var(--color-text-secondary);font-weight:var(--font-weight-medium);align-items:center;gap:5px;display:inline-flex}.book-card__missing .lucide{width:14px;height:14px;color:var(--color-danger)}.book-card.is-missing .book-card__cover{opacity:.5;filter:grayscale()}.book-card.is-missing:hover .book-card__main .book-card__cover,.book-card.is-missing:focus-within .book-card__main .book-card__cover{box-shadow:var(--shadow-sheet);transform:none}.book-card__menu{position:absolute;top:8px;right:8px}.book-card__menu-button{opacity:0;transition:opacity var(--duration-fast), var(--transition-colors)}.book-card:hover .book-card__menu-button,.book-card:focus-within .book-card__menu-button,.book-card__menu.is-open .book-card__menu-button{opacity:1}.book-card__popover{z-index:var(--z-popover);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);min-width:190px;box-shadow:var(--shadow-lg);padding:5px;position:absolute;top:calc(100% + 6px);right:0}.book-card__popover button{border-radius:var(--radius-xs);text-align:left;width:100%;font-size:var(--font-size-sm);padding:9px 10px}.book-card__popover button:hover{background:var(--color-hover)}.book-card__popover-note{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--leading-snug);padding:9px 10px}.book-card__popover button+.book-card__popover-note{border-top:1px solid var(--color-border);margin-top:4px}.library__drop-overlay{z-index:var(--z-modal);background:var(--color-scrim);pointer-events:none;place-items:center;padding:32px;display:grid;position:fixed;inset:0}.library__drop-message{width:min(100%,540px);min-height:260px;box-shadow:var(--shadow-lg);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.library__drop-message svg{width:32px;height:32px;color:var(--color-accent);margin-bottom:8px}.library__drop-message strong{font-family:var(--font-serif);font-size:var(--font-size-xl)}.library__drop-message span{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.library__footer{color:var(--color-text-muted);font-size:var(--font-size-xs);justify-content:center;align-items:center;gap:7px;margin-top:40px;display:flex}.library__footer svg{width:15px;height:15px}.library__spinner{animation:.8s linear infinite library-spin}@keyframes library-spin{to{transform:rotate(360deg)}}.library-dialog{width:min(440px,100% - 32px);color:var(--color-text);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);margin:auto;padding:28px}.library-dialog::backdrop{background:var(--color-scrim)}.library-dialog h2{font-size:var(--font-size-xl);overflow-wrap:anywhere}.library-dialog p{color:var(--color-text-secondary);margin-top:12px}.library-dialog__actions{justify-content:flex-end;gap:8px;margin-top:24px;display:flex}.library-dialog__danger{color:var(--color-on-danger);background:var(--color-danger);border-color:#0000}.library-dialog__danger:hover,.library-dialog__danger:active{background:color-mix(in srgb, var(--color-danger), var(--color-text) 15%)}@media (hover:none){.book-card__menu-button{opacity:1}}@media (prefers-reduced-motion:reduce){.book-card:hover .book-card__main .book-card__cover,.book-card:focus-within .book-card__main .book-card__cover{transform:none}.library__spinner,.folder-chip__spinner{animation:none}}@media (max-width:600px){.library{padding:24px 20px 36px}.library__topline{flex-wrap:wrap;padding-bottom:18px}.library__topline-actions{margin-left:auto}.library__header{margin:28px 0 30px}.library__header--with-status{margin-bottom:var(--space-3)}.library__status-row{margin-bottom:26px}.library__empty{min-height:390px;padding:20px}.now-reading{flex-wrap:wrap;gap:16px;padding:16px}.now-reading>.now-reading__cover{width:84px}.now-reading>.btn{width:100%}.library__grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:28px 18px}.library__books{margin-top:36px}}[data-highlight-color=amber]{--link-color:var(--note-amber-dot)}[data-highlight-color=sage]{--link-color:var(--note-sage-dot)}[data-highlight-color=sky]{--link-color:var(--note-sky-dot)}[data-highlight-color=rose]{--link-color:var(--note-rose-dot)}[data-highlight-color=lavender]{--link-color:var(--note-lavender-dot)}.page-highlights{pointer-events:none;position:absolute;inset:0}.page-highlight{--highlight-fill:var(--note-border);background:var(--highlight-fill);mix-blend-mode:multiply;transition:background-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);border-radius:2px;position:absolute}.page-highlight.is-emphasised{--highlight-fill:color-mix(in srgb, var(--note-border) 72%, var(--note-dot));box-shadow:0 0 0 1.5px color-mix(in srgb, var(--note-dot) 55%, transparent)}.page-highlight.is-pulsing{animation:highlight-pulse 1.2s var(--ease-out)}@keyframes highlight-pulse{0%,45%{box-shadow:0 0 0 3px var(--color-accent)}to{box-shadow:0 0 0 3px #0000}}@media (prefers-reduced-motion:reduce){.page-highlight.is-pulsing{box-shadow:0 0 0 2px var(--color-accent);animation:none}}[data-theme=dark] .page-highlight{--highlight-fill:color-mix(in srgb, var(--note-dot) 52%, var(--page-sheet-bg))}[data-theme=dark] .page-highlight.is-emphasised{--highlight-fill:color-mix(in srgb, var(--note-dot) 68%, var(--page-sheet-bg))}[data-theme=dark] .invert-pages .page-highlight{--highlight-fill:color-mix(in srgb, var(--note-dot) 50%, transparent);mix-blend-mode:screen}[data-theme=dark] .invert-pages .page-highlight.is-emphasised{--highlight-fill:color-mix(in srgb, var(--note-dot) 68%, transparent)}.selection-popover__highlight{padding-left:var(--space-1);align-items:center;gap:2px;display:flex}.selection-popover__icon{width:16px;height:16px;margin-right:var(--space-1);color:var(--color-float-accent)}.selection-popover__swatch{border-radius:var(--radius-xs);width:24px;height:26px;transition:background-color var(--duration-fast) var(--ease-standard);place-items:center;display:grid}.selection-popover__swatch:hover{background:var(--color-float-border)}.selection-popover__swatch:before{content:"";background:var(--note-dot);border-radius:var(--radius-full);width:14px;height:14px;box-shadow:0 0 0 1.5px color-mix(in srgb, var(--color-float-text) 55%, transparent);transition:transform var(--duration-fast) var(--ease-standard)}.selection-popover__swatch:hover:before{transform:scale(1.12)}.selection-popover__swatch.is-last:before{box-shadow:0 0 0 2px var(--color-float-bg), 0 0 0 3.5px var(--color-float-text)}.selection-popover__divider{background:var(--color-float-border);align-self:stretch;width:1px;margin:6px 2px}.selection-popover__highlight .kbd{margin-left:var(--space-1)}.highlight-popover{--swatch-gap:var(--color-float-bg);padding:0 var(--space-1)}.highlight-popover .swatches{padding-left:0}.highlight-popover .swatch:hover:before{transform:scale(1.12)}.selection-popover__icon-button{width:26px;height:26px;color:inherit;border-radius:var(--radius-xs);transition:background-color var(--duration-fast) var(--ease-standard);place-items:center;display:grid}.selection-popover__icon-button:hover{background:var(--color-float-border)}.selection-popover__icon-button .lucide{width:16px;height:16px}.margin-column{--note-gutter:24px;--note-line:calc(var(--font-size-note) * var(--leading-normal));position:absolute;inset:0}.margin-column.is-adding{cursor:pointer}.margin-note-slot{pointer-events:none;position:absolute;inset:0}.margin-note__anchor{z-index:calc(var(--z-margin-note) + 1);background:var(--note-dot);border-radius:var(--radius-full);width:8px;height:8px;box-shadow:0 0 0 2px var(--page-sheet-bg);cursor:pointer;pointer-events:auto;transition:transform var(--duration-fast) var(--ease-standard);position:absolute;left:0;transform:translate(-50%,-50%)}.margin-note__anchor:after{content:"";position:absolute;inset:-6px}.margin-note__leader{width:var(--note-gutter);background:color-mix(in srgb, var(--note-dot) 70%, transparent);pointer-events:none;height:1px;margin-top:-1px;position:absolute;left:0}.margin-note__tether{width:var(--note-gutter);pointer-events:none;position:absolute;left:0;overflow:visible}.margin-note__tether path{fill:none;stroke:color-mix(in srgb, var(--note-dot) 70%, transparent);stroke-width:1px;stroke-linecap:round;vector-effect:non-scaling-stroke}.margin-note-slot:hover .margin-note__anchor,.margin-note-slot:focus-within .margin-note__anchor{transform:translate(-50%,-50%)scale(1.25)}.margin-note-slot:hover .margin-note__leader,.margin-note-slot:focus-within .margin-note__leader{background:var(--note-dot);height:2px}.margin-note-slot:hover .margin-note__tether path,.margin-note-slot:focus-within .margin-note__tether path{stroke:var(--note-dot);stroke-width:2px}.margin-column[data-settled] .margin-note-slot[data-ready] .margin-note{transition:top var(--duration-base) var(--ease-out), box-shadow var(--duration-fast) var(--ease-standard)}.margin-column[data-settled] .margin-note-slot[data-ready] .margin-note__leader{transition:top var(--duration-base) var(--ease-out), height var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard)}.margin-column[data-settled] .margin-note-slot[data-ready] .margin-note__tether{transition:top var(--duration-base) var(--ease-out), height var(--duration-base) var(--ease-out)}.margin-note{--swatch-gap:var(--note-bg);left:var(--note-gutter);z-index:var(--z-margin-note);width:var(--margin-note-width);font-family:var(--font-serif);font-size:var(--font-size-note);font-weight:var(--font-weight-note);line-height:var(--leading-normal);color:var(--note-text);background:var(--note-bg);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);cursor:text;pointer-events:auto;transition:box-shadow var(--duration-fast) var(--ease-standard);position:absolute}.margin-note:before{content:"";border:1px solid var(--note-border);border-left:3px solid var(--note-dot);border-radius:inherit;pointer-events:none;position:absolute;inset:0}.margin-note:hover,.margin-note:focus-within{z-index:var(--z-margin-note-active);box-shadow:var(--shadow-md)}.margin-note.is-editing{z-index:var(--z-margin-note-active);box-shadow:0 0 0 2px var(--color-focus-ring), var(--shadow-md)}.margin-note.is-new{animation:note-in var(--duration-base) var(--ease-out)}.margin-note.is-pulsing{animation:note-pulse 1.2s var(--ease-out)}@keyframes note-in{0%{opacity:0;transform:translate(-6px)}}@keyframes note-pulse{0%,45%{box-shadow:0 0 0 3px var(--color-accent), var(--shadow-md)}to{box-shadow:0 0 0 3px transparent, var(--shadow-sm)}}@media (prefers-reduced-motion:reduce){.margin-note.is-pulsing{outline:2px solid var(--color-accent);outline-offset:2px;animation:none}}.margin-note__content{padding:10px 12px 12px 15px;position:relative}.margin-note.is-compact{cursor:pointer;height:32px;overflow:hidden}.margin-note.is-compact .margin-note__content{visibility:hidden;pointer-events:none;width:100%;position:absolute;top:0;left:0}.margin-note__preview{text-overflow:ellipsis;white-space:nowrap;padding:0 12px 0 15px;line-height:32px;display:block;overflow:hidden}.margin-note__quote{color:var(--note-text);border-left:2px solid var(--note-border);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-bottom:6px;padding-left:8px;font-size:.78125rem;line-height:1.45;display:-webkit-box;overflow:hidden}.margin-note__quote.is-linked{border-left:3px solid var(--link-color,var(--note-dot));padding-left:7px}.margin-note__body{max-height:calc(var(--note-line) * 6);transition:max-height var(--duration-base) var(--ease-out);overflow:hidden}.margin-note__body.is-clamped{-webkit-mask-image:linear-gradient(to bottom, var(--note-text) calc(100% - 1.5em), transparent);mask-image:linear-gradient(to bottom, var(--note-text) calc(100% - 1.5em), transparent)}.margin-note__text,.margin-note__input{overflow-wrap:break-word;white-space:pre-wrap}.margin-note__more{font-family:var(--font-ui);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--note-text);text-underline-offset:2px;cursor:pointer;margin-top:4px;text-decoration:underline;display:block}.margin-note__more:hover{text-decoration-thickness:2px}.margin-note__actions{background:var(--color-surface-raised);border-radius:var(--radius-sm);box-shadow:0 0 0 1px var(--color-border), var(--shadow-md);opacity:0;transition:opacity var(--duration-fast) var(--ease-standard);gap:2px;padding:2px;display:flex;position:absolute;top:-20px;right:6px}.margin-note:hover .margin-note__actions,.margin-note:focus-within .margin-note__actions,.margin-note.has-palette .margin-note__actions{opacity:1}@media (hover:none){.margin-note__actions{opacity:1}}.margin-note__action{width:28px;height:28px;color:var(--color-text-secondary);border-radius:var(--radius-xs);transition:var(--transition-colors);place-items:center;display:grid}.margin-note__action:hover,.margin-note__action[aria-expanded=true]{color:var(--color-text);background:var(--color-hover)}.margin-note__action .lucide{width:16px;height:16px}.margin-note__action-dot{background:var(--note-dot);border-radius:var(--radius-full);width:16px;height:16px}.margin-note__palette{--swatch-gap:var(--color-surface-raised);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:palette-in var(--duration-base) var(--ease-out);padding:4px;position:absolute;top:calc(100% + 4px);right:0}@keyframes palette-in{0%{opacity:0;transform:translateY(-4px)}}.note-field{cursor:text;outline:none;position:relative}.note-field[data-empty]:before{content:attr(aria-placeholder) / "";pointer-events:none;position:absolute;top:0;left:0}.margin-note__input{min-height:calc(var(--note-line) * 2)}.margin-note__input[data-empty]:before{color:color-mix(in srgb, var(--note-text) 80%, transparent)}.margin-note__footer{justify-content:space-between;align-items:center;margin:4px -6px -8px;display:flex}.margin-note__footer .margin-note__action{color:var(--note-text)}.margin-note__footer .margin-note__action:hover{color:var(--note-text);background:color-mix(in srgb, var(--note-text) 12%, transparent)}.swatches{gap:2px;display:flex}.swatch{width:28px;height:28px;color:var(--color-float-text);border-radius:var(--radius-full);place-items:center;display:grid;position:relative}.swatch:before{content:"";background:var(--note-dot);border-radius:var(--radius-full);width:18px;height:18px;transition:box-shadow var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard)}.swatch:hover:before{transform:scale(1.12)}.swatch[aria-pressed=true]:before{box-shadow:0 0 0 2px var(--swatch-gap,var(--note-bg)), 0 0 0 3.5px var(--note-dot)}.swatch .lucide{stroke-width:2.5px;width:12px;height:12px;position:absolute}.margin-note-ghost{left:var(--note-gutter);width:var(--margin-note-width);height:32px;font-family:var(--font-ui);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);border:1px dashed var(--color-border-control);border-radius:var(--radius-md);opacity:0;pointer-events:none;transition:opacity .12s var(--ease-standard);justify-content:center;align-items:center;gap:6px;line-height:1;display:flex;position:absolute}.margin-note-ghost[data-visible]{opacity:1}.margin-note-ghost .lucide{width:16px;height:16px}.margin-note-ghost:before{content:"";top:50%;left:calc(-1 * var(--note-gutter));background:var(--color-border-control);border-radius:var(--radius-full);width:8px;height:8px;box-shadow:0 0 0 2px var(--page-sheet-bg);opacity:.55;position:absolute;transform:translate(-50%,-50%)}.margin-rail{--note-gutter:calc((var(--margin-rail-width) - 28px) / 2)}.margin-rail__marker{z-index:var(--z-margin-note);width:28px;height:28px;color:var(--note-text);background:var(--note-bg);border:1px solid var(--note-border);border-left:3px solid var(--note-dot);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-fast) var(--ease-standard), opacity var(--duration-slow) var(--ease-standard);place-items:center;display:grid;position:absolute;left:50%;translate:-50%}.margin-rail__marker:after{content:"";position:absolute;inset:-8px}.margin-rail__marker .lucide{width:14px;height:14px}.margin-rail__marker:hover{box-shadow:var(--shadow-md)}.margin-rail__marker[aria-expanded=true]{box-shadow:0 0 0 2px var(--note-dot), var(--shadow-md)}.margin-rail__marker.is-pulsing{animation:note-pulse 1.2s var(--ease-out)}@media (prefers-reduced-motion:reduce){.margin-rail__marker.is-pulsing{outline:2px solid var(--color-accent);outline-offset:2px;animation:none}}.margin-rail .margin-note-slot>:is(.margin-note__anchor,.margin-note__leader,.margin-note__tether){display:none}.margin-rail .margin-note{left:auto;right:calc(100% + var(--space-2));z-index:var(--z-margin-note-active);width:min(var(--margin-note-width), calc(100cqi - var(--margin-rail-width) - 2 * var(--space-4)));box-shadow:var(--shadow-lg)}.margin-rail .margin-note-ghost{border-radius:var(--radius-sm);width:28px;height:28px;left:50%;translate:-50%}.margin-rail .margin-note-ghost:before{left:calc(-1 * var(--note-gutter))}.selection-popover{z-index:var(--z-popover);align-items:center;gap:var(--space-2);height:32px;padding:0 var(--space-1) 0 var(--space-1);color:var(--color-float-text);background:var(--color-float-bg);border:1px solid var(--color-float-border);box-shadow:var(--shadow-lg);animation:popover-in var(--duration-base) var(--ease-out);border-radius:8px;display:flex;position:fixed}.selection-popover__action{height:26px;padding:0 var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:inherit;white-space:nowrap;border-radius:var(--radius-xs);transition:background-color var(--duration-fast) var(--ease-standard);align-items:center;gap:6px;display:inline-flex}.selection-popover__action:hover{background:var(--color-float-border)}.selection-popover__action .lucide{width:16px;height:16px;color:var(--color-float-accent)}.selection-popover .kbd{min-width:18px;height:18px;color:var(--color-float-text);border-color:var(--color-float-border);opacity:.8;background:0 0}.notes-panel{padding-top:var(--space-1);flex-direction:column;display:flex}.notes-panel__header{justify-content:space-between;align-items:center;gap:var(--space-2);padding:0 var(--space-2) var(--space-2);display:flex}.notes-panel__count{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.notes-panel__group+.notes-panel__group{margin-top:var(--space-3)}.notes-panel__page{align-items:baseline;gap:var(--space-2);min-width:0;padding:var(--space-1) var(--space-2);font-family:var(--font-ui);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:0;color:var(--color-text-secondary);display:flex}.notes-panel__page-number{font-variant-numeric:tabular-nums;flex:none}.notes-panel__section{min-width:0;font-weight:var(--font-weight-regular);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.notes-panel__item{width:100%;min-height:32px;padding:6px var(--space-2);text-align:left;border-radius:var(--radius-sm);transition:background-color var(--duration-fast) var(--ease-standard);align-items:flex-start;gap:10px;display:flex}.notes-panel__item:hover{background:var(--color-hover)}.notes-panel__item:active{background:var(--color-pressed)}.notes-panel__dot{background:var(--note-dot);border-radius:var(--radius-full);flex:none;width:10px;height:10px;margin-top:6px}.notes-panel__bar{background:var(--note-dot);border-radius:var(--radius-full);flex:none;width:4px;height:16px;margin:2px 3px 0}.notes-panel__excerpt{min-width:0;font-family:var(--font-serif);font-size:var(--font-size-note);font-weight:var(--font-weight-note);color:var(--color-text);overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.45;display:-webkit-box;overflow:hidden}.notes-panel__excerpt--quote{color:var(--color-text-secondary);font-style:italic}.notes-panel__excerpt--empty{color:var(--color-text-muted)}.review{--review-note-size:var(--font-size-base);--review-note-leading:1.55;--review-note-pad-y:var(--space-2);--review-quote-size:var(--font-size-sm);--review-quote-leading:1.45;grid-template-columns:minmax(0,1fr);grid-template-rows:var(--toolbar-height) minmax(0, 1fr);background:var(--color-bg-app);height:100%;display:grid;overflow:hidden}.review--dense{--review-note-size:var(--font-size-note);--review-note-leading:1.5;--review-note-pad-y:var(--space-1);--review-quote-size:var(--font-size-xs);--review-quote-leading:1.4}.review__toolbar{z-index:var(--z-toolbar);align-items:center;gap:var(--space-2);padding:0 var(--space-3);background:color-mix(in srgb, var(--color-surface) 92%, transparent);border-bottom:1px solid var(--color-border-subtle);-webkit-backdrop-filter:saturate(1.4)blur(10px);backdrop-filter:saturate(1.4)blur(10px);display:flex;position:relative}.review__toolbar>*{flex:none}.review__back{padding:0 var(--space-3) 0 var(--space-2)}.review__heading{min-width:0;margin-left:var(--space-1);flex:0 auto}.review__title{font-size:var(--font-size-lg);text-overflow:ellipsis;white-space:nowrap;line-height:1.2;overflow:hidden}.review__count{font-size:var(--font-size-xs);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;line-height:1.25;overflow:hidden}.review__spacer{flex:1 1 0;min-width:0}.review-tooltip-end.tooltip:after{left:auto;right:0;transform:translateY(-3px)}.review-tooltip-end.tooltip:focus-visible:after{transform:none}@media (hover:hover){.review-tooltip-end.tooltip:hover:after{transform:none}}.review-search{align-items:center;width:176px;display:flex;position:relative}.review-search .review-search__input{text-align:left;appearance:none;width:100%;padding:0 30px}.review-search__input::-webkit-search-cancel-button{display:none}.review-search__input::-webkit-search-decoration{display:none}.review-search__icon{left:var(--space-2);width:16px;height:16px;color:var(--color-text-muted);pointer-events:none;position:absolute}.review-search__hint{pointer-events:none;min-width:18px;height:18px;position:absolute;right:5px}.review-search:focus-within .review-search__hint{display:none}.review-search__clear{width:22px;height:22px;color:var(--color-text-secondary);border-radius:var(--radius-full);transition:var(--transition-colors);place-items:center;display:grid;position:absolute;right:3px}.review-search__clear:hover{color:var(--color-text);background:var(--color-pressed)}.review-search__clear .lucide{width:14px;height:14px}.review-colors{gap:var(--space-1);display:flex}.review-chip{background:0 0;justify-content:center;width:26px;height:26px;padding:0}.review-chip:hover{background:var(--color-hover)}.review-chip__dot{background:var(--note-dot);border-radius:var(--radius-full);width:12px;height:12px;transition:transform var(--duration-fast) var(--ease-out)}.review-chip:hover .review-chip__dot{transform:scale(1.15)}.review-chip.is-active{background:var(--note-bg);box-shadow:inset 0 0 0 1.5px var(--note-dot)}.review-colors:has(.is-active) .review-chip:not(.is-active){opacity:.6}.review__export{gap:var(--space-2)}.review-colors{margin-left:calc(var(--space-1) * -1)}.review-colors+.segmented,.review__toolbar .theme-menu{margin-left:var(--space-2)}.review__toolbar .theme-menu:before{content:"";width:1px;height:20px;margin-right:var(--space-2);background:var(--color-border-subtle)}.review__toolbar .theme-menu .segmented{background:0 0;gap:0;padding:0}.review__toolbar .theme-menu .segmented__item{border-radius:var(--radius-xs);width:28px;padding:0}.review__toolbar .theme-menu .segmented__item[aria-checked=true]{background:var(--color-pressed);box-shadow:none}@media (max-width:1360px){.review__title{font-size:var(--font-size-md)}.review-search{width:148px}.review-colors{gap:0}}@media (max-width:1120px){.review__export{width:var(--btn-height);padding:0}.review__export-label{display:none}}@media (max-width:900px){.review__heading,.review-colors{display:none}}.review__scroll{overscroll-behavior:contain;scroll-behavior:var(--scroll-behavior);min-height:0;overflow-y:auto}.review--virtual .review__scroll{scroll-behavior:auto}.review__column{width:min(880px,100%);padding:var(--space-6) var(--space-5) var(--space-8);margin:0 auto}.review__column .empty-state{padding-top:var(--space-8)}.review__list{animation:review-fade-in var(--duration-base) var(--ease-out)}.review__render-mode{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-secondary);flex-wrap:wrap;display:flex}@keyframes review-fade-in{0%{opacity:0}}.review-row{grid-template-columns:var(--review-thumb-width) minmax(0, 1fr);gap:var(--space-5);border-top:1px solid var(--color-border-subtle);padding:20px 0;display:grid}.review-page-slot:first-child .review-row{border-top:0;padding-top:0}.review--dense .review-row{padding:var(--space-3) 0;display:block}.review--dense .review-page-slot:first-child .review-row{padding-top:0}.review-row__body{min-width:0}.review-row__header{align-items:center;gap:var(--space-3);min-height:28px;display:flex}.review-row__title{min-width:0;font-family:var(--font-ui);font-size:var(--font-size-base);line-height:var(--leading-snug);letter-spacing:0;flex:1;align-items:baseline;gap:6px;display:flex}.review-row__page{font-weight:var(--font-weight-semibold);white-space:nowrap;font-variant-numeric:tabular-nums}.review-row__separator{color:var(--color-text-muted)}.review-row__section{min-width:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-regular);color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.review-row__go{opacity:0;transition:var(--transition-colors), opacity var(--duration-fast) var(--ease-standard)}.review-row:hover .review-row__go,.review-row:focus-within .review-row__go{opacity:1}@media (hover:none){.review-row__go{opacity:1}}.review-row__notes{margin-top:var(--space-1);flex-direction:column;display:flex}.review-row__thumb{top:var(--space-4);width:var(--review-thumb-width);align-self:start;position:sticky}.review-row__thumb .page-thumb{width:100%;position:relative}.page-thumb__image{border-radius:inherit;width:100%;height:100%;mix-blend-mode:var(--page-canvas-blend);filter:var(--page-canvas-filter);animation:review-fade-in var(--duration-slow) var(--ease-out);position:absolute;inset:0}.review-row__dot{background:var(--note-dot);border-radius:var(--radius-full);width:10px;height:10px;box-shadow:0 0 0 2px var(--page-sheet-bg);transition:transform var(--duration-fast) var(--ease-out);position:absolute;left:100%;transform:translate(-50%,-50%)}.review-row__dot.is-active{transform:translate(-50%,-50%)scale(1.45)}.review-row__highlight{background:var(--note-border);mix-blend-mode:multiply;min-height:2px;transition:box-shadow var(--duration-fast) var(--ease-standard);border-radius:1px;position:absolute}[data-theme=dark] .review-row__highlight{background:color-mix(in srgb, var(--note-dot) 46%, var(--page-sheet-bg))}[data-theme=dark] .invert-pages .review-row__highlight{background:color-mix(in srgb, var(--note-dot) 55%, transparent);mix-blend-mode:screen}.review-row__highlight.is-active{box-shadow:0 0 0 1.5px var(--note-dot)}.review-note{--review-line:calc(var(--review-note-size) * var(--review-note-leading));column-gap:var(--space-3);margin-inline:calc(var(--space-3) * -1);padding:var(--review-note-pad-y) 44px var(--review-note-pad-y) var(--space-3);border-radius:var(--radius-sm);cursor:text;transition:var(--transition-colors);grid-template-columns:8px minmax(0,1fr);display:grid;position:relative}.review-note:hover{background:var(--color-hover)}.review-note__dot{width:8px;height:8px;margin-top:calc((var(--review-line) - 8px) / 2);background:var(--note-dot);border-radius:var(--radius-full);align-self:start}.review-note--quoted .review-note__dot{margin-top:calc((var(--review-quote-size) * var(--review-quote-leading) - 8px) / 2)}.review-note__main{min-width:0}.review-note__quote{margin:0 0 var(--space-1);font-size:var(--review-quote-size);line-height:var(--review-quote-leading);overflow-wrap:anywhere;border-left:2px solid color-mix(in srgb, var(--note-dot) 55%, transparent);-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;padding-left:10px;display:-webkit-box;overflow:hidden}.review--dense .review-note__quote{-webkit-line-clamp:2;line-clamp:2;margin-bottom:2px}.review-note.is-editing .review-note__quote{display:block}.review-note__quote.is-highlight{border-left:3px solid var(--link-color,var(--note-dot));padding-left:9px}.review-highlight{cursor:default;padding-right:76px}.review-highlight__bar{background:var(--note-dot);border-radius:var(--radius-full);place-self:stretch center;width:4px;margin:3px 0}.review-highlight__text{font-family:var(--font-serif);font-size:var(--review-note-size);font-style:normal;font-weight:var(--font-weight-note);line-height:var(--review-note-leading);color:var(--color-text);overflow-wrap:anywhere;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.review--dense .review-highlight__text{-webkit-line-clamp:3;line-clamp:3}.review-highlight__actions{top:calc((var(--review-line) + 2 * var(--review-note-pad-y) - 28px) / 2);right:var(--space-2);opacity:0;transition:opacity var(--duration-fast) var(--ease-standard);gap:2px;display:flex;position:absolute}.review-highlight:hover .review-highlight__actions,.review-highlight:focus-within .review-highlight__actions{opacity:1}@media (hover:none){.review-highlight__actions{opacity:1}}.review-highlight__actions .btn:last-child:hover{color:var(--color-danger);background:var(--color-danger-subtle)}.review-note__text,.review-note__input{font-family:var(--font-serif);font-size:var(--review-note-size);font-weight:var(--font-weight-note);line-height:var(--review-note-leading);color:var(--color-text);white-space:pre-wrap;overflow-wrap:anywhere;text-wrap-style:pretty}.review-note__text{margin:0}.review-note__text.is-empty{color:var(--color-text-muted);font-style:italic}.review-mark{color:inherit;background:color-mix(in srgb, var(--color-accent) 18%, transparent);box-shadow:0 0 0 1.5px color-mix(in srgb, var(--color-accent) 18%, transparent);border-radius:2px}.review-note__input[data-empty]:before{color:var(--color-text-muted);font-style:italic}.review-note__jump{top:calc((var(--review-line) + 2 * var(--review-note-pad-y) - 28px) / 2);right:var(--space-2);opacity:0;transition:var(--transition-colors), opacity var(--duration-fast) var(--ease-standard);position:absolute}.review-note:hover .review-note__jump,.review-note:focus-within .review-note__jump,.review-note__jump:focus-visible{opacity:1}@media (hover:none){.review-note__jump{opacity:1}}.review-note.is-editing{--swatch-gap:var(--color-surface-raised);z-index:1;padding-right:var(--space-3);cursor:auto;background:var(--color-surface-raised);box-shadow:0 0 0 2px var(--color-focus-ring), var(--shadow-md)}.review-note__editbar{align-items:center;gap:var(--space-3);margin-top:var(--space-2);padding-top:var(--space-1);border-top:1px solid var(--color-border-subtle);display:flex}.review-note__swatches{margin-left:calc(var(--space-1) * -1)}.review-note__hint{font-size:var(--font-size-xs);color:var(--color-text-muted);align-items:center;gap:6px;margin-left:auto;display:inline-flex}.review-note__delete:hover{color:var(--color-danger);background:var(--color-danger-subtle)}@media (max-width:640px){.review-note__hint{display:none}.review-note__delete{margin-left:auto}}.reader__viewport{overflow-anchor:none;overscroll-behavior:contain;scroll-behavior:auto;background:var(--color-bg-app);scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--color-text) 26%, transparent) transparent;contain:strict;position:absolute;inset:0;overflow:auto}.reader__viewport:focus-visible{outline:none}.reader__pages{min-width:100%;position:relative}.reader__page{display:flex;position:absolute}.page-sheet{z-index:1;flex:none;position:relative}.page-sheet__canvas{border-radius:inherit;width:100%;height:100%;position:absolute;inset:0}.page-sheet__canvas.is-entering{animation:page-sheet-in var(--duration-base) var(--ease-out)}@keyframes page-sheet-in{0%{opacity:0}}.page-sheet__links{z-index:2;pointer-events:none;position:absolute;inset:0}.page-sheet__link{pointer-events:auto;transition:background-color var(--duration-fast) var(--ease-standard);border-radius:2px;position:absolute}.page-sheet__link:hover{background:color-mix(in srgb, var(--color-accent) 13%, transparent)}.page-sheet__link:focus-visible{outline-offset:1px;background:color-mix(in srgb, var(--color-accent) 10%, transparent)}.page-sheet__overlay{pointer-events:none;position:absolute;inset:0}.page-margin{width:var(--margin-column-width);background:var(--color-margin-bg);border-radius:0 var(--radius-sm) var(--radius-sm) 0;flex:none;position:relative}.page-sheet__text-layer{--total-scale-factor:calc(var(--scale-factor) * var(--user-unit,1));--scale-round-x:1px;--scale-round-y:1px;--min-font-size:1;--text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv:calc(1 / var(--min-font-size));z-index:var(--z-text-layer);text-align:initial;letter-spacing:normal;word-spacing:normal;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:canvastext;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;line-height:1;position:absolute;inset:0;overflow:clip}.page-sheet__text-layer :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;-webkit-user-select:text;user-select:text;position:absolute}.page-sheet__text-layer>:not(.markedContent),.page-sheet__text-layer .markedContent span:not(.markedContent){--font-height:0;--scale-x:1;--rotate:0deg;z-index:1;font-size:calc(var(--text-scale-factor) * var(--font-height));transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}.page-sheet__text-layer .markedContent{display:contents}.page-sheet__text-layer br::selection{background:0 0}.page-sheet__text-layer>.endOfContent{z-index:0;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0;transform:none}.page-sheet__text-layer.selecting>.endOfContent{top:0}.page-sheet__text-layer[data-main-rotation="90"]{transform:rotate(90deg)translateY(-100%)}.page-sheet__text-layer[data-main-rotation="180"]{transform:rotate(180deg)translate(-100%,-100%)}.page-sheet__text-layer[data-main-rotation="270"]{transform:rotate(270deg)translate(-100%)}.zoom-controls{align-items:center;gap:2px;display:inline-flex}.zoom-controls__menu{position:relative}.zoom-controls__level{min-width:56px;padding:0 var(--space-2);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.zoom-controls__level[aria-expanded=true]{color:var(--color-text);background:var(--color-pressed)}.zoom-controls__level[aria-expanded=true]:after{display:none}.popover.zoom-menu{width:168px;min-width:0;padding:var(--space-1);left:50%;right:auto;translate:-50%}.zoom-menu__group+.zoom-menu__group{margin-top:var(--space-1);padding-top:var(--space-1);border-top:1px solid var(--color-border-subtle)}.zoom-menu__item{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;height:30px;padding:0 var(--space-2) 0 var(--space-3);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;text-align:left;color:var(--color-text);border-radius:var(--radius-xs);transition:var(--transition-colors);display:flex}.zoom-menu__item:hover,.zoom-menu__item:focus-visible{background:var(--color-hover)}.zoom-menu__item:focus-visible{outline-offset:-2px}.zoom-menu__item[aria-checked=true]{font-weight:var(--font-weight-medium);color:var(--color-accent)}.zoom-menu__item .lucide{width:16px;height:16px}html.has-book-map .reader__viewport{scrollbar-width:none}@supports selector(::-webkit-scrollbar){html.has-book-map .reader__viewport{scrollbar-width:auto;scrollbar-color:auto}html.has-book-map .reader__viewport::-webkit-scrollbar{width:0;height:10px}html.has-book-map .reader__viewport::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--color-text) 26%, transparent) padding-box;border-radius:var(--radius-full);border:2px solid #0000}}.book-map{z-index:var(--z-sticky);width:24px;transition-property:width,background-color,border-color,box-shadow,opacity;transition-duration:var(--duration-base);transition-timing-function:var(--ease-out);border-left:1px solid #0000;transition-delay:.24s,.24s,.24s,.24s,0s;position:absolute;top:0;bottom:0;right:0}.book-map:is(:hover,.is-dragging,.is-keyboard){background:color-mix(in srgb, var(--color-surface) 94%, transparent);border-left-color:var(--color-border-subtle);width:52px;box-shadow:var(--shadow-md);transition-delay:60ms,60ms,60ms,60ms,0s}html.focus-mode .book-map:not(:hover,.is-dragging,.is-keyboard){opacity:.35}.book-map__rail{cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden}.book-map__rail:focus-visible{outline-offset:-2px}.book-map.is-dragging .book-map__rail{cursor:grabbing}.book-map__track{position:absolute;inset:10px 0}.book-map__edge{max-width:none;position:absolute;right:0;overflow:visible}.book-map__strip{fill:var(--color-surface-raised)}.book-map__strip,.book-map__dividers{stroke:color-mix(in srgb, var(--color-text) 20%, transparent)}.book-map__dividers{shape-rendering:crispedges}.book-map__highlight{fill:var(--note-dot);opacity:.85}.book-map__note{fill:var(--note-dot);stroke:var(--color-surface-raised);stroke-width:1.25px}.book-map__ribbon{fill:var(--color-bookmark)}.book-map__window{border:1.5px solid var(--color-accent);background:color-mix(in srgb, var(--color-accent) 12%, transparent);will-change:transform;border-radius:3px;width:16px;position:absolute;top:0;right:4px}.book-map__lens{box-sizing:content-box;border:1.5px solid var(--color-text);border-radius:var(--radius-full);pointer-events:none;width:15px;animation:book-map-lens-in var(--duration-fast) var(--ease-out);margin-top:-7px;padding-block:5.5px;position:absolute;right:3px}@keyframes book-map-lens-in{0%{opacity:0;scale:1.6}}.book-map__tabs{opacity:0;transition:opacity var(--duration-fast) var(--ease-standard)}.book-map:is(:hover,.is-dragging,.is-keyboard) .book-map__tabs{opacity:1;transition-delay:.16s}.book-map__tab{min-width:18px;font-size:11px;font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;text-align:center;color:var(--color-text-secondary);background:var(--color-surface-sunken);border-radius:var(--radius-xs) 0 0 var(--radius-xs);padding:0 4px 0 5px;line-height:16px;position:absolute;right:17px;translate:0 -50%}.book-map__tab.is-current{color:var(--color-on-accent);background:var(--color-accent)}.book-map-card{right:calc(100% + var(--space-3));z-index:var(--z-popover);width:176px;padding:var(--space-2);font-size:var(--font-size-xs);line-height:var(--leading-snug);color:var(--color-text-secondary);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);pointer-events:none;position:absolute}.book-map-card.is-compact{width:auto;min-width:132px;max-width:220px}.book-map-card:after{content:"";top:var(--caret-y);background:inherit;border:solid var(--color-border);border-width:1px 1px 0 0;border-radius:0 2px 0 0;width:10px;height:10px;position:absolute;right:-6px;transform:translateY(-50%)rotate(45deg)}.book-map-card__sheet{margin-bottom:var(--space-2);position:relative}.book-map-card__sheet img{border-radius:inherit;width:100%;height:100%;mix-blend-mode:var(--page-canvas-blend);filter:var(--page-canvas-filter);position:absolute;inset:0}.book-map-card__highlight{background:color-mix(in srgb, var(--note-dot) 40%, transparent);position:absolute}.book-map-card__dot{background:var(--note-dot);border-radius:var(--radius-full);width:8px;height:8px;box-shadow:0 0 0 2px var(--color-surface-raised);position:absolute;left:100%;translate:-50% -50%}.book-map-card__page{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--color-text-muted)}.book-map-card__page strong{font-size:var(--font-size-sm);color:var(--color-text)}.book-map-card__section,.book-map-card__items li{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.book-map-card__section{font-family:var(--font-serif);font-style:italic}.book-map-card__summary,.book-map-card__items{margin-top:var(--space-1);padding-top:var(--space-1);border-top:1px solid var(--color-border-subtle)}.book-map-card__items li{font-family:var(--font-serif);font-size:12.5px;font-weight:var(--font-weight-note);overflow-wrap:anywhere;color:var(--color-text);padding-left:14px;position:relative}.book-map-card__items li:before{content:"";background:var(--note-dot,var(--color-bookmark));border-radius:var(--radius-full);width:8px;height:8px;position:absolute;top:5px;left:0}html.focus-mode{--focus-page-opacity:.45;--focus-note-opacity:.3}html.focus-mode .reader{grid-template-rows:minmax(0,1fr);position:relative}html.focus-mode .reader__toolbar{height:var(--toolbar-height);pointer-events:none;opacity:0;transition:transform var(--duration-base) var(--ease-out), opacity var(--duration-fast) var(--ease-standard);position:absolute;inset:0 0 auto;transform:translateY(calc(-100% - 12px))}html.focus-mode.focus-toolbar .reader__toolbar{pointer-events:auto;opacity:1;box-shadow:var(--shadow-md);transform:none}html.focus-mode .reader__toolbar:has(:focus-visible,[aria-expanded=true]){pointer-events:auto;opacity:1;box-shadow:var(--shadow-md);transform:none}html.focus-mode .reader__page{transition:opacity var(--duration-slower) var(--ease-standard)}html.focus-mode :is(.margin-note,.margin-note__leader,.margin-note__tether,.margin-rail__marker){opacity:var(--focus-note-opacity)}html.focus-mode .margin-column[data-settled] .margin-note-slot[data-ready] :is(.margin-note,.margin-note__leader,.margin-note__tether){transition:top var(--duration-base) var(--ease-out), height var(--duration-base) var(--ease-out), opacity var(--duration-slow) var(--ease-standard)}html.focus-mode .reader__page:is(:hover,:has(.margin-note:focus-within,.margin-rail__marker:focus-visible)) :is(.margin-note,.margin-note__leader,.margin-note__tether,.margin-rail__marker){opacity:1}.focus-hint-region{inset:var(--space-4) 0 auto;z-index:var(--z-sticky);pointer-events:none;justify-content:center;display:flex;position:absolute}.focus-hint{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;color:var(--color-float-text);background:var(--color-float-bg);border:1px solid var(--color-float-border);border-radius:var(--radius-full);box-shadow:var(--shadow-lg);transition:opacity var(--duration-slow) var(--ease-standard)}.focus-hint[data-fading]{opacity:0}.reading-ruler{--ruler-y:40%;--ruler-feather:14px;--ruler-veil-opacity:.6;z-index:var(--z-sticky);pointer-events:none;position:absolute;inset:0;overflow:hidden}[data-theme=dark] .invert-pages .reading-ruler{--ruler-veil-opacity:.85}.reading-ruler__veil{opacity:var(--ruler-veil-opacity);will-change:transform;position:absolute;inset:0}.reading-ruler__veil--above{background:linear-gradient(to bottom, var(--color-scrim) calc(100% - var(--ruler-feather)), transparent);transform:translateY(calc(var(--ruler-y) - var(--ruler-band) / 2 - 100%))}.reading-ruler__veil--below{background:linear-gradient(to bottom, transparent, var(--color-scrim) var(--ruler-feather));transform:translateY(calc(var(--ruler-y) + var(--ruler-band) / 2))}.chapter-progress{z-index:var(--z-popover);height:3px;transition:height var(--duration-fast) var(--ease-standard);gap:2px;display:flex;position:absolute;bottom:-1px;left:0;right:0}.chapter-progress:hover,.chapter-progress:focus-within{height:8px}.chapter-progress__item{flex-basis:0;min-width:0;position:relative}.chapter-progress__segment{background:var(--color-surface-sunken);width:100%;height:100%;display:block;position:relative}.chapter-progress__segment:before{content:"";position:absolute;inset:-6px 0 0}.chapter-progress__segment.is-current{box-shadow:inset 0 0 0 1px var(--color-accent)}.chapter-progress__fill{background:var(--color-accent);height:100%;display:block}.chapter-progress__tooltip{z-index:var(--z-tooltip);width:max-content;max-width:min(360px,90vw);padding:var(--space-2) var(--space-3);color:var(--color-float-text);background:var(--color-float-bg);border:1px solid var(--color-float-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);font-size:var(--font-size-xs);line-height:var(--leading-snug);overflow-wrap:anywhere;pointer-events:none;opacity:0;transition:opacity var(--duration-fast) var(--ease-standard);position:absolute;top:calc(100% + 10px);left:0}.chapter-progress__item[data-end] .chapter-progress__tooltip{left:auto;right:0}.chapter-progress__segment:hover+.chapter-progress__tooltip,.chapter-progress__segment:focus-visible+.chapter-progress__tooltip{opacity:1}.link-peek{z-index:var(--z-popover);gap:var(--space-2);padding:var(--space-2);background:var(--color-surface-raised);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);transform-origin:0 0;transition:top var(--duration-base) var(--ease-out), left var(--duration-base) var(--ease-out);animation:link-peek-in var(--duration-fast) var(--ease-out);flex-direction:column;display:flex;position:fixed}.link-peek[data-side=above]{--link-peek-shift:4px;transform-origin:0 100%}@keyframes link-peek-in{0%{opacity:0;transform:translateY(var(--link-peek-shift,-4px)) scale(.97)}}.link-peek__header{align-items:center;gap:var(--space-1);padding-left:var(--space-1);display:flex}.link-peek__title{min-width:0;font-size:var(--font-size-sm);line-height:var(--leading-snug);color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.link-peek__page-number{font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;color:var(--color-text)}.link-peek__go{gap:var(--space-1);padding:0 var(--space-2) 0 var(--space-3)}.link-peek__body{justify-content:center;display:flex}.link-peek__frame{transition:width var(--duration-base) var(--ease-out), height var(--duration-base) var(--ease-out);flex:none;position:relative;overflow:hidden}.link-peek__frame.is-cut-top:before,.link-peek__frame.is-cut-bottom:after{content:"";z-index:1;pointer-events:none;height:24px;position:absolute;inset-inline:0}.link-peek__frame.is-cut-top:before{background:linear-gradient(to top, transparent, var(--page-sheet-bg));height:14px;top:0}.link-peek__frame.is-cut-bottom:after{background:linear-gradient(to bottom, transparent, var(--page-sheet-bg));bottom:0}.link-peek__bitmap{transition:width var(--duration-base) var(--ease-out), height var(--duration-base) var(--ease-out), top var(--duration-base) var(--ease-out);position:absolute;top:0;left:0}.link-peek__canvas{width:100%;height:100%;animation:link-peek-page-in var(--duration-fast) var(--ease-out)}@keyframes link-peek-page-in{0%{opacity:0}}.page-sheet__link.is-peeking{background:color-mix(in srgb, var(--color-accent) 13%, transparent)}.page-sheet__link[data-link=internal]{-webkit-touch-callout:none}.go-to{width:min(640px,100vw - 32px);max-width:none;max-height:min(70vh,640px);color:var(--color-text);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin:0;padding:0;position:fixed;inset:12vh auto auto 50%;overflow:hidden;transform:translate(-50%)}.go-to[open]{flex-direction:column;display:flex}.go-to::backdrop{background:var(--color-scrim)}.go-to__search{align-items:center;gap:var(--space-3);padding:18px var(--space-5);border-bottom:1px solid var(--color-border);flex:none;display:flex}.go-to__search>svg{width:20px;height:20px;color:var(--color-accent);flex:none}.go-to__search input{width:100%;min-width:0;color:var(--color-text);font:inherit;font-size:var(--font-size-md);background:0 0;border:0;outline:0;padding:3px 0}.go-to__search input::placeholder{color:var(--color-text-muted);opacity:1}.go-to__search:focus-within{box-shadow:inset 0 -2px var(--color-focus-ring)}.go-to__list{overscroll-behavior:contain;min-height:0;padding:var(--space-2) 0;overflow-y:auto}.go-to__heading{justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-5) var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase;display:flex}.go-to__row{align-items:center;gap:var(--space-3);min-height:48px;padding:5px var(--space-5);cursor:pointer;border-left:3px solid #0000;display:flex}.go-to__row.is-active{background:var(--color-hover);border-left-color:var(--color-accent)}.go-to__status{font-weight:var(--font-weight-regular);font-variant-numeric:tabular-nums;letter-spacing:normal;text-transform:none}.go-to__row>svg{width:16px;height:16px;color:var(--color-text-secondary);flex:none}.go-to__row.is-active>svg{color:var(--color-accent)}.go-to__row-text{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.go-to__title,.go-to__detail{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.go-to__title{font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.go-to__row.is-text .go-to__title{font-weight:var(--font-weight-regular)}.go-to__detail{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.go-to__row mark{color:var(--color-accent);font-weight:var(--font-weight-semibold);background:0 0;padding:0}.go-to__row>.kbd{flex:none}.go-to__empty{padding:var(--space-5);color:var(--color-text-secondary)}.go-to__footer{justify-content:space-between;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--font-size-xs);flex-wrap:wrap;flex:none;display:flex}.search-highlights{pointer-events:none;position:absolute;inset:0}.search-highlight{--search-highlight:color-mix(in srgb, var(--color-accent) 26%, transparent);background:var(--search-highlight);box-shadow:0 0 0 1px var(--search-highlight);border-radius:2px;position:absolute}.search-highlight.is-active{--search-highlight:color-mix(in srgb, var(--color-accent) 36%, transparent);outline:2px solid var(--color-accent);animation:search-highlight-land .7s var(--ease-out)}@keyframes search-highlight-land{0%{box-shadow:0 0 0 1px var(--search-highlight), 0 0 0 0 color-mix(in srgb, var(--color-accent) 55%, transparent)}to{box-shadow:0 0 0 1px var(--search-highlight), 0 0 0 10px transparent}}.reader{grid-template-rows:var(--toolbar-height) minmax(0, 1fr);background:var(--color-bg-app);height:100%;display:grid;overflow:hidden}.reader__toolbar{z-index:var(--z-toolbar);align-items:center;gap:var(--space-3);padding:0 var(--space-3);background:var(--color-surface);border-bottom:1px solid var(--color-border-subtle);grid-template-columns:minmax(max-content,1fr) minmax(0,560px) minmax(max-content,1fr);display:grid;position:relative}.reader__toolbar-group{align-items:center;gap:var(--space-1);min-width:0;display:flex}.reader__toolbar-group--end{justify-content:flex-end}.reader__toolbar-group--start .btn--ghost[aria-pressed=true]{color:var(--color-text);background:var(--color-pressed)}.reader__heading{align-items:center;gap:var(--space-2);min-width:0;height:32px;padding:0 6px 0 var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-muted);background:var(--color-hover);border-radius:var(--radius-md);transition:var(--transition-colors);display:flex;position:relative}.reader__heading:hover{background:var(--color-pressed)}.reader__heading-icon{flex:none;width:16px;height:16px}.reader__title{min-width:0;font-family:var(--font-ui);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:normal;color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;overflow:hidden}.reader__section-dot{flex:none}.reader__section{min-width:0;color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:0 10 auto;overflow:hidden}.reader__heading-key{background:0 0;flex:none;margin-left:auto}.reader__go-to{z-index:1;border-radius:inherit;cursor:pointer;position:absolute;inset:0}.reader__review-btn{gap:var(--space-2);margin-left:var(--space-1)}.reader__count{min-width:18px;height:18px;font-size:11px;font-weight:var(--font-weight-semibold);text-align:center;color:var(--color-on-accent);background:var(--color-accent);border-radius:var(--radius-full);padding:0 5px;line-height:18px}.reader__body{min-height:0;display:flex}.reader__main{flex:1;min-width:0;min-height:0;position:relative;container:reader-main/inline-size}@container reader-main (width<960px){.reader__viewport{--margin-column-width:var(--margin-rail-width)}}.reader__main:has(.reader__viewport:focus-visible):before{content:"";z-index:var(--z-sticky);background:var(--color-focus-ring);pointer-events:none;height:2px;position:absolute;inset:0 0 auto}.sidebar{flex-direction:column;flex:0 0 var(--sidebar-width);width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-border-subtle);min-height:0;animation:sidebar-in var(--duration-base) var(--ease-out);display:flex}.sidebar__tabs{margin:var(--space-3)}.sidebar__panel{min-height:0;padding:0 var(--space-2) var(--space-4);flex:1;overflow-y:auto}@keyframes sidebar-in{0%{opacity:0;transform:translate(-8px)}}@media (max-width:1100px){.reader__review-btn>span:not(.reader__count){display:none}}@media (max-width:960px){.reader__title,.reader__section-dot{display:none}.sidebar{top:var(--toolbar-height);z-index:var(--z-sidebar);box-shadow:var(--shadow-lg);position:absolute;bottom:0;left:0}}.storage-dialog{width:min(580px, calc(100vw - 2 * var(--space-4)));max-width:none;max-height:calc(100dvh - 2 * var(--space-4));font-family:var(--font-ui);color:var(--color-text);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin:auto;padding:0;position:fixed;inset:0;overflow:hidden}.storage-dialog[open]{flex-direction:column;display:flex}.storage-dialog::backdrop{background:var(--color-scrim)}.storage-dialog__header{align-items:flex-start;gap:var(--space-3);padding:var(--space-5);border-bottom:1px solid var(--color-border-subtle);flex:none;display:flex}.storage-dialog__icon{height:40px;color:var(--color-accent);background:var(--color-accent-subtle);border-radius:var(--radius-md);flex:0 0 40px;place-items:center;display:grid}.storage-dialog__icon .lucide{width:20px;height:20px}.storage-dialog__heading{flex:1;min-width:0}.storage-dialog__heading h2{font-family:var(--font-ui);font-size:var(--font-size-lg)}.storage-dialog__heading p{margin-top:var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.storage-dialog__body{min-height:0;padding:var(--space-5);overscroll-behavior:contain;flex:1;overflow-y:auto}.storage-section+.storage-section{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--color-border-subtle)}.storage-section__title{align-items:center;gap:var(--space-2);font-family:var(--font-ui);font-size:var(--font-size-md);display:flex}.storage-section__title .lucide{width:18px;height:18px;color:var(--color-text-secondary)}.storage-section__title [aria-hidden=true]{display:inline-flex}.storage-section__intro{margin-top:var(--space-2);max-width:62ch;font-size:var(--font-size-sm);line-height:var(--leading-relaxed);color:var(--color-text-secondary)}.storage-card{align-items:flex-start;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);display:flex}.storage-card--notice{background:var(--color-accent-subtle);border-color:#0000}.storage-card--error{background:var(--color-danger-subtle);border-color:#0000}.storage-card__icon{height:36px;color:var(--color-text-secondary);background:var(--color-surface-raised);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);flex:0 0 36px;place-items:center;display:grid}.storage-card__icon .lucide{width:18px;height:18px}.storage-card--notice .storage-card__icon{color:var(--color-accent);border-color:#0000}.storage-card--error .storage-card__icon{color:var(--color-danger);border-color:#0000}.storage-card__body{gap:var(--space-1);flex:1;min-width:0;display:grid}.storage-card__title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:var(--leading-snug);overflow-wrap:anywhere;padding-top:7px}.storage-card__detail{gap:var(--space-1);font-size:var(--font-size-sm);line-height:var(--leading-normal);color:var(--color-text-secondary);display:grid}.storage-card__actions,.storage-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.storage-card__actions{margin-top:var(--space-3)}.storage-actions{margin-top:var(--space-4)}.storage-spinner{animation:.8s linear infinite spin}.storage-progress{height:4px;margin-top:var(--space-1);background:var(--color-border);border-radius:2px;display:block;overflow:hidden}.storage-progress>span{background:var(--color-accent);border-radius:inherit;height:100%;transition:width var(--duration-base) var(--ease-out);display:block}.storage-note{margin-top:var(--space-3);max-width:62ch;font-size:var(--font-size-sm);line-height:var(--leading-relaxed);color:var(--color-text-secondary)}.storage-note--error{color:var(--color-danger)}.storage-outcome:not(:empty){margin-top:var(--space-3)}.storage-result{align-items:flex-start;gap:var(--space-2);font-size:var(--font-size-sm);line-height:var(--leading-normal);color:var(--color-text-secondary);display:flex}.storage-result .lucide{width:16px;height:16px;margin-top:2px}.storage-result--error{color:var(--color-danger)}.storage-result ul{margin-top:var(--space-1);padding-left:var(--space-4);color:var(--color-text);list-style:outside}.storage-result li{overflow-wrap:anywhere}.storage-devices{margin-top:var(--space-4)}.storage-devices__label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-muted)}.storage-devices li{padding:var(--space-1) 0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.storage-field{gap:var(--space-1);max-width:340px;margin-top:var(--space-3);display:grid}.storage-field label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.storage-field__hint{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.storage-field__saved{color:var(--color-text)}.storage-drive{margin-top:var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.storage-drive summary{cursor:pointer;border-radius:var(--radius-xs);width:-moz-fit-content;width:fit-content;color:var(--color-text-secondary)}.storage-drive summary:hover{color:var(--color-text)}.storage-drive__body{justify-items:start;gap:var(--space-2);max-width:62ch;margin-top:var(--space-2);padding-left:var(--space-4);line-height:var(--leading-relaxed);border-left:2px solid var(--color-border-subtle);display:grid}.storage-drive__approval{align-items:flex-start;gap:var(--space-2);display:flex}.storage-drive__approval .lucide{width:16px;height:16px;color:var(--color-accent);flex:none;margin-top:3px}.storage-drive__approval strong{font-weight:var(--font-weight-semibold);color:var(--color-text)}.drive-chooser{width:min(520px,100% - 32px)}.drive-chooser__path{align-items:center;gap:var(--space-1);margin-top:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-secondary);flex-wrap:wrap;display:flex}.drive-chooser__path>.lucide{width:14px;height:14px;color:var(--color-text-muted)}.drive-chooser__path button{padding:2px var(--space-1);border-radius:var(--radius-xs);overflow-wrap:anywhere}.drive-chooser__path button:hover{color:var(--color-text);background:var(--color-hover)}.drive-chooser__path button[aria-current]{font-weight:var(--font-weight-semibold);color:var(--color-text)}.drive-chooser__list{height:min(320px,45dvh);margin-top:var(--space-2);overscroll-behavior:contain;background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);overflow-y:auto}.drive-chooser__list ul{padding:var(--space-1)}.drive-chooser__list li button{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);font-size:var(--font-size-sm);text-align:left;border-radius:var(--radius-sm);display:flex}.drive-chooser__list li button:hover{background:var(--color-hover)}.drive-chooser__list li button span{overflow-wrap:anywhere;flex:1;min-width:0}.drive-chooser__list li .lucide{width:16px;height:16px;color:var(--color-text-secondary);flex:none}.drive-chooser__message{justify-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);font-size:var(--font-size-sm);text-align:center;color:var(--color-text-secondary);display:grid}.drive-chooser__message .lucide{width:18px;height:18px}.drive-chooser .library-dialog__actions{margin-top:var(--space-4)}@media (max-width:600px){.storage-dialog__header,.storage-dialog__body{padding:var(--space-4)}}
