/* корневой контейнер */
.auth-page{
  min-height: calc(100dvh - 120px); /* минус шапка/футер сайта */
  display: grid;
  place-items: center;
  background:
    radial-gradient(1200px 600px at 95% -10%, #eaf2ff 0%, transparent 60%),
    radial-gradient(900px 500px at -10% 100%, #f4f7ff 0%, transparent 60%),
    #f7f9fd;
}

/* сетка внутри */
.auth-shell{
  width: min(1040px, 92vw);
  display: grid;
  grid-template-rows: auto auto auto;
  gap: 18px;
}

/* бренд */
.auth-head .brand{ display:flex; align-items:center; gap:12px; }
.brand-mark{ width:40px; height:40px; }
.brand-text h1{ margin:0; font-weight:800; letter-spacing:.2px; font-size:1.15rem; }
.brand-text p{ margin:0; color:#64748b; font-size:.9rem; }

/* карточка */
.auth-card{
  margin-inline: auto;
  width: min(520px, 100%);
  background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
  border: 1px solid #e8eef6;
  border-radius: 18px;
  padding: 24px 22px;
  box-shadow: 0 24px 60px rgba(2,6,23,.08);
}

.auth-title{ margin: 4px 0 14px; font-weight:800; letter-spacing:.2px; }

/* поля */
.field{ display:grid; gap:8px; margin-bottom:14px; }
.field label{ font-weight:700; font-size:.92rem; }
.input{
  border:1px solid #e2e8f0; border-radius:12px;
  padding:12px 14px; outline: none; width:100%;
  background:#fff; transition: box-shadow .15s ease, border-color .15s ease;
}
.input:focus{ border-color:#2563eb; box-shadow: 0 0 0 4px rgba(37,99,235,.12); }
.is-invalid{ border-color:#ef4444; box-shadow: 0 0 0 4px rgba(239,68,68,.12); }
.field-error{ color:#b91c1c; font-size:.85rem; }

/* пароль + глаз */
.password-wrap{ position:relative; }
.toggle-pass{
  position:absolute; right:8px; top:50%; translate:0 -50%;
  border:0; background:#f5f7fb; width:36px; height:36px;
  display:grid; place-items:center; border-radius:10px; cursor:pointer;
}
.toggle-pass:hover{ background:#eef3ff; }
.toggle-pass .icon{ width:18px; height:18px; fill:#334155; }

/* напоминание + чекбокс */
.auth-row{ display:flex; align-items:center; justify-content:space-between; margin: 4px 0 14px; }
.check{ display:flex; gap:8px; align-items:center; font-size:.95rem; }
.link-muted{ color:#2563eb; text-decoration:none; }
.link-muted:hover{ text-decoration:underline; }

/* кнопка */
.btn-primary{
  appearance:none; border:0; cursor:pointer;
  background:#2563eb; color:#fff; font-weight:800;
  padding:12px 14px; border-radius:12px; width:auto;
  box-shadow:0 8px 20px rgba(37,99,235,.20);
  transition: transform .06s ease, box-shadow .12s ease, filter .12s ease;
}
.btn-primary:hover{ filter: brightness(1.05); box-shadow:0 12px 28px rgba(37,99,235,.25); }
.btn-primary:active{ transform: translateY(1px); }
.btn-block{ width:100%; }

/* алерт ошибок */
.auth-alert{
  background:#fff1f2; color:#991b1b;
  border:1px solid #fecdd3; border-radius:12px;
  padding:10px 12px; margin: 0 0 12px;
}

/* низ/копирайт */
.auth-foot{ text-align:center; color:#94a3b8; }

/* адаптив */
@media (max-width: 640px){
  .auth-card{ padding:20px 16px; border-radius:16px; }
}
/* ====== Переполировки для “премиум” вида ====== */

/* общий фон чуть живее */
.auth-page{
  background: radial-gradient(1200px 600px at 70% 10%, rgba(37,99,235,.06), transparent 60%),
              radial-gradient(900px 500px at 10% 80%, rgba(99,102,241,.06), transparent 60%),
              #f6f8fc;
  padding: 48px 18px;
}

/* обёртка держит ширину и центрирует */
.auth-shell{
  max-width: 560px;
  margin: 0 auto;
}

/* карточка — стеклянная, со слоем тени и чёткой границей */
.auth-card{
  background: rgba(255,255,255,.92);
  backdrop-filter: saturate(160%) blur(2px);
  border: 1px solid #edf2f7;
  border-radius: 18px;
  padding: 28px 28px 22px;
  box-shadow:
    0 10px 36px rgba(2,6,23,.08),
    0 1px 0 rgba(255,255,255,.6) inset;
}

/* бренд и подзаголовок */
.auth-brand{
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 14px;
}
.auth-logo{ width: 36px; height: 36px; object-fit: contain; }
.auth-brand-text{ display:flex; flex-direction:column; }
.auth-title{
  margin: 0; font-size: 1.45rem; line-height: 1.2; font-weight: 800; letter-spacing:.2px;
}
.auth-subtitle{
  margin: 2px 0 0;
  font-size: .92rem; color: #64748b;
}

/* поля — аккуратные, с плавным фокусом */
.field{ margin-bottom: 14px; }
.field label{ display:block; font-size:.9rem; font-weight:700; color:#0f172a; margin:0 0 6px; }
.input{
  width:100%; height:44px; border-radius:12px;
  border:1px solid #e5e7eb; background:#fff;
  padding: 10px
