@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.518e079e.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.ea323500.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.853d50a3.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.55554cd0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.3b6cae6d.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist","Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.56c1f21e.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.3b336396.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.e3369375.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.a40b9a8b.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.fe42ddf4.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.29207c2f.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
:root{--background:#f6f8fb;--foreground:#172033;--muted:#5b6675;--surface:#fff;--surface-subtle:#f8fafc;--line:#1720331f;--accent:#2364aa;--accent-strong:#174a7c;--accent-soft:#2364aa1f;--success:#2f6b42;--error:#b42318;--shadow:0 20px 52px #1520301a}html,body{max-width:100vw;overflow-x:hidden}body{color:var(--foreground);font-family:var(--font-geist-sans),sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(#f8fafc 0%,#eef3f7 100%)}*{box-sizing:border-box;margin:0;padding:0}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;padding:24px 20px 48px}.panel{width:min(1480px,100%);margin:0 auto}.app-workspace{gap:16px;display:grid}.app-header{grid-template-columns:minmax(0,1fr) minmax(360px,480px);align-items:end;gap:24px;display:grid}.app-header h1{letter-spacing:0;max-width:760px;margin-top:10px;font-size:clamp(1.9rem,3vw,2.8rem);line-height:1.05}.app-header p{max-width:640px;color:var(--muted);margin-top:10px;font-size:1rem;line-height:1.6}.eyebrow{color:var(--accent-strong);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;font-size:.78rem;font-weight:800;display:inline-flex}.workflow-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.workflow-step{border:1px solid var(--line);background:#ffffffb3;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 8px;min-width:0;padding:10px;display:grid}.workflow-step span{width:28px;height:28px;color:var(--muted);background:#17203314;border-radius:999px;grid-row:span 2;place-items:center;font-size:.82rem;font-weight:800;display:inline-grid}.workflow-step strong,.workflow-step small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.workflow-step strong{font-size:.92rem}.workflow-step small{color:var(--muted);font-size:.78rem;font-weight:700}.workflow-step.active{background:var(--accent-soft);border-color:#2364aa5c}.workflow-step.active span,.workflow-step.complete span{background:var(--accent);color:#fff}.workflow-step.complete{background:#2f6b4214;border-color:#2f6b4247}.source-bar{grid-template-columns:auto minmax(0,1fr);align-items:stretch;gap:12px;display:grid}.upload-layout{grid-template-columns:minmax(0,1.12fr) minmax(430px,.88fr);align-items:start;gap:16px;display:grid}.workspace-column{gap:16px;min-width:0;display:grid}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.control-card,.debug-panel,.review-panel,.status-card,.pdf-preview-panel{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:8px}.workflow-control-stack{gap:10px;min-width:0;display:grid}.workflow-control-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.control-card{justify-content:space-between;align-items:center;gap:16px;min-width:0;padding:14px;display:flex}.control-card-copy{gap:6px;min-width:0;display:grid}.control-card h2{font-size:1.08rem;line-height:1.25}.helper-text,.meta-text,.empty-workspace p{color:var(--muted);line-height:1.55}.file-pill,.status-pill{border-radius:999px;align-items:center;gap:8px;max-width:100%;padding:7px 10px;font-size:.86rem;font-weight:700;display:inline-flex}.file-pill{overflow-wrap:anywhere;background:#1720330f}.status-pill{background:var(--accent-soft);color:var(--accent-strong);white-space:nowrap;align-self:start}.status-pill.complete{color:var(--success);background:#2f6b421f}.status-pill.failed{color:var(--error);background:#b423181f}.error-text{color:var(--error);margin-top:10px;line-height:1.5}.controls{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.button,.button-secondary,.button-danger{appearance:none;min-height:42px;font:inherit;cursor:pointer;border:0;border-radius:8px;justify-content:center;align-items:center;padding:10px 14px;font-weight:800;transition:transform .16s,opacity .16s,box-shadow .16s;display:inline-flex}.button{background:var(--accent);color:#fff;box-shadow:0 10px 22px #2364aa38}.button-secondary{color:var(--foreground);background:#17203312}.button-danger{background:var(--error);color:#fff;box-shadow:0 10px 22px #b4231838}.button-secondary.active,.density-control button.active{background:var(--foreground);color:#fff}.button:hover,.button-secondary:hover,.button-danger:hover{transform:translateY(-1px)}.button:disabled,.button-secondary:disabled,.button-danger:disabled{opacity:.5;cursor:not-allowed;transform:none}.debug-panel,.review-panel,.status-card{padding:14px}.review-canvas-panel{min-height:520px}.debug-header,.output-title,.preview-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.debug-header{margin-bottom:12px}.debug-header h3,.output-title h3{font-size:1.04rem}.debug-canvas{width:100%;aspect-ratio:calc(var(--image-width)/var(--image-height));touch-action:none;background:#fff;border:1px solid #1720331a;border-radius:6px;position:relative;overflow:hidden}.debug-canvas.drawing{cursor:crosshair}.debug-canvas img{object-fit:fill;width:100%;height:100%;display:block}.source-preview,.empty-workspace{background:var(--surface-subtle);border:1px solid #1720331a;border-radius:6px;min-height:520px;display:grid}.source-preview{place-items:start center;max-height:70vh;overflow:auto}.source-preview img{width:min(100%,920px);height:auto;display:block}.empty-workspace{text-align:center;place-content:center;padding:24px}.empty-workspace h3{margin-bottom:6px;font-size:1.08rem}.overlay-rect{box-sizing:border-box;cursor:move;pointer-events:auto;background:#ffffff0a;border:2px solid;border-radius:6px;position:absolute}.overlay-rect span{color:#fff;border-radius:5px;padding:2px 6px;font-size:.78rem;font-weight:800;position:absolute;top:-1px;left:-1px}.overlay-rect.region{border-color:#2364aaf2;box-shadow:inset 0 0 0 1px #2364aa26}.overlay-rect.region span{background:#2364aaf2}.overlay-rect.anchor{pointer-events:none;border-color:#b42318cc}.overlay-rect.content{pointer-events:none;border-color:#2f6b42e6}.overlay-rect.header{pointer-events:none;border-color:#845812f2}.overlay-rect.column{pointer-events:none;background:#5b66750a;border-color:#5b66755c}.overlay-rect.rejected{pointer-events:none;background:#b423180f;border-color:#b4231880}.overlay-rect.muted{opacity:.62;background:#5b667512;border-color:#5b667573}.overlay-rect.draw{pointer-events:none;background:#2f6b4214;border-color:#2f6b42f2}.overlay-rect.selected{border-width:3px;box-shadow:0 0 0 3px #ffffffe6}.resize-handle{background:var(--accent);cursor:nwse-resize;border:2px solid #fff;border-radius:999px;width:15px;height:15px;padding:0;position:absolute;bottom:-7px;right:-7px}.review-list{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px;display:grid}.review-row{background:var(--surface-subtle);min-width:0;color:var(--foreground);font:inherit;cursor:pointer;text-align:left;border:1px solid #1720331a;border-radius:8px;grid-template-columns:auto minmax(44px,1fr) auto;align-items:center;gap:8px;padding:9px;font-weight:800;display:grid}.review-row.selected{border-color:#2364aab8;box-shadow:inset 0 0 0 1px #2364aa3d}.label-input{width:100%;min-width:0;color:var(--foreground);font:inherit;background:#fff;border:1px solid #17203324;border-radius:6px;padding:6px 7px;font-weight:800}.label-preview{min-width:34px;color:var(--accent-strong);background:#2364aa1a;border-radius:999px;justify-content:center;padding:4px 7px;font-size:.82rem;display:inline-flex}.status-card{align-content:start;gap:12px;display:grid;position:sticky;top:16px}.handout-actions{gap:8px;display:grid}.density-control{background:#1720330f;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:5px;display:grid}.density-control button{min-width:0;color:var(--foreground);font:inherit;text-transform:capitalize;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:9px 8px;font-size:.84rem;font-weight:800}.status-grid{gap:8px;display:grid}.status-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.item-card{background:var(--surface-subtle);border:1px solid #17203314;border-radius:8px;min-width:0;padding:10px}.item-card h4{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.76rem;font-weight:800}.item-card p{color:var(--foreground);overflow-wrap:anywhere;margin-top:6px;line-height:1.45}.pdf-preview-panel{box-shadow:none;background:var(--surface-subtle);gap:10px;padding:10px;display:grid}.preview-header{align-items:center}.preview-header h4{font-size:.95rem}.preview-header span{color:var(--muted);font-size:.82rem;font-weight:800}.pdf-preview-scroll{gap:14px;max-height:min(72vh,760px);padding:2px 8px 8px 2px;display:grid;overflow:auto}.preview-page{background:#fff;border:1px solid #17203329;width:100%;position:relative;overflow:hidden;box-shadow:0 12px 28px #1520301f}.preview-placement,.preview-answer-area,.preview-problem-layer{position:absolute}.preview-problem-layer{pointer-events:none;inset:0}.preview-prompt-placement,.preview-section-header{overflow:hidden}.preview-answer-area{background:#ffffff59;border:1px dashed #1720332e}.prompt-preview-stack,.source-crop{width:100%;height:100%;position:relative;overflow:hidden}.prompt-preview-row{position:absolute;overflow:hidden}.source-crop img{object-fit:fill;-webkit-user-select:none;user-select:none;pointer-events:none;max-width:none;display:block;position:absolute}.modal-backdrop{z-index:20;background:#0f172a6b;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.sample-modal{background:var(--surface);border:1px solid #17203329;border-radius:8px;gap:16px;width:min(920px,100%);max-height:min(760px,100vh - 40px);display:grid;overflow:hidden;box-shadow:0 28px 80px #0f172a3d}.modal-header{justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 18px 0;display:flex}.modal-header h2{margin-bottom:4px;font-size:1.25rem;line-height:1.25}.sample-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;padding:0 18px 18px;display:grid;overflow:auto}.sample-option{background:var(--surface-subtle);min-width:0;color:var(--foreground);font:inherit;cursor:pointer;text-align:left;border:1px solid #1720331f;border-radius:8px;gap:10px;transition:border-color .16s,box-shadow .16s,transform .16s;display:grid}.sample-option:hover{border-color:#2364aa70;transform:translateY(-1px);box-shadow:0 12px 28px #1520301f}.sample-thumbnail{aspect-ratio:4/3;background:#fff;border-bottom:1px solid #1720331a;border-radius:8px 8px 0 0;width:100%;display:block;overflow:hidden}.sample-thumbnail img{object-fit:contain;width:100%;height:100%;display:block}.sample-copy{gap:4px;padding:0 12px 12px;display:grid}.sample-copy strong{font-size:.98rem}.sample-copy span{color:var(--muted);font-size:.86rem;line-height:1.45}@media (max-width:1100px){.app-header,.upload-layout{grid-template-columns:1fr}.status-card{position:static}}@media (max-width:760px){.app-shell{padding:16px 12px 40px}.app-header{gap:14px}.app-header h1{font-size:clamp(2rem,12vw,3rem)}.workflow-steps,.source-bar,.workflow-control-grid,.status-grid.compact{grid-template-columns:1fr}.control-card{display:grid}.controls{justify-content:stretch}.button,.button-danger,.button-secondary,.controls label{width:100%}.review-canvas-panel,.source-preview,.empty-workspace{min-height:360px}.modal-backdrop{padding:12px}.modal-header{display:grid}.sample-modal{max-height:calc(100vh - 24px)}}
