/* ============================================================
   Kai dashboards — authentication screens

   Rebuilt (approved 2026-08-04) on the ORIGINAL client dashboard's login
   language, replacing the prototype's dark navy split-screen:

     · pale-blue ground with the same three radial gradient stops
     · concentric decorative circles, hairline cobalt at low alpha
     · a single centred, elevated card
     · the real Kai wordmark asset (shared/wordmark.js)
     · Playfair headline with an italic cobalt accent word
     · cobalt pill button, softly rounded inputs, generous spacing

   The card is SOLID WHITE with a soft lift rather than the original's
   frosted glass (founder decision — glass reads as an AI-design tell).
   ============================================================ */

.auth{
  min-height:100dvh;
  display:none;
  align-items:center; justify-content:center;
  position:relative; overflow:hidden;
  background:var(--login-bg);
  padding:32px 20px;
}
.auth.active{ display:flex }

/* the original's three-stop wash */
.auth::before{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse 80% 60% at 20% 0%,   var(--login-g1) 0%, transparent 55%),
    radial-gradient(ellipse 60% 50% at 80% 100%, var(--login-g2) 0%, transparent 50%),
    radial-gradient(ellipse 100% 80% at 50% 50%, var(--login-g3) 0%, transparent 70%);
}
.auth-circle{
  position:absolute; border-radius:50%;
  border:1px solid rgba(37,99,235,.09);
  pointer-events:none;
}

.auth-topbar{
  position:absolute; top:30px; left:40px; right:40px; z-index:2;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.auth-topbar .brandline{ font-size:14.5px; font-weight:600; color:#1E3A5F; letter-spacing:-.01em }
.auth-topbar .portal{
  background:rgba(255,255,255,.82); border:1px solid rgba(37,99,235,.16);
  border-radius:var(--r-pill); padding:7px 16px;
  font-size:13px; font-weight:500; color:#1E3A5F;
}

.auth-card{
  position:relative; z-index:1;
  width:100%; max-width:432px;
  background:var(--surface);
  border:1px solid rgba(255,255,255,.9);
  border-radius:var(--r-login);
  padding:48px 44px;
  box-shadow:var(--shadow-lift);
  animation:authRise .5s ease both;
}
@keyframes authRise{ from{ opacity:0; transform:translateY(18px) } to{ opacity:1; transform:none } }
@media (prefers-reduced-motion: reduce){ .auth-card{ animation:none } }

.auth-mark{ display:flex; align-items:center; margin-bottom:30px }
.auth-mark .wordmark{ --wm-letter:30px }

.auth-card h1{
  font-family:var(--font-display); font-weight:700; font-size:40px;
  color:var(--ink); line-height:1.06; letter-spacing:-.025em; margin-bottom:12px;
}
.auth-card h1 em{ font-style:italic; color:var(--cobalt) }
.auth-card .sub{ color:var(--ink-2); font-size:16.5px; line-height:1.55; margin-bottom:30px }

.auth-card .field{ margin-bottom:20px }
.auth-card .btn{ width:100% }

.auth-forgot{ text-align:right; margin-top:9px }
.auth-forgot button{
  background:none; border:none; padding:0;
  font-size:14px; font-weight:600; color:var(--cobalt);
}
.auth-forgot button:hover{ color:var(--cobalt-hover); text-decoration:underline }

.auth-alt{ margin-top:20px; text-align:center; font-size:14.5px; color:var(--ink-2) }
.auth-alt button{
  background:none; border:none; padding:0;
  font-size:14.5px; font-weight:600; color:var(--cobalt);
}
.auth-alt button:hover{ color:var(--cobalt-hover); text-decoration:underline }

.auth-note{
  margin-top:18px; padding-top:18px; border-top:1px solid var(--line);
  text-align:center; font-size:13.5px; color:var(--ink-3); line-height:1.55;
}
.auth-card .hint{ font-size:13.5px; color:var(--ink-3); line-height:1.5; margin-top:4px }

@media (max-width:560px){
  .auth{ padding:24px 16px }
  .auth-topbar{ top:20px; left:20px; right:20px }
  .auth-topbar .brandline{ font-size:13.5px }
  .auth-topbar .portal{ font-size:12px; padding:6px 13px }
  .auth-card{ padding:36px 26px; border-radius:20px }
  .auth-card h1{ font-size:32px }
  .auth-card .sub{ font-size:15.5px; margin-bottom:26px }
}
