/* Portale delle licenze di SEA Kiosk - grafica chiara SEA System (rosso #E30613).
   I nomi delle classi sono lunghi e descrittivi di proposito: quelli corti o generici (ad, banner, scad, popup...)
   vengono nascosti dai blocchi della pubblicita'. Nessuno stile e' scritto dentro l'HTML (regole CSP). */
:root {
  --rosso-sea: #E30613;
  --rosso-sea-scuro: #b9040f;
  --rosso-sea-chiaro: #fdebec;
  --grafite: #1d2530;
  --testo-normale: #1d2530;
  --testo-tenue: #5b6675;
  --sfondo-pagina: #f3f4f6;
  --superficie: #ffffff;
  --superficie-tenue: #f8f9fb;
  --bordo: #dce0e6;
  --verde: #18794a;
  --verde-sfondo: #e2f4e9;
  --ambra: #8f5300;
  --ambra-sfondo: #fdefd0;
  --arancio: #b34708;
  --arancio-sfondo: #ffe6d3;
  --rosso: #b3261e;
  --rosso-sfondo: #fde5e3;
  --grigio: #46505d;
  --grigio-sfondo: #e8ebef;
  --ombra: 0 1px 2px rgba(16, 24, 40, .06), 0 2px 6px rgba(16, 24, 40, .07);
  color-scheme: light;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--sfondo-pagina); color: var(--testo-normale); font: 14px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; }
h1 { font-size: 22px; margin: 0; line-height: 1.2; }
h2 { font-size: 16px; margin: 0 0 8px; }
h3 { font-size: 14px; margin: 0 0 6px; }
p { margin: 0 0 10px; }
a { color: var(--rosso-sea-scuro); }
code { font: 12.5px/1.4 ui-monospace, Consolas, "Courier New", monospace; background: var(--superficie-tenue); border: 1px solid var(--bordo); border-radius: 5px; padding: 1px 5px; }
input, select, textarea, button { font: inherit; color: inherit; }
input, select, textarea { width: 100%; padding: 8px 10px; border: 1px solid #c5cbd4; border-radius: 8px; background: var(--superficie); min-height: 38px; }
textarea { resize: vertical; }
input[type=checkbox] { width: 18px; height: 18px; min-height: 0; padding: 0; margin: 0; flex: none; accent-color: var(--rosso-sea); }
input:focus-visible, select:focus-visible, textarea:focus-visible, button:focus-visible, a:focus-visible { outline: 2px solid var(--rosso-sea); outline-offset: 1px; }
input:disabled { background: var(--superficie-tenue); color: var(--testo-tenue); }

.testo-tenue { color: var(--testo-tenue); font-size: 12.5px; }
.testo-centrato { text-align: center; }
.portale-caricamento { padding: 40px 16px; text-align: center; color: var(--testo-tenue); }
.campo-fuori-vista { position: fixed; left: -9999px; top: 0; width: 10px; height: 10px; opacity: 0; }

/* ---------------------------------------------------------------- pulsanti */
button { cursor: pointer; }
button:disabled { opacity: .55; cursor: not-allowed; }
.pulsante-primario, .pulsante-secondario, .pulsante-pericolo, .pulsante-pericolo-tenue {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 38px; padding: 8px 16px;
  border-radius: 8px; border: 1px solid transparent; font-weight: 600; white-space: nowrap; text-decoration: none; }
.pulsante-primario { background: var(--rosso-sea); border-color: var(--rosso-sea); color: #fff; }
.pulsante-primario:hover:not(:disabled) { background: var(--rosso-sea-scuro); border-color: var(--rosso-sea-scuro); }
.pulsante-secondario { background: var(--superficie); border-color: #c5cbd4; color: var(--grafite); }
.pulsante-secondario:hover:not(:disabled) { border-color: var(--grafite); }
.pulsante-pericolo { background: var(--rosso); border-color: var(--rosso); color: #fff; }
.pulsante-pericolo:hover:not(:disabled) { background: #8f1d17; }
.pulsante-pericolo-tenue { background: var(--superficie); border-color: #e9b4b0; color: var(--rosso); }
.pulsante-pericolo-tenue:hover:not(:disabled) { background: var(--rosso-sfondo); }
.pulsante-piccolo { min-height: 32px; padding: 5px 11px; font-size: 13px; }
.pulsante-largo { width: 100%; }
.pulsante-collegamento { white-space: nowrap; border: 0; background: none; padding: 4px 2px; color: var(--rosso-sea-scuro); text-decoration: underline; font-weight: 600; }

/* ---------------------------------------------------------------- marchio */
.marchio-seakiosk { display: flex; align-items: center; gap: 10px; color: var(--grafite); }
.marchio-seakiosk-icona { width: 36px; height: 36px; display: block; }
.marchio-seakiosk-nome { display: flex; flex-direction: column; line-height: 1.1; }
.marchio-seakiosk-nome strong { font-size: 17px; letter-spacing: .01em; }
.marchio-seakiosk-nome small { font-size: 11.5px; color: var(--testo-tenue); text-transform: uppercase; letter-spacing: .08em; }
.marchio-seakiosk-grande { flex-direction: column; text-align: center; gap: 10px; margin-bottom: 18px; }
.marchio-seakiosk-grande .marchio-seakiosk-icona { width: 64px; height: 64px; }
.marchio-seakiosk-grande .marchio-seakiosk-nome { align-items: center; gap: 4px; }
.marchio-seakiosk-grande .marchio-seakiosk-nome strong { font-size: 24px; }

/* ---------------------------------------------------------------- accesso */
.accesso-pagina { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 20px 14px;
  background: linear-gradient(180deg, #fff 0, var(--sfondo-pagina) 60%); border-top: 4px solid var(--rosso-sea); }
.accesso-riquadro { width: 100%; max-width: 380px; background: var(--superficie); border: 1px solid var(--bordo); border-radius: 14px; padding: 28px 26px; box-shadow: var(--ombra); }
.accesso-titolo { font-size: 17px; text-align: center; margin-bottom: 10px; }
.accesso-piede { color: var(--testo-tenue); font-size: 12px; margin: 0; }
.campo-codice-verifica { font: 600 22px/1.2 ui-monospace, Consolas, monospace; letter-spacing: .18em; text-align: center; }
.riquadro-codice-qr { display: flex; justify-content: center; margin: 6px 0 10px; }
.riquadro-codice-qr img { width: 200px; height: 200px; border: 1px solid var(--bordo); border-radius: 8px; background: #fff; }
.chiave-verifica-manuale { font: 600 14px/1.5 ui-monospace, Consolas, monospace; text-align: center; word-break: break-all; background: var(--superficie-tenue); border: 1px dashed var(--bordo); border-radius: 8px; padding: 8px; }
.elenco-codici-recupero { list-style: none; margin: 0 0 14px; padding: 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 14px; background: var(--superficie-tenue); border: 1px solid var(--bordo); border-radius: 8px;
  font: 600 15px/1.4 ui-monospace, Consolas, monospace; text-align: center; }
.accesso-riquadro > .pulsante-largo { margin-top: 8px; }

/* ---------------------------------------------------------------- moduli */
.modulo-portale { display: flex; flex-direction: column; gap: 12px; }
.modulo-campo { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.modulo-campo-etichetta { font-size: 12.5px; font-weight: 600; color: var(--testo-tenue); }
.modulo-campo-nota { font-size: 12px; color: var(--testo-tenue); }
.modulo-due-colonne { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.modulo-spunta { display: flex; align-items: flex-start; gap: 9px; cursor: pointer; }
.modulo-spunta > span { display: flex; flex-direction: column; }
.modulo-spunta small { color: var(--testo-tenue); font-size: 12px; }
.modulo-gruppo-moduli { border: 1px solid var(--bordo); border-radius: 10px; padding: 10px 12px 12px; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 9px 16px; min-width: 0; }
.modulo-gruppo-moduli legend { padding: 0 6px; font-size: 12.5px; font-weight: 600; color: var(--testo-tenue); }
.modulo-messaggio-errore { margin: 0; padding: 9px 12px; border-radius: 8px; background: var(--rosso-sfondo); color: var(--rosso); border: 1px solid #f1bdb9; font-weight: 600; }
.riquadro-informazione { margin: 0; padding: 9px 12px; border-radius: 8px; background: #e8f0fb; color: #23487d; border: 1px solid #c4d6f0; }
.riquadro-attenzione { margin: 0; padding: 10px 12px; border-radius: 8px; background: var(--ambra-sfondo); color: #6b3f00; border: 1px solid #efd9a4; }

/* ---------------------------------------------------------------- struttura */
.portale-testata { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; gap: 8px 22px; flex-wrap: wrap; padding: 8px 22px;
  background: var(--superficie); border-top: 4px solid var(--rosso-sea); border-bottom: 1px solid var(--bordo); box-shadow: 0 1px 3px rgba(16, 24, 40, .05); }
.portale-testata-marchio { text-decoration: none; }
.portale-menu { display: flex; gap: 2px; flex: 1; flex-wrap: wrap; }
.portale-menu a { padding: 8px 13px; border-radius: 8px; color: var(--testo-tenue); text-decoration: none; font-weight: 600; border-bottom: 3px solid transparent; }
.portale-menu a:hover { color: var(--grafite); background: var(--superficie-tenue); }
.portale-menu a.portale-menu-attivo { color: var(--rosso-sea-scuro); background: var(--rosso-sea-chiaro); border-bottom-color: var(--rosso-sea); }
.portale-testata-utente { display: flex; align-items: center; gap: 10px; margin-left: auto; min-width: 0; }
.portale-testata-email { color: var(--testo-tenue); font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 260px; }
.portale-contenuto { max-width: 1320px; margin: 0 auto; padding: 22px; }
.portale-piede { text-align: center; color: var(--testo-tenue); font-size: 12px; padding: 6px 16px 22px; }
.pagina-intestazione { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px 16px; flex-wrap: wrap; margin-bottom: 16px; }
.pagina-intestazione p { margin: 4px 0 0; }
.pagina-intestazione-azioni { display: flex; gap: 8px; flex-wrap: wrap; }

/* Dentro il gestionale (frame): testata piu' bassa, senza marchio e senza piede */
.portale-dentro-gestionale .portale-testata { padding: 4px 12px; border-top-width: 3px; }
.portale-dentro-gestionale .portale-testata-marchio, .portale-dentro-gestionale .portale-piede { display: none; }
.portale-dentro-gestionale .portale-contenuto { padding: 14px 12px; }

/* ---------------------------------------------------------------- licenze */
.licenze-strumenti { display: flex; gap: 10px 14px; flex-wrap: wrap; align-items: center; margin-bottom: 10px; }
.licenze-filtri { display: flex; gap: 6px; flex-wrap: wrap; flex: 1 1 520px; }
.licenze-filtro { display: inline-flex; align-items: center; gap: 7px; padding: 6px 12px; border-radius: 999px; border: 1px solid #c5cbd4; background: var(--superficie); font-weight: 600; font-size: 13px; }
.licenze-filtro:hover { border-color: var(--grafite); }
.licenze-filtro-numero { min-width: 22px; padding: 0 6px; border-radius: 999px; background: var(--grigio-sfondo); color: var(--grigio); font-size: 12px; line-height: 20px; text-align: center; }
.licenze-filtro-in-scadenza .licenze-filtro-numero { background: var(--ambra-sfondo); color: var(--ambra); }
.licenze-filtro-in-grazia .licenze-filtro-numero { background: var(--arancio-sfondo); color: var(--arancio); }
.licenze-filtro-scadute .licenze-filtro-numero { background: var(--rosso-sfondo); color: var(--rosso); }
.licenze-filtro-attivo, .licenze-filtro-attivo:hover { background: var(--grafite); border-color: var(--grafite); color: #fff; }
.licenze-ricerca { flex: 1 1 260px; max-width: 420px; }
.licenze-riepilogo { margin: 0 0 8px; }

.tabella-portale-scorre { overflow-x: auto; background: var(--superficie); border: 1px solid var(--bordo); border-radius: 12px; box-shadow: var(--ombra); }
.tabella-portale { width: 100%; border-collapse: collapse; }
.tabella-portale th { text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--testo-tenue); background: var(--superficie-tenue); padding: 9px 12px; border-bottom: 1px solid var(--bordo); white-space: nowrap; }
.tabella-portale td { padding: 10px 12px; border-bottom: 1px solid #e9ecf0; vertical-align: top; }
.tabella-portale tbody tr:last-child td { border-bottom: 0; }
.tabella-portale tbody tr:hover td { background: #fafbfc; }
.licenza-riga td:first-child { border-left: 4px solid transparent; }
.licenza-riga-in-scadenza td:first-child { border-left-color: #e3a008; }
.licenza-riga-in-grazia td:first-child { border-left-color: #e8590c; }
.licenza-riga-scaduta td:first-child { border-left-color: var(--rosso); }
.licenza-riga-sospesa td:first-child { border-left-color: var(--grigio); }
.licenza-riga-scaduta td, .licenza-riga-sospesa td { background: #fdf8f8; }
.licenza-riga-in-grazia td { background: #fffaf5; }
.licenza-riga-in-scadenza .licenza-data-scadenza { color: var(--ambra); font-weight: 700; }
.licenza-riga-in-grazia .licenza-data-scadenza { color: var(--arancio); font-weight: 700; }
.licenza-riga-scaduta .licenza-data-scadenza { color: var(--rosso); font-weight: 700; }
.licenza-data-scadenza { font-variant-numeric: tabular-nums; white-space: nowrap; }
.licenza-riga-azioni { white-space: nowrap; text-align: right; }
.licenza-riga-azioni button { margin: 0 0 4px 4px; }
.licenza-stato { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 700; line-height: 1.35; white-space: nowrap; }
.licenza-cella-stato .testo-tenue { margin-top: 2px; }
.scheda-licenza-testa .licenza-cella-stato { text-align: right; }
.tabella-licenze td[data-etichetta="Totem"], .tabella-licenze td[data-etichetta="Dispositivo"] { min-width: 132px; }
.tabella-licenze td[data-etichetta="Scadenza"] { min-width: 118px; }
.tabella-licenze td[data-etichetta="Moduli"] { min-width: 170px; }
.registro-chi { white-space: nowrap; }
@media (min-width: 1101px) { .tabella-licenze td[data-etichetta="Dispositivo"] > span:first-child { white-space: nowrap; } }
.licenza-stato-valida { background: var(--verde-sfondo); color: var(--verde); }
.licenza-stato-in-scadenza { background: var(--ambra-sfondo); color: var(--ambra); }
.licenza-stato-in-grazia { background: var(--arancio-sfondo); color: var(--arancio); }
.licenza-stato-scaduta { background: var(--rosso-sfondo); color: var(--rosso); }
.licenza-stato-sospesa { background: var(--grafite); color: #fff; }
.licenza-stato-mai-attivata { background: var(--grigio-sfondo); color: var(--grigio); }
.licenza-moduli { display: flex; flex-wrap: wrap; gap: 4px; }
.licenza-modulo { padding: 2px 8px; border-radius: 6px; background: var(--superficie-tenue); border: 1px solid var(--bordo); font-size: 12px; white-space: nowrap; }
.licenza-senza-contatto { color: var(--rosso); font-weight: 600; }
.elenco-vuoto { padding: 36px 16px; text-align: center; background: var(--superficie); border: 1px dashed #c5cbd4; border-radius: 12px; }
.elenco-vuoto p { margin: 0 0 4px; }
.cliente-collegato-gestionale { display: inline-block; margin-top: 3px; padding: 1px 8px; border-radius: 999px; background: #e8f0fb; color: #23487d; font-size: 11.5px; font-weight: 600; }
.utente-riga-disattivata td { opacity: .6; }
.registro-quando { white-space: nowrap; font-variant-numeric: tabular-nums; }
.registro-dettaglio { color: var(--testo-tenue); font-size: 13px; overflow-wrap: anywhere; min-width: 200px; }

/* ---------------------------------------------------------------- finestre */
.finestra-portale { width: min(520px, calc(100vw - 20px)); max-height: calc(100vh - 20px); padding: 0; border: 0; border-radius: 14px; box-shadow: 0 18px 50px rgba(16, 24, 40, .3); color: var(--testo-normale); overflow: auto; }
.finestra-portale-larga { width: min(720px, calc(100vw - 20px)); }
.finestra-portale::backdrop { background: rgba(20, 26, 34, .5); }
.finestra-portale-testa { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 18px; background: var(--superficie); border-bottom: 1px solid var(--bordo); border-top: 4px solid var(--rosso-sea); }
.finestra-portale-testa h2 { margin: 0; font-size: 17px; }
.pulsante-chiudi-finestra { border: 0; background: none; font-size: 26px; line-height: 1; padding: 0 6px; color: var(--testo-tenue); border-radius: 6px; }
.pulsante-chiudi-finestra:hover { color: var(--grafite); background: var(--superficie-tenue); }
.finestra-portale-corpo { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 12px; }
.finestra-portale-testo { margin: 0; }
.finestra-portale-azioni { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.codice-attivazione-grande { font: 700 28px/1.3 ui-monospace, Consolas, "Courier New", monospace; letter-spacing: .06em; text-align: center; padding: 16px 10px; border-radius: 12px;
  background: var(--rosso-sea-chiaro); border: 2px dashed var(--rosso-sea); color: var(--grafite); user-select: all; overflow-wrap: anywhere; }
.codice-attivazione-password { font-size: 20px; letter-spacing: .03em; }

.scheda-licenza-testa { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.scheda-licenza-cliente { font-size: 17px; }
.scheda-licenza-dati { display: grid; grid-template-columns: minmax(120px, 170px) 1fr; gap: 0; margin: 0; border: 1px solid var(--bordo); border-radius: 10px; overflow: hidden; }
.scheda-licenza-dati dt { padding: 8px 12px; background: var(--superficie-tenue); color: var(--testo-tenue); font-size: 12.5px; font-weight: 600; border-bottom: 1px solid #e9ecf0; }
.scheda-licenza-dati dd { margin: 0; padding: 8px 12px; border-bottom: 1px solid #e9ecf0; min-width: 0; overflow-wrap: anywhere; }
.scheda-licenza-dati dt:last-of-type, .scheda-licenza-dati dd:last-of-type { border-bottom: 0; }
.scheda-licenza-identificativo { font-family: ui-monospace, Consolas, monospace; font-size: 11.5px; }
.scheda-licenza-note { white-space: pre-wrap; }
.scheda-licenza-azioni { display: flex; gap: 8px; flex-wrap: wrap; }
.scheda-licenza-titolo-storia { margin: 4px 0 0; }
.scheda-licenza-storia { list-style: none; margin: 0; padding: 0; border: 1px solid var(--bordo); border-radius: 10px; max-height: 190px; overflow: auto; }
.scheda-licenza-storia li { display: grid; grid-template-columns: 118px 1fr auto; gap: 10px; padding: 6px 12px; border-bottom: 1px solid #e9ecf0; font-size: 13px; align-items: baseline; }
.scheda-licenza-storia li:last-child { border-bottom: 0; }

.cliente-negozi-righe { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 6px; }
.cliente-negozio-riga { display: grid; grid-template-columns: 1fr 1fr auto; gap: 6px; }
.modulo-gruppo-moduli > button { justify-self: start; grid-column: 1 / -1; }
.gestionale-ricerca { background: #e8f0fb; border: 1px solid #c4d6f0; border-radius: 10px; padding: 10px 12px; }
.gestionale-risultati { list-style: none; margin: 0; padding: 0; background: var(--superficie); border: 1px solid var(--bordo); border-radius: 8px; max-height: 220px; overflow: auto; }
.gestionale-risultati li { border-bottom: 1px solid #e9ecf0; padding: 6px 10px; }
.gestionale-risultati li:last-child { border-bottom: 0; }
.gestionale-risultati button { display: flex; flex-direction: column; align-items: flex-start; width: 100%; border: 0; background: none; padding: 2px 0; text-align: left; }

/* ---------------------------------------------------------------- impostazioni */
.impostazioni-sezione { background: var(--superficie); border: 1px solid var(--bordo); border-radius: 12px; box-shadow: var(--ombra); padding: 16px 18px; margin-bottom: 16px; }
.impostazioni-sezione > .testo-tenue { font-size: 13px; max-width: 900px; }
.impostazioni-riga { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.impostazioni-campo-numero { width: 96px; }
.impostazioni-chiave-pubblica { font: 12.5px/1.5 ui-monospace, Consolas, monospace; word-break: break-all; background: var(--superficie-tenue); }
.impostazioni-impronta { font-family: ui-monospace, Consolas, monospace; font-size: 11.5px; overflow-wrap: anywhere; }
.impostazioni-modulo-stretto { max-width: 380px; }
.impostazioni-sezione .tabella-portale-scorre { box-shadow: none; }

/* ---------------------------------------------------------------- notifiche */
.portale-zona-notifiche { position: fixed; inset: auto auto 18px 50%; margin: 0; border: 0; padding: 0; background: transparent; overflow: visible; transform: translateX(-50%); z-index: 2147483647; display: flex; flex-direction: column; gap: 8px; align-items: center; width: min(520px, calc(100vw - 24px)); pointer-events: none; }
.portale-notifica { padding: 10px 16px; border-radius: 10px; background: var(--grafite); color: #fff; font-weight: 600; box-shadow: 0 8px 24px rgba(16, 24, 40, .3); text-align: center; }
.portale-notifica-errore { background: var(--rosso); }

/* ---------------------------------------------------------------- stretto (telefono o riquadro del gestionale) */

/* Le licenze hanno molte colonne: sotto i 1100 px ogni licenza diventa una scheda compatta, con il cliente in testa
   e gli altri dati su tre colonne (due sul telefono). */
@media (max-width: 1100px) {
  .licenze-elenco .tabella-portale-scorre { background: none; border: 0; box-shadow: none; overflow: visible; }
  .tabella-licenze, .tabella-licenze tbody { display: block; width: 100%; }
  .tabella-licenze thead { display: none; }
  .tabella-licenze tr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: var(--superficie); border: 1px solid var(--bordo); border-radius: 12px;
    box-shadow: var(--ombra); margin-bottom: 10px; overflow: hidden; }
  .tabella-licenze tbody tr:hover td { background: none; }
  .tabella-licenze td { display: block; min-width: 0 !important; border-bottom: 0; padding: 5px 12px; overflow-wrap: anywhere; background: none !important; }
  .tabella-licenze td::before { display: block; content: attr(data-etichetta); color: var(--testo-tenue); font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 1px; }
  .tabella-licenze td[data-etichetta="Cliente"] { grid-column: 1 / -1; order: 1; padding-top: 10px; }
  .tabella-licenze td[data-etichetta="Cliente"]::before { content: none; }
  .tabella-licenze td[data-etichetta="Cliente"] strong { font-size: 15px; }
  .tabella-licenze td[data-etichetta="Totem"] { order: 2; }
  .tabella-licenze td[data-etichetta="Stato"] { order: 3; }
  .tabella-licenze td[data-etichetta="Scadenza"] { order: 4; }
  .tabella-licenze td[data-etichetta="Dispositivo"] { order: 5; }
  .tabella-licenze td[data-etichetta="Moduli"] { order: 6; }
  .tabella-licenze td[data-etichetta="Ultimo contatto"] { order: 7; }
  .tabella-licenze td.licenza-riga-azioni { grid-column: 1 / -1; order: 8; display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; padding: 8px 12px 10px; margin-top: 4px;
    border-top: 1px solid #eef0f3; white-space: normal; }
  .tabella-licenze td.licenza-riga-azioni::before { content: none; }
  .tabella-licenze td.licenza-riga-azioni button { margin: 0; min-width: 120px; }
  .licenza-riga td:first-child { border-left: 0; }
  .licenza-riga { border-left: 5px solid var(--bordo) !important; }
  .licenza-riga-in-scadenza { border-left-color: #e3a008 !important; }
  .licenza-riga-in-grazia { border-left-color: #e8590c !important; background: #fffaf5 !important; }
  .licenza-riga-scaduta { border-left-color: var(--rosso) !important; background: #fdf8f8 !important; }
  .licenza-riga-sospesa { border-left-color: var(--grigio) !important; background: #fdf8f8 !important; }
}

@media (max-width: 860px) {
  .portale-testata { padding: 6px 12px; gap: 4px 10px; }
  .portale-menu { order: 3; flex: 1 1 100%; }
  .portale-menu a { padding: 7px 10px; }
  .portale-contenuto { padding: 14px 12px; }
  .portale-testata-email { max-width: 150px; }
  .licenze-ricerca { max-width: none; flex-basis: 100%; }
}

/* Le altre tabelle (clienti, utenti, registro) diventano schede con l'etichetta davanti a ogni valore */
@media (max-width: 760px) {
  .tabella-portale-scorre { background: none; border: 0; box-shadow: none; overflow: visible; }
  .tabella-portale:not(.tabella-licenze), .tabella-portale:not(.tabella-licenze) tbody, .tabella-portale:not(.tabella-licenze) tr { display: block; width: 100%; }
  .tabella-portale:not(.tabella-licenze) thead { display: none; }
  .tabella-portale:not(.tabella-licenze) tr { background: var(--superficie); border: 1px solid var(--bordo); border-radius: 12px; box-shadow: var(--ombra); margin-bottom: 10px; overflow: hidden; }
  .tabella-portale:not(.tabella-licenze) td { display: grid; grid-template-columns: 118px 1fr; gap: 0 8px; padding: 7px 12px; border-bottom: 1px solid #eef0f3; min-width: 0; width: 100%; }
  .tabella-portale:not(.tabella-licenze) td::before { content: attr(data-etichetta); color: var(--testo-tenue); font-size: 12px; font-weight: 600; }
  .tabella-portale:not(.tabella-licenze) td > * { grid-column: 2; justify-self: start; }
  .tabella-portale:not(.tabella-licenze) td.licenza-riga-azioni { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; text-align: left; white-space: normal; }
  .tabella-portale:not(.tabella-licenze) td.licenza-riga-azioni::before { content: none; }
  .tabella-portale:not(.tabella-licenze) td.licenza-riga-azioni button { margin: 0; flex: 1 1 auto; }
  .tabella-portale.tabella-semplice td { grid-template-columns: 1fr; }
  .tabella-portale.tabella-semplice td::before { content: none; }
  .tabella-portale.tabella-semplice td > * { grid-column: 1; }
  .registro-chi { white-space: normal; }
  .tabella-portale:not(.tabella-licenze) td:empty { display: none; }
  .registro-dettaglio { min-width: 0; }
}

@media (max-width: 600px) {
  .tabella-licenze tr { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tabella-licenze td.licenza-riga-azioni button { flex: 1 1 auto; }
}
@media (max-width: 560px) {
  .modulo-due-colonne, .modulo-gruppo-moduli, .cliente-negozio-riga { grid-template-columns: 1fr; }
  .scheda-licenza-dati { grid-template-columns: 1fr; }
  .scheda-licenza-dati dt { border-bottom: 0; padding-bottom: 2px; }
  .scheda-licenza-storia li { grid-template-columns: 1fr; gap: 0; }
  .accesso-riquadro { padding: 22px 18px; }
  .codice-attivazione-grande { font-size: 22px; }
  .finestra-portale-azioni > button { flex: 1 1 auto; }
  .portale-testata-email { display: none; }
}
