:root{color:#20221f;background:#f8f5ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button,.file-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #c8c1b5;border-radius:8px;background:#fff;color:#20221f;cursor:pointer;padding:8px 12px}button:disabled{cursor:not-allowed;opacity:.48}button:hover:not(:disabled),.file-button:hover{border-color:#2f5d62}input,select,textarea{width:100%;border:1px solid #c8c1b5;border-radius:8px;background:#fff;color:#20221f;padding:8px 10px}textarea{min-height:170px;resize:vertical}h1,h2,p{margin-top:0}h1{margin-bottom:4px;font-size:1.8rem;line-height:1.1}h2{margin-bottom:12px;font-size:.95rem}.app-shell{display:flex;min-height:100vh;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #d9d2c8;background:#fffaf2;padding:18px 24px}.topbar p{margin-bottom:0;color:#686158}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-mark{width:44px;height:44px;flex:0 0 auto}.eyebrow{margin-bottom:6px;color:#2f5d62;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.topbar-actions{display:flex;align-items:center;gap:10px}.topbar-actions select{min-width:130px}.file-button{min-width:max-content}.file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.error{margin:12px 24px 0;border:1px solid #c9554d;border-radius:8px;background:#fff2f0;color:#7e1f1a;padding:10px 12px}.install-reminder{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:12px 24px 0;border:1px solid #d9d2c8;border-left:4px solid #2f5d62;border-radius:8px;background:#fdfaf5;box-shadow:0 8px 18px #20221f14;padding:12px 14px}.install-reminder strong{display:block;margin-bottom:2px}.install-reminder p{margin-bottom:0;color:#686158}.install-reminder-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.workspace{display:grid;flex:1;grid-template-columns:280px minmax(0,1fr) 320px;min-height:0}.workspace.bookmarks-hidden{grid-template-columns:minmax(0,1fr) 320px}.panel{overflow:auto;border-color:#d9d2c8;background:#fdfaf5;padding:18px}.left-panel{border-right:1px solid #d9d2c8}.right-panel{border-left:1px solid #d9d2c8}.panel section+section{margin-top:28px}.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.panel-title-row h2{margin-bottom:0}.icon-button{width:34px;height:34px;padding:0}.reader-column{display:flex;min-width:0;min-height:0;flex-direction:column}.reader-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;overflow-x:auto;border-bottom:1px solid #d9d2c8;background:#f8f5ef;padding:10px 14px}.reader-toolbar button{min-width:max-content}.with-icon{display:inline-flex;align-items:center;gap:6px}.toolbar-group{display:flex;align-items:center;gap:8px;min-width:max-content}.navigation-group{gap:6px}.status-group{flex:1;justify-content:center;min-width:160px}.utility-group{justify-content:flex-end}.segmented{display:flex;border:1px solid #c8c1b5;border-radius:8px;overflow:hidden}.segmented button{border:0;border-radius:0}.segmented button+button{border-left:1px solid #c8c1b5}.segmented .active{background:#2f5d62;color:#fff}.page-status{min-width:max-content;color:#514b44;font-weight:700}.reader-status{min-width:max-content;color:#686158;font-size:.9rem}.page-jump{display:flex;align-items:center;gap:8px;min-width:max-content;color:#514b44;white-space:nowrap}.page-jump input{width:68px;border-color:#c8c1b5;background:#fff;font-weight:700;text-align:center}.page-jump input:focus{border-color:#2f5d62;box-shadow:0 0 0 3px #2f5d6229;outline:none}.zoom-control{display:flex;align-items:center;gap:8px;min-width:190px;color:#514b44;white-space:nowrap}.progress-strip{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:16px;border-bottom:1px solid #d9d2c8;background:#fffaf2;padding:7px 14px}.passive-progress{display:grid;grid-template-columns:max-content minmax(120px,1fr) 48px;align-items:center;gap:10px;color:#514b44}.progress-track{position:relative;height:6px;border-radius:999px;background:#d8d0c3}.progress-fill{height:100%;border-radius:inherit;background:#2f5d62;transition:width .14s ease}.progress-marker{position:absolute;top:50%;width:12px;height:12px;border:2px solid #fffaf2;border-radius:999px;box-shadow:0 1px 4px #20221f38;padding:0;transform:translate(-50%,-50%)}.progress-marker.active{width:16px;height:16px;border-color:#20221f}.progress-strip small{color:#686158;white-space:nowrap}.reader-surface{position:relative;overflow:auto;flex:1;background:linear-gradient(90deg,rgba(47,93,98,.04) 1px,transparent 1px),linear-gradient(rgba(47,93,98,.04) 1px,transparent 1px),#ede7dd;background-size:24px 24px}.reader-page-nav{position:absolute;z-index:5;top:50%;width:46px;height:74px;border-color:#2f5d622e;background:#fffaf2b8;color:#2f5d62;opacity:.36;padding:0;transform:translateY(-50%);transition:border-color .14s ease,background .14s ease,opacity .14s ease,transform .14s ease}.reader-page-nav:hover:not(:disabled),.reader-page-nav:focus-visible{border-color:#2f5d62;background:#fffaf2;opacity:1}.reader-page-nav:disabled{opacity:0;pointer-events:none}.reader-page-nav-left{left:18px}.reader-page-nav-right{right:18px}.page-frame{display:flex;min-height:100%;align-items:flex-start;justify-content:center;padding:24px}.page-frame canvas{display:block;background:#fff;box-shadow:0 14px 40px #2d23142e}.page-frame.comfort canvas{border-radius:4px}.page-frame.original{justify-content:flex-start}.empty-state{max-width:460px;margin:80px auto;color:#686158;text-align:center}.library-dashboard{width:min(1040px,calc(100% - 48px));margin:0 auto;padding:34px 0}.library-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.library-intro h2{margin-bottom:6px;font-size:1.4rem}.library-intro p{max-width:620px;margin-bottom:0;color:#686158}.library-message{border-left:3px solid #2f5d62;background:#edf4f2;color:#24484c;padding:10px 12px}.library-grid{display:grid;gap:12px}.library-book{display:grid;gap:10px;border:1px solid #d8d0c3;border-radius:8px;background:#fffaf2eb;padding:14px}.library-book-main{display:grid;gap:3px}.library-book-main strong{overflow-wrap:anywhere;font-size:1.05rem}.library-book-main span{color:#686158}.library-progress{height:7px;overflow:hidden;border-radius:999px;background:#d8d0c3}.library-progress span{display:block;height:100%;border-radius:inherit;background:#2f5d62}.library-meta{display:flex;flex-wrap:wrap;gap:8px;color:#514b44;font-size:.86rem}.library-meta span{border:1px solid #e0d8cd;border-radius:999px;background:#fffaf2;padding:3px 8px}.library-actions{display:flex;flex-wrap:wrap;gap:8px}.bookmark-list{display:grid;gap:10px}.bookmark-card{position:relative;display:block;width:100%;border:1px solid #c8c1b5;border-radius:8px;background:#fff;overflow:hidden}.bookmark-card.active{border-color:#2f5d62;box-shadow:0 0 0 2px #2f5d6229}.bookmark-main{position:relative;display:grid;width:100%;grid-template-columns:72px minmax(0,1fr);gap:8px 10px;border:0;border-radius:0;text-align:left}.bookmark-main img{width:72px;height:96px;grid-row:span 3;border-radius:4px;object-fit:cover}.bookmark-card strong,.bookmark-card span,.bookmark-card small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bookmark-actions{display:flex;justify-content:flex-end;gap:4px;border-top:1px solid #ece6dd;padding:6px 8px}.text-button{border:0;background:transparent;color:#2f5d62;padding:4px 6px}.text-button.danger{color:#9c2d24}.bookmark-card span,.bookmark-card small,.muted{color:#686158}.bookmark-swatch{position:absolute;top:8px;right:8px;width:12px;height:12px;border-radius:99px}.storage-box p{margin-bottom:8px;color:#514b44}.storage-records{display:block;color:#686158;font-size:.88rem}.storage-warning{border-left:3px solid #d9902f;background:#fff4db;color:#6f4615;padding:8px 10px}.secondary{background:#f8f5ef}.current-bookmark-note,.bookmark-message{margin:10px 0 12px;font-size:.9rem}.bookmark-message{border-left:3px solid #2f5d62;background:#edf4f2;color:#24484c;padding:8px 10px}.color-palette{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.color-swatch{position:relative;height:34px;border-color:#d8d0c3;background:#fffaf2;padding:4px}.color-swatch span{display:block;width:100%;height:100%;border-radius:5px;background:var(--swatch-color)}.color-swatch.selected{border-color:#20221f;box-shadow:0 0 0 2px #20221f1f}.color-swatch.selected:after{position:absolute;top:50%;left:50%;width:8px;height:8px;border:2px solid #ffffff;border-radius:999px;background:#20221f;box-shadow:0 1px 2px #00000047;content:"";transform:translate(-50%,-50%)}.color-swatch:focus-visible{border-color:#2f5d62;box-shadow:0 0 0 3px #2f5d622e;outline:none}.form-actions{display:flex;flex-wrap:wrap;gap:8px}.right-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;border:1px solid #d8d0c3;border-radius:8px;background:#f8f5ef;padding:4px}.right-tabs button{min-width:0;border:0;border-radius:6px;background:transparent;color:#514b44;padding:7px 8px}.right-tabs button.active{background:#2f5d62;color:#fff}.tab-panel{margin-top:18px}.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.section-title-row h2{margin-bottom:0}.save-state{color:#686158;font-size:.82rem;font-weight:700}.save-state.error{color:#9c2d24}.section-divider{height:1px;margin:22px 0 18px;background:#d9d2c8}.tab-panel label,.right-panel label{display:grid;gap:6px;margin-bottom:12px;color:#514b44;font-size:.9rem;font-weight:700}.search-results{display:grid;gap:8px;margin-top:14px}.search-result{display:grid;width:100%;justify-content:stretch;gap:3px;text-align:left}.search-result strong,.search-result span,.search-result small{min-width:0;overflow:hidden;text-overflow:ellipsis}.search-result span,.search-result small{color:#686158}@media(max-width:1120px){.workspace{grid-template-columns:220px minmax(0,1fr)}.workspace.bookmarks-hidden{grid-template-columns:1fr}.right-panel{grid-column:1 / -1;border-top:1px solid #d9d2c8;border-left:0}}@media(max-width:760px){.topbar,.topbar-actions,.install-reminder,.install-reminder-actions,.reader-toolbar,.library-intro,.progress-strip,.passive-progress{align-items:stretch;grid-template-columns:1fr;flex-direction:column}.toolbar-group,.status-group,.utility-group{justify-content:flex-start;min-width:0}.workspace{grid-template-columns:1fr}.left-panel,.right-panel{max-height:none;border:0;border-bottom:1px solid #d9d2c8}.library-dashboard{width:min(100% - 28px,1040px);padding:24px 0}}
