/* tema.css — aspetto comune di Editor Verifiche, sopra Bootstrap 5.3.
   Qui si decidono colori, caratteri, raggi e ombre: le pagine usano le classi di Bootstrap
   più poche classi "ev-" definite in questo file. */

/* Inter (font variabile, auto-ospitato): un solo file copre tutti i pesi. */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonts/inter-latin.woff2") format("woff2");
}

:root {
  /* Colori del marchio */
  --ev-blu-notte: #0f2847;
  --ev-blu:       #1a3a5c;
  --ev-blu-vivo:  #2563a8;
  --ev-azzurro:   #e8f0fa;
  --ev-inchiostro:#1c2333;
  --ev-grigio:    #5a6480;
  --ev-sfondo:    #f3f6fb;
  --ev-bordo:     #e2e8f2;

  /* Bootstrap, riallineato al marchio */
  --bs-primary: #2563a8;
  --bs-primary-rgb: 37, 99, 168;
  --bs-link-color: #2563a8;
  --bs-link-color-rgb: 37, 99, 168;
  --bs-link-hover-color: #1a3a5c;
  --bs-link-hover-color-rgb: 26, 58, 92;
  --bs-body-bg: var(--ev-sfondo);
  --bs-body-color: var(--ev-inchiostro);
  --bs-secondary-color: var(--ev-grigio);
  --bs-border-color: var(--ev-bordo);
  --bs-border-radius: .65rem;
  --bs-border-radius-lg: .9rem;
  --bs-border-radius-sm: .5rem;
  --bs-font-sans-serif: "Inter", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --bs-body-font-size: .95rem;
  --ev-ombra: 0 1px 2px rgba(15, 40, 71, .05), 0 8px 24px rgba(15, 40, 71, .07);
  --ev-ombra-forte: 0 12px 40px rgba(15, 40, 71, .18);
}

body { min-height: 100vh; -webkit-font-smoothing: antialiased; }
.ev-icona { flex-shrink: 0; vertical-align: -.15em; }

/* ---- Pulsanti ---- */
.btn { --bs-btn-font-weight: 600; --bs-btn-padding-x: 1rem; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; }
.btn-sm { --bs-btn-padding-x: .7rem; }
.btn-primary {
  --bs-btn-bg: #2563a8; --bs-btn-border-color: #2563a8;
  --bs-btn-hover-bg: #1f548f; --bs-btn-hover-border-color: #1f548f;
  --bs-btn-active-bg: #1a3a5c; --bs-btn-active-border-color: #1a3a5c;
  --bs-btn-disabled-bg: #2563a8; --bs-btn-disabled-border-color: #2563a8;
  box-shadow: 0 2px 8px rgba(37, 99, 168, .28);
}
.btn-outline-primary {
  --bs-btn-color: #2563a8; --bs-btn-border-color: #c5d6ec;
  --bs-btn-hover-bg: #2563a8; --bs-btn-hover-border-color: #2563a8;
  --bs-btn-active-bg: #1a3a5c; --bs-btn-active-border-color: #1a3a5c;
}
/* pulsante neutro: bianco con bordo leggero */
.btn-ev-chiaro {
  --bs-btn-color: var(--ev-inchiostro); --bs-btn-bg: #fff; --bs-btn-border-color: var(--ev-bordo);
  --bs-btn-hover-color: var(--ev-blu-vivo); --bs-btn-hover-bg: var(--ev-azzurro); --bs-btn-hover-border-color: #c5d6ec;
  --bs-btn-active-color: var(--ev-blu-vivo); --bs-btn-active-bg: #dbe7f6; --bs-btn-active-border-color: #c5d6ec;
}
/* pulsante di eliminazione: tenue, diventa pieno al passaggio */
.btn-ev-rosso {
  --bs-btn-color: #b02a1c; --bs-btn-bg: #fff; --bs-btn-border-color: #f1cdc8;
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #c0392b; --bs-btn-hover-border-color: #c0392b;
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #a5281b; --bs-btn-active-border-color: #a5281b;
}
/* pulsanti in fila nelle righe di una tabella */
.ev-azioni { display: inline-flex; align-items: stretch; justify-content: flex-end; gap: .4rem; }
/* i pulsanti secondari mostrano solo l'icona: l'etichetta resta nel suggerimento (title) */
.ev-azioni .ev-testo-pulsante { display: none; }
.ev-azioni .btn:has(.ev-testo-pulsante) { --bs-btn-padding-x: .5rem; }
/* pulsante con sola icona */
.btn-ev-icona { --bs-btn-padding-x: .5rem; --bs-btn-padding-y: .4rem; }

/* ---- Barra in alto ---- */
.ev-navbar { background: var(--ev-blu-notte); padding-block: .7rem; }
.ev-navbar .navbar-brand { display: inline-flex; align-items: center; gap: .6rem; font-weight: 700; font-size: 1.05rem; color: #fff; }
.ev-marchio { width: 34px; height: 34px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #2f78c9, #2563a8); color: #fff; box-shadow: 0 4px 12px rgba(37, 99, 168, .5); }
.ev-navbar .ev-utente { color: rgba(255, 255, 255, .75); font-size: .88rem; display: inline-flex; align-items: center; gap: .4rem; }
.ev-navbar .btn-ev-vetro { --bs-btn-color: #fff; --bs-btn-bg: rgba(255,255,255,.1); --bs-btn-border-color: rgba(255,255,255,.22); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: rgba(255,255,255,.2); --bs-btn-hover-border-color: rgba(255,255,255,.35); --bs-btn-active-color: #fff; --bs-btn-active-bg: rgba(255,255,255,.28); --bs-btn-active-border-color: rgba(255,255,255,.4); }

/* ---- Pulsante "Genera con IA": gradiente violaceo, testo bianco (navbar e finestra) ---- */
.btn-ev-ia { --bs-btn-color: #fff; --bs-btn-bg: #7c3aed; --bs-btn-border-color: #7c3aed; --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #6d28d9; --bs-btn-hover-border-color: #6d28d9; --bs-btn-active-color: #fff; --bs-btn-active-bg: #5b21b6; --bs-btn-active-border-color: #5b21b6; --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #a78bda; --bs-btn-disabled-border-color: #a78bda; background-image: linear-gradient(135deg, #8b5cf6, #6d28d9); border: none; }
.btn-ev-ia:hover, .btn-ev-ia:active { background-image: linear-gradient(135deg, #7c3aed, #5b21b6); }
.ev-ia-nota { font-size: .85rem; color: var(--ev-grigio, #64748b); background: rgba(124, 58, 237, .07); border: 1px solid rgba(124, 58, 237, .18); border-radius: 8px; padding: .6rem .75rem; line-height: 1.45; }
.ev-ia-nota > div + div { margin-top: .15rem; }
.ev-ia-nota strong { color: #5b21b6; }
/* Pulsante / link assistenza Telegram */
.btn-ev-telegram { --bs-btn-color: #fff; --bs-btn-bg: #29a9eb; --bs-btn-border-color: #29a9eb; --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #1d94d2; --bs-btn-hover-border-color: #1d94d2; --bs-btn-active-bg: #1a84bd; display: inline-flex; align-items: center; gap: .45rem; }
.ev-piede-pagina a { color: inherit; text-decoration: underline; display: inline-flex; align-items: center; gap: .3rem; }
/* Pagine di testo lungo (privacy) */
.ev-testo-lungo h2 { font-size: 1.1rem; margin: 1.4rem 0 .5rem; }
.ev-testo-lungo h2:first-of-type { margin-top: .4rem; }
.ev-testo-lungo ul { margin-bottom: .6rem; }
.ev-testo-lungo li { margin-bottom: .25rem; }
/* Pacchetti di ricarica crediti */
.ev-pacchetto { display: block; cursor: pointer; margin: 0; height: 100%; }
/* nasconde SOLO il radio, non il campo numero del pacchetto personalizzato */
.ev-pacchetto input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }
.ev-pacchetto-box { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .1rem; padding: .9rem .5rem; border: 2px solid var(--bs-border-color, #dee2e6); border-radius: 12px; transition: border-color .15s, background .15s, box-shadow .15s; }
.ev-pacchetto input[type="radio"]:checked + .ev-pacchetto-box { border-color: var(--ev-blu, #2563a8); background: var(--ev-azzurro, #eef4fb); box-shadow: 0 2px 10px rgba(37, 99, 168, .15); }
.ev-pacchetto input[type="radio"]:focus-visible + .ev-pacchetto-box { outline: 2px solid var(--ev-blu-vivo, #2563a8); outline-offset: 2px; }
.ev-pacchetto-crediti { font-size: 1.6rem; font-weight: 800; line-height: 1; color: var(--ev-blu, #2563a8); }
.ev-pacchetto-et { font-size: .78rem; color: var(--ev-grigio, #64748b); }
.ev-pacchetto-prezzo { margin-top: .35rem; font-weight: 600; }
.ev-pacchetto-input { width: 100%; max-width: 92px; text-align: center; font-size: 1.4rem; font-weight: 800; color: var(--ev-blu, #2563a8); border: 1px solid var(--bs-border-color, #dee2e6); border-radius: 8px; padding: .1rem .2rem; -moz-appearance: textfield; }
.ev-pacchetto-input::-webkit-outer-spin-button, .ev-pacchetto-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ev-ia-tipi { display: grid; grid-template-columns: repeat(2, 1fr); gap: .4rem; }
@media (max-width: 575.98px) { .ev-ia-tipi { grid-template-columns: 1fr; } }
.ev-ia-tipo { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .4rem .6rem; border: 1px solid var(--bs-border-color, #dee2e6); border-radius: 8px; }
.ev-ia-qty { display: inline-flex; align-items: center; gap: .4rem; font-size: .85rem; color: var(--ev-grigio, #64748b); white-space: nowrap; }
.ev-ia-qty input { width: 4.5rem; }
.ev-ia-modi .btn { flex: 1 1 0; display: inline-flex; align-items: center; justify-content: center; gap: .35rem; }
.ev-ia-sez { padding: .6rem .7rem; border: 1px solid var(--bs-border-color, #dee2e6); border-radius: 10px; margin-bottom: .55rem; background: var(--bs-body-bg, #fff); }
.ev-ia-sez-top { display: flex; align-items: center; gap: .5rem; margin-bottom: .55rem; }
.ev-ia-sez-top .ia-sez-tipo { flex: 1 1 auto; font-weight: 600; }
.ev-ia-sez-top .ia-sez-del { flex: 0 0 auto; }
.ev-ia-sez-campi { display: grid; grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr)); gap: .5rem; }
.ev-ia-campo { display: flex; flex-direction: column; gap: .15rem; margin: 0; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--ev-grigio, #64748b); }
.ev-ia-campo input { text-transform: none; font-weight: 400; }
.ev-ia-campo .ia-sez-chiave { font-family: ui-monospace, Consolas, monospace; letter-spacing: .08em; text-transform: uppercase; }
.ev-ia-costi { margin: .25rem 0 .4rem; padding-left: 1.1rem; font-size: .85rem; }
.ev-ia-costi li { margin-bottom: .15rem; }
.ev-ia-insuff { font-size: .85rem; color: #b42318; background: #fef3f2; border: 1px solid #fecdca; border-radius: 8px; padding: .55rem .7rem; }
/* Sezione IA in evidenza nella pagina iniziale: banda viola con etichetta "Novità" */
.ev-sezione-ia { background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%); border-top: 1px solid rgba(124, 58, 237, .18); border-bottom: 1px solid rgba(124, 58, 237, .18); }
.ev-sezione-ia h2 { color: #4c1d95; }
/* Card "Come funzionano i crediti" nella pagina iniziale */
.ev-ia-costi-card { background: linear-gradient(135deg, rgba(139,92,246,.08), rgba(109,40,217,.06)); border: 1px solid rgba(124,58,237,.22); border-radius: 14px; padding: 1.25rem 1.4rem; }
.ev-ia-costi-card h3 { color: #5b21b6; font-size: 1.05rem; }
.ev-ia-costi-card ul { margin: .5rem 0 .75rem; padding-left: 1.1rem; }
.ev-ia-costi-card li { margin-bottom: .3rem; }

/* ---- Fascia del titolo: prosegue la barra e sfuma, il contenuto ci sale sopra ---- */
.ev-fascia { background: linear-gradient(135deg, var(--ev-blu-notte) 0%, var(--ev-blu) 55%, #1e5a8a 100%); color: #fff; padding: .85rem 0 3.4rem; }
.ev-fascia h1 { font-size: 1.25rem; font-weight: 800; margin: 0; letter-spacing: -.01em; }
.ev-fascia p { margin: .1rem 0 0; font-size: .85rem; color: rgba(255, 255, 255, .72); }
.ev-fascia .btn-light { --bs-btn-color: var(--ev-blu); --bs-btn-hover-color: var(--ev-blu); box-shadow: 0 4px 14px rgba(0, 0, 0, .18); }
.ev-fascia .btn-outline-light { --bs-btn-border-color: rgba(255, 255, 255, .45); }
.ev-contenuto { margin-top: -2.6rem; padding-bottom: 3rem; }

/* ---- Card ---- */
.card { --bs-card-border-color: var(--ev-bordo); --bs-card-border-radius: 1rem; --bs-card-inner-border-radius: 1rem; --bs-card-cap-bg: #fff; box-shadow: var(--ev-ombra); }
.card-header { padding: .9rem 1.15rem; border-bottom-color: var(--ev-bordo); }

/* riquadri con un numero */
.ev-numero { display: flex; flex-direction: row; align-items: center; gap: .9rem; padding: 1rem 1.15rem; }
.ev-numero-icona { width: 44px; height: 44px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: var(--ev-azzurro); color: var(--ev-blu-vivo); flex-shrink: 0; }
.ev-numero-valore { font-size: 1.55rem; font-weight: 800; line-height: 1; color: var(--ev-blu); font-variant-numeric: tabular-nums; }
.ev-numero-etichetta { font-size: .78rem; font-weight: 600; color: var(--ev-grigio); margin-top: .25rem; }

/* ---- Campi ---- */
.form-control, .form-select { border-color: #d5deea; }
.form-control:focus, .form-select:focus { border-color: #8db4e2; box-shadow: 0 0 0 .2rem rgba(37, 99, 168, .15); }
.form-label { font-size: .8rem; font-weight: 700; color: var(--ev-grigio); margin-bottom: .35rem; }
.ev-cerca { position: relative; }
.ev-cerca .ev-icona { position: absolute; left: .8rem; top: 50%; transform: translateY(-50%); color: #93a0b8; pointer-events: none; }
.ev-cerca .form-control { padding-left: 2.3rem; }

/* ---- Tabelle ---- */
.ev-tabella { --bs-table-bg: transparent; --bs-table-hover-bg: #f6f9fd; margin: 0; }
.ev-tabella thead th { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--ev-grigio); background: #fafbfd; border-bottom: 1px solid var(--ev-bordo); padding: .7rem 1.15rem; white-space: nowrap; }
.ev-tabella tbody td { padding: .85rem 1.15rem; border-color: #eef2f8; vertical-align: middle; }
.ev-tabella tbody tr:last-child td { border-bottom: 0; }
.ev-secondario { font-size: .8rem; color: var(--ev-grigio); }
.ev-colonna-azioni { width: 1%; white-space: nowrap; text-align: right; }

/* Intestazioni ordinabili: due piccole punte, quella del verso attivo si accende (vedi admin/ordina_tabella.js) */
th .ordina { font: inherit; color: inherit; text-transform: inherit; letter-spacing: inherit; background: none; border: none; padding: 4px 6px; margin: -4px -6px; border-radius: 6px; cursor: pointer; white-space: nowrap; display: inline-flex; align-items: center; gap: 5px; transition: color .15s, background .15s; }
th .ordina::after { content: ''; width: 12px; height: 16px; flex-shrink: 0; background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2012%2016%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%206.2%206%203.2l3%203%22%20stroke%3D%22%23aab4c8%22%20stroke-width%3D%221.6%22%2F%3E%3Cpath%20d%3D%22M3%209.8l3%203%203-3%22%20stroke%3D%22%23aab4c8%22%20stroke-width%3D%221.6%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat; }
th .ordina:hover { color: var(--ev-blu-vivo); background: var(--ev-azzurro); }
th .ordina:focus-visible { outline: 2px solid var(--ev-blu-vivo); outline-offset: 1px; }
th[aria-sort="ascending"] .ordina, th[aria-sort="descending"] .ordina { color: var(--ev-blu-vivo); }
th[aria-sort="ascending"] .ordina::after  { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2012%2016%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%206.2%206%203.2l3%203%22%20stroke%3D%22%232563a8%22%20stroke-width%3D%222.2%22%2F%3E%3Cpath%20d%3D%22M3%209.8l3%203%203-3%22%20stroke%3D%22%23cdd5e3%22%20stroke-width%3D%221.4%22%2F%3E%3C%2Fsvg%3E"); }
th[aria-sort="descending"] .ordina::after { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2012%2016%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%206.2%206%203.2l3%203%22%20stroke%3D%22%23cdd5e3%22%20stroke-width%3D%221.4%22%2F%3E%3Cpath%20d%3D%22M3%209.8l3%203%203-3%22%20stroke%3D%22%232563a8%22%20stroke-width%3D%222.2%22%2F%3E%3C%2Fsvg%3E"); }

/* ---- Etichette tenui ---- */
.ev-etichetta { display: inline-flex; align-items: center; gap: .3rem; padding: .2rem .55rem; border-radius: 999px; font-size: .75rem; font-weight: 600; background: var(--ev-azzurro); color: var(--ev-blu-vivo); white-space: nowrap; }
.ev-etichetta.grigia  { background: #eef1f6; color: var(--ev-grigio); }
.ev-etichetta.arancio { background: #fef3e6; color: #b45f06; }
.ev-etichetta.verde   { background: #e6f5ec; color: #1a7a4a; }

/* ---- Nome modificabile sul posto: testo finché non si sceglie "Rinomina", poi diventa un campo ---- */
.ev-nome { font: inherit; font-weight: 700; color: var(--ev-inchiostro); width: 21ch; max-width: 100%; padding: .15rem .4rem; margin-left: -.45rem; border: 1px solid transparent; border-radius: .4rem; background: transparent; text-overflow: ellipsis; }
.ev-nome[readonly] { cursor: default; outline: none; }
.ev-nome:not([readonly]) { border-color: #8db4e2; background: #fff; outline: none; box-shadow: 0 0 0 .2rem rgba(37, 99, 168, .15); }

/* ---- Menu a tendina, finestre, avvisi ---- */
.dropdown-menu { --bs-dropdown-border-color: var(--ev-bordo); --bs-dropdown-border-radius: .8rem; --bs-dropdown-padding-y: .4rem; --bs-dropdown-item-padding-x: .9rem; --bs-dropdown-item-padding-y: .5rem; --bs-dropdown-font-size: .9rem; --bs-dropdown-link-hover-bg: var(--ev-azzurro); --bs-dropdown-link-active-bg: var(--ev-blu-vivo); box-shadow: var(--ev-ombra-forte); }
.dropdown-item { display: flex; align-items: center; gap: .6rem; font-weight: 500; }
.dropdown-item.text-danger:hover, .dropdown-item.text-danger:focus { background: #fdf0ef; color: #b02a1c !important; }
.modal-content { --bs-modal-border-radius: 1.1rem; border: 0; box-shadow: var(--ev-ombra-forte); }
.modal-header, .modal-footer { border-color: var(--ev-bordo); }
.modal-title { font-weight: 700; font-size: 1.1rem; }
.alert { --bs-alert-border-radius: .8rem; display: flex; align-items: center; gap: .6rem; font-weight: 500; box-shadow: var(--ev-ombra); }
.alert-success { --bs-alert-bg: #e9f7ef; --bs-alert-border-color: #b9e3c9; --bs-alert-color: #166a3f; }
.alert-danger  { --bs-alert-bg: #fdf0ef; --bs-alert-border-color: #f3c2bc; --bs-alert-color: #a5281b; }

/* ---- Area di rilascio dei file ---- */
.ev-rilascio { border: 2px dashed #c5d2e4; border-radius: 1rem; padding: 1.75rem 1rem; text-align: center; background: #fafbfd; cursor: pointer; transition: border-color .15s, background .15s; }
.ev-rilascio:hover, .ev-rilascio.sopra { border-color: var(--ev-blu-vivo); background: var(--ev-azzurro); }
.ev-rilascio-icona { width: 52px; height: 52px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; background: var(--ev-azzurro); color: var(--ev-blu-vivo); margin-bottom: .6rem; }

/* ---- Pagina senza contenuti ---- */
.ev-vuoto { text-align: center; padding: 3rem 1.25rem; }
.ev-vuoto-icona { width: 72px; height: 72px; border-radius: 20px; display: inline-flex; align-items: center; justify-content: center; background: var(--ev-azzurro); color: var(--ev-blu-vivo); margin-bottom: 1rem; }
.ev-vuoto h2 { font-size: 1.15rem; font-weight: 700; }

/* ---- Telefono: tabelle più strette, il nome non deve spingere fuori i pulsanti ---- */
@media (max-width: 575.98px) {
  .ev-tabella thead th, .ev-tabella tbody td { padding-left: .8rem; padding-right: .8rem; }
  .ev-nome { width: 12ch; }
  /* pulsanti di riga: solo icone, per farli stare accanto al nome */
  .ev-azioni { gap: .3rem; }
  .ev-azioni .btn span { display: none; }
  .ev-azioni .btn { --bs-btn-padding-x: .5rem; }
  .ev-fascia { padding-top: .75rem; }
  .ev-fascia h1 { font-size: 1.15rem; }
}

/* ============================================================
   Pagine di accesso: login, registrazione, reset password, attivazione, ricarica
   Una scheda bianca al centro dello sfondo blu.
   ============================================================ */
body.ev-accesso { display: flex; align-items: center; justify-content: center; padding: 1.25rem; background: linear-gradient(135deg, var(--ev-blu-notte) 0%, var(--ev-blu) 50%, #1e5a8a 100%); }
.ev-scheda { width: 100%; max-width: 420px; background: #fff; border-radius: 1.25rem; padding: 2rem 1.9rem 1.6rem; box-shadow: var(--ev-ombra-forte); }
.ev-scheda-testata { text-align: center; margin-bottom: 1.4rem; }
.ev-scheda-icona { width: 60px; height: 60px; border-radius: 17px; display: inline-flex; align-items: center; justify-content: center; margin-bottom: .8rem; color: #fff; background: linear-gradient(135deg, #2f78c9, var(--ev-blu-vivo)); box-shadow: 0 8px 20px rgba(37, 99, 168, .38); }
.ev-scheda-testata h1 { font-size: 1.3rem; font-weight: 800; color: var(--ev-blu); margin: 0; }
.ev-scheda-testata p { font-size: .88rem; color: var(--ev-grigio); margin: .25rem 0 0; }
.ev-scheda .btn-lg { --bs-btn-font-size: 1rem; --bs-btn-padding-y: .7rem; }
.ev-collegamenti { margin-top: 1.1rem; display: flex; flex-direction: column; gap: .5rem; text-align: center; font-size: .88rem; }
.ev-collegamenti a { color: var(--ev-grigio); text-decoration: none; }
.ev-collegamenti a:hover { color: var(--ev-blu-vivo); text-decoration: underline; }
.ev-collegamenti a.forte { color: var(--ev-blu-vivo); font-weight: 700; }
.ev-piede { margin-top: 1.4rem; padding-top: 1rem; border-top: 1px solid var(--ev-bordo); text-align: center; font-size: .78rem; color: #93a0b8; }

/* campo password con il pulsante "mostra" */
.ev-pw { position: relative; }
.ev-pw .form-control { padding-right: 2.6rem; }
.ev-pw-mostra { position: absolute; right: .35rem; top: 50%; transform: translateY(-50%); width: 2rem; height: 2rem; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: .5rem; background: none; color: #93a0b8; cursor: pointer; }
.ev-pw-mostra:hover, .ev-pw-mostra.attivo { color: var(--ev-blu-vivo); background: var(--ev-azzurro); }

/* requisiti della password: etichette che diventano verdi mentre si scrive */
.ev-requisiti { list-style: none; padding: 0; margin: .5rem 0 0; display: flex; flex-wrap: wrap; gap: .35rem; font-size: .74rem; }
.ev-requisiti li { padding: .15rem .55rem; border-radius: 999px; background: #eef1f6; color: var(--ev-grigio); white-space: nowrap; }
.ev-requisiti li::before { content: '○ '; }
.ev-requisiti li.ok { background: #e6f5ec; color: #1a7a4a; font-weight: 600; }
.ev-requisiti li.ok::before { content: '✓ '; }

/* scheda larga a due pannelli (registrazione): a sinistra la presentazione, a destra il modulo */
.ev-scheda.ev-scheda-larga { max-width: 920px; padding: 0; display: flex; overflow: hidden; }
.ev-scheda-info { flex: 0 0 280px; padding: 1.9rem 1.6rem; color: #fff; background: linear-gradient(160deg, var(--ev-blu), var(--ev-blu-vivo)); display: flex; flex-direction: column; }
.ev-scheda-info .ev-scheda-icona { background: rgba(255, 255, 255, .16); box-shadow: none; }
.ev-scheda-info h1 { font-size: 1.35rem; font-weight: 800; margin: 0; }
.ev-scheda-info .ev-sotto { font-size: .88rem; opacity: .78; margin-top: .2rem; }
.ev-scheda-info ul { list-style: none; padding: 0; margin: 1.5rem 0 0; display: flex; flex-direction: column; gap: 1rem; font-size: .86rem; line-height: 1.4; }
.ev-scheda-info li { display: flex; gap: .7rem; }
.ev-scheda-info li strong { display: block; }
.ev-scheda-info li span.testo { opacity: .82; }
.ev-scheda-info a.ritorno { margin-top: auto; padding-top: 1.4rem; color: #fff; opacity: .85; font-size: .88rem; text-decoration: none; }
.ev-scheda-info a.ritorno:hover { opacity: 1; text-decoration: underline; }
.ev-scheda-modulo { flex: 1 1 auto; min-width: 0; padding: 1.7rem 1.9rem; display: flex; flex-direction: column; justify-content: center; }
.ev-scheda-modulo .form-label { margin-bottom: .25rem; }
.invalid-feedback { font-weight: 600; }
@media (max-width: 767.98px) {
  .ev-scheda.ev-scheda-larga { flex-direction: column; max-width: 460px; }
  .ev-scheda-info { flex: none; padding: 1.4rem 1.5rem; }
  .ev-scheda-info ul { display: none; }
  .ev-scheda-info a.ritorno { margin-top: .8rem; padding-top: 0; }
  .ev-scheda-modulo { padding: 1.4rem 1.5rem; }
}

/* ============================================================
   Amministrazione
   ============================================================ */
.ev-navbar .nav-link { display: inline-flex; align-items: center; gap: .45rem; padding: .4rem .8rem; border-radius: .6rem; font-weight: 600; font-size: .9rem; color: rgba(255, 255, 255, .72); }
.ev-navbar .nav-link:hover { color: #fff; background: rgba(255, 255, 255, .1); }
.ev-navbar .nav-link.active { color: #fff; background: rgba(255, 255, 255, .16); }
.ev-navbar .navbar-toggler { border-color: rgba(255, 255, 255, .25); }
.ev-etichetta.rossa { background: #fdecea; color: #b02a1c; }
.ev-etichetta.blu   { background: var(--ev-azzurro); color: var(--ev-blu-vivo); }
.card-header h2 { font-size: 1rem; font-weight: 700; margin: 0; display: inline-flex; align-items: center; gap: .5rem; }
.card-header.ev-avviso { background: #fef3e6; color: #8a4a05; }
.ev-numero-piccolo .ev-numero-valore { font-size: 1.35rem; }
.ev-numero-piccolo .ev-numero-icona { width: 40px; height: 40px; }
/* campo numerico con pulsante accanto, nelle righe di una tabella */
.ev-ricarica { display: inline-flex; }
.ev-ricarica .form-control { width: 4.6rem; border-top-right-radius: 0; border-bottom-right-radius: 0; }
.ev-ricarica .btn { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.ev-azioni-colonna { display: flex; flex-wrap: wrap; gap: .4rem; justify-content: flex-end; }
.btn-ev-verde {
  --bs-btn-color: #fff; --bs-btn-bg: #1a7a4a; --bs-btn-border-color: #1a7a4a;
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #15633c; --bs-btn-hover-border-color: #15633c;
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #114f30; --bs-btn-active-border-color: #114f30;
}
.ev-positivo { color: #1a7a4a; font-weight: 700; }
.ev-negativo { color: #b02a1c; font-weight: 700; }
@media (min-width: 1200px) { .ev-azioni-colonna { flex-wrap: nowrap; } }

/* ============================================================
   Pagina iniziale
   ============================================================ */
.ev-apertura { background: linear-gradient(135deg, var(--ev-blu-notte) 0%, var(--ev-blu) 50%, #1e5a8a 100%); color: #fff; text-align: center; padding: 2.4rem 0 2.6rem; }
.ev-apertura h1 { font-size: clamp(1.5rem, 3.6vw, 2.2rem); font-weight: 800; line-height: 1.15; max-width: 900px; margin: 0 auto; text-wrap: balance; letter-spacing: -.01em; }
.ev-apertura p { font-size: 1rem; opacity: .88; max-width: 860px; margin: .8rem auto 0; text-wrap: pretty; }
.ev-apertura p.ev-apertura-nota { font-size: .9rem; opacity: .75; margin-top: .4rem; }
.ev-apertura .btn-light { --bs-btn-color: var(--ev-blu); --bs-btn-hover-color: var(--ev-blu); box-shadow: 0 6px 18px rgba(0, 0, 0, .2); }
.ev-apertura .btn-lg, .ev-sezione .btn-lg { --bs-btn-font-size: 1rem; --bs-btn-padding-y: .65rem; --bs-btn-padding-x: 1.4rem; }
.ev-sezione { padding: 3.2rem 0; scroll-margin-top: 56px; }
.ev-sezione-grigia { background: var(--ev-sfondo); }
.ev-sezione h2 { font-size: 1.55rem; font-weight: 800; color: var(--ev-blu); text-align: center; text-wrap: balance; margin: 0; }
.ev-sottotitolo { text-align: center; color: var(--ev-grigio); max-width: 640px; margin: .4rem auto 0; }
.ev-passo { padding: 1.3rem 1.25rem; }
.ev-passo h3 { font-size: 1.02rem; font-weight: 700; color: var(--ev-blu); margin: 0 0 .35rem; }
.ev-passo p { font-size: .9rem; color: var(--ev-grigio); margin: 0; }
.ev-passo-numero { font-size: 1.9rem; font-weight: 800; line-height: 1; color: #dbe5f3; font-variant-numeric: tabular-nums; }
.ev-foglio { display: block; width: 100%; aspect-ratio: 210 / 297; border-radius: .8rem; border: 1px solid var(--ev-bordo); box-shadow: var(--ev-ombra); background: #fff; object-fit: cover; object-position: top; }
.ev-foglio-vuoto { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; border: 2px dashed #c5d2e4; box-shadow: none; background: #fff; color: #93a0b8; font-size: .85rem; font-weight: 600; }
.ev-piede-pagina { background: var(--ev-blu-notte); color: rgba(255, 255, 255, .7); text-align: center; font-size: .82rem; padding: 1.25rem; }
@media (max-width: 575.98px) { .ev-apertura { padding: 1.7rem 0 1.9rem; } .ev-sezione { padding: 2.4rem 0; } }

/* Hero: testo + visual del prodotto affiancati (da lg in su) */
.ev-apertura-griglia { display: grid; grid-template-columns: 1fr; gap: 1.8rem; align-items: center; }
.ev-apertura-testo h1, .ev-apertura-testo p { margin-left: auto; margin-right: auto; }
@media (min-width: 992px) {
  .ev-apertura { text-align: left; }
  .ev-apertura-griglia { grid-template-columns: 1.08fr .92fr; gap: 2.6rem; }
  .ev-apertura-testo h1, .ev-apertura-testo p { margin-left: 0; margin-right: 0; }
  .ev-apertura-cta { justify-content: flex-start !important; }
}

/* Pila di fogli: evoca le piu versioni della stessa prova */
.ev-pila { position: relative; width: min(330px, 82%); margin: .4rem auto 0; aspect-ratio: 210 / 297; }
.ev-pila-dietro { position: absolute; inset: 0; background: #fff; border-radius: .8rem; box-shadow: 0 10px 30px rgba(15, 40, 71, .28); }
.ev-pila-dietro.d1 { transform: rotate(-7deg) translate(-7%, 3%); opacity: .55; }
.ev-pila-dietro.d2 { transform: rotate(-3.4deg) translate(-3%, 1.5%); opacity: .8; }
.ev-pila .ev-foglio-mock { position: absolute; inset: 0; width: 100%; height: 100%; box-shadow: 0 16px 44px rgba(15, 40, 71, .32); }

/* Foglio "finto" disegnato in SVG (hero e anteprime) */
.ev-foglio-mock { display: block; width: 100%; aspect-ratio: 210 / 297; border-radius: .8rem; border: 1px solid var(--ev-bordo); box-shadow: var(--ev-ombra); background: #fff; }

/* Sezione "Perche": card dei vantaggi */
.ev-vantaggio { padding: 1.5rem 1.35rem; text-align: center; }
.ev-vantaggio .ev-numero-icona { width: 52px; height: 52px; border-radius: 15px; margin: 0 auto .9rem; }
.ev-vantaggio h3 { font-size: 1.05rem; font-weight: 700; color: var(--ev-blu); margin: 0 0 .4rem; }
.ev-vantaggio p { font-size: .9rem; color: var(--ev-grigio); margin: 0; }

/* elenco "etichetta: valore" (profilo) */
.ev-dati dt { font-size: .8rem; font-weight: 700; color: var(--ev-grigio); padding-top: .1rem; }
.ev-dati dd { margin-bottom: .7rem; }

/* ---- Archivio loghi (loghi.php) ---- */
.ev-logo-anteprima {
  display: flex; align-items: center; justify-content: center; padding: 1rem;
  height: 130px; border-bottom: 1px solid var(--ev-bordo); border-radius: var(--bs-border-radius) var(--bs-border-radius) 0 0;
  background: repeating-conic-gradient(#f4f7fb 0% 25%, #fff 0% 50%) 50% / 18px 18px; /* scacchiera: mostra la trasparenza */
}
.ev-logo-anteprima img { max-width: 100%; max-height: 100%; object-fit: contain; }
.ev-logo-nome { font-size: 1rem; font-weight: 700; color: var(--ev-blu); margin: 0 0 .15rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---- Menu dell'utente nella barra in alto (si apre cliccando sul nome): vedi temaMenuUtente() ---- */
.ev-menu-utente { max-width: 16rem; }
.ev-menu-utente > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ev-menu-testata { display: flex; flex-direction: column; padding: .35rem .9rem .2rem; line-height: 1.3; color: var(--ev-inchiostro); }
.ev-menu-testata span { font-size: .8rem; color: var(--ev-grigio); }
.ev-navbar .dropdown-menu { min-width: 15rem; }

/* Riga delle note nello storico (sotto il titolo della verifica) */
.ev-nota-riga { font-size: .78rem; color: var(--ev-grigio); display: flex; align-items: center; gap: .3rem; margin-top: .2rem; max-width: 460px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ev-nota-riga .ev-icona { flex-shrink: 0; color: var(--ev-blu-vivo); }

/* Verifica "importante": stella attiva + riga evidenziata (le importanti non si rinominano/eliminano) */
.btn-ev-stella { --bs-btn-color:#b8860b; --bs-btn-bg:#fff6df; --bs-btn-border-color:#f0d98a; --bs-btn-hover-color:#9c6f09; --bs-btn-hover-bg:#fdefc4; --bs-btn-hover-border-color:#e9cd73; --bs-btn-active-bg:#fdefc4; --bs-btn-active-border-color:#e9cd73; }
.btn-ev-stella .ev-icona { fill: currentColor; }
.ev-tabella tbody tr.ev-importante { background: #fffdf4; }
.ev-tabella tbody tr.ev-importante td:first-child { box-shadow: inset 3px 0 0 #e9b949; }

/* Pulsanti di accesso social (Google/Microsoft/GitHub/Apple) */
.ev-social { display: flex; flex-direction: column; gap: .5rem; margin-top: .9rem; }
.ev-social-btn { justify-content: center; gap: .6rem; font-weight: 600; }
.ev-social-btn svg { flex-shrink: 0; }
.ev-divisore { display: flex; align-items: center; gap: .7rem; color: var(--ev-grigio); font-size: .8rem; margin: .2rem 0 .3rem; }
.ev-divisore::before, .ev-divisore::after { content: ""; flex: 1; height: 1px; background: var(--ev-bordo); }
