.reading-progress-editor{max-width:820px}.reading-progress-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.reading-progress-heading h2{margin:0}.reading-progress-autosave{font-size:12px;color:#7b8973}.reading-progress-selectors{display:grid;grid-template-columns:minmax(0,2fr) minmax(120px,1fr);gap:18px;margin:26px 0}.reading-progress-selectors label{min-width:0}.reading-progress-value{display:flex;align-items:baseline;gap:18px;margin:26px 0 18px}.reading-progress-value strong{font-size:40px;font-weight:500;color:#47572e}.reading-progress-value strong small{font-size:17px;color:#768366;font-weight:400}.reading-progress-value>span{font-size:14px;color:#7c8872}.reading-progress-slider-label{gap:12px}.reading-progress-slider{width:100%;padding:0;min-height:32px;accent-color:#606c38;cursor:pointer}.reading-progress-number-row{display:flex;align-items:flex-end;gap:20px;margin:18px 0}.reading-progress-number-row label{flex:0 0 150px;min-width:0}.reading-progress-number-row p{margin:0 0 9px;font-size:12px;line-height:1.7;color:#7b8973}.reading-progress-page-hint{font-size:13px;line-height:1.8;color:#7b8973}.reading-progress-link{padding:0;border:0;border-radius:0;background:none;color:#526f40;text-decoration:underline;text-underline-offset:3px;margin-left:7px;font-size:inherit}.reading-progress-link:hover{background:none}.reading-progress-save{display:flex;align-items:center;gap:12px;min-height:48px;font-size:13px;color:#7b8973}.reading-progress-save.saved{color:#526f40}.reading-progress-save.failed{color:#934235}.reading-progress-save.failed button{font-size:12px}.reading-progress-restart{display:flex;gap:15px;align-items:center;border-top:1px solid #e0e6d9;padding-top:20px;margin-top:16px}.reading-progress-restart span{font-size:12px;color:#7b8973}.reading-progress-history{margin-top:26px}.reading-progress-cycle{padding:12px 0}.reading-progress-cycle h3{font-size:14px!important;margin:10px 0!important;padding:0!important;border:0!important}.reading-progress-cycle p{font-size:12px}.reading-progress-cycle ol{list-style:none;padding:0;margin:14px 0}.reading-progress-cycle li{display:flex;flex-wrap:wrap;gap:6px 18px;padding:9px 0;border-top:1px solid #edf0e8;font-size:12px}.reading-progress-cycle time{color:#85907d;min-width:155px}.reading-progress-cycle li span{color:#516045}.reading-progress-legacy{color:#8a9582}.reading-progress-empty{padding:20px 0}@media(max-width:600px){.reading-progress-heading{align-items:flex-start;flex-direction:column;gap:7px}.reading-progress-selectors{grid-template-columns:1fr;gap:14px}.reading-progress-number-row{gap:14px;align-items:center}.reading-progress-number-row label{flex-basis:110px}.reading-progress-restart{align-items:flex-start;flex-direction:column;gap:10px}.reading-progress-value strong{font-size:34px}}.reading-progress-history[open]{max-height:min(480px,60vh);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,sans-serif;color:#3d342f;background:#faf7f0;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #d9dfd5;border-radius:8px;background:#fff;padding:9px 13px;color:#344b3e}button:hover{border-color:#658369;background:#eef2e9}button:disabled{opacity:.5;cursor:wait}input,select,textarea{border:1px solid #d9dfd5;background:#fff;border-radius:7px;padding:11px;color:#344b3e;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #a5b79d;outline-offset:1px}header{display:flex;align-items:center;gap:30px;padding:24px 5%;border-bottom:1px solid #e1e5dc;background:#fff}.brand{font-size:32px;letter-spacing:-2px;font-weight:750;color:#606c38}.brand small{font-size:10px;letter-spacing:3px;margin-left:14px}.header-note{font-size:13px;color:#8b9489;flex:1}.dev{font-size:12px;text-align:center;padding:8px;background:#e9eddf;color:#647252}main{max-width:1500px;margin:auto;display:grid;grid-template-columns:260px 1fr;gap:46px;padding:42px 5%}aside{border-right:1px solid #e0e5d9;padding-right:30px}.eyebrow{font-size:10px;letter-spacing:2px;color:#839078}h1{font-size:30px;font-weight:600;letter-spacing:1px;margin:22px 0 30px}h1 span{display:block;font-size:13px;font-weight:400;color:#8b9488;margin-top:14px;letter-spacing:0}.primary{background:#606c38;color:#fff;border-color:#606c38;padding:12px 20px}.primary:hover{background:#485329;color:#fff}.stats{display:flex;gap:40px;margin:32px 0}.stats strong{font-size:26px;font-weight:500}.stats small{display:block;font-size:12px;color:#8a9587;margin-top:8px}h3{font-size:15px;font-weight:600}.shelf{border-top:1px solid #dde3d5;padding-top:20px}.shelf input{width:100%;font-size:12px;margin:15px 0 8px}.location{display:block;border:0;background:none;text-align:left;width:100%;font-size:13px}.location.active{background:#edf0e3}.quiet{font-size:11px;line-height:2;color:#96a18f;margin-top:50px}.toolbar{display:flex;gap:12px;margin:2px 0 28px}.toolbar input{flex:1;min-width:120px}.toolbar select{max-width:140px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}h2{font-size:20px;font-weight:550}h2 small{font-size:12px;color:#8a9587;margin-left:8px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:24px;margin-top:18px}.book{background:none;border:1px solid transparent;text-align:left;padding:10px}.book.selected{background:#eaf0e3;border-color:#a6b69b}.book h3{margin:16px 0 7px}.book p{font-size:12px;color:#8d9588;margin:0 0 10px}.cover{min-height:224px;box-shadow:4px 5px 12px #25332b12;border-radius:2px 7px 7px 2px;border-left:7px solid #0000000d;display:flex;flex-direction:column;justify-content:space-between;padding:23px 18px}.cover small{font-size:8px;letter-spacing:2px;opacity:.5}.cover strong{font-family:Georgia,Songti SC,serif;font-size:25px;font-weight:500;line-height:1.5}.cover span{font-size:11px}.tone0{background:#dbe2d1;color:#40523f}.tone1{background:#e8dac6;color:#725e45}.tone2{background:#cedbdc;color:#476165}.tone3{background:#dfd2cf;color:#6b5551}.chips{display:flex;gap:5px;flex-wrap:wrap}.chips span{font-size:10px;background:#e9ede4;border-radius:4px;padding:4px 5px;color:#7a8770}.empty{border:1px dashed #cfd8c6;padding:70px 25px;text-align:center;border-radius:12px;color:#87977b}.empty span{font-size:46px}.empty h2{font-size:19px}.empty p{font-size:13px}.panel{background:#fff;border:1px solid #e2e6dc;border-radius:12px;padding:28px;margin:20px 0}.panel p{font-size:13px;color:#7b8973;line-height:1.8}.detail h3{border-top:1px solid #e5e8df;padding-top:28px;margin-top:28px}.row{display:flex;gap:14px;align-items:end;flex-wrap:wrap;margin:14px 0}label{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#78836f;flex:1;min-width:140px}form>label{margin:15px 0}textarea{width:100%;min-height:100px;resize:vertical}.edition{background:#f7f8f3;border-radius:8px;padding:16px;margin:12px 0;font-size:13px}.holding{display:flex;gap:14px;align-items:center;border-top:1px solid #e4e9dd;padding-top:10px;margin-top:10px}.holding span{flex:1}.holding small{display:block;color:#8c9983;margin-top:7px;font-size:10px}.holding select{max-width:180px;font-size:12px}details{margin:16px 0;border:1px solid #e0e6d9;border-radius:8px;padding:14px}summary{cursor:pointer;font-size:13px;color:#54734e}.reading{display:flex;align-items:center;gap:15px;padding:10px 0;font-size:13px}progress{flex:1;accent-color:#606c38}.note{border-left:2px solid #b7c8aa;padding-left:16px;margin-top:24px}.note p{white-space:pre-wrap;color:#3e4f35}.note small{color:#8a987f;font-size:11px}.note-photo{max-width:260px;max-height:240px;margin:10px;border-radius:7px}.error,.notice{padding:16px;margin-bottom:16px;border-radius:8px;font-size:13px}.error{color:#934235;background:#fae9e3}.notice{background:#f1efdc;color:#897b3a}footer{border-top:1px solid #dfe6d7;padding:26px;text-align:center;font-size:11px;color:#94a087}@media(max-width:850px){header{padding:18px;gap:12px}.header-note{display:none}header select{margin-left:auto;max-width:200px}main{display:block;padding:24px 18px}aside{border:0;padding:0}.stats{margin:20px 0}.quiet{display:none}.shelf{margin-bottom:24px}.toolbar{flex-wrap:wrap}.toolbar input{flex-basis:100%}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cover{min-height:200px}.panel{padding:16px}.holding{flex-wrap:wrap}.holding span{min-width:100%}.reading{flex-wrap:wrap}}:root .account{display:flex;align-items:center;gap:16px}.account span{font-size:13px;text-align:right}.account small{display:block;margin-top:4px;font-size:11px;color:#839078}.login-link{display:inline-block;text-decoration:none;color:#344b3e;font-size:14px}.primary.login-link{color:#fff;border-radius:8px}.auth-main{display:block;max-width:850px}.auth-panel{padding:44px}.auth-panel h1{font-size:27px;margin:18px 0 24px}.auth-panel .retry{margin:12px}.auth-panel .auth-note{margin-top:26px;font-size:12px;color:#839078}@media(max-width:600px){.account{margin-left:auto;gap:8px}.account span{max-width:130px;overflow-wrap:anywhere}.account button{font-size:12px}.auth-panel{padding:22px}.auth-panel .retry{margin-left:0;display:block}}.library-session{margin:0;padding:0;border:0;min-width:0}.library-session:disabled{opacity:.8}.session-notice{max-width:1350px;margin:24px auto 0;padding:22px}.session-notice h2{margin-top:0}.session-notice p{font-size:13px;line-height:1.8}.session-notice button,.session-notice .login-link{margin:4px 10px 4px 0}.session-notice>span{display:block;font-size:12px;margin-top:10px}header .account{flex-wrap:wrap;justify-content:flex-end}header .account button{font-size:12px}@media(max-width:850px){.session-notice{margin:20px 18px 0}header .account{gap:8px;max-width:75%}}:root{--brand-ink:#3d342f;--brand-muted:#70665d;--product-accent:#606c38;--product-tint:#edf0e3}.family-brand{display:flex;flex-direction:column;gap:6px;flex-shrink:0;color:var(--brand-ink);line-height:1.3}.family-name{font-size:21px;font-weight:700;letter-spacing:.6px;white-space:nowrap}.family-name b{color:var(--product-accent);font-weight:600}.family-brand small{font-size:11px;letter-spacing:1px;color:var(--brand-muted);font-weight:400}.family-motto{display:inline-block;margin-left:24px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--product-accent);outline-offset:3px}@media(max-width:600px){.family-name{font-size:19px}.family-motto{display:block;margin:8px 0 0}}header{flex-wrap:wrap}.header-note{color:var(--brand-muted)}.empty,.quiet,.book p,.chips span{color:#656d55}.primary:hover{background:#485329}@media(max-width:600px){header .account{max-width:100%;margin-left:0;width:100%;justify-content:flex-start}}.sidebar-actions{display:grid;gap:9px}.shelf .section-heading{gap:8px}.shelf .section-heading button{font-size:11px;padding:6px;white-space:nowrap}.location-tree{max-height:420px;overflow:auto;margin:10px 0}.tree-row{display:flex;align-items:center;width:max-content;min-width:100%}.tree-row .location{width:auto;flex:1;white-space:nowrap;text-align:left}.tree-toggle,.tree-spacer{width:26px;min-width:26px;display:inline-block}.tree-toggle{padding:5px 3px;border:0;background:none}.location-manager{padding-top:12px;border-top:1px solid #dfe5d5}.location-manager label{min-width:0}.location-manager input,.location-manager select{width:100%;font-size:12px}.location-manager input{margin:0}.location-manager .button-row{gap:6px}.location-manager button{font-size:12px}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.form-hint{font-size:12px;line-height:1.7;color:#706b59}.sub-panel{border:1px solid #dce3d2;border-radius:10px;padding:20px;margin:18px 0;background:#fcfdf9}.sub-panel h4{margin:0;font-size:16px}.holding-editor>label{margin-top:18px}.association-summary{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:15px;background:var(--product-tint);border-radius:8px;font-size:13px}.association-summary strong{color:var(--product-accent)}.association-summary span{color:var(--brand-muted)}.danger{color:#934235}.danger:disabled{cursor:not-allowed}.edition .deletion-reason{color:#927151;font-size:12px}.success{position:sticky;top:12px;z-index:2;padding:14px 16px;margin-bottom:16px;border:1px solid #b6c8a1;border-radius:8px;background:#eef5e7;color:#485b35;font-size:13px;box-shadow:0 3px 12px #26331d10}.content>.error{position:sticky;top:12px;z-index:3}.holding-editor .row>button{margin-bottom:1px}.edition .section-heading{align-items:flex-start}.edition .section-heading button{white-space:nowrap}@media(max-width:850px){.sub-panel{padding:15px}.location-tree{max-height:260px}.association-summary{gap:9px}.holding-editor .row>button{font-size:12px}.shelf .location-manager{max-width:540px}.sidebar-actions{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}[hidden]{display:none!important}.app-header{position:relative;z-index:10;display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:24px;padding:16px clamp(18px,4vw,64px)}.header-brand{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:3px 0;border:0;border-radius:4px;background:transparent;color:var(--brand-ink);text-align:left;line-height:1.35}.header-brand:hover{background:transparent}.header-brand>span{font-size:21px;font-weight:700;letter-spacing:.4px;white-space:nowrap}.header-brand b{color:var(--product-accent);font-weight:600}.header-brand small{color:var(--brand-muted);font-size:11px;letter-spacing:1px}.apopo-return,.header-login,.back-link{color:#526343;font-size:13px;line-height:1.6;text-decoration:none;text-underline-offset:4px}.apopo-return:hover,.header-login:hover,.back-link:hover{color:#34472a;text-decoration:underline}.header-account{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0;max-width:100%;justify-self:end}.user-menu{position:relative;max-width:min(240px,32vw)}.user-menu-trigger{position:relative;display:block;max-width:100%;padding:9px 29px 9px 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;background:#f7f8f3}.user-menu-trigger:after{content:"▾";position:absolute;right:10px;color:#758269;font-size:12px}.user-menu-trigger[aria-expanded=true]{border-color:#8ca07c;background:var(--product-tint)}.user-menu-popup{position:absolute;top:calc(100% + 8px);right:0;z-index:30;min-width:180px;max-width:calc(100vw - 36px);padding:6px;border:1px solid #dce3d3;border-radius:10px;background:#fff;box-shadow:0 8px 28px #27351d20}.user-menu-popup button,.user-menu-popup a{display:block;width:100%;border:1px solid transparent;border-radius:8px;padding:11px 12px;text-align:left;font-size:13px;line-height:1.5}.user-menu-popup a:hover{background:#eef2e9}.app-header .header-dev-user{width:auto;max-width:210px;margin:0;font-size:12px}main.library-layout{display:grid;grid-template-columns:240px minmax(0,1fr);max-width:1440px;gap:34px;padding:32px clamp(18px,4vw,64px) 48px}main.page-layout{display:block;max-width:1120px;padding:28px clamp(18px,4vw,48px) 48px}.library-layout>aside{min-width:0;padding-right:24px}.library-layout .content,.page-layout .content,.library-page,.book-section,.settings-card{min-width:0}.library-page,.book-section,.settings-card{overflow-wrap:anywhere}.library-page .grid{align-items:start}.library-page .book{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;align-self:start;width:100%;min-width:0}.library-page .book .cover{flex:0 0 240px;width:100%;height:240px;min-height:240px;max-height:240px;overflow:hidden;gap:8px}.library-page .cover small{flex:0 0 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.library-page .cover strong,.library-page .cover span{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;flex-shrink:0}.library-page .cover strong{-webkit-line-clamp:4;line-clamp:4;font-size:24px;line-height:1.35}.library-page .cover span{-webkit-line-clamp:2;line-clamp:2;line-height:1.5}.library-page .book h3,.library-page .book p{width:100%;overflow-wrap:anywhere}.library-page .book .chips{align-content:flex-start}.page-heading,.section-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin:0 0 20px}.page-heading>div,.section-actions>div{min-width:0}.page-heading h1{margin:6px 0;font-size:clamp(24px,3vw,30px);letter-spacing:0;line-height:1.4;overflow-wrap:anywhere}.page-heading h2,.section-actions h2,.section-actions h3{margin:0}.page-heading p{margin:7px 0 0;color:var(--brand-muted);font-size:13px;line-height:1.7}.page-heading .eyebrow{margin:0 0 4px;font-size:10px}.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 18px;color:var(--brand-muted);font-size:12px}.breadcrumb button,button.breadcrumb,button.back-link{border:0;background:transparent;padding:6px 0;color:#526343;font-size:13px;text-align:left}.breadcrumb button:hover,button.breadcrumb:hover,button.back-link:hover{color:#34472a;text-decoration:underline;text-underline-offset:4px}.book-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:22px 0;padding:0 0 10px;border-bottom:1px solid #dfe5d5}.book-tabs button{padding:10px 18px;border-color:transparent;background:transparent;color:#677259;font-size:14px}.book-tabs button:hover{background:#f0f3e9}.book-tabs button[aria-current=page]{border-color:#cad7ba;background:var(--product-tint);color:#40522e;font-weight:600}.book-section{margin-top:18px}.book-section>.panel:first-child,.book-section.panel{margin-top:0}.book-section .section-actions h3{border:0;padding:0}.section-actions .button-row{margin:0}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px}.settings-card{padding:24px;border:1px solid #e0e6d7;border-radius:12px;background:#fff}.settings-card h2{margin:0 0 14px;font-size:18px}.settings-card p{color:#6c7561;font-size:13px;line-height:1.8}.settings-card .shelf{border:0;padding-top:0;margin-bottom:0}.settings-card .location-tree{max-height:360px}.settings-card input,.settings-card select{max-width:100%}.settings-card>button{max-width:100%;margin-top:8px}.pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;margin:28px 0 10px;font-size:13px;color:#68735c}.pagination button{padding:8px 13px}.pagination button:disabled{cursor:not-allowed}.pagination button[aria-current=page]{background:var(--product-tint);border-color:#a8b898;color:#40522e}.draft-hint{padding:10px 13px;margin:12px 0 18px;border-left:3px solid #a9b98d;border-radius:0 7px 7px 0;background:#f0f3e6;color:#596346;font-size:12px;line-height:1.8;overflow-wrap:anywhere}.reading-editor,.note-editor{padding:22px;border:1px solid #dfe5d7;border-radius:10px;background:#fcfdf9;margin:18px 0;min-width:0}.reading-editor>:first-child,.note-editor>:first-child{margin-top:0}.reading-editor label,.note-editor label{min-width:min(180px,100%)}.reading-editor input,.reading-editor select,.note-editor input,.note-editor select{max-width:100%}.note-editor textarea{min-height:150px;line-height:1.8}.note-editor input[type=file]{width:100%;font-size:12px}.page-layout .note-photo{max-width:min(260px,calc(100% - 20px))}.back-link{display:inline-block;padding:7px 0}@media(max-width:850px){main.library-layout{display:block;padding:24px 18px 36px}main.page-layout{padding:24px 18px 36px}.library-layout>aside{border:0;padding:0;margin-bottom:24px}.library-layout .grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-grid{grid-template-columns:minmax(0,1fr)}.settings-card{padding:20px}.page-heading,.section-actions{gap:12px}}@media(max-width:600px){.app-header{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:12px 18px}.header-brand{grid-column:1;grid-row:1}.header-brand>span{font-size:18px}.header-brand small{font-size:10px}.header-account{grid-column:2;grid-row:1;flex-wrap:wrap;gap:6px}.user-menu{max-width:100%}.user-menu-trigger{font-size:13px;padding-top:9px;padding-bottom:9px}.app-header .header-dev-user{width:100%;padding:9px 6px}.library-page .book{padding:7px}.library-page .book .cover{flex-basis:210px;height:210px;min-height:210px;max-height:210px;padding:18px 12px;gap:6px}.library-page .cover strong{font-size:21px}.page-heading h1{font-size:24px}.page-heading>.button-row,.section-actions>.button-row{width:100%;margin:0}.book-tabs{gap:4px;margin:18px 0}.book-tabs button{flex:1 1 auto;padding:10px 12px;font-size:13px}.settings-card,.reading-editor,.note-editor{padding:16px}.reading-editor .row,.note-editor .row{gap:12px}.reading-editor .row>label,.note-editor .row>label{flex-basis:100%}.pagination{gap:8px;font-size:12px}.pagination button{padding:8px 11px}.book-section .section-heading{flex-wrap:wrap;gap:10px}.book-section .holding{flex-wrap:wrap}.book-section .holding>span{min-width:0;flex-basis:100%}.book-section .reading{flex-wrap:wrap}.book-section progress{min-width:0;max-width:100%}}.edition-pages{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:16px 0}.edition-pages label{flex:0 1 180px;min-width:0}.edition-pages input{width:100%}.edition-pages small{max-width:100%;padding-bottom:10px;color:#6c7561;line-height:1.6}
