/**
 * ═══════════════════════════════════════════════════════════════════════════
 * 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 - Grigio leggermente più scuro della pagina
   ═══════════════════════════════════════════════════════════════════════════ */

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

/* Scrollbar sidebar: stessa larghezza della scrollbar principale */
.fi-sidebar-nav::-webkit-scrollbar {
    width: 8px;
}
.fi-sidebar-nav::-webkit-scrollbar-track {
    background: #f1f5f9;
}
.fi-sidebar-nav::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 4px;
}
.fi-sidebar-nav::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}
.fi-sidebar-nav {
    scrollbar-width: thin;
    scrollbar-color: #cbd5e1 #f1f5f9;
}

/* 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;
}

/* Icona custom Parcellini: sostituisce heroicon con PNG */
a[href*="/parcellini"] .fi-sidebar-item-icon svg {
    display: none !important;
}
a[href*="/parcellini"] .fi-sidebar-item-icon {
    background-image: url('/images/icons/parcellini.png') !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    width: 20px !important;
    height: 20px !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;
}

/* Pratiche/Claims */
li.fi-sidebar-item:has(a[href*="claims"]) .fi-sidebar-item-btn::before {
    content: '📋';
}

/* Clienti */
li.fi-sidebar-item:has(a[href*="clients"]) .fi-sidebar-item-btn::before {
    content: '👥';
}

/* Immobili/Properties */
li.fi-sidebar-item:has(a[href*="properties"]) .fi-sidebar-item-btn::before {
    content: '🏠';
}

/* Amministratori */
li.fi-sidebar-item:has(a[href*="administrators"]) .fi-sidebar-item-btn::before {
    content: '👔';
}

/* Broker */
li.fi-sidebar-item:has(a[href*="brokers"]) .fi-sidebar-item-btn::before {
    content: '🤝';
}

/* Compagnie Assicurative */
li.fi-sidebar-item:has(a[href*="insurance-companies"]) .fi-sidebar-item-btn::before {
    content: '🏢';
}

/* Agenzie */
li.fi-sidebar-item:has(a[href*="agencies"]) .fi-sidebar-item-btn::before {
    content: '🏪';
}

/* Polizze */
li.fi-sidebar-item:has(a[href*="policies"]) .fi-sidebar-item-btn::before {
    content: '📄';
}

/* Utenti */
li.fi-sidebar-item:has(a[href*="users"]) .fi-sidebar-item-btn::before {
    content: '👤';
}

/* Sedi/Offices */
li.fi-sidebar-item:has(a[href*="offices"]) .fi-sidebar-item-btn::before {
    content: '🏛️';
}

/* Ruoli */
li.fi-sidebar-item:has(a[href*="roles"]) .fi-sidebar-item-btn::before {
    content: '🔐';
}

/* Tenant */
li.fi-sidebar-item:has(a[href*="tenants"]) .fi-sidebar-item-btn::before {
    content: '🏗️';
}

/* Ispettorati */
li.fi-sidebar-item:has(a[href*="inspectorates"]) .fi-sidebar-item-btn::before {
    content: '🔍';
}

/* Prezzario */
li.fi-sidebar-item:has(a[href*="price-list"]) .fi-sidebar-item-btn::before {
    content: '💶';
}

/* Macro Danni */
li.fi-sidebar-item:has(a[href*="macro-damages"]) .fi-sidebar-item-btn::before {
    content: '⚡';
}

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

/* Modelli Polizza */
li.fi-sidebar-item:has(a[href*="policy-models"]) .fi-sidebar-item-btn::before {
    content: '📑';
}

/* Dashboard (primo elemento, link termina con /admin) */
li.fi-sidebar-item:has(a[href$="/admin"]) .fi-sidebar-item-btn::before {
    content: '📊';
}

/* Parcellini */
li.fi-sidebar-item:has(a[href*="parcellini"]) .fi-sidebar-item-btn::before {
    content: '🧾';
}


/* 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;
}

/* FORZA bottoni header actions a essere blu - massima specificità */
.fi-header-actions .fi-btn,
.fi-header-actions .fi-btn.fi-btn-color-gray,
.fi-header-actions button.fi-btn,
.fi-header-actions a.fi-btn {
    background-color: #2F468A !important;
    color: #ffffff !important;
    border-color: #2F468A !important;
}

.fi-header-actions .fi-btn:hover,
.fi-header-actions button.fi-btn:hover,
.fi-header-actions a.fi-btn:hover {
    background-color: #283d78 !important;
    border-color: #283d78 !important;
}

/* Bottone ELIMINA (danger) nell'header - outline rosso */
.fi-header-actions .fi-btn-color-danger,
.fi-header-actions .fi-btn.fi-btn-color-danger,
.fi-header-actions button.fi-btn-color-danger,
.fi-header-actions a.fi-btn-color-danger {
    background-color: #ffffff !important;
    color: #dc2626 !important;
    border: 2px solid #dc2626 !important;
}

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

/* Icona dentro bottone danger */
.fi-header-actions .fi-btn-color-danger svg {
    color: #dc2626 !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   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"],
.fi-header-actions .fi-btn,
[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,
.fi-header-actions .fi-btn: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,
.fi-header-actions .fi-btn: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-header-actions .fi-btn: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 info — 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: #3b82f6 !important;
    border-color: #3b82f6 !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)
   ═══════════════════════════════════════════════════════════════════════════ */

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

.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;
}

/* ═══════════════════════════════════════════════════════════════════════════
   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;
}
