:root{--bg: #faf8f4;--bg-elevated: #ffffff;--bg-sunken: #f3f0e9;--bg-source: #ebe6da;--ink-1: #1c1917;--ink-2: #44403c;--ink-3: #78716c;--ink-4: #a8a29e;--line: #e7e2d6;--line-strong: #d6cfbe;--accent: #1f4d3f;--accent-hover: #163a31;--accent-tint: #e8efe9;--warn: #c4685a;--warn-tint: #f7e7e1;--warn-soft: #e8a89a;--med: #c89a3c;--med-tint: #f6ecd2;--low: #7c8eb8;--low-tint: #e3e8f1;--good: #6b8c5a;--shadow-sm: 0 1px 0 rgba(28, 25, 23, .04), 0 1px 2px rgba(28, 25, 23, .04);--shadow-md: 0 1px 0 rgba(28, 25, 23, .04), 0 4px 14px rgba(28, 25, 23, .08);--shadow-pop: 0 2px 0 rgba(28, 25, 23, .04), 0 8px 28px rgba(28, 25, 23, .14);--radius-sm: 4px;--radius: 8px;--radius-lg: 12px;--serif: "Source Serif 4", "Iowan Old Style", Georgia, serif;--sans: "Inter", "SF Pro Text", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--mono: "JetBrains Mono", "SF Mono", ui-monospace, Menlo, monospace;--deva: "Noto Sans Devanagari", "Noto Serif Devanagari", "Mukta", serif}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--sans);background:var(--bg);color:var(--ink-1);font-size:14px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font-family:inherit}a{color:inherit;text-decoration:none}.app{height:100vh;display:grid;grid-template-rows:56px 1fr}.topbar{display:flex;align-items:center;padding:0 18px;background:var(--bg-elevated);border-bottom:1px solid var(--line);gap:18px;position:relative;z-index:10;min-height:56px;white-space:nowrap}.topbar-left{flex:0 1 auto;min-width:0;display:flex;align-items:center;gap:14px}.topbar-center{flex:1 1 auto;justify-content:center;min-width:0;display:flex;align-items:center;gap:14px;position:relative}.topbar-right{flex:0 0 auto;display:flex;align-items:center;gap:12px;justify-content:flex-end}.logo-mark{display:inline-flex}.project-name{font-weight:600;font-size:13.5px;letter-spacing:-.005em;color:var(--ink-1)}.project-deva{font-family:var(--deva);font-size:14px;font-weight:500;color:var(--ink-2);letter-spacing:.01em}.topbar-divider{width:1px;height:18px;background:var(--line)}.breadcrumb{display:flex;align-items:center;gap:8px;color:var(--ink-3);font-size:12.5px}.bc-stage{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:5px;font-weight:500;white-space:nowrap}.bc-stage.bc-current{background:var(--accent-tint);color:var(--accent);font-weight:600}.bc-stage.bc-done{color:var(--ink-2)}.bc-check{display:inline-flex;width:13px;height:13px;background:var(--ink-3);color:#fff;border-radius:50%;font-size:9px;font-weight:700;align-items:center;justify-content:center}.bc-stage.bc-done .bc-check{background:var(--good)}.bc-sep{color:var(--ink-4);font-size:13px}@media(max-width:1180px){.breadcrumb,.topbar-divider{display:none}}@media(max-width:980px){.folio,.user-name{display:none}.ch-title{max-width:22ch}}.chapter-meta{display:flex;align-items:baseline;gap:10px}.ch-num{font-family:var(--mono);font-size:11.5px;color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase}.ch-title{font-family:var(--serif);font-size:16px;font-weight:500;color:var(--ink-1);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:38ch}.status-pill{display:inline-flex;align-items:center;gap:7px;padding:5px 10px 5px 9px;background:var(--bg);border:1px solid var(--line);border-radius:999px;font-size:12px;font-weight:500;color:var(--ink-2);cursor:pointer;transition:background .12s,border-color .12s;white-space:nowrap}.status-pill:hover{background:var(--bg-sunken);border-color:var(--line-strong)}.status-pill svg{color:var(--ink-4)}.status-dot{width:7px;height:7px;border-radius:50%;flex:none}.status-menu{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);min-width:200px;background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-pop);padding:4px;z-index:30}.status-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;background:transparent;border:0;border-radius:var(--radius-sm);font-size:12.5px;color:var(--ink-1);text-align:left;cursor:pointer}.status-menu-item:hover{background:var(--bg-sunken)}.status-menu-item.is-active{background:var(--accent-tint);color:var(--accent);font-weight:600}.settings-popover{position:absolute;top:calc(100% + 8px);right:0;min-width:280px;background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-pop);padding:12px;z-index:30}.settings-section+.settings-section{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.settings-label{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);margin-bottom:6px}.settings-select{width:100%;padding:6px 8px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--bg);color:var(--ink-1);font-size:12.5px;font-family:var(--sans)}.settings-empty{font-size:12px;color:var(--ink-3);line-height:1.5}.folio{font-family:var(--mono);font-size:11px;color:var(--ink-3);padding:3px 7px;background:var(--bg-sunken);border-radius:4px;letter-spacing:.02em}.iconbtn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--ink-2);cursor:pointer;transition:background .12s}.iconbtn:hover{background:var(--bg-sunken)}.iconbtn.sm{width:26px;height:26px}.iconbtn.txt{width:auto;padding:0 8px;font-size:11px;font-weight:500;color:var(--ink-3)}.workbench{display:grid;grid-template-columns:.85fr 1px 1.15fr;min-height:0;overflow:hidden}.workbench-50-50{grid-template-columns:1fr 1px 1fr}.reading-scroll{flex:1;overflow:auto;padding:48px max(48px,calc((100% - 720px)/2)) 96px;background:var(--bg)}.pane-divider{background:var(--line)}.pane-header{display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--line);background:var(--bg-elevated);flex:none;height:50px}.pane-title{display:flex;flex-direction:column;gap:1px}.pane-eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4)}.pane-name{font-size:13px;font-weight:600;color:var(--ink-1)}.source-pane{display:flex;flex-direction:column;min-height:0;background:var(--bg-elevated)}.zoom-controls{display:flex;align-items:center;gap:6px}.zoom-slider{width:90px;height:18px;-webkit-appearance:none;appearance:none;background:transparent;cursor:pointer}.zoom-slider::-webkit-slider-runnable-track{height:3px;background:var(--line-strong);border-radius:2px}.zoom-slider::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;background:var(--ink-2);border-radius:50%;margin-top:-4.5px;border:2px solid var(--bg-elevated);box-shadow:0 0 0 1px var(--line-strong)}.zoom-slider::-moz-range-track{height:3px;background:var(--line-strong);border-radius:2px}.zoom-slider::-moz-range-thumb{width:12px;height:12px;background:var(--ink-2);border-radius:50%;border:2px solid var(--bg-elevated);box-shadow:0 0 0 1px var(--line-strong)}.zoom-readout{font-family:var(--mono);font-size:11px;color:var(--ink-3);min-width:36px;text-align:right}.source-scroll{flex:1;overflow:auto;background:var(--bg-source);background-image:radial-gradient(circle at 30% 10%,rgba(255,255,255,.4),transparent 50%),radial-gradient(circle at 70% 80%,rgba(0,0,0,.04),transparent 50%);padding:28px 0}.source-stack{display:flex;flex-direction:column;align-items:center;gap:32px;padding:0 24px}.page-card{margin:0;width:100%;max-width:calc(560px * var(--zoom, 1));display:flex;flex-direction:column;gap:8px;transition:max-width .18s ease}.page-meta{display:flex;align-items:center;gap:10px;padding:0 4px;font-size:11px}.page-idx{font-family:var(--mono);background:var(--ink-1);color:var(--bg);padding:2px 6px;border-radius:3px;font-size:10.5px;letter-spacing:.04em}.page-folio{font-family:var(--mono);color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;font-size:10.5px}.page-frame{background:#fff;border-radius:2px;box-shadow:0 1px 1px #0000000a,0 4px 16px #281e0f1a,0 16px 40px #281e0f14;overflow:hidden;position:relative}.page-frame:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.06) 0%,transparent 6%,transparent 94%,rgba(0,0,0,.06) 100%)}.page-frame img{display:block;width:100%;height:auto}.source-end{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);padding:18px 0 8px;border-top:1px dashed var(--line-strong);width:min(220px,60%);text-align:center;margin-top:8px}.editor-pane{display:flex;flex-direction:column;min-height:0;background:var(--bg)}.editor-header{gap:12px;flex-wrap:nowrap}.editor-tabs{display:inline-flex;background:var(--bg-sunken);padding:3px;border-radius:7px;border:1px solid var(--line)}.etab{display:inline-flex;align-items:center;justify-content:center;width:30px;height:26px;padding:0;background:transparent;border:0;border-radius:5px;color:var(--ink-3);cursor:pointer}.etab:hover{color:var(--ink-1)}.etab.is-active{background:var(--bg-elevated);color:var(--ink-1);box-shadow:var(--shadow-sm)}.editor-status{display:flex;justify-content:flex-end;align-items:center;gap:10px;font-size:11.5px;color:var(--ink-3);margin-left:auto;white-space:nowrap;flex:0 0 auto}.editor-status .meta-dot{width:6px;height:6px;border-radius:50%}.editor-status .meta-dot.d-clean{background:var(--good)}.editor-status .meta-dot.d-dirty{background:var(--med)}.meta-item{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-3);white-space:nowrap}.meta-item.meta-save{min-width:17ch;justify-content:flex-start}.meta-item.meta-words{min-width:8ch;justify-content:flex-end}.meta-dot{width:6px;height:6px;border-radius:50%}.meta-dot.d-clean{background:var(--good)}.meta-dot.d-dirty{background:var(--med)}.lint-counter{display:inline-flex;align-items:center;gap:6px;padding:4px 9px 4px 8px;border-radius:5px;font-size:11.5px;font-weight:600;border:1px solid;cursor:pointer;transition:background .12s}.lint-counter.is-clean{background:var(--accent-tint);border-color:#1f4d3f2e;color:var(--accent);cursor:default}.lint-counter.is-flagged{background:var(--warn-tint);border-color:#c4685a40;color:var(--warn)}.lint-counter.is-flagged:hover{background:#f3dcd2}.lint-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;border:1px solid;background:transparent;font-family:inherit}.lint-chip.is-flagged{background:var(--warn-tint);border-color:#c4685a40;color:var(--warn);cursor:pointer}.lint-chip.is-flagged:hover{background:#f3dcd2}.lint-chip.is-clean{background:var(--accent-tint);border-color:#1f4d3f2e;color:var(--accent)}.editor-actions{display:flex;gap:6px;align-items:center;flex-wrap:nowrap}.btn-kbd{display:inline-flex;align-items:center;gap:1px;margin-left:2px;font-family:var(--mono);font-size:10px;color:var(--ink-4);background:var(--bg-sunken);border:1px solid var(--line);border-radius:3px;padding:0 4px;letter-spacing:.02em;min-height:14px}.btn-primary .btn-kbd{background:#ffffff29;border-color:#ffffff38;color:#f4ede0d9}.btn{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:6px;font-size:12.5px;font-weight:500;cursor:pointer;border:1px solid transparent;transition:background .12s,border-color .12s,transform .05s;white-space:nowrap}.btn:active:not(:disabled){transform:translateY(.5px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:4px 9px;font-size:11.5px}.btn-ghost{background:transparent;color:var(--ink-2);border-color:var(--line)}.btn-ghost:hover:not(:disabled){background:var(--bg-sunken);border-color:var(--line-strong)}.btn-secondary{background:var(--bg-elevated);color:var(--ink-1);border-color:var(--line-strong);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:var(--bg-sunken)}.btn-primary{background:var(--accent);color:#f4ede0;border-color:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-destructive{background:var(--warn);color:#fff;border-color:var(--warn)}.btn-destructive:hover:not(:disabled){background:#b15749;border-color:#b15749}.btn.is-loading{opacity:.7;pointer-events:none}.modal-backdrop{position:fixed;inset:0;background:#1c191757;display:flex;align-items:center;justify-content:center;z-index:100;animation:backdrop-in .14s ease-out}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--bg-elevated);border:1px solid var(--line-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);width:min(420px,calc(100vw - 32px));padding:22px 22px 18px;animation:modal-in .16s ease-out}@keyframes modal-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.modal-title{margin:0 0 8px;font-family:var(--serif);font-size:17px;font-weight:600;color:var(--ink-1);letter-spacing:-.01em}.modal-body{margin:0 0 18px;font-size:13.5px;line-height:1.5;color:var(--ink-2)}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.spinner{width:11px;height:11px;border:1.5px solid var(--ink-4);border-top-color:var(--ink-1);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.editor-surface{flex:1;min-height:0;position:relative;overflow:hidden}.edit-mount{display:grid;grid-template-columns:56px 1fr;height:100%}.line-numbers{display:flex;flex-direction:column;font-family:var(--mono);font-size:11.5px;color:var(--ink-4);text-align:right;padding:32px 12px 32px 0;-webkit-user-select:none;user-select:none;background:var(--bg);border-right:1px solid var(--line);line-height:calc(1.9em * var(--font-scale, 1));overflow:hidden}.edit-stack{position:relative;overflow:hidden}.devanagari{font-family:var(--deva);font-size:calc(1.1rem * var(--font-scale, 1));line-height:1.9;color:var(--ink-1)}.lint-overlay,.ed-textarea{position:absolute;inset:0;padding:32px 36px 80px 28px;margin:0;border:0;background:transparent;white-space:pre-wrap;word-wrap:break-word;overflow:auto;font-family:var(--deva);font-size:calc(1.1rem * var(--font-scale, 1));line-height:1.9;color:var(--ink-1)}.lint-overlay{pointer-events:none;color:transparent;z-index:2}.ed-textarea{resize:none;outline:none;z-index:1;caret-color:var(--accent);background:transparent}.ed-textarea:focus{background:#fff6}.ov-ws{white-space:pre}.ov-word{color:transparent}.ov-plain{color:transparent;white-space:pre-wrap}.lint-flag{pointer-events:auto;background:transparent;border:0;padding:0;margin:0;font:inherit;color:transparent;cursor:pointer;border-bottom:2px wavy currentColor;text-decoration:underline wavy;text-decoration-thickness:1.5px;text-underline-offset:4px}.lint-flag.lint-high{text-decoration-color:var(--warn);border-color:var(--warn)}.lint-flag.lint-medium{text-decoration-color:var(--med);border-color:var(--med)}.lint-flag.lint-low{text-decoration-color:var(--low);border-color:var(--low)}.lint-popover{transform:translate(-50%);background:var(--bg-elevated);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow-pop);padding:12px 14px;width:320px;z-index:50;animation:pop-in .14s ease-out}@keyframes pop-in{0%{opacity:0;transform:translate(-50%,-2px)}to{opacity:1;transform:translate(-50%)}}.lp-pager{display:inline-flex;align-items:center;gap:4px;flex:1}.lp-pager-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid var(--line);border-radius:4px;background:var(--bg);color:var(--ink-2);cursor:pointer;padding:0}.lp-pager-btn:hover:not(:disabled){background:var(--bg-sunken);border-color:var(--line-strong)}.lp-pager-btn:disabled{opacity:.35;cursor:not-allowed}.lp-pager-count{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);letter-spacing:.04em;min-width:56px;text-align:center}.lp-arrow{position:absolute;top:-5px;left:50%;margin-left:-5px;width:9px;height:9px;background:var(--bg-elevated);border-top:1px solid var(--line-strong);border-left:1px solid var(--line-strong);transform:rotate(45deg)}.lp-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.conf-badge{font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border-radius:3px;font-weight:600}.conf-high{background:var(--warn-tint);color:var(--warn)}.conf-medium{background:var(--med-tint);color:#8b6614}.conf-low{background:var(--low-tint);color:#4a5b80}.lp-title{font-size:12px;font-weight:600;color:var(--ink-2);flex:1}.lp-close{width:20px;height:20px;border:0;background:transparent;color:var(--ink-3);font-size:18px;line-height:1;cursor:pointer;border-radius:3px}.lp-close:hover{background:var(--bg-sunken);color:var(--ink-1)}.lp-clear{border:0;background:transparent;color:var(--ink-3);font-size:11px;cursor:pointer;padding:2px 6px;border-radius:3px}.lp-clear:hover{background:var(--bg-sunken);color:var(--ink-1)}.lp-diff{display:flex;align-items:center;gap:10px;padding:10px;background:var(--bg-sunken);border-radius:6px;margin-bottom:8px;color:var(--ink-3)}.lp-diff svg{color:var(--ink-4);flex:none}.diff-from{font-family:var(--deva);font-size:17px;color:var(--warn);text-decoration:line-through;text-decoration-thickness:1px}.diff-to{font-family:var(--deva);font-size:17px;color:var(--good);font-weight:500}.lp-edit-input{width:100%;padding:6px 8px;margin-bottom:8px;border:1px solid var(--line-strong);border-radius:4px;font-family:var(--deva);font-size:16px;color:var(--ink-1);background:var(--bg);outline:none}.lp-edit-input:focus{border-color:var(--accent);background:var(--bg-elevated)}.lp-reason{font-size:12px;color:var(--ink-2);line-height:1.55;margin:0 0 12px}.lp-actions{display:flex;justify-content:flex-end;gap:6px}.preview-mount{height:100%;overflow:auto;padding:48px max(48px,calc((100% - 720px)/2)) 96px;background:var(--bg)}.preview{max-width:720px;margin:0 auto;font-family:var(--deva);font-size:calc(1.15rem * var(--font-scale, 1));line-height:1.95;color:var(--ink-1)}.preview h2{font-family:var(--deva);font-weight:600;font-size:1.8em;margin:0 0 .4em;text-align:center;color:var(--ink-1)}.preview h3{font-family:var(--deva);font-weight:500;font-size:1.3em;margin:1.6em 0 .6em;text-align:center;color:var(--ink-2);letter-spacing:.01em}.preview p{margin:0 0 1.4em}.preview blockquote{border-left:3px solid var(--accent);padding-left:1em;margin:1.4em 0;color:var(--ink-2);font-style:italic}.chapters-list{max-width:960px;margin:48px auto;padding:0 24px}.chapters-list h1{font-family:var(--serif);font-size:28px;font-weight:500;margin:0 0 24px}.chapters-list table{width:100%;border-collapse:collapse;font-size:13.5px}.chapters-list th{text-align:left;font-weight:500;color:var(--ink-3);border-bottom:1px solid var(--line);padding:10px 8px}.chapters-list td{padding:12px 8px;border-bottom:1px solid var(--line)}.chapters-list td.num{font-family:var(--mono);color:var(--ink-3);width:60px}.chapters-list td.title a{color:var(--ink-1);font-weight:500}.chapters-list td.title a:hover{color:var(--accent);text-decoration:underline}.chapters-list td.range{font-family:var(--mono);color:var(--ink-3);font-size:12px}
