:root{
  --ink:#15302B;
  --paper:#F2EFE2;
  --turquoise:#2F8F86;
  --turquoise-soft:#DCEAE7;
  --gold:#C99A3D;
  --text-dark:#1B2621;
  --text-mute:#5A6B62;
  --line:rgba(21,48,43,0.14);
}
*{box-sizing:border-box; margin:0; padding:0;}
body{
  font-family:'Vazirmatn', sans-serif;
  background:radial-gradient(120% 160% at 20% -10%, #1c433c 0%, var(--ink) 55%, #0F211D 100%);
  min-height:100vh;
  display:flex; align-items:center; justify-content:center;
  padding:24px;
  color:var(--text-dark);
}
.auth-card{
  background:var(--paper);
  border-radius:28px;
  padding:44px 40px;
  width:100%;
  max-width:420px;
  box-shadow:0 30px 70px rgba(0,0,0,0.35);
}
.auth-logo{
  display:flex; align-items:center; gap:10px;
  font-weight:800; font-size:22px; color:var(--ink);
  margin-bottom:8px;
}
.auth-sub{color:var(--text-mute); font-size:14px; margin-bottom:30px;}

.field{margin-bottom:18px;}
.field label{display:block; font-size:13.5px; font-weight:600; color:var(--ink); margin-bottom:8px;}
.field input{
  width:100%; padding:13px 16px; border-radius:12px;
  border:1.5px solid var(--line); font-family:inherit; font-size:14.5px;
  background:#fff; color:var(--text-dark);
  transition:border-color .2s ease;
}
.field input:focus{outline:none; border-color:var(--turquoise);}

.btn-submit{
  width:100%; padding:14px; border:none; border-radius:999px;
  background:var(--gold); color:#211404; font-weight:700; font-size:15px;
  cursor:pointer; margin-top:8px; transition:transform .2s ease, box-shadow .2s ease;
}
.btn-submit:hover{transform:translateY(-2px); box-shadow:0 10px 24px rgba(201,154,61,0.35);}

.auth-switch{text-align:center; margin-top:24px; font-size:13.5px; color:var(--text-mute);}
.auth-switch a{color:var(--turquoise); font-weight:700;}

.flash-list{margin-bottom:20px; display:flex; flex-direction:column; gap:8px;}
.flash{
  padding:11px 16px; border-radius:10px; font-size:13.5px; font-weight:500;
}
.flash-error{background:#FBE4E1; color:#8A2E22; border:1px solid #EFC0B9;}
.flash-success{background:var(--turquoise-soft); color:#155A52; border:1px solid #BEDCD7;}
.flash-info{background:#EFEAD8; color:#5A4A22; border:1px solid #E0D5B0;}

.back-home{
  display:inline-flex; align-items:center; gap:6px;
  color:var(--text-mute); font-size:13px; margin-bottom:24px;
}
.back-home:hover{color:var(--ink);}
