:root{--night:#07060F;--navy:#110D26;--indigo:#1B1440;--violet:#8B5CF6;--cyan:#22D3EE;--magenta:#E040FB;
  --blue:#0E7490;--red:#7C3AED;--danger:#FF5A6E;--ink:#F7F5FF;--muted:#A9A1CC;
  --grad:linear-gradient(90deg,#22D3EE,#8B5CF6,#E040FB);--card:rgba(255,255,255,.06);--line:rgba(255,255,255,.14)}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);
  background-color:var(--night);
  background-image:radial-gradient(60% 45% at 85% 0%,rgba(139,92,246,.32),transparent 70%),radial-gradient(50% 40% at 0% 100%,rgba(34,211,238,.16),transparent 70%),radial-gradient(40% 35% at 100% 100%,rgba(224,64,251,.14),transparent 70%);
  background-attachment:fixed}
main{max-width:520px;margin:0 auto;padding:32px 16px 48px}
.logo{display:block;width:180px;margin:8px auto 24px}
h1{font-size:1.4rem;margin:0 0 6px}
p.lead{color:var(--muted);margin:0 0 20px;line-height:1.5}
.card{background:var(--card);box-shadow:0 0 0 1px rgba(139,92,246,.06),0 12px 40px rgba(7,6,15,.45);border:1px solid var(--line);border-radius:16px;padding:20px;margin-bottom:16px;backdrop-filter:blur(8px)}
label{display:block;font-size:.85rem;color:var(--muted);margin:12px 0 6px}
input,select{width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:rgba(0,0,0,.25);color:var(--ink);font-size:1rem}
input:focus,select:focus{outline:2px solid var(--violet);border-color:transparent}
button{width:100%;margin-top:18px;padding:13px;border:0;border-radius:10px;background:linear-gradient(135deg,#7C3AED,#A21CAF);color:#fff;font-weight:700;font-size:1rem;cursor:pointer}
button:not(:disabled):hover{filter:brightness(1.12)}
button:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
button.secondary{background:transparent;border:1px solid var(--line)}
button.secondary:not(:disabled):hover{border-color:var(--violet);filter:none}
button:disabled{opacity:.5;cursor:default}
.msg{margin-top:14px;padding:12px;border-radius:10px;font-size:.95rem;display:none}
.msg.ok{display:block;background:rgba(40,180,90,.18);border:1px solid rgba(40,180,90,.5)}
.msg.err{display:block;background:rgba(255,90,110,.14);border:1px solid rgba(255,90,110,.5)}
.row{display:flex;gap:10px}.row>*{flex:1}
.hidden{display:none!important}
.code{font-family:ui-monospace,Consolas,monospace;letter-spacing:.3em;font-size:1.6rem;text-align:center;text-transform:uppercase}
ul.list{list-style:none;padding:0;margin:8px 0 0}ul.list li{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
ul.list button{width:auto;margin:0;padding:6px 12px;font-size:.85rem}
.tabs{display:flex;gap:8px;margin-bottom:12px}.tabs button{margin:0;background:transparent;border:1px solid var(--line);font-weight:600}
.tabs button.active{background:var(--red);border-color:var(--violet)}
small{color:var(--muted)}
a{color:#67E8F9}
button.social{margin-top:10px}
button.social.google{background:#fff;color:#1f1f1f}
button.social.apple{background:#000;color:#fff;border:1px solid var(--line)}
p.divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.85rem;margin:18px 0 0}
p.divider::before,p.divider::after{content:"";flex:1;border-top:1px solid var(--line)}
.pw-wrap{position:relative}
.pw-wrap input{padding-right:50px}
button.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:38px;height:38px;margin:0;padding:0;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:1.15rem;font-weight:400;line-height:1;cursor:pointer}
button.pw-toggle:hover,button.pw-toggle:focus-visible{background:rgba(255,255,255,.1)}
.captcha{display:flex;justify-content:center;margin-top:14px}.captcha:empty{display:none}

/* Linea brand (ciano → viola → magenta) sotto il logo */
.logo+h1::before{content:"";display:block;width:56px;height:3px;border-radius:3px;background:var(--grad);margin:0 0 14px}
