
:root {
  --blu: #1e40af; --blu-chiaro: #3b82f6; --blu-scuro: #1e3a8a;
  --verde: #059669; --testo: #1f2937; --testo2: #6b7280;
  --sfondo: #f8fafc; --bianco: #ffffff; --bordo: #e5e7eb;
  --radius: 10px; --ombra: 0 2px 12px rgba(0,0,0,.08);
}
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { font-family:'Inter',system-ui,sans-serif; background:var(--sfondo); color:var(--testo); line-height:1.6; }
a { color:var(--blu-chiaro); text-decoration:none; }
a:hover { text-decoration:underline; }

/* Nav */
nav { background:var(--blu-scuro); color:#fff; padding:.75rem 2rem; display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; z-index:100; box-shadow:0 2px 8px rgba(0,0,0,.2); }
.nav-logo { font-size:1.3rem; font-weight:800; color:#fff; letter-spacing:-.02em; }
.nav-logo span { color:#93c5fd; }
.nav-link { display:flex; gap:1.25rem; align-items:center; }
.nav-link a { color:#cbd5e1; font-size:.9rem; font-weight:500; }
.nav-link a:hover { color:#fff; text-decoration:none; }
.btn-nav { background:var(--blu-chiaro); color:#fff !important; padding:.35rem .9rem; border-radius:7px; font-weight:600 !important; }

/* Hero */
.hero { background:linear-gradient(135deg,var(--blu-scuro) 0%,var(--blu) 100%); color:#fff; padding:4rem 2rem; text-align:center; }
.hero h1 { font-size:clamp(2rem,5vw,3.2rem); font-weight:800; margin-bottom:1rem; }
.hero p { font-size:1.1rem; color:#bfdbfe; max-width:600px; margin:0 auto 2rem; }
.hero-tag { display:inline-block; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.3); padding:.3rem .9rem; border-radius:999px; font-size:.8rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; margin-bottom:1rem; }

/* Bottoni */
.btn { display:inline-flex; align-items:center; gap:.4rem; padding:.65rem 1.5rem; border-radius:var(--radius); font-weight:600; font-size:.95rem; cursor:pointer; border:none; transition:.2s; }
.btn-primary { background:var(--blu-chiaro); color:#fff; }
.btn-primary:hover { background:var(--blu); color:#fff; text-decoration:none; }
.btn-outline { background:transparent; color:var(--blu-chiaro); border:1.5px solid var(--blu-chiaro); }
.btn-outline:hover { background:var(--blu-chiaro); color:#fff; text-decoration:none; }
.btn-bianco { background:#fff; color:var(--blu-scuro); }
.btn-bianco:hover { background:#e0f2fe; color:var(--blu-scuro); text-decoration:none; }
.btn-sm { padding:.4rem .9rem; font-size:.85rem; }

/* Card */
.card { background:var(--bianco); border:1px solid var(--bordo); border-radius:14px; padding:1.75rem; box-shadow:var(--ombra); }
.card:hover { box-shadow:0 4px 20px rgba(0,0,0,.12); }

/* Sezioni */
section { padding:4rem 2rem; }
.sezione-inner { max-width:1100px; margin:0 auto; }
.sezione-tag { font-size:.78rem; font-weight:700; color:var(--blu-chiaro); text-transform:uppercase; letter-spacing:.15em; margin-bottom:.5rem; }
h2.titolo-sezione { font-size:clamp(1.6rem,3.5vw,2.4rem); font-weight:800; color:var(--testo); margin-bottom:.75rem; }
.sottotitolo { font-size:1rem; color:var(--testo2); max-width:580px; }

/* Griglia */
.griglia { display:grid; gap:1.5rem; }
.g2 { grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
.g3 { grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }

/* Feature card */
.fcard { background:var(--bianco); border:1px solid var(--bordo); border-radius:14px; padding:1.5rem; transition:.2s; }
.fcard:hover { border-color:var(--blu-chiaro); transform:translateY(-3px); box-shadow:var(--ombra); }
.fcard-icon { font-size:2rem; margin-bottom:.75rem; }
.fcard h3 { font-size:1rem; font-weight:700; margin-bottom:.4rem; }
.fcard p { font-size:.85rem; color:var(--testo2); }

/* Form */
.form-group { margin-bottom:1.1rem; }
.form-group label { display:block; font-size:.85rem; font-weight:600; color:var(--testo); margin-bottom:.35rem; }
.form-group input, .form-group textarea, .form-group select {
  width:100%; padding:.65rem .9rem; border:1.5px solid var(--bordo);
  border-radius:8px; font-size:.95rem; color:var(--testo);
  background:#fff; transition:.2s; font-family:inherit;
}
.form-group input:focus, .form-group textarea:focus { outline:none; border-color:var(--blu-chiaro); }
.errore { background:#fef2f2; border:1px solid #fca5a5; color:#dc2626; padding:.65rem 1rem; border-radius:8px; font-size:.85rem; margin-bottom:1rem; }
.form-card { background:#fff; border:1px solid var(--bordo); border-radius:16px; padding:2rem; max-width:440px; width:100%; box-shadow:var(--ombra); }

/* Auth page */
.auth-page { min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--sfondo); padding:1rem; }

/* Range slider */
input[type=range] { accent-color:var(--blu-chiaro); }

/* Tabella */
table { width:100%; border-collapse:collapse; }
th { text-align:left; padding:.6rem .9rem; font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; color:var(--testo2); border-bottom:2px solid var(--bordo); }
td { padding:.65rem .9rem; border-bottom:1px solid var(--bordo); font-size:.9rem; }
tr:hover td { background:#f8fafc; }

/* Footer */
footer { background:var(--blu-scuro); color:#94a3b8; padding:2rem; text-align:center; font-size:.85rem; }
footer a { color:#93c5fd; }
.avviso { background:#fffbeb; border:1px solid #fcd34d; color:#92400e; padding:.75rem 1rem; border-radius:8px; font-size:.85rem; }
