/* ==========================================================================
   SMS·MAN DESIGN SYSTEM — shared tokens and base primitives
   Reused by the public landing pages and the main app shell.
   ========================================================================== */

:root{
  /* ---------- Color ---------- */
  --blue:        #1454e0;
  --blue-deep:   #0d3fc0;
  --blue-darker: #082b8f;
  --blue-pale:   #eef3ff;
  --blue-line:   #dfe6f8;
  --ink:         #101423;
  --gray:        #5d6b8c;
  --gray-light:  #9aa5c0;
  --white:       #ffffff;
  --bg:          #f5f7fc;
  --green:       #17b06b;
  --error-bg:    #fdecea;
  --error-text:  #c0392b;
  --success-bg:  #e7f9f0;

  /* ---------- Radius ---------- */
  --radius-sm:  6px;
  --radius:     12px;
  --radius-lg:  16px;
  --radius-xl:  20px;
  --radius-full: 999px;

  /* ---------- Spacing scale ---------- */
  --space-1:  4px;
  --space-2:  8px;
  --space-3:  12px;
  --space-4:  16px;
  --space-5:  20px;
  --space-6:  24px;
  --space-7:  32px;
  --space-8:  40px;
  --space-9:  56px;
  --space-10: 80px;

  /* ---------- Shadows ---------- */
  --shadow-sm: 0 3px 10px rgba(16,20,35,.08);
  --shadow-md: 0 8px 24px rgba(16,20,35,.05);
  --shadow-lg: 0 20px 46px rgba(16,20,35,.18);
  --shadow-modal: 0 30px 80px rgba(4,10,40,.4);
  --shadow-green: 0 12px 28px rgba(20,84,224,.2);

  /* ---------- Layout ---------- */
  --container: 1180px;
  --container-pad: 24px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{margin:0;padding:0;}

body{
  font-family:-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);
  background:var(--white);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

a{text-decoration:none;color:inherit;}
button{font-family:inherit;cursor:pointer;}
input,select,textarea{font-family:inherit;}

.wrap{max-width:var(--container);margin:0 auto;padding:0 var(--container-pad);}

.eyebrow{
  text-align:center;color:var(--blue);font-weight:700;font-size:12.5px;
  letter-spacing:1.4px;text-transform:uppercase;margin-bottom:8px;
}
.heading-lg{
  text-align:center;font-size:27px;margin:0 0 40px;color:var(--ink);
  font-weight:700;letter-spacing:-.4px;
}
.heading-xl{
  font-size:43px;margin:0 0 16px;font-weight:700;letter-spacing:-.8px;
}
.text-body{color:var(--gray);font-size:14.5px;}
.text-small{font-size:12.5px;color:var(--gray);}

.btn{
  padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;border:none;
  transition:background .15s ease,box-shadow .15s ease,transform .1s ease;
}
.btn:active{transform:scale(.97);}
.btn-primary{background:var(--blue);color:#fff;}
.btn-primary:hover{background:var(--blue-deep);}
.btn-ghost{background:transparent;color:var(--ink);border:1.5px solid var(--blue-line);}
.btn-ghost:hover{background:var(--bg);}

.card{
  background:#fff;border-radius:var(--radius);border:1px solid #eef0f8;
  box-shadow:var(--shadow-md);
}

.input{
  padding:12px 14px;border:1.5px solid var(--blue-line);border-radius:9px;
  font-size:14px;width:100%;color:var(--ink);
}
.input:focus{
  outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(20,84,224,.12);
}

.banner-error{background:var(--error-bg);color:var(--error-text);font-size:12.5px;padding:9px 11px;border-radius:8px;}
.banner-success{background:var(--success-bg);color:var(--green);font-size:12.5px;padding:9px 11px;border-radius:8px;}
