:root{
  --ink:#0e1116; --ink-2:#171b22; --ink-3:#1f242d; --ink-4:#2a313c;
  --line:rgba(255,255,255,.14); --line-2:rgba(255,255,255,.26);
  --text:#f4f7fa; --muted:#b3bccb; --faint:#8b95a5;
  --brand:#f26a21; --brand-2:#ff8a3d; --brand-soft:rgba(242,106,33,.14);
  /* Filled buttons need a darker orange: white on #f26a21 is only 3.06:1, which fails
     AA for 14px button text. #c04c0c gives 4.91:1 and still reads as the brand. */
  --brand-btn:#c04c0c; --brand-btn-2:#d1550f;
  --ok:#3ddc97; --warn:#ffc861; --bad:#ff6b6b;
  --r:14px;
  --font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  /* the agreement itself is a paper document, deliberately light in every theme */
  --paper:#ffffff; --paper-ink:#14181f; --paper-muted:#5b6472; --paper-line:#e4e8ee;
}
*{box-sizing:border-box}
body{margin:0;background:var(--ink);color:var(--text);font-family:var(--font);
  font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{margin:0;letter-spacing:-.02em}
p{margin:0}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
::-webkit-scrollbar{width:7px;height:7px}
::-webkit-scrollbar-thumb{background:var(--ink-4);border-radius:8px}

/* ---------- chrome ---------- */
.top{position:sticky;top:0;z-index:20;background:rgba(14,17,22,.94);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line)}
.top__row{max-width:1180px;margin:0 auto;padding:13px 22px;display:flex;align-items:center;gap:16px}
.logo{display:flex;align-items:center;gap:10px}
.logo__m{width:30px;height:30px;border-radius:9px;background:var(--brand);display:grid;
  place-items:center;color:#fff;font-weight:800;font-size:15px}
.logo__t{font-weight:700;line-height:1.15}
.logo__t span{display:block;font-size:10px;font-weight:500;color:var(--faint);
  letter-spacing:.09em;text-transform:uppercase}
.top__right{margin-left:auto;display:flex;align-items:center;gap:9px}
.main{max-width:1180px;margin:0 auto;padding:28px 22px 80px}
.foot{max-width:1180px;margin:0 auto;padding:0 22px 40px;color:var(--faint);font-size:12.5px}

/* ---------- controls ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;
  border-radius:11px;padding:11px 18px;font-size:14.5px;font-weight:600;cursor:pointer;
  transition:.15s;background:var(--ink-3);color:var(--text)}
.btn:hover{background:var(--ink-4)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn--primary{background:var(--brand-btn);color:#fff}
.btn--primary:hover:not(:disabled){background:var(--brand-btn-2)}
.btn--ghost{background:none;border-color:var(--line-2);color:var(--muted)}
.btn--ghost:hover{color:var(--text);border-color:var(--brand)}
.btn--sm{padding:7px 12px;font-size:13px;border-radius:9px}
.btn--lg{padding:14px 26px;font-size:16px;border-radius:12px}
.btn--danger{color:var(--bad);border-color:rgba(255,107,107,.35);background:none}

label{display:block;font-size:12.5px;color:var(--muted);font-weight:600;margin-bottom:6px}
input,select,textarea{width:100%;background:var(--ink-3);border:1px solid var(--line);
  border-radius:11px;padding:11px 13px;outline:none;transition:.15s}
input:focus,select:focus,textarea:focus{border-color:var(--brand);background:var(--ink-4)}
textarea{min-height:82px;resize:vertical}
.hint{font-size:12px;color:var(--faint);margin-top:5px}
.err{color:var(--bad);font-size:13.5px;min-height:20px;margin-top:8px}

.card{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r);padding:22px}
.card + .card{margin-top:16px}
.h{margin-bottom:22px}
.h h1{font-size:clamp(1.45rem,3vw,1.95rem);margin-bottom:6px}
.h p{color:var(--muted);font-size:14.5px}
.narrow{max-width:640px;margin:0 auto}

.badge{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;
  padding:4px 10px;border-radius:20px;background:var(--ink-4);color:var(--muted)}
.badge--ok{background:rgba(61,220,151,.15);color:var(--ok)}
.badge--warn{background:rgba(255,200,97,.15);color:var(--warn)}
.badge--bad{background:rgba(255,107,107,.15);color:var(--bad)}

/* ---------- gate ---------- */
.gate{min-height:60vh;display:grid;place-items:center}
.gate__box{width:min(390px,94vw);background:var(--ink-2);border:1px solid var(--line);
  border-radius:18px;padding:30px}

/* ---------- wizard ---------- */
.split{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:24px;align-items:start}
@media(max-width:980px){.split{grid-template-columns:1fr}}
.split > *{min-width:0}
.fields{display:grid;gap:15px}
.fields .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:520px){.fields .row2{grid-template-columns:1fr}}
.stepbar{display:flex;gap:6px;margin-bottom:18px}
.stepbar i{height:3px;flex:1;border-radius:3px;background:var(--ink-4)}
.stepbar i.is-on{background:var(--brand)}

/* ---------- the document ---------- */
.doc{background:var(--paper);color:var(--paper-ink);border-radius:var(--r);
  padding:38px 40px;box-shadow:0 10px 40px rgba(0,0,0,.35);line-height:1.7}
.doc__head{border-bottom:2px solid var(--paper-ink);padding-bottom:16px;margin-bottom:22px;
  display:flex;align-items:flex-start;gap:16px}
.doc__brand{font-weight:800;font-size:19px;letter-spacing:-.02em}
.doc__brand span{display:block;font-size:11.5px;font-weight:500;color:var(--paper-muted);
  letter-spacing:.06em;text-transform:uppercase;margin-top:2px}
.doc__ref{margin-left:auto;text-align:right;font-size:12px;color:var(--paper-muted)}
.doc__ref b{display:block;font-size:13.5px;color:var(--paper-ink);font-variant-numeric:tabular-nums}
.doc h1{font-size:1.5rem;margin-bottom:4px}
.doc__sub{color:var(--paper-muted);font-size:13.5px;margin-bottom:22px}
.doc__sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;
  background:var(--paper-line);border:1px solid var(--paper-line);border-radius:10px;
  overflow:hidden;margin-bottom:26px}
.doc__sum div{background:var(--paper);padding:11px 13px}
.doc__sum dt{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;
  color:var(--paper-muted);font-weight:700;margin:0}
.doc__sum dd{margin:3px 0 0;font-weight:600;font-size:13.5px}
.doc__cl{margin-bottom:20px}
.doc__cl h3{font-size:13px;text-transform:uppercase;letter-spacing:.07em;
  color:var(--paper-muted);margin-bottom:8px}
.doc__cl p{font-size:14px;margin-bottom:8px}
.doc__cl ul{margin:6px 0 0;padding-left:20px;font-size:14px}
.doc__cl li{margin-bottom:4px}
.doc strong{font-weight:700}

/* ---------- signatures ---------- */
.sigs{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:32px;
  border-top:1px solid var(--paper-line);padding-top:24px}
@media(max-width:640px){.sigs{grid-template-columns:1fr}}
.sig__l{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;
  color:var(--paper-muted);font-weight:700;margin-bottom:8px}
.sig__box{border-bottom:1.5px solid var(--paper-ink);height:78px;display:flex;
  align-items:flex-end;justify-content:center;padding-bottom:4px}
.sig__box img{max-height:72px;max-width:100%}
.sig__pending{color:#98a2b1;font-size:12.5px;font-style:italic;padding-bottom:10px}
.sig__meta{font-size:12px;color:var(--paper-muted);margin-top:7px}
.sig__meta b{color:var(--paper-ink);display:block;font-size:13.5px}

.pad{background:#fff;border:2px dashed #c9d0da;border-radius:12px;touch-action:none;
  width:100%;height:170px;display:block;cursor:crosshair}
.pad.is-drawn{border-style:solid;border-color:var(--brand)}
.padwrap{position:relative}
.padwrap__hint{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;
  color:#9aa3b0;font-size:13.5px}
.padwrap.is-drawn .padwrap__hint{display:none}

/* ---------- list ---------- */
.tablewrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);
  font-weight:700;padding:11px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:12px 14px;border-bottom:1px solid var(--line)}
tr:last-child td{border-bottom:0}
tbody tr:hover{background:var(--ink-3)}
.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.empty{padding:32px;text-align:center;color:var(--faint)}

.share{display:flex;gap:9px;align-items:center;background:var(--ink-3);border:1px solid var(--line);
  border-radius:11px;padding:10px 12px;margin-top:12px}
.share code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:13px;color:var(--brand-2)}

.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(14px);
  background:var(--ink-4);border:1px solid var(--line-2);padding:10px 18px;border-radius:12px;
  font-size:14px;z-index:60;opacity:0;transition:.2s;pointer-events:none}
.toast.is-on{opacity:1;transform:translateX(-50%)}

/* ---------- print ---------- */
@media print{
  .top,.foot,.toast,.noprint{display:none!important}
  body{background:#fff}
  .main{padding:0;max-width:none}
  .doc{box-shadow:none;border-radius:0;padding:0}
  .split{display:block}
}

/* ---------- required marker ---------- */
.req{color:var(--brand);font-weight:700}
.hint--on{color:var(--brand-2);background:var(--brand-soft);border-radius:8px;
  padding:7px 10px;margin-top:8px}

/* ---------- service checkboxes ---------- */
/* Cards rather than bare boxes: this is the most-used control on the page and it has to
   be tappable on a phone, so each option is a full-width hit target. */
.checks{display:grid;gap:8px}
.check{display:flex;align-items:center;gap:11px;background:var(--ink-3);
  border:1px solid var(--line);border-radius:11px;padding:11px 13px;cursor:pointer;
  transition:.15s;user-select:none}
.check:hover{border-color:var(--line-2);background:var(--ink-4)}
.check.is-on{border-color:var(--brand);background:var(--brand-soft)}
.check input{position:absolute;opacity:0;width:0;height:0}
.check__box{width:19px;height:19px;border-radius:6px;border:2px solid var(--line-2);
  flex:0 0 auto;display:grid;place-items:center;transition:.15s}
.check__box::after{content:"✓";font-size:12px;font-weight:800;color:#fff;opacity:0;transform:scale(.6);
  transition:.15s;line-height:1}
.check.is-on .check__box{background:var(--brand);border-color:var(--brand)}
.check.is-on .check__box::after{opacity:1;transform:scale(1)}
.check__l{flex:1;font-size:14px;font-weight:500;line-height:1.35;min-width:0}
.check.is-on .check__l{color:var(--text);font-weight:600}
.check__p{font-size:12.5px;font-weight:700;color:var(--faint);white-space:nowrap;
  font-variant-numeric:tabular-nums}
.check.is-on .check__p{color:var(--brand-2)}
.check input:focus-visible + .check__box{outline:2px solid var(--brand);outline-offset:2px}

/* ---------- select ---------- */
/* The native arrow renders differently on every platform and looked broken on Windows,
   so the control is restyled with our own chevron. */
.selectwrap{position:relative}
.selectwrap select{appearance:none;-webkit-appearance:none;-moz-appearance:none;
  padding-right:38px;cursor:pointer;background:var(--ink-3);font-weight:500}
.selectwrap select:hover{border-color:var(--line-2);background:var(--ink-4)}
.selectwrap__arrow{position:absolute;right:14px;top:50%;transform:translateY(-50%);
  pointer-events:none;color:var(--muted);font-size:13px}
.selectwrap select:focus + .selectwrap__arrow{color:var(--brand)}
/* the popup list itself — Windows renders it light unless told otherwise */
.selectwrap select option{background:var(--ink-2);color:var(--text);padding:10px}

/* ---------- signature: draw or upload ---------- */
.sigtabs{display:flex;gap:6px;background:var(--ink-3);border:1px solid var(--line);
  border-radius:11px;padding:4px;margin-bottom:12px}
.sigtab{flex:1;background:none;border:0;border-radius:8px;padding:8px 10px;cursor:pointer;
  font-size:13.5px;font-weight:600;color:var(--muted);transition:.15s}
.sigtab:hover{color:var(--text)}
.sigtab.is-on{background:var(--brand-btn);color:#fff}
.pad--drop{display:grid;place-items:center;align-content:center;gap:4px;text-align:center;
  padding:14px;cursor:pointer;border:2px dashed #c9d0da;background:#fff;height:170px}
.pad--drop:hover,.pad--drop.is-over{border-color:var(--brand);background:#fdfaf7}
.pad--drop .drop__t{font-weight:600;color:#33404f;font-size:13.5px}
.pad--drop .drop__s{color:#7c8798;font-size:12px}
.sigprev{max-height:130px;max-width:100%;object-fit:contain}
