.auth-page{
  min-height: calc(100vh - 72px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 40px 0;
}

.auth-card{
  width: min(980px, calc(100% - 40px));
  background: #fff;
  border-radius: 22px;
  box-shadow: var(--shadow);
  overflow:hidden;
  display:grid;
  grid-template-columns: 1fr 1fr;
}

.auth-left{
  background: linear-gradient(145deg, var(--navy), var(--navy-2));
  color: #fff;
  padding: 28px;
}
.auth-left h1{ margin: 18px 0 8px; font-size: 40px; line-height: 1.05; }
.auth-left .muted{ opacity: .86; font-weight: 700; }

.brand-mini{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight: 900;
}
.brand-mini .brand-badge{ border-radius: 12px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.15); }

.rules{
  margin-top: 18px;
  padding: 14px;
  border-radius: 16px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
}
.rules h3{ margin:0 0 10px; font-size: 15px; letter-spacing: .2px; }
.rules ul{ margin:0; padding-left: 18px; }
.rules li{ margin: 8px 0; opacity: .95; font-weight: 700; }

.auth-right{
  padding: 28px;
}

.auth-form{
  display:flex;
  flex-direction:column;
  gap: 14px;
}

.auth-form label span{
  display:block;
  font-weight: 900;
  margin-bottom: 8px;
  color: rgba(7,26,45,.8);
}

.auth-form input{
  width:100%;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(7,26,45,.14);
  outline: none;
  font-weight: 800;
}
.auth-form input:focus{ border-color: rgba(212,175,55,.9); box-shadow: 0 0 0 3px rgba(212,175,55,.18); }

.grid-2{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.radio-group strong{ display:block; margin-bottom: 8px; }
.radio-group ul{ list-style:none; padding:0; margin:0; display:flex; gap: 12px; }
.radio-group li{ display:flex; align-items:center; gap:8px; font-weight: 900; }

.w100{ width:100%; }

.center{ text-align:center; }
.link{ color: var(--navy); font-weight: 900; text-decoration: underline; text-underline-offset: 3px; }

.messages{ margin-bottom: 12px; }
.msg{
  padding: 10px 12px;
  border-radius: 12px;
  font-weight: 800;
  margin-bottom: 10px;
  border: 1px solid rgba(7,26,45,.12);
}
.msg.error{ background: rgba(220,38,38,.08); border-color: rgba(220,38,38,.2); }
.msg.success{ background: rgba(34,197,94,.08); border-color: rgba(34,197,94,.2); }
.msg.info{ background: rgba(59,130,246,.08); border-color: rgba(59,130,246,.2); }

.err{ color: #b91c1c; font-weight: 900; }

.back-fab{
  position: fixed;
  top: 18px;
  left: 18px;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  background: var(--gold);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size: 20px;
  font-weight: 1000;
  color: #1b1404;
  box-shadow: 0 18px 35px rgba(0,0,0,.18);
  border: 1px solid rgba(0,0,0,.06);
}
.back-fab:hover{ filter: brightness(.98); }

@media (max-width: 920px){
  .auth-card{ grid-template-columns: 1fr; }
  .auth-left{ border-radius: 0; }
}

@media (max-width: 520px){
  .grid-2{ grid-template-columns: 1fr; }
}
