.header-user-area{justify-self:end;min-width:0}.header-auth-links{align-items:center;gap:22px;font-size:13px;line-height:24px;display:flex}.header-auth-links a:first-child{color:var(--muted)}.header-auth-links a{align-items:center;min-height:44px;display:inline-flex}.header-auth-links a:hover{color:var(--brand-primary)}.header-auth-loading{color:var(--muted);font-size:11px}.header-auth-retry{color:var(--muted);background:0 0;border:0;padding:8px 0;font-size:12px}.header-persona-trigger{max-width:100%;min-height:44px;color:var(--muted);background:0 0;border:0;border-radius:4px;align-items:center;gap:7px;padding:4px 6px;display:flex}.header-persona-trigger:hover{color:var(--brand-primary);background:var(--brand-soft)}.header-persona .fui-Persona__primaryText{color:var(--ink);font-size:13px;font-weight:600;line-height:18px}.header-persona .fui-Persona__secondaryText{color:var(--muted);font-size:11px;line-height:16px}.header-persona :is(.fui-Persona__primaryText,.fui-Persona__secondaryText){text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.header-user-menu{border-color:var(--line);min-width:176px}.header-auth-action-error{border:1px solid var(--line);background:var(--paper);color:#925247;align-items:center;gap:16px;max-width:min(340px,100vw - 40px);padding:12px 16px;font-size:12px;line-height:1.7;display:flex;position:absolute;top:70px;right:24px}.header-auth-action-error button{background:0 0;border:0;padding:3px;display:flex}@media (width<=699px){.header-inner{grid-template-columns:minmax(0,1fr) auto auto;column-gap:16px}.header-auth-links{gap:14px;font-size:12px}.header-persona-trigger{gap:4px;padding-left:0}.header-persona :is(.fui-Persona__primaryText,.fui-Persona__secondaryText){max-width:80px}}@media (width<=479px){.header-persona :is(.fui-Persona__primaryText,.fui-Persona__secondaryText){max-width:58px}}.tag-chips{flex-wrap:wrap;gap:8px;display:flex}.book-tag{background:var(--field-background);color:var(--muted);overflow-wrap:anywhere;border:1px solid #0000;border-radius:3px;align-items:center;gap:5px;padding:4px 9px;font-size:12px;line-height:1.5;display:inline-flex}.book-tag:hover,.book-tag[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.book-tag button{color:inherit;background:0 0;border:0;padding:2px;display:inline-flex}.tag-entry{gap:10px;padding-top:8px;display:flex}.tag-entry input{flex:1;min-width:0}.tag-entry .button-secondary{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.tag-filter{padding-bottom:16px;font-size:13px}.tag-filter summary{cursor:pointer;color:var(--muted);width:fit-content;padding:8px 0}.tag-filter-content{gap:12px;max-width:600px;padding:12px 0;display:grid}.tag-filter-content label{align-items:center;gap:12px;display:flex}.tag-filter-content input{border:1px solid var(--line);background:var(--surface);border-radius:3px;flex:1;min-width:0;padding:8px 10px}.tag-filter-options{flex-wrap:wrap;gap:8px;display:flex}.book-completion-badge{color:var(--subtle);white-space:nowrap;padding-left:5px;font-size:12px}.book-completion-badge[data-completed=true]{color:var(--accent)}.reader-context-menu{z-index:100;border:1px solid var(--line);background:var(--surface);border-radius:4px;min-width:190px;max-height:calc(100dvh - 16px);padding:5px;position:fixed;overflow-y:auto;box-shadow:0 6px 20px #20282014}.reader-context-menu button{text-align:left;width:100%;font:inherit;color:var(--ink);background:0 0;border:0;border-radius:2px;padding:10px 12px;font-size:13px;display:block}.reader-context-menu button:hover,.reader-context-menu button:focus-visible{background:var(--accent-soft)}.reader-info-dialog{border:1px solid var(--line);background:var(--surface);width:min(700px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--ink);border-radius:5px;padding:28px}.reader-info-dialog::backdrop{background:#15211555}.reader-info-dialog>header{justify-content:space-between;align-items:center;gap:16px;padding-bottom:24px;display:flex}.reader-info-dialog h2{margin:0;font-size:20px;font-weight:600}.reader-info-dialog header button{background:0 0;border:0;padding:5px;display:flex}.reader-book-dialog{grid-template-columns:150px minmax(0,1fr);gap:24px;display:grid}.reader-book-dialog h3{margin:0 0 16px;font-size:20px;line-height:1.6}.reader-book-dialog dl>div,.reader-properties>div{grid-template-columns:80px minmax(0,1fr);gap:12px;padding:7px 0;font-size:13px;line-height:1.8;display:grid}.reader-book-dialog dt,.reader-properties dt{color:var(--muted)}.reader-info-dialog dd{overflow-wrap:anywhere;margin:0}.reader-book-dialog p{white-space:pre-wrap;overflow-wrap:anywhere;padding-top:12px;font-size:14px;line-height:1.85}.reader-copy-dialog{gap:14px;font-size:13px;display:grid}.reader-copy-dialog>p{margin:0;line-height:1.8}.reader-copy-dialog input{border:1px solid var(--line);background:var(--paper);width:100%;color:var(--ink);padding:12px;font:12px/1.7 monospace}.reader-copy-dialog>button{justify-self:end}@media (width<=599px){.reader-info-dialog{padding:20px}.reader-book-dialog{grid-template-columns:100px minmax(0,1fr);gap:16px}.reader-book-dialog h3{font-size:17px}}.reader-comments-column{background:var(--surface)}.comments-rail{background:var(--surface);width:100%;height:100%;color:var(--muted);cursor:pointer;border:0;flex-direction:column;align-items:center;gap:14px;padding:18px 0;font-size:12px;display:flex}.comments-rail span{writing-mode:vertical-rl;letter-spacing:3px}.comments-rail:hover{background:var(--paper);color:var(--ink)}.comments-heading{background:var(--surface);border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);flex:0 0 56px;justify-content:space-between;align-items:center;padding:0 20px;font-size:14px;font-weight:600;display:flex}.comments-panel{flex-direction:column;flex:1;min-height:0;display:flex}.comments-panel[hidden]{display:none}.comments-scroll{overscroll-behavior:contain;scrollbar-width:thin;flex:1;min-height:0;padding:0 20px;overflow:auto}.comment-thread{border-bottom:1px solid var(--line);padding:20px 0}.book-comment-meta{align-items:flex-start;gap:10px;font-size:13px;line-height:1.7;display:flex}.book-comment-meta>div{overflow-wrap:anywhere;flex:1;min-width:0}.book-comment-meta a{font-weight:600}.book-comment-meta time{color:var(--subtle);padding-top:3px;font-size:12px;display:block}.comment-avatar{object-fit:contain;border-radius:50%;flex:0 0 28px;width:28px;height:28px}.comment-initial{background:var(--paper);place-items:center;display:grid}.comment-floor{color:var(--subtle);white-space:nowrap;font-size:11px}.comment-text,.comment-deleted{white-space:pre-wrap;overflow-wrap:anywhere;padding:12px 0 0 38px;font-size:14px;line-height:1.9}.comment-deleted,.comment-reply-to{color:var(--subtle);font-weight:400}.comment-actions{gap:14px;padding:8px 0 0 38px;display:flex}.comment-actions button,.comment-show-replies,.comments-pagination button,.comment-error button{min-height:32px;color:var(--muted);background:0 0;border:0;padding:4px 0;font-size:12px}.comment-actions button:hover,.comment-show-replies:hover,.comments-pagination button:hover{color:var(--accent)}.comment-show-replies{padding:10px 0 0 38px}.comment-replies{border-left:1px solid var(--brand-border);padding-left:20px}.book-comment-reply{padding-top:20px}.comment-empty{color:var(--muted);padding:24px 0;font-size:13px;line-height:1.8}.comment-empty .empty-state-icon{margin-bottom:14px!important}.comment-actions .comment-delete{color:var(--danger)}.comment-error{color:#925247;padding-top:12px;font-size:12px;line-height:1.75}.comments-pagination{color:var(--muted);justify-content:space-between;align-items:center;padding:18px 0;font-size:11px;display:flex}.comments-pagination button:disabled{opacity:.4;cursor:default}.comments-composer{border-top:1px solid var(--line);flex-shrink:0;max-height:45%;padding:16px 20px;font-size:12px;overflow-y:auto}.comments-composer>a{color:var(--accent);padding:4px 0;display:block}.comments-composer textarea,.comment-edit textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:70px;max-height:170px;font:inherit;background:var(--surface);border-radius:3px;padding:10px;font-size:13px;line-height:1.7}.comment-edit{padding-top:12px}.comment-edit .comment-actions{justify-content:flex-end;padding-left:0}.comment-submit-row{justify-content:space-between;align-items:center;gap:12px;padding-top:10px;display:flex}.comment-submit-row>span{color:var(--subtle);font-size:10px}.comment-submit-row .button-primary{min-height:40px;padding:8px 14px;font-size:13px}.comment-notice{color:var(--muted);padding-top:8px;font-size:11px}.comment-reply-banner{color:var(--muted);justify-content:space-between;padding-bottom:10px;display:flex}.comment-reply-banner button{background:0 0;border:0;padding:0}.reader-workspace .comment-confirm{margin:auto!important}.comment-confirm{border:1px solid var(--line);border-radius:5px;max-width:min(420px,100vw - 32px);padding:28px}.comment-confirm::backdrop{background:#0005}.comment-confirm h2{font-size:18px}.comment-confirm p{color:var(--muted);padding:14px 0 22px;font-size:13px;line-height:1.8}.comment-confirm>div{justify-content:flex-end;gap:12px;display:flex}.comments-rail{justify-content:center;gap:0;padding:0}.dashboard-shell{background:var(--paper,#fff);flex-direction:column;height:100dvh;min-height:0;display:flex;overflow:hidden}.dashboard-shell .site-header{flex:none}.dashboard-shell .header-inner{width:100%;max-width:none;margin:0;padding-left:24px;padding-right:24px}@media (width<=479px){.dashboard-shell .header-inner{column-gap:10px;padding-left:16px;padding-right:16px}}.dashboard-body{flex:1;grid-template-columns:220px minmax(0,1fr);min-height:0;display:grid}.dashboard-navigation{border-right:1px solid var(--line,#e4e6e3);background:#f8f9f7;padding:28px 16px;overflow:auto}.dashboard-navigation>p{color:#737a72;padding:0 12px 14px;font-size:12px}.dashboard-navigation nav{flex-direction:column;gap:4px;display:flex}.dashboard-navigation a{color:#5a635b;border-radius:4px;padding:12px;font-size:14px;text-decoration:none}.dashboard-navigation a:hover{background:#eef0ec}.dashboard-navigation a.active{color:#273b2e;background:#e8ede6;font-weight:600}.dashboard-content{min-width:0;min-height:0;padding:36px clamp(20px,3vw,48px) 64px;overflow:auto}.admin-heading{padding-bottom:28px}.admin-heading h1{letter-spacing:-.6px;margin:0;font-size:28px;font-weight:600;line-height:1.3}.admin-heading p,.admin-muted{color:#72796f;font-size:13px;line-height:1.7}.admin-heading p{margin:0;padding-top:10px}.admin-heading-row,.admin-subheading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.admin-subheading{justify-content:flex-start;padding:28px 0 20px}.admin-subheading h2{flex:1;margin:0;font-size:19px}.admin-statistics{border-bottom:1px solid #e3e6e0;grid-template-columns:repeat(4,minmax(100px,1fr));margin:0;padding:20px 0 32px;display:grid}.admin-statistics>div{border-left:1px solid #e3e6e0;padding:0 24px}.admin-statistics>div:first-child{border:0;padding-left:0}.admin-statistics dt{color:#657060;font-size:13px}.admin-statistics dd{font-variant-numeric:tabular-nums;margin:0;padding-top:12px;font-size:36px;font-weight:500}.admin-table-scroll{width:100%;overflow-x:auto}.admin-table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}.admin-table th{color:#72796f;white-space:nowrap;border-bottom:1px solid #d8dfd5;font-size:12px;font-weight:500}.admin-table th,.admin-table td{border-bottom:1px solid #e9ece6;padding:14px 12px}.admin-table th:first-child,.admin-table td:first-child{padding-left:0}.admin-id{color:#72796f;font-family:monospace;font-size:11px}.admin-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.admin-actions>button:not(.button-primary):not(.button-secondary),.admin-pagination button{color:#46644b;cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:4px 0;font-size:12px}.admin-actions>button:disabled,.admin-pagination button:disabled{cursor:default;color:#a0a69d}.admin-filters{flex-wrap:wrap;align-items:center;gap:10px;padding-bottom:22px;display:flex}.admin-filters input{flex:1;min-width:160px}.admin-filters input,.admin-filters select,.admin-subheading select,.admin-form input:not([type=checkbox]),.admin-form select{color:#283229;background:#fff;border:1px solid #d8dfd4;border-radius:4px;max-width:100%;height:40px;padding:8px 12px}.admin-pagination{color:#70796b;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:22px;padding-top:20px;font-size:12px;display:flex}.admin-pagination span{flex:1}.admin-user-cell{white-space:nowrap;align-items:center;gap:10px;display:flex}.admin-user-cell small{color:#7a8274;padding-top:4px;display:block}.admin-avatar{background:#f1f2ee;border-radius:50%;flex:none;justify-content:center;align-items:center;width:36px;height:36px;display:flex;overflow:hidden}.admin-avatar img{object-fit:cover;width:100%;height:100%}.admin-error{color:#943a32;font-size:13px;line-height:1.7}.admin-empty{color:#7d8378;padding:24px 0;font-size:14px}.admin-dialog{box-sizing:border-box;color:#293328;background:#fff;border:1px solid #dce1d7;border-radius:8px;width:min(760px,100vw - 32px);max-height:calc(100dvh - 40px);padding:26px;overflow:auto}.admin-dialog::backdrop{background:#151c144d}.admin-dialog>header{justify-content:space-between;align-items:center;gap:16px;padding-bottom:22px;display:flex}.admin-dialog h2{margin:0;font-size:20px}.admin-dialog>header>button{cursor:pointer;background:0 0;border:0;padding:6px;font-size:24px;line-height:1}.admin-dialog>p{font-size:14px;line-height:1.75}.admin-dialog footer{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;padding-top:24px;display:flex}.admin-dialog footer>span{flex:1;font-size:13px}.admin-form{flex-direction:column;gap:18px;display:flex}.admin-form>label{flex-direction:column;gap:8px;font-size:13px;display:flex}.admin-form .admin-checkbox{flex-direction:row;align-items:center}.admin-checkbox input{width:16px;height:16px}.admin-form p{margin:0}.admin-detail{margin:0;padding-bottom:24px}.admin-detail>div{border-bottom:1px solid #edf0e9;grid-template-columns:100px 1fr;gap:12px;padding:12px 0;font-size:13px;display:grid}.admin-detail dt{color:#757c70}.admin-detail dd{overflow-wrap:anywhere;margin:0}.admin-avatar-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:28px 24px;display:grid}.admin-preset{border-bottom:1px solid #e4e9df;min-width:0;padding-bottom:22px}.admin-preset>img{object-fit:contain;background:#f7f8f4;border-radius:4px;width:120px;height:120px}.admin-preset h3{margin:14px 0 8px;font-size:14px}.admin-preset p{color:#7b8273;font-size:11px}.admin-preset>strong{color:#456344;padding:0 0 12px;font-size:12px;display:block}.admin-preset-preview{object-fit:cover;border-radius:4px;width:128px;height:128px}.admin-recommendation-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:32px 24px;display:grid}.admin-slot{min-width:0}.admin-slot-number{color:#8a9182;font-variant-numeric:tabular-nums;padding-bottom:10px;font-size:12px;display:block}.admin-slot h2{overflow-wrap:anywhere;margin:12px 0 6px;font-size:14px;line-height:1.55}.admin-slot>p{color:#76806d;margin:0;padding:0 0 12px;font-size:12px}.admin-empty-slot{width:100%;aspect-ratio:var(--book-cover-aspect-ratio);color:#718268;cursor:pointer;background:#f8f9f5;border:1px dashed #d5ddce;border-radius:2px;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:13px;display:flex}.admin-empty-slot:hover{background:#f0f3eb;border-color:#8b9c7f}.admin-empty-slot>span{font-size:28px;font-weight:300}.admin-book-choices{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;max-height:45dvh;padding:4px;display:grid;overflow:auto}.admin-book-choices>button{text-align:left;cursor:pointer;background:#fff;border:1px solid #0000;border-radius:3px;min-width:0;padding:5px}.admin-book-choices>button.selected{background:#f0f5ed;border-color:#557b53}.admin-book-choices>button:disabled{opacity:.5;cursor:default}.admin-book-choices>button>span{padding-top:8px;font-size:12px;line-height:1.5;display:block}.admin-book-choices small{color:#7d8575;padding-top:4px;display:block}.preset-category-nav{flex-wrap:wrap;gap:8px;padding-bottom:20px;display:flex}.preset-category-nav button{cursor:pointer;background:#fff;border:1px solid #e0e5d8;border-radius:4px;padding:8px 14px;font-size:13px}.preset-category-nav button[aria-pressed=true]{background:#eaf1e4;border-color:#6c8860}.preset-choice-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:12px;max-height:42dvh;display:grid;overflow:auto}.preset-choice-grid button{cursor:pointer;background:#fff;border:1px solid #0000;border-radius:4px;padding:8px;font-size:12px}.preset-choice-grid button[aria-pressed=true]{background:#eff4e9;border-color:#66875e}.preset-choice-grid img{aspect-ratio:1;object-fit:contain;width:100%;padding-bottom:8px;display:block}.preset-selected{align-items:center;gap:12px;padding-top:20px;font-size:13px;display:flex}.preset-selected img{object-fit:cover;width:56px;height:56px}@media (width<=850px){.dashboard-body{grid-template-columns:165px minmax(0,1fr)}.dashboard-navigation{padding:24px 8px}.dashboard-content{padding:24px 16px 48px}.admin-statistics{grid-template-columns:repeat(2,1fr);row-gap:28px}.admin-statistics>div:nth-child(3){border:0;padding-left:0}}@media (width<=560px){.dashboard-body{flex-direction:column;display:flex}.dashboard-navigation{border-bottom:1px solid #e4e8dc;border-right:0;flex:none;padding:8px;overflow-x:auto}.dashboard-navigation>p{display:none}.dashboard-navigation nav{flex-direction:row;width:max-content}.dashboard-navigation a{white-space:nowrap;padding:10px}.dashboard-content{flex:1}.admin-book-choices{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-dialog{padding:20px}}.admin-cleanup{border-top:1px solid var(--line);padding-top:32px}.admin-cleanup h2{padding-bottom:16px;font-size:18px}.admin-cleanup p,.admin-cleanup li{overflow-wrap:anywhere;padding-bottom:12px;font-size:13px;line-height:1.8}.admin-avatar-tabs{max-width:100%;padding-bottom:24px;overflow-x:auto}.admin-avatar-tabs [role=tablist]{width:max-content;min-width:100%}.prose .reading-code-block{background:#fff;border:1px solid #dfe4db;border-radius:4px;min-width:0;max-width:100%;margin:24px 0;overflow:hidden}.reading-code-block figcaption{color:var(--muted);border-bottom:1px solid #dfe4db;justify-content:space-between;align-items:center;gap:16px;padding:10px 16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:11px;line-height:1.5;display:flex}.reading-code-block figcaption>span{letter-spacing:.04em}.reading-code-block button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:3px 0;display:inline-flex}.reading-code-block button:hover{color:var(--ink)}.prose .reading-code-block pre{color:var(--ink);tab-size:4;white-space:pre;overflow-wrap:normal;background:#fff;border:0;border-radius:0;min-width:max-content;margin:0;padding:16px 20px;font:14px/1.8 Ubuntu Mono,Ubuntu,monospace;overflow:visible}.prose .reading-code-block pre code{font:inherit;background:0 0;padding:0}.prose .reading-code-block .code-copy-error{color:#925247;margin:0;padding:0 16px 12px;font:12px/1.7 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.prose img{max-width:100%;height:auto;margin:0;display:block}@media (width<=599px){.prose .reading-code-block pre{padding:16px;font-size:14px}}.reading-code-scroll{background:#fff;max-height:480px;overflow:auto}.reading-code-lines{grid-template-columns:auto minmax(max-content,1fr);align-items:stretch;width:max-content;min-width:100%;display:grid}.reading-code-gutter{z-index:1;color:#929a8d;text-align:right;-webkit-user-select:none;user-select:none;background:#fafafa;border-right:1px solid #edf0eb;padding:16px 12px;font:14px/25.2px Ubuntu Mono,Ubuntu,monospace;position:sticky;left:0}.reading-code-gutter span{height:25.2px;display:block}.reading-code-block .tok-keyword{color:#88509b}.reading-code-block .tok-string,.reading-code-block .tok-string2{color:#44714c}.reading-code-block .tok-number,.reading-code-block .tok-atom,.reading-code-block .tok-bool{color:#956430}.reading-code-block .tok-comment{color:#848a80;font-style:italic}.reading-code-block .tok-typeName,.reading-code-block .tok-className{color:#28677a}.reading-code-block .tok-propertyName,.reading-code-block .tok-variableName{color:#345777}.reading-code-block .tok-operator,.reading-code-block .tok-punctuation{color:#6f736b}.reading-code-block .tok-tagName{color:#975343}.book-management-dialog{background:var(--surface);width:1024px;max-width:100vw;height:96dvh;max-height:96dvh;color:var(--ink);border:0;border-radius:6px;margin:auto;padding:0;position:fixed;inset:0;overflow:hidden;box-shadow:0 8px 32px #25301d1a}.book-management-dialog[open]{flex-direction:column;display:flex}.book-management-dialog--chapters{width:86vw}.book-management-dialog::backdrop{background:#0008}.book-management-dialog-heading{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:20px;min-height:60px;padding:12px 24px;display:flex}.book-management-dialog-heading h2{font-size:17px;font-weight:600;line-height:1.5}.book-management-dialog--new-book .book-management-dialog-heading{min-height:60px}.book-management-close{width:34px;height:34px;color:var(--muted);background:0 0;border:0;border-radius:4px;place-items:center;padding:0;display:grid}.book-management-close:hover:not(:disabled){background:var(--accent-soft);color:var(--ink)}.book-management-dialog-content{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.book-management-dialog-footer{border-top:1px solid var(--line);background:var(--surface);flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:12px;padding:16px 24px;display:flex}.book-management-dialog-footer button:disabled,.book-management-close:disabled{opacity:.55}.book-management-dialog :is(.chapter-manage-shell,.book-form-shell){flex-direction:column;flex:1;width:100%;min-width:0;max-width:none;min-height:0;margin:0;padding:24px 32px;display:flex;overflow:hidden}.book-management-dialog .chapter-manage-layout{flex:1;grid-template-rows:minmax(0,1fr);min-height:0}.book-management-dialog .chapter-manage-directory{flex-direction:column;height:100%;min-height:0;display:flex;position:static}.book-management-dialog .chapter-directory-heading{flex-shrink:0}.book-management-dialog .chapter-manage-list{flex:1;min-height:0;max-height:none}.book-management-dialog .chapter-editor-area{overscroll-behavior-y:contain;height:100%;min-height:0;padding:0 8px 8px 0;overflow-y:auto}.book-management-dialog .chapter-editor-status{color:var(--muted);margin-top:20px;font-size:12px;line-height:1.8}.book-management-dialog .book-form{flex:1;min-height:0}.book-management-dialog .book-form-layout{grid-template-rows:minmax(0,1fr);height:100%;min-height:0}.book-management-dialog .book-cover-picker{flex-direction:column;height:100%;min-height:0;display:flex}.book-management-dialog .book-cover-picker>:not(.cover-picker-button){flex-shrink:0}.book-management-dialog .cover-picker-button{flex-shrink:1;min-height:0}.book-management-dialog .cover-picker-button>.book-cover{height:100%}.book-management-dialog .book-form-main{overscroll-behavior-y:contain;height:100%;min-height:0;padding:0 8px 8px 0;overflow-y:auto}@media (width<=899px){.book-management-dialog--chapters .chapter-manage-layout{grid-template-rows:auto minmax(0,1fr);gap:24px}.book-management-dialog .chapter-manage-directory{height:auto;max-height:calc(30dvh + 44px)}.book-management-dialog .chapter-manage-list{max-height:260px}}@media (width<=699px){.book-management-dialog :is(.chapter-manage-shell,.book-form-shell){padding:16px}.book-management-dialog-heading{padding:10px 16px}.book-management-dialog-footer{padding:12px 16px}.book-management-dialog .book-form-layout{grid-template-columns:105px minmax(0,1fr);gap:16px}.book-management-dialog .book-cover-picker{width:100%}.book-management-dialog .cover-picker-actions{flex-wrap:wrap;gap:4px 12px}.book-management-dialog .cover-picker-overlay{gap:4px;padding:10px 4px;font-size:10px}}.chapter-manage-shell{max-width:1440px;margin:auto;padding:31px 48px 72px;position:relative}.chapter-manage-shell>.back-link{overflow-wrap:anywhere;max-width:100%}.chapter-manage-layout{grid-template-columns:330px minmax(0,1fr);align-items:start;gap:64px;display:grid}.chapter-manage-directory{min-width:0;position:sticky;top:90px}.chapter-directory-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;padding-bottom:17px;display:flex}.chapter-directory-heading h2{font-size:13px;font-weight:600}.chapter-directory-heading button{color:var(--accent);background:0 0;border:0;align-items:center;gap:5px;padding:5px 0;font-size:12px;display:inline-flex}.chapter-directory-actions{flex-shrink:0;align-items:center;gap:14px;display:flex}.chapter-directory-heading h2,.chapter-directory-actions button{white-space:nowrap}.chapter-operation-overlay{z-index:50;cursor:wait;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.chapter-batch-dialog label{margin-top:20px;font-size:13px;display:block}.chapter-batch-dialog input{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:4px;margin-top:10px;padding:10px 12px;display:block}.chapter-batch-dialog .chapter-batch-warning{color:#925c28}.chapter-batch-dialog .chapter-editor-error{color:#925247}.chapter-manage-list{scrollbar-width:thin;max-height:calc(100dvh - 220px);margin:0;padding:7px 0;list-style:none;overflow-y:auto}.chapter-manage-list li{align-items:center;gap:7px;padding:3px 0;display:flex}.chapter-select{min-width:0;color:var(--muted);text-align:left;overflow-wrap:anywhere;background:0 0;border:0;border-radius:3px;flex:1;padding:10px 9px;font-size:13px;line-height:1.7}.chapter-select:hover{color:var(--ink);background:#f0f2ec}.chapter-select[aria-current=page]{background:var(--accent-soft);color:var(--ink);font-weight:600}.chapter-row-actions{flex-shrink:0;gap:1px;display:flex}.chapter-row-actions button{width:24px;height:29px;color:var(--muted);background:0 0;border:0;border-radius:3px;place-items:center;display:grid}.chapter-row-actions button:hover:not(:disabled){color:var(--ink);background:#eef0e9}.chapter-manage-shell button:disabled{opacity:.45}.chapter-directory-empty{color:var(--muted);padding-top:22px;font-size:13px;line-height:1.8}.chapter-editor-area{min-width:0}@media (width>=900px){#root:has(>.chapter-manage-shell>.chapter-manage-layout){height:100dvh;overflow:clip}.chapter-manage-layout>.chapter-editor-area{contain:size;overscroll-behavior-y:contain;align-self:stretch;min-height:0;overflow-y:auto}}.chapter-editor-intro{margin-bottom:28px}.chapter-editor h2,.chapter-empty-editor h2{font-size:22px;font-weight:600;line-height:1.5}.chapter-editor-intro p,.chapter-empty-editor p{color:var(--muted);margin-top:9px;font-size:12px;line-height:1.9}.chapter-title-field label,.chapter-field-heading>label{font-size:13px;font-weight:500;line-height:1.7}.chapter-title-field input{margin-top:10px}.chapter-editor :is(input,textarea,select){background:var(--surface);min-width:0;max-width:100%;color:var(--ink);font:inherit;border:1px solid #d8ddd3;border-radius:4px;padding:10px 13px;font-size:14px;line-height:1.7}.chapter-editor input,.chapter-editor textarea{width:100%;display:block}.chapter-editor input{height:46px}.chapter-editor textarea{resize:vertical;min-height:210px}.chapter-editor :is(input,textarea,select):focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.chapter-html-field{margin-top:30px}.chapter-editor-tabs{border-bottom:1px solid var(--line);gap:24px;margin-top:24px;display:flex}.chapter-editor-tabs>button{color:var(--muted);font:inherit;background:0 0;border:0;border-bottom:2px solid #0000;padding:12px 0;font-size:14px}.chapter-editor-tabs>button[aria-selected=true]{border-bottom-color:var(--accent);color:var(--accent);font-weight:600}.chapter-editor-tabs>button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.chapter-editor-panel[hidden]{display:none}.chapter-editor-panel>.chapter-html-field{margin-top:20px}.chapter-field-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.chapter-mode-label{color:var(--muted);align-items:center;gap:10px;font-size:11px;display:flex}.chapter-mode-label select{padding:5px 8px;font-size:12px}.chapter-field-hint{color:var(--muted);margin:8px 0 12px;font-size:11px;line-height:1.8}.chapter-editor textarea.chapter-source{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px}.chapter-preview{margin-top:12px}.chapter-preview summary{cursor:pointer;color:var(--muted);width:fit-content;font-size:12px}.chapter-preview .prose{border-top:1px solid var(--line);margin-top:16px;padding:20px 0;font-size:16px}.chapter-editor-actions{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;margin-top:30px;padding-top:24px;display:flex}.chapter-editor-actions p{color:var(--muted);font-size:12px}.chapter-editor-error{color:#925247;overflow-wrap:anywhere;margin-top:20px;font-size:13px;line-height:1.8}.chapter-result-dialog{border:1px solid var(--line);background:var(--surface);width:420px;max-width:calc(100vw - 40px);max-height:calc(100dvh - 40px);color:var(--ink);border-radius:6px;margin:auto;padding:28px;overflow-y:auto}.chapter-result-dialog::backdrop{background:#0006}.chapter-result-success{color:#238636}.chapter-result-failure{color:#c63838}.chapter-result-dialog h2{margin-top:16px;font-size:20px;font-weight:600;line-height:1.5}.chapter-result-dialog p{color:var(--muted);overflow-wrap:anywhere;margin-top:12px;font-size:13px;line-height:1.8}.chapter-result-actions{justify-content:flex-end;margin-top:24px;display:flex}.chapter-conflict{flex-wrap:wrap;align-items:center;gap:8px 24px;margin-top:12px;font-size:12px;line-height:1.8;display:flex}.chapter-conflict a{color:var(--accent)}.chapter-conflict p{color:var(--muted);width:100%}.detail-owner-links{flex-wrap:wrap;gap:22px;display:flex}.prose h1{margin:36px 0 20px;font-size:30px;font-weight:600;line-height:1.45}@media (width<=1099px){.chapter-manage-shell{padding-left:36px;padding-right:36px}.chapter-manage-layout{grid-template-columns:260px minmax(0,1fr);gap:36px}}@media (width<=899px){.chapter-manage-layout{grid-template-columns:minmax(0,1fr);gap:32px}.chapter-manage-directory{position:static}.chapter-manage-list{max-height:260px}}@media (width<=699px){.chapter-manage-shell{padding:22px 24px 48px}.chapter-field-heading{flex-wrap:wrap;gap:12px}.chapter-mode-label{gap:7px}.chapter-confirm{padding:24px}}@media (width<=479px){.chapter-manage-shell{padding-left:20px;padding-right:20px}}.chapter-summary-field{gap:10px;margin-top:15px;display:grid}.chapter-summary-field label{font-size:13px;font-weight:600}.chapter-summary-field label span,.chapter-summary-field p{color:var(--muted);font-size:12px;font-weight:400}.chapter-summary-field textarea{resize:vertical;border:1px solid var(--line);width:100%;height:105px;min-height:105px;font:inherit;background:var(--surface);border-radius:3px;padding:12px;line-height:1.75}.book-form-shell{max-width:1096px;margin:auto;padding:31px 48px 64px}.book-form-heading{margin:9px 0 38px}.book-form-heading h1{letter-spacing:-1px;font-size:36px;font-weight:600;line-height:1.35}.book-form-heading>p:last-child{color:var(--muted);margin-top:12px;font-size:13px;line-height:1.8}.book-form-local-label{letter-spacing:.8px;color:var(--muted);margin-bottom:13px;font-size:11px}.book-form-layout{grid-template-columns:260px minmax(0,1fr);align-items:start;gap:64px;display:grid}.book-cover-picker{min-width:0}.book-cover-picker h2{margin-bottom:12px;font-size:13px;font-weight:500;line-height:1.5}.book-cover-picker h2 span,.book-form-field label span{color:var(--subtle);margin-left:10px;font-size:11px;font-weight:400}.cover-picker-button{width:100%;aspect-ratio:var(--book-cover-aspect-ratio);text-align:left;background:#e7e3d8;border:0;border-radius:2px;padding:0;display:block;position:relative;overflow:hidden}.cover-picker-button .book-cover{box-shadow:none}.cover-picker-image{object-fit:contain;width:100%;height:100%;display:block}.cover-picker-overlay{color:var(--ink);background:#f7f8f3ec;border-top:1px solid #ffffff80;justify-content:center;align-items:center;gap:8px;padding:13px 8px;font-size:12px;transition:background .15s;display:flex;position:absolute;inset:auto 0 0}.cover-picker-button:hover .cover-picker-overlay{background:#fff}.cover-picker-actions{justify-content:space-between;gap:16px;margin-top:13px;display:flex}.cover-picker-actions button,.book-text-button{color:var(--muted);background:0 0;border:0;padding:6px 0;font-size:12px}.cover-picker-actions button:hover,.book-text-button:hover{color:var(--ink)}.cover-picker-hint{color:var(--muted);margin-top:14px;font-size:11px;line-height:1.9}.book-form-main{min-width:0}.book-form-fields{border:0;flex-direction:column;gap:24px;min-width:0;margin:0;padding:0;display:flex}.book-form-field{min-width:0}.book-form-field label{margin-bottom:10px;font-size:13px;font-weight:500;line-height:1.5;display:block}.book-form-field input,.book-form-field select,.book-form-field textarea{background:var(--surface);width:100%;min-width:0;color:var(--ink);font:inherit;border:1px solid #d8ddd3;border-radius:4px;padding:11px 13px;font-size:14px;line-height:1.6;transition:border-color .15s,box-shadow .15s}.book-form-field input,.book-form-field select{height:46px}.book-form-field select{padding-right:28px}.book-form-field textarea{resize:vertical;min-height:156px;display:block}.book-form-field input::placeholder,.book-form-field textarea::placeholder{color:var(--subtle)}.book-form-field :is(input,select,textarea):focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.book-form-field [aria-invalid=true]{border-color:#a76357}.book-form-pair{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:20px;display:grid}.book-form-hint{color:var(--muted);margin-top:-16px;font-size:11px;line-height:1.7}.book-paste-hint{color:var(--muted);margin-top:8px;font-size:11px;line-height:1.7}.book-field-error{color:#925247;overflow-wrap:anywhere;margin-top:8px;font-size:12px;line-height:1.7}.book-save-error{color:#925247;overflow-wrap:anywhere;border-left:2px solid #b98275;margin-top:24px;padding-left:14px;font-size:13px;line-height:1.8}.book-save-error a{color:var(--accent);text-underline-offset:4px;margin-top:4px;text-decoration:underline;display:inline-block}.book-form-actions{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:30px;margin-top:28px;padding-top:24px;display:flex}.book-form-actions .book-text-button{padding:10px 0;font-size:13px}.book-form :disabled,.unsaved-dialog :disabled{opacity:.55}.unsaved-dialog{border:1px solid var(--line);background:var(--paper);width:calc(100% - 40px);max-width:420px;color:var(--ink);border-radius:6px;padding:28px}.unsaved-dialog::backdrop{background:#22282248}.unsaved-dialog h2{font-size:20px;font-weight:600;line-height:1.5}.unsaved-dialog p{color:var(--muted);margin-top:13px;font-size:13px;line-height:1.8}.unsaved-dialog-actions{justify-content:flex-end;gap:12px;margin-top:26px;display:flex}.library-heading.has-editor-actions{padding-right:120px;position:relative}.book-edit-link{color:var(--accent);align-items:center;gap:7px;font-size:12px;line-height:24px;display:inline-flex}.book-edit-link:hover{color:var(--ink)}.add-book-link{position:absolute;top:10px;right:0}.detail-editor-actions{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}@media (width<=899px){.book-form-shell{padding-left:36px;padding-right:36px}.book-form-layout{grid-template-columns:210px minmax(0,1fr);gap:36px}}@media (width<=699px){.book-form-shell{padding:22px 24px 40px}.book-form-heading h1{font-size:29px}.book-form-heading{margin-bottom:30px}.book-form-layout{grid-template-columns:minmax(0,1fr);gap:32px}.book-cover-picker{width:min(100%,220px)}.book-form-pair{grid-template-columns:minmax(0,1fr);gap:24px}.book-form-actions{gap:24px}.library-heading.has-editor-actions{padding-right:100px}.add-book-link{top:5px}}@media (width<=479px){.book-form-shell{padding-left:20px;padding-right:20px}}.book-detail-drawer{width:92vw;max-width:none;height:100dvh;max-height:none;color:var(--ink);background:var(--paper);border:0;margin:0;padding:0;position:fixed;inset:0 0 0 auto;overflow:hidden;box-shadow:-12px 0 48px #14221a26}.book-detail-drawer[open]{animation:.18s ease-out book-detail-enter;display:flex}.book-detail-drawer::backdrop{background:#17231c66}.reader-layout{background:var(--paper);flex-direction:column;flex:1;width:100%;min-width:0;height:100%;min-height:0;margin:0;display:flex;overflow:hidden}@keyframes book-detail-enter{0%{opacity:.6;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.book-detail-drawer[open]{animation:none}}.reader-workspace :where(*){margin:0!important}.reader-layout :focus-visible{outline-offset:-3px}.book-detail-drawer,.book-detail-drawer .reader-workspace{outline:none}.reader-action-bar{border-bottom:1px solid var(--line);background:var(--surface);flex:0 0 60px;justify-content:space-between;align-items:center;padding:0 24px;display:flex}.reader-back{color:var(--muted);background:0 0;border:0;flex-shrink:0;align-items:center;gap:8px;padding:8px 0;font-size:13px;line-height:1.5;display:inline-flex}.book-detail-heading{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;padding:0 18px;font-size:15px;font-weight:600;line-height:1.5;overflow:hidden}.book-detail-close{width:40px;height:40px;color:var(--muted);background:0 0;border:0;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;margin-left:12px;display:inline-flex}.book-detail-close:hover{background:var(--accent-soft);color:var(--ink)}.book-detail-skeleton{grid-template-columns:1fr 1fr 2fr;gap:24px;height:100%;min-height:220px;padding:12px;display:grid}.book-detail-skeleton>div{background:linear-gradient(110deg,#edf0e9 20%,#f7f8f4 40%,#edf0e9 60%) 0 0/200% 100%;border-radius:5px;min-width:0}.reader-owner-actions{align-items:center;gap:24px;font-size:13px;display:flex}.reader-owner-actions a{color:var(--accent);padding:8px 0}.reader-back:hover,.reader-owner-actions a:hover{color:var(--ink);text-underline-offset:4px;text-decoration:underline}.reader-columns{--reader-book-width:260px;--reader-directory-width:240px;grid-template-columns:var(--reader-book-width) var(--reader-directory-width) minmax(390px, 1fr) 32px;scrollbar-width:thin;flex:1;grid-template-rows:minmax(0,1fr);gap:0;min-width:0;min-height:0;display:grid;overflow:auto hidden}.reader-column{flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.reader-column+.reader-column{border-left:1px solid var(--line)}.reader-column-title{border-bottom:1px solid var(--line);flex:0 0 56px;align-items:center;padding:0 20px;font-size:14px;font-weight:600;line-height:1.5;display:flex}.reader-column-scroll,.reader-content-scroll{overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#cbd1c6 transparent;flex:1;min-width:0;min-height:0;overflow:hidden auto}.reader-book-info{padding:24px 20px}.reader-book-heading{overflow-wrap:anywhere;padding-top:22px}.reader-book-heading h1{font-size:20px;font-weight:600;line-height:1.5}.reader-book-heading p{color:var(--muted);padding-top:10px;font-size:14px;line-height:1.8}.reader-book-metadata{row-gap:12px;padding-top:22px;font-size:13px;line-height:1.8;display:grid}.reader-book-metadata>div{grid-template-columns:82px minmax(0,1fr);column-gap:8px;display:grid}.reader-book-metadata dt{color:var(--subtle);overflow-wrap:anywhere}.reader-book-metadata dd{color:var(--muted);overflow-wrap:anywhere}.reader-book-description{padding-top:24px}.reader-book-description h2{padding-bottom:10px;font-size:13px;font-weight:600}.reader-book-description p{color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.9}.reader-mobile-hint{display:none}.reader-local-notice{color:var(--muted);padding-bottom:20px;font-size:12px;line-height:1.8}.reader-local-notice a{color:var(--accent)}.reader-layout .cover-title{padding-top:28%;font-size:18px}.reader-layout .cover-author{padding-top:14%;font-size:9px}.reader-layout .cover-imprint{font-size:6px}.reader-layout .book-cover[data-variant="1"] .typographic-cover{border:0;height:100%;padding:17% 16%}.reader-layout .book-cover[data-variant="1"] .typographic-cover:before{content:"";pointer-events:none;border:1px solid;position:absolute;inset:7%}.reader-layout .book-cover[data-variant="2"] .cover-title{padding-top:0}.reader-layout .book-cover[data-variant="2"] .cover-imprint{padding-top:16%}.reader-layout .chapter-navigation{border:0;height:100%;min-height:0;padding:0}.reader-layout .chapter-scroll{flex:1;min-height:0;max-height:none;padding:12px 10px;overflow-y:auto}.reader-layout .chapter-link{border-radius:3px;padding:12px;font-size:14px}.reader-layout .chapter-link[aria-current=page]:before{top:14px}.reader-content-column{background:var(--surface)}.reader-tabs{border-bottom:1px solid var(--line);flex:0 0 56px;align-items:stretch;column-gap:24px;padding:0 28px;display:flex}.reader-tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:0 2px;font-size:14px}.reader-tabs #reader-tab-content{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.reader-tabs #reader-tab-note{flex-shrink:0}.reader-tabs button:hover{color:var(--ink)}.reader-tabs button[aria-selected=true]{border-bottom-color:var(--accent);color:var(--brand-primary);font-weight:600}.reader-content-scroll{padding:0}.reader-content-scroll>.chapter-reader{box-sizing:border-box;width:100%;max-width:none;padding:15px;margin:0!important}.reader-content-scroll.chapter-overview{padding:15px}.reader-layout .prose{flex-direction:column;row-gap:24px;min-width:0;max-width:none;font-size:18px;line-height:1.95;display:flex}.reader-layout .prose :is(h1,h2,h3,h4){padding-top:16px}.reader-layout .prose>:first-child{padding-top:0}.reader-layout .prose>*{min-width:0}.reader-layout .prose li+li{padding-top:8px}.reader-layout .prose blockquote{flex-direction:column;row-gap:14px;padding:8px 0 8px 20px;display:flex}.reader-layout .prose>img{align-self:flex-start;max-width:100%;height:auto}.reader-layout .reading-code-block{flex-shrink:0}.reader-layout .reading-code-block pre{font-size:14px}.reader-layout .table-scroll{min-width:0;max-width:100%}.reader-layout .reader-pagination{border:0;padding-top:22px}.reader-layout .chapter-page small{padding-bottom:4px}.reader-empty{color:var(--muted);font-size:14px;line-height:1.85}.reader-empty .empty-state-icon{margin-bottom:18px!important}.reader-comments-body{padding:24px 20px}.reader-start{flex-direction:column;align-items:start;row-gap:20px;padding-top:8px;display:flex}.reader-start h1{font:500 28px/1.5 var(--serif);overflow-wrap:anywhere}.reader-start>p:not(.reader-kicker){color:var(--muted);font-size:14px;line-height:1.85}.reader-kicker{color:var(--muted);letter-spacing:1px;font-size:11px}.reader-status{flex:1;min-height:0;padding:28px;overflow-y:auto}.reader-layout .feedback{flex-direction:column;align-items:start;row-gap:20px;padding:24px 0;display:flex}.reader-layout .feedback h1{font-size:24px}@media (width<=1439px){.reader-columns{--reader-book-width:220px;--reader-directory-width:200px}}@media (width<=1199px){.reader-columns{--reader-book-width:180px;--reader-directory-width:170px}.reader-book-info{padding:20px 16px}.reader-column-title{padding:0 16px}.reader-book-heading h1{font-size:18px}.reader-tabs{padding:0 24px}.reader-content-scroll{padding:0}}@media (width<=959px){.reader-action-bar{padding:0 16px}.reader-owner-actions{column-gap:16px;font-size:12px}.reader-mobile-hint{color:var(--subtle);padding-bottom:16px;font-size:11px;line-height:1.7;display:block}}.reader-layout>.site-header{flex:0 0 64px}.reader-workspace{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.reader-columns[data-comments-expanded=true]{grid-template-columns:var(--reader-book-width) var(--reader-directory-width) minmax(390px, 1fr) minmax(390px, 1fr)}.reader-bottom-navigation{border-top:1px solid var(--line);background:var(--surface);flex:0 0 60px;justify-content:space-between;align-items:center;gap:24px;padding:0 24px;display:flex}.reader-bottom-navigation a,.reader-bottom-navigation button{min-width:0;max-width:calc(50% - 12px);font:inherit;background:0 0;border:0;align-items:center;gap:8px;padding:10px 0;font-size:13px;display:inline-flex}.reader-bottom-navigation :is(svg,span:not(.reader-target-title)){flex-shrink:0}.reader-target-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.reader-bottom-navigation button:disabled{color:var(--subtle);cursor:default;opacity:.55}.reader-bottom-navigation a:hover{color:var(--accent)}.chapter-overview ol{padding:0;list-style:none}.chapter-overview li{border-bottom:1px solid var(--line);padding:20px 0}.chapter-overview li:first-child{padding-top:0}.chapter-overview h3{font-size:18px;font-weight:500;line-height:1.6}.chapter-overview h3 a{justify-content:space-between;align-items:center;gap:20px;display:flex}.chapter-overview h3 a:hover{color:var(--accent)}.chapter-overview p{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted);padding-top:12px;font-size:14px;line-height:1.85}.chapter-overview-link{border-bottom:1px solid var(--line)}.reader-layout>.site-header .header-inner{width:100%;max-width:none;margin:0;padding-left:24px;padding-right:24px}@media (width<=479px){.reader-layout>.site-header .header-inner{column-gap:10px;padding-left:16px;padding-right:16px}}.reader-owner-actions{flex-wrap:wrap;justify-content:flex-end;gap:14px;min-width:0}.reader-owner-actions a,.reader-text-action{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.reader-text-action{color:var(--accent);background:0 0;border:0;padding:8px 0;font-size:13px}.book-delete-button{color:#fff;white-space:nowrap;background:#bb2d35;border:1px solid #bb2d35;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:9px 14px;font-size:13px;display:inline-flex}.book-delete-button:hover:not(:disabled){background:#a11f27;border-color:#a11f27}.book-delete-button:disabled{opacity:.5;cursor:default}.reader-owner-actions .book-delete-button{color:var(--danger);background:0 0;border-color:#0000;padding:8px}.reader-owner-actions .book-delete-button:hover:not(:disabled){color:var(--danger-hover);background:#f8eeeb;border-color:#0000}.book-delete-confirm{gap:12px;padding-top:22px;font-size:14px;display:grid}.book-delete-confirm input{border:1px solid var(--line);border-radius:3px;min-width:0;padding:10px 12px}.book-delete-isbn{overflow-wrap:anywhere;padding-top:16px}.book-delete-isbn code{white-space:pre-wrap}.reader-book-tags{padding-top:22px}.reader-book-tags h2{padding-bottom:10px;font-size:13px;font-weight:600}.reader-book-tags>div{flex-wrap:wrap;gap:6px;display:flex}@media (width<=767px){.book-detail-drawer{width:100vw}.reader-columns{--reader-book-width:100%;--reader-directory-width:100%;grid-template-columns:100% 100% 100% 32px}.reader-columns[data-comments-expanded=true]{grid-template-columns:100% 100% 100% 100%}.reader-action-bar{flex-wrap:wrap;flex-shrink:0;flex-basis:auto;gap:6px 18px;min-height:60px;padding:10px 16px}.reader-owner-actions{flex-basis:100%;order:4;gap:8px 14px}.book-detail-heading{padding:0}.book-detail-close{margin-left:0}.reader-back{flex-shrink:0}.reader-content-scroll{padding:0}.reader-layout .prose{row-gap:22px;font-size:17px;line-height:1.95}.reader-bottom-navigation{gap:16px;padding:0 16px}.reader-bottom-navigation a,.reader-bottom-navigation button{min-height:44px}}.home-page .home-jumbotron{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:48px;width:min(100%,1376px);margin:0 auto;padding:52px 48px 36px;display:grid}.home-search-section{min-width:0}.home-search-container{max-width:680px}.home-eyebrow{color:var(--accent);letter-spacing:.1em;font-size:12px}.home-page .large-title{color:var(--ink);font:600 clamp(30px, 3.3vw, 42px)/1.4 var(--serif);letter-spacing:-.02em;margin:12px 0}.home-introduction{color:var(--muted);font-size:14px;line-height:1.85}.home-search-form{border-radius:var(--radius);background:var(--field-background);border:1px solid #0000;align-items:center;gap:6px;width:100%;min-height:50px;margin-top:24px;padding:4px;transition:background-color .16s,border-color .16s;display:flex}.home-search-form:focus-within{border-color:var(--brand-primary);background:var(--surface);outline:2px solid var(--brand-border);outline-offset:2px}.home-search-form input{width:100%;min-width:0;height:40px;color:var(--ink);font:inherit;box-shadow:none;background:0 0;border:0;padding:8px 12px;font-size:15px;display:block}.home-search-form input:focus-visible{outline:none}.home-search-form button{background:var(--brand-primary);color:#fff;border:0;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;gap:7px;min-height:40px;padding:8px 14px;font-size:14px;display:inline-flex}.home-search-form button:hover{background:var(--brand-primary-hover)}.home-search-form button:active{background:var(--brand-primary-active)}.home-statistics{min-width:0;padding-bottom:4px}.library-statistics{border-left:1px solid var(--line);gap:28px;margin:0;padding-left:28px;display:flex}.library-statistics>div{flex-direction:column;gap:4px;display:flex}.library-statistics dt{color:var(--muted);white-space:nowrap;order:2;font-size:12px}.library-statistics dd{color:var(--ink);font:500 28px/1.3 var(--serif);font-variant-numeric:tabular-nums;margin:0}.home-statistics-status{max-width:300px;color:var(--muted);margin-top:12px;font-size:13px;line-height:1.8}.home-page .home-recommendations{padding-top:0}.home-recommendations-heading{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px;padding-top:28px;display:flex}.home-recommendations-heading h2{color:var(--ink);font-size:22px;font-weight:600;line-height:1.5}.home-recommendations-heading a{min-height:40px;color:var(--accent);align-items:center;gap:8px;font-size:13px;display:inline-flex}.home-recommendations-heading a:hover{text-underline-offset:4px;text-decoration:underline}.home-recommendations .book-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:36px}.home-recommendations-empty{color:var(--muted);padding:32px 0;font-size:14px;line-height:1.85}@media (width<=1099px){.home-page .home-jumbotron{gap:28px;padding-left:36px;padding-right:36px}.library-statistics{gap:18px;padding-left:20px}}@media (width<=899px){.home-page .home-jumbotron{grid-template-columns:minmax(0,1fr);gap:28px;padding-top:36px}.home-search-container{max-width:none}.library-statistics{border:0;gap:36px;padding:0}.library-statistics dd{font-size:24px}.home-page .home-recommendations{padding-top:8px}.home-recommendations .book-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}}@media (width<=699px){.home-page .home-jumbotron{padding:30px 24px 24px}.home-page .large-title{font-size:30px}.home-search-form input{font-size:16px}.library-statistics{justify-content:space-between;gap:16px}.home-recommendations-heading{margin-bottom:24px;padding-top:24px}.home-recommendations-heading h2{font-size:20px}.home-recommendations .book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 22px}}@media (width<=479px){.home-page .home-jumbotron{padding-left:20px;padding-right:20px}}.auth-shell{width:100%;max-width:496px;min-height:calc(100vh - 210px);margin:auto;padding:72px 28px 48px}.auth-heading{margin-bottom:34px}.auth-heading h1{letter-spacing:-1px;font-size:36px;font-weight:600;line-height:1.35}.auth-heading p{color:var(--muted);margin-top:12px;font-size:13px;line-height:1.8}.auth-form fieldset{border:0;flex-direction:column;gap:24px;min-width:0;margin:0;padding:0;display:flex}.auth-field label{margin-bottom:10px;font-size:13px;font-weight:500;display:block}.auth-field input{background:var(--surface);width:100%;min-width:0;height:46px;color:var(--ink);font:inherit;border:1px solid #d8ddd3;border-radius:4px;padding:11px 13px;font-size:14px;transition:border-color .15s,box-shadow .15s}.auth-field input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.auth-field input[aria-invalid=true]{border-color:#a76357}.auth-field-hint,.auth-field-error{color:var(--muted);margin-top:8px;font-size:11px;line-height:1.8}.auth-field-error,.auth-submit-error{color:#925247}.auth-submit-error{border-left:2px solid #b98275;margin-top:22px;padding-left:12px;font-size:13px;line-height:1.8}.auth-submit{width:100%;margin-top:30px}.auth-form :disabled{opacity:.6}.auth-switch{text-align:center;color:var(--muted);margin-top:25px;font-size:13px;line-height:1.8}.auth-switch a{color:var(--accent);margin-left:8px}.auth-switch a:hover{text-underline-offset:4px;text-decoration:underline}@media (width<=699px){.auth-shell{padding:42px 24px 38px}.auth-heading h1{font-size:30px}}.user-page,.account-shell{min-height:calc(100vh - 260px)}.user-page-heading{justify-content:space-between;align-items:center;gap:24px;margin-bottom:38px;display:flex}.user-page-heading>div{min-width:0}.user-page-heading h1{letter-spacing:-1px;overflow-wrap:anywhere;font-size:36px;font-weight:600;line-height:1.4}.user-page-heading p{color:var(--muted);margin-top:12px;font-size:13px;line-height:1.8}.user-page-heading>a{flex-shrink:0}.profile-identity{align-items:center;gap:20px;display:flex}.profile-identity>div{min-width:0}.profile-avatar{background:var(--accent-soft);width:64px;height:64px;color:var(--accent);border-radius:50%;flex-shrink:0;place-items:center;font-size:24px;display:grid;overflow:hidden}.profile-avatar img{object-fit:contain;width:100%;height:100%;display:block}.user-section-heading{font-size:20px;font-weight:600;line-height:1.5}.user-local-note{color:var(--muted);margin:13px 0 28px;font-size:12px;line-height:1.8}.user-books-empty{border-top:1px solid var(--line);color:var(--muted);padding:38px 0;font-size:14px;line-height:1.8}.user-books-empty .button-secondary{margin-top:23px}.account-shell{max-width:900px;margin:auto;padding:55px 48px 0}.account-data{border-top:1px solid var(--line);margin:0}.account-data>div{border-bottom:1px solid var(--line);grid-template-columns:140px minmax(0,1fr);gap:20px;padding:24px 0;display:grid}.account-data dt{color:var(--muted);font-size:13px}.account-data dd{overflow-wrap:anywhere;margin:0;font-size:14px}@media (width<=699px){.account-shell{padding:36px 24px 0}.account-data>div{grid-template-columns:85px minmax(0,1fr)}.user-page-heading h1{font-size:29px}.user-page-heading{align-items:flex-start}}.local-import{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:38px;padding:24px 0}.local-import-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.local-import h2{font-size:18px;font-weight:600;line-height:1.5}.local-import p{color:var(--muted);margin-top:8px;font-size:13px;line-height:1.8}.local-import-heading button{flex-shrink:0}.local-import-preview{margin-top:22px}.local-import-preview ul,.local-unassigned ul{margin:16px 0 0;padding:0;list-style:none}.local-import-preview li{border-top:1px solid var(--line);justify-content:space-between;gap:24px;padding:16px 0;display:flex}.local-import-preview li>div{min-width:0}.local-import-preview li a{overflow-wrap:anywhere;font-size:14px;font-weight:600}.local-import-preview li p{overflow-wrap:anywhere;margin-top:4px;font-size:12px}.local-import-result{max-width:40%;color:var(--muted);overflow-wrap:anywhere;font-size:12px;line-height:1.8}.local-import-actions{justify-content:flex-end;align-items:center;gap:24px;margin-top:22px;display:flex}.local-import-error{font-size:13px;line-height:1.8;color:#925247!important}.local-import-done{color:var(--accent)!important}.local-unassigned{color:var(--muted);margin-top:16px;font-size:12px;line-height:1.8}.local-unassigned summary{cursor:pointer}.local-unassigned li{overflow-wrap:anywhere;padding-top:6px}@media (width<=699px){.local-import-heading{flex-direction:column;align-items:flex-start}.local-import-preview li{flex-direction:column;gap:8px}.local-import-result{max-width:100%}}.profile-banner{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;padding:30px 0 36px;display:flex}.profile-banner h1{margin:6px 0 10px;font-size:32px;font-weight:600}.profile-banner p{color:var(--muted);margin:0;font-size:12px}.profile-banner .profile-handle{color:var(--ink);font-size:14px}.profile-own-actions{align-items:center;gap:20px;display:flex}.profile-books-heading{padding:28px 0}.profile-books-heading h2{margin:0 0 10px}.profile-books-heading h2 span{color:var(--muted);padding-left:8px;font-weight:400}@media (width<=767px){.profile-banner{flex-direction:column;align-items:flex-start;padding-top:0}.profile-banner h1{font-size:25px}}.settings-shell{max-width:1100px;margin:auto;padding:56px 40px 80px}.settings-layout{grid-template-columns:210px minmax(0,1fr);gap:48px;padding-top:28px;display:grid}.settings-navigation{flex-direction:column;align-items:stretch;gap:6px;display:flex}.settings-navigation button{text-align:left;color:var(--muted);background:0 0;border:0;border-left:2px solid #0000;padding:13px 14px;font-size:13px}.settings-navigation button[aria-current=page]{color:var(--ink);border-left-color:var(--accent);background:var(--paper);font-weight:600}.settings-content[hidden]{display:none}.settings-content h2{margin:0 0 24px;font-size:20px;font-weight:600}.settings-avatar-row,.settings-avatar-preview{align-items:center;gap:24px;padding-bottom:30px;display:flex}.settings-avatar-row h3{margin:0 0 8px;font-size:14px;font-weight:500}.settings-avatar-row p,.settings-avatar-preview p,.settings-intro{color:var(--muted);margin:0 0 14px;font-size:13px;line-height:1.8}.settings-avatar-preview{border-top:1px solid var(--line);padding:22px 0}.settings-avatar-preview .profile-avatar{border-radius:4px}.settings-avatar-preview .profile-avatar img,.settings-avatar-row .profile-avatar img{object-fit:cover}.settings-avatar-preview small{color:var(--muted);font-size:12px}.settings-avatar-preview>div>div{align-items:center;gap:16px;padding-top:16px;display:flex}.settings-password-form{gap:22px;max-width:460px;display:grid}.settings-save{justify-content:flex-end;padding-top:4px;display:flex}.settings-error{color:#925247;font-size:13px;line-height:1.8}.settings-notice{color:var(--accent);font-size:13px;line-height:1.8}@media (width<=767px){.settings-shell{padding:32px 20px 56px}.settings-layout{grid-template-columns:1fr;gap:28px}.settings-navigation{flex-direction:row}.settings-navigation button{border-bottom:2px solid #0000;border-left:0}.settings-navigation button[aria-current=page]{border-bottom-color:var(--accent)}.settings-avatar-row,.settings-avatar-preview{gap:16px}}.settings-avatar-trigger{cursor:pointer;background:0 0;border:0;border-radius:50%;flex-shrink:0;padding:0}.settings-avatar-trigger:hover{outline:2px solid var(--line);outline-offset:4px}.preset-tabs{padding-bottom:20px;overflow-x:auto}:root{color:#303830;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--brand-logo:#71bf44;--brand-primary:#45762a;--brand-primary-hover:#376021;--brand-primary-active:#2d501c;--brand-soft:#edf4e8;--brand-subtle:#f4f7f0;--brand-border:#cddfc3;--paper:#f7f8f3;--surface:#fffefb;--field-background:#eff2ea;--ink:#303830;--muted:#626d60;--subtle:#697361;--line:#dfe4d9;--accent:var(--brand-primary);--accent-soft:var(--brand-soft);--danger:#a83e35;--danger-hover:#8c3029;--serif:"Noto Serif SC", "Noto Serif CJK SC", "Songti SC", STSong, Georgia, serif;--radius:6px;--book-cover-aspect-ratio:3 / 4;background:#f7f8f3;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans CJK SC,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}a{color:inherit;text-decoration:none}button{color:inherit}::selection{color:var(--ink);background:#dcebcf}:focus-visible{outline:2px solid var(--brand-primary);outline-offset:3px}button,a{transition:color .16s,background-color .16s,border-color .16s}input[type=checkbox],input[type=radio]{accent-color:var(--brand-primary)}button,a{touch-action:manipulation}svg.lucide{stroke-width:1.5px;flex-shrink:0}h1,h2,h3,h4,p,figure{margin:0}.sr-only,.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--ink);color:#fff;padding:12px 18px;position:fixed;top:-60px;left:20px}.skip-link:focus{top:10px}.site-header{z-index:20;background:var(--surface);border-bottom:1px solid var(--line);height:64px;position:sticky;top:0}.header-inner{grid-template-columns:1fr auto 1fr;align-items:center;max-width:1440px;height:100%;margin:auto;padding:0 48px;display:grid}.wordmark{justify-self:start;min-width:0;max-width:100%;display:flex}.wordmark img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:36px;display:block}.header-nav{align-items:center;height:64px;padding:0 12px;font-size:14px;font-weight:600;display:flex;position:relative}.header-nav:hover,.header-nav.active{color:var(--brand-primary)}.header-nav.active:after{content:"";background:var(--brand-primary);height:2px;position:absolute;bottom:0;left:12px;right:12px}.header-search{color:var(--muted);background:0 0;border:0;justify-self:end;align-items:center;gap:9px;padding:8px 0 8px 12px;font-size:13px;display:flex}.header-search:hover{color:var(--ink)}.header-search kbd{color:var(--subtle);letter-spacing:.3px;border:1px solid var(--line);border-radius:4px;margin-left:9px;padding:3px 5px;font-family:inherit;font-size:10px}.library-shell{max-width:1376px;margin:0 auto;padding:40px 48px 0}.library-heading h1{letter-spacing:-1.5px;font-size:42px;font-weight:650;line-height:1.25}.heading-period{color:var(--accent);margin-left:2px}.library-heading p{color:var(--muted);margin-top:13px;font-size:14px;line-height:1.8}.library-search{background:var(--field-background);border-radius:var(--radius);width:100%;max-width:680px;height:48px;color:var(--muted);border:1px solid #0000;align-items:center;gap:13px;margin-top:28px;padding:0 15px;transition:border-color .16s,background-color .16s;display:flex}.library-search:focus-within{border-color:var(--brand-primary);background:var(--surface);box-shadow:none;outline:2px solid var(--brand-border);outline-offset:2px}.library-search input{width:100%;min-width:0;height:100%;color:var(--ink);background:0 0;border:0;font-size:14px}.library-search input:focus-visible{outline:none}.library-search input::placeholder{color:var(--muted)}.library-search input::-webkit-search-cancel-button{display:none}.library-search svg{flex-shrink:0}.clear-search{color:var(--muted);background:0 0;border:0;border-radius:4px;place-items:center;margin-right:-5px;padding:6px;display:grid}.clear-search:hover{color:var(--ink);background:var(--accent-soft)}.category-nav{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;margin-top:28px;padding-bottom:18px;display:flex}.category-nav button{min-height:40px;color:var(--muted);background:0 0;border:0;border-radius:4px;padding:8px 12px;font-size:14px;line-height:1.6;position:relative}.category-nav button:hover{color:var(--brand-primary);background:var(--brand-subtle)}.category-nav button[aria-pressed=true]{color:var(--brand-primary);background:var(--brand-soft);font-weight:600}.library-results{color:var(--muted);justify-content:space-between;align-items:center;gap:16px;margin:23px 0 26px;font-size:12px;display:flex}.library-results p{overflow-wrap:anywhere}.library-results p span{color:var(--subtle);margin-left:14px}.result-range{font-variant-numeric:tabular-nums;flex-shrink:0}.book-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:38px 36px;display:grid}.book-card{min-width:0}.book-card-link{border-radius:2px;display:block}.book-card .book-cover{transition:transform .16s,box-shadow .16s}.book-card-link:hover .book-cover{transform:translateY(-1px);box-shadow:0 5px 12px -7px #29352b45}.book-card-title{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;height:51.2px;margin-top:16px;font-size:14px;font-weight:400;line-height:1.6;transition:color .16s;display:-webkit-box;overflow:hidden}.book-card-link:hover .book-card-title{color:var(--accent)}.book-card-author{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;height:22.1px;margin-top:6px;font-size:13px;line-height:1.7;overflow:hidden}.book-card-category{color:var(--subtle);overflow-wrap:anywhere;margin-top:7px;font-size:12px;line-height:1.7}.empty-results{text-align:center;padding:70px 20px 90px}.empty-results h2{font-size:22px;font-weight:500}.empty-results p{color:var(--muted);margin:14px 0 25px;font-size:14px}.pagination{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:46px;padding-top:26px;display:flex}.pagination-step{background:0 0;border:0;align-items:center;gap:9px;padding:10px 0;font-size:13px;display:flex}.pagination-step:hover:not(:disabled){color:var(--accent)}.pagination-step:disabled{color:#b0b5ab}.pagination-pages{gap:8px;display:flex}.page-number{width:34px;height:34px;color:var(--muted);background:0 0;border:0;border-radius:4px;font-size:13px}.page-number:hover{background:var(--accent-soft)}.page-number[aria-current=page]{background:var(--brand-primary);color:#fff}.library-footer{border-top:1px solid var(--line);color:var(--subtle);letter-spacing:.2px;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:57px;padding:22px 0 28px;font-size:12px;display:flex}.shared-footer{max-width:1376px;margin:0 auto;padding:0 48px}.shared-footer a:hover{color:var(--ink)}@media (width<=1099px){.shared-footer{padding:0 36px}}@media (width<=699px){.shared-footer{padding:0 24px}}@media (width<=479px){.shared-footer{padding:0 20px}}.book-cover{width:100%;aspect-ratio:var(--book-cover-aspect-ratio);background:var(--cover-paper,#e7e3d8);color:var(--cover-ink,#343c32);border-radius:1px 3px 3px 1px;position:relative;overflow:hidden;box-shadow:1px 3px 6px -3px #29352b45}.book-cover:after{content:"";z-index:1;pointer-events:none;border-left:4px solid #00000008;border-right:1px solid #ffffff35;position:absolute;inset:0}.book-cover img{object-fit:contain;width:100%;height:100%;display:block}.book-cover[data-has-image=true]{background:var(--surface)}.book-cover[data-tone="0"]{--cover-paper:#e8e4d8;--cover-ink:#504b3c}.book-cover[data-tone="1"]{--cover-paper:#d9e0d8;--cover-ink:#354e43}.book-cover[data-tone="2"]{--cover-paper:#dddfe2;--cover-ink:#37464f}.book-cover[data-tone="3"]{--cover-paper:#eeeae1;--cover-ink:#514b40}.book-cover[data-tone="4"]{--cover-paper:#e6dace;--cover-ink:#655045}.book-cover[data-tone="5"]{--cover-paper:#e9ede6;--cover-ink:#46523d}.book-cover[data-tone="6"]{--cover-paper:#e8e3df;--cover-ink:#735a58}.book-cover[data-tone="7"]{--cover-paper:#ebebe1;--cover-ink:#414e43}.typographic-cover{flex-direction:column;height:100%;padding:14% 12%;display:flex;position:relative}.cover-imprint{letter-spacing:1.7px;opacity:.7;font-size:clamp(5px,.52vw,7px);line-height:1.7}.cover-title{-webkit-line-clamp:5;font:500 clamp(16px, 1.5vw, 23px)/1.45 var(--serif);letter-spacing:.5px;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin-top:28%;display:-webkit-box;overflow:hidden}.cover-author{-webkit-line-clamp:2;opacity:.8;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin-top:14%;font-size:clamp(7px,.65vw,10px);line-height:1.7;display:-webkit-box;overflow:hidden}.cover-rule{opacity:.5;background:currentColor;width:20%;height:1px;position:absolute;bottom:13%;left:12%}.book-cover[data-variant="1"] .typographic-cover{border:1px solid;height:86%;margin:7%;padding:10%}.book-cover[data-variant="1"] .cover-title{margin-top:23%}.book-cover[data-variant="1"] .cover-imprint{letter-spacing:1px}.book-cover[data-variant="2"] .typographic-cover{padding-top:22%}.book-cover[data-variant="2"] .cover-imprint{order:2;margin-top:auto}.book-cover[data-variant="2"] .cover-title{margin-top:0}.book-cover[data-variant="2"] .cover-rule{width:48%;top:12%;bottom:auto}.book-cover[data-variant="2"] .cover-author{margin-top:13%}.detail-shell{max-width:1440px;margin:auto;padding:31px 48px 80px}.back-link{color:var(--muted);align-items:center;gap:8px;margin-bottom:27px;font-size:12px;line-height:24px;display:inline-flex}.back-link:hover{color:var(--ink)}.detail-layout{grid-template-columns:260px minmax(0,1fr);align-items:start;gap:72px;display:grid}.book-sidebar{flex-direction:column;min-width:0;min-height:0;max-height:calc(100dvh - 116px);display:flex;position:sticky;top:94px}.sidebar-cover{width:min(100%,240px);margin-bottom:22px}.sidebar-cover .cover-title{font-size:17px}.sidebar-cover .cover-author{font-size:8px}.sidebar-cover .cover-imprint{letter-spacing:1px;font-size:5px}.sidebar-book{flex-shrink:0}.sidebar-book h2{overflow-wrap:anywhere;font-size:16px;font-weight:600;line-height:1.5}.sidebar-author{color:var(--muted);overflow-wrap:anywhere;margin-top:8px;font-size:12px;line-height:1.65}.book-metadata{color:var(--muted);margin:15px 0 0;font-size:11px;line-height:1.8}.book-metadata div{gap:10px;margin-top:3px;display:flex}.book-metadata dt{color:var(--subtle);flex:0 0 28px}.book-metadata dd{overflow-wrap:anywhere;margin:0}.chapter-navigation{border-top:1px solid var(--line);flex-direction:column;min-height:85px;margin-top:26px;padding-top:21px;display:flex}.sidebar-section-title{letter-spacing:1px;margin-bottom:12px;font-size:12px;font-weight:600}.chapter-scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#cbd1c6 transparent;margin:0 -3px;padding:4px 3px 6px;overflow-y:auto}.chapter-list{margin:0;padding:0;list-style:none}.chapter-link{color:var(--muted);overflow-wrap:anywhere;border-radius:3px;margin:2px 0;padding:9px 12px;font-size:12px;line-height:1.6;transition:background .16s,color .16s;display:block;position:relative}.chapter-link:hover{color:var(--ink);background:#f0f2ec}.chapter-link[aria-current=page]{color:var(--accent);background:var(--accent-soft);font-weight:600}.chapter-link[aria-current=page]:before{content:"";background:var(--accent);width:2px;height:14px;position:absolute;top:12px;left:0}.overview-link{margin-bottom:9px}.no-chapters{color:var(--subtle);padding:9px 12px;font-size:12px;line-height:1.7}.reading-area{width:100%;min-width:0;max-width:840px;margin:0 auto;padding-top:4px}.eyebrow{color:var(--muted);letter-spacing:2px;margin-bottom:22px;font-size:11px;font-weight:500}.book-introduction{padding-top:36px}.book-introduction h1{font-family:var(--serif);letter-spacing:-.5px;overflow-wrap:anywhere;font-size:clamp(30px,3vw,42px);font-weight:500;line-height:1.55}.introduction-author{color:var(--muted);overflow-wrap:anywhere;margin-top:17px;font-size:14px;line-height:1.75}.introduction-divider{background:#a7afa1;width:40px;height:1px;margin:38px 0}.introduction-text{max-width:740px;font:400 17px/1.9 var(--serif);color:#4c534a;overflow-wrap:anywhere}.introduction-text p+p{margin-top:22px}.button-primary,.button-secondary,.button-danger{border-radius:var(--radius);justify-content:center;align-items:center;gap:10px;min-height:44px;font-size:14px;font-weight:500;line-height:1.5;transition:background .16s,border-color .16s;display:inline-flex}.button-primary{background:var(--brand-primary);color:#fff;border:1px solid var(--brand-primary);padding:11px 18px}.button-primary:hover:not(:disabled){background:var(--brand-primary-hover);border-color:var(--brand-primary-hover)}.button-primary:active:not(:disabled){background:var(--brand-primary-active);border-color:var(--brand-primary-active)}.button-secondary{color:var(--ink);background:0 0;border:1px solid #ccd2c7;padding:10px 16px}.button-secondary:hover{background:var(--accent-soft);border-color:#abb7a4}.button-danger{background:var(--danger);color:#fff;border:1px solid var(--danger);padding:11px 18px}.button-danger:hover:not(:disabled){background:var(--danger-hover);border-color:var(--danger-hover)}.book-introduction .button-primary{margin-top:36px}.missing-introduction{font:16px/1.8 var(--serif);color:var(--muted)}.introduction-status{color:var(--subtle);margin-top:30px;font-size:12px;line-height:1.8}.reader-heading{border-bottom:1px solid var(--line);margin-bottom:35px;padding:30px 0 35px}.reader-heading h1{font:500 clamp(26px, 2.6vw, 36px)/1.5 var(--serif);letter-spacing:-.6px;overflow-wrap:anywhere}.reader-heading .eyebrow{margin-bottom:17px}.prose{max-width:72ch;font:400 18px/1.95 var(--serif);color:var(--ink);overflow-wrap:anywhere}.prose>*+*{margin-top:22px}.prose h2{color:var(--ink);margin-top:45px;margin-bottom:19px;font-size:24px;font-weight:600;line-height:1.5}.prose h3{margin-top:34px;font-size:20px;font-weight:600;line-height:1.5}.prose h4{margin-top:28px;font-size:18px;font-weight:600;line-height:1.5}.prose>:first-child{margin-top:0}.prose ul,.prose ol{padding-left:1.6em}.prose li+li{margin-top:8px}.prose li::marker{color:#7b8877}.prose blockquote{color:#647060;border-left:2px solid #b4beab;margin:30px 0;padding:3px 0 3px 23px}.prose blockquote>*+*{margin-top:15px}.prose a{color:var(--accent);text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}.prose a:hover{color:var(--ink)}.prose hr{border:0;border-top:1px solid var(--line);margin:38px 0}.prose code{color:#3f5549;background:#eef0e9;border-radius:3px;padding:2px 5px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.83em}.prose pre{tab-size:4;white-space:pre;overflow-wrap:normal;background:#eff1ec;border:1px solid #e4e8df;border-radius:4px;max-width:100%;padding:21px 24px;font:13px/1.85 SFMono-Regular,Consolas,Liberation Mono,monospace;overflow-x:auto}.prose pre code{font-size:inherit;color:inherit;background:0 0;border-radius:0;padding:0}.table-scroll{border-top:1px solid #ced5c7;border-bottom:1px solid #ced5c7;max-width:100%;overflow-x:auto}.prose table{border-collapse:collapse;text-align:left;width:100%;min-width:560px;font-family:-apple-system,BlinkMacSystemFont,Noto Sans CJK SC,PingFang SC,sans-serif;font-size:13px;line-height:1.7}.prose th,.prose td{border-bottom:1px solid var(--line);vertical-align:top;padding:13px 16px}.prose th{white-space:nowrap;background:#f0f2ec;font-weight:600}.prose tr:last-child td{border-bottom:0}.reading-notes{background:#f0f2ed;border-top:1px solid #d5ddce;margin-top:56px;padding:26px 28px 28px}.reading-notes h2{color:var(--accent);margin-bottom:18px;font-size:14px;font-weight:600}.reading-notes .prose{color:#5a6556;font-size:16px;line-height:1.85}.reading-notes .prose>*+*{margin-top:15px}.reader-pagination{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;margin-top:48px;padding-top:23px;display:grid}.chapter-page{overflow-wrap:anywhere;align-items:center;gap:15px;font-size:13px;line-height:1.6;display:flex}.chapter-page svg{color:var(--muted);flex-shrink:0}.chapter-page small{color:var(--subtle);letter-spacing:1px;margin-bottom:6px;font-size:12px;display:block}.chapter-page.next{text-align:right;justify-content:end}.chapter-page:hover,.chapter-page:hover svg{color:var(--accent)}.local-book-notice{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:10px 24px;margin-bottom:24px;padding-bottom:18px;font-size:13px;line-height:1.8;display:flex}.local-book-notice p{color:var(--ink)}.local-book-notice a{color:var(--accent)}.local-book-notice span{color:var(--muted)}.loading-state{min-height:260px;color:var(--muted);justify-content:center;align-items:center;gap:10px;font-size:13px;display:flex}.loading-image{object-fit:contain;width:36px;height:auto;max-height:36px;display:block}.loading-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:1s ease-in-out infinite alternate breathe}@keyframes breathe{to{opacity:.25}}.feedback{padding:65px 0}.feedback-icon,.empty-state-icon{width:30px;height:30px;color:var(--subtle);stroke-width:1.5px;margin-bottom:18px;display:block}.empty-results>.empty-state-icon{margin-inline:auto}.feedback h1{font-size:26px;font-weight:500;line-height:1.5}.feedback p{color:var(--muted);margin:17px 0 24px;font-size:14px;line-height:1.8}:root :is(form:not(.home-search-form):not(.library-search),.reader-copy-dialog,.chapter-batch-dialog,.book-delete-confirm,.code-dialog-heading,.admin-filters,.admin-subheading,.tag-filter) :where(input:not([type=checkbox],[type=radio],[type=file],[type=hidden],[type=range],[type=color],[type=submit],[type=button],[type=reset],[aria-hidden=true]),textarea:not([aria-hidden=true]),select){border:1px solid #0000;border-bottom-color:var(--line);background:var(--field-background);max-width:100%;color:var(--ink);font:inherit;box-shadow:none;border-radius:4px;padding:10px 12px;font-size:14px;line-height:1.65;transition:background-color .16s,border-color .16s}:root :is(form:not(.home-search-form):not(.library-search),.reader-copy-dialog,.chapter-batch-dialog,.book-delete-confirm,.code-dialog-heading,.admin-filters,.admin-subheading,.tag-filter) :where(input:not([type=checkbox],[type=radio],[type=file],[type=hidden],[type=range],[type=color],[type=submit],[type=button],[type=reset],[aria-hidden=true]),textarea:not([aria-hidden=true]),select):focus-visible{border-color:var(--brand-primary);background:var(--surface);outline:2px solid var(--brand-border);outline-offset:2px;box-shadow:none}:root :is(input,textarea)::placeholder{color:var(--subtle);opacity:1}:root :is(form:not(.home-search-form):not(.library-search),.book-delete-confirm) [aria-invalid=true]:is(input,textarea,select){border-bottom-color:var(--danger)}:root :is(.chapter-editor,.chapter-froala-field) textarea:is(.chapter-source,.fr-code){font-family:ui-monospace,SFMono-Regular,Consolas,monospace}@media (width<=1279px){.book-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:36px 30px}.detail-layout{grid-template-columns:240px minmax(0,1fr);gap:48px}.cover-title{font-size:21px}}@media (width<=1099px){.header-inner,.library-shell,.detail-shell{padding-left:36px;padding-right:36px}.book-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:36px 34px}.detail-layout{grid-template-columns:230px minmax(0,1fr);gap:42px}.reader-heading h1{font-size:29px}}@media (width<=899px){.book-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.header-search kbd{display:none}.detail-layout{grid-template-columns:minmax(0,1fr);gap:36px}.book-sidebar{max-height:none;position:static}.sidebar-book{align-items:center;gap:26px;display:flex}.sidebar-cover{flex-shrink:0;width:108px;margin:0}.sidebar-cover .cover-title{font-size:14px}.sidebar-book-info{min-width:0}.chapter-navigation{border-bottom:1px solid var(--line);margin-top:25px;padding-top:19px;padding-bottom:22px}.chapter-scroll{max-height:206px}.reading-area{max-width:840px;margin:0}.book-introduction,.reader-heading{padding-top:0}.cover-title{font-size:18px}.cover-imprint{font-size:5px}}@media (width<=699px){.header-inner,.library-shell,.detail-shell{padding-left:24px;padding-right:24px}.header-nav{font-size:12px}.header-search{padding-left:0}.header-search span{display:none}.library-shell{padding-top:35px}.library-heading h1{font-size:34px}.library-heading p{max-width:32ch;font-size:14px}.library-search{margin-top:25px}.category-nav{gap:6px;margin-top:24px}.category-nav button{min-height:40px;padding:8px 10px;font-size:13px}.library-search input,:root form:not(.library-search):not(.home-search-form) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),textarea,select){font-size:16px}.library-results{margin:19px 0 23px;font-size:12px}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 22px}.book-card-title{height:44.8px;margin-top:14px;font-size:14px}.book-card-author{height:20.4px;font-size:12px}.book-card-category{margin-top:6px;font-size:12px}.cover-title{font-size:16px}.cover-author{font-size:7px}.cover-imprint{letter-spacing:.5px;font-size:4px}.detail-shell{padding-top:22px;padding-bottom:50px}.back-link{margin-bottom:23px}.book-introduction h1{font-size:29px}.introduction-text,.prose{font-size:17px;line-height:1.95}.reader-heading h1{font-size:26px}.reader-heading{margin-bottom:25px;padding-bottom:25px}.prose h2{margin-top:35px;font-size:22px}.prose pre{padding:17px;font-size:12px}.reading-notes{margin-top:40px;padding:22px}.reading-notes .prose{font-size:15px}.reader-pagination{gap:18px;margin-top:32px}.chapter-page{gap:10px;font-size:12px}.chapter-page svg{width:14px}}@media (width<=479px){.header-inner{grid-template-columns:1fr auto auto;gap:24px}.header-inner,.library-shell,.detail-shell{padding-left:20px;padding-right:20px}.header-nav{padding:0}.header-nav.active:after{left:0;right:0}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 24px}.book-card-title{height:44.8px;font-size:14px}.cover-title{font-size:20px}.cover-author{font-size:8px}.cover-imprint{font-size:5px}.category-nav{gap:6px}.library-results p span{margin-left:8px}.pagination{margin-top:33px}.pagination-step{gap:6px;font-size:12px}.library-footer{margin-top:35px;font-size:12px}.sidebar-book{gap:22px}.sidebar-book h2{font-size:15px}.sidebar-author{font-size:11px}.book-metadata{font-size:10px}.chapter-page{font-size:11px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.header-navigation{align-items:center;gap:12px;display:flex}@media (width<=479px){.header-navigation{gap:14px}.header-navigation .header-nav{font-size:11px}}@font-face{font-family:Ubuntu;src:url(/fonts/Ubuntu-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Ubuntu Mono;src:url(/fonts/UbuntuMono-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Ubuntu;src:url(/fonts/Ubuntu-Bold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Ubuntu;src:url(/fonts/Ubuntu-Italic.ttf)format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Ubuntu;src:url(/fonts/Ubuntu-BoldItalic.ttf)format("truetype");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Ubuntu Mono;src:url(/fonts/UbuntuMono-Bold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Ubuntu Mono;src:url(/fonts/UbuntuMono-Italic.ttf)format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Ubuntu Mono;src:url(/fonts/UbuntuMono-BoldItalic.ttf)format("truetype");font-weight:700;font-style:italic;font-display:swap}
