:root{
  --ink:#12161F;
  --paper:#F3F4EF;
  --surface:#FFFFFF;
  --surface-2:#ECEEE7;
  --line:#DEE0D7;
  --muted:#6C6F66;
  --primary:#1C3A52;
  --primary-deep:#122636;
  --primary-ink:#F3F4EF;
  --accent:#E8502E;
  --accent-ink:#FFF7F3;
  --gold:#D9A752;
  --fw-blue:#2529F5;
  --fw-green:#00DD10;
  --shadow: 0 1px 2px rgba(18,22,31,.04), 0 20px 44px -20px rgba(18,22,31,.3);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ink:#EDEFEA; --paper:#0E1116; --surface:#171B22; --surface-2:#1D222B; --line:#2A2F3A; --muted:#9A9D93;
    --primary:#152C3F; --primary-deep:#0C1B27; --primary-ink:#F3F4EF; --accent:#FF7A52; --accent-ink:#241009; --gold:#D9A752;
    --shadow: 0 1px 2px rgba(0,0,0,.35), 0 24px 50px -24px rgba(0,0,0,.7);
  }
}
:root[data-theme="dark"]{
  --ink:#EDEFEA; --paper:#0E1116; --surface:#171B22; --surface-2:#1D222B; --line:#2A2F3A; --muted:#9A9D93;
  --primary:#152C3F; --primary-deep:#0C1B27; --primary-ink:#F3F4EF; --accent:#FF7A52; --accent-ink:#241009; --gold:#D9A752;
  --shadow: 0 1px 2px rgba(0,0,0,.35), 0 24px 50px -24px rgba(0,0,0,.7);
}
*{box-sizing:border-box;}
html,body{margin:0; min-height:100%;}
body.auth-body{
  background:var(--paper); color:var(--ink);
  font-family:"IBM Plex Sans", -apple-system, "Segoe UI", sans-serif;
  -webkit-font-smoothing:antialiased;
}
.auth-body img{max-width:100%; display:block;}
.auth-body a{color:inherit;}
.auth-body h1,.auth-body h2{font-family:"Fraunces", Georgia, serif; margin:0; text-wrap:balance;}
.num{font-family:"IBM Plex Mono", monospace; font-variant-numeric:tabular-nums;}

.auth-shell{display:grid; grid-template-columns:1fr 1fr; min-height:100vh;}
@media (max-width:920px){ .auth-shell{grid-template-columns:1fr;} }

.brand-panel{
  position:relative; overflow:hidden; color:var(--primary-ink);
  background:
    radial-gradient(circle at 15% 8%, color-mix(in srgb, var(--fw-blue) 40%, transparent), transparent 55%),
    radial-gradient(circle at 90% 85%, color-mix(in srgb, var(--fw-green) 28%, transparent), transparent 50%),
    linear-gradient(165deg, var(--primary) 0%, var(--primary-deep) 100%);
  padding:44px 48px; display:flex; flex-direction:column; justify-content:space-between;
  padding-top:calc(44px + env(safe-area-inset-top,0px));
}
@media (max-width:920px){ .brand-panel{padding:32px 24px; padding-top:calc(32px + env(safe-area-inset-top,0px));} }
.brand-panel::before{
  content:""; position:absolute; inset:0; opacity:.5; pointer-events:none;
  background-image: radial-gradient(color-mix(in srgb, var(--primary-ink) 10%, transparent) 1.4px, transparent 1.6px);
  background-size:26px 26px;
}
.bp-top, .bp-mid, .bp-bottom{position:relative; z-index:1;}

.brand{display:flex; align-items:center; gap:9px;}
.brand .fw-word{font-weight:700; font-size:1rem; letter-spacing:.01em;}

.bp-mid{margin-block:auto; padding-block:40px;}
.bp-mid h1{font-size:clamp(1.7rem, 3.4vw, 2.5rem); font-weight:600; line-height:1.14; max-width:15ch; margin-bottom:14px;}
.bp-mid p{font-size:.95rem; line-height:1.6; color:color-mix(in srgb, var(--primary-ink) 78%, transparent); max-width:34ch;}

.stat-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:color-mix(in srgb, var(--primary-ink) 14%, transparent); border:1px solid color-mix(in srgb, var(--primary-ink) 14%, transparent); border-radius:14px; overflow:hidden; margin-top:28px; max-width:420px;}
.stat-tile{background:color-mix(in srgb, var(--primary-deep) 55%, transparent); padding:16px 18px;}
.stat-tile .v{font-family:"Fraunces",serif; font-size:1.3rem; font-weight:600;}
.stat-tile .l{font-size:.72rem; color:color-mix(in srgb, var(--primary-ink) 65%, transparent); margin-top:2px;}

.bp-bottom{display:flex; align-items:center; gap:10px; font-size:.78rem; color:color-mix(in srgb, var(--primary-ink) 60%, transparent);}
.logo-chip{display:inline-flex; align-items:center; background:#fff; border-radius:8px; padding:5px 10px;}

.form-panel{display:flex; align-items:center; justify-content:center; padding:40px 28px; padding-top:calc(40px + env(safe-area-inset-top,0px));}
.form-card{width:100%; max-width:380px;}
.form-card .eyebrow{font-family:"IBM Plex Mono",monospace; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:10px;}
.form-card h2{font-size:1.7rem; font-weight:600; margin-bottom:8px;}
.form-card .sub{font-size:.92rem; color:var(--muted); margin-bottom:30px;}

.field{display:flex; flex-direction:column; gap:6px; margin-bottom:16px;}
.field .lbl-row{display:flex; align-items:center; justify-content:space-between;}
.field label{font-size:.8rem; font-weight:600; color:var(--ink);}
.field .fp{font-size:.78rem; color:var(--fw-blue); font-weight:600; text-decoration:none;}
.field input{
  font-family:inherit; font-size:.95rem; padding:12px 13px; border-radius:10px; border:1px solid var(--line);
  background:var(--surface); color:var(--ink); width:100%;
}
.field input:focus{outline:2px solid var(--fw-blue); outline-offset:1px;}

.btn-login{
  width:100%; font-family:inherit; font-weight:700; font-size:.95rem; border:none; border-radius:11px; padding:13px 18px; cursor:pointer;
  background:var(--accent); color:var(--accent-ink); margin-top:6px; transition:opacity .12s ease, transform .1s ease;
}
.btn-login:hover{opacity:.93;}
.btn-login:active{transform:translateY(1px);}
.btn-login:focus-visible{outline:2px solid var(--accent); outline-offset:2px;}

.divider{display:flex; align-items:center; gap:12px; margin:22px 0; color:var(--muted); font-size:.76rem;}
.divider::before, .divider::after{content:""; flex:1; height:1px; background:var(--line);}

.signup-line{text-align:center; font-size:.86rem; color:var(--muted);}
.signup-line a{color:var(--fw-blue); font-weight:600; text-decoration:none;}

.form-foot{margin-top:40px; display:flex; flex-direction:column; align-items:center; gap:10px;}
.powered-badge{display:inline-flex; align-items:center; gap:8px; padding:7px 13px 7px 11px; border:1px solid var(--line); border-radius:999px; background:var(--surface);}
.powered-badge .powered-label{font-size:.74rem; color:var(--muted);}
.powered-badge .fw-word2{font-family:"IBM Plex Sans",sans-serif; font-weight:700; font-size:.86rem; color:var(--fw-blue);}

.auth-alert{
  border-radius:10px; padding:12px 14px; margin-bottom:18px; font-size:.86rem; line-height:1.45;
  border:1px solid var(--line);
}
.auth-alert ul{margin:8px 0 0; padding-left:18px;}
.auth-alert-error{background:#FDECEA; color:#8A1F11; border-color:#F5C2B8;}
.auth-alert-ok{background:#E8F8EA; color:#14532D; border-color:#B7E4BE;}
.auth-alert-info{background:#EEF0FF; color:#1C1F8A; border-color:#C9CDFF;}
.captcha-wrap{margin:4px 0 16px;}
.captcha-wrap iframe,.captcha-wrap > div{max-width:100%;}
