/*
 * Riporta l'aspetto grafico del pannello Backpack alla palette/spaziature di
 * @tabler/core 1.0.0-beta19, dopo l'upgrade a Backpack 7 / theme-tabler 1.4.0
 * (che aggiorna @tabler/core alla 1.4.0 e ne rivede design token e spaziature).
 * Va caricato DOPO tabler.min.css cosi da sovrascrivere le sue custom
 * properties, senza toccare i sorgenti del vendor. Solo light mode: la 1.4.0
 * ha ristrutturato il meccanismo del dark mode, non replicato qui.
 */

:root,
[data-bs-theme="light"] {
    /* Palette brand/tabler (blu piu acceso in 1.4.0) */
    --tblr-blue: #206bc4;
    --tblr-blue-rgb: 32, 107, 196;
    --tblr-blue-lt: #e9f0f9;
    --tblr-blue-lt-rgb: 233, 240, 249;
    --tblr-blue-darken: #1d60b0;

    --tblr-primary: var(--tblr-blue);
    --tblr-primary-rgb: var(--tblr-blue-rgb);
    --tblr-primary-lt: var(--tblr-blue-lt);
    --tblr-primary-lt-rgb: var(--tblr-blue-lt-rgb);
    --tblr-primary-darken: var(--tblr-blue-darken);

    --tblr-tabler: var(--tblr-blue);
    --tblr-tabler-rgb: var(--tblr-blue-rgb);
    --tblr-tabler-lt: var(--tblr-blue-lt);
    --tblr-tabler-lt-rgb: var(--tblr-blue-lt-rgb);
    --tblr-tabler-darken: var(--tblr-blue-darken);

    --tblr-warning: #f76707;
    --tblr-warning-rgb: 247, 103, 7;
    --tblr-warning-lt: #fef0e6;
    --tblr-warning-lt-rgb: 254, 240, 230;
    --tblr-warning-darken: #de5d06;

    --tblr-dark: #182433;
    --tblr-dark-rgb: 24, 36, 51;
    --tblr-dark-lt: #e8e9eb;
    --tblr-dark-lt-rgb: 232, 233, 235;
    --tblr-dark-darken: #16202e;

    --tblr-light: #fcfdfe;
    --tblr-light-rgb: 252, 253, 254;
    --tblr-light-lt: white;
    --tblr-light-lt-rgb: 255, 255, 255;

    --tblr-muted: #667382;
    --tblr-muted-rgb: 102, 115, 130;
    --tblr-muted-lt: #f0f1f3;
    --tblr-muted-lt-rgb: 240, 241, 243;
    --tblr-muted-darken: #5c6875;

    --tblr-secondary: var(--tblr-muted);
    --tblr-secondary-rgb: var(--tblr-muted-rgb);
    --tblr-secondary-lt: var(--tblr-muted-lt);
    --tblr-secondary-lt-rgb: var(--tblr-muted-lt-rgb);
    --tblr-secondary-darken: var(--tblr-muted-darken);

    /* Scala di grigi beta19 (la 1.4.0 usa toni piu freddi/piatti) */
    --tblr-gray-50: #fcfdfe;
    --tblr-gray-100: #f6f8fb;
    --tblr-gray-200: #eef1f4;
    --tblr-gray-300: #dadfe5;
    --tblr-gray-400: #bbc3cd;
    --tblr-gray-500: #929dab;
    --tblr-gray-600: #667382;
    --tblr-gray-700: #3a4859;
    --tblr-gray-800: #182433;
    --tblr-gray-900: #040a11;

    --tblr-border-color: #dadfe5;

    /* Raggio dei bordi: la 1.4.0 introduce una scala piu "morbida" (6px base) */
    --tblr-border-radius: 4px;
    --tblr-border-radius-sm: 2px;
    --tblr-border-radius-md: 4px;
    --tblr-border-radius-lg: 8px;

    /* Font: la 1.4.0 carica "Inter Var", beta19 usava il font di sistema */
    --tblr-font-sans-serif: -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto,
        "Helvetica Neue", sans-serif;

    --tblr-spacer-6: 3rem;

    --tblr-bg-surface-secondary: var(--tblr-gray-100);

    --select2-selected-item-background: var(--tblr-blue);
}
.bg-gray-100 {
  --tblr-bg-opacity: .1;
}

/* Card: la 1.4.0 usa un raggio/padding maggiori (--border-radius-lg, 1.25rem) */
.card {
    --tblr-card-border-radius: var(--tblr-border-radius);
    --tblr-card-inner-border-radius: calc(var(--tblr-border-radius) - var(--tblr-card-border-width, 1px));
    --tblr-card-spacer-x: 1.5rem;
    --tblr-card-cap-padding-x: 1.5rem;
}

/* Navbar: in 1.4.0 il testo di default e' piu tenue (--tblr-secondary) */
.navbar {
    --tblr-navbar-color: var(--tblr-body-color);
    --tblr-navbar-hover-color: rgba(var(--tblr-emphasis-color-rgb, 0, 0, 0), 0.8);
}

/* Campi form: la 1.4.0 aumenta padding e line-height di default */
.form-control,
.form-select {
    padding-top: 0.4375rem;
    padding-bottom: 0.4375rem;
    line-height: 1.4285714286;
}

.form-select {
    padding-right: 2.25rem;
    padding-left: 0.75rem;
    background-position: right 0.75rem center;
}

.form-control {
    padding-right: 0.75rem;
    padding-left: 0.75rem;
}

.form-check-input {
    margin-left: -1.5rem;
}

/*
 * Form-floating: la 1.4.0 ha ristretto la regola che disegna lo sfondo
 * dietro la label "galleggiante" (::after, serve a coprire il bordo del
 * campo dove passa il testo della label) al solo <textarea> — in beta19
 * copriva anche .form-control e .form-select, che quindi in 1.4.0 restano
 * senza quella pezza e mostrano il bordo/placeholder "tagliato" dalla label.
 * Il padding della label era inoltre .75rem (1rem in 1.4.0).
 */
.form-floating > label {
    padding-right: 0.75rem;
    padding-left: 0.75rem;
}

.form-floating > .form-control-plaintext ~ label::after,
.form-floating > .form-control:not(textarea):focus ~ label::after,
.form-floating > .form-control:not(textarea):not(:placeholder-shown) ~ label::after,
.form-floating > .form-select ~ label::after {
    position: absolute;
    inset: 1rem 0.375rem;
    z-index: -1;
    height: 1.5em;
    content: "";
    background-color: var(--tblr-bg-forms);
    border-radius: var(--tblr-border-radius);
}

.form-floating > .form-control:disabled ~ label,
.form-floating > :disabled ~ label {
    color: #667382;
}

/*
 * Bug nel CSS compilato di Tabler 1.4.0: il selettore
 * ".form-control:not(:-moz-placeholder)" e' un residuo del fallback per
 * Firefox rimasto nel build. Chrome/Chromium recenti trattano gli argomenti
 * di :not() come una "forgiving selector list": non riconoscendo
 * ":-moz-placeholder" lo scartano, lasciando :not() vuoto, che quindi
 * combacia SEMPRE. Risultato: la label risulta permanentemente "sollevata"
 * e l'animazione su focus/blur (che dipende dal passaggio di stato) sparisce.
 * Annulliamo la regola fasulla e ridichiariamo le condizioni corrette
 * (":focus" e ":not(:placeholder-shown)"), che vincono quando si applicano
 * davvero perche' dichiarate dopo, a parita' di specificita'.
 */
.form-floating > .form-control:not(:-moz-placeholder) ~ label {
    transform: none;
}

.form-floating > .form-control-plaintext ~ label,
.form-floating > .form-control:focus ~ label,
.form-floating > .form-control:not(:placeholder-shown) ~ label,
.form-floating > .form-select ~ label {
    transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
}

/*
 * Alert: in beta19 NON aveva uno sfondo colorato/pastello. Era una
 * "notification card": sfondo bianco/superficie, bordo sottile translucido
 * su 3 lati, bordo sinistro spesso 4px del colore della variante, ombra da
 * card (confermato dagli stili calcolati in Chrome: background-color
 * rgb(255,255,255), border-left-width 4px, box-shadow tipo card). La 1.4.0
 * invece colora tutto lo sfondo con color-mix() sul colore pieno. --tblr-
 * alert-color e' gia' impostato correttamente da ogni variante .alert-* (sia
 * da Tabler stesso sia dal brand del progetto), quindi basta ridisegnare
 * .alert in modo generico, senza dover elencare ogni colore.
 */
.alert {
    --tblr-alert-padding-y: 1rem;
    --tblr-alert-bg: var(--tblr-bg-surface);
    --tblr-alert-border-color: var(--tblr-border-color-translucent);
    border-left: 4px solid var(--tblr-alert-color);
    box-shadow: var(--tblr-shadow-card, 0 0 4px rgba(0, 0, 0, 0.04));
    color: var(--tblr-alert-color);
}

.alert-icon {
    width: 1.5rem !important;
    height: 1.5rem !important;
    margin: -0.125rem 1rem -0.125rem 0;
}

/*
 * Avatar: la 1.4.0 ha ridotto molto le taglie lg/xl e reso il font-size
 * fisso invece che proporzionale alla taglia.
 */
.avatar {
    --tblr-avatar-font-size: calc(var(--tblr-avatar-size) / 2.8571428572);
}
.avatar-md{
    --tblr-avatar-size: 4rem;
}

.avatar-lg {
    --tblr-avatar-size: 5.5rem;
}

.avatar-xl {
    --tblr-avatar-size: 7rem;
}

/*
 * Datagrid (Show operation): titolo piu piccolo, piu "bold" e colore muted
 * (var(--tblr-muted)) in beta19; la 1.4.0 lo rende medium e usa
 * var(--tblr-secondary) direttamente invece di var(--tblr-muted).
 */
.datagrid-title {
    font-size: 0.625rem;
    font-weight: var(--tblr-font-weight-bold);
    color: var(--tblr-muted);
}

/* Table: la 1.4.0 schiarisce molto lo sfondo della riga .table-active */
.table {
    --tblr-table-active-bg: rgba(0, 0, 0, 0.1);
}

/*
 * Bottoni azione (es. card-actions/btn-action nelle card, nowbo icone nelle
 * liste): la 1.4.0 ha tolto le dimensioni fisse 2rem x 2rem di .btn-action e
 * il min-width/min-height "quadrato" di .btn-icon, facendoli ereditare il
 * padding normale del .btn (piu' grande) invece che restare compatti come
 * in beta19. .btn-sm e' inoltre piu' "largo" (padding maggiore).
 */
.btn-action {
    padding: 0;
    border: 0;
    color: var(--tblr-muted);
    display: inline-flex;
    width: 2rem;
    height: 2rem;
    align-items: center;
    justify-content: center;
    background: transparent;
}

/*
 * Il bottone base e .btn-lg hanno padding-y maggiore nella 1.4.0, che inoltre
 * impone su .btn un min-width/min-height calcolato (assente in beta19):
 * costringe ogni bottone ad un'altezza minima "quadrata", cosa che prima non
 * succedeva (l'altezza seguiva solo padding + contenuto). Va dichiarato PRIMA
 * di .btn-icon cosi' che il min-width/min-height "voluto" per le icone
 * (sotto) possa comunque vincere a parita' di specificita'.
 */
.btn {
    --tblr-btn-padding-y: 0.4375rem;
    /* beta19: moltiplicatore unitless (1.4285714286); la 1.4.0 usa un rem
       fisso (1.25rem), che rompe anche il calc() di .btn-icon sotto. */
    --tblr-btn-line-height: 1.4285714286;
    
    min-height: 0;
}
.crud-table .btn.btn-icon{
    --tblr-btn-font-size: 1.2rem;
    --tblr-btn-line-height: 1;
    padding:0;
    border-radius: 0;
}

.btn-group-lg > .btn,
.btn-lg {
    --tblr-btn-padding-y: 0.5rem;
    --tblr-btn-padding-x: 0.75rem;
    --tblr-btn-font-size: 1.25rem;
    --tblr-btn-line-height: 1.5;
}

.btn-sm {
    --tblr-btn-padding-y: 0.125rem;
    --tblr-btn-padding-x: 0.25rem;
    --tblr-btn-line-height: 1.5;
    --tblr-btn-icon-size: 0.95rem;
    
}

/* Anche il "manico" del dropdown split accanto a un .btn-sm/.btn-lg era piu' stretto */
.btn-group-sm > .btn + .dropdown-toggle-split,
.btn-sm + .dropdown-toggle-split {
    padding-right: 0.1875rem;
    padding-left: 0.1875rem;
}

.btn-group-lg > .btn + .dropdown-toggle-split,
.btn-lg + .dropdown-toggle-split {
    padding-right: 0.5625rem;
    padding-left: 0.5625rem;
}

.btn-icon {
    min-width: calc(
        var(--tblr-btn-line-height) * var(--tblr-btn-font-size) + var(--tblr-btn-padding-y) * 2 + var(--tblr-btn-border-width) *
            2
    );
    min-height: calc(
        var(--tblr-btn-line-height) * var(--tblr-btn-font-size) + var(--tblr-btn-padding-y) * 2 + var(--tblr-btn-border-width) *
            2
    );
}

.form-selectgroup-label{
    color: var(--tblr-muted);
}

/*
 * Badge: in beta19 il testo era sempre bianco (--tblr-badge-color:#fff),
 * indipendentemente dallo sfondo. La 1.4.0 lo ha reso var(--tblr-secondary)
 * (grigio tenue): dato che nel progetto i badge si usano come
 * "badge bg-danger/bg-primary/..." (utility Bootstrap che imposta solo lo
 * sfondo, non il testo), il grigio risulta illeggibile su sfondi colorati.
 * Non tocchiamo "background" per non rompere le utility ".bg-*".
 */
.badge {
    --tblr-badge-color: #ffffff;
}

/*
 * ".card-body-scrollable" non scrolla piu': non e' un regressione di
 * Tabler, ma di backpack/crud (aggiornato insieme, da v6 a v7). Il file
 * vendor/backpack/crud/src/resources/assets/css/common.css forza
 * "overflow: visible !important" su OGNI .card-body (per non tagliare i
 * dropdown delle DataTables), che vince sempre su ".card-body-scrollable
 * {overflow:auto}" di Tabler indipendentemente dall'ordine. Qui riattiviamo
 * lo scroll solo per la classe opt-in ".card-body-scrollable", senza
 * toccare la regola generale (serve altrove per i dropdown DataTables).
 */
.card-body-scrollable {
    overflow: auto !important;
}

/*
 * Colonna "Azioni" delle DataTable troppo larga: non e' Tabler, e'
 * backpack/crud (v7) che ora inizializza DataTables con "autoWidth: false"
 * (datatable_logic.blade.php). Con table-layout:auto e nessuna larghezza
 * esplicita, il browser distribuisce lo spazio residuo su tutte le colonne,
 * azioni comprese, invece di farla restringere al contenuto (verificato via
 * Chrome: 184px per un solo bottone icona). Applichiamo il classico trucco
 * "shrink-to-fit" (width:1% forza la larghezza minima possibile, le altre
 * colonne assorbono lo spazio) solo sulle tabelle che hanno la colonna
 * azioni, per non toccare le altre.
 */
table.dataTable:has(th[data-action-column="true"]) th[data-action-column="true"],
table.dataTable:has(th[data-action-column="true"]) td:last-child {
    width: 1%;
    white-space: nowrap;
}

/*
 * Dropdown: la 1.4.0 ha aggiunto "gap: .5rem" su .dropdown-item (assente in
 * beta19). Lo spazio tra icona e testo viene gia' dato dal markup (es.
 * ".dropdown-item-icon" con margin-right, o classi ".me-2"), quindi il gap
 * si somma creando una spaziatura doppia rispetto a prima.
 */
.dropdown-item {
    gap: 0;
}