/* ==========================================================================
   CLIENT AGREEMENT / e-SIGN / KYC  —  page-specific styles
   Depends on the design tokens declared in :root inside assets/css/style.css.
   ========================================================================== */

/* --------------------------------------------------------------- layout */
.agr-layout{
  display:grid;
  grid-template-columns:264px minmax(0,1fr);
  gap:40px;
  align-items:start;
}

/* --------------------------------------------------- sticky contents nav */
.agr-toc{
  position:sticky;
  top:96px;
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  background:#fff;
  box-shadow:var(--shadow-sm);
  overflow:hidden;
}
.agr-toc-head{
  padding:13px 16px;
  background:var(--primary);
  color:#fff;
  font-family:var(--font-ui);
  font-size:.74rem;
  font-weight:600;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.agr-toc-list{
  list-style:none;
  margin:0;
  padding:8px 0;
  max-height:min(58vh,560px);
  overflow-y:auto;
  overscroll-behavior:contain;
}
.agr-toc-list li{margin:0}
.agr-toc-list a{
  display:block;
  padding:7px 16px 7px 15px;
  border-left:3px solid transparent;
  font-family:var(--font-ui);
  font-size:.795rem;
  line-height:1.4;
  color:var(--text-muted);
  transition:background .15s,color .15s,border-color .15s;
}
.agr-toc-list a:hover{background:var(--primary-light);color:var(--primary);border-left-color:var(--border)}
.agr-toc-list a.is-current{
  background:var(--primary-light);
  color:var(--primary);
  border-left-color:var(--cta);
  font-weight:600;
}
.agr-toc-foot{padding:12px 16px;border-top:1px solid var(--border-soft)}
.agr-toc-foot .btn{width:100%;justify-content:center}

/* keeps an anchored clause clear of the sticky site header */
.legal-doc [id]{scroll-margin-top:110px}
#sign{scroll-margin-top:100px}

.agr-doc-head{
  display:flex;flex-wrap:wrap;gap:10px 18px;align-items:baseline;justify-content:space-between;
  padding-bottom:14px;margin-bottom:22px;border-bottom:2px solid var(--border);
}
.agr-doc-head h2{margin:0;font-size:1.35rem}
.agr-ver{
  font-family:var(--font-ui);font-size:.72rem;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--text-muted);
}
.agr-body.legal-doc{max-width:none;margin:0}

/* ---------------------------------------------------------- signing card */
.agr-form-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--r-xl);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.agr-form-head{
  padding:26px 30px 22px;
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);
  color:#fff;
}
.agr-form-head h2{color:#fff;margin:0 0 6px;font-size:1.5rem}
.agr-form-head p{margin:0;font-size:.9rem;color:rgba(255,255,255,.82);max-width:62ch}
.agr-form-body{padding:28px 30px 32px}

.agr-step{border-top:1px solid var(--border-soft);padding-top:22px;margin-top:24px}
.agr-step:first-of-type{border-top:0;padding-top:0;margin-top:0}
.agr-step-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px}
.agr-step-n{
  flex:none;width:28px;height:28px;border-radius:50%;
  background:var(--primary);color:#fff;
  display:grid;place-items:center;
  font-family:var(--font-ui);font-size:.8rem;font-weight:600;
}
.agr-step-head h3{margin:0 0 2px;font-size:1.06rem;font-family:var(--font-ui);font-weight:600}
.agr-step-head p{margin:0;font-size:.8rem;color:var(--text-muted);line-height:1.5}

.agr-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}

/* ------------------------------------------------------------- OTP block */
.agr-otp{
  margin-top:6px;padding:14px 16px;
  background:var(--primary-light);
  border:1px solid #BBD6E6;border-radius:var(--r-md);
}
.agr-otp-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.agr-otp-row .field{margin-bottom:0;flex:1 1 150px;min-width:140px}
.agr-otp input[name=otp]{letter-spacing:.42em;font-weight:600;text-align:center;font-size:1.02rem}
.agr-otp .btn{flex:none}
.agr-otp-msg{margin-top:10px;font-size:.78rem;line-height:1.5;min-height:1px}
.agr-otp-msg.ok{color:var(--success)}
.agr-otp-msg.err{color:var(--danger)}
.agr-otp-msg.info{color:var(--primary)}
.agr-otp.is-verified{background:var(--success-soft);border-color:#86EFAC}
.agr-verified-tag{
  display:none;align-items:center;gap:6px;
  font-family:var(--font-ui);font-size:.76rem;font-weight:600;color:#166534;
}
.agr-otp.is-verified .agr-verified-tag{display:inline-flex}
.agr-otp.is-verified .agr-otp-row{display:none}

/* ---------------------------------------------------------- KYC uploads */
.agr-drop{
  position:relative;display:block;
  border:1.5px dashed var(--border);border-radius:var(--r-md);
  background:#FBFDFE;padding:16px 14px;text-align:center;cursor:pointer;
  transition:border-color .16s,background .16s;
}
.agr-drop:hover{border-color:var(--primary);background:var(--primary-light)}
.agr-drop input[type=file]{
  position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;
}
.agr-drop-ic{color:var(--primary);opacity:.65;margin:0 auto 6px;width:22px;height:22px}
.agr-drop-ic svg{width:22px;height:22px}
.agr-drop-label{
  display:block;font-family:var(--font-ui);font-size:.82rem;font-weight:600;color:var(--primary);
}
.agr-drop-hint{display:block;font-size:.72rem;color:var(--text-muted);margin-top:3px}
.agr-drop.has-file{border-style:solid;border-color:var(--success);background:#F3FBF6}
.agr-drop.has-error{border-color:var(--danger);background:#FEF5F5}
.agr-file-name{
  display:none;margin-top:9px;font-size:.75rem;color:var(--text);
  word-break:break-all;line-height:1.4;
}
.agr-drop.has-file .agr-file-name,.agr-drop.has-error .agr-file-name{display:block}
.agr-thumb{
  display:none;margin:9px auto 0;max-height:86px;width:auto;
  border-radius:var(--r-sm);border:1px solid var(--border);
}
.agr-drop.has-file .agr-thumb.ready{display:block}

.agr-secure{
  display:flex;gap:10px;align-items:flex-start;margin-top:14px;
  padding:12px 14px;border-radius:var(--r-md);
  background:var(--section-alt);border:1px solid #BBD6E6;
  font-size:.775rem;line-height:1.55;color:var(--primary-dark);
}
.agr-secure svg{flex:none;width:17px;height:17px;margin-top:2px;color:var(--primary)}

/* ------------------------------------------------------ signature canvas */
.agr-sign-wrap{
  border:1.5px solid var(--border);border-radius:var(--r-md);
  background:#fff;overflow:hidden;
}
.agr-sign-strip{
  display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
  padding:8px 12px;background:var(--section-alt);border-bottom:1px solid var(--border);
}
.agr-sign-strip span{
  font-family:var(--font-ui);font-size:.72rem;font-weight:600;
  letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);
}
.agr-sign-tools{display:flex;gap:8px}
.agr-sign-pad{
  position:relative;
  background:
    linear-gradient(#fff,#fff) padding-box,
    repeating-linear-gradient(45deg,#FAFCFD 0 10px,#fff 10px 20px);
}
#sigCanvas{
  display:block;width:100%;height:190px;
  touch-action:none;cursor:crosshair;background:transparent;
}
.agr-sign-base{
  position:absolute;left:26px;right:26px;bottom:44px;
  border-bottom:1.5px dashed var(--border);pointer-events:none;
}
.agr-sign-hint{
  position:absolute;left:0;right:0;bottom:20px;text-align:center;pointer-events:none;
  font-size:.78rem;color:var(--text-muted);transition:opacity .2s;
}
.agr-sign-wrap.has-ink .agr-sign-hint,.agr-sign-wrap.has-ink .agr-sign-base{opacity:0}
.agr-sign-wrap.has-error{border-color:var(--danger)}

/* --------------------------------------------------------- consent block */
.agr-consent{
  margin-top:6px;padding:16px 18px;
  background:var(--cta-soft);border:1px solid #FCD34D;border-radius:var(--r-md);
}
.agr-consent .check{font-size:.83rem;color:#78350F;align-items:flex-start}
.agr-consent .check input{margin-top:4px;accent-color:var(--cta-hover)}
.agr-consent .check strong{color:#78350F}

.agr-submit-row{
  display:flex;flex-wrap:wrap;gap:14px;align-items:center;
  margin-top:24px;padding-top:22px;border-top:1px solid var(--border-soft);
}
.agr-submit-row .btn{min-width:250px}
.agr-submit-note{font-size:.75rem;color:var(--text-muted);line-height:1.5;flex:1 1 220px;margin:0}

.agr-mini-list{list-style:none;padding:0;margin:0;display:grid;gap:9px}
.agr-mini-list li{display:flex;gap:9px;align-items:flex-start;font-size:.84rem;line-height:1.55}
.agr-mini-list svg{flex:none;width:16px;height:16px;margin-top:3px;color:var(--success)}

/* ------------------------------------------------------------ responsive */
@media (max-width:1024px){
  .agr-layout{grid-template-columns:1fr;gap:26px}
  .agr-toc{position:static;max-height:none}
  .agr-toc-list{max-height:300px}
}
@media (max-width:720px){
  .agr-grid-3{grid-template-columns:1fr}
  .agr-form-head{padding:22px 18px 18px}
  .agr-form-body{padding:22px 18px 26px}
  .agr-submit-row .btn{min-width:0;width:100%}
  #sigCanvas{height:170px}
}

@media print{
  .agr-toc,.agr-form-card{display:none}
  .agr-layout{display:block}
}
