/* ---------- agreement document ---------- */
.agreement-overlay{position:fixed;inset:0;background:var(--paper);z-index:80;overflow:auto}
.agreement-toolbar{position:sticky;top:0;background:var(--ink);color:#fff;padding:12px 20px;
  display:flex;gap:10px;align-items:center;justify-content:space-between;z-index:2;flex-wrap:wrap}
.agreement-toolbar .grp{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.agreement-toolbar .btn{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff}
.agreement-toolbar .btn:hover{background:rgba(255,255,255,.16)}
.agreement-toolbar .btn-accent{background:var(--accent);color:#3a2600;border-color:var(--accent)}
.agreement-toolbar .btn-buy{background:var(--buy);color:#fff;border-color:var(--buy)}
.agreement-status{font-weight:700;font-size:13px;display:flex;gap:8px;align-items:center}

.doc{max-width:820px;margin:26px auto;background:#fff;padding:54px 60px;box-shadow:var(--shadow);
  font-family:var(--font-b);color:#0d1b2a;line-height:1.6}
.doc h1{font-family:var(--font-d);font-size:24px;text-transform:uppercase;letter-spacing:.02em;text-align:center}
.doc .doc-sub{text-align:center;color:var(--muted);font-size:13px;margin:4px 0 22px}
.doc h2{font-family:var(--font-d);font-size:15px;text-transform:uppercase;letter-spacing:.05em;
  margin:24px 0 8px;padding-bottom:5px;border-bottom:2px solid var(--ink)}
.doc .kv{display:grid;grid-template-columns:1fr 1fr;gap:6px 24px;margin:8px 0}
.doc .kv .k{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}
.doc .kv .v{font-size:14px;font-weight:600;margin-bottom:6px}
.doc table.money{width:100%;border-collapse:collapse;margin:10px 0}
.doc table.money td{padding:7px 0;border-bottom:1px solid var(--line-2);font-size:14px}
.doc table.money tr:last-child td{border-bottom:none;font-weight:800;font-family:var(--font-d);font-size:16px}
.doc .terms{font-size:13px;color:#33475b}
.doc .terms li{margin-bottom:6px}
.doc .clause-title{font-weight:700;color:#0d1b2a}

/* signature blocks inside the doc */
.doc .sign{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:36px}
.doc .sign .slot{min-height:96px;display:flex;flex-direction:column;justify-content:flex-end}
.doc .sign .ink-img{max-height:66px;align-self:flex-start;margin-bottom:2px}
.doc .sign .typed{font-family:var(--font-sign);font-size:34px;line-height:1;color:#12233a;margin-bottom:4px}
.doc .sign .line{border-top:1.5px solid var(--ink);padding-top:6px;font-size:12px;color:var(--muted)}
.doc .sign .meta{font-size:10.5px;color:var(--muted-2);margin-top:3px}
.doc .sign .pending{color:var(--muted-2);font-style:italic;font-size:12px;padding-bottom:8px}
.doc .stamp{display:inline-block;border:2px solid var(--buy);color:var(--buy-ink);
  font-family:var(--font-d);font-weight:800;text-transform:uppercase;letter-spacing:.08em;
  padding:6px 14px;border-radius:8px;transform:rotate(-4deg);font-size:13px}
.doc .audit{margin-top:26px;border-top:1px dashed var(--line);padding-top:12px;font-size:10.5px;color:var(--muted-2);word-break:break-all}
.doc .audit b{color:var(--muted)}

/* ---------- e-signature pad ---------- */
.sign-modal .modal-body{padding:0}
.sign-intro{padding:18px 20px;border-bottom:1px solid var(--line)}
.sign-intro h4{font-size:16px;margin-bottom:4px}
.sign-intro p{color:var(--muted);font-size:13px;margin:0}
.sign-tabs{display:flex;gap:4px;padding:14px 20px 0}
.sign-tabs button{border:1px solid var(--line);background:var(--surface);border-bottom:none;
  border-radius:10px 10px 0 0;padding:9px 16px;font-weight:600;font-size:13.5px;color:var(--muted)}
.sign-tabs button.on{background:var(--surface-2);color:var(--text);border-color:var(--line)}
.sign-stage{padding:0 20px 8px}
.sign-pad-wrap{border:1px solid var(--line);border-radius:0 12px 12px 12px;background:
   repeating-linear-gradient(0deg,transparent,transparent 47px,var(--line-2) 47px,var(--line-2) 48px),
   var(--surface-2);position:relative;overflow:hidden}
.sign-pad-wrap .baseline{position:absolute;left:20px;right:20px;bottom:34px;border-bottom:1.5px dashed var(--muted-2);pointer-events:none}
.sign-pad-wrap .x-mark{position:absolute;left:20px;bottom:36px;color:var(--muted-2);font-family:var(--font-d);font-weight:800;font-size:18px;pointer-events:none}
canvas.sign-pad{display:block;width:100%;height:200px;touch-action:none;cursor:crosshair}
.sign-typed-stage{padding:22px;border:1px solid var(--line);border-radius:0 12px 12px 12px;background:var(--surface-2);text-align:center}
.sign-typed-stage .preview{font-family:var(--font-sign);font-size:52px;color:#12233a;min-height:64px;line-height:1.1;word-break:break-word}
.sign-typed-stage input{max-width:340px;margin:12px auto 0;text-align:center}
.sign-controls{display:flex;align-items:center;gap:10px;padding:14px 20px 20px;flex-wrap:wrap}
.sign-controls .spacer{flex:1}
.consent{display:flex;gap:9px;align-items:flex-start;padding:0 20px 6px;font-size:12.5px;color:var(--muted)}
.consent input{margin-top:2px}

@media print{
  .agreement-toolbar,.app-banner,.offline-pill,.toast-wrap{display:none !important}
  .agreement-overlay{position:static;background:#fff}
  .doc{box-shadow:none;margin:0;max-width:none;padding:0}
  body>*:not(.agreement-root):not(#agreement-root){display:none !important}
  #agreement-root,.agreement-root{display:block !important}
}
@media(max-width:640px){
  .doc{padding:30px 22px}
  .doc .kv,.doc .sign{grid-template-columns:1fr}
}
