/**
 * ═══════════════════════════════════════════════════════════════════════════
 * TEMA "TECHNICAL SLATE" - GestionePerizie
 * ═══════════════════════════════════════════════════════════════════════════
 *
 * Riferimento visivo: esemplificativo colori gestionale.jpg
 *
 * Palette colori (da immagine):
 * - Primary:        #2F468A (Blu scuro istituzionale)
 * - Sfondo pagina:  #f8fafc (Grigio perla, quasi bianco)
 * - Sidebar:        #f8fafc (stesso)
 * - Superfici:      #ffffff (bianco)
 * - Bordi:          #e5e7eb (grigio leggero)
 *
 * Geometria:
 * - Border radius:  0 OVUNQUE (rettangoli perfetti)
 *
 * Data: 05 Febbraio 2026
 * Versione: 2.1 - Fix colori e border-radius
 */

/* ═══════════════════════════════════════════════════════════════════════════
   GOOGLE FONTS
   ═══════════════════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;450;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap');

/* ═══════════════════════════════════════════════════════════════════════════
   RESET BORDER-RADIUS GLOBALE - MOLTO AGGRESSIVO
   ═══════════════════════════════════════════════════════════════════════════ */

/* Reset variabili CSS di Filament per border-radius */
:root {
    --radius-sm: 0 !important;
    --radius-md: 0 !important;
    --radius-lg: 0 !important;
    --radius-xl: 0 !important;
    --radius-2xl: 0 !important;
    --radius-3xl: 0 !important;
    --radius-full: 0 !important;
}

/* Reset globale per TUTTI gli elementi */
*,
*::before,
*::after {
    border-radius: 0 !important;
}

/* Reset specifico per classi Tailwind rounded-* */
[class*="rounded-sm"],
[class*="rounded-md"],
[class*="rounded-lg"],
[class*="rounded-xl"],
[class*="rounded-2xl"],
[class*="rounded-3xl"],
[class*="rounded-full"],
.rounded,
.rounded-sm,
.rounded-md,
.rounded-lg,
.rounded-xl,
.rounded-2xl,
.rounded-3xl {
    border-radius: 0 !important;
}

/* Reset specifico per elementi Filament */
.fi-btn,
.fi-badge,
.fi-input,
.fi-input-wrp,
.fi-select,
.fi-select-input,
.fi-textarea,
.fi-dropdown-panel,
.fi-dropdown-list,
.fi-modal,
.fi-modal-window,
.fi-section,
.fi-section-content,
.fi-section-header,
.fi-card,
.fi-card-content,
.fi-ta-row,
.fi-ta-cell,
.fi-ta-header-cell,
.fi-wi-stats-overview-stat,
.fi-wi-stats-overview-stat-value,
.fi-sidebar,
.fi-sidebar-nav,
.fi-sidebar-item,
.fi-sidebar-item-button,
.fi-topbar,
.fi-tabs,
.fi-tabs-tab,
.fi-pagination,
.fi-pagination-item,
.fi-ac-btn-action,
.fi-fo-field-wrp,
.fi-avatar,
.fi-icon-btn,
.fi-link,
button,
input,
select,
textarea {
    border-radius: 0 !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   SFONDO PAGINA - Grigio Perla (quasi bianco come da immagine)
   ═══════════════════════════════════════════════════════════════════════════ */

body,
.fi-body,
.fi-main,
.fi-simple-layout {
    background-color: #f8fafc !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   SIDEBAR - Stesso colore del corpo centrale
   ═══════════════════════════════════════════════════════════════════════════ */

.fi-sidebar,
.fi-sidebar-nav,
.fi-sidebar-header {
    background-color: #f8fafc !important;  /* Stesso colore del body */
    border-right: 1px solid #e2e8f0 !important;
}

/* Menu item - stato normale - SCRITTE BLU SCURO */
.fi-sidebar-item-label {
    color: #1e3a5f !important;
    font-weight: 500 !important;
}

.fi-sidebar-item-icon {
    color: #1e3a5f !important;
}

/* Menu item - hover */
.fi-sidebar-item:hover,
.fi-sidebar-item-button:hover {
    background-color: rgba(47, 70, 138, 0.06) !important;
}

.fi-sidebar-item:hover .fi-sidebar-item-label,
.fi-sidebar-item-button:hover .fi-sidebar-item-label {
    color: #475569 !important;
}

/* Menu item - attivo (come da immagine: sfondo blu chiaro + bordo sinistro) */
.fi-sidebar-item-active,
.fi-sidebar-item-active .fi-sidebar-item-button,
.fi-sidebar-nav-item.fi-active {
    background-color: rgba(47, 70, 138, 0.08) !important;
    border-left: 3px solid #2F468A !important;
}

.fi-sidebar-item-active .fi-sidebar-item-label {
    color: #2F468A !important;
    font-weight: 600 !important;
}

.fi-sidebar-item-active .fi-sidebar-item-icon {
    color: #2F468A !important;
}

/* Badge contatori nella sidebar (es. "1243" accanto a Immobili) */
.fi-sidebar-item-badge {
    background-color: transparent !important;
    color: #94a3b8 !important;
    font-weight: 500 !important;
}

.fi-sidebar-item-active .fi-sidebar-item-badge {
    color: #2F468A !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   ICONE SIDEBAR - EMOJI MULTICOLORE (come da mockup)
   ═══════════════════════════════════════════════════════════════════════════ */

/* Nascondi completamente le icone SVG heroicon */
.fi-sidebar-item .fi-sidebar-item-icon {
    display: none !important;
}

/* Stile base per emoji - usa ::before sul link */
.fi-sidebar-item .fi-sidebar-item-btn::before {
    font-size: 1.25rem;
    line-height: 1;
    margin-right: 0.5rem;
    flex-shrink: 0;
}

/* Elenco Sinistri — icona Phosphor (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="claims"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="claims"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Clienti/Assicurati — icona Bootstrap (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="clients"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="clients"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Immobili/Pre-esistenze — icona Bootstrap (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="properties"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="properties"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Amministratori — icona Codicon (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="administrators"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="administrators"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Broker — icona Google Material (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="brokers"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="brokers"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Compagnie — icona Game Icons (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="insurance-companies"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="insurance-companies"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Agenzie — icona Google Material (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="agencies"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="agencies"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Polizze — icona Vaadin (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="policies"]):not(:has(a[href*="policy-models"])) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="policies"]):not(:has(a[href*="policy-models"])) .fi-sidebar-item-icon {
    display: block !important;
}

/* Utenti — icona MDI (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="users"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="users"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Sedi — icona Remix (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="offices"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="offices"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Ruoli — icona RPG Awesome (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="roles"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="roles"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Aziende — icona Pepicon (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="tenants"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="tenants"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Ispettorati — icona Vaadin (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="inspectorates"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="inspectorates"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Prezziario — icona Google Material (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="price-list"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="price-list"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Macro Danni — icona EOS (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="macro-damages"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="macro-damages"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Partite Furto */
li.fi-sidebar-item:has(a[href*="theft-partitions"]) .fi-sidebar-item-btn::before {
    content: '🔒';
}

/* Modelli Polizza — icona Ionicon (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="policy-models"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="policy-models"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Dashboard — icona Zondicon (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href$="/admin"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href$="/admin"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Parcellini — icona MDI (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="parcellini"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="parcellini"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Altri Soggetti — icona Heroicon users (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="other-subjects"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="other-subjects"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Nuovo Sinistro — icona Heroicon document-plus (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="nuovo-sinistro"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="nuovo-sinistro"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Da Contattare — icona Heroicon phone (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="parties-to-contact"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="parties-to-contact"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Mappa Sopralluoghi — icona Heroicon map (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="mappa"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="mappa"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Database Backup — icona Heroicon circle-stack (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="database-backup"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="database-backup"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Partite Furto — icona SVG (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="theft-partitions"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="theft-partitions"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Web App — Sopralluoghi Mobile (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="web-app-inspections"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="web-app-inspections"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Web App — Monitor Attivita' (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="web-app-monitor"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="web-app-monitor"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Web App — Configurazione (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="web-app-config"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="web-app-config"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Comunicazione — Email/Webmail (mostra SVG) */
li.fi-sidebar-item:has(a[href*="webmail"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="webmail"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Comunicazione — Abbina Email (mostra SVG) */
li.fi-sidebar-item:has(a[href*="email-matching"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="email-matching"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Comunicazione — Calendario (mostra SVG) */
li.fi-sidebar-item:has(a[href*="calendario"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="calendario"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Amministrazione — Setup Servizi (mostra SVG) */
li.fi-sidebar-item:has(a[href*="setup-servizi"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="setup-servizi"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Videoperizia — Regole Compagnia (mostra SVG) */
li.fi-sidebar-item:has(a[href*="vdp-company-rules"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="vdp-company-rules"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Videoperizia — Monitor Sessioni (mostra SVG) */
li.fi-sidebar-item:has(a[href*="vdp-sessions"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="vdp-sessions"]) .fi-sidebar-item-icon {
    display: block !important;
}


/* Amministrazione — Gestione Tabelle (mostra SVG) */
li.fi-sidebar-item:has(a[href*="gestione-tabelle"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="gestione-tabelle"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* SLA Compagnie — icona Heroicon clock (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="company-sla-configs"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="company-sla-configs"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Monitor API — icona Heroicon signal (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="api-dashboard"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="api-dashboard"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Monitor Server — icona Heroicon server-stack (mostra SVG, no emoji) */
li.fi-sidebar-item:has(a[href*="server-monitor"]) .fi-sidebar-item-btn::before {
    display: none;
}
li.fi-sidebar-item:has(a[href*="server-monitor"]) .fi-sidebar-item-icon {
    display: block !important;
}

/* Sezioni sidebar (PRATICHE, ANAGRAFICHE, AMMINISTRAZIONE) */
.fi-sidebar-group-label {
    color: #1e3a5f !important;
    opacity: 0.6;
    font-size: 0.65rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   TOP BAR - Bianca con bordo
   ═══════════════════════════════════════════════════════════════════════════ */

.fi-topbar {
    background-color: #ffffff !important;
    border-bottom: 1px solid #e5e7eb !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   CARD STATISTICHE (TOTALE, PREESIST. MEDIA, etc.)
   ═══════════════════════════════════════════════════════════════════════════ */

.fi-wi-stats-overview-stat {
    background-color: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    box-shadow: none !important;
}

.fi-wi-stats-overview-stat:hover {
    border-color: rgba(47, 70, 138, 0.3) !important;
}

/* Label statistiche (TOTALE, PREESIST. MEDIA) */
.fi-wi-stats-overview-stat-label {
    color: #94a3b8 !important;
    font-size: 0.65rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
}

/* Valori statistiche (1.243, € 96.200) */
.fi-wi-stats-overview-stat-value {
    color: #1e293b !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-weight: 700 !important;
    font-variant-numeric: tabular-nums !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   TABELLE
   ═══════════════════════════════════════════════════════════════════════════ */

/* Container tabella */
.fi-ta {
    background-color: #ffffff !important;
    border: 1px solid #e5e7eb !important;
}

/* Header tabella */
.fi-ta-header,
.fi-ta-header-cell {
    background-color: #f8fafc !important;
    color: #64748b !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    font-weight: 700 !important;
    font-size: 0.7rem !important;
    border-bottom: 1px solid #e5e7eb !important;
}

/* Righe alternate */
.fi-ta-row:nth-child(even) {
    background-color: #fafbfc;
}

/* Hover righe */
.fi-ta-row:hover {
    background-color: rgba(47, 70, 138, 0.04) !important;
}

/* Celle */
.fi-ta-cell {
    border-color: #f1f5f9 !important;
    padding-top: 0.625rem !important;
    padding-bottom: 0.625rem !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   BADGE - Tipo immobile e Sicurezza (come da immagine)
   ═══════════════════════════════════════════════════════════════════════════ */

/* Tutti i badge */
.fi-badge {
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    font-weight: 600 !important;
    font-size: 0.65rem !important;
    padding: 0.125rem 0.5rem !important;
}

/* Badge Appartamento (sfondo blu chiaro) */
.fi-badge-color-primary,
.fi-badge[style*="primary"] {
    background-color: rgba(47, 70, 138, 0.08) !important;
    color: #2F468A !important;
    border: 1px solid rgba(47, 70, 138, 0.2) !important;
}

/* Badge Villa (sfondo giallo chiaro) */
.fi-badge-color-warning {
    background-color: #fef3c7 !important;
    color: #92400e !important;
    border: 1px solid #fde68a !important;
}

/* Badge Ufficio (sfondo indaco chiaro) */
.fi-badge-color-info {
    background-color: #e0e7ff !important;
    color: #3730a3 !important;
    border: 1px solid #c7d2fe !important;
}

/* Badge ALTA (verde) */
.fi-badge-color-success {
    background-color: #dcfce7 !important;
    color: #166534 !important;
    border: 1px solid #bbf7d0 !important;
}

/* Badge MEDIA (giallo/arancio) */
/* Già coperto da warning sopra */

/* Badge BASSA (rosso) */
.fi-badge-color-danger {
    background-color: #fee2e2 !important;
    color: #991b1b !important;
    border: 1px solid #fecaca !important;
}

/* Badge grigi/neutri */
.fi-badge-color-gray {
    background-color: #f1f5f9 !important;
    color: #64748b !important;
    border: 1px solid #e2e8f0 !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   CONTATORI PRATICHE (cerchietti colorati nella colonna PRAT.)
   ═══════════════════════════════════════════════════════════════════════════ */

/* Questi sono l'unica eccezione: rimangono circolari */
.fi-ta-cell .fi-badge-size-sm,
.counter-badge,
.practice-counter {
    border-radius: 9999px !important;
    min-width: 1.5rem !important;
    height: 1.5rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-weight: 700 !important;
    font-size: 0.65rem !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   BOTTONI FILTRO (Filtra..., Tipo, Provincia, Sicurezza)
   ═══════════════════════════════════════════════════════════════════════════ */

.fi-ta-filters button,
.fi-dropdown-trigger {
    background-color: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    color: #64748b !important;
}

.fi-ta-filters button:hover,
.fi-dropdown-trigger:hover {
    border-color: rgba(47, 70, 138, 0.3) !important;
    color: #2F468A !important;
}

/* Bottoni gray generici */
.fi-btn-color-gray {
    background-color: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    color: #64748b !important;
}

/* Header actions: Filament 5 gestisce nativamente i colori dei bottoni.
   Nessun override necessario — vedi Save Changes/Cancel come riferimento. */

/* ═══════════════════════════════════════════════════════════════════════════
   BOTTONE PRIMARIO (+ Nuovo Immobile, + Nuova Pratica, etc.)
   ═══════════════════════════════════════════════════════════════════════════ */

/* Selettori molto specifici per il bottone primario */
.fi-btn-primary,
.fi-btn-color-primary,
.fi-btn.fi-btn-color-primary,
button.fi-btn-color-primary,
a.fi-btn-color-primary,
.fi-btn[wire\:click*="create"],
[class*="fi-btn"][class*="primary"] {
    background-color: #2F468A !important;
    color: #ffffff !important;
    font-weight: 600 !important;
    box-shadow: 0 1px 3px rgba(47, 70, 138, 0.3) !important;
    border-color: #2F468A !important;
}

.fi-btn-primary:hover,
.fi-btn-color-primary:hover,
.fi-btn.fi-btn-color-primary:hover,
button.fi-btn-color-primary:hover,
a.fi-btn-color-primary:hover {
    background-color: #283d78 !important;
    box-shadow: 0 2px 4px rgba(47, 70, 138, 0.4) !important;
    border-color: #283d78 !important;
}

/* Stato ACTIVE (quando premuto) - mantiene colore blu ma più scuro */
.fi-btn-primary:active,
.fi-btn-color-primary:active,
.fi-btn.fi-btn-color-primary:active,
button.fi-btn-color-primary:active,
a.fi-btn-color-primary:active {
    background-color: #1e3a5f !important;
    color: #ffffff !important;
    border: 2px solid #1e3a5f !important;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2) !important;
}

/* Stato FOCUS - bordo visibile */
.fi-btn-primary:focus,
.fi-btn-color-primary:focus,
.fi-btn.fi-btn-color-primary:focus,
button.fi-btn-color-primary:focus,
a.fi-btn-color-primary:focus,
.fi-btn-primary:focus-visible,
.fi-btn-color-primary:focus-visible,
.fi-btn.fi-btn-color-primary:focus-visible {
    background-color: #2F468A !important;
    color: #ffffff !important;
    border: 2px solid #1e3a5f !important;
    box-shadow: 0 0 0 3px rgba(47, 70, 138, 0.4) !important;
    outline: none !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   BOTTONE SUCCESS (verde) - Salva
   ═══════════════════════════════════════════════════════════════════════════ */

.fi-btn-color-success,
button.fi-btn-color-success,
a.fi-btn-color-success {
    background-color: #16a34a !important;
    color: #ffffff !important;
    border-color: #16a34a !important;
}

.fi-btn-color-success:hover {
    background-color: #15803d !important;
    border-color: #15803d !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   BOTTONE INFO (blu) - Visualizza
   ═══════════════════════════════════════════════════════════════════════════ */

.fi-btn-color-info,
button.fi-btn-color-info,
a.fi-btn-color-info {
    background-color: #0ea5e9 !important;
    color: #ffffff !important;
    border-color: #0ea5e9 !important;
}

.fi-btn-color-info:hover {
    background-color: #0284c7 !important;
    border-color: #0284c7 !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   BOTTONE DANGER (rosso) - Elimina
   ═══════════════════════════════════════════════════════════════════════════ */

.fi-btn-color-danger,
button.fi-btn-color-danger,
a.fi-btn-color-danger {
    background-color: #dc2626 !important;
    color: #ffffff !important;
    border-color: #dc2626 !important;
}

.fi-btn-color-danger:hover {
    background-color: #b91c1c !important;
    border-color: #b91c1c !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   PAGINAZIONE
   ═══════════════════════════════════════════════════════════════════════════ */

.fi-pagination {
    background-color: #f8fafc !important;
}

/* Testo "Pag. 1 di 178" */
.fi-pagination-records {
    font-family: 'JetBrains Mono', monospace !important;
    color: #94a3b8 !important;
    font-size: 0.75rem !important;
}

/* Numeri pagina */
.fi-pagination-item {
    color: #64748b !important;
}

/* Pagina attiva */
.fi-pagination-item-active {
    background-color: #2F468A !important;
    color: #ffffff !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   IMPORTI E NUMERI - JetBrains Mono
   ═══════════════════════════════════════════════════════════════════════════ */

/* Colonne monetarie */
.text-right .fi-ta-text-item,
[data-field-type="money"],
.fi-ta-text-item[data-type="money"],
.money-value {
    font-family: 'JetBrains Mono', monospace !important;
    font-variant-numeric: tabular-nums !important;
    font-weight: 600 !important;
    color: #2F468A !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   SEZIONI E CARD
   ═══════════════════════════════════════════════════════════════════════════ */

.fi-section {
    background-color: #ffffff !important;
    border: 1px solid #e5e7eb !important;
}

.fi-section-header {
    background-color: #f8fafc !important;
    border-bottom: 1px solid #e5e7eb !important;
}

.fi-section-content {
    background-color: #ffffff !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   INPUT E FORM - Font size ridotto per allineamento sidebar
   ═══════════════════════════════════════════════════════════════════════════ */

.fi-input,
.fi-select,
.fi-textarea,
.fi-input-wrp {
    border-color: #e5e7eb !important;
    background-color: #ffffff !important;
}

/* Font size per input (stesso della sidebar: ~14px / 0.875rem) */
.fi-input,
.fi-select,
.fi-textarea,
input[type="text"],
input[type="number"],
input[type="email"],
input[type="password"],
select,
textarea {
    font-size: 0.875rem !important;
}

.fi-input:focus,
.fi-select:focus,
.fi-textarea:focus {
    border-color: #2F468A !important;
    --tw-ring-color: rgba(47, 70, 138, 0.2) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   FORM LABELS E SEZIONI - Font compatto
   ═══════════════════════════════════════════════════════════════════════════ */

/* Label dei campi form */
.fi-fo-field-wrp label,
.fi-field-wrp label,
.fi-fo-field-wrp-label,
label.fi-fo-field-wrp-label {
    font-size: 0.8125rem !important;  /* 13px - leggermente più piccolo */
}

/* Titoli sezioni nel form */
.fi-section-header-heading {
    font-size: 0.9375rem !important;  /* 15px - proporzionato */
}

/* Descrizione sezioni */
.fi-section-header-description,
.fi-section-description {
    font-size: 0.75rem !important;  /* 12px */
}

/* Helper text sotto i campi */
.fi-fo-field-wrp-hint,
.fi-fo-field-wrp-helper-text,
[class*="helper-text"] {
    font-size: 0.75rem !important;  /* 12px */
}

/* Placeholder nei form */
.fi-fo-placeholder,
.fi-fo-placeholder-content {
    font-size: 0.875rem !important;
}

/* Toggle label */
.fi-toggle-label {
    font-size: 0.8125rem !important;
}

/* Select options nel dropdown */
.fi-select-option,
.choices__item {
    font-size: 0.875rem !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   INTERLINEA E SPAZIATURA COMPATTA NEI FORM
   ═══════════════════════════════════════════════════════════════════════════ */

/* Interlinea ridotta globale nei form */
.fi-fo-field-wrp,
.fi-field-wrp,
.fi-section-content {
    line-height: 1.25 !important;
}

/* Padding ridotto nelle sezioni */
.fi-section-content {
    padding: 0.75rem 1rem !important;
}

.fi-section-header {
    padding: 0.625rem 1rem !important;
}

/* Spaziatura tra campi ridotta */
.fi-fo-field-wrp {
    margin-bottom: 0.5rem !important;
}

/* Gap ridotto nelle grid dei form */
.fi-fo-grid,
.fi-section-content > .grid {
    gap: 0.625rem !important;
}

/* Padding input più compatto */
.fi-input,
.fi-select,
.fi-textarea,
input[type="text"],
input[type="number"],
select {
    padding-top: 0.375rem !important;
    padding-bottom: 0.375rem !important;
    line-height: 1.25 !important;
}

/* Textarea più compatto */
.fi-textarea,
textarea {
    padding: 0.375rem 0.625rem !important;
}

/* Label margin ridotto */
.fi-fo-field-wrp label,
.fi-fo-field-wrp-label {
    margin-bottom: 0.25rem !important;
    line-height: 1.2 !important;
}

/* Helper text margin ridotto */
.fi-fo-field-wrp-hint {
    margin-top: 0.125rem !important;
    line-height: 1.2 !important;
}

/* Placeholder content compatto */
.fi-fo-placeholder {
    padding: 0.25rem 0 !important;
}

/* Grid nelle sezioni - gap ridotto */
.fi-section-content .grid {
    row-gap: 0.5rem !important;
    column-gap: 0.75rem !important;
}

/* Toggle più compatto */
.fi-toggle {
    margin-top: 0.25rem !important;
    margin-bottom: 0.25rem !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   TOGGLE SWITCH - Protezione da regole button:active/focus aggressive
   Senza questo fix i toggle "lampeggiavano" al click perché le regole
   generiche button:active/focus sovrascrivevano il colore Filament.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Toggle ON: blu istituzionale #2F468A — TUTTI gli stati (normal, hover, active, focus) */
[role="switch"][aria-checked="true"],
[role="switch"][aria-checked="true"]:hover,
[role="switch"][aria-checked="true"]:active,
[role="switch"][aria-checked="true"]:focus,
[role="switch"][aria-checked="true"]:focus-visible {
    background-color: #2F468A !important;
    border-color: #2F468A !important;
    box-shadow: none !important;
}

/* Toggle OFF: grigio — TUTTI gli stati */
[role="switch"][aria-checked="false"],
[role="switch"][aria-checked="false"]:hover,
[role="switch"][aria-checked="false"]:active,
[role="switch"][aria-checked="false"]:focus,
[role="switch"][aria-checked="false"]:focus-visible {
    background-color: #d1d5db !important;
    border-color: #d1d5db !important;
    box-shadow: none !important;
}

/* Collapsible section header più compatto */
.fi-section-collapse-trigger {
    padding: 0.5rem !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   AZIONI TABELLA (tre puntini)
   ═══════════════════════════════════════════════════════════════════════════ */

/* Solo azioni dentro righe tabella — NON header actions */
.fi-ta-row-actions .fi-ac-btn-action {
    border: 1px solid #e5e7eb !important;
    background-color: #ffffff !important;
}

.fi-ta-row-actions .fi-ac-btn-action:hover {
    background-color: rgba(47, 70, 138, 0.06) !important;
    border-color: rgba(47, 70, 138, 0.3) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   ICON BUTTONS (Edit, View, Delete) - Stato ACTIVE/FOCUS
   ═══════════════════════════════════════════════════════════════════════════ */

/* Icon buttons - stato normale */
.fi-icon-btn,
.fi-ta-row-actions .fi-icon-btn {
    background-color: transparent !important;
    color: #64748b !important;
}

.fi-icon-btn:hover,
.fi-ta-row-actions .fi-icon-btn:hover {
    background-color: rgba(47, 70, 138, 0.08) !important;
    color: #2F468A !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   FIX GLOBALE: Tutti i bottoni quando premuti (active) o focus
   Selettori molto aggressivi per sovrascrivere Filament/Tailwind
   ═══════════════════════════════════════════════════════════════════════════ */

/* RESET: Rimuovi qualsiasi stile che rende i bottoni bianchi */
/* NOTA: esclusi [role="switch"] per non interferire con toggle scorrevoli */
button:not([role="switch"]):active,
button:not([role="switch"]):focus,
button:not([role="switch"]):focus-visible,
a:active,
a:focus,
a:focus-visible,
[type="button"]:not([role="switch"]):active,
[type="button"]:not([role="switch"]):focus,
[type="submit"]:active,
[type="submit"]:focus {
    background-color: inherit;
    color: inherit;
}

/* Bottoni Filament - TUTTI - stato active */
[class*="fi-btn"]:active,
[class*="fi-ac"]:active,
[class*="fi-icon"]:active,
.fi-link:active,
button[wire\\:click]:active {
    background-color: #1e3a5f !important;
    color: #ffffff !important;
    border-color: #1e3a5f !important;
    opacity: 1 !important;
}

/* Bottoni Filament - TUTTI - stato focus */
[class*="fi-btn"]:focus,
[class*="fi-btn"]:focus-visible,
[class*="fi-ac"]:focus,
[class*="fi-ac"]:focus-visible,
[class*="fi-icon"]:focus,
[class*="fi-icon"]:focus-visible,
button[wire\\:click]:focus,
button[wire\\:click]:focus-visible {
    background-color: #2F468A !important;
    color: #ffffff !important;
    border-color: #2F468A !important;
    box-shadow: 0 0 0 3px rgba(47, 70, 138, 0.4) !important;
    outline: none !important;
    opacity: 1 !important;
}

/* SVG/icone dentro bottoni attivi */
[class*="fi-btn"]:active svg,
[class*="fi-ac"]:active svg,
[class*="fi-icon"]:active svg,
[class*="fi-btn"]:focus svg,
[class*="fi-ac"]:focus svg,
[class*="fi-icon"]:focus svg {
    color: #ffffff !important;
    opacity: 1 !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   DROPDOWN MENU
   ═══════════════════════════════════════════════════════════════════════════ */

.fi-dropdown-panel,
.fi-dropdown-list {
    background-color: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   SCROLLBAR - Sottile e discreta
   ═══════════════════════════════════════════════════════════════════════════ */

::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: #f1f5f9;
}

::-webkit-scrollbar-thumb {
    background: #cbd5e1;
}

::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}

* {
    scrollbar-width: thin;
    scrollbar-color: #cbd5e1 #f1f5f9;
}

/* Sidebar scrollbar — stessa larghezza del corpo */
.fi-sidebar-nav::-webkit-scrollbar,
.fi-sidebar::-webkit-scrollbar,
aside::-webkit-scrollbar {
    width: 8px;
}

.fi-sidebar-nav,
.fi-sidebar,
aside {
    scrollbar-width: thin;
    scrollbar-color: #cbd5e1 #f1f5f9;
}

/* ═══════════════════════════════════════════════════════════════════════════
   TESTI GLOBALI - BLU SCURO #1e3a5f OVUNQUE
   ═══════════════════════════════════════════════════════════════════════════ */

/* Titoli pagine */
.fi-header-heading {
    color: #1e3a5f !important;
    font-weight: 700 !important;
}

/* Breadcrumb */
.fi-breadcrumbs-item-label {
    color: #1e3a5f !important;
}

/* Testi generali body */
body,
.fi-body {
    color: #1e3a5f !important;
}

/* Label form */
.fi-fo-field-wrp label,
.fi-field-wrp label,
label {
    color: #1e3a5f !important;
}

/* Testo celle tabella */
.fi-ta-cell,
.fi-ta-text-item {
    color: #1e3a5f !important;
}

/* Header tabella */
.fi-ta-header-cell {
    color: #1e3a5f !important;
}

/* Testi sezioni */
.fi-section-header-heading,
.fi-section-label {
    color: #1e3a5f !important;
}

/* Placeholder e hint (più chiari) */
::placeholder {
    color: #64748b !important;
}

.fi-fo-field-wrp-hint {
    color: #64748b !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   LINK
   ═══════════════════════════════════════════════════════════════════════════ */

.fi-link {
    color: #2F468A !important;
}

.fi-link:hover {
    color: #283d78 !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   TAB
   ═══════════════════════════════════════════════════════════════════════════ */

.fi-tabs-tab-label {
    color: #1e3a5f !important;
}

/* Tab attivo - sfondo blu */
.fi-tabs-tab-active,
.fi-tabs-tab[aria-selected="true"] {
    background-color: #2F468A !important;
    border-radius: 0 !important;
}

.fi-tabs-tab-active .fi-tabs-tab-label,
.fi-tabs-tab[aria-selected="true"] .fi-tabs-tab-label {
    color: #ffffff !important;
    font-weight: 600 !important;
}

/* Icona nel tab attivo */
.fi-tabs-tab-active svg,
.fi-tabs-tab[aria-selected="true"] svg {
    color: #ffffff !important;
}

/* Tab non attivo - hover */
.fi-tabs-tab:not(.fi-tabs-tab-active):hover {
    background-color: rgba(47, 70, 138, 0.1) !important;
}

/* Contenuto tab - scrolling verticale */
.fi-tabs [role="tabpanel"] {
    max-height: calc(100vh - 250px);
    overflow-y: auto !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   UTILITY CUSTOM
   ═══════════════════════════════════════════════════════════════════════════ */

/* Righe subtotali */
.subtotal-row,
tr.bg-highlight {
    background-color: rgba(47, 70, 138, 0.04) !important;
    font-weight: 600 !important;
}

/* Colonna "A Nuovo" */
.column-a-nuovo {
    background-color: rgba(47, 70, 138, 0.02) !important;
}

/* Font mono per codici */
.font-mono {
    font-family: 'JetBrains Mono', monospace !important;
}

/* Importi primari */
.text-primary-amount {
    color: #2F468A !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-weight: 600 !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   PRESENCE SIDEBAR — Colleghi online
   ═══════════════════════════════════════════════════════════════════════════ */

.presence-sidebar {
    border-top: 1px solid #e2e8f0;
    padding: 0;
    margin-top: 4px;
}

.presence-sidebar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 8px 16px;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #64748b;
    font-weight: 600;
}
.presence-sidebar-header:hover {
    background-color: rgba(47, 70, 138, 0.04);
}

.presence-sidebar-title {
    display: flex;
    align-items: center;
    gap: 6px;
}

.presence-dot-online {
    width: 7px;
    height: 7px;
    border-radius: 50% !important;
    background-color: #22c55e;
    flex-shrink: 0;
}

.presence-count {
    background-color: #2F468A;
    color: white;
    font-size: 0.6rem;
    min-width: 16px;
    height: 16px;
    border-radius: 8px !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
    font-weight: 700;
}

.presence-chevron {
    transition: transform 0.2s ease;
    color: #94a3b8;
}

.presence-empty {
    padding: 8px 16px;
    font-size: 0.75rem;
    color: #94a3b8;
    font-style: italic;
}

.presence-user-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 16px;
    transition: background-color 0.15s;
}
.presence-user-item:hover {
    background-color: rgba(47, 70, 138, 0.04);
}

.presence-avatar {
    width: 28px;
    height: 28px;
    border-radius: 50% !important;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.6rem;
    font-weight: 700;
    color: white;
    flex-shrink: 0;
    position: relative;
}
.presence-avatar-online {
    background-color: #2F468A;
}
.presence-avatar-dnd {
    background-color: #94a3b8;
}
.presence-avatar::after {
    content: '';
    position: absolute;
    bottom: -1px;
    right: -1px;
    width: 9px;
    height: 9px;
    border-radius: 50% !important;
    border: 2px solid #f8fafc;
}
.presence-avatar-online::after {
    background-color: #22c55e;
}
.presence-avatar-dnd::after {
    background-color: #f59e0b;
}

.presence-user-info {
    min-width: 0;
    flex: 1;
}

.presence-user-name {
    font-size: 0.75rem;
    font-weight: 500;
    color: #1e293b;
    display: flex;
    align-items: center;
    gap: 4px;
    line-height: 1.2;
}

.presence-dnd-badge {
    font-size: 0.55rem;
    background-color: #fef3c7;
    color: #92400e;
    padding: 0 4px;
    border-radius: 3px !important;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.presence-claim-link {
    font-size: 0.65rem;
    color: #2F468A;
    text-decoration: none;
    font-weight: 500;
    display: block;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.presence-claim-link:hover {
    text-decoration: underline;
}

.presence-last-seen {
    font-size: 0.65rem;
    color: #94a3b8;
    display: block;
    line-height: 1.3;
}

/* Sidebar collassata: nascondi presenza */
.fi-sidebar-open-false .presence-sidebar {
    display: none;
}
