/* Sign a PDF — studio layout, page stage, stamp layer, signature maker.
   Shared rules live in style.css; only this tool's own pieces live here. */

@font-face{font-family:'OTF Great Vibes';src:url('/assets/fonts/sign/GreatVibes.woff2') format('woff2');font-display:swap}
@font-face{font-family:'OTF Dancing Script';src:url('/assets/fonts/sign/DancingScript.woff2') format('woff2');font-display:swap}
@font-face{font-family:'OTF Allura';src:url('/assets/fonts/sign/Allura.woff2') format('woff2');font-display:swap}
@font-face{font-family:'OTF Sacramento';src:url('/assets/fonts/sign/Sacramento.woff2') format('woff2');font-display:swap}

.studio{grid-template-columns:300px minmax(0,1fr) 320px;grid-template-areas:"left stage right"}
.studio .stage-tile{grid-area:stage}
@media (max-width:1100px){
  .studio{grid-template-columns:1fr 1fr;grid-template-areas:"stage stage" "left right"}
}
@media (max-width:680px){
  .studio{grid-template-columns:1fr;grid-template-areas:"stage" "left" "right"}
}

.note.warn{border:1px solid var(--warn-border);background:var(--warn-bg);color:var(--warn);border-radius:9px;padding:9px 12px}
.chk{display:flex;gap:8px;align-items:flex-start;font-size:.92rem;margin:10px 0;cursor:pointer}
.chk input{margin-top:3px}
.linklike{background:none;border:none;color:var(--brand);font:inherit;cursor:pointer;padding:0;text-decoration:underline}
.mini-btn.danger:hover{border-color:#b3261e;color:#b3261e}
.fld input[type="text"],.fld input[type="number"]{padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit}
.fld input[type="number"]{width:90px}
label.fld{display:block;font-size:.88rem;color:var(--muted)}
label.fld input[type="range"]{width:100%}

/* left rail: stamps */
.stampbox{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.sb-label{font-size:.8rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.addrow{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}
.stamplist{display:flex;flex-direction:column;gap:7px}
.stampchip{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:9px;padding:6px 9px;background:var(--surface);cursor:pointer;text-align:left;font:inherit;width:100%}
.stampchip:hover{border-color:var(--brand)}
.stampchip.on{border-color:var(--brand);background:var(--accent)}
.stampchip img{height:30px;max-width:110px;object-fit:contain;background:repeating-conic-gradient(#e8ecf2 0% 25%, #ffffff 0% 50%) 0 0/12px 12px;border-radius:4px}
[data-theme="dark"] .stampchip img{background:repeating-conic-gradient(#2a3040 0% 25%, #1d2129 0% 50%) 0 0/12px 12px}
.stampchip .sc-tx{font-size:1.05rem;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stampchip .sc-meta{margin-left:auto;font-size:.78rem;color:var(--muted);white-space:nowrap}

/* stage */
.stagewrap{position:relative;background:var(--bg-soft);border:1px solid var(--line);border-radius:12px;min-height:300px;display:flex;align-items:flex-start;justify-content:center;overflow:hidden}
.stagewrap canvas{max-width:100%;height:auto;display:block;background:#fff}
.stage-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);font-size:1.02rem;padding:20px;margin:0;cursor:pointer}
.stage-empty span{font-size:.88rem;margin-top:6px}
.stamp-layer{position:absolute;inset:0;pointer-events:none}
.stamp-el{position:absolute;pointer-events:auto;cursor:grab;touch-action:none;border:1.5px solid transparent;border-radius:4px}
.stamp-el img{width:100%;height:100%;display:block;pointer-events:none}
.stamp-el.sel{border-color:var(--brand);cursor:grabbing}
.stamp-el .hdl{position:absolute;right:-9px;bottom:-9px;width:18px;height:18px;border-radius:50%;background:var(--brand);border:2px solid #fff;cursor:nwse-resize;touch-action:none;display:none}
.stamp-el.sel .hdl{display:block}
.pagebar{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:10px}
.pgof{font-size:.92rem;color:var(--muted)}
.pgof input{width:56px;padding:5px 7px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font:inherit}
.thumbstrip{display:flex;gap:8px;overflow-x:auto;margin-top:10px;padding-bottom:4px}
.thumbstrip canvas{height:74px;width:auto;border:2px solid var(--line);border-radius:6px;cursor:pointer;background:#fff;flex:none}
.thumbstrip canvas.on{border-color:var(--brand)}

/* right rail */
.selpanel{border:1px solid var(--accent-border);background:var(--accent);border-radius:11px;padding:12px;margin-bottom:12px}
.resultbox{border:1px solid var(--line);border-radius:11px;padding:12px;margin-top:12px;background:var(--bg-soft)}
.checkthumbs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.checkthumbs canvas{height:110px;width:auto;border:1px solid var(--line);border-radius:6px;background:#fff}
.resultbox .btn{width:100%;text-align:center;text-decoration:none}
.sigimg{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}
.keepbox{border-top:1px solid var(--line);margin-top:16px;padding-top:6px}
.save-btn{width:100%}

/* maker modal */
.modal{position:fixed;inset:0;background:rgba(8,12,20,.55);display:flex;align-items:flex-start;justify-content:center;padding:22px 12px;z-index:60;overflow-y:auto}
.modal[hidden]{display:none}
.modal-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;max-width:640px;width:100%;padding:18px}
.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.modal-head h2{font-size:1.15rem;margin:0}
.mtabs{display:flex;gap:7px;margin-bottom:12px}
.mtab.on{border-color:var(--brand);background:var(--accent);color:var(--brand)}
.padwrap{border:1.5px dashed var(--line);border-radius:10px;background:#fff;overflow:hidden}
.padwrap canvas{width:100%;height:auto;display:block;touch-action:none;cursor:crosshair}
.penbtn.on,.pcolbtn.on{border-color:var(--brand);background:var(--accent);color:var(--brand)}
.typepreviews{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:10px 0}
.typeprev{border:1.5px solid var(--line);border-radius:10px;background:#fff;color:#17202e;padding:14px 10px;font-size:1.7rem;line-height:1.15;cursor:pointer;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.typeprev:hover{border-color:var(--brand)}
.typeprev.on{border-color:var(--brand);box-shadow:0 0 0 2px var(--accent-border)}
.f-gv{font-family:'OTF Great Vibes',cursive}
.f-ds{font-family:'OTF Dancing Script',cursive}
.f-al{font-family:'OTF Allura',cursive}
.f-sa{font-family:'OTF Sacramento',cursive}
.photowrap{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:10px 0;background:repeating-conic-gradient(#dfe4ec 0% 25%, #f7f9fc 0% 50%) 0 0/18px 18px}
[data-theme="dark"] .photowrap{background:repeating-conic-gradient(#272d38 0% 25%, #1a1e26 0% 50%) 0 0/18px 18px}
.photowrap canvas{width:100%;height:auto;display:block}
.modal-foot{display:flex;justify-content:flex-end;gap:9px;margin-top:14px}
