/* bigBespoke Sign — self-contained styles */
:root{
  --navy:#0e1b2e; --navy2:#16263e; --ink:#1a2333; --gold:#c9a227; --gold2:#b08d1e;
  --paper:#f6f7f9; --card:#ffffff; --line:#dde3ea; --muted:#5c6878; --ok:#1f8a4c; --bad:#c0392b;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);
  font:15px/1.55 -apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
a{color:var(--navy);text-decoration:none;border-bottom:1px dotted var(--gold)}
.top{background:var(--navy);color:#fff;padding:14px 20px;display:flex;align-items:center;gap:12px}
.top .mark{width:30px;height:30px;border-radius:8px;background:var(--gold);color:var(--navy);
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px}
.top .name{font-weight:700;letter-spacing:.02em}
.top .name span{color:var(--gold)}
.top .sub{margin-left:auto;font-size:12.5px;color:#b9c4d4}
.wrap{max-width:980px;margin:0 auto;padding:22px 16px 80px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;margin:0 0 16px}
.card h2{margin:0 0 6px;font-size:17px}
.card h3{margin:14px 0 6px;font-size:14.5px}
.hint{color:var(--muted);font-size:13px;margin:2px 0 10px}
.small{font-size:12.5px;color:var(--muted)}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.grow{flex:1 1 auto}
button{font:600 14px/1 -apple-system,"Segoe UI",Roboto,sans-serif;border-radius:9px;border:1px solid var(--line);
  background:#fff;color:var(--ink);padding:10px 14px;cursor:pointer}
button:hover{border-color:#c6cfda}
button.primary{background:var(--gold);border-color:var(--gold2);color:#14203a}
button.primary:hover{background:#d4ad2e}
button.ghost{background:transparent}
button.danger{color:var(--bad);border-color:#e4b6ae}
button:disabled{opacity:.45;cursor:not-allowed}
input[type=text],input[type=email]{font:14px -apple-system,"Segoe UI",Roboto,sans-serif;
  padding:9px 11px;border:1px solid var(--line);border-radius:8px;width:100%;background:#fff}
input:focus{outline:2px solid #e8d491;border-color:var(--gold)}
.drop{border:2px dashed #c6ccd6;border-radius:12px;padding:34px;text-align:center;color:var(--muted);
  background:#fbfcfe;cursor:pointer}
.drop.on{border-color:var(--gold);background:#fdf9ec}
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:12px;
  font-weight:600;border:1px solid var(--line);background:#f2f4f7}
.pill.ok{background:#e8f6ee;border-color:#bfe3cd;color:var(--ok)}
.pill.wait{background:#fdf6e3;border-color:#ecd9a0;color:#8a6d1a}
.pill.void{background:#faeceb;border-color:#e8c2bc;color:var(--bad)}
.recip{display:flex;gap:8px;align-items:center;margin:6px 0}
.recip .dot{width:14px;height:14px;border-radius:4px;flex:none}
.palette{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.palette button.sel{outline:3px solid #e8d491;border-color:var(--gold)}
.pages{margin-top:12px}
.pagewrap{position:relative;margin:0 auto 18px;box-shadow:0 1px 8px rgba(15,25,45,.12);border:1px solid var(--line);
  width:fit-content;max-width:100%}
.pagewrap canvas{display:block;max-width:100%;height:auto}
.field{position:absolute;border:2px solid;border-radius:6px;display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;cursor:grab;user-select:none;background:rgba(255,255,255,.72);overflow:hidden}
.field .x{position:absolute;top:-9px;right:-9px;width:18px;height:18px;border-radius:50%;background:#fff;
  border:1px solid var(--line);color:var(--bad);font-size:11px;line-height:16px;text-align:center;cursor:pointer}
.field.sig-live{cursor:pointer;background:rgba(253,249,236,.9)}
.field img{max-width:100%;max-height:100%;object-fit:contain}
.field input{border:none;background:transparent;width:100%;height:100%;font-size:13px;padding:2px 6px}
.field input:focus{outline:none}
.linkbox{background:#f4f6f9;border:1px solid var(--line);border-radius:8px;padding:9px 11px;
  font:12.5px/1.5 Consolas,Menlo,monospace;word-break:break-all}
.copybtn{font-size:12px;padding:7px 10px}
.status-done{color:var(--ok);font-weight:700}
.bigcheck{font-size:44px;color:var(--ok)}
.modal-bg{position:fixed;inset:0;background:rgba(10,18,32,.55);display:flex;align-items:center;justify-content:center;z-index:50}
.modal{background:#fff;border-radius:14px;padding:20px;width:min(600px,94vw)}
.modal h3{margin:0 0 10px}
.tabs{display:flex;gap:8px;margin-bottom:12px}
.tabs button.sel{background:var(--navy);color:#fff;border-color:var(--navy)}
.sigcanvas{border:1.5px dashed #c2c9d4;border-radius:10px;background:#fff;touch-action:none;display:block;width:100%}
.sigpreview{height:120px;display:flex;align-items:center;justify-content:center;border:1.5px dashed #c2c9d4;border-radius:10px}
.consent{display:flex;gap:10px;align-items:flex-start;background:#fdf9ec;border:1px solid #ecd9a0;
  border-radius:10px;padding:12px;margin:14px 0}
.consent input{margin-top:3px;width:auto}
.footer{color:var(--muted);font-size:12px;text-align:center;margin-top:30px}
.envrow{display:flex;gap:10px;align-items:center;border-top:1px solid var(--line);padding:9px 2px;font-size:13.5px}
.envrow:first-of-type{border-top:none}
.err{background:#faeceb;border:1px solid #e8c2bc;color:#7c2d24;border-radius:10px;padding:12px;font-size:13.5px}
.notice{background:#eef4fb;border:1px solid #c9dcf2;border-radius:10px;padding:12px;font-size:13.5px}
/* composer two-column: sticky control pane left, pages right (wide screens only) */
.composer2col{display:flex;gap:18px;align-items:flex-start}
.sidepane{flex:0 0 300px;position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto;padding-right:4px}
.pagescol{flex:1 1 auto;min-width:0}
@media (max-width:1080px){ .composer2col{display:block} .sidepane{position:static;max-height:none;flex:none} }
@media (max-width:640px){ .wrap{padding:14px 8px 60px} .card{padding:14px;border-radius:10px} }
