/* Le card KPI degli header widget hanno il disegno standard .jo-kpi: le
 * regole stanno in joorna-standard.css ("KPI di pagina: un solo disegno").
 * Qui restano solo le regole specifiche (badge Qualitando, badge CTA). */

/* Badge "Qualitando" (QualitandoStatsWidget): titolo a sinistra, badge a destra
 * sulla STESSA riga. Il wrapper .jo-stat-label (reso dal blade) diventa un flex a
 * tutta larghezza con space-between; il badge resta a larghezza-contenuto (flex:0 0
 * auto) invece di occupare tutta la riga andando a capo.
 * Si usa un wrapper con classe dedicata invece di :has(.jo-stat-badge) sul parent
 * perché :has() non è supportato su alcuni browser target (vedi
 * public/css/chat-iframe.css:705-708): con :has() la regola fallirebbe in silenzio
 * e il badge non si allineerebbe. La classe limita la regola alle sole card
 * Qualitando, senza toccare le altre — quindi NON scopata a .fi-page-header-widgets:
 * vale ovunque renderizzi il widget (pagina Ospiti come header widget,
 * hotel-dashboard via @livewire).
 * Stile del badge = componente x-filament::badge color="success" (vedi
 * resources/views/filament/widgets/qualitando-stat-label.blade.php). */
.jo-stat-label {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.jo-stat-badge {
    flex: 0 0 auto;
}

/* Badge CTA "Attiva il modulo" / "Richiedi attivazione modulo" nelle voci di
 * navigazione bloccate (vedi GatedByModule::getNavigationBadge). Il testo è più
 * lungo di un semplice "Attiva": riduciamo font e padding così sta accanto alla
 * voce senza andare a capo o sfondare la sidebar. Scopato al colore warning per
 * non toccare eventuali badge conteggio (unread, ecc.) di altro colore. */
.fi-sidebar-item .fi-badge.fi-color-warning {
    font-size: 0.625rem;
    line-height: 1.1;
    padding-inline: 0.375rem;
    padding-block: 0.125rem;
    /* white-space: normal + max-width forzano l'a-capo: "Attiva il" (legato da
     * nbsp lato PHP) sta su una riga, "modulo" va a capo. La max-width sta larga
     * per "Attiva il" ma non per l'intera frase, così scatta il wrap. */
    white-space: normal;
    max-width: 5rem;
    text-align: center;
}

/* Il badge Filament avvolge lo slot in <span class="grid"><span class="truncate">:
 * la classe Tailwind `truncate` (overflow:hidden + text-overflow:ellipsis +
 * white-space:nowrap) tiene il testo su una riga e mostra i "...". Disattiviamola
 * SOLO per il nostro badge warning così il testo va a capo per intero. */
.fi-sidebar-item .fi-badge.fi-color-warning .truncate {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
}

/* Con il badge multi-riga la label della voce bloccata perdeva spazio e veniva
 * troncata ("Pubblicità e sito ..."). Sulle sole voci con badge warning lasciamo
 * andare a capo anche la label, così sparisce l'ellissi. :has() è supportato dai
 * browser del pannello admin (non è la iframe pubblica del chatbot). */
.fi-sidebar-item:has(.fi-badge.fi-color-warning) .fi-sidebar-item-label {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
}
