/**
 * GTS — Personalizzazioni per Bootstrap Select 5 (selectpicker5)
 *
 * Questo file sovrascrive alcune regole del vendor (select.css) con miglioramenti
 * condivisi tra tutti i progetti GTS che usano !script multiselect su pagine bs5.
 * Deve essere caricato DOPO select.css (vedi hb_script_select_5 in xhtmlbuild.php).
 *
 * Retrocompatibilità: tutte le modifiche sono puramente visive e non alterano
 * il comportamento funzionale del componente né la struttura HTML generata.
 */


/* -----------------------------------------------------------------------
 * Box dei pulsanti "Seleziona tutto" / "Deseleziona tutto" (data-actions-box)
 *
 * Il vendor (select.css) distribuisce i due pulsanti con width:50% fisso.
 * Con questa override il contenitore diventa flex space-between: ciascun
 * pulsante occupa solo la larghezza necessaria al proprio testo e i due
 * pulsanti si posizionano agli estremi opposti della riga.
 * Il padding verticale è leggermente aumentato per migliorare il comfort visivo.
 * ----------------------------------------------------------------------- */

/* -----------------------------------------------------------------------
 * Altezza uniforme del pulsante dropdown (vuoto o con selezione)
 *
 * Senza min-height il bottone si restringe al testo del placeholder
 * risultando più basso rispetto a quando ci sono valori selezionati.
 * calc(1.5em + 0.75rem + 2px) replica l'altezza di .form-control BS5.
 * ----------------------------------------------------------------------- */
.bootstrap-select > .dropdown-toggle {
    min-height: calc(1.5em + 0.75rem + 2px);
}

.bs-actionsbox .btn-group {
    display: flex;
    justify-content: space-between;
}

.bs-actionsbox .btn-group button {
    width: auto;        /* sovrascrive width:50% del vendor */
    padding-top: 6px;   /* default btn-sm: ~4px — aumentato del 50% */
    padding-bottom: 6px;
}


/* -----------------------------------------------------------------------
 * Layout a due colonne (.gts-twocol sul wrapper .bootstrap-select)
 *
 * La classe .gts-twocol viene aggiunta da gts-selectpicker5.js al wrapper
 * .bootstrap-select di ogni select con data-twocol="1", sia da hb_selectpicker_db()
 * (array da DB) sia da hb_selectpicker() (array PHP).
 * Usare la classe JS è più affidabile del selettore :has([data-twocol="1"])
 * che in alcuni contesti non risulta applicato correttamente.
 *
 * Tre regole:
 *  1. .text diventa block → il div data-content si espande alla larghezza
 *     piena dell'<a>, coprendo anche la zona del checkmark a destra.
 *  2. Filetto verticale (gradiente) su tutte le righe dati.
 *     120px = 20px padding-left <a> + 100px larghezza prima colonna.
 *  3. Riga intestazione: sfondo grigio (#f5f5f5 = stesso dell'actionsbox),
 *     bordo inferiore, opacità piena.
 * ----------------------------------------------------------------------- */

/* Bootstrap Select usa li > a (non a.dropdown-item) per le voci della lista.
 * Il selettore corretto per le righe dati è .inner li > a,
 * per l'header (opzione disabilitata) è .inner li.disabled > a. */

/* Selettori doppi: .gts-twocol (aggiunto da JS) e :has() come fallback diretto */
.gts-twocol .dropdown-menu .text,
.bootstrap-select:has([data-twocol="1"]) .dropdown-menu .text {
    display: block !important;
    flex: 1 !important;        /* .text è flex item dell'<a display:flex>: va espanso */
    min-width: 0 !important;
}

.gts-twocol .dropdown-menu .inner li > a,
.bootstrap-select:has([data-twocol="1"]) .dropdown-menu .inner li > a {
    background-image: linear-gradient(
        to right,
        transparent 120px, #ced4da 120px, #ced4da 121px, transparent 121px
    ) !important;
}

.gts-twocol .dropdown-menu .inner li.disabled > a,
.bootstrap-select:has([data-twocol="1"]) .dropdown-menu .inner li.disabled > a {
    background: linear-gradient(
        to right,
        #e9ecef 0, #e9ecef 120px, #ced4da 120px, #ced4da 121px, #e9ecef 121px, #e9ecef 100%
    ) !important;
    border-bottom: 1px solid #ced4da !important;
    opacity: 1 !important;
    color: #555 !important;
}
