/* Pagina pubblica "coming soon", login e indice del mockup. Palette Salvia & Avorio. */
:root { --bg:#FBFAF5; --surface:#FFFFFF; --ink:#33463B; --muted:#6E7A6C; --accent:#7A9882; --accent2:#B08D57; --line:#E7EBE0; }
* { margin:0; padding:0; box-sizing:border-box; }
html, body { min-height:100%; background:var(--bg); color:var(--ink); font-family:'Jost', sans-serif; -webkit-font-smoothing:antialiased; }
a { color:var(--accent); }
.over { font-size:13px; letter-spacing:.42em; text-transform:uppercase; color:var(--accent); }
.amp { font-family:'Playfair Display', serif; font-style:italic; color:var(--accent); }

/* coming soon */
body.coming { display:flex; align-items:center; justify-content:center; min-height:100vh;
  background:radial-gradient(120% 80% at 50% 8%, var(--surface) 0%, var(--bg) 66%); }
.coming-wrap { text-align:center; padding:40px 16px; }
.coming-wrap .nomi { width:min(720px, 92vw); height:auto; margin:18px 0 6px; }
.divider { display:flex; align-items:center; justify-content:center; gap:20px; margin:10px 0 26px; }
.divider .l { width:100px; height:1px; background:var(--line); } .divider .d { color:var(--accent2); font-size:18px; }
.coming-wrap .date { font-family:'Cormorant Garamond', serif; font-weight:500; font-size:clamp(22px, 4vw, 32px); letter-spacing:.28em; text-transform:uppercase; color:var(--muted); }
.coming-wrap .place { margin-top:14px; font-size:14px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.coming-wrap .soon { margin-top:60px; font-size:12px; letter-spacing:.3em; text-transform:uppercase; color:var(--accent); }

/* login */
body.login { display:flex; align-items:center; justify-content:center; min-height:100vh; padding:16px; }
.card { width:min(380px, 100%); background:var(--surface); border:1px solid var(--line); padding:36px 32px; }
.card h1 { font-family:'Cormorant Garamond', serif; font-weight:500; font-size:34px; margin:8px 0 22px; }
.card label { display:block; font-size:13px; letter-spacing:.08em; color:var(--muted); margin-bottom:14px; }
.card input { display:block; width:100%; margin-top:6px; padding:10px 12px; font:16px 'Jost', sans-serif; border:1px solid var(--line); background:var(--bg); color:var(--ink); }
.card button { width:100%; margin-top:8px; padding:13px; background:var(--accent); color:#fff; border:0; font:13px 'Jost', sans-serif; letter-spacing:.22em; text-transform:uppercase; cursor:pointer; }
.card .err { color:#a04a3a; font-size:14px; margin-bottom:12px; }

/* indice mockup */
body.indice { padding:40px 16px; }
.indice-wrap { max-width:1200px; margin:0 auto; }
.indice-wrap h1 { font-family:'Cormorant Garamond', serif; font-weight:500; font-size:40px; margin:8px 0 10px; }
.indice-wrap .sub { color:var(--muted); font-size:15px; max-width:760px; line-height:1.5; margin-bottom:28px; }
.griglia { width:100%; border-collapse:collapse; background:var(--surface); border:1px solid var(--line); }
.griglia th, .griglia td { padding:12px 14px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; font-size:14px; }
.griglia thead th { font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); font-weight:500; }
.griglia tbody th { width:300px; font-weight:400; }
.griglia tbody th b { display:block; font-family:'Cormorant Garamond', serif; font-size:22px; font-weight:600; }
.griglia tbody th small { color:var(--muted); font-size:12px; line-height:1.4; }
.griglia td a { text-decoration:none; letter-spacing:.08em; text-transform:uppercase; font-size:12px; }
.badge { display:inline-block; margin-left:8px; min-width:20px; padding:1px 6px; border-radius:10px; background:var(--accent); color:#fff; font-size:11px; text-align:center; }
.voto-pill { display:inline-block; margin-left:8px; min-width:20px; padding:1px 6px; border-radius:10px; background:var(--ink); color:#fff; font-size:11px; text-align:center; }
.voto-sito { min-width:300px; }
.voto { display:flex; gap:4px; flex-wrap:wrap; }
.voto label { margin:0; cursor:pointer; }
.voto input { position:absolute; opacity:0; width:0; height:0; }
.voto span { display:inline-block; min-width:28px; padding:5px 0; text-align:center; border:1px solid var(--line); background:var(--surface); color:var(--muted); font-size:13px; }
.voto input:checked + span { background:var(--ink); color:#fff; border-color:var(--ink); }
.voto.compatto span { min-width:24px; padding:3px 0; font-size:12px; }
