:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f3ecdf;--surface:#fbf7ef;--surface-raised:#fffbf4;--surface-soft:#ebe2d3;--text:#20211e;--muted:#777166;--muted-strong:#555148;--border:#ddd2c1;--accent:#496d66;--accent-strong:#36564f;--accent-soft:#dce8e2;--danger:#9d4c37;--shadow:0 10px 28px #46362212;--radius:8px;--content-padding:20px}*{box-sizing:border-box}html{background:var(--background);min-height:100%;overflow-x:hidden}body{background:var(--background);min-height:100dvh;color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:Inter,Arial,PingFang SC,Hiragino Sans GB,sans-serif;overflow-x:hidden}body.reader-mode{background:#f4ecdd}body.reader-mode[data-reader-theme=sepia]{background:#eee0cc}body.reader-mode[data-reader-theme=night]{background:#171a1c}a{color:inherit;text-decoration:none}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.app-shell{min-height:100dvh;padding-bottom:max(18px, env(safe-area-inset-bottom));flex-direction:column;display:flex}.topbar{z-index:10;padding:calc(14px + env(safe-area-inset-top)) var(--content-padding) 14px;border-bottom:1px solid color-mix(in srgb, var(--border) 72%, transparent);background:color-mix(in srgb, var(--background) 92%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);gap:14px;display:grid;position:sticky;top:0}.brand{width:fit-content;color:var(--muted-strong);letter-spacing:0;font-size:15px;font-weight:700}.nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.nav a,.button,.icon-button{border:1px solid color-mix(in srgb, var(--border) 82%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--surface-raised) 88%, transparent);min-height:44px;color:var(--text);cursor:pointer}.nav a,.button{justify-content:center;align-items:center;padding:0 16px;font-weight:600;display:inline-flex}.nav a{color:var(--muted-strong);font-size:15px}.icon-button{width:44px}.button.disabled,.button:disabled,.icon-button:disabled{cursor:default;opacity:.42}.primary{border-color:var(--accent);background:var(--accent);color:#fffaf0}.primary:hover{background:var(--accent-strong)}.content{width:100%;max-width:480px;padding:24px var(--content-padding) 36px;margin:0 auto}.auth-screen{min-height:100dvh;padding:24px var(--content-padding);place-items:center;display:grid}.auth-panel{gap:16px;width:min(100%,380px);display:grid}.auth-panel h1{margin:0;font-size:30px;line-height:1.16}.field{color:var(--muted-strong);gap:8px;font-size:14px;font-weight:700;display:grid}.field input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);width:100%;min-height:48px;color:var(--text);padding:0 14px}.reader-mode .topbar{display:none}.reader-mode .content{width:100%;max-width:none;padding:0}.page-title{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.quiet-title{align-items:flex-start}.page-title h1{letter-spacing:0;margin:4px 0 8px;font-size:30px;line-height:1.16}.page-title p{margin:0}.eyebrow{color:var(--accent);font-size:13px;font-weight:700}.muted{color:var(--muted)}.loading-copy,.status,.error{border-radius:var(--radius);background:color-mix(in srgb, var(--surface-raised) 76%, transparent);padding:14px 16px}.status{color:var(--muted-strong);margin:0}.error{color:var(--danger)}.grid{grid-template-columns:1fr;gap:14px;display:grid}.book-card,.empty-state,.settings-group,.upload-box{border:1px solid color-mix(in srgb, var(--border) 72%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--surface-raised) 90%, transparent);box-shadow:var(--shadow)}.book-card{grid-template-columns:68px minmax(0,1fr);gap:14px;min-height:198px;padding:16px;display:grid}.book-card h2{overflow-wrap:anywhere;margin:0;font-size:20px;line-height:1.28}.book-cover{aspect-ratio:3/4;border:1px solid color-mix(in srgb, var(--accent) 18%, var(--border));border-radius:var(--radius);background:linear-gradient(160deg, #ffffff6b, transparent 44%), var(--accent-soft);width:68px;color:var(--accent-strong);align-self:start;place-items:center;font-size:28px;font-weight:700;display:grid}.book-main{gap:9px;min-width:0;display:grid}.book-title-line{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.book-type{border:1px solid color-mix(in srgb, var(--border) 82%, transparent);color:var(--muted);border-radius:999px;flex:none;padding:4px 8px;font-size:11px;line-height:1.2}.book-author{color:var(--muted);margin:-2px 0 0;font-size:14px}.progress-block{gap:7px;display:grid}.progress-header,.book-meta-row{color:var(--muted);justify-content:space-between;gap:10px;font-size:13px;display:flex}.progress{background:color-mix(in srgb, var(--surface-soft) 78%, transparent);border-radius:999px;height:6px;overflow:hidden}.progress span{border-radius:inherit;background:color-mix(in srgb, var(--accent) 82%, #a7b9ac);height:100%;display:block}.book-meta-row{flex-wrap:wrap}.book-actions{grid-template-columns:1fr 1fr;align-items:center;gap:8px;margin-top:2px;display:grid}.empty-state{justify-items:start;gap:12px;padding:22px;display:grid}.empty-mark{aspect-ratio:3/4;border-radius:var(--radius);background:var(--accent-soft);width:64px;color:var(--accent-strong);place-items:center;font-size:24px;font-weight:700;display:grid}.empty-state h2,.empty-state p{margin:0}.upload-box{gap:14px;padding:16px;display:grid}.upload-target{border:1px dashed color-mix(in srgb, var(--accent) 32%, var(--border));border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 82%, transparent);min-height:164px;color:var(--text);text-align:center;cursor:pointer;place-content:center;gap:8px;padding:22px;display:grid;position:relative;overflow:hidden}.upload-target-title{overflow-wrap:anywhere;font-size:20px;font-weight:700}.upload-target-copy{color:var(--muted);font-size:14px}.file-input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.fetch-layout{align-items:start;gap:14px;display:grid}.fetch-panel{border:1px solid color-mix(in srgb, var(--border) 72%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--surface-raised) 90%, transparent);box-shadow:var(--shadow);gap:14px;padding:16px;display:grid}.search-form{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.source-import-form{gap:10px;display:grid}.source-import-form h2,.source-import-form p{margin:0}.source-json-input{resize:vertical;border:1px solid color-mix(in srgb, var(--border) 82%, transparent);border-radius:var(--radius);background:var(--surface-raised);width:100%;min-height:132px;color:var(--text);padding:12px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.legado-report{border:1px solid color-mix(in srgb, var(--border) 72%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 70%, transparent);gap:10px;padding:12px;display:grid}.conversion-list{flex-wrap:wrap;gap:6px;display:flex}.conversion-issues{gap:6px;display:grid}.text-input,.number-input{border:1px solid color-mix(in srgb, var(--border) 82%, transparent);border-radius:var(--radius);background:var(--surface-raised);min-height:42px;color:var(--text)}.text-input{width:100%;padding:0 12px}.number-input{width:96px;padding:0 10px}.source-line{margin:0}.source-list{gap:10px;display:grid}.source-row{border:1px solid color-mix(in srgb, var(--border) 72%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 70%, transparent);grid-template-columns:minmax(0,1fr);align-items:start;gap:10px;padding:12px;display:grid}.source-row>div:first-child{gap:3px;min-width:0;display:grid}.source-row strong,.source-row span{overflow-wrap:anywhere}.source-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.source-actions .button{min-width:0;padding:0 8px}.doctor-report{border-top:1px solid color-mix(in srgb, var(--border) 62%, transparent);grid-column:1/-1;gap:6px;padding-top:8px;display:grid}.doctor-report.ok{color:var(--accent-strong)}.doctor-report.error-state{color:var(--danger)}.doctor-step{color:var(--muted-strong);grid-template-columns:64px 56px minmax(0,1fr);gap:8px;font-size:13px;display:grid}.result-list,.chapter-preview{gap:8px;display:grid}.fetch-job-list{border:1px solid color-mix(in srgb, var(--border) 72%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 68%, transparent);gap:8px;padding:10px;display:grid}.fetch-job-list-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.fetch-job-row{border:1px solid color-mix(in srgb, var(--border) 74%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--surface-raised) 84%, transparent);width:100%;min-height:58px;color:var(--text);text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.fetch-job-row>span:first-child{gap:3px;min-width:0;display:grid}.fetch-job-row strong{overflow-wrap:anywhere}.fetch-job-row.active{border-color:color-mix(in srgb, var(--accent) 58%, var(--border));background:color-mix(in srgb, var(--accent-soft) 58%, var(--surface-raised))}.result-row{border:1px solid color-mix(in srgb, var(--border) 78%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--surface-raised) 88%, transparent);width:100%;min-height:68px;color:var(--text);text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.result-row>span:first-child{gap:4px;min-width:0;display:grid}.result-row strong,.preview-header h2{overflow-wrap:anywhere}.result-row.active{border-color:color-mix(in srgb, var(--accent) 58%, var(--border));background:color-mix(in srgb, var(--accent-soft) 64%, var(--surface-raised))}.source-pill{background:var(--surface-soft);color:var(--muted);border-radius:999px;flex:none;padding:4px 8px;font-size:12px}.preview-panel{position:static}.preview-header{justify-content:space-between;align-items:start;gap:12px;display:flex}.preview-header h2,.preview-header p{margin:0}.field-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.chapter-preview{max-height:360px;overflow:auto}.chapter-preview-row{border-bottom:1px solid color-mix(in srgb, var(--border) 72%, transparent);grid-template-columns:32px minmax(0,1fr);gap:8px;padding:9px 0;display:grid}.chapter-list{gap:10px;display:grid}.chapter-tools{border:1px solid color-mix(in srgb, var(--border) 78%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--surface-raised) 86%, transparent);justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:12px 14px;display:flex}.chapter-tools>div{gap:4px;min-width:0;display:grid}.chapter-tools strong,.chapter-tools span{overflow-wrap:anywhere}.inline-error{margin:0}.chapter-row{border:1px solid color-mix(in srgb, var(--border) 78%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--surface-raised) 88%, transparent);justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:13px 15px;display:flex}.settings-panel{gap:14px;display:grid}.settings-group{gap:18px;padding:18px;display:grid}.settings-group h2{margin:0 0 6px;font-size:19px;line-height:1.25}.settings-group p{margin:0}.setting-row{border-top:1px solid color-mix(in srgb, var(--border) 66%, transparent);justify-content:space-between;align-items:center;gap:14px;min-height:60px;padding-top:14px;display:flex}.setting-label,.setting-value{display:block}.setting-label{color:var(--text);font-weight:700}.setting-value{color:var(--muted);margin-top:4px;font-size:13px}.stepper{gap:8px;display:flex}.stepper button,.settings-theme-option{border:1px solid color-mix(in srgb, var(--border) 82%, transparent);border-radius:var(--radius);background:var(--surface);min-height:44px;color:var(--text);cursor:pointer}.stepper button{min-width:52px}.settings-theme-list{gap:10px;display:grid}.settings-theme-option{text-align:left;align-items:center;gap:12px;padding:12px;display:flex}.settings-theme-option.active{border-color:color-mix(in srgb, var(--accent) 58%, var(--border));background:color-mix(in srgb, var(--accent-soft) 56%, var(--surface))}.settings-theme-option strong,.settings-theme-option span span{display:block}.settings-theme-option span span{color:var(--muted);margin-top:2px;font-size:13px}.reader-page{--reader-font-size:18px;--reader-line-height:1.8;--reader-bg:#f4ecdd;--reader-surface:#fbf4e7;--reader-surface-strong:#eadcca;--reader-text:#25231f;--reader-muted:#786f62;--reader-border:#dbccb9;--reader-accent:#496d66;--reader-progress:0%;--reader-top-offset:68px;min-height:100dvh;padding:calc(var(--reader-top-offset) + env(safe-area-inset-top)) 20px calc(76px + env(safe-area-inset-bottom));background:var(--reader-bg);color:var(--reader-text)}.reader-page.tts-open{--reader-top-offset:126px}.reader-page.toolbar-open{padding-bottom:calc(142px + env(safe-area-inset-bottom))}.reader-page.theme-sepia{--reader-bg:#eee0cc;--reader-surface:#f7ead8;--reader-surface-strong:#e0c8a9;--reader-text:#2d251c;--reader-muted:#77634d;--reader-border:#d2b996;--reader-accent:#725a3f}.reader-page.theme-night{--reader-bg:#171a1c;--reader-surface:#202528;--reader-surface-strong:#2a3033;--reader-text:#d8d2c7;--reader-muted:#958f84;--reader-border:#343a3d;--reader-accent:#8db2a8}.reader-topbar{z-index:8;padding:calc(8px + env(safe-area-inset-top)) 20px 10px;border-bottom:1px solid color-mix(in srgb, var(--reader-border) 48%, transparent);background:color-mix(in srgb, var(--reader-bg) 98%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:fixed;top:0;left:0;right:0}.reader-progress-rail{background:color-mix(in srgb, var(--reader-surface-strong) 62%, transparent);border-radius:999px;max-width:720px;height:2px;margin:0 auto;overflow:hidden}.reader-progress-rail span{width:var(--reader-progress);border-radius:inherit;background:color-mix(in srgb, var(--reader-accent) 82%, transparent);height:100%;display:block}.reader-topbar-row,.reader-toolbar-row{align-items:center;gap:10px;min-width:0;display:flex}.reader-topbar-row{justify-content:space-between;width:min(100%,720px);margin:0 auto;padding-top:10px}.reader-back,.reader-progress-label,.reader-chapter-title{color:var(--reader-muted);font-size:13px}.reader-back{align-items:center;min-width:44px;min-height:36px;font-weight:700;display:inline-flex}.reader-chapter-title{text-align:center;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.reader-progress-label{text-align:right;min-width:44px}.reader-topbar-actions{flex:none;justify-content:flex-end;align-items:center;gap:8px;min-width:96px;display:flex}.reader-tts-trigger{border:1px solid color-mix(in srgb, var(--reader-border) 78%, transparent);background:color-mix(in srgb, var(--reader-surface) 74%, transparent);min-height:32px;color:var(--reader-muted);cursor:pointer;border-radius:999px;padding:0 10px;font-size:13px;font-weight:700}.reader-tts-trigger.active{border-color:color-mix(in srgb, var(--reader-accent) 58%, var(--reader-border));background:color-mix(in srgb, var(--reader-accent) 14%, var(--reader-surface));color:var(--reader-text)}.reader{max-width:720px;margin:0 auto;padding:28px 0 34vh}.reader h1{letter-spacing:0;margin:14px 0 28px;font-size:25px;line-height:1.34}.chapter-kicker{color:var(--reader-muted);margin:0;font-size:13px}.chapter-content{font-family:Georgia,Songti SC,STSong,serif;font-size:var(--reader-font-size);line-height:var(--reader-line-height);letter-spacing:0;overflow-wrap:break-word;text-align:justify;text-autospace:normal;line-break:loose;word-break:normal;-webkit-hyphens:auto;hyphens:auto;hanging-punctuation:allow-end;font-kerning:normal;font-variant-ligatures:common-ligatures;font-feature-settings:"kern"}.chapter-content p{text-indent:2em;white-space:pre-line;border-radius:6px;margin:0 0 1.05em;padding:.14em 0;transition:background-color .16s,color .16s}.chapter-content p.tts-active-paragraph{background:color-mix(in srgb, var(--reader-accent) 14%, transparent);color:color-mix(in srgb, var(--reader-text) 92%, var(--reader-accent))}.reader-bottom-nav{justify-content:center;gap:10px;margin-top:52px;display:flex}.reader-toolbar{z-index:9;padding:10px 12px calc(12px + env(safe-area-inset-bottom));border-top:1px solid color-mix(in srgb, var(--reader-border) 76%, transparent);background:color-mix(in srgb, var(--reader-bg) 96%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);gap:7px;display:grid;position:fixed;bottom:0;left:0;right:0}.reader-toolbar-trigger{right:18px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:9;border:1px solid color-mix(in srgb, var(--reader-border) 78%, transparent);background:color-mix(in srgb, var(--reader-surface) 84%, transparent);min-width:58px;min-height:42px;color:var(--reader-muted);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:pointer;border-radius:999px;font-size:15px;font-weight:700;position:fixed;box-shadow:0 8px 22px #261e1414}.reader-toolbar-row{justify-content:space-between;width:min(100%,720px);margin:0 auto}.reader-nav-buttons,.reader-control-group,.theme-segmented{align-items:center;gap:6px;display:flex}.reader-nav-buttons{flex:1}.reader-pill{border:1px solid var(--reader-border);border-radius:var(--radius);background:color-mix(in srgb, var(--reader-surface) 86%, transparent);min-height:44px;color:var(--reader-text);flex:1;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:inline-flex}.reader-pill.disabled{opacity:.36}.reader-control-group,.theme-segmented{border:1px solid color-mix(in srgb, var(--reader-border) 88%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--reader-surface) 72%, transparent);min-height:44px;padding:3px}.reader-control-group.compact{flex:none}.reader-settings-row{grid-template-columns:minmax(0,1fr) 1.35fr;display:grid}.control-value{min-width:46px;color:var(--reader-text);text-align:center;font-size:13px}.theme-button,.reader-action-button{min-height:38px;color:var(--reader-text);cursor:pointer;background:0 0;border:0;border-radius:6px}.theme-button{flex:1;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:14px;display:inline-flex}.theme-button.active,.reader-action-button:hover,.reader-action-button:focus-visible{background:var(--reader-surface-strong)}.theme-dot{border:1px solid color-mix(in srgb, var(--reader-border,var(--border)) 82%, transparent);border-radius:999px;flex:none;width:14px;height:14px}.theme-dot.paper{background:#f4ecdd}.theme-dot.sepia{background:#d8be9b}.theme-dot.night{background:#171a1c}.tts-row{border:1px solid color-mix(in srgb, var(--reader-border) 78%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--reader-surface) 76%, transparent);justify-content:space-between;width:min(100%,720px);margin:10px auto 0;padding:4px}.tts-progress{min-width:0;color:var(--reader-muted);align-items:center;gap:8px;font-size:13px;display:flex}.control-label{color:var(--reader-muted);font-size:13px}.tts-status{min-width:58px;color:var(--reader-text);font-weight:700}.tts-message{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tts-buttons{flex:none;align-items:center;gap:6px;display:flex}.tts-play-button{min-width:72px}.tts-panel-close{color:var(--reader-muted)}@media (min-width:641px){.topbar{border-right:1px solid color-mix(in srgb, var(--border) 72%, transparent);border-left:1px solid color-mix(in srgb, var(--border) 72%, transparent);max-width:480px;margin:0 auto}}@media (max-width:640px){.reader-page.tts-open{--reader-top-offset:164px}:root{--content-padding:18px}.fetch-layout{grid-template-columns:1fr}.preview-panel{position:static}.book-card{grid-template-columns:60px minmax(0,1fr)}.book-cover{width:60px}.chapter-tools{flex-direction:column;align-items:stretch}.tts-row{flex-direction:column;align-items:stretch;gap:6px}.tts-progress,.tts-buttons{width:100%}.tts-buttons .icon-button{flex:0 0 40px}.tts-play-button{flex:1}.tts-panel-close{flex:0 0 40px}}
