*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --maroon: #6B0E23; --maroon2: #8B1A2F;
  --gold: #C9922A;   --gold2: #E8A83A;
  --cream: #F4F6F9;  --white: #FFFFFF;
  --text: #1A1A2E;   --text2: #6B7280;
  --border: #E5E7EB; --font: 'DM Sans', sans-serif; --r: 10px;
}
html, body { height: 100%; font-family: var(--font); background: var(--cream); }
.page { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 40px 16px; }
.card {
  width: 100%; max-width: 400px; background: var(--white);
  border: 1px solid var(--border); border-radius: 16px;
  padding: 40px 36px 36px;
  box-shadow: 0 4px 32px rgba(0,0,0,.07);
}
.icon-wrap {
  width: 60px; height: 60px; border-radius: 16px; margin: 0 auto 20px;
  background: linear-gradient(135deg, var(--maroon), var(--gold));
  display: flex; align-items: center; justify-content: center;
  font-size: 24px; color: #fff; box-shadow: 0 8px 24px rgba(107,14,35,.3);
}
h1 { font-size: 22px; font-weight: 700; color: var(--text); text-align: center; margin-bottom: 8px; }
.sub { font-size: 14px; color: var(--text2); text-align: center; line-height: 1.6; margin-bottom: 28px; }

.alert { border-radius: 9px; padding: 11px 14px; font-size: 13px; display: flex; align-items: flex-start; gap: 9px; margin-bottom: 16px; line-height: 1.5; }
.alert i { margin-top: 1px; flex-shrink: 0; }
.alert-error   { background: #FFF0F2; border: 1px solid #FECDD3; color: #7A0E22; }
.alert-success { background: #F0FDF4; border: 1px solid #BBF7D0; color: #166534; }

.field { margin-bottom: 16px; }
.field label { display: block; font-size: 11px; font-weight: 600; letter-spacing: .7px; text-transform: uppercase; color: var(--text2); margin-bottom: 6px; }
.iw { position: relative; }
.iw .ico { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); font-size: 12px; color: #9CA3AF; pointer-events: none; }
.iw input {
  width: 100%; padding: 11px 14px 11px 37px;
  background: var(--white); border: 1.5px solid var(--border);
  border-radius: var(--r); font-family: var(--font); font-size: 14px; color: var(--text);
  outline: none; transition: border-color .2s, box-shadow .2s;
}
.iw input:focus { border-color: var(--maroon); box-shadow: 0 0 0 3px rgba(107,14,35,.07); }
.iw input::placeholder { color: #D1D5DB; }

.btn {
  width: 100%; padding: 13px;
  background: linear-gradient(135deg, var(--maroon), var(--maroon2));
  border: none; border-radius: var(--r); color: #fff;
  font-family: var(--font); font-size: 15px; font-weight: 600;
  cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px;
  box-shadow: 0 4px 14px rgba(107,14,35,.3);
  transition: transform .2s, box-shadow .2s; margin-top: 4px;
}
.btn:hover { transform: translateY(-1px); box-shadow: 0 7px 20px rgba(107,14,35,.38); }
.btn:active { transform: none; }

.back { text-align: center; margin-top: 20px; font-size: 13px; }
.back a { color: var(--text2); text-decoration: none; }
.back a:hover { color: var(--maroon); }
