/* Extra styles for the page-preview tools added on 16 October 2026 (sign, redact, crop, form fill). */
[hidden]{display:none!important}
.stage-wrap{display:grid;gap:12px}
.stage-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.stage-bar .grow{margin-right:auto}
.stage{position:relative;margin:0 auto;max-width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow-sm);user-select:none;-webkit-user-select:none}
.stage canvas{display:block;width:100%;height:auto}
.stage-empty{display:grid;place-items:center;min-height:220px;border:2px dashed var(--line-strong);border-radius:var(--radius);color:var(--ink-3);font-size:.92rem;text-align:center;padding:24px}
.stamp{position:absolute;cursor:move;outline:2px dashed var(--accent);outline-offset:2px;border-radius:2px;touch-action:none}
.stamp img{display:block;width:100%;height:auto;pointer-events:none}
.stamp-handle{position:absolute;right:-9px;bottom:-9px;width:18px;height:18px;border-radius:50%;background:var(--accent);border:2px solid #fff;cursor:nwse-resize;box-shadow:var(--shadow-sm)}
.stage.drawing{cursor:crosshair;touch-action:none}
.rbox{position:absolute;background:rgba(0,0,0,.82);outline:1px solid #000}
.rbox button{position:absolute;top:-10px;right:-10px;width:20px;height:20px;border-radius:50%;border:0;background:var(--accent);color:#fff;font-size:13px;line-height:20px;padding:0;cursor:pointer}
.rbox.ghost{background:rgba(220,40,40,.25);outline:1px dashed #c00}
.cropmask{position:absolute;inset:0;pointer-events:none}
.cropmask div{position:absolute;background:rgba(20,18,15,.45)}
.cropframe{position:absolute;outline:2px solid var(--accent);pointer-events:none}
.tabs{display:inline-flex;flex-wrap:wrap;gap:4px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:4px;margin-bottom:14px}
.tabs button{border:0;background:transparent;padding:7px 14px;border-radius:7px;font:inherit;font-size:.88rem;font-weight:550;color:var(--ink-2);cursor:pointer}
.tabs button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}
.typed-preview{display:flex;align-items:center;justify-content:center;min-height:120px;border:2px dashed var(--line-strong);border-radius:var(--radius);background:#fff;color:#111;font-size:54px;padding:12px;overflow:hidden;white-space:nowrap}
.upload-preview{display:flex;align-items:center;justify-content:center;min-height:120px;border:2px dashed var(--line-strong);border-radius:var(--radius);background:#fff;padding:12px}
.upload-preview img{max-width:100%;max-height:160px}
.swatches{display:flex;gap:8px;align-items:center}
.swatches label{position:relative;cursor:pointer}
.swatches input{position:absolute;opacity:0;width:0;height:0}
.swatches span{display:block;width:26px;height:26px;border-radius:50%;border:2px solid var(--line-strong)}
.swatches input:checked+span{box-shadow:0 0 0 3px var(--accent)}
.swatches input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.form-fields{display:grid;gap:14px;margin-top:6px}
.form-fields .field textarea{min-height:84px}
.form-fields .ff-type{font-size:.74rem;font-weight:650;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;margin-left:6px}
.chip-list{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.chip-list li{font-size:.8rem;padding:4px 10px;border-radius:99px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2)}
.nup-demo{display:grid;gap:4px;width:64px;aspect-ratio:1/1.414;padding:5px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface)}
.nup-demo span{background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:2px}
.tbox{position:absolute;touch-action:none}
.stage .tbox input{border:0;outline:1px dashed var(--accent);background:rgba(255,255,255,.55);padding:0 2px;margin:0;line-height:1.2;font-family:Helvetica,Arial,sans-serif;min-width:2ch;max-width:none;width:auto;border-radius:0;box-shadow:none}
.stage .tbox input:focus{outline:2px solid var(--accent)}
.tbox .tgrip{position:absolute;left:-18px;top:50%;transform:translateY(-50%);cursor:move;font-size:14px;line-height:1;color:var(--accent);padding:2px;touch-action:none}
.tbox button{position:absolute;right:-22px;top:50%;transform:translateY(-50%);width:18px;height:18px;border-radius:50%;border:0;background:var(--accent);color:#fff;font-size:12px;line-height:18px;padding:0;cursor:pointer}
