:root{color-scheme:light;--brand: #2f8f73;--brand-strong: #267963;--brand-deep: #1d5d4c;--brand-soft: #e7f3ee;--brand-ink: #ffffff;--bg: #f4f6f8;--surface: #ffffff;--surface-2: #f0f2f5;--surface-3: #e7eaef;--elevated: #ffffff;--ink: #18202b;--ink-2: #3c4655;--muted: #69788c;--on-brand: #ffffff;--line: #d9dee6;--line-strong: #c2c9d4;--focus: #1e6fff;--success: #1d8f5a;--warning: #b06f00;--danger: #c2384a;--info: #2f6fb0;--tier-recon: #2f8f73;--tier-fixed: #b06f00;--tier-ocr: #2f6fb0;--tier-raster:#8b5cf6;--font-ui: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono: "SF Mono", ui-monospace, "JetBrains Mono", Menlo, Consolas, monospace;--fs-300: .78rem;--fs-400: .875rem;--fs-500: 1rem;--fs-600: 1.125rem;--fs-700: 1.375rem;--fs-800: 1.75rem;--fs-900: 2.25rem;--lh-tight: 1.2;--lh: 1.5;--fw-normal: 400;--fw-medium: 540;--fw-bold: 680;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--r-1: 6px;--r-2: 10px;--r-3: 14px;--r-4: 20px;--r-pill: 999px;--shadow-1: 0 1px 2px rgba(18,28,40,.06), 0 1px 3px rgba(18,28,40,.08);--shadow-2: 0 4px 12px rgba(18,28,40,.1), 0 2px 4px rgba(18,28,40,.06);--shadow-3: 0 12px 32px rgba(18,28,40,.16), 0 4px 8px rgba(18,28,40,.08);--dur-1: .12s;--dur-2: .2s;--dur-3: .32s;--ease: cubic-bezier(.2, .7, .3, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--rail-w: clamp(320px, 34vw, 440px);--header-h: 60px}:root[data-theme=dark]{color-scheme:dark;--bg: #0e1116;--surface: #161a21;--surface-2: #1c212a;--surface-3: #232936;--elevated: #1b2029;--ink: #e9edf3;--ink-2: #c2cad6;--muted: #93a0b2;--line: #2b323d;--line-strong: #3a424f;--brand-soft: #16302a;--focus: #66a0ff;--shadow-1: 0 1px 2px rgba(0,0,0,.4);--shadow-2: 0 6px 18px rgba(0,0,0,.5);--shadow-3: 0 16px 40px rgba(0,0,0,.6)}@media (prefers-color-scheme: dark){:root[data-theme=system]{color-scheme:dark;--bg: #0e1116;--surface: #161a21;--surface-2: #1c212a;--surface-3: #232936;--elevated: #1b2029;--ink: #e9edf3;--ink-2: #c2cad6;--muted: #93a0b2;--line: #2b323d;--line-strong: #3a424f;--brand-soft: #16302a;--focus: #66a0ff;--shadow-1: 0 1px 2px rgba(0,0,0,.4);--shadow-2: 0 6px 18px rgba(0,0,0,.5);--shadow-3: 0 16px 40px rgba(0,0,0,.6)}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-ui);font-size:var(--fs-400);line-height:var(--lh);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}img{max-width:100%;display:block}a{color:var(--brand-strong)}:root[data-theme=dark] a,:root[data-theme=system] a{color:var(--brand)}:where(a,button,input,select,textarea,[tabindex],[role=button],[role=tab]):focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-1)}.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:absolute;left:var(--s-3);top:-60px;z-index:100;background:var(--brand);color:var(--on-brand);padding:var(--s-2) var(--s-4);border-radius:var(--r-2);transition:top var(--dur-2) var(--ease)}.skip-link:focus{top:var(--s-3)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:var(--r-pill);border:2px solid transparent;background-clip:content-box}.app{display:flex;flex-direction:column;height:100dvh;min-height:0}.app-header{display:flex;align-items:center;gap:var(--s-4);height:var(--header-h);padding:0 var(--s-5);background:var(--surface);border-bottom:1px solid var(--line);flex:0 0 auto}.app-header .logo{display:flex;align-items:center;gap:var(--s-3);font-weight:var(--fw-bold);font-size:var(--fs-600);letter-spacing:-.01em}.app-header .logo .mark{width:30px;height:30px;border-radius:9px;background:linear-gradient(140deg,var(--brand),var(--brand-strong));display:grid;place-items:center;color:#fff;font-weight:800;box-shadow:var(--shadow-1)}.app-header .tagline{color:var(--muted);font-size:var(--fs-400)}.app-header .spacer{flex:1}.app-header .header-actions{display:flex;align-items:center;gap:var(--s-2)}.app-body{flex:1 1 auto;display:grid;grid-template-columns:var(--rail-w) 1fr;min-height:0}.rail{border-right:1px solid var(--line);background:var(--surface);padding:var(--s-5);overflow:auto;display:flex;flex-direction:column;gap:var(--s-5)}.stage{min-width:0;display:flex;flex-direction:column;background:var(--bg)}.btn{--_bg: var(--surface-2);--_fg: var(--ink);--_bd: var(--line-strong);display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:40px;padding:0 var(--s-4);background:var(--_bg);color:var(--_fg);border:1px solid var(--_bd);border-radius:var(--r-2);cursor:pointer;font-size:var(--fs-400);font-weight:var(--fw-medium);transition:background var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),transform var(--dur-1) var(--ease);white-space:nowrap;user-select:none}.btn:hover{background:var(--surface-3)}.btn:active{transform:translateY(1px)}.btn[disabled],.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}.btn.primary{--_bg: var(--brand-strong);--_fg: var(--on-brand);--_bd: var(--brand-strong);font-weight:var(--fw-bold)}.btn.primary:hover{--_bg: var(--brand-deep);--_bd: var(--brand-deep)}.btn.ghost{--_bg: transparent;--_bd: transparent}.btn.ghost:hover{background:var(--surface-2)}.btn.icon{width:40px;padding:0}.btn.sm{min-height:32px;padding:0 var(--s-3);font-size:var(--fs-300)}.btn.block{width:100%}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);padding:var(--s-4);box-shadow:var(--shadow-1)}.section-label{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-300);font-weight:var(--fw-bold);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--s-3)}.section-label .num{display:grid;place-items:center;width:20px;height:20px;border-radius:var(--r-pill);background:var(--brand-soft);color:var(--brand-strong);font-size:11px;font-weight:800}:root[data-theme=dark] .section-label .num,:root[data-theme=system] .section-label .num{color:var(--brand)}.help-text{color:var(--muted);font-size:var(--fs-300);margin-top:var(--s-2);line-height:1.45}.dropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-3);text-align:center;min-height:200px;padding:var(--s-6) var(--s-4);border:2px dashed var(--line-strong);border-radius:var(--r-4);background:var(--surface-2);cursor:pointer;color:var(--ink-2);transition:border-color var(--dur-2) var(--ease),background var(--dur-2) var(--ease),transform var(--dur-2) var(--ease)}.dropzone:hover{border-color:var(--brand);background:var(--brand-soft)}.dropzone.dragover{border-color:var(--brand);background:var(--brand-soft);transform:scale(1.01);box-shadow:var(--shadow-2)}.dropzone .dz-icon{width:54px;height:54px;color:var(--brand)}.dropzone .dz-title{font-size:var(--fs-600);font-weight:var(--fw-bold);color:var(--ink)}.dropzone .dz-sub{font-size:var(--fs-400);color:var(--muted)}.dropzone .dz-or{font-size:var(--fs-300);color:var(--muted)}.dropzone.has-file{border-style:solid;border-color:var(--brand);background:var(--surface);align-items:stretch}.file-chip{display:flex;align-items:center;gap:var(--s-3);width:100%;padding:var(--s-3);background:var(--surface-2);border-radius:var(--r-2);border:1px solid var(--line);text-align:left}.file-chip .fi{width:34px;height:34px;flex:0 0 auto;color:var(--danger)}.file-chip .meta{min-width:0;flex:1}.file-chip .name{font-weight:var(--fw-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-chip .sz{color:var(--muted);font-size:var(--fs-300)}.segmented{display:inline-flex;padding:3px;gap:2px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-2)}.segmented[role=tablist]{width:100%}.seg{flex:1;border:0;background:transparent;color:var(--muted);padding:7px 12px;border-radius:7px;cursor:pointer;font-size:var(--fs-400);font-weight:var(--fw-medium);transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease);display:inline-flex;align-items:center;justify-content:center;gap:6px}.seg:hover{color:var(--ink)}.seg[aria-selected=true],.seg.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1);font-weight:var(--fw-bold)}.seg small{display:block;font-weight:var(--fw-normal);font-size:10.5px;color:var(--muted)}.switch{display:inline-flex;align-items:center;gap:var(--s-3);cursor:pointer}.switch input{position:absolute;opacity:0;width:0;height:0}.switch .track{width:42px;height:24px;border-radius:var(--r-pill);background:var(--line-strong);position:relative;transition:background var(--dur-2) var(--ease);flex:0 0 auto}.switch .track:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:var(--shadow-1);transition:transform var(--dur-2) var(--ease-out)}.switch input:checked+.track{background:var(--brand)}.switch input:checked+.track:after{transform:translate(18px)}.switch input:focus-visible+.track{outline:2px solid var(--focus);outline-offset:2px}.fidelity{display:inline-flex;align-items:center;gap:var(--s-2);padding:5px 10px 5px 6px;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);font-size:var(--fs-300);font-weight:var(--fw-medium)}.fidelity .ring{width:26px;height:26px;flex:0 0 auto}.fidelity .ring text{font:700 11px var(--font-ui);fill:var(--ink)}.fidelity .lbl b{font-weight:var(--fw-bold)}.fidelity .lbl small{display:block;color:var(--muted);font-size:10.5px}.prov{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:var(--r-pill);font-size:11px;font-weight:var(--fw-medium);border:1px solid var(--line);background:var(--surface)}.prov .dot{width:8px;height:8px;border-radius:50%}.prov[data-kind=recon] .dot{background:var(--tier-recon)}.prov[data-kind=fixed] .dot{background:var(--tier-fixed)}.prov[data-kind=ocr] .dot{background:var(--tier-ocr)}.prov[data-kind=raster] .dot{background:var(--tier-raster)}.progress-wrap{display:flex;flex-direction:column;gap:var(--s-3)}.progress-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.progress-head .ptitle{font-weight:var(--fw-bold);display:flex;align-items:center;gap:var(--s-2)}.progress-head .pcount{color:var(--muted);font-size:var(--fs-300)}.bar{height:8px;border-radius:var(--r-pill);background:var(--surface-3);overflow:hidden}.bar>i{display:block;height:100%;width:0%;background:linear-gradient(90deg,var(--brand),var(--brand-strong));border-radius:var(--r-pill);transition:width var(--dur-3) var(--ease-out)}.bar.indet>i{width:35%;animation:indet 1.1s var(--ease) infinite}@keyframes indet{0%{margin-left:-35%}to{margin-left:100%}}.thumb-strip{display:flex;gap:var(--s-2);overflow-x:auto;padding-bottom:var(--s-2);scroll-snap-type:x proximity}.thumb{position:relative;flex:0 0 auto;width:92px;cursor:pointer;scroll-snap-align:start;border:2px solid transparent;border-radius:var(--r-2);background:var(--surface);padding:3px;transition:border-color var(--dur-1) var(--ease),transform var(--dur-1) var(--ease)}.thumb:hover{transform:translateY(-2px)}.thumb[aria-current=true]{border-color:var(--brand)}.thumb .canvas{aspect-ratio:3/4;width:100%;border-radius:5px;overflow:hidden;background:var(--surface-3);display:grid;place-items:center}.thumb .canvas img{width:100%;height:100%;object-fit:contain;background:#fff}.thumb .tnum{position:absolute;top:5px;left:5px;background:#0009;color:#fff;font-size:10px;padding:1px 6px;border-radius:var(--r-pill)}.thumb .tprov{margin-top:4px;display:flex;justify-content:center}.thumb.appear{animation:thumb-in var(--dur-3) var(--ease-out) both}@keyframes thumb-in{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}.stage-toolbar{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap;padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--line);background:var(--surface);flex:0 0 auto}.stage-toolbar .spacer{flex:1}.stage-scroll{flex:1 1 auto;overflow:auto;padding:var(--s-5);display:grid;place-items:start center}.empty-state{max-width:460px;margin:auto;text-align:center;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:var(--s-4);padding:var(--s-7) var(--s-4)}.empty-state .es-art{width:120px;height:120px;color:var(--line-strong)}.empty-state h2{color:var(--ink);font-size:var(--fs-700)}.csc-doc{--color-accent: #2f8f73;--color-ink: #1f2933;--color-bg: #ffffff;--font-display: "Fredoka", system-ui, sans-serif;--font-body: "Poppins", system-ui, sans-serif;--space: 8px;--radius: 12px;--measure: 70ch;--page-max: 850px;background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);box-shadow:var(--shadow-3);border-radius:var(--radius);width:100%;max-width:var(--page-max);transition:max-width var(--dur-2) var(--ease)}.csc-page{position:relative;background:var(--color-bg)}.csc-page+.csc-page{margin-top:var(--s-5)}.csc-doc[data-mode=reflow] .csc-page{padding:clamp(20px,5%,56px)}.csc-doc[data-mode=reflow] .csc-page{display:block}.csc-doc[data-mode=reflow] h1,.csc-doc[data-mode=reflow] h2,.csc-doc[data-mode=reflow] h3{font-family:var(--font-display);color:var(--color-accent);line-height:1.15}.csc-doc[data-mode=reflow] h1{font-size:2rem;margin:0 0 .4em}.csc-doc[data-mode=reflow] h2{font-size:1.5rem;margin:1em 0 .3em}.csc-doc[data-mode=reflow] h3{font-size:1.2rem;margin:.9em 0 .3em}.csc-doc[data-mode=reflow] p{max-width:var(--measure);margin:0 0 .7em;line-height:1.55}.csc-doc[data-mode=reflow] ul{max-width:var(--measure);margin:0 0 .7em;padding-left:1.3em}.csc-doc[data-mode=reflow] li{margin:.25em 0}.csc-doc[data-mode=reflow] figure{margin:1em 0;text-align:center}.csc-doc[data-mode=reflow] table{border-collapse:collapse;margin:1em 0;width:100%}.csc-doc[data-mode=reflow] td,.csc-doc[data-mode=reflow] th{border:1px solid var(--color-ink);padding:6px 10px}.csc-doc[data-mode=reflow] hr{border:0;border-top:1.5px solid var(--color-accent);margin:1em 0}.csc-canvas{position:relative;transform-origin:top left}.csc-abs{position:absolute}.csc-abs.text{white-space:pre;transform-origin:left top}.csc-raster-page{width:100%;display:block}.region-tag{position:absolute;top:2px;right:2px;font-size:9px;padding:0 4px;border-radius:4px;background:#8b5cf624;color:var(--tier-raster);pointer-events:none}.ba{position:relative;width:100%;max-width:var(--page-max);aspect-ratio:3/4;overflow:hidden;border-radius:var(--r-3);box-shadow:var(--shadow-3);background:#fff;touch-action:none;user-select:none}.ba .layer{position:absolute;inset:0}.ba .layer img{width:100%;height:100%;object-fit:contain;background:#fff}.ba .after{clip-path:inset(0 0 0 var(--split, 50%))}.ba .before{clip-path:inset(0 calc(100% - var(--split, 50%)) 0 0)}.ba .handle{position:absolute;top:0;bottom:0;left:var(--split, 50%);width:2px;background:var(--brand);transform:translate(-1px);cursor:ew-resize}.ba .handle:before{content:"";position:absolute;top:50%;left:50%;width:36px;height:36px;transform:translate(-50%,-50%);background:var(--brand);border-radius:50%;box-shadow:var(--shadow-2)}.ba .handle:after{content:"↔";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:16px}.ba .tag{position:absolute;top:var(--s-3);padding:3px 10px;border-radius:var(--r-pill);background:#0009;color:#fff;font-size:var(--fs-300)}.ba .tag.l{left:var(--s-3)}.ba .tag.r{right:var(--s-3)}.theme-editor{display:flex;flex-direction:column;gap:var(--s-4)}.field{display:flex;flex-direction:column;gap:6px}.field>label{font-size:var(--fs-300);font-weight:var(--fw-medium);color:var(--ink-2)}.field .row{display:flex;align-items:center;gap:var(--s-3)}.field input[type=color]{width:38px;height:32px;padding:0;border:1px solid var(--line);border-radius:var(--r-1);background:none;cursor:pointer}.field input[type=range]{flex:1;accent-color:var(--brand)}.field select,.field input[type=text]{flex:1;min-width:0;height:36px;padding:0 var(--s-3);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-2);color:var(--ink)}.field .val{font-size:var(--fs-300);color:var(--muted);min-width:48px;text-align:right;font-variant-numeric:tabular-nums}.swatches{display:flex;gap:6px;flex-wrap:wrap}.swatch{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);cursor:pointer}.swatch[aria-pressed=true]{border-color:var(--ink);transform:scale(1.08)}.export-bar{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}.embed-out{width:100%}.embed-out textarea{width:100%;min-height:78px;resize:vertical;font-family:var(--font-mono);font-size:var(--fs-300);padding:var(--s-3);border-radius:var(--r-2);border:1px solid var(--line);background:var(--surface-2);color:var(--ink)}.panel{display:none}.panel.active{display:block;animation:fade var(--dur-2) var(--ease) both}@keyframes fade{0%{opacity:0}to{opacity:1}}.toast-host{position:fixed;bottom:var(--s-5);right:var(--s-5);display:flex;flex-direction:column;gap:var(--s-2);z-index:50;max-width:min(92vw,380px)}.toast{display:flex;align-items:flex-start;gap:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--elevated);border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:var(--r-2);box-shadow:var(--shadow-3);animation:toast-in var(--dur-3) var(--ease-out) both}.toast[data-kind=error]{border-left-color:var(--danger)}.toast[data-kind=success]{border-left-color:var(--success)}.toast .tx{font-size:var(--fs-400)}.toast .tx small{display:block;color:var(--muted)}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.toast.leaving{animation:toast-out var(--dur-2) var(--ease) both}@keyframes toast-out{to{opacity:0;transform:translate(20px)}}@media (max-width: 920px){:root{--rail-w: 1fr}.app-body{grid-template-columns:1fr;grid-template-rows:auto 1fr}.rail{border-right:0;border-bottom:1px solid var(--line);max-height:46vh}.app-header .tagline{display:none}}@media (max-width: 560px){.app-header{padding:0 var(--s-3)}.stage-scroll{padding:var(--s-3)}.rail{padding:var(--s-4)}.seg small{display:none}.toast-host{left:var(--s-3);right:var(--s-3);bottom:var(--s-3);max-width:none}}.help-shell{max-width:880px;margin:0 auto;padding:var(--s-6) var(--s-4) var(--s-8)}.help-shell h1{font-size:var(--fs-900);margin-bottom:var(--s-2)}.help-lede{color:var(--muted);font-size:var(--fs-600);margin-bottom:var(--s-6);max-width:60ch}.help-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--s-4)}.help-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);padding:var(--s-5);box-shadow:var(--shadow-1)}.help-card h3{font-size:var(--fs-600);margin-bottom:var(--s-2);display:flex;align-items:center;gap:var(--s-2)}.help-card ol,.help-card p{color:var(--ink-2);font-size:var(--fs-400);line-height:1.6}.help-card ol{padding-left:1.2em;margin:0}.help-card .clip{margin-top:var(--s-3);aspect-ratio:16/9;border-radius:var(--r-2);background:var(--surface-2);border:1px dashed var(--line-strong);display:grid;place-items:center;color:var(--muted);font-size:var(--fs-300)}.help-back{display:inline-flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-5);color:var(--brand-strong);text-decoration:none;font-weight:var(--fw-medium)}
