body.editor{overflow:hidden}.ed-main{flex:1 1 auto;min-height:0;display:flex}.stage{flex:1;overflow:auto;background:#0b0d11;position:relative;padding:16px 0 80px}#pages{display:flex;flex-direction:column;align-items:center;gap:14px;min-width:min-content}.stage:has(#pages:empty) #pages{display:none}.stage:not(:has(#pages:empty)) .empty{display:none}.stage .empty{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:20px;overflow:auto}.stage .empty h1{color:var(--text);margin:0 0 8px;font-size:22px}.pg{position:relative;background:#fff;box-shadow:0 4px 18px #00000080;flex:0 0 auto}.pg canvas{display:block;width:100%;height:100%}.pg svg.ov{position:absolute;inset:0;width:100%;height:100%;overflow:visible;touch-action:pan-x pan-y;user-select:none}.stage:not(.tool-select) .pg svg.ov{touch-action:none}.stage.tool-select svg.ov{cursor:default}.stage.tool-text svg.ov{cursor:text}.stage:not(.tool-select):not(.tool-text) svg.ov{cursor:crosshair}.stage.placing svg.ov{cursor:copy}svg.ov .obj{cursor:move}svg.ov .sel-box{fill:none;stroke:#4f8cff;stroke-width:1;stroke-dasharray:4 3;pointer-events:none;vector-effect:non-scaling-stroke}svg.ov .handle{fill:#fff;stroke:#4f8cff;stroke-width:1.5;vector-effect:non-scaling-stroke}svg.ov .handle[data-h=nw],svg.ov .handle[data-h=se]{cursor:nwse-resize}svg.ov .handle[data-h=ne],svg.ov .handle[data-h=sw]{cursor:nesw-resize}svg.ov .handle[data-h=p1],svg.ov .handle[data-h=p2]{cursor:crosshair}.stage:not(.tool-select) svg.ov .obj,.stage:not(.tool-select) svg.ov .handle{pointer-events:none}.tx-edit{position:absolute;margin:0;padding:0;border:1px dashed #4f8cff;background:#ffffffd9;outline:none;resize:none;overflow:hidden;white-space:pre;line-height:1.2;min-width:60px;z-index:5}.formlayer{position:absolute;inset:0;pointer-events:none}.fw{position:absolute;margin:0;padding:0 2px;border:1px solid rgba(79,140,255,.6);background:#4f8cff1f;color:#000;font-family:Helvetica,Arial,sans-serif;pointer-events:auto;min-width:0;border-radius:2px}textarea.fw{resize:none;padding:2px;line-height:1.2}.fw[type=checkbox],.fw[type=radio]{padding:0;accent-color:#4f8cff}.fw:focus{outline:2px solid #4f8cff;background:#ffffffe6}.stage:not(.tool-select) .fw{pointer-events:none}#btnOptions.has-form{border-color:var(--accent)}.opt-head{display:flex;align-items:center;gap:8px;font-weight:600;margin:14px 0 6px}.opt-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin-left:24px;font-size:12px;color:var(--muted)}.opt-grid label{display:flex;align-items:center;gap:6px;justify-content:space-between}.tools-group{display:flex;gap:3px}.tools-group .btn{display:flex;flex-direction:column;align-items:center;gap:0;padding:3px 7px;min-width:46px;line-height:1.15;font-size:16px}.tools-group .btn .tl{font-size:9.5px;color:var(--muted)}.tools-group .btn.on{background:#508cff38;border-color:var(--accent)}.props{gap:12px;min-height:30px}.props .pgrp{display:flex;align-items:center;gap:5px}.props input[type=color]{width:34px;height:26px;padding:0;border:1px solid var(--line);border-radius:6px;background:none;cursor:pointer}.props .btn.pgrp{padding:3px 10px}.props .btn.pgrp.on{background:#508cff38;border-color:var(--accent)}.props .pgrp[hidden]{display:none}#sigCanvas{width:100%;max-width:520px;height:auto;aspect-ratio:520/200;background:#fff;border-radius:8px;border:1px solid var(--line);touch-action:none;cursor:crosshair;display:block;margin-top:10px}
