:root{--bg:#f8f7f3;--side:#f0f0e9;--surface:#fff;--ink:#28332c;--muted:#646e64;--accent:#294d41;--accent-hover:#1e3c32;--accent-soft:#e0e8dd;--border:#dedfd5;--control-border:#7f8a7c;--hover:#e8ebe3;--focus:#5c7a50;--danger:#a23728;--font:"Pretendard Variable","Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;--serif:"Noto Serif KR","Nanum Myeongjo",Georgia,serif;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:0;border-radius:8px;background:none;color:inherit;transition:background .18s,color .18s,box-shadow .18s}button:hover{background:var(--hover)}button:disabled{opacity:.45;cursor:not-allowed}button:active:not(:disabled){filter:brightness(.95)}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}input,select{min-height:44px;border:1px solid var(--control-border);border-radius:8px;background:var(--surface);padding:9px 12px;min-width:0;max-width:100%;color:var(--ink)}input[type=range]{accent-color:var(--accent);padding:0;cursor:pointer;border:0;background:transparent;width:100%;min-height:44px}input[type=checkbox]{min-height:20px;width:20px;accent-color:var(--accent)}input[type=number]{appearance:textfield}input[type=number]::-webkit-inner-spin-button{appearance:none}input::placeholder{color:var(--muted)}a{color:var(--accent)}h1,h2,h3,p{margin:0}h2{font-size:23px;line-height:1.4}h3{font-size:16px}p{word-break:keep-all;overflow-wrap:anywhere}svg{flex-shrink:0}img{max-width:100%}.primary{background:var(--accent);color:#fff;font-weight:600;padding:11px 19px;border:1px solid var(--accent)}.primary:hover{background:var(--accent-hover)}.secondary{padding:10px 16px;border:1px solid var(--control-border);background:var(--surface);font-weight:550}.secondary:hover{background:var(--hover)}.text-button{padding:8px 10px;font-size:14px}.icon-button{width:44px;height:44px;min-width:44px;padding:0;flex-shrink:0}.muted{color:var(--muted);font-size:14px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-80px;left:16px;background:var(--accent);color:#fff;padding:12px;z-index:300}.skip-link:focus{top:12px}.eyebrow{color:var(--muted);font-size:11px;font-weight:650;letter-spacing:1.9px}.app-shell{min-height:100dvh;display:grid;grid-template-columns:232px minmax(0,1fr)}.sidebar{border-right:1px solid var(--border);background:var(--side);padding:32px 20px 22px;display:flex;flex-direction:column;position:sticky;top:0;height:100dvh;overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;padding:0 4px 34px}.brand>img{width:36px;height:36px;border-radius:10px}.brand>span:nth-child(2){display:flex;align-items:baseline;gap:6px;white-space:nowrap}.brand strong{font-size:22px;letter-spacing:-1px}.brand small{font-size:11px;color:var(--muted);font-weight:550}.brand .beta{font-size:8px;padding:2px 4px;border-radius:3px;color:var(--muted);border:1px solid var(--border);letter-spacing:.6px;margin-left:auto}.import-button{width:100%;margin-bottom:28px}.nav-label{font-size:10px;letter-spacing:1.6px;color:var(--muted);padding:0 13px;margin-bottom:10px}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar nav button{justify-content:flex-start;width:100%;padding:10px 13px;font-size:14px;gap:12px;text-align:left}.sidebar nav button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar nav button small{margin-left:auto;color:var(--muted);font-size:12px}.sidebar nav button.selected{background:var(--accent-soft);color:var(--accent);font-weight:650}.sidebar nav button.selected small{color:var(--accent)}.collection-label{margin-top:34px}.collection-hint{font-size:12px;line-height:1.9;color:var(--muted);padding:0 13px}.sidebar-bottom{margin-top:auto;padding-top:40px}.storage-link{width:100%;justify-content:flex-start;gap:10px;text-align:left;font-size:12px;padding:10px}.storage-link span{flex:1}.storage-link small{display:block;font-size:11px;color:var(--muted);margin-top:2px}.sidebar-rule{border-bottom:1px solid var(--border);margin:15px 0 8px}.help-link{font-size:13px;gap:10px;padding:8px 10px}.device-note{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted);padding:17px 10px 0}.topbar{height:79px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 44px;gap:16px}.breadcrumb{display:flex;align-items:center;gap:11px;color:var(--muted);font-size:12px}.topbar-right{display:flex;align-items:center;gap:20px}.connection{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;white-space:nowrap}.connection>span{width:5px;height:5px;border-radius:50%;background:var(--accent)}.connection.offline>span{background:#926530}.install{font-size:12px}.library-body{max-width:1460px;margin:auto;padding:44px 48px 24px}.library-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:34px}.library-heading h1{font-size:32px;letter-spacing:-1.3px;display:flex;align-items:center;gap:12px;line-height:1.6;margin-top:5px}.count{display:inline-flex;align-items:center;justify-content:center;font-size:13px;min-width:28px;height:25px;padding:0 8px;border:1px solid var(--border);border-radius:5px;letter-spacing:0;color:var(--muted);font-weight:500}.heading-note{font-size:13px;color:var(--muted);margin-top:5px}.desktop-import{font-size:13px}.library-tools{display:flex;align-items:center;justify-content:space-between;gap:20px}.search-field{display:flex;align-items:center;gap:10px;border:1px solid var(--control-border);border-radius:8px;background:var(--surface);padding-left:12px;width:330px;max-width:100%;color:var(--muted)}.search-field input{border:0;background:transparent;padding-left:0;font-size:13px;width:100%;min-width:0}.search-field:focus-within{outline:2px solid var(--focus);outline-offset:1px}.search-field input:focus-visible{outline:0}.tool-right{display:flex;align-items:center;gap:12px;flex-shrink:0}.sort-label select{font-size:12px;background:transparent;border:0;padding:10px 25px 10px 10px}.view-toggle{display:flex;border:1px solid var(--border);border-radius:7px;padding:2px}.view-toggle .icon-button{width:34px;min-width:34px;height:34px;min-height:34px;border-radius:5px;color:var(--muted)}.view-toggle button[aria-pressed=true]{background:var(--surface);box-shadow:0 1px 4px #16271c13;color:var(--accent)}.filter-row{display:flex;align-items:center;gap:5px;padding:16px 0 21px;border-bottom:1px solid var(--border);margin-bottom:27px;overflow-x:auto}.filter-row button{white-space:nowrap;padding:0 14px;min-height:36px;font-size:12px;color:var(--muted);border:1px solid transparent}.filter-row button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:#c5d4cb;font-weight:650}.books{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));column-gap:26px;row-gap:30px}.book-card{position:relative;min-width:0}.book-open{display:block;min-height:0;border-radius:4px;text-align:left;width:100%;padding:0;background:none}.book-open:hover{background:none}.book-open:hover .cover{box-shadow:0 7px 18px #19251c21}.cover{aspect-ratio:3/4;border-radius:4px 7px 7px 4px;background:#e9e7df;position:relative;overflow:hidden;box-shadow:0 2px 6px #17241c16;transition:box-shadow .18s;isolation:isolate}.cover>img{width:100%;height:100%;object-fit:contain;display:block;background:#ebe9e3}.cover-spine{position:absolute;inset:0 auto 0 0;width:8px;background:linear-gradient(90deg,#0002,transparent);pointer-events:none}.type-cover{height:100%;padding:22px;display:flex;flex-direction:column;color:#314f44;overflow:hidden}.type-cover>span{font-size:8px;letter-spacing:1px;opacity:.8}.type-cover>svg{margin:26px 0 18px}.type-cover>strong{font-family:var(--serif);font-size:23px;line-height:1.5;word-break:break-all;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.type-cover>small{font-size:9px;letter-spacing:1px;margin-top:auto;padding-top:18px}.cover-text{background:#ddd8cc}.cover-archive{background:#d7c2b0}.cover-pdf{background:#d6dfd8}.book-copy{padding:14px 2px 0}.book-format{font-size:10px;font-weight:550;color:var(--muted);letter-spacing:.2px}.book-format>span{font-weight:400}.book-copy h3{font-size:14px;font-weight:600;letter-spacing:-.2px;line-height:1.5;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:14px}.book-copy p{font-size:11px;color:var(--muted);margin-top:5px}.book-progress{height:3px;background:var(--border);border-radius:3px;overflow:hidden;margin-top:10px;width:85%}.book-progress>span{height:100%;background:var(--accent);display:block}.card-actions{position:absolute;right:-4px;bottom:21px;display:flex;align-items:center;color:var(--accent)}.card-actions .icon-button{width:30px;min-width:30px;min-height:44px}.list-view{display:flex;flex-direction:column;gap:0}.list-card{border-bottom:1px solid var(--border);padding:15px 0}.list-card .book-open{display:flex;align-items:center;gap:20px;padding-right:70px}.list-card .cover{width:58px;flex-shrink:0}.list-card .book-copy{flex:1;min-width:0;padding:0}.list-card .type-cover{padding:8px}.list-card .type-cover>span,.list-card .type-cover>svg,.list-card .type-cover>small{display:none}.list-card .type-cover>strong{font-size:9px}.list-card .book-copy h3{font-size:15px}.list-card .book-progress{width:160px;max-width:100%;margin-top:6px}.list-card .card-actions{bottom:auto;top:50%;transform:translateY(-50%);right:5px}.continue-reading{display:flex;align-items:center;padding:20px 24px;gap:22px;border:1px solid #d8ded5;background:#edf0e9;border-radius:10px;margin-bottom:28px}.continue-reading>.cover{width:65px;flex-shrink:0}.continue-reading .type-cover{padding:8px}.continue-reading .type-cover>span,.continue-reading .type-cover>svg,.continue-reading .type-cover>small{display:none}.continue-reading .type-cover>strong{font-size:10px}.continue-reading>div:nth-child(2){flex:1;min-width:0}.continue-reading h2{font-size:18px;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:4px 0}.continue-reading p{font-size:12px;color:var(--muted)}.continue-reading .eyebrow{font-size:9px;letter-spacing:1.4px;color:var(--accent)}.continue-reading .primary{font-size:12px;flex-shrink:0}.empty-library{text-align:center;padding:14px 0 24px;display:flex;flex-direction:column;align-items:center}.shelf-illustration{position:relative;display:flex;align-items:flex-end;justify-content:center;width:420px;max-width:100%;height:240px;margin:0 0 38px;padding:0 28px}.illustrated-cover{position:relative;display:flex;flex-direction:column;align-items:flex-start;text-align:left;width:116px;height:165px;padding:17px 13px;border-radius:3px 5px 5px 2px;box-shadow:3px 2px 8px #17251d19;overflow:hidden}.illustrated-cover small{font-size:6px;letter-spacing:1px}.illustrated-cover span{font-family:var(--serif);font-size:24px;line-height:1.35;position:relative;z-index:1}.illustrated-cover.c1{background:#d6bca0;color:#594735;transform:rotate(-9deg);transform-origin:bottom right;margin-right:-14px;margin-bottom:4px;height:155px;z-index:2}.c1 span{margin-top:20px}.arch{position:absolute;bottom:-10px;right:-20px;width:110px;height:100px;border-radius:60px 60px 0 0;background:#b5956e}.illustrated-cover.c2{background:#345748;color:#f2eddf;height:194px;width:140px;z-index:3}.c2 small{font-size:6px}.c2 svg{margin:18px 0 12px;color:#bfccba}.c2 span{font-size:26px}.illustrated-cover.c3{background:#d9e0d6;color:#47594a;transform:rotate(9deg);transform-origin:bottom left;margin-left:-14px;margin-bottom:3px;z-index:1;height:165px;justify-content:space-between;padding-left:25px}.c3 span{writing-mode:vertical-rl;font-size:22px}.shelf-line{position:absolute;width:100%;height:2px;background:var(--border);bottom:0;left:0;box-shadow:0 8px 15px #17251d10}.empty-library h2{font-size:23px;letter-spacing:-.7px;margin-top:9px}.empty-library>p{font-size:13px;color:var(--muted);line-height:1.9;margin:14px 0 24px}.empty-library>.primary{font-size:13px;padding:11px 24px}.sample-button{font-size:12px;color:var(--muted);margin-top:10px}.supported{display:flex;gap:15px;flex-wrap:wrap;justify-content:center;font-size:10px;color:var(--muted);margin-top:25px;letter-spacing:.4px}.supported span+span:before{content:"·";margin-right:15px}.library-footer{margin-top:46px;padding-top:20px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--muted);font-size:10px}.library-footer span{display:flex;align-items:center;gap:7px}.library-footer button{font-size:10px;padding:5px 0;min-height:34px;white-space:nowrap}.no-results{display:flex;flex-direction:column;align-items:center;text-align:center;padding:80px 20px;gap:15px;color:var(--muted)}.no-results h2{font-size:20px;color:var(--ink)}.no-results p{font-size:14px}.loading-state{padding:80px 20px;text-align:center;color:var(--muted)}.mobile-brand,.mobile-add,.nav-scrim{display:none}.drop-overlay{position:fixed;z-index:240;inset:16px;background:#f8f7f3f5;border:2px dashed var(--accent);border-radius:16px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;pointer-events:none;color:var(--accent)}.modal{border:1px solid var(--border);border-radius:16px;padding:28px;max-width:min(480px,calc(100vw - 28px));max-height:calc(100dvh - 40px);width:100%;overflow-y:auto;overscroll-behavior:contain;background:var(--bg);color:var(--ink);box-shadow:0 24px 80px #17251d2e}.modal.wide{max-width:min(640px,calc(100vw - 28px))}.modal::backdrop{background:#18251e73;backdrop-filter:blur(3px)}.modal>header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:24px}.modal h2{font-size:21px;letter-spacing:-.5px}.settings-fields{display:flex;flex-direction:column;gap:18px}.settings-fields>label{font-size:13px;font-weight:550;display:flex;flex-direction:column;gap:7px}.settings-fields>label>input,.settings-fields select{width:100%;font-size:14px;font-weight:400}.settings-fields .check-label{flex-direction:row;align-items:center;gap:10px;min-height:44px}.check-label input{width:20px!important}.field-hint{font-size:12px;font-weight:400;color:var(--muted);line-height:1.8}.file-detail{display:flex;align-items:center;gap:20px;padding-bottom:24px;margin-bottom:22px;border-bottom:1px solid var(--border);min-width:0}.file-detail .cover{width:70px;flex-shrink:0}.file-detail .type-cover{padding:10px}.file-detail .type-cover>span,.file-detail .type-cover>svg,.file-detail .type-cover>small{display:none}.file-detail .type-cover>strong{font-size:12px}.file-detail>div:last-child{min-width:0}.file-detail p{font-size:13px;color:var(--muted)}.file-detail small{font-size:11px;display:block;overflow-wrap:anywhere;margin-top:7px}.detail-bottom{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--border);margin-top:24px;padding-top:15px}.danger{color:var(--danger)}.danger-button{background:var(--danger);color:#fff;padding:8px 16px}.danger-button:hover{background:#902e23}.delete-confirm{background:#f5e8e2;border:1px solid #d8b1a6;padding:16px;border-radius:8px;margin-top:14px}.delete-confirm p{font-size:13px;color:#712e25}.delete-confirm>div{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.storage-summary{display:flex;gap:18px;align-items:center;color:var(--accent)}.storage-summary strong{display:block;font-size:30px;letter-spacing:-1px}.storage-summary span{font-size:12px;color:var(--muted)}.storage-meter{height:5px;background:var(--border);margin:22px 0 10px;border-radius:4px;overflow:hidden}.storage-meter span{height:100%;display:block;background:var(--accent)}.storage-section{padding:24px 0;margin-top:10px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.storage-section h3{display:flex;align-items:center;gap:9px}.storage-section p{font-size:13px;color:var(--muted);line-height:1.9;margin:10px 0 16px}.storage-section button{font-size:12px}.backup-options{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin:26px 0}.backup-options p{font-size:12px;color:var(--muted);line-height:1.9;margin:8px 0 16px}.backup-options button{font-size:12px}.help-content h3{margin:24px 0 8px}.help-content h3:first-child{margin-top:0}.help-content p{font-size:13px;color:var(--muted);line-height:1.9}.help-content>.field-hint{border-top:1px solid var(--border);margin-top:25px;padding-top:20px;font-size:11px}.busy-indicator{position:fixed;bottom:26px;left:50%;transform:translate(-50%);z-index:280;background:var(--accent);color:#fff;box-shadow:0 4px 20px #0002;border-radius:10px;display:flex;align-items:center;gap:12px;padding:13px 20px;font-size:13px;max-width:calc(100% - 30px);white-space:nowrap}.spinner{animation:spin 1.2s linear infinite}.toast{position:fixed;right:24px;top:22px;z-index:290;display:flex;align-items:center;gap:15px;border:1px solid var(--control-border);background:var(--surface);color:var(--ink);border-radius:10px;box-shadow:0 7px 35px #0002;padding:12px 10px 12px 20px;max-width:min(530px,calc(100vw - 30px));font-size:13px}.toast>span{white-space:pre-line;overflow-wrap:anywhere}.update-banner{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 16px;border:1px solid var(--border);border-radius:8px;font-size:12px;margin-bottom:20px}.update-banner button{color:var(--accent);font-weight:650;padding:0 10px}.notice.error{padding:30px;background:#f5e8e2;border:1px solid #d8b1a6;border-radius:10px}.notice.error h2{font-size:21px}.notice.error p{font-size:14px;margin-top:15px}.reader,.reader-suspense{position:fixed;inset:0;z-index:150;background:var(--reader-bg);color:var(--reader-ink);height:100dvh;display:flex;flex-direction:column;overflow:hidden}.reader.theme-dark{--reader-bg:#202624;--reader-surface:#29312d;--reader-ink:#edece6;--reader-muted:#b6c0b9;--reader-border:#535f57;--reader-paper:#e8e6df}.reader.theme-paper{--reader-bg:#e6dfd0;--reader-surface:#f3eee4;--reader-ink:#303b33;--reader-muted:#596453;--reader-border:#a5aa99;--reader-paper:#faf6ec}.reader.theme-white{--reader-bg:#e5e7e5;--reader-surface:#fff;--reader-ink:#25302a;--reader-muted:#5d675f;--reader-border:#a2aaa5;--reader-paper:#fff}.reader-header{height:72px;flex-shrink:0;display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--reader-border);background:var(--reader-surface);padding:8px 24px;padding-top:max(8px,env(safe-area-inset-top));color:var(--reader-ink);z-index:3}.reader .icon-button:hover{background:#8b9f8d2b}.reader-title{min-width:0;flex:1}.reader-title strong{font-size:14px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:550}.reader-title span{font-size:10px;color:var(--reader-muted);display:block;margin-top:2px}.reader-actions{display:flex;gap:4px}.reader-actions button[aria-pressed=true]{color:#c4d3a8;background:#8b9f8d2b}.theme-paper .reader-actions button[aria-pressed=true],.theme-white .reader-actions button[aria-pressed=true]{color:var(--accent)}.reader-viewport{flex:1;min-height:0;overflow:auto;padding:24px;overscroll-behavior:contain;scrollbar-color:var(--reader-border) var(--reader-bg);outline-offset:-4px}.pages{display:flex;align-items:flex-start;justify-content:center;gap:12px;min-height:100%;width:max-content;min-width:100%;max-width:none}.reader-page{position:relative;flex-shrink:0;display:flex;align-items:center;justify-content:center;min-width:120px}.reader-page>img{display:block;max-width:none;object-fit:contain;box-shadow:0 4px 16px #0002;height:calc((100dvh - 210px) * var(--zoom));width:auto;max-height:none}.fit-width .reader-page>img{height:auto;width:calc((100vw - 48px) * var(--zoom))}.layout-spread:not(.narrow).fit-width .reader-page>img{width:calc((50vw - 36px) * var(--zoom))}.layout-spread:not(.narrow) .reader-page>img{max-width:calc((50vw - 36px) * var(--zoom));height:calc((100dvh - 210px) * var(--zoom));object-fit:contain}.pages.rtl{flex-direction:row-reverse}.layout-scroll .pages{display:flex;flex-direction:column;align-items:center;gap:28px;width:100%;min-width:100%}.layout-scroll .reader-page{min-height:480px;max-width:none;width:calc(100% * var(--zoom));scroll-margin-top:12px}.layout-scroll .reader-page>img{width:100%;height:auto;max-width:1000px}.layout-scroll.fit-contain .reader-page>img{max-width:850px}.page-number{position:absolute;bottom:-24px;font-size:10px;color:var(--reader-muted)}.page-loading{color:var(--reader-muted);font-size:13px;padding:50px}.page-error{padding:40px;color:var(--reader-ink);max-width:500px;background:var(--reader-surface);border:1px solid var(--reader-border)}.text-page article{width:calc(740px * var(--zoom));max-width:calc((100vw - 48px) * var(--zoom));padding:clamp(25px,5vw,64px);background:var(--reader-paper);color:#27372d;min-height:calc(100dvh - 210px);box-shadow:0 4px 16px #0002}.theme-dark .text-page article{background:#29312d;color:#e9eee7}.text-page pre{font-family:var(--font);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:inherit;font-size:inherit}.layout-spread:not(.narrow) .text-page article{max-width:calc(50vw - 40px)}.layout-scroll .text-page article{max-width:100%;width:min(100%,850px)}.reader-footer{height:68px;flex-shrink:0;display:flex;align-items:center;gap:20px;background:var(--reader-surface);border-top:1px solid var(--reader-border);padding:8px 26px;padding-bottom:max(8px,env(safe-area-inset-bottom));z-index:3}.page-navigation{display:flex;align-items:center;gap:5px;flex-shrink:0}.page-navigation form{display:flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap}.page-navigation input{width:48px;padding:4px 3px;text-align:center;background:transparent;color:var(--reader-ink);border:1px solid var(--reader-border);min-height:36px}.page-navigation span{color:var(--reader-muted);font-size:12px}.reader .page-slider{flex:1;accent-color:#a2b894;min-width:20px}.reading-percent{font-size:11px;color:var(--reader-muted);width:35px}.zoom-controls{display:flex;align-items:center;gap:4px}.zoom-reset{font-size:12px;min-width:48px}.reader-panel{position:absolute;right:18px;top:82px;bottom:80px;width:320px;max-width:calc(100vw - 36px);background:var(--bg);color:var(--ink);border:1px solid var(--control-border);border-radius:12px;z-index:6;padding:20px;overflow-y:auto;box-shadow:0 20px 70px #0004}.reader-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.reader-panel h2{font-size:17px}.reader-panel h3{margin:24px 0 12px;font-size:14px}.reader-panel .settings-fields{gap:18px}.reader-panel .field-hint{margin-top:-10px;font-size:11px}.reader-scrim{position:absolute;inset:72px 0 68px;background:#0003;z-index:5;border-radius:0;cursor:default}.reader-scrim:hover{background:#0003}.jump-form label{font-size:12px;display:block;margin-bottom:7px}.jump-form>div{display:flex;gap:8px}.jump-form input{width:100%;min-width:0}.jump-form button{font-size:12px}.bookmark-list{display:flex;flex-direction:column;gap:5px}.bookmark-list>button{justify-content:flex-start;font-size:13px;border-bottom:1px solid var(--border);border-radius:0;padding:8px}.bookmark-list>button svg:last-child{margin-left:auto}.shortcut-help{margin-top:35px;padding-top:20px;border-top:1px solid var(--border);color:var(--muted);font-size:12px;line-height:2.2}.show-controls{position:absolute;right:18px;top:max(100px,calc(env(safe-area-inset-top) + 84px));z-index:4;background:var(--reader-surface);border:1px solid var(--reader-border);font-size:12px;padding:8px 14px;color:var(--reader-ink);box-shadow:0 2px 10px #0002}.reader-error{padding:50px 25px;max-width:600px;margin:auto;text-align:center}.reader-error p{margin:18px 0 28px;font-size:14px;color:var(--reader-muted)}.reader-loading{margin:auto;padding:60px;color:var(--reader-muted);font-size:14px}.reader-suspense{background:#202624;color:#edece6;display:flex;align-items:center;justify-content:center;font-size:14px}@media(min-width:1500px){.books{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:34px}}@media(max-width:1100px){.app-shell{grid-template-columns:204px minmax(0,1fr)}.sidebar{padding:28px 14px 20px}.brand{gap:8px}.brand .beta{display:none}.topbar{padding:0 30px}.library-body{padding:34px 30px 24px}.books{column-gap:20px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.library-footer{align-items:flex-start;flex-direction:column;gap:3px}.type-cover{padding:18px}.reader-header{padding-left:12px;padding-right:12px}.reader-footer{padding-left:12px;padding-right:12px;gap:10px}}@media(max-width:760px){.app-shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:fixed;z-index:80;left:0;top:0;bottom:0;width:260px;height:100dvh;transform:translate(-100%);transition:transform .2s;padding:30px 22px max(22px,env(safe-area-inset-bottom))}.sidebar.open{transform:translate(0)}.nav-scrim{display:block;position:fixed;inset:0;border-radius:0;background:#14271e66;z-index:79}.nav-scrim:hover{background:#14271e66}.topbar{height:68px;padding:8px 18px;gap:10px;padding-top:max(8px,env(safe-area-inset-top))}.mobile-brand{display:flex;align-items:center;gap:8px;font-size:20px;letter-spacing:-.6px}.breadcrumb{display:none}.topbar-right{gap:4px}.connection{font-size:9px}.install{font-size:11px;padding:7px}.library-body{padding:28px 22px 90px}.library-heading{margin-bottom:27px;gap:10px}.library-heading h1{font-size:29px}.library-heading .eyebrow{font-size:9px}.heading-note{font-size:12px}.desktop-import{display:none}.mobile-add{display:inline-flex;position:fixed;bottom:max(24px,env(safe-area-inset-bottom));right:22px;width:54px;height:54px;min-height:54px;border-radius:18px;box-shadow:0 4px 16px #294d413b;z-index:50}.library-tools{gap:8px}.search-field{flex:1;min-width:0}.search-field input{font-size:12px}.tool-right{gap:3px}.sort-label select{padding:8px 14px 8px 4px;font-size:11px;max-width:100px}.view-toggle .icon-button{width:32px;min-width:32px;height:40px;min-height:40px}.view-toggle .icon-button svg{width:17px}.filter-row{gap:1px;padding-top:13px;margin-bottom:22px}.filter-row button{padding:0 13px;font-size:11px;min-height:44px}.books{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));column-gap:22px;row-gap:26px}.book-copy h3{font-size:13px}.book-format{font-size:9px}.book-copy p{font-size:10px}.type-cover>strong{font-size:22px}.card-actions{bottom:17px;right:-6px}.card-actions .icon-button{min-width:36px;width:36px}.empty-library{padding-top:0}.shelf-illustration{height:205px;width:340px;margin-bottom:32px}.illustrated-cover{width:100px;height:145px;padding:15px 12px}.illustrated-cover.c1{height:140px}.illustrated-cover.c2{height:175px;width:125px}.illustrated-cover.c3{height:150px;padding-left:20px}.c2 span{font-size:23px}.c2 svg{margin-top:15px;margin-bottom:8px;width:45px}.empty-library h2{font-size:21px}.empty-library>p{font-size:12px}.supported{gap:9px;font-size:9px}.supported span+span:before{margin-right:9px}.library-footer{margin-top:30px;font-size:9px}.continue-reading{gap:14px;padding:15px;margin-bottom:24px;flex-wrap:wrap}.continue-reading>.cover{width:47px}.continue-reading h2{font-size:15px}.continue-reading p{font-size:10px}.continue-reading .primary{min-height:40px;padding:8px 12px;font-size:11px}.continue-reading .eyebrow{font-size:8px}.modal{padding:20px;max-height:calc(100dvh - 28px);border-radius:12px}.modal h2{font-size:19px}.modal>header{margin-bottom:18px}.backup-options{gap:20px}.backup-options button{font-size:11px;padding:8px 12px}.storage-summary strong{font-size:28px}.reader-header{height:66px;gap:5px;padding:6px 8px;padding-top:max(6px,env(safe-area-inset-top))}.reader-title strong{font-size:12px}.reader-title span{font-size:9px}.reader-actions{gap:0}.reader-actions .icon-button{min-width:38px;width:38px}.reader-actions .icon-button svg{width:18px}.reader-actions button:nth-child(4),.reader-actions button:nth-child(5){display:none}.reader-footer{height:112px;flex-wrap:wrap;gap:0 10px;padding:7px 12px;padding-bottom:max(7px,env(safe-area-inset-bottom))}.page-navigation{order:1;flex:1;justify-content:center}.reader .page-slider{order:4;flex:auto;width:calc(100% - 45px);height:32px;min-height:32px}.reading-percent{order:5;text-align:right}.zoom-controls{order:2}.zoom-controls .icon-button{min-width:38px;width:38px}.reader-viewport{padding:14px 10px}.reader-page>img{height:calc((100dvh - 210px) * var(--zoom));max-width:calc((100vw - 20px) * var(--zoom));object-fit:contain}.fit-width .reader-page>img{width:calc((100vw - 20px) * var(--zoom));height:auto}.text-page article{max-width:calc((100vw - 20px) * var(--zoom));padding:26px 22px}.layout-scroll .reader-page>img{max-width:none;width:100%}.reader-panel{top:74px;bottom:120px;right:10px}.reader-scrim{inset:66px 0 112px}.busy-indicator{bottom:20px;font-size:12px;padding:12px 16px;white-space:normal}.toast{right:15px;top:15px;font-size:12px}.continue-reading>div:nth-child(2){min-width:100px}.list-card .book-open{gap:14px}.list-card .book-copy h3{font-size:13px}}@media(max-width:380px){.library-body{padding-left:16px;padding-right:16px}.books{column-gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.connection{max-width:105px;white-space:normal}.topbar{padding-left:10px;padding-right:12px}.view-toggle{display:none}.type-cover{padding:15px}.type-cover>strong{font-size:19px}.empty-library h2{font-size:19px}.backup-options{grid-template-columns:1fr}.reader-actions .icon-button{width:36px;min-width:36px}.shelf-illustration{padding-left:18px;padding-right:18px}.continue-reading .primary{margin-left:auto}.reader-title{min-width:50px}.reader-title span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@keyframes spin{to{transform:rotate(360deg)}}.layout-single.fit-contain .reader-page>img{max-width:calc((100vw - 48px) * var(--zoom))}@media(max-width:760px){.layout-single.fit-contain .reader-page>img{max-width:calc((100vw - 20px) * var(--zoom))}}.reader.is-immersive .reader-header,.reader.is-immersive .reader-footer{position:absolute;left:0;right:0;z-index:7;transition:transform .22s cubic-bezier(.2,.65,.3,1);will-change:transform;pointer-events:none;box-shadow:0 4px 24px #0002}.reader.is-immersive .reader-header{top:0;transform:translateY(-105%)}.reader.is-immersive .reader-footer{bottom:0;transform:translateY(105%);box-shadow:0 -4px 24px #0002}.reader.is-immersive.show-header .reader-header,.reader.is-immersive .reader-header:has(:focus-visible),.reader.is-immersive.show-footer .reader-footer,.reader.is-immersive .reader-footer:has(:focus-visible){transform:translateY(0);pointer-events:auto}.reader.is-immersive .reader-page>img{height:calc((100dvh - 48px) * var(--zoom))}.reader.is-immersive .fit-width .reader-page>img,.reader.is-immersive .layout-scroll .reader-page>img{height:auto}.reader.is-immersive .text-page article{min-height:calc(100dvh - 48px)}@media(hover:hover){.reader.fullscreen .show-controls{display:none}}@media(max-width:760px){.reader-actions button:nth-child(5){display:inline-flex}.reader.is-immersive .reader-page>img{height:calc((100dvh - 28px) * var(--zoom))}.reader.is-immersive .fit-width .reader-page>img,.reader.is-immersive .layout-scroll .reader-page>img{height:auto}.reader.is-immersive .text-page article{min-height:calc(100dvh - 28px)}}@supports not selector(:has(:focus-visible)){.reader.is-immersive .reader-header:focus-within,.reader.is-immersive .reader-footer:focus-within{transform:none;pointer-events:auto}}@media(prefers-reduced-motion:reduce){.reader.is-immersive .reader-header,.reader.is-immersive .reader-footer{transition:none;will-change:auto}}.reader.is-immersive .layout-spread:not(.narrow) .reader-page>img{height:calc((100dvh - 48px) * var(--zoom))}.reader.is-immersive .layout-spread:not(.narrow).fit-width .reader-page>img{height:auto}.reader-header button:hover:not(:disabled),.reader-footer button:hover:not(:disabled),.reader>.show-controls:hover{background:#8b9f8d2b}.library-footer{flex-wrap:wrap}.library-footer .policy-links{display:flex;flex-wrap:wrap;gap:0 18px;width:100%;font-size:12px}.policy-links a{display:inline-flex;align-items:center;min-height:44px;color:var(--muted);text-decoration:none;text-underline-offset:4px}.policy-links a:hover{text-decoration:underline}.policy-links .privacy-link{font-weight:700;color:var(--accent)}.library-footer .operator-note{width:100%;font-size:11px;color:var(--muted)}
