:root {
  --blue: #006CA9; --purple: #2D1676; --grad: linear-gradient(135deg, #006CA9, #2D1676);
  --white: #fff; --off: #F8F9FB; --border: #E5E7EB; --dark: #111827; --mid: #4B5563; --light: #9CA3AF;
  --heading: 'Bricolage Grotesque', sans-serif; --body: 'Inter', sans-serif; --ease: cubic-bezier(.4,0,.2,1);
  --s3: 0 12px 32px rgba(0,0,0,.12);
  --danger: #d93025; --success: #1e8e3e;
}
*,*::before,*::after { box-sizing: border-box; margin:0; padding:0; }
html { scroll-behavior: smooth; }
body { font-family: var(--body); background: var(--off); color: var(--dark); line-height:1.6; }
a { text-decoration:none; color:inherit; }
img { max-width:100%; display:block; }
.container { max-width:1200px; margin:0 auto; padding:0 clamp(20px,5vw,40px); }

/* Header (mirrors main site) */
.hdr { position:fixed; top:0; left:0; right:0; z-index:1000; background:rgba(255,255,255,0.95); backdrop-filter:blur(12px); border-bottom:1px solid var(--border); }
.hdr-inner { display:flex; align-items:center; justify-content:space-between; padding:16px clamp(20px,5vw,40px); max-width:1200px; margin:0 auto; }
.logo { display:flex; align-items:center; gap:12px; }
.logo-img { width:40px; height:40px; }
.logo-name { font-weight:700; font-size:1rem; font-family:var(--heading); }
.logo-sub { font-size:.7rem; color:var(--light); }
.nav { display:flex; gap:8px; align-items:center; }
.nav a { font-size:.875rem; font-weight:500; color:var(--mid); padding:8px 16px; border-radius:6px; transition:all .2s; }
.nav a:hover { color:var(--blue); background:rgba(0,108,169,0.06); }

/* Auth card layout */
.auth-wrap { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:140px 20px 60px; }
.auth-card { background:#fff; border:1px solid var(--border); border-radius:20px; padding:40px; max-width:440px; width:100%; box-shadow:var(--s3); }
.auth-card h1 { font-family:var(--heading); font-size:1.5rem; font-weight:700; margin-bottom:8px; }
.auth-card .sub { color:var(--mid); font-size:.9rem; margin-bottom:28px; }

/* Forms (mirrors main site .form-group) */
.form-group { margin-bottom:18px; }
.form-group label { display:block; font-weight:600; margin-bottom:6px; font-size:.875rem; }
.form-group input { width:100%; padding:12px 16px; border:1px solid var(--border); border-radius:8px; font-family:var(--body); font-size:1rem; transition:border .2s; }
.form-group input:focus { outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(0,108,169,0.1); }
.form-hint { font-size:.78rem; color:var(--light); margin-top:4px; }

.btn-submit { width:100%; background:var(--blue); color:#fff; border:none; padding:14px 24px; border-radius:10px; font-weight:600; font-size:1rem; cursor:pointer; transition:all .3s; }
.btn-submit:hover { background:#005a8f; transform:translateY(-2px); }
.btn-submit:disabled { opacity:.6; cursor:not-allowed; transform:none; }

.auth-links { text-align:center; margin-top:20px; font-size:.875rem; color:var(--mid); }
.auth-links a { color:var(--blue); font-weight:600; }
.auth-links a:hover { text-decoration:underline; }

.alert { padding:12px 16px; border-radius:10px; font-size:.875rem; font-weight:500; margin-bottom:20px; }
.alert-error { background:rgba(217,48,37,0.08); color:var(--danger); border:1px solid rgba(217,48,37,0.2); }
.alert-success { background:rgba(30,142,62,0.08); color:var(--success); border:1px solid rgba(30,142,62,0.2); }

@media (max-width:768px) {
  .nav { display:none; }
  .auth-card { padding:28px; }
}
