/* Original code by Elena Zarino, elenazarino.it © 2026 */
:root{
  --clr-heading:#0E337B;
  --clr-text:#525252;
  --clr-text-muted:#6f6c66;
  --clr-surface:#ffffff;
  --clr-success:#437a22;
  --clr-success-soft:#dbe6d3;
  --clr-error:#991b1b;
  --clr-error-soft:#fef2f2;
  --ff-heading:'Bricolage Grotesque',sans-serif;
  --ff-body:'Inter',sans-serif;
  --radius-lg:.75rem;
  --radius-xl:1rem;
  --radius-full:9999px;
  --shadow-md:0 4px 20px rgba(14,51,123,.1);
  --text-xs:.75rem;
  --text-sm:.875rem;
  --text-base:1rem;
  --text-lg:1.25rem;
  --text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
  --space-2:.5rem;
  --space-3:.75rem;
  --space-4:1rem;
  --space-5:1.25rem;
  --space-6:1.5rem;
  --space-8:2rem;
}
*{box-sizing:border-box;margin:0;padding:0}
body{min-height:100dvh;font-family:var(--ff-body);font-size:var(--text-base);line-height:1.6;background:var(--clr-bg);color:var(--clr-text);display:grid;place-items:center;padding:var(--space-6)}
button,a{font:inherit;color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--ff-heading);line-height:1.05;color:var(--clr-heading)}

.auth-card{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:var(--space-8);width:100%;max-width:420px}
.brand{display:flex;gap:var(--space-3);align-items:center;margin-bottom:var(--space-8)}
.brand-mark{width:40px;height:40px;border-radius:12px;background:var(--clr-primary-soft);color:var(--clr-primary);display:grid;place-items:center;font-family:var(--ff-heading);font-weight:700;font-size:1.1rem}
.brand-copy strong{display:block;font-family:var(--ff-heading);font-size:var(--text-lg);line-height:1.05;color:var(--clr-heading)}
.brand-copy span{color:var(--clr-text-muted);font-size:var(--text-xs)}

h2{font-family:var(--ff-heading);font-size:var(--text-xl);line-height:1.05;margin-bottom:var(--space-2);color:var(--clr-heading)}
.subtitle{color:var(--clr-text-muted);font-size:var(--text-sm);margin-bottom:var(--space-6)}

.field{display:grid;gap:var(--space-2);margin-bottom:var(--space-4)}
label{font-size:var(--text-sm);font-weight:500;color:var(--clr-heading)}
input[type=text],input[type=email],input[type=password]{width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--clr-border);background:var(--clr-bg);font:inherit;font-size:var(--text-sm);color:var(--clr-text);transition:border-color .15s}
input:focus{outline:none;border-color:var(--clr-primary)}

.checkbox-row{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--clr-text-muted);margin-bottom:var(--space-5)}
.btn-primary{width:100%;min-height:46px;padding:0 var(--space-5);border-radius:var(--radius-full);border:0;cursor:pointer;background:var(--clr-primary);color:#fff;font:inherit;font-weight:700;font-size:var(--text-sm);transition:background .15s;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(var(--clr-primary-rgb),.3)}
.btn-primary:hover{background:var(--clr-primary-hover)}

.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-sm);margin-bottom:var(--space-5)}
.alert-error{background:var(--clr-error-soft);color:var(--clr-error);border:1px solid rgba(153,27,27,.15)}
.alert-success{background:var(--clr-success-soft);color:var(--clr-success);border:1px solid rgba(67,122,34,.15)}

.footer-link{text-align:center;margin-top:var(--space-5);font-size:var(--text-sm);color:var(--clr-text-muted)}
.footer-link a{color:var(--clr-primary);font-weight:600}
