:root{--bg: #faf7f2;--fg: #1f1c17;--muted: #6f675c;--accent: #b0884f;--accent-weak: rgba(176, 136, 79, .12);--panel: #ffffff;--border: #e4ddd2;--shadow: 0 8px 24px rgba(31, 28, 23, .12);--radius: 10px;--radius-sm: 6px}.theme-dark{--bg: #1e1e1e;--fg: #ddd;--muted: #9a938a;--accent-weak: rgba(176, 136, 79, .22);--panel: #2a2a2a;--border: #454545;--shadow: 0 8px 24px rgba(0, 0, 0, .5)}button{font:inherit;color:var(--fg);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 12px;cursor:pointer}button:hover{border-color:var(--accent)}button[aria-pressed=true]{background:var(--accent-weak);border-color:var(--accent)}@media (pointer: coarse){button{min-height:44px;padding:10px 14px}}.file-btn{display:inline-block;font:inherit;color:var(--fg);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 12px;cursor:pointer;position:relative}.file-btn:hover{border-color:var(--accent)}.file-btn:has(input:disabled){cursor:default;opacity:.6}.file-btn:focus-within{outline:2px solid var(--accent);outline-offset:2px}.file-btn input[type=file]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}@media (pointer: coarse){.file-btn{min-height:44px;padding:10px 14px;box-sizing:border-box;display:inline-flex;align-items:center}}body{font-family:system-ui,sans-serif;margin:0;background:var(--bg);color:var(--fg)}body.theme-dark{background:var(--bg);color:var(--fg);color-scheme:dark}.app{max-width:760px;margin:0 auto;padding:24px;padding-top:max(24px,env(safe-area-inset-top))}.node{margin-left:16px}.row{cursor:default;padding:2px 0}.row .chev{display:inline-block;width:1em;color:#888}.ai-mark{color:#7b4fc9;margin-right:4px}.theme-dark .ai-mark{color:#b795ff}.node[data-origin=ai] .text{color:#6a6a6a}.original{background:var(--panel);padding:8px}.original p{margin:0 0 1em}pre.original{white-space:pre-wrap}.original mark{background:#fff3a3}.theme-dark .original mark{background:#6b5d12;color:#fff}.drop{border:2px dashed var(--border);border-radius:var(--radius);padding:32px;text-align:center}.err{color:#c00}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;list-style:none;padding:0;margin:0}.book-card{position:relative}.book-card-open{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;padding:8px;text-align:left;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer}.book-card-open:disabled{cursor:default;opacity:.6}.book-card-open:hover:not(:disabled){border-color:var(--accent);box-shadow:0 4px 14px #1f1c1729}.book-card-open img,.book-card-ph{width:100%;aspect-ratio:2 / 3;object-fit:cover;border-radius:var(--radius-sm);background:var(--accent-weak)}.book-card-ph{display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--accent);font-size:2.6em;background:radial-gradient(circle at 30% 25%,rgba(176,136,79,.25),var(--accent-weak))}.book-card-needs-file .book-card-open img,.book-card-needs-file .book-card-open .book-card-ph{filter:grayscale(1);opacity:.5}.book-card-open strong{font-size:.95em;line-height:1.3}.book-card-open .muted{color:var(--muted);font-size:.85em}.book-card-pct{display:block;width:100%;color:var(--muted);font-size:.8em}.book-card-pct i{display:block;height:4px;margin-bottom:2px;max-width:100%;background:var(--accent);border-radius:2px;font-style:normal}.book-card>button[aria-label$=삭제]{position:absolute;top:4px;right:4px;z-index:1;padding:2px 6px;line-height:1.4;border-radius:999px}@media (pointer: coarse){.book-card>button[aria-label$=삭제]{min-width:44px;min-height:44px;padding:2px 6px}.hl-swatch{width:24px;height:24px}.reading-settings select{min-height:44px}}.row.clickable{cursor:pointer}.row.current-chapter{background:var(--accent-weak)}.status{color:var(--muted);font-size:.85em}.status.err{color:#c00;cursor:pointer;background:none;border:none;padding:0;font:inherit;font-size:.85em}.jump-to-reader{margin-left:8px;font-size:.85em}.settings .field{display:block;margin:6px 0}.settings .field span{display:inline-block;width:90px}.confirm{background:#f0f4ff;padding:12px;margin:8px 0}.hint{color:var(--muted)}header{display:flex;justify-content:space-between;align-items:center;gap:12px}header h1{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}header button{white-space:nowrap}.header-global{border-left:1px solid var(--border);padding-left:12px}@media (max-width: 640px){header{flex-wrap:wrap;row-gap:8px}header h1{font-size:1.3rem;flex:1 1 100%}}.focus{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);color:var(--fg);z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}.focus-close{position:absolute;top:16px;right:16px}.focus-text{max-width:640px;font-size:1.6rem;line-height:1.7;text-align:center}.focus-text .fs-title{font-weight:700;color:#555;font-size:1.1rem}.focus-end{margin-top:16px;color:#999}.focus-bar{position:fixed;bottom:0;left:0;right:0;background:var(--panel);border-top:1px solid var(--border);display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;padding:12px;padding-bottom:max(12px,env(safe-area-inset-bottom))}.focus-progress{color:#777;font-size:.9em}.theme-dark .reader-body{color:#ddd}.view-switcher{display:inline-flex;gap:4px;margin-right:8px}.view-switcher button[aria-pressed=true]{font-weight:700}.reader-toolbar{position:sticky;top:0;background:var(--bg);z-index:15;border-bottom:1px solid var(--border);box-shadow:0 1px 3px #1f1c170f}.theme-dark .reader-toolbar{box-shadow:0 1px 3px #0006}.reader-bar{display:flex;gap:8px;padding:8px 0}.toc-row,.search-hit{font:inherit;text-align:inherit;background:none;border:none;color:inherit;display:block;width:100%;cursor:pointer}.toc,.reading-settings,.ann-sidebar,.search-panel{position:absolute;top:100%;z-index:20;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);max-height:min(70vh,560px);overflow:auto;padding:8px;box-sizing:border-box}.toc,.search-panel,.reading-settings{left:0;min-width:260px;max-width:360px}.ann-sidebar{right:0;width:min(360px,90vw)}.toc-row{cursor:pointer;padding:6px 4px}.toc-row:hover,.search-hit:hover{background:#7f7f7f1f}.toc-row-active{background:var(--accent-weak);font-weight:600}.reading-settings{display:flex;gap:12px;align-items:center;flex-wrap:wrap;max-width:none;width:max-content}@media (max-width: 640px){.toc,.reading-settings,.ann-sidebar,.search-panel{position:fixed;left:8px;right:8px;top:auto;bottom:max(8px,env(safe-area-inset-bottom));max-height:60vh;width:auto;min-width:0;max-width:none}}.reader-body{max-width:680px;margin:0 auto}.reader-body p{margin:0 0 1em}.reader-body .chapter-heading,.reader-body p[data-node-id],.reader-body .body-img{scroll-margin-top:56px}@media (pointer: coarse){.reader-body .chapter-heading,.reader-body p[data-node-id],.reader-body .body-img{scroll-margin-top:64px}}.chapter-heading{font-size:1.25em;font-weight:700;margin:1.8em 0 .9em;padding-bottom:.3em;border-bottom:1px solid var(--border);break-after:avoid}.reader-body .chapter-heading:first-child{margin-top:.2em}.layout-paged .reader-body{height:78vh;column-width:640px;column-gap:40px;overflow-x:auto;overflow-y:hidden}.reader-body mark{background:#fff3a3}.theme-dark .reader-body mark{background:#6b5d12;color:#fff}.reader-body mark.hl-green{background:#50c87859}.reader-body mark.hl-blue{background:#5aa0ff59}.reader-body mark.hl-pink{background:#ff78aa59}.theme-dark .reader-body mark.hl-green,.theme-dark .reader-body mark.hl-blue,.theme-dark .reader-body mark.hl-pink{color:#ddd}.hl-swatches{display:flex;gap:4px;margin:0 0 4px}.hl-swatch{width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.25);padding:0;cursor:pointer}.theme-dark .hl-swatch{border-color:#ffffff59}.hl-swatch.hl-yellow{background:#ffdf5e}.hl-swatch.hl-green{background:#50c878}.hl-swatch.hl-blue{background:#5aa0ff}.hl-swatch.hl-pink{background:#ff78aa}.hl-swatch[aria-pressed=true]{outline:2px solid #888;outline-offset:1px}.hl-swatch:hover{transform:scale(1.15)}.ann-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.toc-head,.search-head,.settings-head{display:flex;justify-content:flex-end;margin-bottom:8px}.ann-item{border-top:1px solid var(--border);padding:6px 0}.ann-item blockquote{margin:0 0 4px;cursor:pointer;border-left:3px solid #fc3;padding-left:8px}.ann-item blockquote.hl-green{border-left-color:#50c878}.ann-item blockquote.hl-blue{border-left-color:#5aa0ff}.ann-item blockquote.hl-pink{border-left-color:#ff78aa}.ann-item textarea{width:100%;min-height:2em}.search-panel input{width:100%}.search-hits{max-height:200px;overflow:auto}.search-hit{cursor:pointer;padding:8px 4px;border-bottom:1px solid var(--border)}.sel-popover{position:fixed;z-index:21;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:4px;display:flex;gap:4px;color:var(--fg)}.sel-actions{display:flex;gap:4px}.sel-note{display:flex;gap:4px;align-items:flex-start}.sel-note textarea{min-width:200px;min-height:3em}.toc-guess{display:inline-block;white-space:nowrap;margin-left:8px;font-size:11px;font-weight:400;color:#fff;background:#8a6a3a;border-radius:4px;padding:2px 6px;vertical-align:middle}.resolution{margin:2px 0 4px 16px;font-size:.85em;color:#666}.resolution input[type=range]{vertical-align:middle;width:120px}.theme-dark .resolution{color:#aaa}.verify-badge{margin-left:8px;color:var(--muted)}.verify-badge.warn{color:#a86a1e}.theme-dark .verify-badge.warn{color:#d9a441}.theme-dark .confirm{background:#26304a}.theme-dark .focus-text .fs-title{color:#aaa}.theme-dark .focus-progress{color:#999}.theme-dark .search-panel input{background:var(--panel);color:var(--fg);border:1px solid var(--border)}.theme-dark .search-hit{border-color:var(--border)}.ann-folders{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0}.ann-folders .chip{font-size:.8em;padding:4px 10px;border-radius:10px;border:1px solid var(--accent);background:transparent;color:inherit;cursor:pointer}.ann-folders .chip.on{background:var(--accent);color:#fff}.folder-view{position:fixed;right:0;top:0;width:min(420px,90vw);height:100%;overflow:auto;background:var(--bg);color:var(--fg);border-left:1px solid var(--border);padding:12px;z-index:22}.folder-head{display:flex;justify-content:space-between;align-items:center;font-weight:600}.folder-group{margin-top:12px}.folder-item{margin:6px 0;padding-left:8px;border-left:2px solid var(--accent)}.folder-item cite{font-size:.8em;opacity:.7}.focus-picker{display:flex;flex-direction:column;gap:4px;max-width:640px;margin:0 auto;padding:24px 16px;overflow:auto;height:100%;box-sizing:border-box}.focus-picker-hint{opacity:.7;margin-bottom:8px}.focus-chapter{text-align:left;background:none;border:none;color:inherit;cursor:pointer;padding:6px 8px;border-radius:4px;font-size:1rem}.focus-chapter:hover{background:#7f7f7f26}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}body.theme-dark :focus-visible,.theme-dark :focus-visible{outline-color:#e0b070}::selection{background:#b0884f4d}.theme-dark ::selection{background:#b0884f73}input[type=range]{accent-color:var(--accent)}body.theme-dark .hint,.theme-dark .hint,.theme-dark .node[data-origin=ai] .text{color:#9a9a9a}.body-narrow .reader-body{max-width:34rem}.body-wide .reader-body{max-width:52rem}.app:has(.body-wide){max-width:calc(52rem + 48px)}.font-serif .reader-body{font-family:"Noto Serif KR",Nanum Myeongjo,Apple SD Gothic Neo,Georgia,serif}.font-sans .reader-body{font-family:Noto Sans KR,Apple SD Gothic Neo,-apple-system,Segoe UI,sans-serif}.layout-scroll .reader-body p{content-visibility:auto;contain-intrinsic-size:auto 6em}.ann-chapter{font-size:.8em;font-weight:700;color:var(--accent);margin:10px 0 2px}.theme-dark .ann-chapter{color:#e0b070}.sel-notice{font-size:.9em;padding:2px 6px;align-self:center}@keyframes jump-flash{0%{background:#b0884f59}to{background:transparent}}.jump-flash{animation:jump-flash 1.5s ease-out}@media (prefers-reduced-motion: reduce){.jump-flash{animation:none;outline:2px solid #b0884f;outline-offset:2px}}.spinner{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;display:inline-block;animation:spin .8s linear infinite;vertical-align:-2px}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation:none;border-top-color:var(--border)}}.save-warn{display:flex;justify-content:space-between;align-items:center;gap:8px;background:#fff3cd;color:#664d03;padding:6px 10px;margin:4px 0;border:1px solid #ffe08a;border-radius:4px}.theme-dark .save-warn{background:#4a3d12;color:#ffe08a;border-color:#6b5d12}.reader-body .body-img{max-width:100%;height:auto;display:block;margin:1em auto}.theme-dark .reader-body .body-img{border-radius:var(--radius-sm);filter:brightness(.88) contrast(.95)}.reader-body .body-img+p[data-node-id]{font-size:.85em;color:var(--muted);text-align:center}
