/* Acceso: la primera impresión mantiene el flujo simple y enfocado. */
.auth-page {
  min-height: 100vh;
  min-height: 100dvh;
  background: var(--ui-bg);
  color: var(--ui-ink);
}
.auth-page .auth-shell {
  min-height: 100vh;
  min-height: 100dvh;
  grid-template-columns: minmax(0,1.04fr) minmax(440px,.96fr);
  background: var(--ui-bg);
}
.auth-page .auth-visual {
  padding: clamp(30px,5vw,68px);
  background:
    radial-gradient(ellipse at 78% 12%,rgba(137,162,255,.38),transparent 35%),
    radial-gradient(ellipse at 12% 88%,rgba(106,218,194,.2),transparent 38%),
    linear-gradient(145deg,#101d3b 0%,#1f3672 55%,#355fae 100%);
}
.auth-page .auth-visual::before {
  background-image:
    radial-gradient(circle at 20% 20%,rgba(255,255,255,.1),transparent 43%),
    radial-gradient(circle at 85% 75%,rgba(255,255,255,.08),transparent 48%);
}
.auth-page .auth-visual-mid { max-width: 470px; }
.auth-page .auth-visual-mid h2 { font-size: clamp(27px,3.2vw,42px); line-height: 1.22; letter-spacing: -.025em; }
.auth-page .auth-visual-bottom { display: flex; align-items: center; gap: 15px; }
.auth-page .auth-stack { margin: 0; }
.auth-page .auth-stack .mini-avatar { border-color: rgba(255,255,255,.68); }
.auth-page .auth-visual-bottom p { max-width: 260px; color: rgba(255,255,255,.77); font-size: 11px; line-height: 1.5; }
.auth-page .auth-main { min-width: 0; padding: clamp(22px,4vw,56px); background: transparent; }
.auth-page .auth-box {
  max-width: 440px;
  padding: clamp(26px,4vw,42px);
  border: 1px solid rgba(224,230,242,.92);
  border-radius: 26px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 24px 64px rgba(31,52,101,.09);
}
.auth-page .auth-box h1 { color: #1b2947; font: 760 clamp(27px,3vw,34px)/1.12 system-ui,sans-serif; letter-spacing: -.04em; }
.auth-page .auth-box > p.subtitle { margin-bottom: 25px; color: #74819a; font-size: 13px; line-height: 1.6; }
.auth-page .auth-box .eyebrow { color: #5575ce; }
.auth-page .field { margin-bottom: 16px; }
.auth-page .field label { color: #34415e; font-size: 12px; }
.auth-page .field-control input { min-height: 46px; border: 1px solid #e2e8f2; border-radius: 12px; background: #fbfcff; font-size: 13px; }
.auth-page .field-control input:focus { border-color: #83a0ed; box-shadow: 0 0 0 4px rgba(76,111,205,.11); }
.auth-page .row-between { gap: 12px; align-items: center; flex-wrap: wrap; }
.auth-page .row-between .link-inline { font-size: 11px; }
.auth-page .check { color: #71809b; font-size: 11px; }
.auth-page .auth-box .btn { min-height: 45px; border-radius: 13px; }
.auth-page .auth-box .btn-primary { box-shadow: 0 10px 22px rgba(52,105,232,.19); }
.auth-page .auth-box .btn-ghost { border-color: #e5eaf3; background: #fff; }
.auth-page .divider { margin: 21px 0; color: #95a0b3; font-size: 10px; }
.auth-page .auth-switch { margin-top: 21px; color: #7b879d; font-size: 12px; }
.auth-page .auth-switch a { color: #315fcd; }
.auth-page .photo-picker-note { border: 1px solid #e2eaff; border-radius: 12px; background: #f2f5ff; color: #496293; font-size: 12px; line-height: 1.5; }
.auth-page .auth-main-compact { width: min(100% - 32px,540px); min-height: 100vh; min-height: 100dvh; margin: 0 auto; padding: 28px 0; }
.auth-page-compact .auth-box { width: 100%; max-width: none; }
.auth-page-compact .auth-box form { display: grid; gap: 13px; }
.auth-page-compact .auth-box form > input:not([type="hidden"]) { width: 100%; min-height: 46px; box-sizing: border-box; padding: 11px 13px; border: 1px solid #e2e8f2; border-radius: 12px; background: #fbfcff; font: inherit; }
.auth-page-compact .auth-box form > label { color: #34415e; font-size: 12px; font-weight: 700; }
@media (max-width: 880px) {
  .auth-page .auth-shell { grid-template-columns: minmax(0,1fr); }
  .auth-page .auth-visual { display: flex; min-height: 240px; padding: 26px 30px; }
  .auth-page .auth-visual-mid { max-width: 620px; margin: 34px 0 24px; }
  .auth-page .auth-visual-mid h2 { max-width: 590px; font-size: clamp(24px,5vw,34px); }
  .auth-page .auth-main { padding: 26px 20px 42px; }
  .auth-page .auth-box { max-width: 560px; margin: 0 auto; }
}
@media (max-width: 560px) {
  .auth-page .auth-visual { min-height: 205px; padding: 19px 20px; }
  .auth-page .auth-visual-mid { margin: 23px 0 20px; }
  .auth-page .auth-visual-mid h2 { font-size: 23px; }
  .auth-page .auth-visual-bottom { gap: 9px; }
  .auth-page .auth-stack .mini-avatar { width: 33px; height: 33px; }
  .auth-page .auth-visual-bottom p { font-size: 9px; }
  .auth-page .auth-main { padding: 17px 12px 28px; }
  .auth-page .auth-box { padding: 23px 18px; border-radius: 20px; }
  .auth-page .auth-main-compact { width: calc(100% - 24px); }
}
@media (prefers-reduced-motion: reduce) {
  .auth-page *, .auth-page *::before, .auth-page *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
