:root{--bg: #14110f;--bg-2: #1c1917;--bg-3: #26201d;--surface: #1f1b18;--surface-2: #2a231f;--border: #3a302a;--border-2: #4a3c33;--text: #f4ede4;--text-2: #c8bfb4;--muted: #8e8376;--accent: #d6a15e;--accent-2: #c88e47;--accent-bg: rgba(214, 161, 94, .12);--accent-weak: var(--accent-bg);--danger: #c76a5e;--ok: #6bbd8a;--warn: #d8a54b;--paper: #f7f2e8;--paper-ink: #1b1b1b;--paper-gutter: rgba(0, 0, 0, .07);--shadow: 0 10px 40px rgba(0,0,0,.55);--on-accent: #1a1a1a;--hover: rgba(255,255,255,.045);--scrim: rgba(8, 6, 4, .58);--reader-bg: #221e1a;--cover-bg: #1b1612;--cover-grad-a: #3a2d22;--cover-grad-b: #1a1310;--cover-ink: #f3e8d7;--placeholder: #aaa;--font-ui: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: "Cormorant Garamond", "EB Garamond", Garamond, Georgia, serif;--accent-grad: linear-gradient(180deg, #e2b071 0%, #c98c44 100%);--glow: rgba(214, 161, 94, .09);--glow-strong: rgba(232, 172, 98, .2);--vignette: rgba(0, 0, 0, .38);--hairline: rgba(255, 244, 228, .06);--grain-opacity: .045;--elev-1: 0 1px 2px rgba(0,0,0,.32);--elev-2: 0 8px 20px -6px rgba(0,0,0,.5), 0 2px 5px rgba(0,0,0,.28);--elev-3: 0 28px 70px -14px rgba(0,0,0,.72), 0 10px 24px -8px rgba(0,0,0,.45);--paper-shadow: 0 1px 1px rgba(0,0,0,.14), 0 3px 7px rgba(0,0,0,.16), 0 16px 32px rgba(0,0,0,.26), 0 44px 90px -14px rgba(0,0,0,.55);--ring: 0 0 0 3px rgba(214, 161, 94, .3);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.45, .64, 1);--radius-lg: 16px;--radius: 12px;--radius-sm: 8px;--radius-xs: 6px;font-synthesis:none}[data-theme=light]{--bg: #f2ebdf;--bg-2: #e9e0d0;--bg-3: #ded2be;--surface: #fbf7f0;--surface-2: #f0e8da;--border: #d5c7b0;--border-2: #bdaa8d;--text: #241d16;--text-2: #4a3e33;--muted: #6b5c4b;--accent: #8a5c18;--accent-2: #6f4712;--accent-bg: rgba(138, 92, 24, .12);--danger: #a3382a;--ok: #2f7d4f;--warn: #8a6410;--paper: #ffffff;--paper-ink: #1b1b1b;--paper-gutter: rgba(0, 0, 0, .06);--shadow: 0 10px 34px rgba(74, 56, 30, .18);--on-accent: #fdf8f0;--hover: rgba(60, 40, 15, .055);--scrim: rgba(40, 30, 18, .42);--reader-bg: #ddd2bf;--cover-bg: #efe6d6;--cover-grad-a: #c8b393;--cover-grad-b: #8a7355;--cover-ink: #2a2118;--placeholder: #9a9188;--accent-grad: linear-gradient(180deg, #9a6a22 0%, #7a4f13 100%);--glow: rgba(255, 250, 240, .7);--glow-strong: rgba(255, 253, 247, .95);--vignette: rgba(110, 82, 44, .12);--hairline: rgba(255, 255, 255, .7);--grain-opacity: .05;--elev-1: 0 1px 2px rgba(74,56,30,.1);--elev-2: 0 8px 20px -6px rgba(74,56,30,.2), 0 2px 5px rgba(74,56,30,.08);--elev-3: 0 28px 70px -14px rgba(74,56,30,.34), 0 10px 24px -8px rgba(74,56,30,.14);--paper-shadow: 0 1px 1px rgba(74,56,30,.08), 0 3px 7px rgba(74,56,30,.08), 0 16px 32px rgba(74,56,30,.12), 0 44px 90px -14px rgba(74,56,30,.26);--ring: 0 0 0 3px rgba(138, 92, 24, .22)}[data-theme=sepia]{--bg: #e3d5b8;--bg-2: #d9c9a7;--bg-3: #cebc95;--surface: #efe3c9;--surface-2: #e2d3b3;--border: #bfa87f;--border-2: #a48c62;--text: #3b2f22;--text-2: #584634;--muted: #63523d;--accent: #7a4410;--accent-2: #5f340a;--accent-bg: rgba(122, 68, 16, .14);--danger: #9c3a2a;--ok: #2c6f45;--warn: #87600f;--paper: #f7efdc;--paper-ink: #33291d;--paper-gutter: rgba(74, 52, 20, .1);--shadow: 0 10px 34px rgba(78, 58, 30, .24);--on-accent: #faf1de;--hover: rgba(59, 47, 34, .07);--scrim: rgba(48, 36, 20, .48);--reader-bg: #c9b58e;--cover-bg: #e8dbbe;--cover-grad-a: #b99f74;--cover-grad-b: #7d6444;--cover-ink: #2f2517;--placeholder: #9c8b72;--accent-grad: linear-gradient(180deg, #8a5118 0%, #6a3a0c 100%);--glow: rgba(255, 246, 224, .5);--glow-strong: rgba(255, 249, 232, .8);--vignette: rgba(90, 62, 28, .18);--hairline: rgba(255, 250, 238, .55);--grain-opacity: .06;--elev-1: 0 1px 2px rgba(78,58,30,.14);--elev-2: 0 8px 20px -6px rgba(78,58,30,.26), 0 2px 5px rgba(78,58,30,.1);--elev-3: 0 28px 70px -14px rgba(78,58,30,.4), 0 10px 24px -8px rgba(78,58,30,.18);--paper-shadow: 0 1px 1px rgba(78,58,30,.1), 0 3px 7px rgba(78,58,30,.1), 0 16px 32px rgba(78,58,30,.16), 0 44px 90px -14px rgba(78,58,30,.32);--ring: 0 0 0 3px rgba(122, 68, 16, .24)}[data-theme=contrast]{--bg: #000000;--bg-2: #0b0b0b;--bg-3: #161616;--surface: #0d0d0d;--surface-2: #1c1c1c;--border: #6e6e6e;--border-2: #9a9a9a;--text: #ffffff;--text-2: #ededed;--muted: #c2c2c2;--accent: #ffb454;--accent-2: #ffc978;--accent-bg: rgba(255, 180, 84, .22);--danger: #ff8878;--ok: #5fe792;--warn: #ffd24a;--paper: #ffffff;--paper-ink: #000000;--paper-gutter: transparent;--shadow: 0 10px 40px rgba(0,0,0,.9);--on-accent: #000000;--hover: rgba(255,255,255,.14);--scrim: rgba(0,0,0,.8);--reader-bg: #111111;--cover-bg: #000000;--cover-grad-a: #3d3d3d;--cover-grad-b: #000000;--cover-ink: #ffffff;--placeholder: #6d6d6d;--accent-grad: linear-gradient(180deg, #ffb454 0%, #ffb454 100%);--glow: transparent;--glow-strong: transparent;--vignette: transparent;--hairline: transparent;--grain-opacity: 0;--elev-1: 0 0 #0000;--elev-2: 0 0 0 1px #6e6e6e;--elev-3: 0 0 0 1px #9a9a9a;--paper-shadow: 0 0 0 1px #6e6e6e;--ring: 0 0 0 3px #ffb454}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:after{content:"";position:fixed;inset:0;z-index:2147483000;pointer-events:none;opacity:var(--grain-opacity);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");background-size:180px 180px}@media (hover: none){body:after{display:none}}button{font-family:inherit}input,select,textarea{font-family:inherit;color:inherit}input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--accent)}::selection{background:color-mix(in srgb,var(--accent) 34%,transparent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible,.ProseMirror:focus-visible{outline:none}*{scrollbar-width:thin;scrollbar-color:var(--border-2) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:var(--border-2);border:3px solid transparent;background-clip:content-box;border-radius:999px}::-webkit-scrollbar-thumb:hover{background-color:var(--muted)}select{appearance:none;-webkit-appearance:none;background-color:var(--surface);background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 14px) 52%,calc(100% - 9px) 52%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 28px 6px 10px;color:var(--text);font-size:16px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}select:hover{border-color:var(--border-2)}select:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}@media (min-width: 700px){select{font-size:inherit}}option{background:var(--bg-3);color:var(--text)}optgroup{background:var(--bg-2);color:var(--accent);font-style:normal;font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:32px;padding:6px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:13px;font-weight:500;line-height:1.1;cursor:pointer;white-space:nowrap;box-shadow:var(--elev-1),inset 0 1px 0 var(--hairline);transition:background-color .18s var(--ease-out),border-color .18s ease,color .18s ease,transform .18s var(--ease-out),box-shadow .18s ease,filter .18s ease}.btn:hover:not(:disabled){background-color:var(--surface-2);border-color:var(--border-2)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.42;cursor:not-allowed}.btn.primary{background:var(--accent-grad);border-color:transparent;color:var(--on-accent);font-weight:600;box-shadow:0 8px 22px -8px color-mix(in srgb,var(--accent) 70%,transparent),inset 0 1px #ffffff47}.btn.primary:hover:not(:disabled){background:var(--accent-grad);filter:brightness(1.07) saturate(1.05);transform:translateY(-1px);box-shadow:0 14px 30px -10px color-mix(in srgb,var(--accent) 80%,transparent),inset 0 1px #ffffff57}.btn.primary:active:not(:disabled){transform:translateY(0);filter:brightness(.97)}.btn.ghost{background:transparent;box-shadow:none;border-color:transparent;color:var(--text-2)}.btn.ghost:hover:not(:disabled){background-color:var(--hover);color:var(--text);border-color:transparent}.btn.on{background-color:var(--accent-bg);border-color:color-mix(in srgb,var(--accent) 55%,transparent);color:var(--accent)}.btn.danger{background:#c76a5e1f;color:var(--danger);border-color:#c76a5e59;box-shadow:none}.btn.lg{min-height:46px;padding:12px 22px;font-size:15px;border-radius:11px;gap:9px}.btn.sm,.btn.small{min-height:26px;padding:3px 9px;font-size:12px;border-radius:var(--radius-xs)}.btn.small.danger{color:var(--danger);border-color:var(--danger)}.btn.shine{position:relative;overflow:hidden;isolation:isolate}.btn.shine:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.38) 50%,transparent 70%);transform:translate(-130%);transition:transform .9s var(--ease-out)}.btn.shine:hover:after{transform:translate(130%)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:30px;min-height:30px;padding:6px;background:transparent;border:0;border-radius:var(--radius-xs);color:var(--text-2);cursor:pointer;transition:background-color .15s ease,color .15s ease,opacity .15s ease}.icon-btn:hover{background-color:var(--hover);color:var(--text)}.icon-btn.danger:hover{color:var(--danger);background:#c76a5e1f}.link-btn{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;font:inherit;text-decoration:underline;text-underline-offset:3px}.seg{display:inline-flex;align-items:center;gap:2px;padding:3px;background:var(--bg-3);border:1px solid var(--border);border-radius:10px;box-shadow:inset 0 1px 2px #0000002e;flex-shrink:0}.seg button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:26px;padding:3px 10px;background:transparent;border:0;border-radius:7px;color:var(--text-2);font-size:12.5px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background-color .2s var(--ease-out),color .2s ease,box-shadow .2s ease}.seg button:hover:not(.on){color:var(--text);background-color:var(--hover)}.seg button.on{background-color:var(--surface-2);color:var(--accent);box-shadow:var(--elev-1),inset 0 1px 0 var(--hairline)}[data-theme=contrast] .seg button.on{box-shadow:inset 0 0 0 1px var(--accent)}.badge{display:inline-block;font-size:11px;padding:2px 9px;border-radius:999px;font-weight:600}.badge.ok{background:#6bbd8a24;color:var(--ok)}.badge.warn{background:#d8a54b24;color:var(--warn)}.muted{color:var(--muted)}.muted.small,.small{font-size:12px}.pad{padding:16px}.app{display:grid;grid-template-columns:264px 1fr;height:100%;min-height:100vh}.app.sb-closed,.app.no-book{grid-template-columns:1fr}@media (max-width: 1100px){.app{grid-template-columns:240px 1fr}.app.sb-closed{grid-template-columns:1fr}}@media (max-width: 900px){.app,.app.sb-open,.app.sb-closed{grid-template-columns:1fr;grid-template-rows:auto 1fr}.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:45;width:86vw;max-width:340px;transform:translate(-100%);transition:transform .3s var(--ease-out);will-change:transform}.app.sb-open .sidebar{transform:translate(0);box-shadow:var(--elev-3)}.app.sb-open .sidebar-toggle-btn{display:none}.book-reader{grid-template-columns:36px 1fr 36px}.reader-stage{padding:8px 0}.reader-footer{padding:6px 10px;gap:8px;font-size:11px}.format-bar,.toolbar{padding:6px 8px}}@media (max-width: 600px){.writing-surface{padding:12px 6px 40px}}.app.focus-mode .topbar,.app.focus-mode .format-bar,.app.focus-mode .word-count-bar,.app.focus-mode .sidebar,.app.focus-mode .right-panel{display:none}.app.focus-mode .main{grid-row:1 / -1;height:100vh}.app.focus-mode .writing-surface{height:100vh}.focus-exit-btn{position:fixed;top:14px;right:14px;z-index:1000;display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:color-mix(in srgb,var(--surface) 80%,transparent);backdrop-filter:blur(10px);border:1px solid var(--border);color:var(--text);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s ease}.app.focus-mode .focus-exit-btn{pointer-events:auto}.app.focus-mode:hover .focus-exit-btn{opacity:1}.sidebar{background:var(--bg-2);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;min-width:0}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 12px 16px;border-bottom:1px solid var(--border);min-height:60px}.sidebar-header-actions{display:inline-flex;align-items:center;gap:2px}.sidebar-close-btn{display:none}@media (max-width: 900px){.sidebar-close-btn{display:inline-flex}}.brand{display:flex;align-items:center;gap:10px;color:var(--text);min-width:0}.brand-mark{width:32px;height:32px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:var(--accent-grad);color:var(--on-accent);box-shadow:0 6px 16px -6px color-mix(in srgb,var(--accent) 80%,transparent),inset 0 1px #ffffff4d}.brand-name{font-family:var(--font-display);font-size:22px;font-weight:600;letter-spacing:.01em;line-height:1;white-space:nowrap}.sb-section{border-bottom:1px solid var(--border);padding:8px 0}.sb-section-head{display:flex;align-items:center;gap:8px;width:100%;padding:6px 16px;background:transparent;border:0;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:10.5px;cursor:pointer}.sb-section-head:hover{color:var(--text-2)}.sb-section-head.static{cursor:default}.sb-section-head.static:hover{color:var(--muted)}.sb-section-head .count{margin-left:auto;background:var(--bg-3);color:var(--text-2);padding:1px 8px;border-radius:999px;font-size:10.5px;letter-spacing:0;font-variant-numeric:tabular-nums}.sb-section-head .ml-auto{margin-left:auto}.sb-section-head .count+.ml-auto{margin-left:4px}.sb-list{display:flex;flex-direction:column;gap:1px;padding:4px 8px;overflow-y:auto}.chapters-section{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0;border-bottom:0}.chapters-section .sb-list{flex:1;min-height:0;padding-bottom:16px}.sb-item{position:relative;display:flex;align-items:center;gap:6px;min-height:34px;padding:4px 6px 4px 8px;border-radius:var(--radius-sm);color:var(--text-2);transition:background-color .15s ease,color .15s ease}.sb-item:hover{background-color:var(--hover);color:var(--text)}.sb-item.active{background-color:var(--accent-bg);color:var(--text)}.sb-item.active:before{content:"";position:absolute;left:-8px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}.sb-item-main{flex:1;display:flex;align-items:center;gap:9px;min-width:0;background:transparent;border:0;color:inherit;text-align:left;font-size:13px;cursor:pointer;padding:2px 0}.sb-item.active .sb-item-main{font-weight:600}.sb-item .grip{color:var(--muted);cursor:grab;display:inline-flex}.sb-item .ch-num{min-width:18px;font-family:var(--font-display);font-size:15px;font-style:italic;color:var(--muted);font-variant-numeric:tabular-nums}.sb-item.active .ch-num{color:var(--accent)}.sb-item .word-count{margin-left:auto;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}@media (hover: hover){.sb-item .grip{opacity:0;transition:opacity .15s ease}.sb-item:hover .grip{opacity:1}.sb-item>.icon-btn{display:none}.sb-item:hover>.icon-btn,.sb-item:focus-within>.icon-btn{display:inline-flex}.sb-item:hover .word-count,.sb-item:focus-within .word-count{display:none}}.sb-item>.icon-btn{min-width:26px;min-height:26px;padding:5px}.sb-cta{margin:6px 0 2px;padding:8px;border-radius:var(--radius-sm);background:transparent;color:var(--accent);border:1px dashed color-mix(in srgb,var(--accent) 50%,transparent);display:flex;align-items:center;gap:6px;justify-content:center;cursor:pointer;font-weight:600;font-size:12.5px;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.sb-cta:hover{background:var(--accent-bg);border-style:solid;border-color:var(--accent)}.sb-rename{flex:1;min-width:0;background:var(--surface);border:1px solid var(--accent);color:var(--text);padding:4px 7px;border-radius:var(--radius-xs);box-shadow:var(--ring);font-size:13px;outline:none}.main{display:flex;flex-direction:column;min-width:0;min-height:0;height:100%;background:var(--bg);overflow:hidden;container:main / inline-size}.topbar{display:flex;align-items:center;gap:10px;padding:0 12px;min-height:54px;border-bottom:1px solid var(--border);background:var(--bg-2);flex-shrink:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.topbar::-webkit-scrollbar{display:none}.topbar-left{display:flex;align-items:center;gap:6px;min-width:0;flex:1 1 auto}.sidebar-toggle-btn{flex-shrink:0}.book-crumb{display:flex;align-items:center;gap:7px;min-width:0;color:var(--text-2)}.book-crumb .crumb-book{font-family:var(--font-display);font-size:19px;font-weight:600;color:var(--text);letter-spacing:.005em}.book-crumb .crumb-chapter{font-size:13px;color:var(--muted)}.book-crumb .sep{color:var(--border-2);flex-shrink:0}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}.view-switch{flex-shrink:0}.topbar-actions{display:flex;align-items:center;gap:6px;margin-left:auto;flex-wrap:nowrap;flex-shrink:0}.topbar-actions .btn,.topbar-actions .seg button{white-space:nowrap}.tb-divider{width:1px;height:22px;background:var(--border);margin:0 4px;flex-shrink:0}.zoom-seg{flex-shrink:0}.zoom-seg .zoom-val{display:inline-flex;align-items:center;justify-content:center;min-width:40px;padding:0 4px;font-size:12px;color:var(--text-2);font-variant-numeric:tabular-nums}.zoom-seg button{padding:3px 7px}.zoom-seg button.zoom-reset{font-size:11px}@container main (max-width: 1360px){.topbar-actions .file-act .lbl{display:none}.topbar-actions .file-act{padding:6px 9px}}@container main (max-width: 1100px){.view-switch .lbl,.layout-toggle .lbl{display:none}.layout-toggle{padding:6px 9px}.zoom-seg .zoom-reset,.book-crumb .crumb-chapter,.book-crumb .sep{display:none}}@container main (max-width: 760px){.zoom-seg,.tb-divider{display:none}.book-crumb .crumb-book{font-size:17px}}@container main (max-width: 560px){.book-crumb{display:none}.topbar{flex-wrap:wrap;row-gap:6px;padding:7px 8px;overflow:visible}.topbar-left{flex:0 0 auto}.view-switch{margin-right:auto}.topbar-actions{order:3;width:100%;margin-left:0;justify-content:space-between}}.export-wrap{position:relative;display:inline-flex;gap:6px}.export-menu{position:fixed;z-index:300;min-width:220px;padding:6px;background:color-mix(in srgb,var(--surface-2) 92%,transparent);backdrop-filter:blur(16px) saturate(140%);border:1px solid var(--border-2);border-radius:var(--radius);box-shadow:var(--elev-3),inset 0 1px 0 var(--hairline);animation:menu-in .22s var(--ease-out) both;transform-origin:top right}.export-menu button{display:flex;align-items:center;gap:10px;width:100%;background:transparent;border:0;color:var(--text);padding:9px 11px;border-radius:var(--radius-xs);font-size:13px;text-align:left;cursor:pointer;transition:background-color .12s ease,color .12s ease}.export-menu button svg{color:var(--muted);transition:color .12s ease}.export-menu button:hover{background:var(--accent-bg);color:var(--accent)}.export-menu button:hover svg{color:var(--accent)}.format-bar{display:flex;align-items:center;padding:8px 14px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg-2) 70%,var(--bg));gap:10px;overflow-x:auto;animation:slide-down .28s var(--ease-out) both}.format-selector{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center;margin-inline:auto}.fs-group{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 4px 0 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--muted);transition:border-color .15s ease}.fs-group:hover{border-color:var(--border-2)}.fs-group:focus-within{border-color:var(--accent);box-shadow:var(--ring)}.fs-group select,.fs-group input{background-color:transparent;border:0;color:var(--text);outline:none;box-shadow:none;max-width:210px;font-size:13px}.fs-group select{padding-left:2px}.fs-group input[type=number]{width:58px;text-align:right;padding:4px 6px 4px 0}.fs-check{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;border-radius:var(--radius-sm);color:var(--text-2);font-size:13px;cursor:pointer;transition:background-color .15s ease}.fs-check:hover{background:var(--hover);color:var(--text)}.fs-group.cover-group{gap:4px;padding:3px}.fs-group.fs-margins{gap:4px;padding-right:2px}.fs-margins-label{font-size:12px;white-space:nowrap;margin-right:2px}.fs-margin{display:inline-flex;align-items:center;gap:1px}.fs-margin svg{flex-shrink:0;opacity:.8}.fs-group.fs-margins input[type=number]{width:46px;padding:4px 2px 4px 0}.cover-thumb{width:22px;height:32px;object-fit:cover;border-radius:2px;box-shadow:var(--elev-1)}.toolbar{display:flex;align-items:center;padding:6px 12px;border-bottom:1px solid var(--border);background:var(--bg-2);overflow-x:auto;scrollbar-width:none;flex-shrink:0}.toolbar::-webkit-scrollbar{display:none}.toolbar-inner{display:flex;align-items:center;gap:2px;margin-inline:auto}.tb-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:0;border-radius:7px;color:var(--text-2);cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .15s var(--ease-out)}.tb-btn:hover{background-color:var(--hover);color:var(--text)}.tb-btn:active{transform:scale(.94)}.tb-btn.active{background-color:var(--accent-bg);color:var(--accent)}.tb-sep{width:1px;height:18px;background:var(--border);margin:0 7px;flex-shrink:0}.tb-btn.mic-live{color:var(--danger)}.tb-btn .mic-dot{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--danger);margin-left:-4px;margin-top:-10px;animation:mic-pulse 1s infinite ease-in-out}.find-replace-bar{position:relative;background:var(--bg-2);border-bottom:1px solid var(--border);padding:10px 44px 10px 14px;animation:slide-down .25s var(--ease-out) both}.fr-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.fr-toggle,.fr-close{background:transparent;border:0;color:var(--text-2);cursor:pointer;padding:3px;display:inline-flex;border-radius:var(--radius-xs)}.fr-toggle:hover,.fr-close:hover{background:var(--hover);color:var(--text)}.fr-title{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;flex:1}.fr-body{display:flex;flex-direction:column;gap:8px}.fr-row{display:flex;align-items:center;gap:8px}.fr-row.fr-fields{flex-wrap:wrap;gap:8px 12px}.fr-field{display:flex;align-items:center;gap:6px;flex:1;min-width:140px}.fr-field .fr-input{flex:1;min-width:80px}.fr-icon{color:var(--muted);flex-shrink:0}.fr-input{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px;color:var(--text);font-size:13px;transition:border-color .15s ease,box-shadow .15s ease}.fr-input:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.fr-counter{font-size:11px;color:var(--muted);min-width:36px;text-align:right;font-variant-numeric:tabular-nums}.fr-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.fr-check{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2);cursor:pointer;white-space:nowrap;flex-shrink:0}.fr-btns{display:flex;align-items:center;gap:4px}.fr-btn{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-xs);padding:4px 10px;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.fr-btn:hover:not(:disabled){background:var(--accent-bg);color:var(--accent);border-color:var(--accent)}.fr-btn:disabled{opacity:.4;cursor:not-allowed}.fr-btn.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.fr-btn.primary:hover:not(:disabled){background:var(--accent-2);color:var(--on-accent)}.find-replace-bar .fr-close{position:absolute;top:8px;right:8px}.fr-scope{flex-shrink:0}.fr-scope button{font-size:12px}.fr-results{margin-top:2px;display:flex;flex-direction:column;gap:6px;animation:fade-up .25s var(--ease-out) both}.fr-summary{font-size:12px;color:var(--muted)}.fr-result-list{display:flex;flex-wrap:wrap;gap:6px;max-height:112px;overflow-y:auto}.fr-result{display:inline-flex;align-items:center;gap:8px;max-width:280px;padding:4px 6px 4px 9px;background:var(--surface);border:1px solid var(--border);border-radius:999px;color:var(--text-2);font-size:12.5px;cursor:pointer;transition:border-color .15s ease,color .15s ease,background-color .15s ease}.fr-result:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));color:var(--text)}.fr-result.on{border-color:var(--accent);color:var(--text);background:var(--accent-bg)}.fr-result-num{font-family:var(--font-display);font-style:italic;font-size:14px;color:var(--muted)}.fr-result-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fr-result-hits{min-width:20px;padding:1px 7px;border-radius:999px;background:var(--accent-bg);color:var(--accent);font-size:11px;font-weight:600;text-align:center;font-variant-numeric:tabular-nums}.fr-bilan{margin-top:2px;font-size:12px;color:var(--ok);animation:fade-up .25s var(--ease-out) both}.word-count-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:30px;padding:4px 16px;background:var(--bg-2);border-top:1px solid var(--border);font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums;flex-shrink:0}.word-count-bar b{color:var(--text-2);font-weight:600}.wc-right{display:inline-flex;align-items:center;gap:16px;min-width:0}.page-indicator{white-space:nowrap}@media (min-width: 900px){.word-count-bar{padding:4px 24px}}.writing-surface{flex:1;min-height:0;overflow:auto;background:radial-gradient(ellipse 62% 48% at 50% 0%,var(--glow-strong),transparent 72%),radial-gradient(ellipse 100% 70% at 50% 115%,var(--vignette),transparent 70%),var(--bg);padding:36px 16px 96px;display:flex;justify-content:center;justify-content:safe center;align-items:flex-start}.writing-surface.skeleton-mode{padding:0;align-items:stretch;justify-content:flex-start;background:var(--bg)}@media (min-width: 900px){.writing-surface{padding:40px 24px 96px}}@media (min-width: 1400px){.writing-surface{padding:44px 40px 110px}}.manuscript-editor{background-color:var(--paper);color:var(--paper-ink);width:100%;max-width:900px;min-height:60vh;border-radius:3px;box-shadow:var(--paper-shadow);padding:56px 64px;animation:page-in .55s var(--ease-out) backwards}.manuscript-editor.free-format{background-color:var(--paper);box-shadow:none;border-radius:0;max-width:none;padding:24px 32px}@media (min-width: 900px){.manuscript-editor.free-format{padding:32px 48px}}@media (min-width: 1400px){.manuscript-editor{max-width:1050px;padding:56px 72px}.manuscript-editor.free-format{padding:40px 64px}}@media (min-width: 1700px){.manuscript-editor{max-width:1200px;padding:56px 88px}.manuscript-editor.free-format{padding:48px 80px}}@media (max-width: 700px){.manuscript-editor{padding:32px 22px}}.manuscript-editor.page-format{box-shadow:var(--paper-shadow)}.manuscript-editor.page-format .ProseMirror{min-height:100%}.manuscript-editor .ProseMirror{outline:none;min-height:50vh;caret-color:var(--accent-2)}[data-theme=light] .manuscript-editor .ProseMirror,[data-theme=sepia] .manuscript-editor .ProseMirror{caret-color:var(--accent)}.manuscript-editor .ProseMirror p{margin:0 0 .2em}.manuscript-editor .ProseMirror p:first-child,.manuscript-editor .ProseMirror h1+p,.manuscript-editor .ProseMirror h2+p,.manuscript-editor .ProseMirror h3+p{text-indent:0}.manuscript-editor.indent-first-line .ProseMirror p{text-indent:1.5em}.manuscript-editor .ProseMirror h1,.manuscript-editor .ProseMirror h2,.manuscript-editor .ProseMirror h3{text-align:center;font-variant:small-caps;letter-spacing:.08em;margin:1.5em 0 .6em}.manuscript-editor .ProseMirror blockquote{border-left:3px solid rgba(0,0,0,.2);padding-left:1em;font-style:italic;color:#4a4a4a;margin:.6em 0 .6em .5em}.manuscript-editor .ProseMirror p.is-editor-empty:before{content:attr(data-placeholder);float:left;color:var(--placeholder);pointer-events:none;height:0;font-style:italic}.manuscript-editor .ProseMirror hr{border:0;height:1.2em;margin:1em 0;text-align:center;overflow:visible}.manuscript-editor .ProseMirror hr:after{content:"❦";font-size:.9em;opacity:.55}.page-sizer:not(.on),.page-sizer:not(.on)>.page-scale{display:contents}.page-sizer.on{flex:none}.page-sizer.on>.page-scale{transform-origin:0 0}.manuscript-editor.paged{background-color:transparent;box-shadow:none;border-radius:0;min-height:0;position:relative;isolation:isolate}.manuscript-editor.paged:not(:has(.pw-lead)){background-color:var(--paper);box-shadow:var(--paper-shadow)}.manuscript-editor.paged .ProseMirror{min-height:0;white-space:pre-wrap}.manuscript-editor.paged .ProseMirror>p{display:flow-root}.manuscript-editor.paged.show-line-numbers .ProseMirror{padding-left:0!important}.pw-gap{display:block;position:relative;pointer-events:none;user-select:none;-webkit-user-select:none}.pw-gap.pw-inline{float:left;width:100%}.pw-gap:after{content:"";position:absolute;z-index:-1;left:calc(-1 * var(--pw-ml));right:calc(-1 * var(--pw-mr));height:var(--pw-sheet);background:var(--paper);box-shadow:var(--paper-shadow);border-radius:2px}.pw-lead:after{top:var(--pw-lead-top)}.pw-break:after{top:calc(100% - var(--pw-mt))}.pw-tail:after{content:none}.manuscript-editor.mirror .pw-gap:after{background-image:linear-gradient(to right,var(--paper-gutter),transparent 18px)}.manuscript-editor.mirror .pw-gap.pw-verso:after{left:calc(-1 * var(--pw-mr));right:calc(-1 * var(--pw-ml));background-image:linear-gradient(to left,var(--paper-gutter),transparent 18px)}.show-line-numbers .ProseMirror{counter-reset:line 0;padding-left:3em!important}.show-line-numbers .ProseMirror>p{position:relative}.show-line-numbers .ProseMirror>p:before{counter-increment:line;content:counter(line);position:absolute;left:-2.5em;top:0;width:2em;text-align:right;color:var(--text-2);font-size:.85em;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;opacity:.55;user-select:none}.manuscript-editor .grammar-issue,.book-page-inner .grammar-issue{background:#d8a54b38;border-bottom:2px wavy var(--warn);cursor:help}.manuscript-editor .note-mark,.book-page-inner .note-mark{background:#d6a15e2e;border-bottom:1px dashed var(--accent);cursor:pointer;position:relative}.manuscript-editor .note-mark:after,.book-page-inner .note-mark:after{content:"📝";position:absolute;font-size:10px;line-height:1;margin:-.45em 0 0 1px;opacity:.75;pointer-events:none}.note-mark.note-color-red{background:#c76a5e38;border-bottom-color:var(--danger)}.note-mark.note-color-green{background:#6bbd8a38;border-bottom-color:var(--ok)}.note-mark.note-color-blue{background:#5ea0d638;border-bottom-color:#5ea0d6}.hide-markers .note-mark,.hide-markers .grammar-issue{background:transparent;border-bottom:none}.hide-markers .note-mark:after{display:none}.ai-panel.rp-drawer{position:fixed;top:0;right:0;height:100vh;width:min(420px,92vw);z-index:40;transform:translate(100%);transition:transform .34s var(--ease-out),box-shadow .34s ease;will-change:transform;touch-action:manipulation}.ai-panel.rp-drawer.open{transform:translate(0);box-shadow:var(--elev-3)}.rp-edge-toggle{position:fixed;top:50%;right:0;transform:translateY(-50%);z-index:41;width:26px;height:64px;display:flex;align-items:center;justify-content:center;background:var(--bg-2);color:var(--muted);border:1px solid var(--border);border-right:0;border-radius:12px 0 0 12px;cursor:pointer;box-shadow:var(--elev-2);transition:right .34s var(--ease-out),color .15s ease,background-color .15s ease,width .2s var(--ease-out)}.rp-edge-toggle:hover{color:var(--accent);background:var(--surface);width:30px}.rp-edge-toggle.open{right:min(420px,92vw)}.rp-backdrop{position:fixed;inset:0;background:var(--scrim);z-index:39;opacity:0;pointer-events:none;transition:opacity .25s ease}.rp-backdrop.on{opacity:1;pointer-events:auto}@media (min-width: 1101px){.rp-backdrop{background:transparent;pointer-events:none!important}.writing-surface{margin-right:34px;transition:margin-right .34s var(--ease-out)}.main{transition:margin-right .34s var(--ease-out)}.app.rp-open .main{margin-right:min(420px,92vw)}}@media (max-width: 1100px){.ai-panel.rp-drawer{width:100vw;max-width:100vw}.rp-edge-toggle.open{right:0}}.rp-head{display:flex;align-items:center;gap:8px;min-height:54px;padding:0 10px;border-bottom:1px solid var(--border);background:var(--bg-2)}.rp-tabs{flex:1;min-width:0}.rp-tabs button{flex:1;padding:3px 8px;font-size:12.5px}.rp-close{flex-shrink:0}.rp-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.rp-body>.panel-inner,.rp-body>.version-panel{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.ai-panel{background:var(--bg-2);border-left:1px solid var(--border);display:flex;flex-direction:column;min-width:0;overflow:hidden}.ai-header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 12px}.ai-title{display:flex;align-items:center;gap:9px;font-family:var(--font-display);font-size:21px;font-weight:600;color:var(--text);letter-spacing:.005em}.ai-title svg{color:var(--accent)}.ai-section{padding:10px 16px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:6px}.ai-section.grow{flex:1;min-height:0;border-bottom:0}.ai-label{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.ai-label .muted{text-transform:none;letter-spacing:0;font-weight:400}.ai-actions{display:grid;gap:5px}.ai-action{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:10px;min-height:38px;padding:7px 10px 7px 11px;background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);font-size:13px;text-align:left;cursor:pointer;box-shadow:inset 0 1px 0 var(--hairline);transition:background-color .16s ease,border-color .16s ease,transform .2s var(--ease-out)}.ai-action>svg:first-child{color:var(--accent)}.ai-action:hover:not(:disabled){background:var(--surface-2);border-color:color-mix(in srgb,var(--accent) 45%,var(--border));transform:translate(2px)}.ai-action:active:not(:disabled){transform:translate(2px) scale(.99)}.ai-action:disabled{opacity:.45;cursor:not-allowed}.scope{font-size:9.5px;font-weight:600;letter-spacing:.06em;color:var(--muted);text-transform:uppercase;padding:2px 7px;border-radius:999px;background:var(--bg-3)}.scope.selection{color:var(--accent);background:var(--accent-bg)}.scope.book{color:var(--warn)}.ai-input,.ai-textarea{background-color:var(--surface);border:1px solid var(--border);color:var(--text);padding:8px 10px;border-radius:var(--radius-sm);outline:none;width:100%;resize:vertical;font-size:16px;transition:border-color .15s ease,box-shadow .15s ease}select.ai-input{padding-right:28px}@media (min-width: 700px){.ai-input,.ai-textarea{font-size:13px}}.ai-input:hover,.ai-textarea:hover{border-color:var(--border-2)}.ai-input:focus,.ai-textarea:focus{border-color:var(--accent);box-shadow:var(--ring)}.input-with-icon{position:relative;display:flex;align-items:center}.input-with-icon>svg{position:absolute;left:9px;color:var(--muted);pointer-events:none}.input-with-icon .ai-input{padding-left:30px}.ai-run{display:inline-flex;align-items:center;gap:6px;justify-content:center;min-height:34px;padding:7px 12px;background:var(--accent-grad);color:var(--on-accent);border:0;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;box-shadow:0 6px 16px -8px color-mix(in srgb,var(--accent) 80%,transparent)}.ai-run:disabled{opacity:.5;cursor:not-allowed}.ai-output{flex:1;overflow:auto;min-height:120px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;white-space:pre-wrap;font-size:13.5px;line-height:1.6}.ai-output-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.ai-scroll{flex:1;overflow-y:auto;min-height:0;padding-bottom:12px}.ai-sec{border-top:1px solid var(--border)}.ai-sec-head{display:flex;align-items:center;gap:9px;width:100%;padding:12px 16px;background:transparent;border:0;color:var(--text);text-align:left;cursor:pointer;font-size:13.5px;font-weight:600;transition:background-color .15s ease}.ai-sec-head:hover{background:var(--hover)}.ai-sec-head svg{color:var(--accent);flex-shrink:0}.ai-sec-head>svg:first-child{color:var(--muted)}.ai-sec.open>.ai-sec-head>svg:first-child{color:var(--accent)}.ai-sec-head span{flex:1}.ai-sec-body{padding:2px 16px 16px;display:flex;flex-direction:column;gap:8px;animation:fade-up .3s var(--ease-out) both}.ai-sub-label{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-top:4px}.ai-row{display:flex;gap:6px;flex-wrap:wrap}.ai-row>*{flex:1;min-width:120px}.ai-sub-panel{background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px;display:flex;flex-direction:column;gap:6px;margin-top:4px}.ai-chip-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;max-height:220px;overflow-y:auto}.ai-chip-list li{background:var(--surface);padding:7px 9px;border-radius:var(--radius-xs);font-size:12px}.ai-provider .badge{font-size:11px;padding:2px 8px;border-radius:999px}.synonym-grid{display:flex;flex-wrap:wrap;gap:5px}.synonym-chip{background:var(--surface);border:1px solid var(--border);color:var(--text);padding:4px 11px;border-radius:999px;cursor:pointer;font-size:12.5px;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .15s var(--ease-out)}.synonym-chip:hover{background:var(--accent-bg);border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.ai-result-inline{position:relative;margin:10px 16px 16px;padding:14px 14px 12px;background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--radius);box-shadow:var(--elev-2),inset 0 1px 0 var(--hairline);display:flex;flex-direction:column;gap:8px;animation:fade-up .35s var(--ease-out) both;overflow:hidden}.ai-result-inline:before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent) 20%,var(--accent) 80%,transparent);opacity:.8}.ai-result-inline .ai-output{max-height:300px;min-height:80px;background:var(--bg-2)}.notes-list{flex:1;overflow-y:auto;padding:8px 16px 16px;display:flex;flex-direction:column;gap:8px}.note-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm);padding:10px 12px;display:flex;flex-direction:column;gap:4px;box-shadow:inset 0 1px 0 var(--hairline);animation:fade-up .3s var(--ease-out) both}.note-card.note-color-red{border-left-color:var(--danger)}.note-card.note-color-green{border-left-color:var(--ok)}.note-card.note-color-blue{border-left-color:#5ea0d6}.note-card-head{display:flex;align-items:center;gap:6px}.note-chapter{flex:1;background:transparent;border:0;color:var(--accent);font-weight:600;font-size:12px;text-align:left;cursor:pointer;padding:0}.note-chapter:hover{text-decoration:underline;text-underline-offset:3px}.note-actions{display:flex;gap:2px}.note-excerpt{font-size:11.5px;color:var(--muted);font-style:italic}.note-text{font-size:13px;color:var(--text);white-space:pre-wrap;line-height:1.5}.version-panel{padding:14px 16px;display:flex;flex-direction:column;gap:12px;overflow:auto}.vh-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.vh-list{display:flex;flex-direction:column;gap:6px}.vh-item{display:flex;align-items:center;gap:8px;padding:9px 10px 9px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:inset 0 1px 0 var(--hairline);transition:border-color .15s ease}.vh-item:hover{border-color:var(--border-2)}.vh-meta{flex:1;min-width:0}.vh-label{font-weight:600;color:var(--text);font-size:13px}.vh-actions{display:flex;gap:2px}.vh-auto{margin-left:6px;padding:1px 7px;border-radius:999px;font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);background:var(--accent-bg);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);vertical-align:middle}.skeleton-node:hover{background:var(--surface);border-color:var(--border)!important}.skeleton-node.active:hover{background:var(--accent-weak);border-color:var(--accent)!important}.preview-surface{background:radial-gradient(ellipse 52% 48% at 50% 38%,var(--glow-strong),transparent 72%),radial-gradient(ellipse 110% 80% at 50% 120%,var(--vignette),transparent 70%),var(--reader-bg);padding:0;overflow:hidden}.preview-empty{margin:auto;color:var(--muted);display:flex;align-items:center;gap:10px;padding:40px}.book-preview{width:100%;display:flex;justify-content:center}.pages-scroll{display:flex;flex-direction:column;gap:24px;align-items:center;padding:8px 0}.book-reader{position:relative;width:100%;height:100%;min-height:0;display:grid;grid-template-columns:64px 1fr 64px;grid-template-rows:1fr auto;align-items:stretch}.reader-stage{grid-column:2;grid-row:1;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:24px 0;user-select:text}.reader-spread{display:flex;gap:0;transform-origin:center center;box-shadow:var(--paper-shadow);position:relative;transition:transform .3s var(--ease-out);animation:page-in .45s var(--ease-out) backwards}.reader-spread.double:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:34px;transform:translate(-50%);background:linear-gradient(90deg,#0000,#00000029 42%,#00000052,#00000029 58%,#0000);pointer-events:none;z-index:2}.reader-spread .book-page{box-shadow:none;border-radius:2px}.reader-spread.double .book-page.bp-left{border-top-right-radius:0;border-bottom-right-radius:0}.reader-spread.double .book-page.bp-right{border-top-left-radius:0;border-bottom-left-radius:0}.book-page.blank{background:var(--paper);opacity:.5}.reader-nav{grid-row:1;background:transparent;border:0;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.reader-nav svg{box-sizing:content-box;padding:10px;border-radius:50%;transition:background-color .2s ease,transform .25s var(--ease-out),box-shadow .2s ease}.reader-nav:not(:disabled):hover{color:var(--accent)}.reader-nav:not(:disabled):hover svg{background:var(--surface);box-shadow:var(--elev-2)}.reader-prev:not(:disabled):hover svg{transform:translate(-3px)}.reader-next:not(:disabled):hover svg{transform:translate(3px)}.reader-nav:disabled{opacity:.25;cursor:default}.reader-prev{grid-column:1}.reader-next{grid-column:3}.reader-footer{grid-column:1 / -1;grid-row:2;display:flex;align-items:center;gap:14px;padding:8px 20px;background:var(--bg-2);border-top:1px solid var(--border);font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.reader-slider{flex:1;cursor:pointer}.kdp-verdict{display:inline-flex;align-items:center;gap:5px;max-width:45%;line-height:1.3}.kdp-verdict svg{flex-shrink:0}.kdp-verdict.ok{color:var(--ok)}.kdp-verdict.warn{color:var(--warn)}.book-page{background:var(--paper);color:var(--paper-ink);box-shadow:var(--paper-shadow);position:relative;overflow:hidden}.book-page-inner{overflow-wrap:break-word}.book-page-inner p{margin:0 0 .2em}.book-page-inner p:first-child,.book-page-inner h1+p,.book-page-inner h2+p,.book-page-inner h3+p{text-indent:0}.book-page-inner.indent-first-line p{text-indent:1.5em}.book-page-inner.indent-first-line p.pw-cont,.book-page-inner.indent-first-line .book-subtitle,.book-page-inner.indent-first-line .book-author{text-indent:0}.book-page-inner p.pw-split{text-align-last:justify}.book-page-inner hr{border:0;height:1.2em;margin:1em 0;text-align:center;overflow:visible}.book-page-inner hr:after{content:"❦";font-size:.9em;opacity:.55}.book-page-inner h1,.book-page-inner h2,.book-page-inner h3{text-align:center;font-variant:small-caps;letter-spacing:.08em;margin:1.5em 0 .6em}.book-page-inner h1.book-title{text-align:center;margin:3em 0 .3em;font-size:2em;font-variant:small-caps;letter-spacing:.06em}.book-page-inner .book-subtitle{text-align:center;font-style:italic;margin:0 0 1em}.book-page-inner .book-author{text-align:center;margin:2em 0}.book-page-inner h2.chapter-title{text-align:center;font-variant:small-caps;letter-spacing:.08em;margin:1.5em 0 1em}.book-page-inner blockquote{margin:.6em 0 .6em .5em;font-style:italic;color:#4a4a4a;border-left:3px solid rgba(0,0,0,.2);padding-left:1em}.page-number{position:absolute;bottom:10mm;left:0;right:0;text-align:center;font-family:inherit;font-size:10pt;color:#666}.book-page.book-cover{overflow:hidden;background:var(--cover-bg);padding:0!important}.book-cover-img{width:100%;height:100%;object-fit:cover;display:block}.book-cover-fallback{width:100%;height:100%;background:linear-gradient(160deg,var(--cover-grad-a) 0%,var(--cover-grad-b) 100%);color:var(--cover-ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center}.book-cover-fallback .cover-title{font-family:var(--font-display);font-size:2.2em;font-weight:600;letter-spacing:.02em}.book-cover-fallback .cover-subtitle{font-size:1.1em;font-style:italic;opacity:.85}.book-cover-fallback .cover-author{font-size:1em;opacity:.75;margin-top:auto}.modal-backdrop{position:fixed;inset:0;background:var(--scrim);z-index:50;display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(8px) saturate(120%);-webkit-backdrop-filter:blur(8px) saturate(120%);animation:fade-in .22s ease both}.modal{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--elev-3),inset 0 1px 0 var(--hairline);width:min(900px,100%);max-height:90vh;display:flex;flex-direction:column;overflow:hidden;animation:modal-in .38s var(--ease-out) both}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px 14px 22px;border-bottom:1px solid var(--border)}.modal-header h2{margin:0;display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:24px;font-weight:600;letter-spacing:.005em;color:var(--text)}.modal-header h2 svg{color:var(--accent);width:18px;height:18px;margin:0!important}.modal-body{padding:18px 22px;overflow:auto;display:flex;flex-direction:column;gap:14px}.modal-body h3{margin:8px 0 2px;display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:20px;font-weight:600;letter-spacing:.005em;text-transform:none;color:var(--text)}.modal-body h3 svg{color:var(--accent)}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--border);background:color-mix(in srgb,var(--bg-2) 60%,var(--bg))}.dialog-modal{max-width:480px}.dialog-modal .modal-body{padding:24px 24px 8px}.dialog-message{margin:0;white-space:pre-wrap;line-height:1.6;font-size:14px}.settings-tabs{display:flex;gap:4px;padding:0 16px;border-bottom:1px solid var(--border);background:var(--bg-2);overflow-x:auto;scrollbar-width:none}.settings-tabs::-webkit-scrollbar{display:none}.settings-tabs button{position:relative;padding:11px 12px 10px;font-size:12.5px;font-weight:500;border:none;background:transparent;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:color .15s ease}.settings-tabs button:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:2px 2px 0 0;background:var(--accent);transform:scaleX(0);transition:transform .25s var(--ease-out)}.settings-tabs button:hover{color:var(--text)}.settings-tabs button.on{color:var(--text);font-weight:600}.settings-tabs button.on:after{transform:scaleX(1)}.settings-section{display:flex;flex-direction:column;gap:12px;animation:fade-up .3s var(--ease-out) both}.margin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.margin-grid label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--text-2)}.margin-grid input{background:var(--surface);border:1px solid var(--border);color:var(--text);padding:7px 9px;border-radius:var(--radius-sm);outline:none;font-size:13px;transition:border-color .15s ease,box-shadow .15s ease}.margin-grid input:focus{border-color:var(--accent);box-shadow:var(--ring)}.checkbox-row{display:flex;flex-wrap:wrap;gap:14px}.checkbox-row label{display:inline-flex;align-items:center;gap:7px;font-size:13px;cursor:pointer}.checkbox-row input[type=checkbox]{width:16px;height:16px;cursor:pointer}.priority-list{display:flex;flex-direction:column;gap:4px}.priority-item{display:grid;grid-template-columns:28px 1fr auto auto;gap:8px;align-items:center;padding:7px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.priority-item .idx{color:var(--muted);font-variant-numeric:tabular-nums}.provider-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}.provider-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:7px;box-shadow:inset 0 1px 0 var(--hairline)}.provider-head{display:flex;flex-direction:column}.provider-head .sm{font-size:11px}.provider-card label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-2)}.provider-card input,.provider-card select{background-color:var(--bg-2);border:1px solid var(--border);color:var(--text);padding:7px 9px;border-radius:var(--radius-xs);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.provider-card select{padding-right:28px}.provider-card input:focus,.provider-card select:focus{border-color:var(--accent);box-shadow:var(--ring)}.input-with-action{display:flex;gap:4px}.input-with-action input{flex:1}.agent-test-row{display:flex;align-items:center;gap:6px;margin-top:4px}.agent-test-row button{display:inline-flex;align-items:center;gap:4px}.agent-test-result{font-size:11px;padding:6px 8px;border-radius:var(--radius-xs);margin-top:4px;max-height:80px;overflow:auto}.agent-test-result.success{background:#22c55e1f;color:var(--ok);border:1px solid rgba(34,197,94,.25)}.agent-test-result.error{background:#ef44441f;color:var(--danger);border:1px solid rgba(239,68,68,.25)}.theme-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:10px;max-width:580px}.theme-card{display:flex;flex-direction:column;gap:9px;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;color:var(--text-2);font:inherit;text-align:left;box-shadow:inset 0 1px 0 var(--hairline);transition:border-color .18s ease,transform .25s var(--ease-out),box-shadow .25s ease}.theme-card:hover{border-color:var(--border-2);transform:translateY(-2px);box-shadow:var(--elev-2)}.theme-card.on{border-color:var(--accent);color:var(--text);box-shadow:var(--ring)}.theme-card.on .theme-name{font-weight:600}.theme-name{font-size:13px}.theme-swatch{display:flex;align-items:stretch;height:44px;border-radius:var(--radius-xs);overflow:hidden;border:1px solid var(--border)}.theme-swatch .ts-bg{flex:3;background:var(--bg)}.theme-swatch .ts-text{flex:2;background:var(--text)}.theme-swatch .ts-accent{flex:1;background:var(--accent)}.sync-box{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:14px;display:flex;flex-direction:column;gap:8px;box-shadow:inset 0 1px 0 var(--hairline)}.sync-head{display:flex;align-items:center;gap:7px}.sync-head svg{color:var(--accent)}.sync-box p{margin:0}.welcome{position:relative;width:100%;min-height:100%;overflow-x:hidden;overflow-y:auto;background:var(--bg);isolation:isolate}.welcome-glow{position:absolute;left:0;right:0;top:0;height:1100px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 46% 42% at 72% 30%,var(--glow-strong),transparent 70%),radial-gradient(ellipse 40% 36% at 18% 12%,var(--glow),transparent 72%);-webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent);mask-image:linear-gradient(to bottom,#000 55%,transparent)}.welcome-nav{display:flex;align-items:center;justify-content:space-between;max-width:1240px;margin:0 auto;padding:24px 32px 0}.welcome-nav .brand-name{font-size:26px}.welcome-nav .brand-mark{width:36px;height:36px;border-radius:11px}.nav-actions{display:flex;align-items:center;gap:4px}.nav-actions .icon-btn{min-width:38px;min-height:38px;border-radius:10px}.nav-actions .icon-btn svg{transition:transform .5s var(--ease-out)}.nav-actions .icon-btn:hover svg{transform:rotate(60deg)}.hero{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);align-items:center;gap:32px;max-width:1240px;margin:0 auto;padding:48px 32px 80px;min-height:min(76vh,720px)}.hero-copy{position:relative}.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;margin:0;padding:6px 13px 6px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));background:var(--accent-bg);color:var(--accent);font-size:12.5px;font-weight:600;letter-spacing:.02em}.hero-title{margin:24px 0 0;font-family:var(--font-display);font-size:clamp(48px,6.4vw,96px);font-weight:600;line-height:.96;letter-spacing:-.018em;color:var(--text);text-wrap:balance}.hero-title em{display:block;font-style:italic;font-weight:500;padding-bottom:.08em;background:linear-gradient(100deg,var(--accent) 8%,color-mix(in srgb,var(--accent) 45%,var(--text)) 46%,var(--accent) 86%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:ink-sheen 10s ease-in-out infinite}[data-theme=contrast] .hero-title em{background:none;-webkit-text-fill-color:currentColor;color:var(--accent);animation:none}.hero-lead{margin:26px 0 0;max-width:540px;font-size:17.5px;line-height:1.62;color:var(--text-2)}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}.hero-actions .btn.lg{min-height:50px;padding:13px 24px}.hero-importing{display:inline-flex;align-items:center;gap:10px;margin-top:18px;color:var(--text-2);font-size:13px}.hero-art{position:relative;height:520px;perspective:1500px;perspective-origin:50% 30%;cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none}.hero-art:active{cursor:grabbing}.book-stage{position:absolute;inset:0;transform-style:preserve-3d;transform:scale(var(--fit, 1));transform-origin:50% 62%}.book-ring{position:absolute;inset:0;transform-style:preserve-3d;--rayon: 236px}.b3d{--w: 200px;--h: 292px;--t: 32px;position:absolute;left:50%;bottom:25%;width:var(--w);height:var(--h);margin-left:calc(var(--w) / -2);transform-style:preserve-3d;transform:rotateY(var(--slot, 0deg)) translateZ(var(--rayon)) rotateX(-3deg);animation:book-float 7.5s ease-in-out infinite;animation-delay:var(--float-delay, 0s)}.b3d-face{position:absolute;backface-visibility:hidden;filter:brightness(var(--lum, 1))}.b3d-front{inset:0;transform:translateZ(calc(var(--t) / 2));border-radius:2px 5px 5px 2px;overflow:hidden;box-shadow:inset 0 0 0 1px #0003}.b3d-back{inset:0;transform:rotateY(180deg) translateZ(calc(var(--t) / 2));border-radius:5px 2px 2px 5px;background:color-mix(in srgb,var(--cover-c, #3a2d22) 75%,#000)}.b3d-spine{top:0;height:100%;left:calc(50% - var(--t) / 2);width:var(--t);transform:rotateY(-90deg) translateZ(calc(var(--w) / 2));background:linear-gradient(90deg,#0000006b,#ffffff12 38%,#ffffff05 62%,#00000061),var(--cover-c, #3a2d22);display:flex;align-items:center;justify-content:center;overflow:hidden}.b3d-spine span{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--font-display);font-size:13px;font-weight:600;letter-spacing:.08em;color:#e6c487;white-space:nowrap;max-height:82%;overflow:hidden;text-overflow:ellipsis}.b3d-pages{top:3px;height:calc(100% - 6px);left:calc(50% - var(--t) / 2);width:var(--t);transform:rotateY(90deg) translateZ(calc(var(--w) / 2 - 4px));background:repeating-linear-gradient(90deg,#f1e8d6 0 1.5px,#ddd0b6 1.5px 2.4px)}.b3d-top{left:3px;width:calc(100% - 7px);top:calc(50% - var(--t) / 2);height:var(--t);transform:rotateX(90deg) translateZ(calc(var(--h) / 2 - 3px));background:repeating-linear-gradient(0deg,#f4ecdb 0 1.5px,#e0d3ba 1.5px 2.4px)}.hero-floor{position:absolute;left:50%;top:74%;width:520px;height:96px;margin-left:-260px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(0,0,0,.55),transparent 68%);filter:blur(12px);animation:floor-breathe 7.5s ease-in-out infinite}[data-theme=light] .hero-floor,[data-theme=sepia] .hero-floor{background:radial-gradient(ellipse at center,rgba(74,56,30,.32),transparent 68%)}[data-theme=contrast] .hero-floor{display:none}.cover{position:relative;width:100%;height:100%;overflow:hidden;container-type:inline-size;background-color:var(--cover-c, #3a2d22);background-image:linear-gradient(90deg,rgba(0,0,0,.38) 0,rgba(0,0,0,.08) 5%,rgba(255,255,255,.1) 6.5%,transparent 11%),radial-gradient(ellipse 90% 60% at 28% 18%,rgba(255,255,255,.16),transparent 62%),linear-gradient(180deg,#ffffff08,#00000047);color:#f4e9d4}.cover-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.cover.has-img:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.32) 0,rgba(0,0,0,.05) 5%,rgba(255,255,255,.12) 6.5%,transparent 11%);pointer-events:none}.cover-typo{position:absolute;inset:7% 7% 7% 11%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5cqw;padding:8cqw 6cqw;text-align:center;border:1px solid rgba(220,176,112,.55);outline:1px solid rgba(220,176,112,.22);outline-offset:2.2cqw}.cover-ornament{font-size:10cqw;line-height:1;color:#dcb070}.cover-title{font-family:var(--font-display);font-size:13.5cqw;font-weight:600;line-height:1.04;letter-spacing:.005em;text-wrap:balance;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.cover-rule{width:24cqw;height:1px;background:#dcb070;flex-shrink:0}.cover-author{font-family:var(--font-display);font-style:italic;font-size:8cqw;opacity:.88;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.cover.mini .cover-typo{display:none}.cover.mini{border-radius:1px 2px 2px 1px}.library{max-width:1240px;margin:0 auto;padding:8px 32px 56px}.section-head{display:flex;align-items:center;gap:14px;margin-bottom:28px}.section-head h2{margin:0;font-family:var(--font-display);font-size:34px;font-weight:600;letter-spacing:.005em;color:var(--text)}.section-head .count{padding:2px 10px;border-radius:999px;background:var(--bg-3);color:var(--text-2);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.section-head:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--border),transparent)}.shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:36px 26px}.shelf-book,.shelf-new{display:flex;flex-direction:column;gap:14px;background:none;border:0;padding:0;text-align:left;color:var(--text);cursor:pointer;font:inherit}.shelf-art{position:relative;aspect-ratio:2 / 3;perspective:900px}.shelf-art:before{content:"";position:absolute;inset:2.5% 1.5% 2.5% 3%;border-radius:1px 4px 4px 1px;background:repeating-linear-gradient(180deg,transparent 0 9px,rgba(60,45,25,.1) 9px 10px) 18% 16% / 66% 68% no-repeat,linear-gradient(90deg,#ddd1ba,#f6efe0 10%,#f6efe0);box-shadow:var(--elev-2)}.shelf-cover{position:absolute;inset:0;border-radius:2px 5px 5px 2px;overflow:hidden;transform-origin:left center;box-shadow:var(--elev-2);transition:transform .55s var(--ease-out),box-shadow .55s var(--ease-out)}.shelf-book:hover .shelf-cover,.shelf-book:focus-visible .shelf-cover{transform:rotateY(-32deg);box-shadow:18px 14px 30px -12px #0009,var(--elev-2)}.shelf-book:focus-visible{outline:none}.shelf-book:focus-visible .shelf-art{outline:2px solid var(--accent);outline-offset:4px;border-radius:3px}.shelf-meta{display:flex;flex-direction:column;gap:3px;min-width:0}.shelf-title{font-family:var(--font-display);font-size:19px;font-weight:600;line-height:1.15;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;transition:color .2s ease}.shelf-book:hover .shelf-title{color:var(--accent)}.shelf-author{font-size:13px;font-style:italic;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shelf-stats{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;margin-top:3px}.shelf-new .shelf-art{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border-radius:6px;border:1.5px dashed color-mix(in srgb,var(--accent) 45%,var(--border));color:var(--accent);background:color-mix(in srgb,var(--accent-bg) 50%,transparent);transition:background-color .25s ease,border-color .25s ease,transform .35s var(--ease-out)}.shelf-new .shelf-art:before{display:none}.shelf-new .shelf-art span{font-size:13px;font-weight:600}.shelf-new .plus{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent-bg);transition:transform .35s var(--ease-spring),background-color .25s ease}.shelf-new:hover .shelf-art{background:var(--accent-bg);border-color:var(--accent);transform:translateY(-3px)}.shelf-new:hover .plus{transform:rotate(90deg) scale(1.06);background:color-mix(in srgb,var(--accent) 22%,transparent)}.features{max-width:1240px;margin:0 auto;padding:8px 32px 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.feature{position:relative;overflow:hidden;padding:26px 24px 24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--elev-1),inset 0 1px 0 var(--hairline);transition:transform .4s var(--ease-out),border-color .3s ease,box-shadow .4s var(--ease-out)}.feature:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(360px circle at var(--mx, 50%) var(--my, 0%),var(--glow-strong),transparent 45%);opacity:0;transition:opacity .35s ease;pointer-events:none}.feature:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--accent) 40%,var(--border));box-shadow:var(--elev-2),inset 0 1px 0 var(--hairline)}.feature:hover:before{opacity:1}.feature>*{position:relative}.feature-num{position:absolute;top:14px;right:20px;font-family:var(--font-display);font-style:italic;font-size:38px;line-height:1;color:var(--border-2);transition:color .3s ease}.feature:hover .feature-num{color:color-mix(in srgb,var(--accent) 55%,var(--border-2))}.feature-icon{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:var(--accent-bg);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);color:var(--accent);transition:transform .4s var(--ease-spring)}.feature:hover .feature-icon{transform:rotate(-6deg) scale(1.06)}.feature h3{margin:18px 0 6px;font-family:var(--font-display);font-size:22px;font-weight:600;letter-spacing:.005em;color:var(--text)}.feature p{margin:0;color:var(--text-2);font-size:13.5px;line-height:1.6}.welcome-footer{max-width:1240px;margin:0 auto;padding:36px 32px 44px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 14px;color:var(--muted);font-size:12.5px}.welcome-footer .brand-name{font-size:17px;color:var(--text-2)}.welcome-footer .dot{opacity:.5}@media (max-width: 960px){.hero{grid-template-columns:1fr;text-align:center;padding:28px 24px 40px;min-height:0;gap:8px}.hero-lead{margin-inline:auto}.hero-actions{justify-content:center}.hero-art{height:420px;order:-1}}@media (max-width: 600px){.welcome-nav{padding:16px 18px 0}.hero{padding:8px 18px 32px}.hero-art{height:330px}.hero-actions .btn.lg{flex:1 1 100%}.library,.features{padding-left:18px;padding-right:18px}.shelf{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:26px 16px}.section-head h2{font-size:28px}}.mindmap-root{display:flex;flex-direction:column;width:100%;height:100%;background:var(--bg);position:relative}.mindmap-toolbar{display:flex;align-items:center;gap:6px;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--bg-2);flex-wrap:wrap}.mindmap-toolbar .btn.sm{padding:5px 9px;font-size:12px;gap:4px}.mindmap-toolbar .btn.on{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}.mindmap-toolbar .btn.primary{background:var(--accent-grad);color:var(--on-accent);border-color:transparent}.mindmap-toolbar .btn.primary:hover:not(:disabled){filter:brightness(1.08)}.mindmap-toolbar .btn:disabled{opacity:.45;cursor:not-allowed}.mm-sep{width:1px;height:18px;background:var(--border);margin:0 4px}.mindmap-hint{position:absolute;top:56px;left:50%;transform:translate(-50%);background:var(--accent);color:var(--on-accent);padding:6px 12px;border-radius:999px;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:500;box-shadow:var(--elev-2);z-index:5;animation:mm-pop .18s ease-out}.mindmap-hint .icon-btn{color:var(--on-accent)}.mindmap-error{margin:6px 12px 0;padding:6px 10px;background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger);border:1px solid var(--danger);border-radius:var(--radius-xs);font-size:12px}.mindmap-toast{position:absolute;bottom:16px;left:50%;transform:translate(-50%);background:var(--surface);border:1px solid var(--accent);color:var(--text);padding:8px 14px;border-radius:999px;font-size:12px;box-shadow:var(--elev-2);z-index:5;animation:mm-pop .2s ease-out}.mindmap-workspace{flex:1;display:flex;min-height:0;overflow:hidden}.mindmap-canvas{flex:1;position:relative;overflow:hidden;background:radial-gradient(circle,color-mix(in srgb,var(--border) 70%,transparent) 1px,transparent 1.5px) 0 0 / 22px 22px,var(--bg);touch-action:none}.mindmap-canvas svg{display:block;user-select:none}.mindmap-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-2);font-size:13px;text-align:center;padding:24px;pointer-events:none;max-width:420px;margin:0 auto}.mindmap-hint-bottom{position:absolute;bottom:8px;left:12px;background:color-mix(in srgb,var(--bg) 85%,transparent);padding:3px 8px;border-radius:4px;pointer-events:none}.mm-node-inner{display:flex;align-items:center;gap:8px;width:100%;height:100%;font-family:inherit;color:var(--text);position:relative}.mm-node-icon{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:color-mix(in srgb,currentColor 15%,transparent)}.mm-node-text{flex:1;min-width:0}.mm-node-label{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.mm-node-desc{font-size:10.5px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.mm-node-ai{position:absolute;top:-2px;right:-2px;background:var(--accent);color:var(--on-accent);width:14px;height:14px;border-radius:50%;display:flex;align-items:center;justify-content:center}.mm-edge{cursor:pointer}.mm-edge:hover path:nth-child(2){stroke-width:2.5}.mindmap-side{width:300px;flex-shrink:0;border-left:1px solid var(--border);background:var(--bg-2);overflow-y:auto}.mm-form{padding:14px;display:flex;flex-direction:column;gap:10px}.mm-form-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid var(--border);margin-bottom:4px}.mm-form-head strong{font-size:13px;color:var(--accent)}.mm-field{display:flex;flex-direction:column;gap:4px;font-size:12px}.mm-field span{color:var(--text-2);font-weight:500}.mm-field input,.mm-field select,.mm-field textarea{background-color:var(--surface);border:1px solid var(--border);color:var(--text);padding:6px 8px;border-radius:var(--radius-xs);font-family:inherit;font-size:12.5px;width:100%}.mm-field select{padding-right:28px}.mm-field textarea{resize:vertical;min-height:60px;line-height:1.45}.mm-field input:focus,.mm-field select:focus,.mm-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}@media (max-width: 800px){.mindmap-side{width:240px}}@media (max-width: 640px){.mindmap-workspace{flex-direction:column}.mindmap-side{width:100%;max-height:40%;border-left:0;border-top:1px solid var(--border)}}.storage-notice{position:fixed;left:18px;bottom:18px;z-index:150;display:flex;align-items:flex-start;gap:12px;max-width:min(520px,calc(100vw - 36px));padding:14px 14px 14px 16px;background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--elev-3),inset 0 1px 0 var(--hairline);animation:toast-in .6s var(--ease-out) .5s both}.storage-notice .sn-icon{flex-shrink:0;width:32px;height:32px;padding:7px;border-radius:50%;color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,transparent);box-sizing:border-box}.storage-notice .sn-body{flex:1;min-width:0}.storage-notice .sn-text{font-size:13px;line-height:1.5}.storage-notice .sn-help{margin-top:8px;padding:8px 10px;font-size:12px;line-height:1.45;background:var(--bg-2);border-radius:var(--radius-sm);color:var(--text-2)}.storage-notice .sn-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.storage-notice .sn-close{flex-shrink:0}@media (max-width: 600px){.storage-notice{left:8px;right:8px;bottom:8px;max-width:none}}.import-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:var(--scrim);backdrop-filter:blur(6px);animation:fade-in .2s ease both}.import-overlay-box{display:flex;align-items:center;gap:12px;padding:18px 24px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--elev-3);font-size:14px;animation:modal-in .35s var(--ease-out) both}.spinner{width:16px;height:16px;flex-shrink:0;border:2px solid var(--border-2);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.spin{animation:spin 1s linear infinite}.spin.inline{display:inline;vertical-align:middle}.rise{animation:rise .95s var(--ease-out) backwards;animation-delay:calc(var(--d, 0) * 85ms + 60ms)}@keyframes rise{0%{opacity:0;transform:translateY(20px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes slide-down{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@keyframes modal-in{0%{opacity:0;transform:translateY(14px) scale(.965)}to{opacity:1;transform:none}}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:none}}@keyframes toast-in{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}@keyframes page-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes book-float{0%,to{translate:0 0}50%{translate:0 -12px}}@keyframes floor-breathe{0%,to{transform:scale(1);opacity:1}50%{transform:scale(.9);opacity:.78}}@keyframes ink-sheen{0%,to{background-position:100% 0}50%{background-position:0% 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes mic-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.6)}}@keyframes mm-pop{0%{transform:translate(-50%,6px);opacity:0}to{transform:translate(-50%);opacity:1}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.b3d{animation:none}}@media print{body:before,body:after{display:none!important;content:none!important}body{background:#fff}.sidebar,.ai-panel,.topbar,.format-bar,.toolbar{display:none!important}.app{display:block}.writing-surface,.preview-surface{padding:0}.book-page{box-shadow:none;page-break-after:always}}.sb-cover{width:16px;height:23px;flex-shrink:0;display:inline-flex;box-shadow:var(--elev-1);border-radius:1px 2px 2px 1px;overflow:hidden}.icon-btn.on{color:var(--accent);background-color:var(--accent-bg)}.brand-home{background:none;border:0;padding:4px 8px 4px 0;margin:0;font:inherit;color:var(--text);cursor:pointer;border-radius:var(--radius-sm)}.brand-home .brand-name{transition:color .18s ease}.brand-home:hover .brand-name{color:var(--accent)}.brand-home .brand-mark{transition:transform .35s var(--ease-spring)}.brand-home:hover .brand-mark{transform:rotate(-8deg) scale(1.05)}.wg{display:inline-flex;align-items:center;gap:12px;min-width:0}.wg-goal,.wg-set{display:inline-flex;align-items:center;gap:8px;background:none;border:0;padding:2px 4px;margin:-2px 0;border-radius:var(--radius-xs);color:var(--muted);font:inherit;font-size:11.5px;cursor:pointer;transition:color .15s ease,background-color .15s ease}.wg-goal:hover,.wg-set:hover{color:var(--text);background:var(--hover)}.wg-set{color:var(--accent)}.wg-track{position:relative;width:120px;height:5px;border-radius:999px;background:var(--bg-3);overflow:hidden}.wg-fill{position:absolute;inset:0 auto 0 0;border-radius:inherit;background:var(--accent-grad);transition:width .6s var(--ease-out)}.wg-goal.done .wg-pct{color:var(--ok);font-weight:600}.wg-goal.done .wg-fill{background:var(--ok)}.wg-pct{font-variant-numeric:tabular-nums}.wg-today{color:var(--accent);font-weight:600}@container main (max-width: 640px){.wg-track{width:60px}.wg-today{display:none}}
