/* Stile comune del sito Ecrescy (stessi colori e font dell'app) */
:root { --blu:#1F5BFF; --profondo:#0B2A8A; --navy:#0B1B3A; --muto:#5B6B8C; --foglio:#FFFFFF; --carta:#EEF3FF; --bordo:rgba(11,27,58,.1); --verde:#16803C; --rosso:#C2273B; }
@media (prefers-color-scheme: dark) {
  :root { --blu:#3B74FF; --foglio:#081634; --navy:#F1F6FF; --muto:rgba(170,190,225,.95); --carta:rgba(147,197,253,.1); --bordo:rgba(147,197,253,.18); --verde:#4ADE80; --rosso:#FF7A8A; }
  body { background:#1747D9 !important; }
}
* { box-sizing:border-box; margin:0; padding:0; }
html { -webkit-text-size-adjust:100%; }
body { font-family:Manrope, system-ui, -apple-system, sans-serif; background:#1F5BFF; color:var(--navy); min-height:100vh; display:flex; flex-direction:column; }
a { color:var(--blu); }
.alto { position:relative; overflow:hidden; padding:44px 16px 60px; text-align:center; color:#fff; }
.alto::before { content:""; position:absolute; width:300px; height:300px; border-radius:50%; right:-110px; top:-90px; background:rgba(255,255,255,.08); }
.alto::after { content:""; position:absolute; width:180px; height:180px; border-radius:50%; left:-70px; bottom:-60px; background:rgba(255,255,255,.06); }
.alto a { color:#fff; text-decoration:none; position:relative; z-index:1; display:inline-block; }
.logo { width:68px; height:68px; display:block; margin:0 auto; }
.nome { font-family:"Bricolage Grotesque", sans-serif; font-weight:800; font-size:32px; margin-top:8px; letter-spacing:.5px; }
.motto { font-weight:800; font-size:11px; letter-spacing:2.2px; opacity:.88; margin-top:4px; }
.foglio { background:var(--foglio); border-radius:32px 32px 0 0; margin-top:-32px; flex:1; padding:28px 20px 40px; width:100%; max-width:560px; margin-left:auto; margin-right:auto; position:relative; z-index:2; }
h1 { font-family:"Bricolage Grotesque", sans-serif; font-weight:800; font-size:28px; line-height:1.12; }
h2 { font-family:"Bricolage Grotesque", sans-serif; font-weight:800; font-size:20px; margin-bottom:12px; }
.sotto { color:var(--muto); font-size:15px; margin-top:8px; line-height:1.5; }
.bottone { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; min-height:56px; border-radius:18px; border:0; font:800 17px Manrope, sans-serif; cursor:pointer; text-decoration:none; margin-top:12px; padding:0 18px; }
.bottone:disabled { opacity:.55; cursor:default; }
.pieno { background:var(--blu); color:#fff; border-bottom:4px solid var(--profondo); }
.pieno:active { transform:translateY(2px); border-bottom-width:2px; }
.chiaro { background:var(--carta); color:var(--blu); }
.store { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:14px; }
.store .bottone { margin-top:0; font-size:15px; min-height:52px; }
.store .bottone small { display:block; font-size:10px; font-weight:700; opacity:.7; letter-spacing:.6px; }
.card { background:var(--carta); border-radius:20px; padding:16px; margin-top:14px; }
.passo { display:flex; gap:12px; align-items:flex-start; margin-bottom:12px; font-size:15px; line-height:1.45; }
.n { flex:none; width:28px; height:28px; border-radius:9px; background:var(--blu); color:#fff; font-weight:800; display:grid; place-items:center; font-size:13px; }
.nota { color:var(--muto); font-size:12px; text-align:center; margin-top:22px; line-height:1.5; }
.ok { color:var(--verde); font-weight:800; font-size:14px; text-align:center; margin-top:10px; min-height:20px; }
.errore { color:var(--rosso); font-weight:700; font-size:14px; margin-top:10px; min-height:20px; line-height:1.4; }
label { display:block; font-weight:800; font-size:13px; margin:16px 0 6px; }
.campo { position:relative; }
input[type=password], input[type=text], input[type=email] { width:100%; height:54px; border-radius:16px; border:2px solid var(--bordo); background:var(--carta); color:var(--navy); font:600 16px Manrope, sans-serif; padding:0 54px 0 16px; outline:none; }
input:focus { border-color:var(--blu); }
.mostra { position:absolute; right:6px; top:6px; height:42px; width:44px; border:0; background:transparent; color:var(--muto); font:800 12px Manrope, sans-serif; cursor:pointer; border-radius:12px; }
.regole { list-style:none; margin-top:10px; font-size:13px; color:var(--muto); }
.regole li { padding:3px 0; }
.regole li::before { content:"○ "; }
.regole li.si { color:var(--verde); }
.regole li.si::before { content:"● "; }
.icona-grande { font-size:54px; text-align:center; margin-bottom:8px; }
.piede { text-align:center; font-size:12px; color:var(--muto); padding:18px 16px 26px; background:var(--foglio); }
.piede a { color:var(--muto); margin:0 6px; }
.nascosto { display:none !important; }
.gira { width:34px; height:34px; border-radius:50%; border:4px solid var(--carta); border-top-color:var(--blu); animation:gira .8s linear infinite; margin:30px auto; }
@keyframes gira { to { transform:rotate(360deg) } }
@media (prefers-reduced-motion: reduce) { .gira { animation-duration:2.4s } }
