/* ===========================================================================
   Filament Table Tabs — Digival\FilamentTableTabs
   ---------------------------------------------------------------------------
   "Finti tab" di filtro resi come segmented control / tab nativi, iniettati via
   render hook della tabella (vedi TableTabsServiceProvider). Il markup è quello
   di resources/views/table-tabs.blade.php: un contenitore .fi-ta-tabs con
   pulsanti .fi-ta-tabs-item (+ .fi-active sul tab attivo) e un badge Filament.

   CSS standalone (nessuna direttiva Tailwind / theme()): registrato come asset
   Filament. Le variabili --gray-*, --primary-*, --color-white sono iniettate a
   runtime dal tema del pannello.
   =========================================================================== */

/* Riga dei tab (HEADER_BEFORE): titolo opzionale a sinistra + box tab.

   Per affiancare i tab agli header actions nativi (es. "Nuova ...") SULLA STESSA
   riga, senza ancoraggi assoluti né valori fissi, rendiamo il contenitore
   .fi-ta-header-ctn un flex: la riga tab e il div .fi-ta-header (bottone) si
   dispongono su una riga; la toolbar (search) va a capo da sé (width 100%).
   Il padding nativo di .fi-ta-header NON viene toccato: i due elementi sono
   allineati al centro dalla riga flex (align-items: center). */
.fi-ta-header-ctn:has(> .fi-ta-tabs-row) {
    display: flex;
    flex-wrap: wrap;
    /* stretch: tab-row e header assumono la stessa altezza (del più alto), così
       i loro border-bottom combaciano in un bordo continuo. I contenuti restano
       centrati internamente (align-items: center sui figli). */
    align-items: stretch;
}

/* La riga tab occupa lo spazio disponibile e spinge il bottone a destra.
   min-width: 0 è essenziale: senza, un figlio flex non si restringe sotto la
   larghezza del proprio contenuto (i tab), quindi su mobile la riga déborda e
   il box tab esce dal bordo invece di attivare lo scroll orizzontale. */
.fi-ta-header-ctn:has(> .fi-ta-tabs-row) > .fi-ta-tabs-row {
    flex: 1 1 auto;
    min-width: 0;
}

/* Il bottone non cresce e resta a destra; padding e bordo nativi intatti. */
.fi-ta-header-ctn:has(> .fi-ta-tabs-row) > .fi-ta-header {
    flex: 0 0 auto;
}

/* La toolbar (search, filtri, column manager) e HEADER_AFTER vanno SEMPRE a capo
   sotto la riga tab+bottone. */
.fi-ta-header-ctn:has(> .fi-ta-tabs-row) > .fi-ta-header-toolbar {
    flex: 1 1 100%;
}

.fi-ta-tabs-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 6px 1rem;
    /* stesso bordo nativo di .fi-ta-header: insieme (tab-row a sx, header a dx)
       coprono l'intera larghezza della riga. */
    border-bottom: 1px solid var(--gray-200);
}

@media (min-width: 640px) {
    .fi-ta-tabs-row {
        padding-inline: 1.5rem;
    }
}

:is(.dark) .fi-ta-tabs-row {
    border-bottom-color: rgb(255 255 255 / 0.1);
}

.fi-ta-tabs-heading {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.5rem;
    color: var(--gray-950);
}

:is(.dark) .fi-ta-tabs-heading {
    color: var(--color-white);
}

/* Contenitore: box grigio "segmented control". Dimensioni allineate ai tab
   nativi Filament (gap-1, p-2, rounded-xl), ma estetica a sfondo grigio
   (gray-100/gray-800) con la linguetta attiva bianca. width: fit-content così
   il box si stringe sui soli tab; scroll orizzontale su viewport stretti. */
.fi-ta-tabs {
    display: flex;
    align-items: center;
    gap: 0.25rem; /* gap-x-1 */
    width: fit-content;
    max-width: 100%;
    min-width: 0; /* permette al box di restringersi e attivare overflow-x */
    padding: 0.5rem; /* p-2 */
    border-radius: 0.75rem; /* rounded-xl */
    background-color: var(--gray-100);
    overflow-x: auto;
    scrollbar-width: thin;
}

:is(.dark) .fi-ta-tabs {
    background-color: var(--gray-800);
}

/* Singolo pulsante-tab: identico a .fi-tabs-item nativo (px-3 py-2, gap-x-2,
   rounded-lg, text-sm font-medium). NIENTE min-height: l'altezza è quella
   nativa data da py-2, così i tab combaciano per dimensione con i tab Filament.
   flex-shrink: 0 → in scroll non si comprimono. */
.fi-ta-tabs-item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem; /* gap-x-2 */
    padding: 0.5rem 0.75rem; /* py-2 px-3 */
    border: none;
    border-radius: 0.5rem; /* rounded-lg */
    background-color: transparent;
    box-shadow: none;
    font-size: 0.875rem; /* text-sm */
    font-weight: 500; /* font-medium */
    line-height: 1.25rem;
    white-space: nowrap;
    flex-shrink: 0;
    cursor: pointer;
    color: var(--gray-500);
    transition:
        background-color 75ms ease,
        color 75ms ease;
}

.fi-ta-tabs-item:hover {
    background-color: var(--gray-200);
}

.fi-ta-tabs-item .fi-ta-tabs-item-icon {
    width: 1.25rem;
    height: 1.25rem;
    flex-shrink: 0;
    color: var(--gray-400);
}

:is(.dark) .fi-ta-tabs-item {
    color: var(--gray-400);
}

:is(.dark) .fi-ta-tabs-item:hover {
    background-color: var(--gray-700);
}

:is(.dark) .fi-ta-tabs-item .fi-ta-tabs-item-icon {
    color: var(--gray-500);
}

/* Tab ATTIVO: linguetta bianca rialzata (look segmented control); label e icona
   color primary. */
.fi-ta-tabs-item.fi-active {
    background-color: var(--color-white);
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.08);
    color: var(--primary-700);
}

.fi-ta-tabs-item.fi-active .fi-ta-tabs-item-icon {
    color: var(--primary-700);
}

:is(.dark) .fi-ta-tabs-item.fi-active {
    background-color: var(--gray-950);
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.08);
    color: var(--primary-400);
}

:is(.dark) .fi-ta-tabs-item.fi-active .fi-ta-tabs-item-icon {
    color: var(--primary-400);
}

/* Badge: è un <x-filament::badge> (porta da sé il colore semantico via le CSS
   custom property di Filament). Qui solo cifre a larghezza fissa, così il
   conteggio non fa "ballare" la larghezza del pulsante. */
.fi-ta-tabs-item-badge {
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
}
