:root { --ink:#083f75; --forest:#0751a8; --gold:#ffdc55; --pink:#f600a8; --muted:#617386; }
* { box-sizing:border-box; }
body { min-height:100vh; display:grid; place-items:center; margin:0; padding:25px; color:var(--ink); background:linear-gradient(135deg,#0751a8,#16b8d2); font-family:"DM Sans",sans-serif; }
.login-card { width:min(440px,100%); padding:42px; border-radius:14px; background:#fffdf9; box-shadow:0 30px 80px rgba(2,29,32,.35); }
.brand { display:flex; align-items:center; margin-bottom:32px; color:var(--ink); text-decoration:none; }
.brand img { width:230px; height:115px; object-fit:contain; }
.eyebrow { margin:0 0 8px; color:var(--pink); font-size:.7rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
h1 { margin:0 0 12px; font:700 2.7rem "Playfair Display",serif; }
.intro { margin-bottom:28px; color:var(--muted); font-size:.9rem; line-height:1.6; }
form { display:grid; gap:17px; }
label { display:grid; gap:7px; font-size:.74rem; font-weight:700; }
input { width:100%; padding:13px; border:1px solid #dcd4c7; border-radius:5px; font:inherit; outline:none; }
input:focus { border-color:var(--pink); box-shadow:0 0 0 3px rgba(246,0,168,.1); }
button { padding:14px; border:0; border-radius:5px; color:#17393d; background:var(--gold); font:700 1rem inherit; cursor:pointer; }
button:disabled { opacity:.65; cursor:wait; }
.error { min-height:18px; margin:0; color:#b64231; font-size:.75rem; text-align:center; }
.back { display:block; margin-top:25px; color:var(--muted); font-size:.75rem; text-align:center; text-decoration:none; }
