:root{color-scheme:light;--ink:#19324c;--line:#d6e0eb;--blue:#1762ac}*{box-sizing:border-box}body{margin:0;font:15px/1.6 'Malgun Gothic',Arial,sans-serif;color:var(--ink);background:#f3f6fa}header{padding:28px max(20px,calc((100vw - 1320px)/2));background:#173858;color:white}h1{margin:0;font-size:29px}h2{margin:0 0 12px;font-size:20px}h3{font-size:16px}header p{margin-bottom:0}.layout{display:grid;grid-template-columns:180px minmax(0,1fr);gap:20px;max-width:1320px;margin:auto;padding:24px}nav{display:flex;flex-direction:column;gap:5px;align-self:start;position:sticky;top:12px}nav button{text-align:left}nav button[aria-selected=true],button.primary{background:var(--blue);color:white}article{min-width:0}section{background:white;border:1px solid var(--line);border-radius:15px;padding:22px;margin-bottom:18px}button,.upload{border:1px solid var(--line);border-radius:9px;background:#eaf0f7;color:var(--ink);padding:9px 13px;font:inherit;cursor:pointer}button:disabled{opacity:.48;cursor:default}input,select{font:inherit;max-width:100%;padding:8px;border:1px solid #aabed1;border-radius:7px;background:white;color:var(--ink)}input[type=text]{width:100%}input[type=number]{width:100px}.upload{position:relative;display:inline-block;overflow:hidden}.upload input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0}.row h2{margin:0 auto 0 0}.fields{display:flex;flex-wrap:wrap;gap:14px;align-items:end;margin:16px 0}.fields label{display:flex;flex-direction:column;flex:1;min-width:170px}.hint,small{font-size:13px;color:#526b80}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:12px}.page-card{border:2px solid var(--line);border-radius:10px;padding:10px;overflow:hidden;cursor:pointer;background:#f8fafc}.page-card[aria-selected=true]{border-color:var(--blue);background:#eaf3ff}.page-card canvas{display:block;max-width:100%;height:auto;margin:auto;background:white}.page-card p{font-size:12px;overflow-wrap:anywhere;margin:6px 0}.page-card button{padding:3px 7px;font-size:12px}.page-card .row{gap:5px;margin:4px 0}#fileList li{padding:6px;overflow-wrap:anywhere}#fileList button{padding:2px 8px;margin-left:6px}#dropzone.drag{outline:3px dashed var(--blue)}progress{width:100%;height:10px}#error{color:#ad3029;background:#fff1ee;padding:10px}footer{text-align:center;padding:20px;color:#526b80}dialog{border:1px solid var(--line);border-radius:12px;max-width:95vw;max-height:95vh}dialog canvas{display:block;max-width:100%;height:auto}dialog::backdrop{background:#1238}[hidden]{display:none!important}:focus-visible{outline:3px solid #edb649;outline-offset:2px}@media(max-width:700px){.layout{display:block;padding:12px}nav{position:static;flex-direction:row;overflow:auto;margin-bottom:12px}nav button{white-space:nowrap}section{padding:14px}.fields label{min-width:145px}header{padding:20px}button,.upload{min-height:40px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

#canvasWrap{position:relative;overflow:auto;max-height:70vh}#cropSelection{position:absolute;border:2px dashed #1762ac;pointer-events:none;background:#1762ac22}#signPad{max-width:100%;height:auto}body.dark{--ink:#e0e9f4;--line:#536780;--blue:#377cc5;background:#101c2c;color:var(--ink)}body.dark section,body.dark dialog{background:#1b2b40;color:var(--ink)}body.dark button,body.dark .upload,body.dark input,body.dark select,body.dark textarea{background:#283d57;color:var(--ink)}body.dark .page-card{background:#25364a}body.dark .hint,body.dark small,body.dark footer{color:#b7c8dd}#themeToggle{float:right}
.page-card{border:3px solid var(--source-color,#aabed1);border-radius:8px;padding:6px}.page-card[data-source='blank']{border-color:#aabed1}


.page-card{position:relative;overflow:visible}.page-card .page-cut{position:absolute;right:-12px;top:40%;z-index:1;border-radius:50%;background:var(--blue);color:white;padding:4px}

/* Stage 2 controls share the responsive tool shell. */
fieldset.fields{min-width:0;margin:16px 0;padding:14px;border:1px solid var(--line,#ccd8e4);border-radius:9px} fieldset.fields label{min-width:0} fieldset.fields input:not([type=checkbox]):not([type=color]),fieldset.fields select{max-width:100%;box-sizing:border-box} fieldset.fields p,fieldset.fields output,fieldset.fields canvas{grid-column:1/-1} #compressionSummary{white-space:pre-wrap} #formFields label{display:block;margin:8px 0} #drawingCanvas{background:#fff}

fieldset.fields label{flex:1 1 180px;min-width:min(100%,150px)}fieldset.fields p,fieldset.fields output{flex-basis:100%;max-width:100%;overflow-wrap:anywhere}fieldset.fields canvas{flex-basis:100%;max-width:100%}
