/* ADSTIER — interfaccia (M2/M3, identità visiva ufficiale 0.2.2). Nessun font o risorsa esterna (CSP: solo stesso dominio).
   Palette: blu notte / quasi nero (sfondi), blu elettrico e blu metallizzato (gradienti, bordi, dettagli), bianco (titoli e testi
   principali), grigi freddi (testi secondari). GIALLO ORO solo per evidenziare KPI, opportunità e azioni importanti.
   Verde e rosso restano solo colori di stato (riuscito / errore). Nessun fucsia, rosa o magenta. */
:root{
  --bg:#060a11; --bg-2:#0a111c; --panel:#0e1726; --panel-2:#122036;
  --border:rgba(120,165,225,.20); --border-strong:rgba(120,165,225,.38);
  --text:#ffffff; --text-2:#9fb0c6; --text-3:#6f8199;
  --electric:#2f7bff; --electric-2:#1e9bff; --steel:#8fb3d3; --steel-d:#1d4b78;
  --metal:linear-gradient(135deg,#05080e 0%,#0a1c33 30%,#14345c 52%,#0a1c33 74%,#05080e 100%);
  --metal-btn:linear-gradient(180deg,#2f6df0 0%,#1b4fc8 100%);
  --card-bg:linear-gradient(180deg,rgba(255,255,255,.045) 0%,rgba(255,255,255,.015) 100%),var(--panel);
  --input-bg:#08101c;
  --yellow:#f5c518; --yellow-soft:rgba(245,197,24,.12); --yellow-ink:#ffd84d;
  --green:#2cc596; --red:#ff6b78; --radius:12px;
  --font:"Inter","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--bg)}
body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);line-height:1.5;font-size:15px}
a{color:var(--electric-2);text-decoration:none} a:hover{text-decoration:underline}
h1,h2,h3{line-height:1.2;margin:0 0 .5rem;color:var(--text)} h1{font-size:1.65rem} h2{font-size:1.15rem} h3{font-size:1rem}
p{margin:0 0 .75rem}
.muted{color:var(--text-2)} .small{font-size:.85rem}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid rgba(47,123,255,.7);outline-offset:2px}
.icon{flex:none;vertical-align:middle}
.hl{color:var(--yellow)}

/* Pulsanti e moduli */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1.1rem;border-radius:10px;border:1px solid transparent;font:600 .95rem var(--font);cursor:pointer;text-decoration:none;min-height:44px;transition:background .15s,border-color .15s,box-shadow .15s}
.btn:hover{text-decoration:none}
.btn-primary{background:var(--metal-btn);color:#fff;border-color:rgba(143,179,255,.45);box-shadow:inset 0 1px 0 rgba(255,255,255,.25)} .btn-primary:hover{background:linear-gradient(180deg,#4180ff 0%,#2459dc 100%);box-shadow:0 0 0 3px rgba(47,123,255,.25)}
.btn-gold{background:var(--yellow);color:#0a0e13;border-color:#ffd84d} .btn-gold:hover{background:#ffd84d}
.btn-light{background:#fff;color:#0a0e13} .btn-light:hover{background:#e4edf6}
.btn-ghost{background:transparent;border-color:var(--border-strong);color:var(--text)} .btn-ghost:hover{background:rgba(120,165,225,.12)}
.btn-block{width:100%}
.field{margin-bottom:1rem}
.field label{display:block;font-weight:600;margin-bottom:.3rem;font-size:.9rem;color:var(--text)}
.input{width:100%;padding:.7rem .85rem;border:1px solid var(--border-strong);border-radius:10px;font:inherit;color:var(--text);background:var(--input-bg);min-height:44px}
.input::placeholder{color:var(--text-3)}
.input:hover{border-color:rgba(120,165,225,.6)}
.input:focus{border-color:var(--electric);outline:none;box-shadow:0 0 0 3px rgba(47,123,255,.28)}
.input[aria-invalid="true"]{border-color:var(--red)}
.field-error{color:var(--red);font-size:.85rem;margin-top:.3rem}
.hint{color:var(--text-2);font-size:.82rem;margin-top:.3rem}
.pw-wrap{position:relative} .pw-wrap .input{padding-right:3rem}
.pw-toggle{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);background:none;border:0;padding:.5rem;cursor:pointer;color:var(--text-2);min-width:44px;min-height:44px} .pw-toggle:hover{color:var(--text)}
.check{display:flex;align-items:center;gap:.5rem;font-size:.9rem}
.check input{width:18px;height:18px;accent-color:var(--electric)}

/* Avvisi */
.alert{padding:.8rem 1rem;border-radius:10px;margin-bottom:1rem;font-size:.92rem;border:1px solid}
.alert-ok{background:rgba(44,197,150,.12);border-color:rgba(44,197,150,.4);color:#7be0c0}
.alert-err{background:rgba(255,107,120,.12);border-color:rgba(255,107,120,.4);color:#ff9aa4}
.alert-warn{background:var(--yellow-soft);border-color:rgba(245,197,24,.55);color:var(--yellow-ink)}
.alert-info{background:rgba(47,123,255,.12);border-color:rgba(47,123,255,.4);color:#a9c8ff}

/* Logo ufficiale (immagini locali in public/img: non ridisegnate) */
.logo{display:inline-flex;align-items:center;gap:.6rem;line-height:1;color:var(--text)} .logo:hover{text-decoration:none}
.logo-sym{display:block;width:36px;height:36px;flex:none}
.wordmark{font-weight:800;letter-spacing:.1em;font-size:1.3rem;color:#fff} .wordmark b{font-weight:800;color:var(--electric-2)}
.logo-full img{display:block;width:100%;max-width:340px;height:auto}

/* Pagine ospiti (login, registrazione, ...) */
.guest{min-height:100vh;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);background:var(--bg)}
.guest-brand{background:var(--metal);color:#fff;padding:3rem;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;border-right:1px solid var(--border)}
.guest-brand > *{position:relative}
.brand-sym{position:absolute!important;right:-4rem;bottom:-3rem;width:22rem;max-width:80%;opacity:.16;pointer-events:none}
.guest-brand h2{font-size:1.7rem;max-width:20ch;margin-top:0;color:#fff}
.guest-brand ul{list-style:none;padding:0;margin:1.5rem 0 0;display:grid;gap:.75rem;color:#c3d0e0}
.guest-brand li{display:flex;gap:.6rem;align-items:flex-start}
.guest-brand li .icon{color:var(--yellow);margin-top:.15rem}
.guest-main{display:flex;align-items:center;justify-content:center;padding:2rem 1.25rem;background:radial-gradient(900px 500px at 70% 0%,rgba(47,123,255,.16),transparent 60%),var(--bg)}
/* La scheda di accesso è CHIARA: il logo completo ufficiale ha il testo «ADS» nero e va su fondo chiaro. */
.card-auth{--text:#0a0e13; --text-2:#4c5d73; --text-3:#7a8aa0; --border:#d9e2ee; --border-strong:#b9c7d9; --input-bg:#fff; --red:#c4303e;
  width:100%;max-width:440px;background:#fff;color:var(--text);border:1px solid rgba(143,179,255,.5);border-radius:16px;padding:2rem;box-shadow:0 20px 50px rgba(0,0,0,.45),0 0 0 4px rgba(47,123,255,.08)}
.card-auth h1,.card-auth h2,.card-auth h3{color:#0a0e13}
.card-auth a{color:#1a5fe0}
.card-auth .logo-full{display:block;margin:0 auto 1.5rem} .card-auth .logo-full img{margin:0 auto}
.card-auth .alert-ok{background:#e8f6f1;border-color:#b6e1d3;color:#0d6a4d}
.card-auth .alert-err{background:#fbeced;border-color:#f0c3c8;color:#9b2b36}
.card-auth .alert-warn{background:#fff6d6;border-color:#f5c518;color:#6b5200}
.card-auth .alert-info{background:#e8f0ff;border-color:#bcd2ff;color:#17398a}
.card-auth .btn-ghost:hover{background:#eef3fb}
.auth-links{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1rem;font-size:.9rem}

/* App autenticata */
.app{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr)}
/* Il velo del menu mobile NON deve mai partecipare alla griglia: era un elemento vuoto visibile su desktop che occupava
   la colonna del contenuto e spingeva .main sotto la sidebar (difetto 0.2.0). Nascosto ovunque, mostrato solo su mobile con menu aperto. */
.nav-scrim{display:none}
.sidebar{grid-column:1;grid-row:1} .main{grid-column:2;grid-row:1}
.sidebar{background:linear-gradient(180deg,#04070c 0%,#0a1a2f 100%);border-right:1px solid var(--border);color:#c3d0e0;padding:1.25rem .9rem;display:flex;flex-direction:column;gap:1.5rem;position:sticky;top:0;height:100vh;height:100dvh;overflow-y:auto}
.sidebar .logo{padding:.25rem .6rem}
.nav{display:grid;gap:.25rem}
.nav a,.nav .nav-off{display:flex;align-items:center;gap:.7rem;padding:.65rem .75rem;border-radius:10px;color:#c3d0e0;font-weight:500;min-height:44px;transition:background .15s,color .15s}
.nav a:hover{background:rgba(120,165,225,.12);text-decoration:none;color:#fff}
.nav a:focus-visible{outline-offset:-2px}
.nav a[aria-current="page"]{background:linear-gradient(90deg,rgba(47,123,255,.28),rgba(47,123,255,.06));color:#fff;box-shadow:inset 3px 0 0 var(--yellow)}
.nav a[aria-current="page"] .icon{color:var(--yellow)}
.nav .nav-off{opacity:.55;cursor:default}
.badge{white-space:nowrap;margin-left:auto;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.15rem .45rem;border-radius:999px;background:rgba(120,165,225,.16);color:#c3d0e0}
.side-foot{margin-top:auto;font-size:.78rem;color:var(--text-3);padding:0 .6rem}
.main{min-width:0;display:flex;flex-direction:column;background:radial-gradient(1000px 420px at 85% -10%,rgba(47,123,255,.10),transparent 60%),var(--bg)}
.topbar{display:flex;align-items:center;gap:1rem;padding:.8rem 1.5rem;background:rgba(6,10,17,.85);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}
.topbar .grow{flex:1}
.nav-toggle{display:none;background:none;border:1px solid var(--border-strong);border-radius:10px;padding:.5rem;min-width:44px;min-height:44px;cursor:pointer;color:var(--text)} .nav-toggle:hover{background:rgba(120,165,225,.12)}
.user-chip{display:flex;align-items:center;gap:.6rem}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--metal-btn);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.85rem}
.content{padding:1.75rem 1.5rem 3rem;max-width:1240px;width:100%;margin:0 auto}
.page-head{margin-bottom:1.5rem}
.grid{display:grid;gap:1rem}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.card:hover{border-color:var(--border-strong)}
.stat-label{display:flex;align-items:center;gap:.5rem;color:var(--text-2);font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.5rem}
.stat-value{font-size:1.35rem;font-weight:700;color:var(--text);overflow-wrap:anywhere}
.stat-value.kpi{color:var(--yellow)}
.pill{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .65rem;border-radius:999px;font-size:.8rem;font-weight:600}
.pill-ok{background:rgba(44,197,150,.14);color:var(--green)} .pill-warn{background:rgba(255,107,120,.14);color:var(--red)} .pill-off{background:rgba(120,165,225,.14);color:var(--text-2)}
table.t{width:100%;border-collapse:collapse;font-size:.92rem}
.t th{text-align:left;color:var(--text-2);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;padding:.5rem .6rem;border-bottom:1px solid var(--border)}
.t td{padding:.65rem .6rem;border-bottom:1px solid rgba(120,165,225,.10)}
.t tr:hover td{background:rgba(120,165,225,.05)}
.t tr:last-child td{border-bottom:0}
.table-wrap{overflow-x:auto}
.section{margin-top:1.75rem}
.empty{color:var(--text-2);text-align:center;padding:1.25rem .5rem}
.roadmap{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.roadmap li{display:flex;align-items:center;gap:.6rem}

/* Pagina pubblica */
.pub-head{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:var(--bg);border-bottom:1px solid var(--border)}
.pub-head nav{display:flex;gap:.6rem}
.hero{background:var(--metal);color:#fff;padding:4rem 1.5rem 4.5rem}
.hero-in{max-width:960px;margin:0 auto}
.hero h1{font-size:clamp(1.9rem,4vw,2.9rem);max-width:18ch;color:#fff}
.hero p{color:#c3d0e0;max-width:56ch;font-size:1.05rem}
.hero .actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.5rem}
.btn-ghost-light{background:transparent;border-color:rgba(255,255,255,.3);color:#fff} .btn-ghost-light:hover{background:rgba(255,255,255,.08)}
.pub-sec{max-width:960px;margin:0 auto;padding:3rem 1.5rem}
.tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.25rem}
.tier{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem;border-top:4px solid var(--c)}
.tier b{display:block;letter-spacing:.06em;font-size:.85rem;color:var(--c);margin-bottom:.25rem}
.t-core{--c:#2f7bff}.t-strong{--c:#1e9bff}.t-emerging{--c:#58b4ff}.t-historical{--c:#7d9cc0}.t-occasional{--c:#8aa0ba}.t-unproven{--c:#7d93ad}
.notice-staging{background:var(--yellow);color:#0a0e13;font-weight:600;text-align:center;padding:.5rem 1rem;font-size:.85rem}
.foot{text-align:center;color:var(--text-3);font-size:.82rem;padding:2rem 1rem}

/* Pagine di errore */
.err{min-height:100vh;display:grid;place-items:center;text-align:center;padding:2rem;background:radial-gradient(900px 500px at 50% 0%,rgba(47,123,255,.16),transparent 60%),var(--bg)}
.err .logo{margin-bottom:1.5rem}
.err .code{font-size:4rem;font-weight:800;background:linear-gradient(180deg,#8fc1ff,#2f7bff);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}


/* ── M3: pannello Super Admin, sicurezza, tabelle e moduli aggiuntivi ─────────────────────────────── */
code{font:.85em/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:rgba(120,165,225,.14);padding:.1rem .35rem;border-radius:6px}
select.input{appearance:auto;padding-right:.5rem} select.input option{background:#0e1726;color:#fff}
.card-auth select.input option{background:#fff;color:#0a0e13}
textarea.input{resize:vertical;min-height:5.5rem;line-height:1.4}
.btn-danger{background:linear-gradient(180deg,#d2414f 0%,#a92a38 100%);color:#fff;border-color:rgba(255,160,168,.5)} .btn-danger:hover{background:linear-gradient(180deg,#dc4f5d 0%,#9b2330 100%);box-shadow:0 0 0 3px rgba(255,107,120,.25)}
.is-disabled{opacity:.45;cursor:default;pointer-events:none}
.pill-gold{background:var(--yellow-soft);color:var(--yellow-ink)}
.nowrap{white-space:nowrap} td.wrap,.wrap{overflow-wrap:anywhere}
.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.75rem 1rem;align-items:end}
.filters .field{margin-bottom:0}
.filters-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:.55rem 1.25rem;margin:0}
.dl dt{color:var(--text-2);font-size:.88rem} .dl dd{margin:0;overflow-wrap:anywhere}
.pager{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1rem}
.steps{padding-left:1.2rem;margin:.5rem 0 1rem;color:var(--text-2)} .steps li{margin-bottom:.35rem}
.qr{display:block;background:#fff;padding:10px;border-radius:12px;margin:0 0 1rem}
.secret{user-select:all;letter-spacing:.06em}
.codes{list-style:none;margin:0 0 1rem;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem}
.codes li{background:rgba(245,197,24,.08);border:1px dashed rgba(245,197,24,.5);border-radius:8px;padding:.45rem .6rem;text-align:center}
.codes code{background:none;font-size:.95rem;letter-spacing:.04em}
.inline-form{margin-top:.75rem}
details.alt{margin-top:1.25rem;border-top:1px solid var(--border);padding-top:1rem} details.alt summary{cursor:pointer;color:#1a5fe0;font-size:.92rem;margin-bottom:.75rem}
.nav-admin{margin-top:.5rem;border:1px solid rgba(245,197,24,.45)} .nav-admin .icon{color:var(--yellow)}
.nav-back{margin-top:.75rem;border-top:1px solid var(--border);border-radius:0 0 10px 10px;padding-top:.85rem}
/* Il pannello Super Admin si riconosce a colpo d'occhio: barra dorata, etichetta, sidebar più scura. */
.is-admin{--admin-accent:var(--yellow)}
.app-admin .sidebar{background:linear-gradient(180deg,#010305 0%,#07131f 100%);border-top:3px solid var(--yellow)}
.app-admin .topbar{border-bottom:1px solid rgba(245,197,24,.45)}
.admin-tag{display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start;margin:-.75rem 0 0 .6rem;padding:.2rem .6rem;border-radius:999px;background:var(--yellow);color:#0a0e13;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.admin-bar{display:inline-flex;align-items:center;gap:.45rem;color:var(--yellow);font-weight:700;font-size:.9rem}
.admin-bar .icon{color:var(--yellow)}
/* Logo completo (testo «ADS» nero) dentro la sidebar scura: targhetta bianca, nessuna modifica al logo. */
.sidebar .logo-full{background:#fff;border-radius:10px;padding:.5rem .65rem} .sidebar .logo-full img{max-width:190px}
@media (max-width:640px){ .dl{grid-template-columns:minmax(0,1fr);gap:.1rem} .dl dd{margin-bottom:.6rem} .filters{grid-template-columns:1fr} }

@media (max-width:900px){
  .guest{grid-template-columns:1fr} .guest-brand{display:none}
  .grid-3,.grid-2,.tiers{grid-template-columns:1fr}
  .app{grid-template-columns:minmax(0,1fr)}
  .sidebar{grid-column:auto;grid-row:auto;position:fixed;inset:0 auto 0 0;width:260px;z-index:20;transform:translateX(-100%);transition:transform .2s;height:100vh;height:100dvh}
  .main{grid-column:1;grid-row:1}
  .nav-open .sidebar{transform:none}
  .nav-open .nav-scrim{display:block;position:fixed;inset:0;background:rgba(2,5,10,.65);z-index:15}
  .nav-toggle{display:inline-grid;place-items:center}
  .topbar,.content{padding-left:1rem;padding-right:1rem}
  .user-chip .who{display:none}
}
@media (min-width:901px) and (max-width:1100px){ .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:480px){
  .pub-head{padding:.8rem 1rem;gap:.5rem} .pub-head nav{gap:.4rem} .pub-head .btn{padding:.6rem .8rem;font-size:.9rem}
  .pub-head .wordmark{font-size:1.1rem} .pub-head .logo{gap:.45rem} .pub-head .logo-sym{width:30px;height:30px}
  .card-auth{padding:1.5rem 1.25rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ── M4.1: Negozi (collegamento sicuro) ─────────────────────────────────────────────────────────── */
.card-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem} .card-head h2{margin:0}
.actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}
.report h3{margin:1.25rem 0 .5rem;font-size:1rem}
.report .alert{margin-bottom:1rem}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em;background:rgba(120,165,225,.14);padding:.1rem .35rem;border-radius:6px;overflow-wrap:anywhere}
details.field{border:1px solid var(--border);border-radius:var(--radius);padding:.6rem .85rem;margin:.9rem 0}
details.field>summary{cursor:pointer;font-weight:600;color:var(--steel)}
fieldset.field{border:0;padding:0;margin:0 0 1rem} fieldset.field legend{padding:0;margin-bottom:.4rem;color:var(--text-2);font-size:.9rem}
