.product-root.is-reader{display:grid;place-items:stretch;min-width:0;min-height:100dvh;background:var(--canvas)}.mobile-app{position:relative;width:100vw;height:100svh;height:100dvh;margin:0;overflow:hidden}.reader-product-shell{color:var(--ink);background:var(--canvas);isolation:isolate}.mobile-route-content{position:relative;width:100%;min-height:100dvh;overflow:hidden;background:var(--canvas)}.mobile-route-surface{position:relative;width:100%;min-height:100dvh;background:var(--canvas)}.mobile-route-stage{position:absolute;top:0;right:0;bottom:0;left:0;min-height:100dvh;background:var(--canvas);transform-origin:center}.mobile-route-stage.is-route-forward{animation:mobile-route-forward var(--motion-route) var(--ease-motion-out)}.mobile-route-stage.is-route-backward{animation:mobile-route-backward var(--motion-route) var(--ease-motion-out)}.mobile-route-stage.is-route-fade{animation:mobile-route-fade var(--motion-state) var(--ease-motion-out)}@keyframes mobile-route-forward{0%{opacity:.3;transform:translate3d(12px,0,0)}to{opacity:1;transform:translateZ(0)}}@keyframes mobile-route-backward{0%{opacity:.3;transform:translate3d(-12px,0,0)}to{opacity:1;transform:translateZ(0)}}@keyframes mobile-route-fade{0%{opacity:0;transform:translate3d(0,6px,0)}to{opacity:1;transform:translateZ(0)}}.mobile-page{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;overflow:hidden;background:var(--canvas)}.mobile-topbar{position:relative;z-index:20;flex:0 0 calc(68px + env(safe-area-inset-top,0px));min-height:calc(68px + env(safe-area-inset-top,0px));display:flex;align-items:center;justify-content:space-between;gap:12px;padding:env(safe-area-inset-top,0px) max(20px,env(safe-area-inset-right,0px)) 0 max(20px,env(safe-area-inset-left,0px));background:color-mix(in oklch,var(--paper) 94%,transparent);border-bottom:1px solid var(--line)}.mobile-topbar .wordmark{padding:0;border:0;background:transparent;font-family:var(--display-font);font-size:25px;font-weight:600;letter-spacing:.08em}.topbar-actions,.reader-top-actions{display:flex;align-items:center;gap:2px}.search-trigger-icons{position:relative;width:26px;height:26px;display:block}.search-trigger-icons>svg{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;transition:opacity var(--motion-fast) var(--ease-motion-out),transform var(--motion-state) var(--ease-motion-out)}.search-trigger-close{opacity:0;transform:rotate(-42deg) scale(.72)}.search-trigger.is-active{color:var(--accent)}.search-trigger.is-active .search-trigger-search{opacity:0;transform:rotate(28deg) scale(.76)}.search-trigger.is-active .search-trigger-close{opacity:1;transform:rotate(0) scale(1)}.mini-avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;filter:saturate(.72)}.avatar-letter{display:grid;place-items:center;color:#f8f1e8;background:var(--accent);font-family:var(--display-font);font-size:14px}.centered-topbar{display:grid;grid-template-columns:44px 1fr 44px;text-align:center}.centered-topbar>strong{font-family:var(--display-font);font-size:18px;font-weight:500;letter-spacing:.12em}.directory-favorite-button{position:relative;overflow:visible}.favorite-mark{position:relative;width:28px;height:28px;display:block}.favorite-mark>svg{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto}.favorite-mark-outline{color:var(--ink);opacity:1;transform:translateZ(0) scale(1);transition:color var(--motion-fast) var(--ease-motion-out),opacity var(--motion-fast) var(--ease-motion-out),transform var(--motion-state) var(--ease-motion-out)}.favorite-mark-fill{color:var(--accent);clip-path:inset(100% 0 0 0);opacity:0;transform:translate3d(0,2px,0) scale(.92);transition:clip-path .34s var(--ease-motion-out),opacity var(--motion-fast) var(--ease-motion-out),transform .34s var(--ease-motion-out)}.favorite-mark.is-active .favorite-mark-outline{color:var(--accent);opacity:.22;transform:translateZ(0) scale(1.04)}.favorite-mark.is-active .favorite-mark-fill{clip-path:inset(0 0 0 0);opacity:1;transform:translateZ(0) scale(1)}.favorite-burst,.favorite-particle{position:absolute;pointer-events:none}.favorite-burst{z-index:3;inset:50% auto auto 50%;width:1px;height:1px}.favorite-burst:before{content:"";position:absolute;top:0;left:0;width:28px;height:28px;border:1px solid color-mix(in oklch,var(--accent) 78%,#a9783f);border-radius:50%;opacity:0;transform:translate3d(-50%,-50%,0) scale(.35);animation:favorite-ink-ring .48s var(--ease-motion-out) both}@keyframes favorite-ink-ring{0%{opacity:.7;transform:translate3d(-50%,-50%,0) scale(.35)}to{opacity:0;transform:translate3d(-50%,-50%,0) scale(1.75)}}.favorite-particle{top:0;left:0;color:var(--accent);opacity:0;transform:translate3d(-50%,-50%,0) scale(.2) rotate(0);animation:favorite-paper-spark .56s var(--ease-motion-out) var(--particle-delay) both;will-change:transform,opacity}.favorite-particle:nth-child(3n+2){color:#a9783f}.favorite-particle:nth-child(3n){color:color-mix(in oklch,var(--accent) 55%,var(--paper-deep))}@keyframes favorite-paper-spark{0%{opacity:0;transform:translate3d(-50%,-50%,0) scale(.2) rotate(0)}24%{opacity:.95}to{opacity:0;transform:translate3d(calc(-50% + var(--particle-x)),calc(-50% + var(--particle-y)),0) scale(1) rotate(var(--particle-rotate))}}.directory-favorite-button.is-error{animation:favorite-save-error .28s var(--ease-motion-out)}@keyframes favorite-save-error{0%,to{transform:translateZ(0)}28%{transform:translate3d(-3px,0,0)}58%{transform:translate3d(3px,0,0)}82%{transform:translate3d(-1px,0,0)}}.mobile-scroll{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-width:none;overscroll-behavior:contain;-ms-overflow-style:none}.mobile-scroll::-webkit-scrollbar{width:0;height:0;display:none}.mobile-bottom-nav{position:absolute;z-index:20;right:0;bottom:0;left:0;min-height:calc(70px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:repeat(3,1fr);padding:7px 15px max(8px,env(safe-area-inset-bottom,0px));background:color-mix(in oklch,var(--paper) 72%,var(--canvas));border-top:1px solid var(--line);box-shadow:0 -10px 26px #3a2e220b}.has-bottom-nav .mobile-page{padding-bottom:calc(70px + env(safe-area-inset-bottom,0px))}.mobile-nav-indicator{position:absolute;z-index:0;top:-1px;left:15px;width:calc((100% - 30px) / 3);height:3px;display:grid;place-items:center;pointer-events:none;transform:translate3d(calc(var(--nav-index) * 100%),0,0);transition:transform var(--motion-state) var(--ease-motion-out);will-change:transform}.mobile-nav-indicator:before{content:"";width:30px;height:2px;border-radius:0 0 999px 999px;background:var(--accent);box-shadow:0 3px 10px color-mix(in oklch,var(--accent) 20%,transparent)}.mobile-bottom-nav button{position:relative;z-index:1;min-width:56px;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;color:var(--muted);background:transparent;font-family:var(--display-font);font-size:12px;transition:color var(--motion-fast) var(--ease-motion-out),transform var(--motion-press) var(--ease-motion-out)}.mobile-bottom-nav button.is-active{color:var(--accent)}.mobile-bottom-nav button:not(:disabled):active{transform:scale(.95)}.mobile-nav-icon{position:relative;width:25px;height:25px;display:block;transition:transform var(--motion-state) var(--ease-motion-out)}.mobile-nav-icon>svg{position:absolute;top:0;right:0;bottom:0;left:0}.mobile-nav-icon-outline{opacity:1;transition:opacity var(--motion-fast) var(--ease-motion-out)}.mobile-nav-icon-fill{color:var(--accent);clip-path:inset(100% 0 0 0);opacity:0;transition:clip-path .32s var(--ease-motion-out),opacity var(--motion-fast) var(--ease-motion-out)}.mobile-bottom-nav button.is-active .mobile-nav-icon{transform:translate3d(0,-1px,0)}.mobile-bottom-nav button.is-active .mobile-nav-icon-outline{opacity:.2}.mobile-bottom-nav button.is-active .mobile-nav-icon-fill{clip-path:inset(0 0 0 0);opacity:1}.shelf-main{padding:25px 18px 18px}.shelf-content-grid{display:flex;flex-direction:column}.shelf-resume-column,.shelf-library-column{display:contents}.shelf-resume-heading,.continue-byline{display:none}.shelf-heading-row{order:1}.shelf-library-column>.mobile-search-presence{order:2}.shelf-resume-column>.reader-data-state,.shelf-resume-column>.continue-paper,.shelf-resume-column>.shelf-empty-state{order:3}.library-index{order:4}.library-collection{order:5}.shelf-heading-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:0 5px 22px}.shelf-heading-row h1{margin:0;font-family:var(--display-font);font-size:31px;font-weight:500;letter-spacing:.05em}.shelf-count{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-family:var(--display-font);font-size:13px;letter-spacing:.08em}.mobile-search-field{min-height:46px;display:flex;align-items:center;gap:10px;margin:-8px 0 20px;padding:0 14px;border:1px solid var(--line-strong);background:var(--paper)}.mobile-search-presence{display:grid;grid-template-rows:0fr;opacity:0;transform:translate3d(8px,-8px,0) scale(.985);transform-origin:top right;transition:grid-template-rows var(--motion-state) var(--ease-motion-out),opacity var(--motion-fast) var(--ease-motion-out),transform var(--motion-state) var(--ease-motion-out);will-change:transform,opacity}.reader-settings-menu::-webkit-scrollbar{display:none}.mobile-search-presence.is-open{grid-template-rows:1fr;opacity:1;transform:translateZ(0) scale(1)}.mobile-search-clip{min-height:0;overflow:hidden}.mobile-search-presence .mobile-search-field{transform-origin:right center;transition:border-color var(--motion-fast) var(--ease-motion-out),box-shadow var(--motion-state) var(--ease-motion-out)}.mobile-search-presence.is-open .mobile-search-field:focus-within{border-color:color-mix(in oklch,var(--accent) 54%,var(--line-strong));box-shadow:0 8px 22px #45322314}.mobile-search-field input{min-width:0;flex:1;border:0;outline:0;color:var(--ink);background:transparent}.continue-paper{position:relative;width:100%;min-height:218px;display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:20px;padding:30px 22px 22px;overflow:hidden;text-align:left;border:0;color:var(--ink);background:linear-gradient(110deg,color-mix(in oklch,var(--paper) 93%,white) 0%,var(--paper) 52%,color-mix(in oklch,var(--paper) 94%,#d8cdb9) 100%);box-shadow:0 22px 34px -22px #44372957,0 7px 12px -9px #44372938;transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s ease}.continue-paper:active{transform:translateY(1px) scale(.997)}.paper-clamp{position:absolute;z-index:2;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,color-mix(in oklch,var(--paper) 82%,#bdb3a3),color-mix(in oklch,var(--paper) 72%,#a99d8b) 48%,color-mix(in oklch,var(--paper) 84%,#c8beaf));box-shadow:none;opacity:.72}.continue-eyebrow{display:inline-flex;align-items:center;gap:7px;color:var(--accent);font-family:var(--display-font);font-size:14px;letter-spacing:.04em}.continue-copy{position:relative;z-index:1;min-width:0;min-height:162px;display:flex;flex-direction:column;align-items:flex-start}.continue-copy>strong{max-width:100%;display:-webkit-box;margin-top:13px;overflow:hidden;font-family:var(--display-font);font-size:clamp(24px,7vw,29px);font-weight:600;line-height:1.18;letter-spacing:.025em;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:3}.tactile-book-cover{position:relative;display:grid;place-items:center;isolation:isolate;color:var(--accent);filter:drop-shadow(0 10px 10px rgba(55,43,31,.16));transform-origin:left center}.tactile-book-face{position:absolute;z-index:2;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 78% 14%,rgba(255,255,255,.5),transparent 29%),color-mix(in oklch,var(--paper) 82%,#d9cfbc);border:1px solid color-mix(in oklch,var(--ink) 11%,transparent);border-radius:1px 3px 3px 1px;box-shadow:inset 1px 0 #ffffff73}.tactile-book-face img{width:calc(100% - 9px);height:100%;margin-left:9px;object-fit:cover}.tactile-book-pages{position:absolute;z-index:0;top:3px;right:-4px;bottom:3px;width:7px;background:repeating-linear-gradient(to bottom,color-mix(in oklch,var(--paper) 94%,#c8bcaa) 0,color-mix(in oklch,var(--paper) 94%,#c8bcaa) 2px,color-mix(in oklch,var(--ink) 7%,var(--paper)) 2px,color-mix(in oklch,var(--ink) 7%,var(--paper)) 3px);border:1px solid color-mix(in oklch,var(--ink) 10%,transparent);border-left:0;border-radius:0 2px 2px 0;transform:skewY(-.8deg)}.tactile-book-spine{position:absolute;z-index:3;inset:1px auto 1px 7px;width:2px;pointer-events:none;background:linear-gradient(to right,color-mix(in oklch,var(--ink) 15%,transparent),#ffffff47);box-shadow:2px 0 5px #3a2e2217}.continue-cover-frame{z-index:1;width:92px;height:136px;align-self:center}.is-book-transition-source{opacity:0!important}.book-entry-mask,.book-entry-transition{position:fixed;top:0;right:0;bottom:0;left:0}.book-entry-outgoing{position:fixed;z-index:1199;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;background:var(--canvas);isolation:isolate}.book-entry-mask{z-index:1200;opacity:0;pointer-events:auto;background:#18141194;transition:opacity .36s cubic-bezier(.22,1,.36,1);will-change:opacity}.book-entry-transition{z-index:1202;overflow:hidden;pointer-events:none;contain:layout paint}.book-entry-flight{position:absolute;z-index:2;left:var(--book-entry-left);top:var(--book-entry-top);width:var(--book-entry-width);height:var(--book-entry-height);opacity:1;perspective:1500px;transform:translateZ(0) scale(1);transform-origin:top left;transform-style:preserve-3d;transition:transform .38s cubic-bezier(.16,1,.3,1),opacity .15s ease;will-change:transform,opacity}.book-entry-cover{position:absolute;z-index:2;top:0;right:0;bottom:0;left:0;width:100%;height:100%;filter:drop-shadow(5px 9px 8px rgba(14,11,9,.28));transform:rotateY(0) translateZ(2px);transform-origin:left center;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.65,0,.35,1);will-change:transform}.book-entry-cover:after{content:"";position:absolute;z-index:5;top:0;right:0;bottom:0;left:0;background:linear-gradient(to right,rgba(42,34,27,.12),transparent 8%),color-mix(in oklch,var(--paper) 91%,#cfc3b1);border:1px solid color-mix(in oklch,var(--ink) 10%,transparent);backface-visibility:hidden;transform:rotateY(180deg) translateZ(1px)}.book-entry-mask.is-centered,.book-entry-mask.is-reader-ready,.book-entry-mask.is-opening-cover{opacity:1}.book-entry-transition.is-centered .book-entry-flight,.book-entry-transition.is-reader-ready .book-entry-flight{transform:translate3d(var(--book-entry-x),var(--book-entry-y),0) scale(var(--book-entry-scale-x),var(--book-entry-scale-y))}.book-entry-transition.is-opening-cover .book-entry-flight,.book-entry-transition.is-expanding-reader .book-entry-flight{transform:translate3d(var(--book-entry-open-x),var(--book-entry-y),0) scale(var(--book-entry-scale-x),var(--book-entry-scale-y))}.book-entry-transition.is-opening-cover .book-entry-cover,.book-entry-transition.is-expanding-reader .book-entry-cover{transform:rotateY(-164deg) translateZ(2px)}.book-entry-mask.is-expanding-reader{opacity:.14;transition-duration:.72s;transition-timing-function:cubic-bezier(.65,0,.35,1)}.book-entry-transition.is-expanding-reader .book-entry-flight{opacity:0;transition:opacity .22s ease-in}.book-entry-mask.is-exiting,.book-entry-transition.is-exiting .book-entry-flight{opacity:0}.has-book-entry-reader-ready .mobile-route-content,.has-book-entry-opening-cover .mobile-route-content,.has-book-entry-expanding-reader .mobile-route-content,.has-book-entry-exiting .mobile-route-content{position:fixed;z-index:1201;top:0;right:0;bottom:0;left:0;width:100vw;height:100dvh;min-height:0;overflow:hidden;pointer-events:none;background:var(--paper);box-shadow:0 24px 80px #130f0c52;transform-origin:top left;will-change:transform,opacity}.has-book-entry-reader-ready .mobile-route-content,.has-book-entry-opening-cover .mobile-route-content{transform:translate3d(var(--reader-page-x),var(--reader-page-y),0) scale(var(--reader-page-scale-x),var(--reader-page-scale-y))}.has-book-entry-reader-ready .mobile-route-content{opacity:0}.has-book-entry-opening-cover .mobile-route-content{opacity:1;transition:opacity .12s linear .18s}.has-book-entry-reader-ready .mobile-route-surface,.has-book-entry-opening-cover .mobile-route-surface{transform:scale(var(--reader-surface-scale-x),var(--reader-surface-scale-y));transform-origin:top center}.has-book-entry-expanding-reader .mobile-route-content{opacity:1;transform:translateZ(0) scale(1);transition:transform .72s cubic-bezier(.65,0,.35,1)}.has-book-entry-expanding-reader .mobile-route-surface{transform:scale(1);transition:transform .72s cubic-bezier(.65,0,.35,1)}.has-book-entry-exiting .mobile-route-content{opacity:1;transform:translateZ(0) scale(1);transition:none}.has-book-entry-exiting .mobile-route-surface{transform:scale(1);transition:none}@media(prefers-reduced-motion:reduce){.book-entry-mask,.book-entry-transition{display:none}}.continue-chapter{width:100%;margin-top:8px;overflow:hidden;color:var(--muted);font-family:var(--display-font);font-size:13px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.continue-footer{width:100%;display:grid;grid-template-columns:auto minmax(36px,1fr) auto;align-items:center;gap:9px;margin-top:auto;color:var(--accent)}.continue-footer .progress-track{width:100%}.continue-action{display:flex;align-items:center;gap:6px;font-family:var(--display-font);font-size:14px}.continue-action>span{width:30px;height:30px;display:grid;place-items:center;color:var(--paper);background:var(--accent);border-radius:50%}.paper-curl{position:absolute;right:0;bottom:0;width:40px;height:40px;background:linear-gradient(135deg,transparent 0 48%,color-mix(in oklch,var(--ink) 14%,transparent) 49%,color-mix(in oklch,var(--paper) 78%,#c9beac) 52%,color-mix(in oklch,var(--paper) 88%,#ddd5c7) 100%);clip-path:polygon(100% 0,100% 100%,0 100%);box-shadow:none;transform:none}.catalog-cover-fallback{display:grid;place-items:center;color:var(--accent);background:#ded6c8}.library-index{margin-top:30px;border-block:1px solid var(--line);background:transparent}.library-collection-heading small{color:var(--accent);font-size:11px;letter-spacing:.16em}.library-index-tabs{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.library-index-indicator{position:absolute;z-index:2;bottom:-1px;left:0;width:calc(100% / 3);height:2px;pointer-events:none;background:linear-gradient(90deg,transparent 14%,var(--accent) 28%,var(--accent) 72%,transparent 86%);transform:translate3d(calc(var(--library-index) * 100%),0,0);transition:transform var(--motion-state) var(--ease-motion-out);will-change:transform}.library-index-tabs button{position:relative;z-index:1;min-width:0;min-height:64px;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;padding:8px 6px;border:0;border-right:1px solid var(--line);color:var(--muted);background:transparent;transition:color var(--motion-fast) var(--ease-motion-out),background var(--motion-fast) var(--ease-motion-out),transform var(--motion-press) var(--ease-motion-out)}.library-index-tabs button:last-child{border-right:0}.library-index-tabs button.is-active{color:var(--accent);background:transparent}.library-index-tabs button:not(:disabled):active{transform:scale(.97)}.library-tab-icon{position:relative;width:21px;height:21px;flex:0 0 auto;transition:transform var(--motion-state) var(--ease-motion-out)}.library-tab-icon>svg{position:absolute;top:0;right:0;bottom:0;left:0}.library-tab-icon-outline{opacity:1;transition:opacity var(--motion-fast) var(--ease-motion-out)}.library-tab-icon-fill{clip-path:inset(100% 0 0 0);opacity:0;transition:clip-path .3s var(--ease-motion-out),opacity var(--motion-fast) var(--ease-motion-out)}.library-index-tabs button.is-active .library-tab-icon{transform:translate3d(0,-1px,0)}.library-index-tabs button.is-active .library-tab-icon-outline{opacity:.18}.library-index-tabs button.is-active .library-tab-icon-fill{clip-path:inset(0 0 0 0);opacity:1}.library-index-tabs button>span{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.library-index-tabs button strong{font-family:var(--display-font);font-size:13px;font-weight:500;white-space:nowrap}.library-index-tabs button small{color:inherit;font-size:10px;opacity:.7}.library-collection{margin-top:28px}.library-collection.is-entering-forward{animation:library-collection-forward var(--motion-state) var(--ease-motion-out) both}.library-collection.is-entering-backward{animation:library-collection-backward var(--motion-state) var(--ease-motion-out) both}@keyframes library-collection-forward{0%{opacity:.25;transform:translate3d(12px,0,0)}to{opacity:1;transform:translateZ(0)}}@keyframes library-collection-backward{0%{opacity:.25;transform:translate3d(-12px,0,0)}to{opacity:1;transform:translateZ(0)}}.library-collection-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 5px 16px}.library-collection-heading h2{margin:4px 0 0;font-family:var(--display-font);font-size:23px;font-weight:500}.library-collection-heading>span{color:var(--muted);font-family:var(--display-font);font-size:12px;letter-spacing:.06em}.library-book-grid{background:var(--paper);box-shadow:0 12px 23px #45372b1a}.library-book-card{width:100%;min-height:108px;display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:15px;padding:14px 14px 14px 16px;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;transition:background .16s ease,transform .22s cubic-bezier(.22,1,.36,1)}.library-book-card.is-search-result{animation:library-search-result var(--motion-state) var(--ease-motion-out) both;animation-delay:calc(var(--library-item-index) * 28ms)}@keyframes library-search-result{0%{opacity:0;transform:translate3d(0,8px,0)}to{opacity:1;transform:translateZ(0)}}.library-book-card:last-child{border-bottom:0}.library-book-cover-frame{width:54px;height:78px;filter:drop-shadow(0 7px 7px rgba(45,35,27,.15))}.library-book-copy{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}.library-book-copy>strong{width:100%;overflow:hidden;font-family:var(--display-font);font-size:18px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.library-book-copy>span,.library-book-copy>small{max-width:100%;overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.library-book-copy .library-book-progress{color:var(--accent);font-family:var(--display-font);font-size:12px}.library-book-actions{display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--faint)}.library-book-actions svg:first-child:not(:last-child){color:var(--accent)}.library-empty-state{grid-column:1 / -1}.library-empty-state button{min-height:40px;padding:0 14px;border:1px solid var(--line-strong);color:var(--accent);background:transparent;font-family:var(--display-font)}@media(hover:hover){.library-index-tabs button:hover{color:var(--ink);background:color-mix(in oklch,var(--paper) 60%,transparent)}.library-index-tabs button.is-active:hover{color:var(--accent)}.library-book-card:hover{background:color-mix(in oklch,var(--paper) 76%,#ddd3c3)}.library-book-card:hover{transform:translateY(-2px)}.library-book-card:hover .library-book-actions>svg:last-child{color:var(--accent)}}.empty-state{min-height:150px;display:grid;place-items:center;align-content:center;gap:8px;color:var(--muted)}.empty-state p{margin:0}.directory-main{padding:30px 12px 42px}.directory-layout{display:grid}.directory-book-column{min-width:0}.book-identity{display:grid;grid-template-columns:103px 1fr;gap:22px;align-items:start;padding:0 12px}.directory-cover-frame{width:103px;aspect-ratio:2 / 3;filter:drop-shadow(0 10px 10px rgba(51,41,31,.18))}.book-identity h1{margin:2px 0 8px;font-family:var(--display-font);font-size:29px;font-weight:600}.book-identity p{margin:6px 0;color:var(--muted);font-family:var(--display-font);font-size:13px;line-height:1.7}.book-identity .author{color:var(--ink);font-size:16px}.book-identity .book-type{color:var(--accent);font-size:14px}.directory-resume-card{position:relative;width:calc(100% - 24px);min-height:148px;display:block;margin:28px 12px;padding:27px 24px 22px;overflow:hidden;border:0;color:var(--ink);background:linear-gradient(110deg,color-mix(in oklch,var(--paper) 93%,white),var(--paper) 58%,color-mix(in oklch,var(--paper) 94%,#d8cdb9));box-shadow:0 22px 34px -22px #44372957,0 7px 12px -9px #44372938;text-align:left;transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s ease}.directory-resume-card:active{transform:translateY(1px) scale(.997)}.directory-resume-card:disabled{cursor:not-allowed;opacity:.64}.directory-resume-copy{position:relative;z-index:1;width:100%;display:flex;flex-direction:column;align-items:flex-start}.directory-resume-copy>strong{width:100%;margin-top:13px;overflow:hidden;font-family:var(--display-font);font-size:20px;font-weight:500;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.directory-resume-card .continue-footer{margin-top:24px;padding-top:17px;border-top:1px solid var(--line)}.chapter-paper{position:relative;overflow:hidden;background:var(--paper);box-shadow:0 13px 24px #3a2f2426}.chapter-paper>header,.next-volume{min-height:65px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;color:var(--accent);background:#eee9df;border:0;box-shadow:0 6px 12px #3a2f2421}.chapter-heading-copy{display:flex;flex-direction:column;gap:2px}.chapter-heading-copy>span{display:none;color:var(--muted);font-family:var(--display-font);font-size:11px;letter-spacing:.16em}.chapter-heading-meta{display:flex;align-items:center;gap:10px;color:var(--muted);font-family:var(--display-font);font-size:12px}.chapter-paper h2,.next-volume span{margin:0;font-family:var(--display-font);font-size:19px;font-weight:500}.chapter-list{padding:10px 14px 34px}.chapter-list button{width:100%;min-height:61px;display:grid;grid-template-columns:75px 1fr auto;align-items:center;gap:8px;padding:0 7px;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;font-family:var(--display-font)}.chapter-list button.is-current{color:var(--accent);border-bottom:2px solid var(--accent)}.chapter-list strong{font-size:16px;font-weight:500}.chapter-number,.chapter-access{color:var(--muted);font-size:12px}.is-current .chapter-number,.is-current .chapter-access,.chapter-access:not(:has(svg)){color:var(--accent)}.next-volume{width:100%;margin-top:10px;box-shadow:0 8px 17px #3a2f2424}.reader-page{--reader-bg: #f1eee7;--reader-paper: #f4f0e7;--reader-ease-out: cubic-bezier(.16, 1, .3, 1);--reader-ease-in: cubic-bezier(.7, 0, .84, 0);background:var(--reader-bg);transition:color .24s var(--reader-ease-out),background-color .3s var(--reader-ease-out)}.reader-page.mode-horizontal,.reader-page.mode-vertical{background:var(--reader-paper)}.reader-page.theme-eye{--reader-bg: #ddd3b8;--reader-paper: #e5dcc1}.reader-page.theme-dark{--reader-bg: #11110f;--reader-paper: #1b1a17;color:#d8d0c2}.fullpage-reader-header{position:relative;z-index:50;flex:0 0 88px;color:inherit;background:color-mix(in oklch,var(--reader-paper) 97%,transparent);border-bottom:1px solid var(--line);transition:background-color .3s var(--reader-ease-out),color .24s var(--reader-ease-out);animation:reader-header-enter .44s var(--reader-ease-out) both}.reader-header-inner{position:relative;width:min(100%,680px);height:100%;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;margin-inline:auto;padding-inline:14px}.reader-heading{min-width:0;display:flex;flex-direction:column;align-items:center;gap:5px;padding-inline:8px;font-family:var(--display-font);text-align:center;animation:reader-heading-next .42s var(--reader-ease-out) both}.reader-heading.is-previous{animation-name:reader-heading-previous}.reader-heading strong{overflow:hidden;font-size:20px;font-weight:550;letter-spacing:.14em;text-overflow:ellipsis;white-space:nowrap}.reader-heading span{max-width:100%;overflow:hidden;color:color-mix(in oklch,currentColor 69%,transparent);font-size:13px;letter-spacing:.08em;text-overflow:ellipsis;white-space:nowrap}.reader-settings-trigger.is-active{color:var(--accent);border-radius:50%;background:color-mix(in oklch,var(--accent) 8%,transparent)}.reader-settings-trigger svg{transition:transform .26s var(--reader-ease-out),color .18s var(--reader-ease-out)}.settings-open .reader-settings-trigger svg{transform:rotate(74deg)}.reader-settings-trigger:active{transform:scale(.92)}.reader-settings-layer{position:fixed;z-index:80;top:0;right:0;bottom:0;left:0;pointer-events:none}.reader-settings-layer.is-open{pointer-events:auto}.reader-settings-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:color-mix(in oklch,#2b261f 30%,transparent);opacity:0;pointer-events:none;transition:opacity .22s var(--reader-ease-out)}.reader-settings-layer.is-open .reader-settings-backdrop{opacity:1;pointer-events:auto}.reader-settings-menu{position:absolute;right:0;bottom:0;left:0;width:100%;max-height:min(76dvh,680px);padding:18px 20px max(22px,env(safe-area-inset-bottom));overflow-x:hidden;overflow-y:auto;color:inherit;background:var(--reader-paper);border:1px solid var(--line-strong);border-width:1px 0 0;border-radius:20px 20px 0 0;box-shadow:0 -18px 46px #2d251d33;opacity:0;transform:translate3d(0,24px,0);transform-origin:bottom center;pointer-events:none;transition:opacity .15s var(--reader-ease-in),transform .17s var(--reader-ease-in),background-color .3s var(--reader-ease-out);will-change:transform,opacity}.reader-settings-layer.is-open .reader-settings-menu{opacity:1;transform:translateZ(0);pointer-events:auto;transition-duration:.24s,.28s,.3s;transition-timing-function:var(--reader-ease-out)}.reader-settings-menu:before{content:none}.reader-settings-menu>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:14px}.reader-settings-menu>header,.reader-settings-tabs,.reader-settings-section{opacity:0;transform:translate3d(0,7px,0);transition:opacity 90ms var(--reader-ease-in),transform .11s var(--reader-ease-in)}.reader-settings-layer.is-open .reader-settings-menu>header,.reader-settings-layer.is-open .reader-settings-tabs,.reader-settings-layer.is-open .reader-settings-section{opacity:1;transform:translateZ(0);transition-duration:.21s;transition-timing-function:var(--reader-ease-out)}.reader-settings-layer.is-open .reader-settings-menu>header{transition-delay:55ms}.reader-settings-layer.is-open .reader-settings-tabs{transition-delay:80ms}.reader-settings-layer.is-open .reader-settings-section{transition-delay:.11s}.reader-settings-menu>header strong,.reader-setting-label{font-family:var(--display-font);font-weight:500}.reader-settings-menu>header strong{display:block;font-size:18px}.reader-settings-menu>header span{display:block;margin-top:4px;color:var(--muted);font-size:11px;white-space:nowrap}.reader-settings-close,.reader-directory-close{width:44px;height:44px;display:grid;flex:0 0 44px;place-items:center;padding:0;border:0;border-radius:50%;color:inherit;background:color-mix(in oklch,var(--reader-paper) 88%,var(--reader-bg))}.reader-settings-tabs{display:grid;grid-template-columns:repeat(2,1fr);padding:4px;border-radius:10px;background:color-mix(in oklch,var(--reader-paper) 82%,var(--reader-bg))}.reader-settings-tabs button{min-height:42px;border:0;border-radius:7px;color:var(--muted);background:transparent;font-family:var(--display-font);font-size:14px}.reader-settings-tabs button.is-active{color:var(--accent);background:var(--reader-paper);box-shadow:0 4px 12px #3a2e221a}.reader-settings-section{min-height:310px}.reader-setting-group{padding:12px 0 10px;border-bottom:1px solid var(--line)}.reader-setting-group:last-child{padding-bottom:0;border-bottom:0}.reader-setting-label{display:block;margin-bottom:9px;font-size:13px}.font-stepper{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:10px}.font-stepper button,.font-stepper output{height:44px;display:grid;place-items:center;font-family:var(--display-font)}.font-stepper button{padding:0;border:1px solid var(--line-strong);border-radius:5px;background:color-mix(in oklch,var(--reader-paper) 92%,var(--reader-bg));font-size:23px;line-height:1;transition:transform .11s var(--reader-ease-out),border-color .18s var(--reader-ease-out),background-color .18s var(--reader-ease-out)}.font-stepper button:active{transform:scale(.9);border-color:var(--accent)}.font-stepper output{font-size:15px;font-variant-numeric:tabular-nums}.reader-setting-options{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.reader-setting-options.two-options,.reader-mode-options{grid-template-columns:repeat(2,1fr)}.reader-mode-note{display:block;min-height:17px;margin-top:7px;color:var(--muted);font-size:11px;line-height:1.5}.reader-setting-options button{min-height:44px;padding:0 4px;border:0;border-bottom:2px solid transparent;border-radius:3px 3px 0 0;color:color-mix(in oklch,currentColor 76%,transparent);background:transparent;font-family:var(--display-font);font-size:13px;transition:color .18s var(--reader-ease-out),background-color .18s var(--reader-ease-out),transform .11s var(--reader-ease-out)}.reader-layout-settings{padding-top:8px}.reader-setting-range{display:block;padding:15px 0 13px;border-bottom:1px solid var(--line)}.reader-setting-range-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-family:var(--display-font)}.reader-setting-range-header strong{font-size:14px;font-weight:500}.reader-setting-range-header output{color:var(--accent);font-size:13px;font-variant-numeric:tabular-nums}.reader-setting-range input,.auto-reading-panel input{width:100%;height:34px;margin:5px 0 0;accent-color:var(--accent)}.reader-setting-range-scale,.auto-reading-speed-scale{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.reader-layout-reset{width:100%;min-height:44px;margin-top:14px;border:1px solid var(--line-strong);border-radius:8px;color:var(--muted);background:transparent;font-family:var(--display-font)}.reader-directory-layer{position:fixed;z-index:90;top:0;right:0;bottom:0;left:0;visibility:hidden;pointer-events:none;transition:visibility 0s linear .3s}.reader-directory-layer.is-open{visibility:visible;pointer-events:auto;transition-delay:0s}.reader-directory-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:color-mix(in oklch,#26221c 34%,transparent);opacity:0;transition:opacity .26s var(--reader-ease-out)}.reader-directory-layer.is-open .reader-directory-backdrop{opacity:1}.reader-directory-drawer{position:absolute;inset:0 auto 0 0;width:min(88vw,390px);display:grid;grid-template-rows:auto auto minmax(0,1fr);color:inherit;background:var(--reader-paper);border-right:1px solid var(--line-strong);box-shadow:18px 0 48px #2a221a38;transform:translate3d(-102%,0,0);transition:transform .3s var(--reader-ease-out),background-color .3s var(--reader-ease-out)}.reader-directory-layer.is-open .reader-directory-drawer{transform:translateZ(0)}.reader-directory-drawer>header{min-height:96px;display:grid;grid-template-columns:42px minmax(0,1fr) 44px;align-items:center;gap:12px;padding:max(18px,env(safe-area-inset-top)) 16px 14px;border-bottom:1px solid var(--line)}.reader-directory-bookmark{width:42px;height:54px;display:grid;place-items:center;color:var(--accent);background:color-mix(in oklch,var(--reader-paper) 78%,var(--reader-bg));border:1px solid var(--line);box-shadow:0 8px 18px #3a2e221a}.reader-directory-drawer>header div{min-width:0}.reader-directory-drawer>header strong,.reader-directory-drawer>header span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-directory-drawer>header strong{font-family:var(--display-font);font-size:18px;font-weight:550}.reader-directory-drawer>header span{margin-top:5px;color:var(--muted);font-size:11px}.reader-directory-toolbar{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 18px;color:var(--muted);border-bottom:1px solid var(--line);font-size:12px}.reader-directory-toolbar button{min-width:72px;min-height:44px;display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;padding:0;border:0;color:inherit;background:transparent;font-family:var(--display-font)}.reader-directory-list{min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.reader-directory-list::-webkit-scrollbar{display:none}.reader-directory-list>button{width:calc(100% - 28px);min-height:66px;display:grid;grid-template-columns:minmax(76px,auto) minmax(0,1fr) 38px;align-items:center;gap:10px;margin:0 14px;padding:0 4px;border:0;border-bottom:1px solid var(--line);color:inherit;background:transparent;text-align:left;content-visibility:auto;contain-intrinsic-size:auto 66px}.reader-directory-list>button span,.reader-directory-list>button small{color:var(--muted);font-size:11px}.reader-directory-list>button strong{overflow:hidden;font-family:var(--display-font);font-size:15px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.reader-directory-list>button small{color:var(--accent);text-align:right}.reader-directory-list>button.is-current{color:var(--accent);border-bottom-color:color-mix(in oklch,var(--accent) 46%,var(--line));background:color-mix(in oklch,var(--accent) 6%,transparent)}.reader-directory-state{min-height:140px;display:grid;place-items:center;padding:24px;color:var(--muted);text-align:center}.reader-directory-state.is-error{color:var(--danger, #9a3e33)}.auto-reading-control{position:fixed;z-index:46;right:0;bottom:max(18px,env(safe-area-inset-bottom));left:0;display:grid;justify-items:center;pointer-events:none}.auto-reading-pill{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 18px;border:1px solid color-mix(in oklch,var(--reader-paper) 64%,currentColor);border-radius:999px;color:#f3eee4;background:#777665;box-shadow:0 12px 32px #221e1833;font-family:var(--display-font);font-size:14px;pointer-events:auto;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.auto-reading-pill svg{transition:transform .18s var(--reader-ease-out)}.auto-reading-pill svg.is-active{transform:rotate(-90deg)}.auto-reading-pill svg.is-open{transform:rotate(90deg)}.auto-reading-panel{width:min(calc(100vw - 32px),380px);margin-bottom:10px;padding:18px;color:#f3eee4;background:#777665;border:1px solid rgba(243,238,228,.28);border-radius:16px;box-shadow:0 18px 44px #221e1842;pointer-events:auto;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.auto-reading-panel label>span:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-family:var(--display-font)}.auto-reading-panel output{font-variant-numeric:tabular-nums}.auto-reading-panel input{accent-color:#f3eee4}.auto-reading-speed-scale{color:#f3eee4b8}.auto-reading-stop{width:100%;min-height:48px;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;padding:0;border:0;border-top:1px solid rgba(243,238,228,.22);color:inherit;background:transparent;font-family:var(--display-font);font-size:15px}.reader-setting-options button.is-active{color:var(--accent);border-bottom-color:var(--accent);background:color-mix(in oklch,var(--accent) 7%,transparent)}.reader-setting-options button:active{transform:scale(.94)}.reader-chapter-strip{position:relative;z-index:20;flex:0 0 58px;width:100%;display:grid;grid-template-columns:repeat(3,1fr);align-items:stretch;margin-inline:auto;padding-inline:max(0px,calc((100% - 680px)/2));background:color-mix(in oklch,var(--reader-paper) 97%,transparent);border-bottom:1px solid var(--line);transition:background-color .3s var(--reader-ease-out),color .24s var(--reader-ease-out);animation:reader-navigation-enter .48s 70ms var(--reader-ease-out) both}.reader-chapter-strip button{min-width:0;display:grid;place-items:center;padding:0;border:0;background:transparent;font-family:var(--display-font);font-size:15px;letter-spacing:.08em;text-align:center;text-indent:.08em;transition:color .18s var(--reader-ease-out),transform .11s var(--reader-ease-out),background-color .18s var(--reader-ease-out)}.reader-chapter-strip button.is-directory{color:var(--accent)}.reader-chapter-strip button:active{transform:scale(.965);background:color-mix(in oklch,var(--accent) 6%,transparent)}.reader-chapter-strip button:disabled{color:color-mix(in oklch,currentColor 48%,transparent);cursor:default}.reader-stage{position:relative;flex:1;min-height:0;padding-top:0;overflow:hidden;background:var(--reader-bg);transition:background-color .3s var(--reader-ease-out);animation:reader-paper-enter .56s .11s var(--reader-ease-out) both;isolation:isolate}.mode-horizontal .reader-stage,.mode-vertical .reader-stage{background:var(--reader-paper)}.reader-mode-stage{position:relative;width:100%;height:100%;overflow:hidden}.suppress-reader-entrance .fullpage-reader-header,.suppress-reader-entrance .reader-heading,.suppress-reader-entrance .reader-chapter-strip,.suppress-reader-entrance .reader-stage{animation:none}.reader-mode-stage.motion-mode{animation:reader-mode-enter .36s var(--reader-ease-out) both}.chapter-slide-surface{position:absolute;z-index:12;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;background:var(--reader-paper);contain:layout paint;will-change:transform}.chapter-slide-surface.is-next{animation:chapter-surface-leave-next .48s linear both}.chapter-slide-surface.is-previous{animation:chapter-surface-leave-previous .48s linear both}.policy-switch{width:48px;height:27px;padding:3px;border:0;border-radius:20px;background:var(--accent)}.policy-switch span{display:block;width:21px;height:21px;border-radius:50%;background:var(--paper);transform:translate(21px);transition:transform .18s ease}.policy-switch:not(.is-on) span{transform:translate(0)}.text-reader{--reader-page-edge: 18px;--reader-padding-top: 42px;--reader-user-margin: 32px;--reader-padding-inline: var(--reader-user-margin);--reader-padding-bottom: 54px;position:relative;width:100%;height:100%;padding:0;overflow:hidden;color:inherit;background:var(--reader-paper);font-family:var(--display-font);cursor:pointer;touch-action:pan-y pinch-zoom;overscroll-behavior:none;perspective:1800px;user-select:none;-webkit-user-select:none;transition:background-color .3s var(--reader-ease-out),color .24s var(--reader-ease-out)}.text-page-base{position:relative;z-index:1;width:100%;height:100%}.text-page-viewport{width:100%;height:100%;overflow:hidden}.text-page-flow{width:var(--text-page-width, 100%);height:100%;column-width:var(--text-page-width, 100%);column-gap:var(--text-page-gap, 32px);column-fill:auto}.text-page-flow p{margin:0 0 var(--reader-paragraph-gap, 1.2em);font-size:calc(17px * var(--reader-font-scale));line-height:var(--reader-line-height, 1.92);letter-spacing:.015em;text-align:justify;text-indent:2em;orphans:2;widows:2}.vertical-text-reader{position:relative;width:100%;height:100%;padding:0;overflow-x:hidden;overflow-y:auto;color:inherit;background:var(--reader-paper);font-family:var(--display-font);touch-action:pan-y pinch-zoom;overscroll-behavior:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.vertical-text-reader::-webkit-scrollbar{display:none}.vertical-text-content{width:min(100%,680px);min-height:100%;margin-inline:auto;padding:38px var(--reader-user-margin, 32px) 96px}.vertical-text-content p{margin:0 0 var(--reader-paragraph-gap, 1.2em);font-size:calc(17px * var(--reader-font-scale));line-height:var(--reader-line-height, 1.92);letter-spacing:.015em;text-align:justify;text-indent:2em;overflow-wrap:anywhere}.vertical-reading-progress{position:sticky;z-index:4;left:100%;bottom:20px;display:block;width:max-content;margin:-56px 24px 20px auto;padding:5px 8px;color:var(--accent);background:color-mix(in oklch,var(--reader-paper) 88%,transparent);font-size:11px;letter-spacing:.08em;pointer-events:none}.text-reader-measure{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;padding:var(--reader-padding-top) var(--reader-padding-inline) var(--reader-padding-bottom);overflow:hidden;visibility:hidden;pointer-events:none;contain:strict}.text-reader-measure-viewport{width:100%;height:100%}.dom-pageflip-shell,.dom-pageflip-book{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.dom-pageflip-shell{z-index:2;overflow:hidden;isolation:isolate;touch-action:pan-y pinch-zoom;contain:strict}.dom-pageflip-book.stf__parent{min-width:0!important;min-height:0!important;width:100%!important;max-width:none!important;height:100%!important}.dom-pageflip-book .stf__wrapper,.dom-pageflip-book .stf__block{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;box-sizing:border-box}.dom-pageflip-book .stf__wrapper{overflow:visible}.dom-pageflip-book .stf__block{overflow:hidden;perspective:2200px}.dom-flip-page{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;box-sizing:border-box!important;padding:var(--reader-padding-top) var(--reader-padding-inline) var(--reader-padding-bottom);overflow:hidden;color:inherit;background:radial-gradient(circle at 17% 8%,color-mix(in oklch,var(--reader-paper) 96%,white) 0 .5px,transparent .8px),linear-gradient(100deg,color-mix(in oklch,var(--reader-paper) 97%,white),var(--reader-paper) 46%,color-mix(in oklch,var(--reader-paper) 98%,#866f50) 100%);background-size:11px 13px,100% 100%;font-family:var(--display-font);backface-visibility:hidden;-webkit-backface-visibility:hidden;transform-style:preserve-3d;contain:paint}.dom-flip-page:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;box-shadow:inset -1px 0 color-mix(in oklch,currentColor 8%,transparent),inset 0 1px color-mix(in oklch,white 22%,transparent);content:"";pointer-events:none}.dom-flip-page>.text-page-viewport{position:relative;z-index:1}.dom-pageflip-book:not(.stf__parent) .dom-flip-page:not(:first-child){display:none}.dom-pageflip-book .stf__outerShadow,.dom-pageflip-book .stf__innerShadow,.dom-pageflip-book .stf__hardShadow,.dom-pageflip-book .stf__hardInnerShadow{opacity:.78;pointer-events:none;mix-blend-mode:multiply;filter:sepia(.14) saturate(.72);will-change:transform,clip-path,opacity}.text-page-progress{position:absolute;z-index:20;left:50%;bottom:24px;min-width:44px;color:color-mix(in oklch,currentColor 54%,transparent);font-size:11px;letter-spacing:.12em;text-align:center;transform:translate(-50%);pointer-events:none}.text-page-progress-value{display:inline-block;animation:reader-progress-settle .26s var(--reader-ease-out) both}.text-chapter-progress{position:absolute;z-index:20;left:32px;bottom:22px;color:var(--accent);font-family:var(--display-font);font-size:12px;letter-spacing:.08em;pointer-events:none}@keyframes reader-header-enter{0%{opacity:0;transform:translate3d(0,-14px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes reader-navigation-enter{0%{opacity:0;transform:translate3d(0,-9px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes reader-paper-enter{0%{opacity:0;transform:translate3d(0,14px,0) scaleX(.982)}to{opacity:1;transform:translateZ(0) scaleX(1)}}@keyframes reader-heading-next{0%{opacity:0;transform:translate3d(10px,0,0)}to{opacity:1;transform:translateZ(0)}}@keyframes reader-heading-previous{0%{opacity:0;transform:translate3d(-10px,0,0)}to{opacity:1;transform:translateZ(0)}}@keyframes reader-mode-enter{0%{opacity:0;transform:translate3d(0,9px,0) scale(.992)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes chapter-surface-leave-next{0%{transform:translateZ(0)}to{transform:translate3d(-101%,-3px,0)}}@keyframes chapter-surface-leave-previous{0%{transform:translateZ(0)}to{transform:translate3d(101%,-3px,0)}}@keyframes reader-progress-settle{0%{opacity:0;transform:translate3d(0,5px,0)}to{opacity:1;transform:translateZ(0)}}@media(prefers-reduced-motion:reduce){.continue-paper,.mobile-route-stage,.mobile-search-presence,.mobile-search-field,.search-trigger-icons>svg,.mobile-nav-indicator,.mobile-bottom-nav button,.mobile-nav-icon,.mobile-nav-icon-outline,.mobile-nav-icon-fill,.library-index-indicator,.library-index-tabs button,.library-tab-icon,.library-tab-icon-outline,.library-tab-icon-fill,.library-collection,.library-book-card,.favorite-mark-outline,.favorite-mark-fill,.directory-favorite-button,.reader-page,.fullpage-reader-header,.reader-heading,.reader-chapter-strip,.reader-stage,.reader-mode-stage,.reader-settings-menu,.reader-settings-menu>header,.reader-setting-group,.reader-settings-trigger svg,.reader-settings-backdrop,.reader-directory-backdrop,.reader-directory-drawer,.auto-reading-pill svg,.text-page-flow,.text-page-progress-value{animation:none!important;transition-duration:.01ms!important;transition-delay:0ms!important}.favorite-burst{display:none!important}.chapter-slide-surface{display:none}.dom-pageflip-book .stf__outerShadow,.dom-pageflip-book .stf__innerShadow,.dom-pageflip-book .stf__hardShadow,.dom-pageflip-book .stf__hardInnerShadow{display:none!important}}@media(hover:hover){.continue-paper:hover{box-shadow:0 26px 38px -23px #44372961,0 9px 14px -10px #4437293d;transform:translateY(-2px)}}@media(max-width:359px){.shelf-main{padding-inline:14px}.continue-paper{grid-template-columns:76px minmax(0,1fr);gap:14px;padding:27px 16px 18px}.continue-cover-frame{width:76px;height:112px}.continue-copy{min-height:150px}.continue-copy>strong{font-size:22px}.continue-action{font-size:0}}.discover-main,.profile-main{padding:52px 24px 48px}.section-kicker,.eyebrow{color:var(--accent);font-family:var(--display-font);font-size:13px;letter-spacing:.12em}.discover-main h1{margin:12px 0 18px;font-family:var(--display-font);font-size:34px;font-weight:600}.discover-main>p:not(.eyebrow){color:var(--muted);font-family:var(--display-font);line-height:1.9}.discover-main h2{margin:10px 0 8px;font-family:var(--display-font);font-size:25px;font-weight:500}.discover-search{min-height:48px;display:flex;align-items:center;gap:10px;margin:24px 0;padding:0 15px;border:1px solid var(--line);background:var(--paper)}.discover-search input{min-width:0;flex:1;border:0;outline:0;color:var(--ink);background:transparent}.catalog-grid{display:grid;gap:12px}.catalog-card{width:100%;min-height:138px;display:grid;grid-template-columns:78px minmax(0,1fr) auto;align-items:center;gap:17px;padding:15px;border:0;color:var(--ink);background:var(--paper);box-shadow:0 10px 20px #3a2f241a;text-align:left}.catalog-card>img,.catalog-cover-fallback{width:78px;aspect-ratio:2 / 3;object-fit:cover;box-shadow:0 6px 12px #2d231b29}.catalog-card>span:nth-child(2){min-width:0;display:flex;flex-direction:column;gap:4px}.catalog-card small{color:var(--accent);font-size:11px}.catalog-card strong{font-family:var(--display-font);font-size:20px;font-weight:500}.catalog-card em{color:var(--muted);font-style:normal;font-size:12px}.catalog-card p{display:-webkit-box;margin:4px 0 0;overflow:hidden;color:var(--muted);font-size:11px;line-height:1.6;-webkit-box-orient:vertical;-webkit-line-clamp:2}.profile-main{text-align:center}.profile-avatar{width:92px;height:92px;border-radius:50%;object-fit:cover;filter:saturate(.74)}.profile-avatar-letter{display:grid;place-items:center;margin-inline:auto;color:#f8f1e8;background:var(--accent);font-family:var(--display-font);font-size:36px}.profile-main h1{margin:17px 0 6px;font-family:var(--display-font);font-size:29px;font-weight:600}.profile-main>p{color:var(--muted);font-size:13px}.profile-ledger{margin-top:38px;background:var(--paper);box-shadow:0 12px 24px #3a2f241f}.profile-ledger button{width:100%;min-height:62px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:0 18px;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent}.profile-ledger button:last-child{border-bottom:0}.profile-note{margin-top:22px;line-height:1.7}@media(min-width:760px){.reader-settings-layer.is-open{pointer-events:none}.reader-settings-backdrop{display:none}.reader-settings-menu{top:76px;right:max(12px,calc((100vw - 680px)/2));bottom:auto;left:auto;width:304px;max-height:min(720px,calc(100dvh - 92px));padding:16px;border-width:1px;border-radius:10px;box-shadow:0 18px 42px #2d251d33,0 3px 9px #2d251d1a;transform:translate3d(0,-10px,0) scale(.97);transform-origin:calc(100% - 30px) top}.reader-settings-layer.is-open .reader-settings-menu{transform:translateZ(0) scale(1)}.reader-settings-menu:before{content:"";position:absolute;top:-7px;right:24px;width:13px;height:13px;background:var(--reader-paper);border-top:1px solid var(--line-strong);border-left:1px solid var(--line-strong);transform:rotate(45deg)}.reader-settings-close{display:none}.reader-settings-section{min-height:308px}.reader-directory-drawer{width:min(420px,42vw)}.auto-reading-control{bottom:28px}.product-root.is-reader{place-items:stretch;padding:0;background:var(--canvas)}.mobile-app{width:100vw;height:100dvh;max-width:none;box-shadow:none}.mobile-topbar{padding-inline:max(24px,calc((100% - 1280px)/2))}.mobile-bottom-nav{position:fixed;left:50%;right:auto;bottom:18px;width:min(420px,calc(100vw - 48px));min-height:60px;flex-basis:60px;padding:4px 12px;border:1px solid var(--line);border-radius:999px;background:color-mix(in oklch,var(--paper) 90%,transparent);box-shadow:0 14px 36px #3a2e2229;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transform:translate(-50%)}.mobile-bottom-nav button{min-height:50px;flex-direction:row;gap:7px;border-radius:999px;font-size:13px}.mobile-bottom-nav button.is-active{background:transparent}.shelf-main,.directory-main,.discover-main,.profile-main{width:min(calc(100% - 64px),1180px);margin-inline:auto}.shelf-main{width:min(calc(100% - 64px),760px);padding-top:40px;padding-bottom:112px}.shelf-heading-row{margin:0 4px 24px}.shelf-heading-row h1{font-size:34px}.continue-paper{min-height:248px;grid-template-columns:112px minmax(0,1fr);gap:28px;padding:34px 32px 28px}.continue-cover-frame{width:108px;height:158px}.continue-copy{min-height:174px}.continue-copy>strong{font-size:31px}.discover-main,.profile-main{padding-bottom:112px}.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.directory-main{padding-inline:40px}.text-reader{--reader-page-edge: max(18px, calc((100% - 680px)/2 + 18px) );--reader-padding-inline: max(var(--reader-user-margin), calc((100% - 680px) / 2 + var(--reader-user-margin)));width:100%;margin-inline:0}.text-chapter-progress{left:max(32px,calc((100% - 680px)/2 + 32px))}.reader-settings-menu{right:0}}@media(min-width:1024px){.shelf-main{width:min(calc(100% - 96px),1280px);padding:clamp(42px,6vh,64px) 0 112px}.directory-main{width:min(calc(100% - 96px),1280px);padding:clamp(42px,6vh,64px) 0 96px}.directory-layout{grid-template-columns:clamp(290px,25vw,340px) minmax(0,1fr);gap:clamp(44px,5vw,72px);align-items:start}.directory-book-column{min-height:calc(100dvh - 190px);padding-right:clamp(32px,3.4vw,48px);border-right:1px solid var(--line)}.book-identity{display:flex;flex-direction:column;gap:0;padding:0}.directory-cover-frame{width:min(100%,238px);aspect-ratio:2 / 3;align-self:flex-start;filter:drop-shadow(0 22px 20px rgba(51,41,31,.2))}.book-identity-copy{margin-top:28px}.book-identity h1{margin:0 0 10px;font-size:clamp(30px,2.6vw,38px);line-height:1.15}.book-identity .author{font-size:15px}.book-identity p:last-child{margin-top:16px;font-size:13px;line-height:1.9}.directory-resume-card{width:100%;min-height:0;margin:28px 0 0;padding:24px 0 0;overflow:visible;border-top:1px solid var(--line-strong);background:transparent;box-shadow:none}.directory-resume-card .paper-clamp,.directory-resume-card .paper-curl{display:none}.directory-resume-copy>strong{margin-top:10px;font-size:17px}.directory-resume-card .continue-footer{margin-top:20px;padding-top:16px}.directory-resume-card:hover{transform:none}.directory-resume-card:hover .continue-action>span{transform:translate(3px)}.chapter-paper{overflow:visible;background:transparent;box-shadow:none}.chapter-paper>header{min-height:68px;padding:0 4px 15px;color:var(--ink);background:transparent;border-bottom:1px solid var(--line-strong);box-shadow:none}.chapter-heading-copy{gap:5px}.chapter-heading-copy>span{display:block;color:var(--accent)}.chapter-paper h2{font-size:clamp(31px,2.6vw,39px);line-height:1.1}.chapter-heading-meta{margin-bottom:3px;padding-left:18px;border-left:1px solid var(--line)}.chapter-list{padding:18px 0 40px}.chapter-list button{min-height:74px;grid-template-columns:92px minmax(0,1fr) auto;padding:0 14px;transition:color .18s ease,background .18s ease,transform .22s cubic-bezier(.22,1,.36,1)}.chapter-list button:hover{color:var(--accent);background:color-mix(in oklch,var(--paper) 72%,transparent);transform:translate(3px)}.chapter-list strong{font-size:17px}.chapter-number,.chapter-access{font-size:13px}.chapter-paper>.paper-curl{display:none}.shelf-content-grid{display:grid;grid-template-columns:clamp(280px,25vw,340px) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);column-gap:clamp(44px,5vw,72px);row-gap:26px;align-content:start}.shelf-heading-row{grid-column:2;grid-row:1;min-height:68px;align-items:flex-end;gap:24px;margin:0;padding-bottom:15px;border-bottom:1px solid var(--line-strong)}.shelf-heading-row h1{font-size:clamp(38px,3.1vw,48px);line-height:1;letter-spacing:.025em}.shelf-count{gap:7px;margin-bottom:4px;padding-left:18px;border-left:1px solid var(--line);font-size:13px}.shelf-resume-column{grid-column:1;grid-row:1 / span 2;min-width:0;display:flex;flex-direction:column;align-items:stretch;padding-right:clamp(32px,3.4vw,48px);border-right:1px solid var(--line)}.shelf-resume-heading{min-height:68px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding-bottom:16px;color:var(--accent);border-bottom:1px solid var(--line-strong);font-family:var(--display-font);letter-spacing:.12em}.shelf-resume-heading>span{font-size:14px}.shelf-resume-heading>small{color:var(--muted);font-size:11px;letter-spacing:.06em}.shelf-resume-column>.reader-data-state,.shelf-resume-column>.shelf-empty-state{min-height:420px;margin-top:28px}.continue-paper{min-height:0;display:flex;flex-direction:column;align-items:stretch;gap:0;margin-top:30px;padding:0 0 30px;overflow:visible;background:transparent;box-shadow:none}.continue-paper .paper-clamp,.continue-paper .paper-curl{display:none}.continue-cover-frame{width:min(100%,252px);height:auto;aspect-ratio:2 / 3;align-self:flex-start;box-shadow:-5px 0 color-mix(in oklch,var(--paper) 74%,#a99d8b),0 24px 38px -22px #372b1f7a}.continue-copy{width:100%;min-height:0;margin-top:28px}.continue-copy>strong{margin-top:11px;font-size:clamp(29px,2.35vw,36px);line-height:1.2;-webkit-line-clamp:3}.continue-byline{width:100%;display:block;margin-top:11px;overflow:hidden;color:var(--muted);font-family:var(--display-font);font-size:13px;letter-spacing:.05em;text-overflow:ellipsis;white-space:nowrap}.continue-chapter{margin-top:7px;font-size:13px}.continue-footer{grid-template-columns:auto minmax(36px,1fr) auto;gap:11px;margin-top:28px;padding-top:18px;border-top:1px solid var(--line)}.continue-action{font-size:14px}.continue-paper:hover{box-shadow:none;transform:none}.continue-paper:hover .continue-action>span{transform:translate(3px)}.continue-action>span{transition:transform .22s cubic-bezier(.22,1,.36,1)}.shelf-library-column{grid-column:2;grid-row:2;min-width:0;display:flex;flex-direction:column}.shelf-library-column .mobile-search-field{margin:0 0 18px;background:color-mix(in oklch,var(--paper) 72%,transparent)}.library-index{min-height:70px;margin-top:0;border-top:0}.library-index-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.library-index-tabs button{min-height:70px;flex-direction:row;justify-content:flex-start;gap:12px;padding:0 clamp(14px,2vw,24px);border-right:1px solid var(--line);border-bottom:0;text-align:left}.library-index-tabs button>span{align-items:flex-start;gap:1px}.library-index-tabs button strong{font-size:15px}.library-collection{margin-top:34px}.library-collection-heading{margin:0 0 14px}.library-collection-heading h2{font-size:29px}.library-book-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(22px,3vw,38px);row-gap:0;background:transparent;box-shadow:none}.library-book-card{min-height:140px;grid-template-columns:68px minmax(0,1fr) auto;gap:18px;padding:18px 4px;border:0;border-top:1px solid var(--line);background:transparent;box-shadow:none}.library-book-cover-frame{width:68px;height:100px}.library-book-copy>strong{font-size:20px}.library-book-copy>span,.library-book-copy>small{font-size:12px}.library-book-card:hover{background:transparent;transform:translate(4px)}.library-empty-state{min-height:220px;border-top:1px solid var(--line)}}.product-root.is-admin{min-height:100dvh;background:var(--canvas)}.admin-app{min-height:760px;height:100dvh;display:grid;grid-template-columns:190px minmax(0,1fr);overflow:hidden;color:var(--ink);background:var(--canvas)}.admin-sidebar{min-width:0;display:flex;flex-direction:column;border-right:1px solid var(--line);background:#ede8df}.admin-brand{min-height:99px;padding:0 28px;border:0;border-bottom:1px solid var(--line);background:transparent;font-family:var(--display-font);font-size:20px;font-weight:600;letter-spacing:.07em;text-align:left}.admin-sidebar nav{padding-top:18px}.admin-sidebar nav section{margin-bottom:25px}.admin-sidebar nav section>p{margin:0 0 6px;padding:0 27px;color:var(--muted);font-family:var(--display-font);font-size:12px;letter-spacing:.12em}.admin-sidebar nav button,.back-to-reader{position:relative;width:calc(100% - 14px);min-height:51px;display:flex;align-items:center;gap:12px;margin:0 7px;padding:0 20px;border:0;color:var(--muted);background:transparent;font-family:var(--display-font);font-size:15px;text-align:left}.admin-sidebar nav button.is-active{color:var(--accent);background:#f2ede5}.admin-sidebar nav button.is-active:after{content:"";position:absolute;top:0;right:-7px;bottom:0;width:3px;background:var(--accent)}.admin-sidebar .settings-link{margin-top:18px}.back-to-reader{margin-top:auto;margin-bottom:20px;font-family:var(--ui-font);font-size:12px}.admin-workspace{min-width:0;height:100%;display:flex;flex-direction:column;overflow:hidden}.admin-header{flex:0 0 99px;min-height:99px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 38px;border-bottom:1px solid var(--line);background:#f5f1e9}.admin-header h1{margin:0;font-family:var(--display-font);font-size:27px;font-weight:500;letter-spacing:.05em}.admin-header-actions{display:flex;align-items:center;gap:13px}.primary-button,.secondary-button{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 23px;border:1px solid var(--line-strong);color:var(--ink);background:transparent;font-family:var(--display-font)}.primary-button{border-color:var(--accent);color:#f7eee5;background:var(--accent)}.primary-button:hover{background:var(--accent-deep)}.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.48}.secondary-button.danger{border-color:color-mix(in oklch,var(--danger) 55%,transparent);color:var(--danger)}.primary-button.danger{border-color:var(--danger);background:var(--danger)}.primary-button.danger:hover:not(:disabled){background:color-mix(in oklch,var(--danger) 84%,black)}.upload-workbench{flex:1;min-height:0;display:grid;grid-template-columns:minmax(540px,1.08fr) minmax(430px,.92fr);overflow:hidden}.upload-editor{min-width:0;padding:22px 40px 30px;overflow-y:auto;border-right:1px solid var(--line)}.file-summary,.parse-success{min-height:60px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 14px;border:1px solid var(--line);background:#f3efe8}.file-summary span,.file-summary button,.parse-success span{display:flex;align-items:center;gap:8px}.file-summary button{min-height:42px;border:0;color:var(--accent);background:transparent}.parse-success{min-height:50px;margin-top:11px;color:var(--positive);background:#e5ece2}.parse-success span:last-child{color:var(--muted)}.metadata-grid{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:32px;margin-top:23px}.metadata-fields{display:grid;gap:14px}.metadata-fields label,.user-detail-paper label{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-family:var(--display-font);font-size:13px}.metadata-fields input,.metadata-fields select,.metadata-fields textarea,.user-detail-paper select,.add-user-row input,.add-user-row select,.admin-search,.content-tree>label{width:100%;border:1px solid var(--line);color:var(--ink);background:#f7f3eb}.metadata-fields input,.metadata-fields select,.user-detail-paper select,.add-user-row input,.add-user-row select{min-height:44px;padding:0 13px}.metadata-fields textarea{min-height:80px;padding:11px 13px;resize:vertical;line-height:1.6}.cover-editor{padding-top:22px}.cover-editor img{width:132px;aspect-ratio:2 / 3;display:block;margin:0 auto 12px;object-fit:cover;box-shadow:0 9px 18px #30261d33}.cover-editor button{width:100%;min-height:42px;padding:0 8px;font-size:12px}.chapter-parser{margin-top:28px}.chapter-parser>header{min-height:46px;display:flex;align-items:center;justify-content:space-between}.chapter-parser h2,.reading-preview h2{margin:0;font-family:var(--display-font);font-size:16px;font-weight:500}.chapter-parser header button{display:flex;align-items:center;gap:2px;border:0;color:var(--accent);background:transparent;font-size:12px}.chapter-parser>header>span{color:var(--muted);font-size:11px}.chapter-parser>div{border:1px solid var(--line)}.chapter-parser>div button{width:100%;min-height:43px;display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:14px;padding:0 13px;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;font-family:var(--display-font)}.chapter-parser>div button:last-child{border-bottom:0}.chapter-parser>div button.is-selected{color:var(--accent);background:#eee2d7;box-shadow:inset 2px 0 var(--accent)}.chapter-parser button span:first-child,.chapter-parser button span:last-child{color:var(--muted);font-size:12px}.reading-preview{min-width:0;display:flex;flex-direction:column;padding:22px 34px 32px;overflow:hidden}.reading-preview>header{flex:0 0 45px;display:flex;align-items:start;justify-content:space-between;gap:15px}.reading-preview>header>div{display:flex;gap:6px}.reading-preview>header button{min-height:36px;display:flex;align-items:center;gap:4px;padding:0 8px;border:0;border-bottom:2px solid transparent;color:var(--muted);background:transparent;font-size:12px}.reading-preview>header button.is-active{color:var(--accent);border-bottom-color:var(--accent)}.admin-paper-frame{flex:1;min-height:440px;overflow:hidden;box-shadow:0 17px 30px #372c2129;transition:width .24s ease}.reading-preview.is-mobile .admin-paper-frame{width:min(100%,340px);margin-inline:auto}.admin-statusbar{flex:0 0 42px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 38px;border-top:1px solid var(--line);color:var(--muted);background:#eee8de;font-size:12px}.admin-statusbar span{display:flex;align-items:center;gap:7px}.users-workbench{flex:1;min-height:0;display:grid;grid-template-columns:minmax(650px,1fr) 380px;overflow:hidden}.admin-search{width:260px;min-height:44px;display:flex;align-items:center;gap:8px;padding:0 13px}.admin-search input,.content-tree>label input{min-width:0;flex:1;border:0;outline:0;color:var(--ink);background:transparent}.user-ledger{min-width:0;display:flex;flex-direction:column;padding:24px 32px 18px;overflow:auto}.add-user-row{display:grid;grid-template-columns:.75fr 1.15fr 1fr .75fr auto;gap:10px;margin-bottom:16px;padding:12px;border-bottom:1px solid var(--line);background:#f5f1e9}.add-user-row .primary-button{min-height:44px;padding-inline:15px}.admin-data-state{padding:14px;color:var(--muted);border-bottom:1px solid var(--line);font-size:12px}.admin-data-state.is-error{color:var(--danger)}.user-table{min-width:760px}.user-table-header,.user-table-row{display:grid;grid-template-columns:minmax(240px,1.2fr) 88px 115px 95px 110px 28px;align-items:center;gap:8px}.user-table-header{min-height:50px;padding:0 15px;border-bottom:1px solid var(--line);color:var(--muted);font-family:var(--display-font);font-size:13px}.user-table-row{position:relative;width:100%;min-height:89px;padding:0 15px;border:0;border-bottom:1px solid var(--line);color:var(--muted);background:transparent;text-align:left}.user-table-row.is-selected{background:#eee4da;box-shadow:inset 2px 0 var(--accent)}.user-cell{min-width:0;display:flex;align-items:center;gap:13px}.user-cell img{width:43px;height:43px;flex:0 0 auto;border-radius:50%;object-fit:cover;filter:saturate(.72)}.user-cell>span{min-width:0;display:flex;flex-direction:column;gap:3px}.user-cell strong{color:var(--ink);font-family:var(--display-font);font-weight:500}.user-cell small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-dot{display:flex;align-items:center;gap:7px}.status-dot i{width:7px;height:7px;border-radius:50%;background:var(--positive)}.status-dot.is-disabled i{background:var(--danger)}.user-ledger>footer{margin-top:auto;padding-top:18px;color:var(--muted);font-size:12px}.user-detail-paper{position:relative;min-width:0;padding:38px 43px 28px;overflow-y:auto;background:#f6f2ea;border-left:1px solid var(--line);box-shadow:-10px 0 28px #372c2114}.user-detail-paper:after{content:"";position:absolute;right:0;bottom:0;width:42px;height:42px;border-radius:100% 0 0;background:#ded6c9;box-shadow:-7px -7px 12px #372c211a}.user-detail-paper h2{margin:0 0 34px;font-family:var(--display-font);font-size:27px;font-weight:500}.detail-email{display:flex;flex-direction:column;gap:4px;margin-bottom:20px;font-family:var(--display-font)}.detail-email span,.user-detail-paper dt{color:var(--muted);font-size:12px}.user-detail-paper label{margin-bottom:15px}.user-detail-paper select{padding-left:0;border-width:0 0 1px;background:transparent}.detail-helper{display:flex;align-items:flex-start;gap:6px;color:var(--muted);font-size:11px;line-height:1.6}.admin-role-control{display:grid;gap:11px;margin:0 0 20px;padding:15px;border:1px solid var(--line);border-radius:5px;background:color-mix(in oklch,var(--paper) 72%,var(--canvas))}.admin-role-control.is-admin{border-color:color-mix(in oklch,var(--accent) 28%,var(--line));background:color-mix(in oklch,var(--accent) 5%,var(--paper))}.admin-role-control-copy{display:flex;align-items:center;gap:10px}.admin-role-control-copy>span{width:38px;height:38px;flex:none;display:grid;place-items:center;color:var(--accent);border-radius:50%;background:color-mix(in oklch,var(--accent) 9%,transparent)}.admin-role-control-copy>div{min-width:0;display:flex;flex-direction:column;gap:2px}.admin-role-control-copy small,.admin-role-control p,.admin-role-self-note,.admin-role-disabled-note{color:var(--muted);font-size:11px;line-height:1.55}.admin-role-control-copy strong{font-family:var(--display-font);font-size:15px;font-weight:550}.admin-role-control p{margin:0}.admin-role-control>button{width:100%;min-height:44px}.admin-role-self-note,.admin-role-disabled-note{display:block}.admin-role-self-note{color:var(--accent)}.admin-role-disabled-note{color:var(--danger)}.user-detail-paper dl{margin:34px 0}.user-detail-paper dl>div{margin-bottom:18px}.user-detail-paper dd{margin:6px 0 0;font-family:var(--display-font)}.user-detail-actions{display:grid;gap:10px}.user-detail-actions button{width:100%}.visibility-workbench{flex:1;min-height:0;display:grid;grid-template-columns:340px minmax(440px,1fr) 390px;overflow:hidden}.content-tree,.policy-editor,.effective-access{min-width:0;overflow-y:auto}.content-tree{padding:30px 22px;border-right:1px solid var(--line)}.content-tree>label{min-height:44px;display:flex;align-items:center;gap:8px;padding:0 13px}.content-tree nav{margin-top:25px}.content-tree nav button{width:100%;min-height:51px;display:grid;grid-template-columns:16px 18px minmax(0,1fr) auto;align-items:center;gap:5px;padding:0 8px 0 calc(5px + var(--tree-depth) * 12px);border:0;color:var(--muted);background:transparent;text-align:left;font-family:var(--display-font);font-size:12px}.content-tree nav button.is-selected{color:var(--accent);background:#eee3d9;box-shadow:inset 2px 0 var(--accent)}.content-tree nav button>span:not(.tree-leaf){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content-tree nav small{white-space:nowrap}.tree-leaf{width:6px;height:6px;justify-self:center;border-radius:50%;background:var(--positive)}.policy-editor{padding:30px 36px 52px;border-right:1px solid var(--line)}.breadcrumb{margin:0 0 19px;color:var(--accent);font-family:var(--display-font);font-size:12px}.policy-editor>h2{margin:0 0 9px;font-family:var(--display-font);font-size:27px;font-weight:500}.inheritance-copy{margin:0;color:var(--muted);font-family:var(--display-font);font-size:12px}.override-row{min-height:76px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:17px;margin-top:18px;border-bottom:1px solid var(--line)}.override-row>span{font-family:var(--display-font)}.override-row>button:last-child{border:0;color:var(--accent);background:transparent;font-family:var(--display-font)}.policy-switch{background:#b3aca1}.policy-switch.is-on{background:var(--accent)}.policy-editor fieldset{padding:24px 0 18px;border:0;border-bottom:1px solid var(--line)}.policy-editor legend,.guest-policy h3,.group-policy h3{padding:0;font-family:var(--display-font);font-size:18px;font-weight:500}.policy-editor fieldset>p,.guest-policy>p,.group-policy>p{margin:5px 0 15px;color:var(--muted);font-size:11px}.radio-policy{min-height:68px;display:grid;grid-template-columns:24px 1fr;align-items:start;gap:8px;padding:10px 0}.radio-policy input{width:17px;height:17px;margin-top:3px;accent-color:var(--accent)}.radio-policy span{display:flex;flex-direction:column;gap:4px}.radio-policy strong{font-family:var(--display-font);font-weight:500}.radio-policy small,.guest-policy small{color:var(--muted);line-height:1.55}.guest-policy,.group-policy{padding:21px 0;border-bottom:1px solid var(--line)}.guest-policy>div,.group-policy>div{display:flex;align-items:center;justify-content:space-between;gap:20px}.guest-policy>div>span{display:flex;flex-direction:column;gap:4px}.guest-policy strong,.group-policy strong{font-family:var(--display-font);font-weight:500}.group-policy div span{color:var(--muted);font-size:12px}.group-policy div strong{color:var(--accent);font-size:12px}.group-policy>.policy-group-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.policy-group-picker label{min-width:0;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;padding:10px;border:1px solid var(--line);background:color-mix(in srgb,var(--paper) 72%,transparent)}.policy-group-picker input{accent-color:var(--accent)}.policy-group-picker small{color:var(--muted);font-size:10px}.effective-access{padding:38px 34px;background:#f3efe8}.effective-access>h2{margin:0 0 5px;font-family:var(--display-font);font-size:22px;font-weight:500}.effective-access>p{margin:0 0 19px;color:var(--muted);font-size:11px}.access-results>div{min-height:51px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.access-results span{display:flex;align-items:center;gap:7px;font-family:var(--display-font)}.access-results strong{font-family:var(--display-font);font-weight:500;font-size:13px}.is-allowed{color:var(--positive)}.is-denied{color:var(--danger)}.is-neutral{color:var(--muted)}.policy-validation{margin:10px 0 0;color:var(--danger);font-size:11px}.priority-note,.reader-row-preview{margin-top:28px;padding-bottom:25px;border-bottom:1px solid var(--line)}.priority-note h3,.reader-row-preview h3{margin:0 0 10px;font-family:var(--display-font);font-size:16px;font-weight:500}.priority-note p,.reader-row-preview>p{margin:7px 0;color:var(--muted);font-size:11px;line-height:1.6}.preview-chapter-row,.hidden-preview{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 18px;background:var(--paper);box-shadow:0 9px 17px #33291f24;font-family:var(--display-font);font-size:13px}.preview-chapter-row strong{color:var(--accent);font-weight:500}.reader-preview-actions button{min-height:43px;display:flex;align-items:center;gap:6px;margin-top:12px;padding:0;border:0;color:var(--accent);background:transparent}.reader-preview-actions{display:flex;flex-wrap:wrap;gap:14px}.reader-preview-actions button:disabled{color:var(--muted)}.visibility-warning{display:flex;align-items:flex-start;gap:10px;margin-top:22px;padding:15px;border:1px solid color-mix(in oklch,var(--danger) 35%,transparent);color:var(--danger)}.visibility-warning p{margin:0;font-size:11px;line-height:1.65}.cover-placeholder{width:132px;aspect-ratio:2 / 3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;margin:0 auto 12px;border:1px dashed var(--line-strong);color:var(--muted);background:#ebe5da;text-align:center;font-size:11px}.admin-text-preview{height:100%;padding:clamp(28px,5vw,64px);overflow:auto;color:var(--ink);background:var(--paper);font-family:var(--display-font);font-size:16px;line-height:2}.admin-text-preview>p:first-child{margin:0;color:var(--accent);font-size:12px}.admin-text-preview h3{margin:8px 0 28px;font-size:24px;font-weight:500}.management-workbench{flex:1;min-height:0;display:grid;grid-template-columns:330px minmax(0,1fr);overflow:hidden}.management-list{min-width:0;padding:18px;overflow-y:auto;border-right:1px solid var(--line);background:#eee9e0}.management-list>button{width:100%;min-height:96px;display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:13px;padding:12px;border:0;border-bottom:1px solid var(--line);color:var(--muted);background:transparent;text-align:left}.management-list>button.is-selected{color:var(--ink);background:#f6f1e8;box-shadow:inset 2px 0 var(--accent),0 8px 20px #362b2014}.management-list img,.book-cover-fallback{width:48px;aspect-ratio:2 / 3;display:flex;align-items:center;justify-content:center;object-fit:cover;color:var(--accent);background:#ded6c8;box-shadow:0 5px 10px #362b2029}.management-list>button>span:nth-child(2){min-width:0;display:flex;flex-direction:column;gap:4px}.management-list strong,.management-list small,.management-list em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.management-list strong{color:var(--ink);font-family:var(--display-font);font-size:15px;font-style:normal;font-weight:500}.management-list small,.management-list em{font-size:11px;font-style:normal}.content-status{padding:4px 7px;color:var(--muted);background:#e1dbd1;font-family:var(--display-font);font-size:10px;font-style:normal}.content-status.is-published{color:var(--positive);background:#e3eadf}.content-status.is-archived{color:var(--danger);background:#eee0dc}.management-editor{min-width:0;overflow-y:auto;background:#f5f1e9}.management-editor>header{min-height:94px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 34px;border-bottom:1px solid var(--line)}.management-editor>header>div:last-child{display:flex;gap:10px}.management-editor header p{margin:0 0 5px;color:var(--accent);font-family:var(--display-font);font-size:11px}.management-editor header h2{margin:0;font-family:var(--display-font);font-size:25px;font-weight:500}.novel-detail-layout{display:grid;grid-template-columns:270px minmax(0,1fr);min-height:calc(100% - 94px)}.novel-metadata-panel{align-content:start;padding:28px;border-right:1px solid var(--line)}.managed-cover{margin-bottom:12px}.managed-cover img,.managed-cover .cover-placeholder{width:118px;display:block;margin:0 auto 10px;aspect-ratio:2 / 3;object-fit:cover;box-shadow:0 9px 18px #30261d2e}.managed-cover .cover-placeholder{display:flex}.managed-cover button{width:100%}.chapter-management{min-width:0;display:grid;grid-template-columns:250px minmax(340px,1fr)}.chapter-management-list{min-width:0;padding:24px 14px;overflow-y:auto;border-right:1px solid var(--line)}.chapter-management-list>header,.chapter-editor-heading,.user-grants-editor>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.chapter-management-list>header>div{display:flex;align-items:baseline;gap:8px}.chapter-management-list>header>div>span{color:var(--muted);font-size:11px}.compact-action{min-height:34px;padding-inline:12px;font-size:12px}.chapter-management h3,.user-grants-editor h3{margin:0;font-family:var(--display-font);font-size:16px;font-weight:500}.chapter-management-list>button{width:100%;min-height:70px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px;border:0;border-bottom:1px solid var(--line);color:var(--muted);background:transparent;text-align:left}.chapter-management-list>button.is-selected{color:var(--accent);background:#eee3d9;box-shadow:inset 2px 0 var(--accent)}.chapter-management-list strong{color:var(--ink);font-family:var(--display-font);font-weight:500}.chapter-management-list small{font-size:10px}.chapter-list-empty{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:var(--muted);text-align:center}.chapter-list-empty button{border:0;color:var(--accent);background:transparent;font-family:var(--display-font)}.chapter-editor{min-width:0;padding:25px 30px 40px}.chapter-editor-heading>div{display:flex;align-items:center;gap:8px}.chapter-editor-empty{min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:30px;color:var(--muted);text-align:center}.chapter-editor-empty strong{color:var(--ink);font-family:var(--display-font);font-size:18px;font-weight:500}.chapter-editor-empty span{margin-bottom:8px;font-size:12px}.chapter-title-grid{display:grid;grid-template-columns:1fr 110px;gap:12px}.chapter-content-input{min-height:440px!important;font-family:var(--display-font);font-size:15px;line-height:1.9!important}.chapter-publish-toggle{flex-direction:row!important;align-items:center}.chapter-publish-toggle input{width:auto}.novel-lifecycle-actions{display:flex;flex-direction:column;gap:10px;margin-top:4px;padding-top:18px;border-top:1px solid var(--line)}.novel-lifecycle-actions .detail-helper{margin:0;color:var(--danger)}.admin-dialog-backdrop{position:fixed;z-index:200;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:#251f1a7a;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:admin-dialog-backdrop-enter .16s ease both}.admin-confirm-dialog{width:min(100%,480px);display:grid;grid-template-columns:44px minmax(0,1fr);gap:18px;padding:26px;color:var(--ink);background:#f8f3eb;border:1px solid color-mix(in oklch,var(--danger) 28%,var(--line));box-shadow:0 28px 70px #1f18134d;animation:admin-dialog-enter .22s cubic-bezier(.16,1,.3,1) both}.admin-dialog-icon{width:44px;height:44px;display:grid;place-items:center;color:var(--danger);background:color-mix(in oklch,var(--danger) 10%,transparent);border-radius:50%}.admin-confirm-dialog h2{margin:3px 0 8px;font-family:var(--display-font);font-size:22px;font-weight:550}.admin-confirm-dialog p{margin:0}.admin-confirm-dialog>div>p:first-child{color:var(--danger);font-size:11px;letter-spacing:.12em}.admin-dialog-description{color:var(--muted);font-size:13px;line-height:1.7}.admin-confirm-dialog>label,.admin-dialog-actions{grid-column:1 / -1}.admin-confirm-dialog>label{display:flex;flex-direction:column;gap:8px;color:var(--muted);font-size:12px}.admin-confirm-dialog>label strong{color:var(--ink);font-family:var(--display-font);font-weight:550}.admin-confirm-dialog input{width:100%;min-height:44px;padding:0 12px;border:1px solid var(--line-strong);outline:0;color:var(--ink);background:var(--paper)}.admin-confirm-dialog input:focus{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in oklch,var(--danger) 9%,transparent)}.admin-dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}.admin-role-dialog.is-grant{border-color:color-mix(in oklch,var(--positive) 34%,var(--line))}.admin-role-dialog.is-grant .admin-dialog-icon{color:var(--positive);background:color-mix(in oklch,var(--positive) 10%,transparent)}.admin-role-dialog.is-grant>div>p:first-child{color:var(--positive)}.admin-role-dialog-user{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;color:var(--muted);background:color-mix(in oklch,var(--canvas) 68%,var(--paper));border:1px solid var(--line);font-size:12px}.admin-role-dialog-user span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-role-dialog-user strong{flex:none;color:var(--ink);font-weight:550}@keyframes admin-dialog-backdrop-enter{0%{opacity:0}to{opacity:1}}@keyframes admin-dialog-enter{0%{opacity:0;transform:translateY(12px) scale(.975)}to{opacity:1;transform:translateY(0) scale(1)}}.compact-management{grid-template-columns:minmax(300px,390px) minmax(420px,720px);justify-content:start}.category-list>button{min-height:78px;grid-template-columns:30px minmax(0,1fr) auto}.simple-editor{border-right:1px solid var(--line)}.simple-editor>.metadata-fields{max-width:560px;padding:35px}.editor-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}.admin-empty-state,.admin-route-state{min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:30px;color:var(--muted);text-align:center}.admin-route-state.is-error{color:var(--danger)}.admin-empty-state button{border:0;color:var(--accent);background:transparent}.user-avatar-fallback{width:43px;height:43px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;color:#f8f2e9;background:var(--accent);font-family:var(--display-font);font-style:normal}.detail-group-picker{margin:18px 0;padding:0;border:0}.detail-group-picker legend{margin-bottom:8px;color:var(--muted);font-family:var(--display-font);font-size:13px}.detail-group-picker label{min-height:34px;flex-direction:row;align-items:center;margin:0}.detail-group-picker input{width:auto}.user-grants-editor{margin:26px 0;padding:20px 0;border-block:1px solid var(--line)}.user-grants-editor>p{color:var(--muted);font-size:10px;line-height:1.6}.grant-compose{display:grid;grid-template-columns:1fr 100px;gap:7px}.grant-compose select,.grant-compose button{min-width:0;min-height:38px;border:1px solid var(--line);background:#f7f3eb}.grant-compose button{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;gap:5px;color:var(--accent)}.grant-list{display:grid;gap:5px;margin:12px 0}.grant-list>div{min-height:36px;display:grid;grid-template-columns:minmax(0,1fr) auto 28px;align-items:center;gap:8px;padding-left:8px;background:#eee8df;font-size:11px}.grant-list strong.is-allow{color:var(--positive)}.grant-list strong.is-deny{color:var(--danger)}.grant-list button{border:0;color:var(--danger);background:transparent}.grant-list>small{color:var(--muted);line-height:1.6}.temporary-secret{display:grid;gap:8px;margin-bottom:14px;padding:13px;color:var(--ink);background:#e4ebdf}.temporary-secret span{color:var(--muted);font-size:10px}.temporary-secret code{overflow-wrap:anywhere;font-size:14px}.temporary-secret button{min-height:34px;border:0;color:var(--positive);background:transparent}.audit-page{flex:1;min-height:0;padding:28px 36px;overflow:auto}.audit-filters{display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(150px,.72fr) minmax(150px,.72fr) auto;align-items:end;gap:12px;margin-bottom:14px;padding:14px 16px;border:1px solid var(--line);background:color-mix(in oklch,var(--paper) 60%,var(--canvas))}.audit-filters label{min-width:0;display:grid;gap:6px;color:var(--muted);font-size:11px}.audit-filters select,.audit-filter-input{min-width:0;min-height:40px;border:1px solid var(--line);background:var(--paper)}.audit-filters select{padding:0 11px;color:var(--ink)}.audit-filter-input{display:flex;align-items:center;gap:8px;padding:0 11px}.audit-filter-input svg{flex:none;color:var(--muted)}.audit-filter-input input{min-width:0;flex:1;border:0;outline:0;background:transparent}.audit-filters>div{display:flex;gap:8px}.audit-filters button{min-height:40px}.audit-table{min-width:860px;border:1px solid var(--line);background:#f6f2ea}.audit-table>header,.audit-table>div:not(.admin-data-state):not(.admin-empty-state){min-height:58px;display:grid;grid-template-columns:180px 130px 170px minmax(220px,1fr) 90px 38px;align-items:center;gap:12px;padding:0 18px;border-bottom:1px solid var(--line)}.audit-table>header{color:var(--muted);background:#ece6dc;font-family:var(--display-font);font-size:12px}.audit-table time,.audit-table code{color:var(--muted);font-size:11px}.audit-table strong{font-family:var(--display-font);font-weight:500}.audit-detail-toggle{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:50%;color:var(--muted);background:transparent}.audit-detail-toggle svg{transition:transform .18s ease}.audit-row.is-expanded .audit-detail-toggle svg{transform:rotate(90deg)}.audit-row.is-expanded{padding-block:12px}.audit-detail{min-width:0;grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px;border:1px solid color-mix(in oklch,var(--accent) 18%,var(--line));background:color-mix(in oklch,var(--paper) 84%,var(--canvas))}.audit-detail dl{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}.audit-detail dl>div{min-width:0}.audit-detail dt,.audit-change>span{color:var(--muted);font-size:10px}.audit-detail dd{margin:4px 0 0;overflow-wrap:anywhere;font-size:11px}.audit-change{min-width:0}.audit-change pre{max-height:180px;margin:6px 0 0;padding:10px;overflow:auto;border:1px solid var(--line);color:var(--ink);background:var(--canvas);font-size:11px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.audit-page>footer{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:20px}@media(max-width:1100px){.admin-app{grid-template-columns:158px minmax(0,1fr)}.admin-brand{padding-inline:20px;font-size:17px}.upload-workbench,.users-workbench,.visibility-workbench,.management-workbench{overflow:auto}.upload-workbench{grid-template-columns:minmax(520px,1fr) 400px}.users-workbench{grid-template-columns:minmax(650px,1fr) 340px}.visibility-workbench{grid-template-columns:300px 500px 340px}.management-workbench{grid-template-columns:290px minmax(760px,1fr)}}@media(max-width:760px){.admin-app{height:auto;min-height:100dvh;display:block;overflow:visible}.admin-sidebar{position:sticky;z-index:60;top:0;display:block;border-right:0;border-bottom:1px solid var(--line)}.admin-brand{width:100%;min-height:56px;padding:0 18px;border-bottom:1px solid var(--line)}.admin-sidebar nav{display:flex;gap:3px;padding:4px 8px;overflow-x:auto}.admin-sidebar nav section{display:contents}.admin-sidebar nav section>p,.admin-sidebar .settings-link,.back-to-reader{display:none}.admin-sidebar nav button{width:auto;min-width:max-content;min-height:44px;margin:0;padding:0 14px}.admin-sidebar nav button.is-active:after{top:auto;left:10px;right:10px;bottom:-4px;width:auto;height:2px}.admin-workspace{height:auto;overflow:visible}.admin-header{min-height:78px;padding:12px 16px;align-items:flex-start;flex-direction:column}.admin-header h1{font-size:23px}.admin-header-actions{width:100%;overflow-x:auto}.upload-workbench,.users-workbench,.visibility-workbench,.management-workbench{display:block;overflow:visible}.upload-editor,.reading-preview,.user-ledger,.user-detail-paper,.content-tree,.policy-editor,.effective-access{overflow:visible}.upload-editor,.reading-preview,.user-ledger,.user-detail-paper,.content-tree,.policy-editor,.effective-access{padding:22px 16px}.metadata-grid{grid-template-columns:1fr 110px;gap:16px}.cover-editor img{width:100px}.reading-preview{min-height:620px}.admin-statusbar{display:none}.user-table{min-width:720px}.user-detail-paper{border-top:1px solid var(--line)}.add-user-row{grid-template-columns:1fr}.admin-search{width:230px}.content-tree{border-bottom:1px solid var(--line)}.management-list,.management-editor,.audit-page{overflow:visible}.management-list{border-right:0;border-bottom:1px solid var(--line)}.novel-detail-layout,.chapter-management{display:block}.novel-metadata-panel,.chapter-management-list{border-right:0;border-bottom:1px solid var(--line)}.audit-page{padding:18px 16px}}.admin-mobile-topbar,.admin-sidebar-backdrop,.admin-sidebar-close{display:none}.admin-app{min-height:100dvh;grid-template-columns:224px minmax(0,1fr);background:linear-gradient(120deg,color-mix(in oklch,var(--paper) 18%,transparent),transparent 44%),var(--canvas)}.admin-sidebar{position:relative;z-index:70;background:color-mix(in oklch,var(--canvas) 78%,#e2d9cb);box-shadow:12px 0 34px #32281f09}.admin-sidebar-heading{min-height:92px;display:flex;align-items:center;border-bottom:1px solid var(--line)}.admin-brand{min-height:91px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;padding:0 28px;border-bottom:0;letter-spacing:.12em}.admin-brand span{font-size:22px}.admin-brand small{color:var(--muted);font-family:var(--ui-font);font-size:10px;font-weight:400;letter-spacing:.16em}.admin-sidebar nav{padding:24px 14px 0}.admin-sidebar nav section{margin-bottom:26px}.admin-sidebar nav section>p{margin-bottom:9px;padding:0 12px;font-family:var(--ui-font);font-size:10px;letter-spacing:.18em}.admin-sidebar nav button,.back-to-reader{width:100%;min-height:56px;gap:13px;margin:2px 0;padding:8px 13px;border-radius:5px;transition:color var(--motion-fast, .18s) ease,background-color var(--motion-fast, .18s) ease,transform .12s ease}.admin-sidebar nav button>span{min-width:0;display:flex;flex-direction:column;gap:2px}.admin-sidebar nav button strong{color:inherit;font-weight:500}.admin-sidebar nav button small{color:color-mix(in oklch,currentColor 64%,transparent);font-family:var(--ui-font);font-size:10px}.admin-sidebar nav button:hover{color:var(--ink);background:color-mix(in oklch,var(--paper) 62%,transparent)}.admin-sidebar nav button:active{transform:scale(.985)}.admin-sidebar nav button.is-active{color:var(--accent);background:color-mix(in oklch,var(--paper) 78%,#ead9cc);box-shadow:0 9px 22px #3a2b1f12}.admin-sidebar nav button.is-active:after{top:13px;right:auto;bottom:13px;left:-14px;width:3px;border-radius:0 3px 3px 0}.back-to-reader{width:calc(100% - 28px);margin:auto 14px 18px;padding-inline:13px}.admin-workspace{background:color-mix(in oklch,var(--canvas) 94%,var(--paper))}.admin-header{flex-basis:92px;min-height:92px;padding:0 30px;background:color-mix(in oklch,var(--paper) 58%,var(--canvas))}.admin-header-copy{display:flex;flex-direction:column;gap:4px}.admin-header-copy>span{color:var(--accent);font-family:var(--ui-font);font-size:10px;letter-spacing:.18em}.admin-header h1{font-size:26px;letter-spacing:.055em}.admin-header-actions{flex-wrap:wrap;justify-content:flex-end}.primary-button,.secondary-button,.admin-search{border-radius:4px}.primary-button,.secondary-button{min-height:44px;padding-inline:19px;transition:color .16s ease,background-color .16s ease,border-color .16s ease,transform .12s ease,box-shadow .16s ease}.primary-button:hover:not(:disabled){box-shadow:0 8px 20px color-mix(in oklch,var(--accent) 18%,transparent)}.primary-button:active:not(:disabled),.secondary-button:active:not(:disabled){transform:translateY(1px) scale(.99)}.admin-header+main,.admin-header+.admin-route-state,.admin-statusbar{animation:admin-route-enter .3s cubic-bezier(.16,1,.3,1) both}@keyframes admin-route-enter{0%{opacity:0;transform:translate3d(0,8px,0)}to{opacity:1;transform:translateZ(0)}}.management-workbench,.users-workbench,.visibility-workbench,.upload-workbench,.audit-page{margin:20px 24px 24px;border:1px solid color-mix(in oklch,var(--line) 86%,transparent);border-radius:6px;background:color-mix(in oklch,var(--paper) 32%,var(--canvas));box-shadow:0 18px 46px #35291e0f}.management-workbench{grid-template-columns:300px minmax(0,1fr)}.management-list{padding:12px;background:color-mix(in oklch,var(--canvas) 72%,#e5ddd1)}.management-list>button{min-height:88px;margin-bottom:5px;padding:11px;border-bottom:0;border-radius:5px}.management-list>button:hover{background:color-mix(in oklch,var(--paper) 55%,transparent)}.management-list>button.is-selected{box-shadow:inset 3px 0 var(--accent),0 8px 20px #362b2012}.management-editor{background:color-mix(in oklch,var(--paper) 56%,var(--canvas))}.management-editor>header{min-height:112px;display:grid;grid-template-columns:minmax(150px,1fr) auto auto;padding:16px 26px}.novel-editor-title{min-width:0}.novel-editor-title h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-editor-tabs{display:inline-grid;grid-template-columns:repeat(2,auto);gap:3px;padding:4px;border:1px solid var(--line);border-radius:5px;background:color-mix(in oklch,var(--canvas) 68%,transparent)}.admin-editor-tabs button{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 13px;border:0;border-radius:3px;color:var(--muted);background:transparent;font-family:var(--display-font)}.admin-editor-tabs button span{min-width:20px;padding:2px 6px;border-radius:999px;background:color-mix(in oklch,currentColor 8%,transparent);font-family:var(--ui-font);font-size:10px}.admin-editor-tabs button.is-active{color:var(--accent);background:var(--paper);box-shadow:0 4px 12px #362b2014}.novel-editor-actions{display:flex;gap:9px}.novel-metadata-page{width:min(900px,calc(100% - 48px));display:grid;grid-template-columns:190px minmax(0,1fr);gap:44px;margin:0 auto;padding:44px 0 60px;animation:admin-section-enter .24s ease both}.novel-metadata-page .managed-cover{position:sticky;top:26px;align-self:start}.novel-metadata-page .managed-cover img,.novel-metadata-page .managed-cover .cover-placeholder{width:156px;margin-bottom:18px}.novel-metadata-fields{gap:18px}.metadata-field-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.novel-lifecycle-actions{align-items:flex-start;margin-top:12px}.novel-lifecycle-actions button{width:auto}.chapter-management{grid-template-columns:270px minmax(0,1fr);min-height:calc(100% - 112px);animation:admin-section-enter .24s ease both}@keyframes admin-section-enter{0%{opacity:0;transform:translate3d(10px,0,0)}to{opacity:1;transform:translateZ(0)}}.chapter-management-list{padding:20px 12px;background:color-mix(in oklch,var(--canvas) 60%,transparent)}.chapter-management-list>header{min-height:50px;padding:0 6px 10px}.chapter-management-list>button{min-height:66px;margin-bottom:3px;border-bottom:0;border-radius:4px}.chapter-management-list>button:hover{background:color-mix(in oklch,var(--paper) 62%,transparent)}.chapter-editor{width:min(820px,100%);padding:28px 32px 48px}.chapter-content-input{min-height:360px!important}.users-workbench{grid-template-columns:minmax(580px,1fr) 390px}.user-ledger{padding:20px 24px}.add-user-row{border:1px solid var(--line);border-radius:5px;box-shadow:0 10px 24px #362b200f;animation:admin-form-reveal .26s cubic-bezier(.16,1,.3,1) both}@keyframes admin-form-reveal{0%{opacity:0;transform:translate3d(0,-8px,0) scale(.99)}to{opacity:1;transform:translateZ(0) scale(1)}}.user-table-row{border-radius:4px}.user-table-row:hover{background:color-mix(in oklch,var(--paper) 52%,transparent)}.user-detail-paper{padding:30px 34px 34px;background:color-mix(in oklch,var(--paper) 68%,var(--canvas))}.visibility-workbench{grid-template-columns:300px minmax(520px,1fr) 340px}.content-tree,.policy-editor,.effective-access{scrollbar-width:thin;scrollbar-color:color-mix(in oklch,var(--ink) 18%,transparent) transparent}.content-tree{padding:22px 16px;background:color-mix(in oklch,var(--canvas) 72%,#e7dfd3)}.content-tree nav{margin-top:14px}.content-tree nav button{min-height:46px;border-radius:4px}.content-tree nav button.is-selected{box-shadow:inset 3px 0 var(--accent),0 5px 14px #362b200d}.policy-editor{padding:28px 34px 52px}.effective-access{padding:28px 28px 40px;background:color-mix(in oklch,var(--paper) 62%,var(--canvas))}.upload-workbench{grid-template-columns:minmax(520px,1fr) minmax(380px,.82fr)}.upload-editor{padding:24px 32px 36px}.reading-preview{padding:24px 28px 30px;background:color-mix(in oklch,var(--paper) 48%,var(--canvas))}.audit-page{overflow:auto}@media(max-width:1220px)and (min-width:821px){.admin-app{grid-template-columns:190px minmax(0,1fr)}.admin-brand{padding-inline:22px}.admin-sidebar nav{padding-inline:10px}.admin-sidebar nav button.is-active:after{left:-10px}.management-workbench{grid-template-columns:270px minmax(0,1fr)}.management-editor>header{grid-template-columns:1fr auto}.novel-editor-title{grid-column:1}.admin-editor-tabs{grid-column:2}.novel-editor-actions{grid-column:1 / -1;justify-content:flex-end}.users-workbench{grid-template-columns:minmax(520px,1fr) 350px}.visibility-workbench{grid-template-columns:280px minmax(520px,1fr);overflow:auto}.effective-access{grid-column:2;border-top:1px solid var(--line)}.upload-workbench{grid-template-columns:minmax(500px,1fr) 390px;overflow:auto}}@media(max-width:820px){body:has(.admin-app.has-open-navigation){overflow:hidden}html:has(.product-root.is-admin),body:has(.product-root.is-admin),.product-root.is-admin,.admin-workspace,.management-list,.chapter-management-list,.content-tree{scrollbar-width:none;-ms-overflow-style:none}html:has(.product-root.is-admin)::-webkit-scrollbar,body:has(.product-root.is-admin)::-webkit-scrollbar,.product-root.is-admin::-webkit-scrollbar,.admin-workspace::-webkit-scrollbar,.management-list::-webkit-scrollbar,.chapter-management-list::-webkit-scrollbar,.content-tree::-webkit-scrollbar{width:0;height:0;display:none}.admin-app{height:auto;min-height:100dvh;display:block;padding-top:calc(58px + env(safe-area-inset-top,0px));overflow-x:clip}.admin-mobile-topbar{position:fixed;z-index:62;top:0;right:0;left:0;min-height:calc(58px + env(safe-area-inset-top,0px));display:grid;grid-template-columns:48px 1fr 48px;align-items:end;padding:env(safe-area-inset-top,0px) 8px 5px;border-bottom:1px solid var(--line);background:color-mix(in oklch,var(--paper) 90%,var(--canvas))}.admin-mobile-topbar button{min-height:46px;display:grid;place-items:center;border:0;color:var(--ink);background:transparent}.admin-mobile-brand{font-family:var(--display-font);font-size:17px;letter-spacing:.12em}.admin-sidebar-backdrop{position:fixed;z-index:68;top:0;right:0;bottom:0;left:0;display:block;border:0;visibility:hidden;opacity:0;background:#221d196b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity .22s ease,visibility .22s ease}.has-open-navigation .admin-sidebar-backdrop{visibility:visible;opacity:1}.admin-sidebar{position:fixed;z-index:70;top:0;bottom:0;left:0;width:min(84vw,318px);display:flex;visibility:hidden;pointer-events:none;border-right:1px solid var(--line);border-bottom:0;transform:translate3d(-104%,0,0);transition:transform .28s cubic-bezier(.16,1,.3,1),visibility .28s ease}.admin-sidebar.is-open{visibility:visible;pointer-events:auto;transform:translateZ(0)}.admin-sidebar-heading{min-height:calc(76px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px)}.admin-brand{width:auto;min-height:75px;flex:1;padding-inline:22px;border-bottom:0}.admin-sidebar-close{width:46px;min-height:46px;display:grid;place-items:center;margin-right:9px;border:0;color:var(--muted);background:transparent}.admin-sidebar nav{display:block;flex:1;padding:20px 13px;overflow-y:auto}.admin-sidebar nav section{display:block;margin-bottom:24px}.admin-sidebar nav section>p{display:block}.admin-sidebar nav button{width:100%;min-height:56px;padding:8px 13px}.admin-sidebar nav button.is-active:after{top:13px;right:auto;bottom:13px;left:-13px;width:3px;height:auto}.back-to-reader{display:flex}.admin-workspace{height:auto;min-width:0;overflow:visible}.admin-header{flex:none;min-height:0;flex-direction:column;align-items:stretch;gap:16px;padding:22px 16px 16px}.admin-header h1{font-size:24px}.admin-header-actions{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;overflow:visible}.admin-header-actions>.admin-search{width:auto;min-width:0}.admin-header-actions>.secondary-button:first-child:last-child{justify-self:end}.primary-button,.secondary-button{min-height:46px;padding-inline:15px}.management-workbench,.users-workbench,.visibility-workbench,.upload-workbench,.audit-page{display:block;margin:0 10px 18px;overflow:hidden;border-radius:5px}.management-list{display:flex;gap:9px;padding:12px;overflow-x:auto;overflow-y:hidden;border-right:0;border-bottom:1px solid var(--line);scroll-snap-type:x proximity;scrollbar-width:none}.management-list::-webkit-scrollbar,.chapter-management-list::-webkit-scrollbar{display:none}.management-list>button{min-width:min(78vw,280px);margin:0;scroll-snap-align:start}.management-editor>header{display:grid;grid-template-columns:1fr auto;gap:13px;padding:18px 15px}.novel-editor-title{grid-column:1}.admin-editor-tabs{grid-column:2}.novel-editor-actions{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.novel-editor-actions>:only-child{grid-column:2}.admin-editor-tabs button{min-width:44px;padding-inline:10px}.admin-editor-tabs button svg{display:none}.novel-metadata-page{width:auto;display:block;margin:0;padding:24px 16px 36px}.novel-metadata-page .managed-cover{position:static;width:min(100%,280px);display:grid;grid-template-columns:112px 1fr;align-items:end;gap:14px;margin:0 auto 28px}.novel-metadata-page .managed-cover img,.novel-metadata-page .managed-cover .cover-placeholder{width:112px;margin:0;grid-row:1 / 3}.novel-metadata-page .managed-cover button{align-self:end}.metadata-field-pair{grid-template-columns:1fr}.novel-lifecycle-actions button{width:100%}.chapter-management{display:block;min-height:0}.chapter-management-list{max-height:300px;padding:14px 12px;overflow-y:auto;border-right:0;border-bottom:1px solid var(--line)}.chapter-management-list>header{position:sticky;z-index:2;top:-14px;padding:12px 5px;background:color-mix(in oklch,var(--canvas) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.chapter-editor{width:auto;padding:24px 15px 38px}.chapter-editor-heading{align-items:flex-start}.chapter-editor-heading>div{gap:6px}.chapter-title-grid{grid-template-columns:minmax(0,1fr) 88px}.chapter-content-input{min-height:52dvh!important}.user-ledger{padding:14px 12px 18px;overflow:visible}.add-user-row{grid-template-columns:1fr;padding:14px}.user-table{min-width:0}.user-table-header{display:none}.user-table-row{min-height:126px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-rows:auto auto auto;gap:7px 12px;margin-bottom:8px;padding:14px;border:1px solid var(--line)}.user-table-row .user-cell{grid-column:1 / 3;grid-row:1}.user-table-row>span:nth-child(2){grid-column:1;grid-row:2}.user-table-row>span:nth-child(3){grid-column:2;grid-row:2}.user-table-row>span:nth-child(4){grid-column:3;grid-row:2}.user-table-row>span:nth-child(5){grid-column:1 / 4;grid-row:3;font-size:11px}.user-table-row>span:nth-child(6){grid-column:3;grid-row:1;align-self:center}.user-detail-paper{padding:26px 18px calc(32px + env(safe-area-inset-bottom,0px));overflow:visible;border-top:1px solid var(--line);border-left:0;box-shadow:0 -12px 28px #372c210f}.user-detail-paper h2{margin-bottom:24px}.grant-compose{grid-template-columns:1fr}.content-tree,.policy-editor,.effective-access{padding:20px 15px;overflow:visible}.content-tree{max-height:350px;overflow-y:auto;border-right:0;border-bottom:1px solid var(--line)}.policy-editor{border-right:0}.effective-access{border-top:1px solid var(--line)}.override-row{grid-template-columns:minmax(0,1fr) auto}.override-row>button{grid-column:1 / -1;justify-self:start}.upload-editor,.reading-preview{padding:20px 15px 26px;overflow:visible;border-right:0}.upload-editor{border-bottom:1px solid var(--line)}.metadata-grid{grid-template-columns:1fr}.cover-editor{padding-top:0}.cover-editor img{width:118px}.reading-preview{min-height:560px}.admin-paper-frame{min-height:460px}.audit-page{padding:12px}.audit-filters{grid-template-columns:minmax(0,1fr);align-items:stretch;padding:14px}.audit-filters>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.audit-table{min-width:0;display:grid;gap:9px;border:0;background:transparent}.audit-table>header{display:none}.audit-table>div:not(.admin-data-state):not(.admin-empty-state){min-height:112px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:14px;border:1px solid var(--line);border-radius:4px;background:color-mix(in oklch,var(--paper) 58%,var(--canvas))}.audit-table>div>time{grid-column:1;grid-row:1}.audit-table>div>span:nth-child(2){grid-column:2;grid-row:1}.audit-table>div>strong{grid-column:1 / -1;grid-row:2;color:var(--ink)}.audit-table>div>span:nth-child(4){grid-column:1;grid-row:3}.audit-table>div>code{grid-column:2;grid-row:3}.audit-table>div>.audit-detail-toggle{grid-column:2;grid-row:2;justify-self:end}.audit-table>div>.audit-detail{grid-column:1 / -1;grid-row:4}.audit-detail,.audit-detail dl{grid-template-columns:minmax(0,1fr)}.audit-change{grid-column:1}}.manual-novel-create{min-width:0;display:grid;gap:11px;margin-bottom:10px;padding:16px;border:1px solid color-mix(in oklch,var(--accent) 28%,var(--line));border-radius:5px;background:color-mix(in oklch,var(--paper) 82%,#eadfd2);box-shadow:0 12px 28px #372a1e17;animation:admin-form-reveal .24s cubic-bezier(.16,1,.3,1) both}.manual-novel-create>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.manual-novel-create>header span{color:var(--accent);font-family:var(--ui-font);font-size:9px;letter-spacing:.16em}.manual-novel-create>header h2{margin:3px 0 0;font-family:var(--display-font);font-size:18px;font-weight:500}.manual-novel-create>header button{width:34px;height:34px;display:grid;place-items:center;border:0;color:var(--muted);background:transparent}.manual-novel-create label{display:grid;gap:5px;color:var(--muted);font-family:var(--display-font);font-size:11px}.manual-novel-create input,.manual-novel-create select{width:100%;min-height:40px;padding:0 11px;border:1px solid var(--line);color:var(--ink);background:var(--paper)}.manual-novel-create p{margin:1px 0 0;color:var(--muted);font-size:10px;line-height:1.6}.manual-novel-create .primary-button{width:100%}.novel-lifecycle-actions>div{display:flex;flex-wrap:wrap;gap:9px}.chapter-basics-grid{display:grid;grid-template-columns:150px 82px minmax(220px,1fr) auto;align-items:end;gap:10px}.chapter-basics-grid .chapter-publish-toggle{min-height:44px;justify-content:center;padding:0 11px;border:1px solid var(--line);background:color-mix(in oklch,var(--paper) 52%,transparent);white-space:nowrap}.chapter-body-field{min-height:0}@media(min-width:821px){.novel-management .management-list,.novel-editor,.novel-metadata-page,.chapter-management-list,.chapter-content-input{scrollbar-width:none;-ms-overflow-style:none}.novel-management .management-list::-webkit-scrollbar,.novel-editor::-webkit-scrollbar,.novel-metadata-page::-webkit-scrollbar,.chapter-management-list::-webkit-scrollbar,.chapter-content-input::-webkit-scrollbar{width:0;height:0;display:none}.novel-editor{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.novel-editor>header{min-height:88px;padding-block:12px}.novel-editor .chapter-management{height:100%;min-height:0;grid-template-columns:238px minmax(0,1fr);overflow:hidden}.chapter-management-list{min-height:0;padding-block:12px;overflow-y:auto;overscroll-behavior:contain}.chapter-management-list>header{min-height:44px}.chapter-management-list>button{min-height:59px;padding-block:8px}.chapter-editor.metadata-fields{width:100%;height:100%;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:12px;padding:17px 24px 20px;overflow:hidden}.chapter-editor-heading{min-height:42px}.chapter-body-field{display:grid!important;grid-template-rows:auto minmax(0,1fr);gap:6px!important}.chapter-content-input{height:100%;min-height:0!important;resize:none!important;overflow-y:auto;overscroll-behavior:contain}.novel-metadata-page{height:100%;overflow-y:auto}}@media(max-width:820px){.admin-header-actions:has(.create-novel-button){grid-template-columns:repeat(2,minmax(0,1fr))}.admin-header-actions:has(.create-novel-button) .admin-search{grid-column:1 / -1}.admin-header-actions:has(.create-novel-button) .primary-button,.admin-header-actions:has(.create-novel-button) .secondary-button{width:100%;padding-inline:10px}.manual-novel-create{min-width:min(82vw,294px);margin:0;scroll-snap-align:start}.chapter-management-list{max-height:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px;overflow:visible}.chapter-management-list>header{position:static;grid-column:1 / -1;min-height:48px;padding:0 2px 7px;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.chapter-management-list>button{min-width:0;min-height:62px;display:grid;align-content:center;gap:3px;margin:0;padding:8px 6px;border:1px solid var(--line);border-radius:4px;text-align:center}.chapter-management-list>button.is-selected{border-color:color-mix(in oklch,var(--accent) 62%,var(--line));box-shadow:inset 0 -2px var(--accent)}.chapter-management-list>button span{overflow:hidden;color:var(--accent);font-family:var(--ui-font);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.chapter-management-list>button strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.chapter-management-list>button small{display:none}.chapter-list-empty{grid-column:1 / -1}.chapter-basics-grid{grid-template-columns:minmax(0,1fr) 84px;align-items:end}.chapter-title-field,.chapter-basics-grid .chapter-publish-toggle{grid-column:1 / -1}.chapter-basics-grid .chapter-publish-toggle{justify-content:flex-start}}@media(prefers-reduced-motion:reduce){.admin-header+main,.admin-header+.admin-route-state,.admin-statusbar,.novel-metadata-page,.chapter-management,.add-user-row,.admin-sidebar,.admin-sidebar-backdrop{animation:none!important;transition:none!important}}.admin-app,.admin-app *,.admin-app *:before,.admin-app *:after{box-sizing:border-box}@media(min-width:821px){.user-ledger,.user-detail-paper,.content-tree,.policy-editor,.effective-access,.upload-editor,.reading-preview,.audit-table{scrollbar-width:none;-ms-overflow-style:none}.user-ledger::-webkit-scrollbar,.user-detail-paper::-webkit-scrollbar,.content-tree::-webkit-scrollbar,.policy-editor::-webkit-scrollbar,.effective-access::-webkit-scrollbar,.upload-editor::-webkit-scrollbar,.reading-preview::-webkit-scrollbar,.audit-table::-webkit-scrollbar{width:0;height:0;display:none}.user-ledger{overflow-x:hidden;overflow-y:auto}.user-table{min-width:0}.user-table-header,.user-table-row{grid-template-columns:minmax(190px,1.35fr) 70px minmax(88px,.7fr) 90px minmax(98px,.78fr) 24px}.visibility-workbench{overflow:hidden}.audit-page{display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.audit-table{min-width:0;overflow:auto;overscroll-behavior:contain}.audit-table>header{position:sticky;z-index:2;top:0}.audit-page>footer{min-height:58px;margin:0;padding-top:12px;background:color-mix(in oklch,var(--canvas) 92%,transparent)}}@media(min-width:821px)and (max-width:1100px){.upload-workbench{grid-template-columns:minmax(0,1fr);overflow-y:auto;scrollbar-width:none}.upload-workbench::-webkit-scrollbar{display:none}.upload-editor{overflow:visible;border-right:0;border-bottom:1px solid var(--line)}.reading-preview{min-height:640px}.visibility-workbench{grid-template-columns:260px minmax(0,1fr);overflow-y:auto;scrollbar-width:none}.visibility-workbench::-webkit-scrollbar{display:none}.effective-access{grid-column:2;border-top:1px solid var(--line)}.audit-table>header,.audit-table>div:not(.admin-data-state):not(.admin-empty-state){grid-template-columns:150px 90px 130px minmax(150px,1fr) 38px}.audit-table>header>span:nth-last-child(2),.audit-table>div>code{display:none}}@media(min-width:961px)and (max-width:1220px){.users-workbench{grid-template-columns:minmax(0,1fr) 300px;overflow:hidden}.user-table-header,.user-table-row{grid-template-columns:minmax(160px,1fr) 55px minmax(70px,.6fr) 75px 24px}.user-table-header>span:nth-child(5),.user-table-row>span:nth-child(5){display:none}.user-detail-paper{padding-inline:24px}}@media(min-width:821px)and (max-width:960px){.users-workbench{grid-template-columns:minmax(0,1fr);overflow-y:auto;scrollbar-width:none}.users-workbench::-webkit-scrollbar{display:none}.user-ledger,.user-detail-paper{overflow:visible}.user-detail-paper{border-top:1px solid var(--line);border-left:0}.user-table-header,.user-table-row{grid-template-columns:minmax(160px,1fr) 55px minmax(70px,.6fr) 75px 24px}.user-table-header>span:nth-child(5),.user-table-row>span:nth-child(5){display:none}}@media(max-width:820px){.admin-workspace,.admin-header,.admin-header-actions,.management-workbench,.management-editor,.users-workbench,.visibility-workbench,.upload-workbench,.audit-page{width:100%;min-width:0;max-width:100%}.admin-header-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-header-actions>*{min-width:0}.admin-header-actions>.primary-button:only-child,.admin-header-actions>.secondary-button:only-child,.admin-header-actions>.admin-search:only-child{grid-column:1 / -1;width:100%}.admin-header-actions .primary-button,.admin-header-actions .secondary-button{white-space:nowrap}.admin-header-actions>.admin-search:not(:only-child){grid-column:1}.management-workbench,.users-workbench,.visibility-workbench,.upload-workbench,.audit-page{width:calc(100% - 20px)}.management-list>button{max-width:calc(100vw - 44px)}.management-list strong,.management-list small,.management-list em,.management-editor h2,.detail-email,.policy-editor h2{min-width:0;overflow-wrap:anywhere}.simple-editor>.metadata-fields{width:100%;max-width:none;padding:25px 16px 32px}.simple-editor>header{grid-template-columns:minmax(0,1fr)}.simple-editor>header>div{min-width:0}.editor-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.editor-actions>:only-child{grid-column:2}.editor-actions button{width:100%;min-width:0;padding-inline:10px}.user-table-row>span,.user-table-row .user-cell,.user-table-row .user-cell>span{min-width:0}.user-table-row>span:not(.user-cell){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-cell small{max-width:100%}.detail-email{word-break:break-word}.content-tree nav button{grid-template-columns:8px 18px minmax(0,1fr) auto;padding-left:calc(4px + var(--tree-depth) * 8px)}.content-tree nav small{font-size:9px}.policy-editor h2{font-size:24px;line-height:1.35}.policy-group-picker label,.access-results>div,.preview-chapter-row,.hidden-preview{min-width:0}.file-summary,.parse-success{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:11px 12px}.file-summary>span{min-width:0;overflow:hidden}.file-summary>button{min-width:0;padding:0 4px;text-align:right}.metadata-fields input,.metadata-fields select,.metadata-fields textarea{min-width:0;max-width:100%}.cover-editor{min-width:0}.reading-preview{min-height:0}.reading-preview>header{min-height:0;flex:none;display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:14px}.reading-preview>header>div{min-width:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.reading-preview>header button{min-width:0;justify-content:center;padding-inline:6px;white-space:nowrap}.admin-paper-frame{min-height:clamp(330px,58dvh,520px)}.reading-preview:has(.admin-empty-state) .admin-paper-frame{min-height:330px}.audit-page{overflow:visible}.audit-page>footer{min-height:64px;margin:4px 0 0;padding-bottom:4px}.audit-page>footer button{min-width:96px}}@media(min-width:560px)and (max-width:820px){.metadata-grid{grid-template-columns:minmax(0,1fr) 150px;align-items:start;gap:22px}.cover-editor{padding-top:22px}}@media(max-width:559px){.metadata-grid{display:block}.cover-editor{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:end;gap:12px;margin-top:18px;padding:12px;border:1px solid var(--line);background:color-mix(in oklch,var(--paper) 52%,var(--canvas))}.cover-editor img,.cover-editor .cover-placeholder{width:92px;grid-row:1 / 3;margin:0}.cover-editor button{grid-column:2;align-self:end}.reading-preview>header>div{grid-template-columns:repeat(2,minmax(0,1fr))}.reading-preview>header button{min-height:42px;border:1px solid var(--line);border-bottom-width:1px;border-radius:3px}.reading-preview>header button.is-active{border-color:color-mix(in oklch,var(--accent) 55%,var(--line));box-shadow:inset 0 -2px var(--accent)}.admin-paper-frame,.reading-preview:has(.admin-empty-state) .admin-paper-frame{min-height:300px}.admin-empty-state{min-height:220px;padding:24px 18px}}@media(max-width:820px){.admin-header-actions:has(.create-novel-button){grid-template-columns:repeat(2,minmax(0,1fr))}.admin-header-actions:has(.create-novel-button)>.admin-search{width:100%;grid-column:1 / -1}.admin-header-actions:has(.create-novel-button)>.create-novel-button,.admin-header-actions:has(.create-novel-button)>.import-novel-button{width:100%;justify-content:center}.admin-header-actions:has(.create-novel-button)>.create-novel-button{grid-column:1}.admin-header-actions:has(.create-novel-button)>.import-novel-button{grid-column:2}.novel-management .management-list>button{border:1px solid color-mix(in oklch,var(--line) 94%,var(--ink));background:color-mix(in oklch,var(--paper) 78%,var(--canvas));box-shadow:0 4px 12px #362b200b}.novel-management .management-list>button.is-selected{border-color:color-mix(in oklch,var(--accent) 48%,var(--line));box-shadow:inset 3px 0 var(--accent),0 7px 18px #362b2013}.novel-editor-actions>.preview-novel-button,.novel-editor-actions>.delete-novel-button,.novel-editor-actions>.save-novel-button{width:100%;min-width:0;justify-content:center;padding-inline:8px}.novel-editor-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))}.novel-editor-actions:has(.save-novel-button)>.save-novel-button{grid-row:1;grid-column:1 / -1}.novel-editor-actions:has(.save-novel-button)>.preview-novel-button{grid-row:2;grid-column:1}.novel-editor-actions:has(.save-novel-button)>.delete-novel-button{grid-row:2;grid-column:2}}:root{color-scheme:light;font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;--canvas: #f1eee7;--paper: #f5f1e8;--paper-deep: #e8e1d4;--ink: #29251f;--muted: #756d62;--faint: #a49b8f;--accent: #9b3f1d;--accent-deep: #843315;--line: rgba(74, 63, 50, .17);--line-strong: rgba(74, 63, 50, .3);--positive: #477458;--danger: #9d452c;--display-font: "Noto Serif SC", "Songti SC", "STSong", serif;--ui-font: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--motion-press: .11s;--motion-fast: .18s;--motion-state: .26s;--motion-route: .36s;--motion-signature: .72s;--ease-motion-out: cubic-bezier(.22, 1, .36, 1);--ease-motion-in: cubic-bezier(.4, 0, 1, 1);--ease-motion-emphasis: cubic-bezier(.65, 0, .35, 1)}*{box-sizing:border-box}html{background:var(--canvas)}body{margin:0;min-width:320px;min-height:100vh;color:var(--ink);background:var(--canvas);font-family:var(--ui-font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit}button{color:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:not(:disabled),label[for]{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}:focus-visible{outline:2px solid color-mix(in oklch,var(--accent) 82%,white);outline-offset:3px}::selection{color:var(--paper);background:var(--accent)}.product-root{min-height:100dvh;background:var(--canvas)}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.icon-button{width:44px;height:44px;padding:0;display:inline-grid;place-items:center;border:0;background:transparent;transition:color var(--motion-fast) var(--ease-motion-out),transform var(--motion-press) var(--ease-motion-out)}.icon-button:not(:disabled):active{transform:scale(.94)}.app-toast{position:fixed;z-index:1000;left:50%;bottom:26px;display:flex;align-items:center;gap:9px;min-height:44px;max-width:min(88vw,520px);padding:10px 16px;color:#f5efe5;background:#322d26;box-shadow:0 10px 32px #261f182e;transform:translate(-50%,22px);opacity:0;pointer-events:none;transition:transform .22s cubic-bezier(.22,1,.36,1),opacity .18s ease}.app-toast svg{color:#d48864;flex:0 0 auto}.app-toast.is-visible{transform:translate(-50%);opacity:1}.progress-track{display:inline-block;height:3px;overflow:hidden;background:#c9c1b5}.progress-track>span{display:block;height:100%;background:var(--accent)}.app-loading,.reader-route-state{min-height:100dvh;display:grid;align-content:center;justify-items:center;gap:14px;padding:32px;color:var(--muted);background:var(--canvas);text-align:center}.reader-route-state strong{color:var(--ink);font-family:var(--display-font);font-size:22px}.reader-route-state p{margin:0}.reader-route-state button{min-width:128px;margin-top:8px;padding:11px 20px;border:1px solid var(--line-strong);border-radius:999px;background:var(--paper)}.reader-data-state{margin:0 0 16px;padding:11px 14px;color:var(--muted);border:1px solid var(--line);background:color-mix(in srgb,var(--paper) 84%,transparent);font-size:13px}.reader-data-state.is-error,.reader-route-state.is-error{color:var(--danger)}.login-page{min-height:100dvh;display:grid;place-items:center;padding:clamp(20px,5vw,56px);overflow:hidden;background:radial-gradient(circle at 18% 16%,rgba(255,255,255,.78),transparent 30%),linear-gradient(135deg,#e5dfd3,var(--canvas) 48%,#ded6c8)}.login-paper{position:relative;width:min(100%,430px);padding:clamp(34px,7vw,54px);border:1px solid rgba(89,72,50,.14);background:linear-gradient(90deg,rgba(105,82,52,.035) 1px,transparent 1px) 0 0 / 7px 100%,#f6f1e7;box-shadow:0 24px 70px #4233232e,0 3px 8px #42332317}.login-paper:after{position:absolute;right:0;bottom:0;width:68px;height:68px;content:"";background:linear-gradient(135deg,transparent 49%,#e3dacb 50%);filter:drop-shadow(-5px -4px 5px rgba(66,51,35,.08));pointer-events:none}.login-mark{width:52px;height:52px;display:grid;place-items:center;margin-bottom:28px;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 38%,transparent);border-radius:50%}.login-eyebrow{margin:0 0 8px;color:var(--accent);font-size:12px;letter-spacing:.16em}.login-paper h1{margin:0;font-family:var(--display-font);font-size:clamp(30px,7vw,42px);font-weight:500;letter-spacing:.06em}.login-intro,.login-guest-note{color:var(--muted);line-height:1.7}.login-paper form{display:grid;gap:18px;margin-top:34px}.login-paper label{display:grid;gap:8px;color:var(--muted);font-size:13px}.login-paper input{width:100%;padding:12px 2px;color:var(--ink);border:0;border-bottom:1px solid var(--line-strong);border-radius:0;outline:0;background:transparent;font-size:16px}.login-paper input:focus{border-color:var(--accent)}.login-paper form>button{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding:14px 18px;color:#fff9ee;border:0;background:var(--accent);box-shadow:0 7px 18px #7830172e}.login-error{display:flex;align-items:center;gap:8px;margin:0;color:var(--danger);font-size:13px}.login-guest-note{margin:24px 0 0;padding-right:44px;font-size:12px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
