/* ============================================================================
   PV5 — STILI GENERALI
   ----------------------------------------------------------------------------
   Ex custom.css. Contiene gli stili trasversali dell'applicazione:
   tipografia, titoli, bottoni, tabelle, righe di griglia, box.

   Il tema delle finestre modali sta in un file separato: pv5-modali.css,
   che deve essere caricato DOPO questo file.

   Ordine in index.html:
       app.css  →  pv5-generali.css  →  pv5-modali.css

   ----------------------------------------------------------------------------
   INDICE (gruppi in ordine alfabetico)
   ----------------------------------------------------------------------------
     1. BOTTONI
     2. BOX E CONTENITORI
     3. FORM E INPUT
     4. MODALI (legacy — vedi note)
     5. OVERRIDE GLOBALI  ← contiene regole da verificare
     6. RIGHE E GRIGLIE
     7. TABELLE A COLONNE FISSE
     8. TIPOGRAFIA E TITOLI
     9. QUARANTENA (regole rimosse, commentate)
   ----------------------------------------------------------------------------
   NOTA SUI COLORI
   I colori istituzionali sono ripetuti in molte regole. Le variabili
   --pv5-blu e --pv5-oro sono definite in pv5-modali.css: le custom
   properties di :root valgono per tutto il documento a prescindere
   dall'ordine di caricamento, quindi qui sono usabili. Il fallback dopo
   la virgola garantisce il funzionamento anche se pv5-modali.css manca.
   ============================================================================ */


/* ============================================================================
   1. BOTTONI
   ============================================================================ */

/* Raggio comune a tutti i bottoni applicativi.
   Originale: "border-radius: 10px 10px 10px 10px" — equivalente a 10px. */
.btnsino,
.btnsml,
.btnstd {
    border-radius: 10px;
}

/* Bottone piccolo — blu istituzionale, spaziato a destra.
   ATTENZIONE: non imposta "color". Il testo eredita il colore dal contesto
   e su fondo blu scuro può risultare nero/illeggibile. Vedi nota in fondo. */
.btnsml {
    background-color: var(--pv5-blu, #295290);
    margin-right: 20px;
}

/* Bottone standard — blu istituzionale, spaziato a sinistra.
   Stessa avvertenza di .btnsml sul colore del testo. */
.btnstd {
    background-color: var(--pv5-blu, #295290);
    margin-left: 20px;
}

/* Bottone "Sì / No" — solo forma, nessun colore proprio. */
/* (proprietà già applicate nel raggruppamento in testa al gruppo) */

/* Bottone colorato — oro su blu. Variante leggibile, da preferire
   a .btnstd / .btnsml quando serve un bottone con testo visibile. */
.btnclr {
    color: var(--pv5-oro, #FFCC00);
    background-color: var(--pv5-blu, #295290);
}


/* ============================================================================
   2. BOX E CONTENITORI
   ============================================================================ */

/* Box evidenziato per le descrizioni: cornice grigia leggera su fondo bianco. */
.box-des {
    border: 1px solid #d9d9d9;
    border-radius: 6px;
    padding: 12px;
    margin-bottom: 14px;
    background-color: #FFFFFF;
}

/* Contenitore di pagina a piena area.
   ATTENZIONE: testo oro (#FFCC00) su fondo giallo pallido (#f9f9c6) =
   contrasto praticamente nullo. Se questa classe è in uso, il testo è
   quasi invisibile: probabile residuo di una vecchia palette.
   Valori lasciati invariati per non alterare la resa attuale. */
.pagstd {
    color: var(--pv5-oro, #FFCC00);
    background-color: #f9f9c6;
    top: 0;
    width: 100%;
    height: 100%;
    margin-top: 10px;
}
.modal-body-centered {
    margin: 0 auto;
    padding: 16px 24px;
}


/* ============================================================================
   3. FORM E INPUT
   ============================================================================ */

/* Campo numerico compatto, allineato a destra.
   Nota: NON è la classe di AntDesign (che è .ant-input-number):
   va applicata esplicitamente nel markup. */
.input-number {
    width: 60px;
    text-align: right;
}


/* ============================================================================
   5. OVERRIDE GLOBALI
   ----------------------------------------------------------------------------
   ⚠ Gruppo da rivedere: queste due regole non sono limitate a un
   contenitore e agiscono su TUTTA l'applicazione.
   ============================================================================ */

/* Hover bianco su tutti i link del documento.
   ⚠ RISCHIO ALTO: nata quasi certamente per la sidebar blu di AdminLTE,
   colpisce però ogni <a> della pagina, compresi i link su fondo chiaro,
   che all'hover diventano invisibili.
   Correzione consigliata (da applicare solo dopo verifica):
       .main-sidebar a:hover { color: #FFFFFF; }
   Lasciata invariata per non introdurre regressioni. */
a:hover {
    color: #FFFFFF;
}

/* Hover bianco su .item — presumibilmente voci di menu o di lista.
   Stessa avvertenza di sopra: il selettore è troppo generico.
   Specificità (0,2,0): vince su a:hover, quindi è la regola effettiva
   quando un elemento ha entrambe le caratteristiche. */
.item:hover {
    color: #FFFFFF;
}


/* ============================================================================
   6. RIGHE E GRIGLIE
   ============================================================================ */

/* Riga disabilitata / non editabile. */
.rigdis {
    background-color: lightgray;
}

/* Riga normale su fondo bianco (usata in alternanza con .rigdis). */
.rigpar {
    background-color: #FFFFFF;
}

/* Riga AntDesign a altezza ridotta.
   ⚠ INCOERENZA: il padding verticale (16px + 16px = 32px) supera da solo
   l'altezza dichiarata (30px), quindi l'altezza effettiva NON sarà 30px
   salvo box-sizing: border-box e contenuto nullo.
   Per una riga compatta reale servirebbe qualcosa come:
       padding: 2px 8px; height: 30px; box-sizing: border-box;
   Valori originali conservati. */
.row-ant-rid {
    padding: 16px 8px;
    height: 30px;
}

/* Spaziatura verticale standard fra righe di form. */
.row-spaced {
    margin-bottom: 12px;
}


/* ============================================================================
   7. TABELLE A COLONNE FISSE
   ----------------------------------------------------------------------------
   Tabella con intestazione e prime due colonne bloccate durante lo scroll.
   Richiede un contenitore con overflow per funzionare.
   ============================================================================ */

.fixed-table {
    background-color: #FFFFFF;
    border-collapse: collapse;
    width: 100%;
}

.fixed-table th,
.fixed-table td {
    border: 1px solid #ddd;
    padding: 8px;
    text-align: left;
}

.fixed-table th {
    background-color: #f0f0f0;
}

/* Intestazione bloccata in alto durante lo scroll verticale. */
.fixed-table thead {
    position: sticky;
    top: 0;
    z-index: 1;
}

/* Prima colonna bloccata a sinistra durante lo scroll orizzontale. */
.fixed-first-column {
    position: sticky;
    left: 0;
    z-index: 1;
    background-color: lightsteelblue;
    color: darkblue;
}

/* Seconda colonna bloccata.
   ⚠ DIPENDENZA: l'offset di 80px presuppone che la prima colonna sia
   larga esattamente 80px. La regola che la dimensionava era scritta in
   modo errato ed è stata rimossa (vedi QUARANTENA): la larghezza va
   quindi imposta nel markup, con un <col style="width:80px"> oppure
   riattivando la regola corretta indicata in quarantena. */
.fixed-second-column {
    position: sticky;
    left: 80px;
    z-index: 1;
    background-color: lightsteelblue;
    color: darkblue;
}


/* ============================================================================
   8. TIPOGRAFIA E TITOLI
   ============================================================================ */

/* Etichetta su fondo azzurro tenue. */
.labstd {
    color: #000000;
    background-color: lightsteelblue;
    font-size: medium;
}

/* Sottotitolo di pagina — barra oro su blu, larghezza piena. */
.subtitpag {
    color: var(--pv5-oro, #FFCC00);
    background-color: var(--pv5-blu, #295290);
    font-size: large;
    width: 100%;
    text-align: center;
}

/* Intestazione di griglia / tabella — compatta, allineata a sinistra. */
.titgrd {
    color: var(--pv5-oro, #FFCC00);
    background-color: var(--pv5-blu, #295290);
    font-family: 'Helvetica Neue', sans-serif;
    font-size: 15px;
    font-weight: bold;
    line-height: 1;
    text-align: left;
}

/* Titolo grande in blu, senza fondo. */
.titlrg {
    color: var(--pv5-blu, #295290);
    font-size: 30px;
}

/* Titolo principale di pagina — barra oro su blu a piena larghezza. */
.titpag {
    color: var(--pv5-oro, #FFCC00);
    background-color: var(--pv5-blu, #295290);
    font-family: 'Helvetica Neue', sans-serif;
    font-size: x-large;
    font-weight: bold;
    line-height: 2;
    width: 100%;
    text-align: center;
}

/* Titolo di sezione in blu, senza fondo. */
.titstd {
    color: var(--pv5-blu, #295290);
    font-size: medium;
}


/* ============================================================================
   9. QUARANTENA — REGOLE RIMOSSE
   ----------------------------------------------------------------------------
   Sei regole eliminate perché morte, non funzionanti o superate.
   Restano qui commentate per sicurezza: dopo una verifica in esecuzione
   dell'applicazione, questo intero blocco può essere cancellato.
   ============================================================================

   [1] pagmodale — SELETTORE NON VALIDO
       Manca il punto iniziale: così com'è seleziona un elemento HTML
       <pagmodale>, che non esiste. Non ha mai avuto effetto.
       Era una copia di .bordo-arrotondato con i colori istituzionali.

       pagmodale {
           color: #FFCC00;
           background-color: #f9f9c6;
           border: 4px solid #FFCC00;
           border-radius: 12px;
           padding: 25px;
           margin: 10px;
           box-shadow: 0 4px 8px rgba(0,0,0,0.1);
       }

   [2] .pagstdpos — SENZA EFFETTO
       La proprietà "bottom" viene ignorata perché manca
       position: absolute | relative | fixed | sticky.
       Restavano quindi solo width/height a 100%, già forniti da .pagstd.

       .pagstdpos {
           bottom: 0;
           width: 100%;
           height: 100%;
       }

   [3] .fixed-table.fixed-first-column — SELETTORE ERRATO
       Il selettore composto (senza spazio) richiede un elemento che abbia
       ENTRAMBE le classi, cioè una <table> che sia anche la prima colonna:
       non accade mai. L'intento era il discendente.
       Se serve fissare la larghezza, la forma corretta è:

           .fixed-table .fixed-first-column { width: 80px; }

       Regola originale:

       .fixed-table.fixed-first-column {
           width: 80px;
       }

   [4] .modal-msg .ant-modal-content — SUPERATA
       Vecchio tema dei messaggi (bordo "double", fondo giallo pallido),
       sostituito dal componente MsgStd con .pv5-modal-nuda + .pv5-msg.
       Se venisse applicata insieme a .pv5-modal-nuda non avrebbe effetto:
       pv5-modali.css impone background e box-shadow con !important.

       .modal-msg .ant-modal-content {
           border: double !important;
           background-color: #f9f9c6;
       }

   [5] .bordo-standard — SPERIMENTAZIONE
       Bordo verde #2ecc71, estraneo alla palette istituzionale
       (blu #295290 / oro #FFCC00). Nessun legame con gli altri stili.

       .bordo-standard {
           border: 3px solid #2ecc71;
           border-radius: 8px;
           padding: 20px;
           margin: 15px;
       }

   [6] .bordo-arrotondato — SPERIMENTAZIONE
       Bordo rosso #e74c3c, anch'esso fuori palette. È il template da cui
       era stato copiato "pagmodale" [1], il che conferma la natura di prova.

       .bordo-arrotondato {
           border: 2px solid #e74c3c;
           border-radius: 12px;
           padding: 25px;
           margin: 10px;
           box-shadow: 0 4px 8px rgba(0,0,0,0.1);
       }

   ============================================================================ */
