/* Le pagine dell'accesso (accedi/, scegli-password/, gestione/). Si somma a bussola.css e richiesta.css.
   Niente stili in linea e niente JavaScript in queste pagine: la politica CSP li vieta. */
.avviso-ok, .avviso-errore { border-radius: 8px; padding: 10px 14px; margin: 12px 0; max-width: 560px; }
.avviso-ok { background: var(--aperta-fondo, #E2F4E9); color: var(--aperta-testo, #0F6B3C); }
.avviso-errore { background: var(--urgente-fondo, #FDE8E7); color: var(--urgente-testo, #B3261E); }
.contenitore.largo { max-width: 960px; }
.barra-gestione { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 8px 0 16px; }
.persona { background: #fff; border: 1px solid var(--bordo-schede, #D8DEEA); border-radius: 12px; padding: 14px 18px; margin: 12px 0; }
.persona h3 { margin: 0 0 4px; font-size: 1.0625rem; }
.persona .dati { margin: 4px 0 8px; color: var(--secondario, #4B5563); font-size: 0.9375rem; overflow-wrap: anywhere; }
.persona .messaggio { background: var(--superficie, #F4F6FB); border-radius: 8px; padding: 8px 12px; margin: 8px 0; }
.persona .stato { font-size: 0.8125rem; font-weight: 600; background: var(--grigio-fondo, #E9EDF3); color: var(--grigio-testo, #374151); border-radius: 999px; padding: 2px 10px; margin-left: 6px; }
.persona.stato-approvata .stato { background: var(--aperta-fondo, #E2F4E9); color: var(--aperta-testo, #0F6B3C); }
.persona.stato-sospesa .stato { background: var(--presto-fondo, #FFEDCC); color: var(--presto-testo, #8A4300); }
.persona.stato-revocata .stato, .persona.stato-rifiutata .stato { background: var(--urgente-fondo, #FDE8E7); color: var(--urgente-testo, #B3261E); }
.mossa { display: inline-block; margin: 6px 8px 0 0; vertical-align: top; }
.conferma-elimina summary { display: inline-block; cursor: pointer; list-style: none; }
.conferma-elimina summary::-webkit-details-marker { display: none; }
.conferma-elimina[open] form { margin-top: 8px; }
.mossa fieldset { border: 1px solid var(--bordo-schede, #D8DEEA); border-radius: 8px; margin: 0 0 8px; padding: 8px 12px; }
.mossa .voce { display: block; margin: 4px 0; }
.esci { display: inline; margin: 0; }
.link-esci { background: none; border: 0; padding: 0; font: inherit; color: var(--primario, #2350C8); text-decoration: underline; cursor: pointer; }

/* ISC-1S: l'elenco delle clausole sotto la seconda casella dei Termini, e la nota dell'«altro mestiere» in gestione */
.clausole { margin: 0 0 16px 24px; padding: 0; }
.nota-altro { font-weight: 600; }

/* ISC-1S-B: il pulsante «Accedi con Google» (collegamento, non modulo). Il logo e' un file del sito: la CSP vuole img-src 'self'. */
.altro-accesso { margin: 12px 0; }
.pulsante-google { display: inline-flex; align-items: center; gap: 10px; background: #fff; color: #1F1F1F; border: 1px solid #747775; border-radius: 4px; padding: 9px 14px; font: 500 0.9375rem/1 Roboto, Arial, sans-serif; text-decoration: none; }
.pulsante-google:hover, .pulsante-google:focus { background: #F1F3F4; }
.pulsante-google img { display: block; }

/* /visite/ (blocco 2 della campagna pdf-20261023): tabelle vere e il grafico a elementi <meter>, senza stili in linea. Tutti i selettori
   sono della pagina (table.visite, .scorri-visite, .filtri-visite): accesso e gestione non li usano. Una riga resta una riga: sul
   telefono la tabella scorre in orizzontale dentro .scorri-visite. */
.filtri-visite { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; margin: 12px 0 20px; }
.filtri-visite label { display: flex; flex-direction: column; gap: 4px; font-size: 0.875rem; }
.filtri-visite select, .filtri-visite button { font: inherit; padding: 6px 10px; }
.scorri-visite { overflow-x: auto; max-width: 100%; margin: 8px 0 24px; }
table.visite { border-collapse: collapse; width: 100%; max-width: 960px; margin: 0; }
table.visite th, table.visite td { text-align: left; padding: 6px 10px; border-bottom: 1px solid #d8dde3; white-space: nowrap; }
table.visite thead th { font-weight: 600; }
table.visite td.num { text-align: right; font-variant-numeric: tabular-nums; font-size: 0.8125rem; color: var(--secondario, #4B5563); }
table.visite th.ip { font-weight: 400; font-size: 0.875rem; font-variant-numeric: tabular-nums; }
table.visite tr.vuoti td { color: var(--secondario, #4B5563); font-size: 0.875rem; }
table.visite .nota { font-weight: 400; font-size: 0.75rem; color: var(--presto-testo, #8A4300); margin-left: 6px; }
table.visite meter { width: 100%; min-width: 80px; height: 14px; }
.solo-lettori { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }

/* Il cruscotto di /visite/ (campagna visite-cruscotto-20261026, VC-PAGINA): riquadri, «Da notare», grafico e barre in SVG. Classi
   tutte con il prefisso cr-. La CSP vieta gli stili in linea: la forma sta negli attributi dell'SVG, i colori qui. Le tabelle sono
   quelle di sempre (table.visite) dentro .scorri-visite; dentro .cr-sez le celle di testo vanno a capo, gli indirizzi (th) no. */
.cr-sotto { color: var(--secondario, #4B5563); font-size: 0.875rem; margin: 4px 0 12px; }
.cr-piccolo { color: var(--secondario, #4B5563); font-size: 0.8125rem; margin: 4px 0 0; }
.cr-nd { color: var(--secondario, #4B5563); margin: 6px 0; }
.cr-riquadri { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 8px 0 12px; }
.cr-r { background: #fff; border: 1px solid var(--bordo-schede, #D8DEEA); border-radius: 10px; padding: 12px; min-width: 0; }
.cr-e { font-size: 0.8125rem; color: var(--secondario, #4B5563); }
.cr-n { font-size: 1.75rem; font-weight: 650; margin: 2px 0; overflow-wrap: anywhere; }
.cr-n-testo { font-size: 1.125rem; display: inline-block; margin: 6px 0; }
.cr-su-quanti { font-size: 0.9375rem; font-weight: 400; color: var(--secondario, #4B5563); }
.cr-d { font-size: 0.8125rem; }
.cr-su { color: var(--aperta-testo, #0F6B3C); }
.cr-giu { color: var(--urgente-testo, #B3261E); }
.cr-notare { background: #fff; border: 1px solid var(--bordo-schede, #D8DEEA); border-left: 4px solid var(--primario, #2350C8); border-radius: 10px; padding: 10px 14px; margin: 12px 0; }
.cr-nota { margin: 6px 0 0; }
.cr-carta { background: #fff; border: 1px solid var(--bordo-schede, #D8DEEA); border-radius: 10px; padding: 14px; min-width: 0; }
.cr-due { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.cr-sotto-titolo { display: inline-block; margin-top: 14px; }
.cr-grafico { display: block; width: 100%; height: auto; }
.cr-asse { stroke: var(--bordo-schede, #D8DEEA); stroke-width: 1; }
.cr-linea { stroke: var(--primario, #2350C8); stroke-width: 2.5; }
.cr-linea-prima { stroke: #7C93BD; stroke-width: 2; }
.cr-punto { fill: var(--primario, #2350C8); }
.cr-testo-svg { fill: var(--secondario, #4B5563); font-size: 12px; }
.cr-barre { margin: 6px 0; }
.cr-riga { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(0, 1.3fr) 3.5em 3em; gap: 8px; align-items: center; margin: 4px 0; font-size: 0.875rem; }
.cr-nome { overflow-wrap: anywhere; }
.cr-barra { display: block; width: 100%; height: 14px; }
.cr-fondo { fill: var(--superficie, #F4F6FB); }
.cr-pieno { fill: var(--primario, #2350C8); }
.cr-num, .cr-perc { text-align: right; color: var(--secondario, #4B5563); font-variant-numeric: tabular-nums; }
.cr-sez .scorri-visite { margin: 8px 0; }
.cr-sez table.visite td, .cr-sez table.visite th { white-space: normal; }
.cr-sez table.visite th, .cr-sez table.visite td { padding: 6px 4px; }
.cr-sez table.visite thead th { font-size: 0.8125rem; }
.cr-sez table.visite td, .cr-sez table.visite th[scope="row"] { overflow-wrap: anywhere; }
.cr-dettagli { background: #fff; border: 1px solid var(--bordo-schede, #D8DEEA); border-radius: 10px; padding: 10px 14px; margin: 24px 0; }
.cr-dettagli > summary { cursor: pointer; font-weight: 600; }
@media (max-width: 760px) {
  .cr-riquadri { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cr-due { grid-template-columns: minmax(0, 1fr); }
  .cr-riga { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 3em 2.6em; gap: 6px; }
  .cr-testo-svg { font-size: 26px; }
}
