/**/
div.ACTION div.idShower {
	min-width: 40px;
	height: 40px;
	line-height: 40px;
	border: 1px solid var(--color1);
	background-color: rgba(255,255,255,0.4);
	border-radius: 5px 5px 5px 5px;
	padding-left: 2px;
	padding-right: 2px;
	color: var(--color1);
    text-align: center;
}

/** CONTRATTI E RICHIESTA DI ASSUNZIONE **/
/*  angelus.css tiene TUTTE le schede a 1050px (`body div .BOX .TAB`). Per due
    schede fitte come queste, su uno schermo largo, vuol dire etichette che si
    accavallano e tendine tagliate a meta'. Qui si allargano, come si era gia'
    fatto per Preventivi: 94vw per lasciare respiro ai lati, ma non oltre
    1600px, oltre i quali le righe diventano troppo lunghe da leggere.
    Va allargata anche la barra dei bottoni, che angelus.css centra sulla
    stessa misura. */
/*  NIENTE allargamento: queste due schede restano larghe come tutte le altre
    (1050px, da angelus.css). Deciso il 03/09/2026: la leggibilita' si sistema
    distribuendo i campi su piu' righe, non allargando la pagina.
    Se un giorno servisse allargarla, attenzione al selettore: `div.Contratti
    form.TAB` NON basta, perde contro `body div .BOX .TAB` di angelus.css a
    parita' di specificita'. Servirebbe `body div.Contratti div.BOX form.TAB`. */

/*  NIENTE altezza minima sulle etichette. Ce l'avevo messa perche' le etichette
    lunghe, andando a capo, schiacciavano i pallini della riga sotto; ma costava
    quasi venti pixel di vuoto sotto OGNI etichetta corta, ed erano quelli i
    buchi fra etichetta e campo. La scheda Famiglie non ce l'ha, e infatti li'
    il campo sta attaccato alla sua etichetta. Ai pallini basta il loro margine. */
div.Contratti .gs-label,
div.AssunzioniNew .gs-label {
    line-height: 1.2;
    padding-right: 10px;
}
div.Contratti .gs-radio-center,
div.AssunzioniNew .gs-radio-center {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 14px;
    align-items: center;
}
/*  La nota accanto alle scelte bloccate: piccola e in grigio, cosi' si vede
    che e' un chiarimento e non un'altra etichetta. */
div.Contratti .lbl_nota,
div.AssunzioniNew .lbl_nota {
    font-weight: normal;
    font-style: italic;
    opacity: .75;
}

/*  La riga di informazioni in sola lettura (Informazioni contrattuali Angelus).
    Non sono campi da compilare: si leggono e basta, quindi niente cornici da
    modulo ma etichetta piccola sopra e valore in evidenza sotto. */
div.Contratti .riga_info,
div.AssunzioniNew .riga_info {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 34px;
    margin: 12px 0 6px 0;
    padding: 12px 16px;
    border-radius: 8px;
    background: rgba(0,0,0,.035);
}
div.Contratti .voce_info,
div.AssunzioniNew .voce_info { min-width: 150px; }
div.Contratti .etichetta_info,
div.AssunzioniNew .etichetta_info {
    display: block;
    font-size: .82em;
    opacity: .7;
    margin-bottom: 2px;
}
div.Contratti .valore_info,
div.AssunzioniNew .valore_info {
    font-weight: 600;
    font-size: 1.05em;
    min-height: 1.3em;
}
div.Contratti .valore_info.numero,
div.AssunzioniNew .valore_info.numero { font-variant-numeric: tabular-nums; }

/*  La settimana degli orari, disegnata come la griglia degli allegati: righe
    alternate, intestazione grigia, bordi sottili. Dentro le celle ci sono i
    campi veri, quindi si legge come una tabella ma si compila come prima. */
div.Contratti table.griglia_orari,
div.AssunzioniNew table.griglia_orari {
    width: 99%;
    margin: 12px auto 4px auto;
    border-collapse: collapse;
    font-size: .95em;
}
div.Contratti table.griglia_orari th,
div.AssunzioniNew table.griglia_orari th {
    text-align: left;
    font-weight: 600;
    padding: 6px 10px;
    background: rgba(0,0,0,.05);
    border-bottom: 2px solid rgba(0,0,0,.12);
    white-space: nowrap;
}
div.Contratti table.griglia_orari td,
div.AssunzioniNew table.griglia_orari td {
    padding: 4px 10px;
    border-bottom: 1px solid rgba(0,0,0,.08);
    vertical-align: middle;
}
div.Contratti table.griglia_orari tbody tr:nth-child(even),
div.AssunzioniNew table.griglia_orari tbody tr:nth-child(even) { background: rgba(0,0,0,.025); }
div.Contratti table.griglia_orari td.giorno,
div.AssunzioniNew table.griglia_orari td.giorno { width: 130px; font-weight: 600; white-space: nowrap; }
div.Contratti table.griglia_orari td.ore,
div.AssunzioniNew table.griglia_orari td.ore { width: 110px; }
div.Contratti table.griglia_orari td.ore input,
div.AssunzioniNew table.griglia_orari td.ore input { width: 90px; text-align: center; }
div.Contratti table.griglia_orari td.orari input,
div.AssunzioniNew table.griglia_orari td.orari input { width: 100%; }

/*  Nel riquadro delle informazioni la voce del collegamento (richiesta o
    contratto) ha il numero e un piccolo «apri»: si legge come le altre voci,
    non come un avviso piantato sopra la scheda. */
div.Contratti .voce_info .lbl_fx,
div.AssunzioniNew .voce_info .lbl_fx {
    /*  Dal 29/09/2026 il collegamento sta accanto all'ETICHETTA ed e' uguale a
        «apri scheda operatore» (richiesta degli utenti): corsivo, misura del
        testo, niente maiuscolo dell'etichetta. */
    font-size: 1rem;
    font-style: italic;
    font-weight: normal;
    text-transform: none;
    letter-spacing: 0;
    margin-left: 6px;
    white-space: nowrap;
    cursor: pointer;
}

/*  ===== LA SETTIMANA DENTRO LA FINESTRELLA =====
    La finestrella e' la stessa per le due schede, ma il modulo e' duplicato,
    quindi il riquadro si chiama `AssunzioniNew_orari` quando la apre la
    Richiesta e `Contratti_orari` quando la apre il Contratto: vanno nominati
    tutti e due, per intero, su OGNI regola.

    DUE ERRORI DA NON RIFARE, tutti e due miei:
    1. fino al 04/09/2026 queste regole dicevano `div.AssOrari`, una classe che
       nel modulo non c'e' mai stata: erano quindici regole che non vestivano
       niente;
    2. rinominandole ho scritto `div.AssunzioniNew_orari,\n div.Contratti_orari
       table.tab_orari{...}`: cosi' la prima riga e' un selettore a se' e la
       larghezza del 99% e i margini finivano sulla FINESTRELLA INTERA, che si
       e' schiacciata in una colonna stretta con le etichette una sopra
       l'altra. Il nome della tabella va ripetuto in tutte e due le righe.
    E la tabella si chiama `tab_orari`, non `griglia_settimana`. */
div.AssunzioniNew_orari table.tab_orari,
div.Contratti_orari table.tab_orari{
    width: 100%;
    margin: 6px 0px;
    border-collapse: collapse;
}
div.AssunzioniNew_orari table.tab_orari th,
div.Contratti_orari table.tab_orari th{
    font-weight: 600;
    padding: 8px 6px;
    background: rgba(0,0,0,.04);
    border-bottom: 2px solid var(--c3-accent, #009BC4);
    color: var(--c3-accent, #007090);
    text-align: center;
    white-space: nowrap;
}
div.AssunzioniNew_orari table.tab_orari tr.sotto_testata th,
div.Contratti_orari table.tab_orari tr.sotto_testata th{
    font-weight: 400;
    font-size: var(--c3-fs-xs, 12px);
    border-bottom: 1px solid rgba(0,0,0,.12);
    padding-top: 0px;
}
div.AssunzioniNew_orari table.tab_orari td,
div.Contratti_orari table.tab_orari td{
    padding: 6px 5px;
    border-bottom: 1px solid rgba(0,0,0,.08);
    text-align: center;
    vertical-align: middle;
}
/*  La prima colonna: il nome del giorno con la sua spunta, a sinistra. */
div.AssunzioniNew_orari table.tab_orari th.c_gg,
div.Contratti_orari table.tab_orari th.c_gg,
div.AssunzioniNew_orari table.tab_orari td.c_gg,
div.Contratti_orari table.tab_orari td.c_gg{
    text-align: left;
    padding-left: 8px;
    white-space: nowrap;
    font-weight: 600;
    color: #1F2A33;
}
div.AssunzioniNew_orari table.tab_orari td.c_gg input[type=checkbox],
div.Contratti_orari table.tab_orari td.c_gg input[type=checkbox]{
    transform: scale(1.2);
    margin-right: 8px;
    cursor: pointer;
}
div.AssunzioniNew_orari table.tab_orari td.c_ore,
div.Contratti_orari table.tab_orari td.c_ore{
    width: 130px;
    font-weight: 700;
    color: #1F2A33;
    font-variant-numeric: tabular-nums;
}
div.AssunzioniNew_orari table.tab_orari td.c_r,
div.Contratti_orari table.tab_orari td.c_r{ width: 38px; }
div.AssunzioniNew_orari table.tab_orari td.c_r input[type=checkbox],
div.Contratti_orari table.tab_orari td.c_r input[type=checkbox]{ transform: scale(1.25); cursor: pointer; }
div.AssunzioniNew_orari table.tab_orari td.c_dup,
div.Contratti_orari table.tab_orari td.c_dup{ width: 38px; }
div.AssunzioniNew_orari table.tab_orari td.c_dup i,
div.Contratti_orari table.tab_orari td.c_dup i{ cursor: pointer; color: var(--c3-accent, #0095d6); }
/*  Le caselle degli orari: larghe quanto basta a scrivere hh:mm, non di piu'.
    E le colonne degli orari si stringono con loro: lo spazio che avanza se lo
    prende la prima colonna, quella dei giorni, cosi' la tabella resta larga
    quanto la finestrella ma senza vuoti in mezzo (chiesto da lei il
    04/09/2026). */
div.AssunzioniNew_orari table.tab_orari td input[type=text],
div.Contratti_orari table.tab_orari td input[type=text]{
    width: 72px !important;
    padding-left: 4px;
    padding-right: 4px;
    text-align: center;
    font-variant-numeric: tabular-nums;
}
div.AssunzioniNew_orari table.tab_orari td.c_f1,
div.Contratti_orari table.tab_orari td.c_f1,
div.AssunzioniNew_orari table.tab_orari td.c_f2,
div.Contratti_orari table.tab_orari td.c_f2{ width: 110px; }
/*  La prima colonna non ha una larghezza sua: si prende quello che resta. */
div.AssunzioniNew_orari table.tab_orari th.c_gg,
div.Contratti_orari table.tab_orari th.c_gg,
div.AssunzioniNew_orari table.tab_orari td.c_gg,
div.Contratti_orari table.tab_orari td.c_gg{ width: auto; }
/*  Le tendine degli orari: ore del giorno, ingressi e uscite. Sono cinque per
    riga, quindi si tengono strette - quanto basta per "08:00" e la freccetta -
    se no la settimana non ci sta nella finestrella. */
div.AssunzioniNew_orari table.tab_orari select,
div.Contratti_orari table.tab_orari select{
    width: 104px !important;
    min-width: 0px;
    display: inline-block;
    padding-left: 4px;
    padding-right: 2px;
    text-align: center;
    font-variant-numeric: tabular-nums;
}
/*  La tendina delle ore un po' piu' larga delle altre: da vuota ci dev'essere
    scritto "Ore totali" per intero (chiesto da lei il 04/09/2026). */
div.AssunzioniNew_orari table.tab_orari td.c_ore select,
div.Contratti_orari table.tab_orari td.c_ore select{ width: 124px !important; font-weight: 700; }
div.AssunzioniNew_orari table.tab_orari .separatore,
div.Contratti_orari table.tab_orari .separatore{ margin: 0px 6px; opacity: .6; }
/*  Un giorno non spuntato resta in riga ma spento: si vede che c'e' e che e'
    escluso, senza far ballare la tabella. */
div.AssunzioniNew_orari table.tab_orari tr.spenta,
div.Contratti_orari table.tab_orari tr.spenta{ opacity: .45; }
/*  La settimana e' larga: se non ci sta, scorre lei, non la finestrella. */
div.AssunzioniNew_orari div.tab_orari_scroll,
div.Contratti_orari div.tab_orari_scroll{ overflow-x: auto; }
div.AssunzioniNew_orari .riepilogo_orari,
div.Contratti_orari .riepilogo_orari{ border: 1px solid var(--c3-accent, #009BC4); background: transparent; }
div.AssunzioniNew_orari .lbl_fx.carica_predefiniti,
div.Contratti_orari .lbl_fx.carica_predefiniti{ margin-left: 12px; font-size: .85em; }


/** PREVENTIVI **/

div.Preventivi form.TAB {
    max-width: 1200px !important;
}
div.Preventivi div.BOX_ACTION div.ACTION {
    max-width: 1200px !important;
}
div.Preventivi div.BOX form.TAB{
    padding-left: 15px;
}
div.Preventivi div.BOX form.TAB a.fcs_group_checkbox label{
    margin-left: 21px; 
    text-indent: -21px;
}
div.Preventivi div.BOX form.TAB div.sub_title{
    width: calc(100% + 18px);
    margin-left: -14px;
    margin-top: 20px;
    margin-bottom: 10px;
    font-size: 18px;
    font-weight: 600;;
    color: #0095d6;
    border-bottom: 6.5px solid #C7E6ED;
}
/** 
div.Preventivi div.BOX form.TAB div.label{
    font-size: 18px;
    font-weight: 700;;
    color: var(--color1);
}
**/
div.Preventivi input.number.pagaccnl.no_dot {
    width: 120px !important;
}
div.Preventivi input.number.pagaccnl.num2_1 {
    width: 120px !important;
}
div.Preventivi input.number.superminimo.no_dot {
    width: 120px !important;
}
div.Preventivi input.number.imp_libero.no_dot {
    width: 120px !important;
}
div.Preventivi input.number.imp_paga_maggiorata.no_dot {
    width: 120px !important;
}
div.Preventivi input.number.imp_paga_maggiorata.num2_1 {
    width: 120px !important;
}
div.Preventivi input.number.tot_paga_maggiorata.no_dot {
    width: 120px !important;
}
div.Preventivi input.number.tot_paga_maggiorata.num2_1 {
    width: 120px !important;
}
div.Preventivi input.number.imp_amministrazione.no_dot {
    width: 150px !important;
    height: 28px !important;
}
div.Preventivi .bt-row.perc-99 {
    justify-content: flex-end;
}
div.Preventivi input.date.data_inizio {
    font-size: 23px !important;
}
div.Preventivi input.date.data_fine {
    font-size: 23px !important;
}
div.Preventivi input.date.data_stampa {
    font-size: 23px !important;
}
div.Preventivi input.number.pagaccnl.no_dot {
    width: 120px !important;
}
div.Preventivi input.number.pagaccnl.num2_1 {
    width: 120px !important;
}
div.Preventivi input.number.superminimo.no_dot {
    width: 120px !important;
}
div.Preventivi input.number.imp_libero.no_dot {
    width: 120px !important;
}
div.Preventivi input.number.imp_paga_maggiorata.no_dot {
    width: 120px !important;
}
div.Preventivi input.number.imp_amministrazione.no_dot {
    width: 160px !important;
}
div.Preventivi input.number.tot_paga_maggiorata.no_dot {
    width: 120px !important;
}
div.Preventivi select.combo.ore_inps {
    font-weight: bold;
}

/** FINE PREVENTIVI **/

/** TUTORIAL **/

div.Tutorial .video-box-wrapper {
    border: 1px solid var(--color1); 
    border-radius: 10px;
    padding: 10px;
    margin-top: 5px;
    position: relative; 
    display: block; 
    text-align: center; 
    overflow: hidden; 
}
div.Tutorial .video-box-wrapper .video-overlay-btn {
    position: absolute; 
    bottom: 5px;        
    left: 50%;           
    transform: translateX(-50%);
    width: 80%; 
    max-width: 150px; 
    z-index: 10; 
    text-align: center;
    margin: 0;
    padding: 0;
}
div.Tutorial .video-box-wrapper .video-placeholder-default {
    width: 100%; 
    height: auto;
    display: flex;
    justify-content: center;
    align-items: center;
}
div.Tutorial .video-box-wrapper .video-placeholder-default img {
    width: 100%; 
    height: auto;
    max-height: 120px; 
    object-fit: cover; 
}
div[f4m_type="GRID"][name="tipologie_tutorial"] {
    position: relative;
    -webkit-overflow-scrolling: touch;
    width: 100%;
    overflow: auto;
    overflow-y: auto;
    overflow-x: auto;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    color: black; 
    border: 1px solid var(--colore-bordo-neutro);
    background-color: var(--colore-sfondo-pagina); 
    font-size: 14px; 
    border-radius: 6px; 
    
}
div[f4m_type="GRID"][name="tipologie_tutorial"] div.HEAD {
    display: inline-block;
    overflow-y: hidden;
    overflow-x: visible;
    position: sticky;
    top: 0;
    z-index: 2;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    height: 30px; 
    line-height: 30px;
    padding-bottom: 8px; 
    border-bottom: #0095d6 1px solid;
    background: var(--sfondo-leggero-primario) !important; 
    background-color: var(--sfondo-leggero-primario) !important;
    color: black; 
    font-weight: 600; 
    font-size: 15px;
}
div[f4m_type="GRID"][name="tipologie_tutorial"][check_color="true"] table tbody tr[check="true"] {
    background-color: var(--sfondo-selezione-attiva) !important;
}
div[f4m_type="GRID"][name="tipologie_tutorial"] * {
    border-color: #0095d6 !important;
}
div[f4m_type="GRID"][name="tipologie_tutorial"] table tbody tr:hover {
    background-color: var(--sfondo-leggero-primario);
    cursor: pointer; 
}
div[f4m_type="GRID"][name="tipologie_tutorial"] table th, 
div[f4m_type="GRID"][name="tipologie_tutorial"] table td {
    border-bottom: 1px solid var(--colore-bordo-neutro) !important; 
    word-break: break-word; 
    overflow: hidden;
    box-sizing: border-box;
    padding: 7px 5px; 
}

/** FINE TUTORIAL **/

/** FAMIGLIA **/

div.Famiglie .BOX .TAB
{
    background-color: var(--colorbianco);
}
div[f4m_prototype=tab] div.Famiglie .BOX .TAB.no_gap:before
{
    background-color: var(--colorbianco);
}
div.Famiglie div[f4m_type="READONLY"]:not([f4m_aria="NOTE"]) {
    padding: var(--margin0);
    border: 1px solid #c0c0c0;
    border-radius: var(--radius1);
    line-height: 28px;
}


div.Famiglie_new .BOX .TAB
{
    background-color: var(--colorbianco);
}
div[f4m_prototype=tab] div.Famiglie_new .BOX .TAB.no_gap:before
{
    background-color: var(--colorbianco);
}
div.Famiglie_new div[f4m_type="READONLY"]:not([f4m_aria="NOTE"]) {
    padding: var(--margin0);
    border: 1px solid #c0c0c0;
    border-radius: var(--radius1);
    line-height: 28px;
}

/** FINE FAMIGLIA **/

/**OPERATORE**/
div.Operatori div[f4m_type="READONLY"]:not([f4m_aria="NOTE"]) {
    padding: var(--margin0);
    border: 1px solid #c0c0c0;
    border-radius: var(--radius1);
    line-height: 28px;
}

/** SLICK SLIDER **/

.slick-arrow {
	position: absolute;
	top: 50%;
	z-index: 1;
	background-color: var(--color1);
	width: 35px;
	height: 35px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
.slick-arrow i {
	color: var(--colorbianco0);
	font-size: 20px;
	line-height: 20px;
}
.slick-prev-arrow {
	left: 5px;
}
.slick-next-arrow {
	right: 5px;
}

/** FINE SLICK SLIDER **/

/* COLLAPSIBLE*/

.collapsible-box {
    background-color: white;
    color: var(--color1);
    border-left: 2px solid var(--color1); 
    padding: 0.75rem 1.25rem;
    font-size: 1.2rem;   
    width: 100%;
    margin-bottom: 0.5rem;
    cursor: pointer;
}
.collapsible-content {
    margin-top: 1rem;
}
.collapsible-header {
    background-color: var(--color1);
    color: white;
    padding: 5px;
    cursor: pointer; 
    border-radius: 10px; 
}
.left-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 0.50rem;
}

/** FINE COLLAPSIBLE **/

/** NOTIFICA TICKET **/

.ticket_notifica {
    background-color: #ff0000; 
    color: #ffffff; 
    border-radius: 50%; 
    padding: 2px 6px; 
    font-size: 12px; 
    font-weight: bold; 
    position: absolute; 
    top: -5px; 
    right: -10px; 
    display: inline-block; 
    min-width: 20px; 
    text-align: center;
}

/** FINE NOTIFICA TICKET **/

/* 05/11/2026: il numerino sul pallino Agenda (cose di oggi da fare e rimaste indietro), rosso come quello dei Task,
   fuori dal pallino in alto a destra (sua richiesta: dentro non era carino) */
#btn_fixed span.button.agenda { overflow: visible !important; }
/* 06/11/2026 (sua richiesta): Promemoria resta com'e' per tutte le agenzie, anche dove c'e' l'agenda (tolte le regole che lo stringevano) */
/* 05/11/2026: l'avviso 15 minuti prima di un appuntamento (f4m.c3AgendaAvvisa) */
#c3-ag-avvisi { position: fixed; right: 16px; bottom: 16px; z-index: 5000; display: flex; flex-direction: column; gap: 10px; max-width: 340px; }
.c3-ag-avviso { background: #fff; border: 1px solid #98CDF1; border-left: 5px solid #f4b619; border-radius: 8px; box-shadow: 0 6px 20px rgba(25,50,100,.25); padding: 10px 12px; font-size: 14px; color: #193264; }
.c3-ag-avviso-t { font-weight: bold; color: #0b5c8a; margin-bottom: 4px; }
.c3-ag-avviso-x { margin-bottom: 8px; word-wrap: break-word; }
.c3-ag-avviso-az { display: flex; gap: 8px; justify-content: flex-end; }
.c3-ag-avviso-b { cursor: pointer; border: 1px solid #98CDF1; border-radius: 6px; padding: 4px 12px; color: #0095d6; font-weight: bold; }
.c3-ag-avviso-b.c3-ag-avviso-apri { background: #0095d6; border-color: #0095d6; color: #fff; }
@media (max-width: 700px) { #c3-ag-avvisi { left: 10px; right: 10px; bottom: 10px; max-width: none; } }
.c3-ag-notifica {
    background-color: #ff0000; color: #fff !important; border-radius: 10px; padding: 0 5px; font-size: 11px !important;
    font-weight: bold; line-height: 16px !important; min-width: 16px; text-align: center; position: absolute; top: -6px; right: -9px;
    border: 2px solid #fff; box-shadow: 0 1px 2px rgba(0,0,0,.25); font-family: Arial, sans-serif; z-index: 2;
}
        
/** SUPERMIX **/

div.sub_menu div.btn span.button {
    position: relative;
    top: -1px;
    right: -1px;
}

#stateButton {
    background-color: var(--color2);
}
.gs-check-center label {
    font-size: 1.2em !important;
}
.js_hidden {
    display: none;
}
.rotate {
    transition: transform 0.3s ease;
}
.rotate.down {
    transform: rotate(0deg);
}
.rotate.up {
    transform: rotate(180deg);
}
.btn-info.active {
    background-color: #004085 !important; /* Bootstrap dark blue shade */
    border-color: #004085 !important;
}
.form-check-input {
    margin-right: 6px; /* small gap between dot and label text */
}
.question-text {
    font-size: 14px;
    font-style: italic;
    color: #6c757d; /* Bootstrap muted gray */
    line-height: 1.4;
}
.gs-check-center label {
    font-size: 18px !important;
}

.print-groups.error-outline {
    outline: 3px solid rgba(220,53,69,0.95); /* strong red */
    outline-offset: 6px;
    border-radius: 6px;
    /* fallback if outline gets ignored: subtle box shadow */
    box-shadow: 0 0 0 3px rgba(220,53,69,0.12);
}
.print-groups .error-text {
    display: none;
    color: #dc3545;
    margin-top: .5rem;
    font-size: .9rem;
}
.print-groups.error-outline .error-text { display: block; }

.detail-box {
    border-top: 3px solid #00a0e3; /* blue line */
    padding-top: 5px;
    margin-top: 10px;
    font-size: 0.9rem;
    }
.detail-title {
    color: #00a0e3;
    font-weight: bold;
    margin-bottom: 5px;
}
.detail-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4px 0;
    border-bottom: 1px solid #ccc;
}
.detail-label {
    display: flex;
    align-items: center;
    color: #555;
}
.detail-label::before {
    content: "●";
    color: #00a0e3;
    font-size: 0.7rem;
    margin-right: 6px;
}  
.detail-value {
    font-weight: 500;
}

#stateModal .form-check:hover {
    background-color: #f1f9ff;
    transition: background-color 0.3s ease;
}
#stateModal .form-check-input:checked + .form-check-label {
    font-weight: 600;
}

.image-btn {
    /*width: 80px;
    height: 80px;*/
    width: 40px;
    height: 40px;
    /**/
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #F54927; /*red*/
    border: 2px solid #00a0e3;    
    transition: border-color 0.3s ease-in-out, background-color 0.3s ease-in-out;
    cursor: pointer;
}
.image-btn img {
    width: 85%; 
    height: 85%;
    object-fit: contain;
    
}

.default-style {
    border-color:  #00a0e3 !important; /* Light grey border */
    background-color: #6d6d6d69 !important; /* Very light grey background */
    color: #495057 !important; /* Dark grey text */
    transition: all 0.2s ease-in-out;
}

.clicked-style {
    border-color:  #00a0e3 !important; 
    background-color: #28a745 !important; /* green */
}

.processing-style {
    border-color: #00a0e3  !important; 
    background-color: #ffc107 !important; /* yellow */
    color: #212529 !important; /* Dark text for better contrast on yellow */
    /*cursor: wait; /* Changes cursor to a loading spinner */
    opacity: 0.8;
}

.status-red {
	color: #ff0000 !important;
	font-weight: bold;
}

.status-green {
	color: #008000 !important;
	font-weight: bold;
}

.box_button_delete {
    display: none !important;
}

.sex-disabled {
    pointer-events: none; 
    opacity: 1;           
}

input.date.datanascita {
    font-size: 23px !important;
}
input.date.data_stampa {
    font-size: 23px !important;
}

/** FINE SUPERMIX **/

/*  IL + SULLA TESTATA della sezione degli orari, in TUTTE E DUE le schede
    (fino al 04/09/2026 era scritto solo per la Richiesta, e sul contratto il
    piu' usciva gigante e senza cerchietto). Il core veste quel
    bottoncino solo dentro "div.sub_menu" (e' li' che sta il + degli allegati):
    qui la testata e' di un'altra classe, quindi senza queste regole il piu'
    uscirebbe gigante e senza il suo cerchietto.
    Il bottone e' appoggiato SOPRA la barra (position absolute) e non dentro il
    flusso: se no la barra diventerebbe piu' alta di tutte le altre. */
div.AssunzioniNew div.collapsible-header,
div.Contratti div.collapsible-header{
    position: relative;
}
div.AssunzioniNew div.collapsible-header div.btn,
div.Contratti div.collapsible-header div.btn{
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    height: auto;
    padding: 0px;
    margin: 0px;
    line-height: 0;
}
div.AssunzioniNew div.collapsible-header span.button.sqr_plus,
div.Contratti div.collapsible-header span.button.sqr_plus{
    background-color: var(--colorbianco0, #ffffff);
    color: var(--color1, #0e7ab5) !important;
    border: 2px solid var(--colorbianco0, #ffffff);
    height: 20px;
    width: 20px;
    min-width: 20px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0px;
    box-shadow: none;
}
div.AssunzioniNew div.collapsible-header span.button.sqr_plus i,
div.Contratti div.collapsible-header span.button.sqr_plus i{
    position: static;
    top: 0px !important;
    left: 0px !important;
    font-size: 12px !important;
    margin: 0px;
}

/*  Negli avvisi: prima la riga che introduce, poi le mancanze a capo,
    una per riga. Devono essere due blocchi, se no finiscono affiancate. */
div.manca_intro{
    display: block;
    text-align: center;
    margin-bottom: 6px;
}
ul.elenco_manca{
    display: block;
    width: -moz-fit-content;
    width: fit-content;
    margin: 0px auto;
    padding: 0px;
    list-style: none;
    text-align: left;
}
ul.elenco_manca li{
    font-weight: bold;
    padding: 3px 0px 3px 14px;
    position: relative;
}
ul.elenco_manca li:before{
    content: "\2022";
    position: absolute;
    left: 0px;
    color: var(--color1, #0e7ab5);
}

/*  ===== ORARI DI LAVORO =====
    La settimana in sola lettura sulla scheda, e la finestrella che la
    modifica (AssunzioniNew.orari). Stessa tabella per tutti e due, cosi'
    quello che si vede nella finestrella e' quello che resta sulla scheda. */
div.tab_orari_scroll{
    overflow-x: auto;
    margin-top: 10px;
}
table.tab_orari{
    width: 100%;
    min-width: 700px;
    border-collapse: collapse;
    font-size: 0.95em;
}
table.tab_orari th{
    background: rgba(0,0,0,.04);
    color: var(--c3-ink, #123);
    font-weight: 600;
    text-align: center;
    padding: 6px 8px;
    border: 1px solid var(--c3-line2, #D8E3EC);
    white-space: nowrap;
}
table.tab_orari tr.sotto_testata th{
    font-weight: 400;
    font-style: italic;
    font-size: 0.85em;
    padding: 3px 8px;
}
table.tab_orari td{
    padding: 4px 8px;
    border: 1px solid var(--c3-line2, #D8E3EC);
    text-align: center;
    vertical-align: middle;
    height: 38px;
}
table.tab_orari td.c_gg{
    text-align: left;
    white-space: nowrap;
    width: 170px;
}
table.tab_orari td.c_gg label{
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0px;
    cursor: pointer;
    font-weight: 600;
}
table.tab_orari th.c_ore, table.tab_orari td.c_ore{ width: 96px; font-weight: 600; }
table.tab_orari th.c_r,   table.tab_orari td.c_r{   width: 44px; }
table.tab_orari th.c_dup, table.tab_orari td.c_dup{ width: 46px; }
table.tab_orari tbody tr:nth-child(even){ background: rgba(0,0,0,.018); }
table.tab_orari td input[type="text"]{
    width: 78px;
    text-align: center;
    margin: 0px auto;
}

/*  Come nel cloud: sul giorno in cui non si lavora non si vede nessun
    comando, e senza la spunta della seconda fascia il rientro non c'e'. */
table.tab_orari tr.riga_gg.spenta td.c_gg label{ font-weight: 400; color: var(--c3-muted, #8CA3B5); }
table.tab_orari tr.riga_gg.spenta td.c_ore,
table.tab_orari tr.riga_gg.spenta td.c_f1 select,
table.tab_orari tr.riga_gg.spenta td.c_r input,
table.tab_orari tr.riga_gg.spenta td.c_dup i{ visibility: hidden; }
table.tab_orari tr.riga_gg.senza_rientro td.c_f2 select{ visibility: hidden; }

/*  L'iconcina che copia l'orario del giorno sugli altri giorni spuntati:
    e' il "Duplica orari" del vecchio riquadro. */
table.tab_orari td.c_dup i{
    color: var(--color1, #0e7ab5);
    cursor: pointer;
    font-size: 15px;
    opacity: .75;
}
table.tab_orari td.c_dup i:hover{ opacity: 1; }

/*  Sulla scheda si legge soltanto: si modifica dal + o cliccando la riga. */
table.tab_orari.sola_lettura tbody tr{ cursor: pointer; }
table.tab_orari.sola_lettura tbody tr:hover{ background: rgba(0,0,0,.05); }
table.tab_orari.sola_lettura tbody tr.vuota td{ color: var(--c3-muted, #8CA3B5); }
div.nessun_orario{
    margin-top: 12px;
    font-style: italic;
    color: var(--c3-muted, #8CA3B5);
}

/*  ===== LA FINESTRELLA =====
    Larga il giusto per la settimana, non a tutto schermo. Il bordo del BOX
    non serve: la cornice ce l'ha gia' la finestrella, e due bordi uno dentro
    l'altro fanno l'effetto "incollato". */
/*  La finestrella prende tutta la larghezza che il framework le da'.
    Serve dirlo: il core la disegna `inline-block`, e siccome la settimana sta
    dentro un riquadro che scorre (overflow-x:auto), una scatola inline-block si
    stringe sul minimo e il risultato erano 400px con la tabella che sbordava e
    le etichette una sopra l'altra. */
/*  La finestrella e' larga quanto le serve, non quanto lo schermo: la settimana
    con le due fasce sta in circa 780px, e allargarla oltre vorrebbe dire o un
    vuoto a destra o una colonna dei giorni mezza vuota (viste tutte e due il
    04/09/2026). Sotto gli 800px si stringe da sola e la tabella scorre.
    Il `width` serve perche' il core disegna la sottoscheda `inline-block`: senza,
    con la tabella dentro un riquadro che scorre, si stringerebbe sul minimo. */
/*  ANCHE LA FINESTRA SI STRINGE, non solo il suo contenuto: il core disegna
    ogni sottoscheda in un riquadro da 1024px fissi, e per la settimana degli
    orari erano cento pixel di bianco per lato. Si restringe SOLO questa
    finestra, riconoscendola dal contenuto (`:has`), cosi' le altre sottoschede
    del portale (per esempio le Valutazioni sull'Operatore) restano come sono.
    Il centraggio lo fa il margine automatico del core, che si rifa' da solo
    sulla nuova larghezza. */
div.F4M_SUBTAB:has(> div.AssunzioniNew_orari),
div.F4M_SUBTAB:has(> div.Contratti_orari){
    /*  Larga quanto serve alla settimana: con le tendine la tabella e' larga
        circa 800px, e con 1000 ci sta tutta senza scorrere a destra e a
        sinistra (chiesto da lei il 04/09/2026). */
    width: 1000px;
    max-width: 96vw;
    /*  IL FONDO BIANCO VA DETTO. Dietro la sottoscheda c'e' un velo scuro
        (F4M_SUBTAB_BOX, nero al 60%): se il riquadro resta trasparente il velo
        traspare e la finestrella si vede tutta spenta, come se fosse disattivata
        - e' quello che succedeva aprendola dal Contratto (04/09/2026). */
    background: var(--colorbianco0, #ffffff);
}

div.AssunzioniNew_orari,
div.Contratti_orari{
    min-width: 320px;
    width: 100%;
    max-width: 960px;
    margin: 0px auto;
    box-sizing: border-box;
}
div.AssunzioniNew_orari div.BOX,
div.Contratti_orari div.BOX{ padding: 14px 18px 18px 18px; }
div.AssunzioniNew_orari div.BOX,
div.Contratti_orari div.BOX,
div.AssunzioniNew_orari form.TAB,
div.Contratti_orari form.TAB{
    border: none !important;
    box-shadow: none !important;
    background: transparent;
}
div.AssunzioniNew_orari div.tit_orari,
div.Contratti_orari div.tit_orari{
    font-size: 1.15em;
    font-weight: 600;
    color: var(--color1, #0e7ab5);
    margin-bottom: 10px;
}
div.AssunzioniNew_orari div.sotto_tit,
div.Contratti_orari div.sotto_tit{
    font-weight: 600;
    font-style: italic;
    color: var(--color1, #0e7ab5);
    margin: 14px 0px 4px 0px;
}
div.AssunzioniNew_orari div.riga_sotto_tit,
div.Contratti_orari div.riga_sotto_tit{
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 16px;
    margin-top: 14px;
}
div.AssunzioniNew_orari div.riga_sotto_tit div.sotto_tit,
div.Contratti_orari div.riga_sotto_tit div.sotto_tit{ margin: 0px; }
div.AssunzioniNew_orari span.bt_standard,
div.Contratti_orari span.bt_standard{
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 12px;
    border-radius: 999px;
    border: 1px solid var(--color1, #0e7ab5);
    color: var(--color1, #0e7ab5);
    background: var(--colorbianco0, #ffffff);
    font-size: 0.88em;
    cursor: pointer;
    white-space: nowrap;
}
div.AssunzioniNew_orari span.bt_standard:hover,
div.Contratti_orari span.bt_standard:hover{
    background: var(--color1, #0e7ab5);
    color: var(--colorbianco0, #ffffff);
}

/*  La striscia con le due persone e il regime. Le regole di div.AssunzioniNew
    non arrivano qui: la finestrella e' un contenitore suo. */
div.AssunzioniNew_orari div.riga_info,
div.Contratti_orari div.riga_info{
    display: flex;
    flex-wrap: wrap;
    gap: 10px 34px;
    margin: 0px 0px 4px 0px;
    padding: 10px 14px;
    border-radius: 8px;
    background: rgba(0,0,0,.035);
}
div.AssunzioniNew_orari div.voce_info,
div.Contratti_orari div.voce_info{
    display: flex;
    flex-direction: column;
    min-width: 150px;
    max-width: 420px;
}
div.AssunzioniNew_orari div.voce_info span,
div.Contratti_orari div.voce_info span{
    font-size: 0.8em;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--c3-muted, #8CA3B5);
}
div.AssunzioniNew_orari div.voce_info b,
div.Contratti_orari div.voce_info b{
    font-size: 0.95em;
    color: var(--c3-ink, #123);
    word-break: break-word;
}

div.AssunzioniNew_orari div.riga_totali,
div.Contratti_orari div.riga_totali{
    display: flex;
    flex-wrap: wrap;
    gap: 10px 28px;
    margin-top: 14px;
    padding: 10px 12px;
    background: var(--c3-surface2, #EEF4F9);
    border-radius: var(--radius1, 10px);
}
div.AssunzioniNew_orari div.voce_tot,
div.Contratti_orari div.voce_tot{ display: flex; flex-direction: column; min-width: 170px; }
div.AssunzioniNew_orari div.voce_tot span,
div.Contratti_orari div.voce_tot span{
    font-size: 0.8em;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--c3-muted, #8CA3B5);
}
div.AssunzioniNew_orari div.voce_tot b,
div.Contratti_orari div.voce_tot b{ font-size: 1.1em; color: var(--c3-ink, #123); }
div.AssunzioniNew_orari div.nota_orari,
div.Contratti_orari div.nota_orari{
    margin-top: 10px;
    font-size: 0.85em;
    font-style: italic;
    color: var(--c3-muted, #8CA3B5);
}

/*  La finestrella si comporta come le altre sottoschede del portale
    (Valutazioni, Allegati): il framework nasconde la scheda e la mette in
    mezzo. Qui si aggiunge solo l'ombra, per staccarla dallo sfondo. */
div.F4M_SUBTAB_BOX:has(div.AssunzioniNew_orari){
    padding: 24px 16px;
}
div.F4M_SUBTAB_BOX:has(div.AssunzioniNew_orari) div.F4M_SUBTAB{
    background: var(--colorbianco0, #ffffff);
    box-shadow: 0px 18px 50px rgba(0,0,0,.35);
}

/*  Negli avvisi: prima la riga che introduce, poi le voci a capo, una per
    riga. Devono essere due blocchi, se no finiscono affiancate. */
div.manca_intro{
    display: block;
    text-align: center;
    margin-bottom: 6px;
}
ul.elenco_manca{
    display: block;
    width: -moz-fit-content;
    width: fit-content;
    max-width: 100%;
    margin: 0px auto;
    padding: 0px;
    list-style: none;
    text-align: left;
}
ul.elenco_manca li{
    padding: 3px 0px 3px 14px;
    position: relative;
}
ul.elenco_manca li:before{
    content: "\2022";
    position: absolute;
    left: 0px;
    color: var(--color1, #0e7ab5);
}

/*  IMPORTANTE: il tema del portale nasconde le caselle di spunta normali
    (display:none) perche' ne disegna una sua. Qui servono quelle vere, e
    vanno rimesse in vista: senza, la tabella sembra vuota e non si riesce a
    spuntare niente - ne' il giorno, ne' la seconda fascia. */
table.tab_orari input[type="checkbox"]{
    display: inline-block !important;
    -webkit-appearance: checkbox !important;
    appearance: checkbox !important;
    position: static !important;
    width: 17px;
    height: 17px;
    min-width: 17px;
    margin: 0px;
    padding: 0px;
    opacity: 1;
    cursor: pointer;
    accent-color: var(--color1, #0e7ab5);
}

/*  ===== NERO E AZZURRO, NON TUTTO AZZURRO =====
    Nelle strisce in sola lettura e nella settimana degli orari il testo
    ereditava l'azzurro del tema e finiva per essere azzurro dalla prima
    all'ultima parola. Qui si dice chi e' cosa: etichette in grigio, contenuto
    in nero, e l'azzurro tenuto per il dato che conta davvero (le ore) e per
    quello su cui si clicca. */
div.Contratti .etichetta_info,
div.AssunzioniNew .etichetta_info{
    color: var(--color1, #0e7ab5) !important;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: .03em;
    opacity: 1;
}
div.Contratti .valore_info,
div.AssunzioniNew .valore_info{
    color: #1F2A33 !important;
}
/*  Quello su cui si clicca resta azzurro: e' l'unico modo per accorgersene. */
div.Contratti .valore_info .lbl_fx,
div.AssunzioniNew .valore_info .lbl_fx,
div.Contratti .valore_info a,
div.AssunzioniNew .valore_info a{ color: var(--color1, #0e7ab5) !important; }

/*  INFORMAZIONI CONTRATTUALI della Richiesta: i valori della STESSA misura
    delle caselle della scheda, numero del contratto compreso (richiesta degli
    utenti del 29/09/2026). In maiuscolo solo FULL / LIGHT / BASIC: lo fa
    AssunzioniNew.js (mostraInformazioni), non il CSS. */
div.Contratti .riga_info .etichetta_info,
div.AssunzioniNew .riga_info .etichetta_info{
    /* e le etichette sopra i valori come quelle dei campi (gs-label: 16px,
       niente maiuscolo) - richiesta del 29/09/2026 */
    font-size: 1rem !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}
div.AssunzioniNew #a_ammin .riga_info .valore_info,
div.AssunzioniNew #a_ammin .riga_info .valore_info *,
div.Contratti #c_ammin .riga_info .valore_info,
div.Contratti #c_ammin .riga_info .valore_info *{ font-size: 1.2rem !important; }

/*  La settimana in sola lettura sulla scheda. */
table.tab_orari th{ color: var(--color1, #0e7ab5); }
table.tab_orari tr.sotto_testata th{ color: var(--color1, #0e7ab5); opacity: .75; }
table.tab_orari td.c_gg{ color: #1F2A33; }
table.tab_orari td.c_f1, table.tab_orari td.c_f2{ color: #1F2A33; }
/*  Nella griglia della scheda le celle degli orari si chiamano v1..v4. */
table.tab_orari.sola_lettura td.c_f1,
table.tab_orari.sola_lettura td.c_f2,
table.tab_orari td.v1, table.tab_orari td.v2,
table.tab_orari td.v3, table.tab_orari td.v4{
    color: #1F2A33;
    font-variant-numeric: tabular-nums;
}
/*  Le ore del giorno sono il numero che si va a cercare: restano nere come
    il resto del contenuto, ma in grassetto, cosi' si fanno trovare lo stesso. */
table.tab_orari td.c_ore{ color: #1F2A33; font-weight: 700; }
table.tab_orari tr.riga_gg.spenta td.c_gg,
table.tab_orari tr.riga_gg.vuota td.c_gg{ color: #9AA5AE; }

/*  ===== RESPIRO E ALLINEAMENTO DELLE DUE SCHEDE =====
    (Richiesta d'assunzione e Contratto di lavoro: stesse regole, sono gemelle)
    Due difetti che si vedevano a occhio:
    - lo spazio fra le righe era scritto a mano su ogni riga (margin-top:15px),
      e con le righe che compaiono solo in certi casi diventava irregolare;
    - ogni tipo di campo aveva la larghezza che gli dava il tema (le date 150px,
      i numeri 197px, il testo tutta la colonna), percio' i bordi destri non
      cadevano mai sulla stessa linea.
    Qui lo spazio lo decide il foglio di stile, e ogni campo riempie la sua
    colonna: sono le colonne a dare il ritmo, come in tutte le altre schede. */
div.AssunzioniNew div.bt-row,
div.Contratti div.bt-row{ margin-top: 24px; }
div.AssunzioniNew div.bt-row:first-child,
div.Contratti div.bt-row:first-child{ margin-top: 0px; }
div.AssunzioniNew div.gs-label,
div.Contratti div.gs-label{ margin-bottom: 2px; }

/*  Serve !important, e non e' un capriccio: i campi numerici e le date se la
    larghezza se la scrivono da soli sull'elemento (style="width:185px"), e uno
    stile scritto li' batte qualunque foglio di stile. */
div.AssunzioniNew div.elem > input,
div.Contratti div.elem > input,
div.AssunzioniNew div.elem > select,
div.Contratti div.elem > select,
div.AssunzioniNew div.elem > textarea,
div.Contratti div.elem > textarea{
    /*  Le stesse misure della scheda Famiglie: il campo riempie la colonna ma
        lascia 3px per lato, se no due campi affiancati si toccano.
        Il box-sizing serve perche' i numerici, senza, sommano l'imbottitura
        alla larghezza e restano piu' larghi degli altri. */
    width: calc(100% - 6px) !important;
    margin: 0px 3px;
    box-sizing: border-box;
}

/*  Le date restano della loro misura: allungarle per riempire la colonna le
    faceva sembrare campi di testo, e una data e' sempre lunga uguale. */
div.AssunzioniNew div.elem > div.f4m_wrap_date,
div.Contratti div.elem > div.f4m_wrap_date{ margin: 0px 3px; }

/*  I gruppi di pallini (convivenza, tabella G) hanno gia' la loro altezza:
    qui basta che non si incollino all'etichetta. */
div.AssunzioniNew div.gs-radio-center,
div.Contratti div.gs-radio-center{ margin-top: 2px; }

/*  I gruppi di pallini occupano l'altezza di un campo (40px) anche quando sono
    una riga sola di "Si / No": e' li' che si formavano i vuoti piu' grossi.
    Qui prendono l'altezza che serve loro. */
div.AssunzioniNew div.elem.gs-radio-center,
div.Contratti div.elem.gs-radio-center{
    min-height: 0px;
    padding: 4px 0px 0px 0px;
    line-height: 22px;
}
div.AssunzioniNew div.elem.gs-radio-center label,
div.Contratti div.elem.gs-radio-center label{ margin: 0px 18px 0px 0px; }

/*  Le sezioni respiravano troppo in fondo, prima della barra successiva. */
div.AssunzioniNew div.collapsible-content,
div.Contratti div.collapsible-content{ padding-bottom: 6px; }
div.AssunzioniNew div.collapsible-box,
div.Contratti div.collapsible-box{ margin-bottom: 10px; }

/*  ===== NIENTE BUCHI A DESTRA (scheda Contratti) =====
    La griglia bootstrap da' alle colonne una larghezza fissa in dodicesimi:
    se una riga non arriva a dodici - perche' un campo si vede solo in certi
    casi, o perche' la riga ne ha tre e non quattro - l'avanzo resta bianco a
    destra. Qui le colonne, oltre alla loro larghezza minima, si prendono
    l'avanzo: la riga finisce sempre sul bordo destro, e quando un campo
    condizionato non si vede gli altri si allargano da soli invece di lasciare
    il vuoto. Il max-width va tolto perche' bootstrap lo cabla insieme alla
    larghezza (flex: 0 0 25%; max-width: 25%) e senza toglierlo non si allarga
    niente.
    Fanno eccezione le colonne delle date (col_data): la data e' sempre lunga
    uguale e allargarle vorrebbe dire spostare il bianco dentro la colonna
    invece di toglierlo. */
div.Contratti div.bt-row > [class*="col-"]:not(.col_data){
    flex-grow: 1;
    max-width: 100%;
}
div.Contratti div.bt-row > .col_data{ min-width: 165px; }

/*  Quando una riga va a capo (schermo stretto, o tutti i campi condizionati
    aperti) fra i due tronconi ci vuole lo stesso spazio che c'e' fra due
    righe: il margine fra righe qui sopra dentro la riga non arriva. */
div.Contratti div.bt-row{ row-gap: 20px; }

/*  I campi di una riga finiscono tutti sulla stessa linea, anche quando
    un'etichetta va a capo e le altre no: la colonna diventa una colonnina in
    verticale, l'etichetta resta in alto e il campo scende in fondo. Senza
    questo, in una riga di cinque campi corti (ferie, preavviso, permesso,
    patrono) i riquadri restavano sfalsati di una riga di testo. */
div.Contratti div.bt-row > [class*="col-"]{
    display: flex;
    flex-direction: column;
}
div.Contratti div.bt-row > [class*="col-"] > div.gs-form-element{
    display: flex;
    flex-direction: column;
    height: 100%;
}
div.Contratti div.bt-row > [class*="col-"] > div.gs-form-element > div.elem,
div.Contratti div.bt-row > [class*="col-"] > div.elem{ margin-top: auto; }
/*  ...MA NON I GRUPPI DI PALLINI (23/09/2026, sua segnalazione: "i radio
    button hanno dello spazio immenso dalla label al pallino").
    `margin-top: auto` dentro una colonna flex spinge il campo IN FONDO, e per
    una casella va benissimo: due caselle accanto si allineano anche se
    un'etichetta e' andata a capo. Una fila di pallini pero' e' alta 26px invece
    di 40, e accanto a una casella finiva spinta giu': misurato, **16px fra
    l'etichetta e i pallini contro i 2px di un campo normale**, cioe' otto volte
    tanto. Senza cornice intorno, quello spazio fa sembrare i pallini staccati
    dalla loro domanda.
    Qui tornano attaccati all'etichetta. Si perde l'allineamento in basso con la
    casella accanto, ed e' il male minore: una domanda e la sua risposta devono
    stare vicine piu' di quanto due controlli diversi debbano avere la stessa
    base. */
div.Contratti div.bt-row > [class*="col-"] > div.gs-form-element > div.elem.gs-radio-center,
div.Contratti div.bt-row > [class*="col-"] > div.elem.gs-radio-center,
div.AssunzioniNew div.bt-row > [class*="col-"] > div.gs-form-element > div.elem.gs-radio-center,
div.AssunzioniNew div.bt-row > [class*="col-"] > div.elem.gs-radio-center{
    margin-top: 2px;
}

/*  ===== LA SETTIMANA DEGLI ORARI (scheda Contratti) =====
    A sinistra la settimana, di fianco quello che la riassume: i tre totali e i
    due giorni di riposo. Prima la tabella si prendeva tutta la riga e i cinque
    campi stavano sotto, su due righe mezze vuote. */
div.Contratti div.riquadro_settimana,
div.AssunzioniNew div.riquadro_settimana{
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0px 24px;
    margin-top: 12px;
}
div.Contratti div.riquadro_settimana > table.griglia_orari,
div.AssunzioniNew div.riquadro_settimana > table.griglia_orari{
    flex: 1 1 540px;
    width: auto;
    margin: 0px;
}
div.Contratti div.fianco_settimana,
div.AssunzioniNew div.fianco_settimana{
    flex: 1 1 290px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/*  L'orario della giornata e' un campo di testo libero (in tabella e' un
    varchar da 50), e a video si legge male: cifre di larghezza diversa, testo
    piccolo come un'etichetta e un riquadro largo mezza scheda per scrivere
    "08:00-12:00". Qui si scrive grande, con le cifre tutte della stessa
    larghezza cosi' gli orari di giorni diversi restano incolonnati. */
div.Contratti table.griglia_orari td.orari input,
div.Contratti table.griglia_orari td.ore input{
    font-size: var(--c3-fs-md, 15px);
    font-variant-numeric: tabular-nums;
    letter-spacing: .02em;
}
/*  Il formato giusto, scritto una volta nell'intestazione: e' un promemoria,
    non un'etichetta, quindi piccolo e in grigio. */
div.Contratti table.griglia_orari th span.esempio_orari,
div.AssunzioniNew table.griglia_orari th span.esempio_orari{
    font-weight: 400;
    font-size: var(--c3-fs-xs, 12px);
    color: var(--c3-muted, #8CA3B5);
    margin-left: 8px;
    white-space: nowrap;
}
/*  Il segnaposto dentro le righe vuote (lo mette Contratti.js) si deve leggere
    come un suggerimento, non come un orario gia' scritto. */
div.Contratti table.griglia_orari td.orari input::placeholder{
    color: var(--c3-muted, #8CA3B5);
    opacity: .8;
    font-style: italic;
}





/*  I tre totali e i due giorni di riposo: si leggono, non si toccano.
    Li scrive la finestrella degli orari. */
/*  I cinque valori in sola lettura su due righe, tre e due, con le colonne
    tutte della stessa larghezza: cosi' stanno incolonnati invece di andare a
    capo dove capita. */
div.AssunzioniNew div.riga_totali_orari{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px 24px;
    margin-top: 12px;
}
div.AssunzioniNew div.riga_totali_orari div.voce_info{ min-width: 0px; max-width: none; }
@media (max-width: 700px){
    div.AssunzioniNew div.riga_totali_orari{ grid-template-columns: repeat(2, 1fr); }
}

/*  I bottoni dentro la maschera di stampa. Nelle maschere del cloud erano due
    immagini (./img/print.png, ./img/gear.png) che su questo portale non
    esistono: si vedevano due segnaposti rotti. Ora sono bottoni veri, con la
    stessa icona e lo stesso azzurro di quelli di Ipotesi di spesa e Lettera di
    incarico, ma con l'etichetta accanto perche' qui non stanno nella barra in
    alto e da soli non si capirebbero. */
/*  La finestra sta appesa al corpo della pagina, fuori dalla scheda: le regole
    agganciate a div.AssunzioniNew non ci arrivano, per questo si nomina anche
    lei. */
div.AssunzioniNew .PRINT_BOX .bt_stampa,
div.Contratti .PRINT_BOX .bt_stampa,
#f4m_alert .PRINT_BOX .bt_stampa{
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 12px 10px 0px 0px;
    padding: 7px 16px;
    border-radius: 999px;
    border: 1px solid var(--color1, #0e7ab5);
    background: var(--color1, #0e7ab5);
    color: var(--colorbianco0, #ffffff);
    font-size: 0.92em;
    cursor: pointer;
    white-space: nowrap;
}
div.AssunzioniNew .PRINT_BOX .bt_stampa:hover,
div.Contratti .PRINT_BOX .bt_stampa:hover,
#f4m_alert .PRINT_BOX .bt_stampa:hover{
    background: var(--colorbianco0, #ffffff);
    color: var(--color1, #0e7ab5);
}
div.AssunzioniNew .PRINT_BOX .bt_stampa i,
div.Contratti .PRINT_BOX .bt_stampa i,
#f4m_alert .PRINT_BOX .bt_stampa i{ font-size: 15px; }
/*  Dentro la finestra: i campi della maschera larghi come il riquadro, le
    etichette come nel resto del portale, e i due bottoni in fondo affiancati. */{ padding: 16px 18px 18px 18px; }
/*  La finestra vestita come quella di Ipotesi di spesa: intestazione azzurra,
    un riquadro con dentro i campi, e i bottoni nel piede. */{
    border: none;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0px 18px 50px rgba(0,0,0,.35);
}
/*  I bottoni della maschera, spostati nel piede, prendono l'aria di quelli
    Bootstrap della finestra di Ipotesi di spesa. */{ margin: 0px; }

/*  ===== LA SETTIMANA IN SOLA LETTURA (Richiesta d'assunzione) =====
    Stesse colonne della scheda Contratti, ma qui non si scrive: si legge, e si
    cambia dalla finestrella degli orari (il + sulla testata o il clic su una
    riga). Le celle sono testo, non caselle: percio' vanno rialzate all'altezza
    che avevano i campi, se no la tabella si accartoccia. */
div.AssunzioniNew table.griglia_orari td.v_ore,
div.AssunzioniNew table.griglia_orari td.v_orari{
    height: 34px;
    font-size: var(--c3-fs-md, 15px);
    font-variant-numeric: tabular-nums;
    letter-spacing: .02em;
}
div.AssunzioniNew table.griglia_orari td.v_ore{ font-weight: 600; }
/*  Le righe si possono cliccare: si deve vedere. */
div.AssunzioniNew table.griglia_orari tbody tr.riga_gg{ cursor: pointer; }
div.AssunzioniNew table.griglia_orari tbody tr.riga_gg:hover{
    background: var(--c3-accent-l, #7ccdf3);
    background: color-mix(in srgb, var(--c3-accent, #0095d6) 12%, transparent);
}
/*  Un giorno non lavorato resta in riga ma spento: si vede che c'e' e che e'
    escluso, senza far ballare la tabella (lo stesso di AssOrari). */
div.AssunzioniNew table.griglia_orari tbody tr.giorno_spento td{ opacity: .45; }

/*  Un campo bloccato deve restare LEGGIBILE: il contratto e' fatto, quei valori
    si consultano ancora. Senza questa regola un campo disabilitato sbiadisce al
    punto che non si legge (nel cloud c'era la classe `disabledBlack` per lo
    stesso motivo).
    Dal 22/09/2026 vale per TUTTE E DUE le schede: la Richiesta d'assunzione
    blocca i campi quando il Consorzio ha approvato la lettera, e ne blocca
    comunque alcuni sempre (amministrazione, paga CCNL, paga totale).
    ATTENZIONE aggiungendo altri nomi qui: il resto del selettore va ripetuto
    per intero su ogni riga, se no la prima diventa un selettore a se' - e'
    l'errore del 04/09/2026 sulla finestrella degli orari. */
div.Contratti .campo_bloccato,
div.Contratti select.campo_bloccato,
div.Contratti input.campo_bloccato,
div.Contratti .campo_bloccato input,
div.Contratti .campo_bloccato select,
div.AssunzioniNew .campo_bloccato,
div.AssunzioniNew select.campo_bloccato,
div.AssunzioniNew input.campo_bloccato,
div.AssunzioniNew .campo_bloccato input,
div.AssunzioniNew .campo_bloccato select{
    color: var(--c3-text, #193264) !important;
    -webkit-text-fill-color: var(--c3-text, #193264);
    opacity: 1;
    /*  LO SFONDO VUOLE `!important` E UN GRIGIO CHE SI VEDA (23/09/2026).
        Prima non ce l'aveva - l'aveva solo il testo - e in `main`, che NON usa
        CORE3 ma il vecchio angelus.css, il foglio del core vinceva sulle
        TENDINE: un campo bloccato era trasparente, identico a uno da compilare.
        Su una scheda dove si puo' cambiare solo tre cose su quarantasette, non
        vedere quali e' il difetto peggiore di tutti.
        Il colore e' --c3-bg2 e non --c3-bg: il primo e' un grigio piu' deciso,
        e sul bianco --c3-bg si distingueva del 4%, cioe' non si distingueva.
        `angelus.css` NON si tocca: online e' piu' aggiornato del nostro. */
    /*  BIANCO, DAL 29/09/2026 (richiesta degli utenti): "i box bianchi come
        su operatore". Prima era grigio (vedi sopra, 23/09). La differenza con un
        campo da compilare ora la fanno la freccia della tendina e il pulsante
        cerca, che sui campi bloccati spariscono (regole qui sotto). */
    background-color: #fff !important;
    cursor: default;
}
/*  Sola lettura = solo il testo: niente freccia nelle tendine, niente casella
    "cerca" e lente nelle searchcombo (29/09/2026). */
div.Contratti select.campo_bloccato,
div.AssunzioniNew select.campo_bloccato{
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    background-image: none !important;
}
div.Contratti .f4m_wrap_searchcombo.campo_bloccato .f4m_searchcombo_box_search,
div.Contratti .f4m_wrap_searchcombo.campo_bloccato .f4m_searchcombo_box_icon,
div.AssunzioniNew .f4m_wrap_searchcombo.campo_bloccato .f4m_searchcombo_box_search,
div.AssunzioniNew .f4m_wrap_searchcombo.campo_bloccato .f4m_searchcombo_box_icon{
    display: none !important;
}
/*  Senza il pezzo "cerca" a sinistra la tendina resta con gli angoli
    sinistri squadrati (il core li arrotonda solo a destra): si arrotondano
    tutti e quattro, come le altre caselle (29/09/2026). */
div.Contratti .f4m_wrap_searchcombo.campo_bloccato select,
div.AssunzioniNew .f4m_wrap_searchcombo.campo_bloccato select{ border-radius: 10px !important; }
/*  I valori in sola lettura dentro le strisce (riposi, totali): li' il
    bianco non serve, stanno gia' nel loro riquadro. */
div.Contratti .valore_info.campo_bloccato,
div.AssunzioniNew .valore_info.campo_bloccato{ background-color: transparent !important; }
/*  Le date bloccate: via il calendario, come la lente delle searchcombo. */
div.Contratti .f4m_wrap_date:has(input.campo_bloccato) .f4m_date_picker,
div.AssunzioniNew .f4m_wrap_date:has(input.campo_bloccato) .f4m_date_picker{ display: none !important; }
div.Contratti .f4m_wrap_date input.campo_bloccato,
div.AssunzioniNew .f4m_wrap_date input.campo_bloccato{ border-radius: 10px !important; }
/*  "Di anticipare TFR": una risposta sola, quindi una casella bianca
    arrotondata come le altre, non la striscia grigia (29/09/2026). */
div.AssunzioniNew .riga_info.riga_tfr{
    background: #fff;
    border: 1px solid #c0c0c0;
    border-radius: 10px;
    padding: 8px 12px;
    margin-top: 0;
}

/*  ===== LA FINESTRA DELLE STAMPE (scheda Contratti) =====
    Stessa forma di quella di Ipotesi di spesa: e' un avviso del framework
    (#f4m_alert) con il titolo in azzurro, [ANNULLA] in alto e un bottone
    STAMPA in fondo. Qui si veste solo il contenuto. */
#f4m_alert .tit_stampe{
    color: var(--c3-accent, #0095d6);
    font-weight: 700;
    font-size: var(--c3-fs-md, 15px);
}
/*  La finestra e' larga quanto basta ai campi, non di piu' (04/09/2026): con
    una sola scelta e due caselle corte, quattrocento pixel erano tutti bianchi. */
#f4m_alert .finestra_stampe{
    text-align: left;
    min-width: 400px;
    max-width: 620px;
}
#f4m_alert .finestra_stampe .gs-form-element{ margin-bottom: 12px; }
/*  PULSANTI E SPUNTE DENTRO LA MASCHERA DELLA STAMPA (23/09/2026).

    A DISEGNARLI E' IL FRAMEWORK, come nella scheda: `preparaMaschera` scrive
    il gruppo nella forma che usa la scheda (`<label><input f4m_type="RADIO">`)
    e poi chiama `.f4m_radio()` / `.f4m_checkbox()`. Quando il framework li
    prende in mano aggiunge lui la classe `group_radio` / `group_checkbox`, e
    da li' in poi il vestito e' quello del tema: qui sotto non si tocca niente.

    QUELLO CHE SEGUE E' SOLO IL RIPIEGO, per quando il framework NON ha preso
    in mano il gruppo (un core piu' vecchio, un tipo che non conosce): restano
    i controlli nativi del browser, e almeno vanno messi in fila e resi
    visibili. Senza `display`, in `main` misurano 0x0 - il core vecchio spegne
    i pallini nativi con `label > input[type="radio"] { display: none; }` per
    ridisegnarli con dieci PNG, e quella regola colpisce proprio la forma che
    usiamo noi, il pallino DENTRO l'etichetta. */
/*  LO SPAZIO FRA LE VOCI, quando il framework ha preso in mano il gruppo.
    La struttura che costruisce e' IDENTICA a quella della scheda
    (`a.fcs_group_radio > label > input`, verificato a confronto), ma la regola
    che le distanzia e' agganciata a `div.Contratti` - e la finestra delle
    stampe sta FUORI dalla scheda, dentro `#f4m_alert`. Senza queste tre righe
    si legge "Me medesimo(pallino)Altro", tutto attaccato.
    Valori copiati dalla regola della scheda, non inventati: `gap: 4px 14px`. */
#f4m_alert .finestra_stampe .group_radio,
#f4m_alert .finestra_stampe .group_checkbox{
	display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: center;
}
/* le spunte sono tredici: in colonna, se no diventano un muro di parole */
#f4m_alert .finestra_stampe .group_checkbox{ flex-direction: column; align-items: flex-start; gap: 4px; }
#f4m_alert .finestra_stampe .group_radio label,
#f4m_alert .finestra_stampe .group_checkbox label{ margin: 0 18px 0 0; font-weight: normal; }

#f4m_alert .finestra_stampe .gruppo_radio:not(.group_radio),
#f4m_alert .finestra_stampe .gruppo_check:not(.group_checkbox){
	display: flex; flex-wrap: wrap; gap: 6px 20px; align-items: center;
	padding: 2px 0;
}
/* le spunte sono tredici: in colonna, se no diventano un muro di parole */
#f4m_alert .finestra_stampe .gruppo_check:not(.group_checkbox){
	flex-direction: column; align-items: flex-start; gap: 4px;
}
#f4m_alert .finestra_stampe .gruppo_radio:not(.group_radio) label,
#f4m_alert .finestra_stampe .gruppo_check:not(.group_checkbox) label{
	display: inline-flex; align-items: center; gap: 7px;
	cursor: pointer; font-weight: normal; white-space: nowrap;
}
#f4m_alert .finestra_stampe .gruppo_check:not(.group_checkbox) label{ white-space: normal; }
#f4m_alert .finestra_stampe .gruppo_radio:not(.group_radio) input,
#f4m_alert .finestra_stampe .gruppo_check:not(.group_checkbox) input{
	display: inline-block !important;
	-webkit-appearance: auto; appearance: auto;
	width: auto !important; height: auto !important;
	min-width: 0; margin: 0; padding: 0; flex: none;
	accent-color: var(--c3-accent, #0095d6);
}

/*  OGNI TENDINA SI PORTA DIETRO LE SUE COSE (23/09/2026).
    Prima le due tendine stavano in cima e la maschera dei parametri compariva
    una sola, in fondo: non si capiva se quei campi fossero del documento scelto
    sopra o di quello scelto sotto. Adesso ogni tendina e' un blocco - etichetta,
    tendina, avviso, campi - e quello in uso si accende.
    E' un fondo leggero piu' una barra a sinistra: basta a dire "tutto questo sta
    insieme" senza aggiungere altre parole a una finestra che ne ha gia' tante. */
#f4m_alert .finestra_stampe .blocco_stampa{
	padding: 10px 12px 2px 12px;
	margin: 0 0 6px 0;
	border-left: 3px solid transparent;
	border-radius: 0 8px 8px 0;
}
#f4m_alert .finestra_stampe .blocco_stampa.attivo{
	background: var(--c3-bg, #f2f4f6);
	border-left-color: var(--c3-accent, #0095d6);
}
/*  Nel blocco spento la tendina resta viva - si cambia idea scegliendo di la' -
    ma l'etichetta si smorza, cosi' l'occhio va su quello acceso. */
#f4m_alert .finestra_stampe .blocco_stampa:not(.attivo) .gs-label{ opacity: .7; }

/*  LA RIGA CHE DICE QUANTE COPIE SERVONO, e l'avviso sui licenziamenti.
    Nel cloud e' `.tooltiptext` sotto le tendine (Contratti.html); in intra
    mancava, ed era una delle ragioni per cui le stampe "non erano facili da
    capire": certi documenti vanno stampati in due o tre copie e non c'e' modo
    di saperlo. Aggiunta il 23/09/2026. */
#f4m_alert .finestra_stampe .tooltiptext{
	margin: -4px 0 12px 0; padding: 8px 12px;
	border-left: 3px solid var(--c3-accent, #0095d6);
	background: var(--c3-bg, #f2f4f6);
	color: var(--c3-text2, #495057);
	font-size: var(--c3-fs-xs, 13px); line-height: 1.35; border-radius: 0 6px 6px 0;
}
/* il foglio presenza della tabella G: si sceglie solo quando serve */
#f4m_alert .finestra_stampe .box_tabg_print .elem{ display: flex; gap: 18px; align-items: center; }
#f4m_alert .finestra_stampe .box_tabg_print label{ display: flex; gap: 6px; align-items: center; cursor: pointer; }
#f4m_alert .finestra_stampe .gs-label{
    color: var(--c3-accent, #0095d6);
    margin-bottom: 3px;
}
#f4m_alert .finestra_stampe select,
#f4m_alert .finestra_stampe input[type="text"],
#f4m_alert .finestra_stampe textarea{
    width: 100%;
    box-sizing: border-box;
}
/*  La maschera dei parametri del documento scelto: un riquadro, come nella
    finestra di Ipotesi di spesa. */
/*  Niente cornice attorno ai campi: su Ipotesi di spesa i campi stanno nella
    finestra e basta. Resta solo l'aria sopra e il limite d'altezza, per le
    maschere lunghe. */
#f4m_alert .PRINT_BOX:not(:empty){
    margin-top: 0px;
    max-height: 46vh;
    overflow: auto;
}
#f4m_alert .PRINT_BOX .label,
#f4m_alert .PRINT_BOX .gs-label{ color: var(--c3-accent, #0095d6); margin-bottom: 3px; }
/*  I bottoni della maschera che stampano non si vedono: a stampare e' il
    bottone STAMPA della finestra, uno solo, come su Ipotesi di spesa. Resta
    invece il bottone della firma, che stampa non e'. */
#f4m_alert .PRINT_BOX .btnPrintJasper,
#f4m_alert .PRINT_BOX .btnPrintSub{ display: none !important; }

/*  ===== I COLORI DELLA SETTIMANA =====
    In azzurro solo l'intestazione e il nome del giorno: sono le etichette.
    Le ore e gli orari sono il contenuto e vanno in nero, come in tutto il
    resto della scheda (chiesto da lei il 04/09/2026). */
div.Contratti table.griglia_orari th,
div.AssunzioniNew table.griglia_orari th,
div.Contratti table.griglia_orari td.giorno,
div.AssunzioniNew table.griglia_orari td.giorno{
    color: var(--c3-accent, #0095d6);
}
div.Contratti table.griglia_orari td.ore,
div.AssunzioniNew table.griglia_orari td.ore,
div.Contratti table.griglia_orari td.orari,
div.AssunzioniNew table.griglia_orari td.orari,
div.Contratti table.griglia_orari td.v_ore,
div.AssunzioniNew table.griglia_orari td.v_ore,
div.Contratti table.griglia_orari td.v_orari,
div.AssunzioniNew table.griglia_orari td.v_orari{
    color: #1F2A33;
}
/*  Il giorno spento resta grigio, etichetta e trattino insieme. */
div.Contratti table.griglia_orari tbody tr.giorno_spento td,
div.Contratti table.griglia_orari tbody tr.giorno_spento td.giorno,
div.AssunzioniNew table.griglia_orari tbody tr.giorno_spento td,
div.AssunzioniNew table.griglia_orari tbody tr.giorno_spento td.giorno{
    color: #9AA5AE;
    opacity: 1;
}


/*  La colonna di fianco alla griglia adesso e' una striscia di valori da
    leggere (i tre totali), non piu' campi: si mette in verticale e prende
    l'aria della striscia delle informazioni. */
div.Contratti div.fianco_settimana.riga_info,
div.AssunzioniNew div.fianco_settimana.riga_info{
    flex-direction: column;
    gap: 14px 0px;
    margin: 0px;
    align-self: stretch;
}
div.Contratti div.fianco_settimana .voce_info,
div.AssunzioniNew div.fianco_settimana .voce_info{ min-width: 0px; }

/*  ===== DENTRO LA FINESTRA DELLE STAMPE: LA MASCHERA DEL DOCUMENTO =====
    La maschera arriva da Stampe.xml e porta i nomi del cloud (`fakeTable`,
    `fakeTD`, `labelForm`, `imgBtn`): senza i fogli di la' i campi si
    incolonnano tutti e le etichette vanno a capo a meta' parola. Qui si
    rimettono come su Ipotesi di spesa: le voci affiancate, l'etichetta sopra in
    scuro e il campo largo quanto la sua colonna. */
#f4m_alert .PRINT_BOX .subBoxContainerFixed{ min-height: 0px !important; }
/*  Tutte le celle della maschera in un flusso solo: quelle dentro la tabella
    del cloud e quelle create al volo per i campi sciolti. `display: contents`
    fa sparire la tabella dal calcolo delle righe lasciando dentro le sue celle,
    cosi' i campi si dispongono tutti insieme invece che a blocchi separati. */
#f4m_alert .PRINT_BOX .frmSubBoxFixed{
    display: flex;
    flex-wrap: wrap;
    gap: 12px 16px;
    align-items: flex-start;
}
#f4m_alert .PRINT_BOX .fakeTable{ display: contents; }
#f4m_alert .PRINT_BOX .fakeTD{
    box-sizing: border-box;
    /*  Le larghezze del cloud sono scritte sull'elemento (style="width:30%") e
        sono percentuali di una finestra molto piu' larga: qui vanno
        neutralizzate, se no i campi non stanno affiancati. */
    width: auto !important;
    /*  I CAMPI CORTI STANNO IN RIGA, i lunghi si prendono la riga intera
        (04/09/2026): cosi' la data di stampa e i numeretti - le giornate di
        prova, per dirne uno - si affiancano invece di sprecare una riga a testa,
        e il luogo, che e' un testo, resta largo. */
    flex: 0 1 auto;
    min-width: 150px;
    border: none;
    padding: 0px 5px;
}
#f4m_alert .PRINT_BOX .fakeTD:has(input.campo_luogo),
#f4m_alert .PRINT_BOX .fakeTD:has(textarea){
    flex: 1 1 100%;
}
/*  LUOGO A SINISTRA, DATA A DESTRA, come nella finestra di Ipotesi di spesa
    (voluto da lei il 04/09/2026). Nella maschera che arriva da Stampe.xml sono
    nell'ordine opposto - prima la data, poi il luogo - e l'ordine si gira qui,
    senza toccare il modulo, che e' roba del cloud.
    La regola vale SOLO quando le voci sono esattamente due e la prima e' una
    data: nelle maschere piu' lunghe non si sposta niente. */
#f4m_alert .PRINT_BOX .fakeTable > .fakeTD:nth-child(1):nth-last-child(2):has(input.date){
    order: 2;
}
/*  L'etichetta prende dal tema misura e carattere (le arrivano dalla classe
    `label`, che gliela mette la scheda), ma NON il colore: nel portale `label`
    e' azzurra, e nella finestra di Ipotesi di spesa le etichette sono scure.
    Qui si mette il colore giusto e si dice di non andare a capo. */
#f4m_alert .PRINT_BOX .labelForm{
    color: var(--c3-text, #1F2A33);
    white-space: nowrap;
}
/*  NIENTE LARGHEZZE SCRITTE QUI. I campi li veste il core - in `main` quello
    vecchio (css_main/form.css, date/date.css, caricati da tommy.genesisoft.it),
    in `main_new` CORE3 - ed e' esattamente quello che succede nella finestra di
    Ipotesi di spesa. Ogni misura aggiunta qui li allontanava da quella, invece
    di avvicinarli: e' stato l'errore del 04/09/2026 (la data veniva
    schiacciata e i font non tornavano). Alle etichette e ai campi bastano le
    classi `label` e `elem` del tema, che la scheda aggiunge da sola.
/*  La riga che nel cloud separava i campi dai bottoni: qui non serve. */
#f4m_alert .PRINT_BOX .barraVsub{ display: none; }
#f4m_alert .PRINT_BOX .subBoxContainerFixedBottoniera{ margin-top: 12px; }
#f4m_alert .PRINT_BOX .rowUp{ display: none; }
/*  Il titolo sta in mezzo, come su Ipotesi di spesa, e vicino ai campi: prima
    lo staccavano due a capo scritti nel messaggio, e restava una fascia di
    bianco in mezzo (04/09/2026). */
/*  Il titolo e' quello della finestra di stampa della scheda Operatore
    (Operatori.js, `print_util_new`), che e' il modello che ha scelto lei:
    azzurro, grosso, in mezzo, staccato di dieci pixel dai campi. */
#f4m_alert .tit_stampe{
    display: block;
    text-align: center;
    color: var(--c3-accent, #0095d6);
    font-weight: bold;
    font-size: 18px;
    margin-bottom: 10px;
}

/*  Il bottone della FIRMA nel piede della finestra, accanto a STAMPA: e' li'
    che lei se lo aspetta (04/09/2026). Prende l'aria dei bottoni del framework,
    ma resta riconoscibile - bordo azzurro e sfondo bianco, perche' firmare non
    e' stampare. */
div#f4m_alert:has(div.finestra_stampe) #f4m_alert_btn .btnSignSub{
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0px 8px 0px 0px;
    padding: 7px 16px;
    border-radius: 999px;
    border: 1px solid var(--c3-accent, #0095d6);
    background: var(--colorbianco0, #ffffff);
    color: var(--c3-accent, #0095d6);
    font-size: 0.92em;
    cursor: pointer;
    white-space: nowrap;
    vertical-align: middle;
}
div#f4m_alert:has(div.finestra_stampe) #f4m_alert_btn .btnSignSub:hover{
    background: var(--c3-accent, #0095d6);
    color: var(--colorbianco0, #ffffff);
}

/*  I due bottoni del piede larghi uguali e affiancati: firmare e stampare sono
    le due cose che si fanno alla fine, e devono pesare uguale (04/09/2026). */
/*  SOLO NELLA FINESTRA DELLE STAMPE. Questa regola era scritta su tutti gli
    avvisi del portale e il 04/09/2026 ha allargato i bottoni di "Scegli
    Agenzia" e di ogni altra finestra: la finestra si riconosce dal contenuto
    (`:has`), come per la larghezza. Il selettore dev'essere forte quanto quello
    del core, che scrive `div#f4m_alert div#f4m_alert_btn button` (due id e due
    elementi): con uno piu' corto la larghezza non passa. */
div#f4m_alert:has(div.finestra_stampe) div#f4m_alert_btn{
    display: flex;
    justify-content: center;
    gap: 10px;
}
div#f4m_alert:has(div.finestra_stampe) div#f4m_alert_btn button,
div#f4m_alert:has(div.finestra_stampe) div#f4m_alert_btn div.btnSignSub{
    min-width: 130px;
    justify-content: center;
    text-align: center;
    margin: 0px;
}

/*  Un'eccezione sola alle misure del core: la casella della data. Il core la
    scrive con un carattere piu' grande (1.4em) e la tiene stretta, e dentro la
    finestra `__/__/____` ci sta a malapena, appiccicato al calendario. Qui
    prende il respiro che ha nella finestra di Ipotesi di spesa. */
/*  Serve !important: la casella della data la larghezza se la scrive da sola
    sull'elemento (style="width:..."), e uno stile scritto li' batte qualunque
    foglio. E' la stessa trappola gia' vista sulle schede. */
div#f4m_alert div.PRINT_BOX input.date{ width: 126px !important; }

/*  Il luogo di stampa non ha bisogno di tutta la riga: "Lucca" sta in poco.
    Accorciato su sua richiesta il 04/09/2026. Il segnaposto glielo mette la
    scheda (si riconosce dall'etichetta). */
div#f4m_alert div.PRINT_BOX input.campo_luogo{ width: 100% !important; box-sizing: border-box; }

/*  Etichette e caselle a sinistra, come nella finestra della scheda Operatore. */
#f4m_alert .PRINT_BOX .fakeTD{ text-align: left; }
#f4m_alert .PRINT_BOX .fakeTD .labelForm{ display: block; text-align: left; }

/*  LA FINESTRA DELLE STAMPE E' STRETTA. Il riquadro dell'avviso si allarga da
    se' fino a riempire mezzo schermo: con una scelta e due caselle corte erano
    quattrocentosettanta pixel quasi tutti bianchi. Qui gli si da' la misura
    giusta, e SOLO a questa finestra: si riconosce dal contenuto (`:has`), cosi'
    tutti gli altri avvisi del portale restano come sono. */
div#f4m_alert:has(div.finestra_stampe) div#f4m_alert_box{ width: 460px; }

/*  Anche le caselle vanno in mezzo, non solo le etichette: `text-align:center`
    non basta perche' la data sta dentro un riquadro suo (f4m_wrap_date) che e'
    un blocco e resta a sinistra. Con il contenitore in flex si centra qualunque
    cosa ci sia dentro - casella semplice o casella col calendario. */
#f4m_alert .PRINT_BOX .fakeTD .elemForm{ display: block; }

/*  I tre riquadri che avvolgono la maschera arrivano dal cloud
    (`subBoxContainerFixed`, `subBoxFormFixed`, `frmSubBoxFixed`) e portano
    imbottiture pensate per una pagina intera: dentro la finestra erano ottanta
    pixel di bianco fra il titolo e il primo campo. Qui si azzerano. */
#f4m_alert .PRINT_BOX .subBoxContainerFixed,
#f4m_alert .PRINT_BOX .subBoxFormFixed,
#f4m_alert .PRINT_BOX .frmSubBoxFixed{
    padding: 0px !important;
    margin: 0px !important;
    min-height: 0px !important;
    height: auto !important;
    background: none !important;
    border: none !important;
}

/*  Niente riquadro rosso: a segnalare il campo mancante ci pensa il framework,
    con la sua scritta "Specifica questo campo" sotto la casella (04/09/2026). */
#f4m_alert .manca_intro{ margin-bottom: 6px; }
#f4m_alert .elenco_manca{ margin: 0px; padding-left: 18px; text-align: left; }

/*  I titoli della finestrella degli orari: in `main` il tema vecchio li lascia
    in un azzurro chiarissimo, quasi illeggibile su fondo bianco (04/09/2026).
    Qui si mettono nel blu del portale, come i titoli delle sezioni. */
/*  I titoli della finestrella: il blu del portale (#0095d6) su fondo bianco
    resta chiaro e si legge male (04/09/2026). Qui si usa una tinta piu' scura,
    che e' lo stesso blu abbassato: resta di famiglia ma si legge. */
div.AssunzioniNew_orari div.tit_orari,
div.Contratti_orari div.tit_orari{
    color: #0b6ea3 !important;
    font-size: 18px;
    font-weight: 700;
}
div.AssunzioniNew_orari div.sotto_tit,
div.Contratti_orari div.sotto_tit{
    color: #0b6ea3 !important;
    font-weight: 700;
    font-size: 14px;
    border-bottom: 1px solid rgba(11,110,163,.2);
    padding-bottom: 3px;
}
/*  Anche l'intestazione della settimana nella tinta scura: quella chiara, su
    fondo grigino, si leggeva a fatica (04/09/2026). */
div.AssunzioniNew_orari table.tab_orari th,
div.Contratti_orari table.tab_orari th{
    color: #0b6ea3 !important;
}
div.AssunzioniNew_orari table.tab_orari tr.sotto_testata th,
div.Contratti_orari table.tab_orari tr.sotto_testata th{
    color: #4a6b80 !important;
}

/*  ===== SCHERMI STRETTI (tablet e telefono) =====
    Le schede nuove - Contratto di lavoro, Richiesta d'assunzione, Altri servizi
    - e le due finestre (orari e stampe). Il portale nasce per lo schermo largo:
    `angelus.css` tiene ogni scheda a 1050px fissi, e le griglie hanno colonne
    con misure scritte a mano. Qui sotto quelle misure si sciolgono, e quello che
    non ci sta scorre da solo invece di sbordare dalla pagina.
    Le colonne dei campi non hanno bisogno di niente: sono `col-12` sotto i
    576px, quindi vanno gia' una sotto l'altra da sole. */
@media (max-width: 1100px){
    /*  La scheda non e' piu' larga dello schermo. Serve un selettore lungo:
        quello di angelus.css e' `body div .BOX .TAB` e a parita' di forza
        vincerebbe lui. */
    body div.Contratti div.BOX form.TAB,
    body div.AssunzioniNew div.BOX form.TAB,
    body div.Servizio div.BOX form.TAB,
    body div.Contratti div.BOX_ACTION div.ACTION,
    body div.AssunzioniNew div.BOX_ACTION div.ACTION,
    body div.Servizio div.BOX_ACTION div.ACTION{
        width: auto !important;
        max-width: 100% !important;
    }
    /*  La settimana ha colonne a misura fissa: sotto una certa larghezza non ci
        sta, e allora scorre lei - la scheda no. */
    div.Contratti div.riquadro_settimana,
    div.AssunzioniNew div.riquadro_settimana{
        overflow-x: auto;
    }
    div.Contratti div.riquadro_settimana > table.griglia_orari,
    div.AssunzioniNew div.riquadro_settimana > table.griglia_orari{
        min-width: 420px;
    }
}
@media (max-width: 780px){
    /*  Sotto i 780 la colonna dei totali va sotto la settimana, non di fianco. */
    div.Contratti div.riquadro_settimana,
    div.AssunzioniNew div.riquadro_settimana{
        display: block;
        overflow-x: visible;
    }
    div.Contratti div.riquadro_settimana > table.griglia_orari,
    div.AssunzioniNew div.riquadro_settimana > table.griglia_orari{
        width: 100%;
        min-width: 0px;
        display: block;
        overflow-x: auto;
    }
    div.Contratti div.fianco_settimana,
    div.AssunzioniNew div.fianco_settimana{
        margin-top: 14px;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 10px 28px;
    }
    /*  Le strisce di informazioni: le voci si dispongono su piu' righe. */
    div.Contratti div.riga_info,
    div.AssunzioniNew div.riga_info{ gap: 10px 20px; }
    /*  Le due finestre non devono mai essere piu' larghe dello schermo. */
    div#f4m_alert:has(div.finestra_stampe) div#f4m_alert_box{
        width: 92vw;
        max-width: 92vw;
    }
    #f4m_alert .finestra_stampe{ min-width: 0px; }
    div.AssunzioniNew_orari, div.Contratti_orari{ min-width: 0px; }
}
@media (max-width: 520px){
    /*  Telefono: anche le due caselle del contratto (luogo e data della stampa)
        e i bottoni della finestra vanno una sotto l'altra. */
    div#f4m_alert:has(div.finestra_stampe) div#f4m_alert_btn{
        flex-direction: column;
        align-items: stretch;
    }
    div#f4m_alert:has(div.finestra_stampe) div#f4m_alert_btn button,
    div#f4m_alert:has(div.finestra_stampe) div#f4m_alert_btn div.btnSignSub{
        width: 100%;
        justify-content: center;
    }
    div#f4m_alert div.PRINT_BOX input.campo_luogo{ width: 100% !important; }
}


/* ========================================================================
   BOTTONI DEI DOCUMENTI NELLE PRATICHE (18/09/2026) - PraticheInps e
   Pratiche730, colonna "Azioni": Carica / Apri / Sostituisci (li scrive il
   .js della scheda). Stile del core vecchio: il blu pieno dei suoi bottoni.
   ======================================================================== */
.PraticheInps td[field="idfile"] .c3-az-doc,
.Pratiche730 td[field="idfile"] .c3-az-doc {
	display: inline-block; margin: 1px 2px; padding: 2px 9px; border-radius: 12px;
	border: 1px solid #0095d6; background: #fff; color: #0095d6;
	font-size: 12px; font-weight: bold; line-height: 18px; cursor: pointer; white-space: nowrap;
}
.PraticheInps td[field="idfile"] .c3-az-doc.carica,
.Pratiche730 td[field="idfile"] .c3-az-doc.carica { background: #0095d6; color: #fff; }
.PraticheInps td[field="idfile"] .c3-az-doc:hover,
.Pratiche730 td[field="idfile"] .c3-az-doc:hover { opacity: .85; }

/* finestra dell'allegato: perche' Elimina non c'e' (limite dei 7 giorni per le
 * agenzie, 18/09/2026). Il testo lo da' 00_select.php (lbl_delete_info). */
.c3-blocco-info {
	display: flex; gap: 8px; align-items: flex-start; margin: 8px 0 10px; padding: 8px 12px;
	border-left: 3px solid #f1c40f; background: #fffbea; color: #5c4a00; font-size: 13px; line-height: 1.4;
}
.c3-blocco-info i { margin-top: 2px; }
.c3-blocco-info:has([name="lbl_delete_info"]:empty) { display: none; }
/* documento bloccato nella griglia: al posto di Sostituisci un lucchetto */
.c3-az-lock { display: inline-block; margin-left: 6px; color: #8a97a5; cursor: help; }


/* ========================================================================
   RIQUADRO IN ALTO DELLE PRATICHE COME LA SCHEDA OPERATORE (18/09/2026)
   Stile del core vecchio, quello della scheda Operatori di main: etichetta
   piccola azzurra, valore dentro una casella col bordo, stato colorato
   (data-stato lo mette il .js della scheda). Solo il blocco della pratica
   gia' creata (box_scheda) e la testata della 730.
   ======================================================================== */
/* misure prese dalla scheda Operatori di main (misurate nel browser il 18/09):
 * casella alta 40px, angoli 10px, bordo #c0c0c0, testo 19.2px; etichetta 16px
 * grassetto azzurra con 5px sotto */
.PraticheInps .box_scheda > .bt-row .gs-label, .DichOspit .box_scheda > .bt-row .gs-label,
.Pratiche730 form.TAB > .bt-row .gs-label {
	color: #0095d6; font-size: 16px; font-weight: bold; margin-bottom: 5px;
}
.PraticheInps .box_scheda > .bt-row .elem > div[f4m_type="READONLY"], .DichOspit .box_scheda > .bt-row .elem > div[f4m_type="READONLY"],
.Pratiche730 form.TAB > .bt-row .elem > div[f4m_type="READONLY"] {
	min-height: 40px; padding: 5px 10px; box-sizing: border-box;
	display: flex; align-items: center;
	background: transparent; border: 1px solid #c0c0c0; border-radius: 10px;
	color: #000; font-size: 19.2px; line-height: 1.3;
}
.PraticheInps .box_scheda > .bt-row, .DichOspit .box_scheda > .bt-row,
.Pratiche730 form.TAB > .bt-row { margin-top: 12px !important; }
.PraticheInps .box_scheda > .bt-row > [class*="col-"], .DichOspit .box_scheda > .bt-row > [class*="col-"],
.Pratiche730 form.TAB > .bt-row > [class*="col-"] { padding-left: 4px; padding-right: 4px; }
/* il tipo di pratica in evidenza */
.PraticheInps .box_scheda [name="tipo_pratica_label"] , .DichOspit .box_scheda [name="tipo_pratica_label"] { font-weight: bold; }
/* lo stato, come "Disponibile" nella scheda operatore */
.PraticheInps .elem[data-stato] > div[f4m_type="READONLY"], .DichOspit .elem[data-stato] > div[f4m_type="READONLY"],
.Pratiche730 .elem[data-stato] > div[f4m_type="READONLY"] { font-weight: bold; }
.elem[data-stato="Trasmessa"] > div, .elem[data-stato="Conclusa"] > div,
.elem[data-stato="Presa in carico"] > div { color: #1e8e3e !important; }
.elem[data-stato="Da trasmettere"] > div, .elem[data-stato="Inviata"] > div { color: #d98200 !important; }
.elem[data-stato="In sospeso"] > div { color: #d6204b !important; }
/* "Data creazione pratica / Inserito da" e "Ultima modifica" COME NELLA SCHEDA
 * OPERATORI di main (misurato): niente casella, etichetta azzurra 15px normale,
 * valore in corsivo 16px. La regola delle caselle qui sopra NON vale per loro. */
.PraticheInps .box_scheda > .bt-row .label, .DichOspit .box_scheda > .bt-row .label,
.Pratiche730 form.TAB > .bt-row .label {
	color: #0095d6; font-size: 15px; font-weight: normal; margin-bottom: 2px;
}
.PraticheInps .box_scheda > .bt-row .elem > div[f4m_aria="NOTE"], .DichOspit .box_scheda > .bt-row .elem > div[f4m_aria="NOTE"],
.Pratiche730 form.TAB > .bt-row .elem > div[f4m_aria="NOTE"] {
	display: block; min-height: 0; border: 0; border-radius: 0; background: none;
	padding: 0 0 0 6px; font-size: 16px; font-style: italic !important; color: #000;
}
/* motivo chiusura rapporto: la tendina come le caselle (arrotondata, 40px) */
.PraticheInps .box_scheda > .bt-row .box_licenziamento select , .DichOspit .box_scheda > .bt-row .box_licenziamento select {
	height: 40px; border-radius: 10px; border: 1px solid #c0c0c0; font-size: 17px; width: 100%;
}
/* il motivo del licenziamento va a capo su una riga sua: stesso spazio sopra delle altre righe */
.PraticheInps .box_scheda > .bt-row > .box_licenziamento , .DichOspit .box_scheda > .bt-row > .box_licenziamento { margin-top: 12px; }

/* Ospitalita' (18/09/2026): stessi colori della situazione, e i campi da
 * compilare (stato, data trasmissione, PEC) arrotondati come le caselle */
.elem[data-stato="Trasmessa alla questura"] > div { color: #1e8e3e !important; }
.elem[data-stato="Da trasmettere alla questura"] > div { color: #d98200 !important; }
.DichOspit .box_scheda > .bt-row .elem select,
.DichOspit .box_scheda > .bt-row .elem input[type="text"]:not(.date) {
	height: 40px; border-radius: 10px; border: 1px solid #c0c0c0; font-size: 17px; width: 100%; box-sizing: border-box;
}
/* lo stato si allarga quando la data di trasmissione e' nascosta: niente buchi */
.DichOspit .box_scheda > .bt-row > .c3-cresce { flex: 1 1 25%; max-width: none; }
/* bottoni dei documenti anche qui */
.DichOspit td[field="idfile"] .c3-az-doc {
	display: inline-block; margin: 1px 2px; padding: 2px 9px; border-radius: 12px;
	border: 1px solid #0095d6; background: #fff; color: #0095d6;
	font-size: 12px; font-weight: bold; line-height: 18px; cursor: pointer; white-space: nowrap;
}
.DichOspit td[field="idfile"] .c3-az-doc.carica { background: #0095d6; color: #fff; }
/* il campo data: il bordo arrotondato lo disegna gia' il core sul contenitore
 * (f4m_wrap_date); il campo dentro non deve averne un altro (si vedeva un bordo
 * interno). Solo la larghezza: il core la faceva 3px piu' stretta del testo. */
.DichOspit .box_scheda .f4m_wrap_date input.date {
	border: 0 !important; box-shadow: none !important; outline: 0;
	width: calc(10ch + 14px) !important;
}

/* ============================================================================
   IL CONTRATTO SI LEGGE, NON SI RISCRIVE (23/09/2026)
   Nella scheda dell'agenzia si possono cambiare solo tre cose: la data di
   termine (e solo sui contratti a tempo indeterminato), il luogo di lavoro e
   il patrono. Tutto il resto e' deciso e si guarda soltanto.

   PERCHE' NON SI USA `disabled`, pur potendo: in questa scheda `disabled` gia'
   c'e' (il metodo `blocca()`, sui sei campi decisi dalla richiesta) e il
   salvataggio li rispedisce lo stesso - quindi il motore li rilegge. Ma qui i
   campi bloccati diventano una sessantina invece di sei, e non conviene che
   SESSANTA valori dipendano da un comportamento del framework che non e'
   scritto da nessuna parte: basta `readonly` sulle caselle e niente clic sul
   resto, e il campo resta un campo normale col suo valore. Qualunque cosa il
   motore rilegga, rilegge quello che aveva letto all'apertura.
   Chi lo accende e' Contratti.js, metodo solaLettura.
   L'ASPETTO NON SI DEFINISCE QUI: i campi prendono la classe `campo_bloccato`,
   la stessa che la scheda usa gia' per i campi decisi dalla richiesta
   (tipologia, livello, figura professionale...). Qui c'e' solo il blocco
   del clic. */
/*  Niente clic su NIENTE dentro il campo - e la regola e' scritta al rovescio
    apposta: si spegne tutto e si riaccendono le due cose che devono restare
    vive. Elencare invece i pezzi da spegnere (la tendina, il calendario, la
    lente del cerca, la matita...) vuol dire dipendere dai nomi delle classi
    che il framework genera, e quei nomi cambiano: `.f4m_searchcombo_icon`,
    `.f4m_date_picker`, `.f4m_searchcombo_box_edit`... ne basta uno nuovo e il
    campo torna modificabile senza che nessuno se ne accorga.
    Restano vive le caselle di testo e le note, cosi' il valore si puo' ancora
    selezionare e copiare; NON le date, che sono corte e il cui calendario si
    apre anche solo mettendoci dentro il cursore. */
div.Contratti .elem.sola_lettura { pointer-events: none; }
div.Contratti .elem.sola_lettura input[type="text"]:not(.date),
div.Contratti .elem.sola_lettura textarea { pointer-events: auto; }
div.Contratti .elem.sola_lettura label { opacity: .6; }
/* il riquadro degli orari: la settimana si legge e basta, non si apre piu' la
   finestrella - ne' dal "+" della testata ne' cliccando una riga */
div.Contratti .griglia_orari.sola_lettura tr.riga_gg { cursor: default; }
div.Contratti .griglia_orari.sola_lettura tr.riga_gg:hover { background: inherit; }

/* ====================================================================
   LA BARRA DI SCORRIMENTO IN BASSO, PIU' GROSSA (29/09/2026, richiesta di
   chi usa le ricerche: "barra scroll sotto nelle ricerche").
   angelus.css mette a TUTTE le barre orizzontali 6px di altezza (riga
   `*::-webkit-scrollbar`): sotto una griglia larga non si riusciva a
   prenderla col mouse. Qui diventa 14px, con un cursore che si vede.
   Solo l'altezza (barre orizzontali): la larghezza delle verticali resta.
   NON si allargano le griglie: prima prova del 29/09, non era quello.
   ==================================================================== */
div.F4M_SEARCH *::-webkit-scrollbar,
div.F4M_GRID *::-webkit-scrollbar,
div[f4m_type=GRID] *::-webkit-scrollbar{ height: 14px; }
/*  SEMPRE GRIGIE, sotto e di lato, anche col mouse sopra (sua richiesta del
    29/09/2026: "la barra sotto e laterale lasciale sempre grigine").
    Vale per tutte le barre del portale, non solo per le griglie. */
*::-webkit-scrollbar-track{ background: #f1f1f1 !important; border-radius: 7px; }
*::-webkit-scrollbar-thumb,
*::-webkit-scrollbar-thumb:hover,
*::-webkit-scrollbar-thumb:active{
    background: #c1c1c1 !important;
    border-radius: 7px;
    border: 2px solid #f1f1f1;
}

/* Gestione documentale, scheda Carica documento (30/09/2026): riga finale con
   quello che manca o, se e' tutto pronto, il nome con cui sara' archiviato. */
.Archivio .doc_anteprima{ margin: 18px 0 4px; padding: 10px 12px; border-radius: 8px; background: #f3f6f9; color: #5b6b79; font-size: 14px; line-height: 1.5; word-break: break-word; }
.Archivio .doc_anteprima.pronto{ background: #eaf6ee; color: #1e5b36; }
.Archivio .doc_anteprima i{ margin-right: 4px; }
.Archivio select.doc_contratto{ width: 100%; height: 40px; border: 1px solid #d8e3ec; border-radius: 8px; padding: 0 10px; background: #fff; font-size: 15px; }

/* Gestione documentale: cosa si vede lo decidono le classi v-* messe da
   Archivio.js (mostra). !important perche' in main il motore rimostra i campi. */
.Archivio:not(.v-fam) .box_fam, .Archivio:not(.v-bad) .box_bad, .Archivio:not(.v-cn) .box_cn,
.Archivio:not(.v-tipo) .box_tipo, .Archivio:not(.v-tipoF) .box_tipo_F, .Archivio:not(.v-tipoB) .box_tipo_B,
.Archivio:not(.v-tipoA) .box_tipo_A, .Archivio:not(.v-int) .box_intestatario, .Archivio:not(.v-contr) .box_contratto,
.Archivio:not(.v-mav) .box_mav, .Archivio:not(.v-paga) .box_paga, .Archivio:not(.v-cud) .box_cud,
.Archivio:not(.v-fatt) .box_fattura, .Archivio:not(.v-file) .box_file{ display: none !important; }
.Archivio:not(.v-scad) .box_scad{ display: none !important; }   /* 20/10/2026: scadenza del documento */
