/* =================================================================
 * Totowin Palette — CRM Filament theming completo
 *
 * Copertura: light mode + dark mode + tutti i componenti principali
 * Brand:
 *   Navy  = #1E3A5F (primary)
 *   Gold  = #F5C842 (accent / CTA)
 *   Cream = #E8E5DA (testo su scuro)
 * ================================================================= */

/* =================================================================
 * VARIABILI CSS GLOBALI
 * ================================================================= */
:root {
    /* Brand */
    --tw-navy-50:  #F2F4F8;
    --tw-navy-100: #DCE2EB;
    --tw-navy-200: #B5C0D2;
    --tw-navy-300: #8093AE;
    --tw-navy-400: #4F668A;
    --tw-navy-500: #2F4A72;
    --tw-navy-600: #1E3A5F;
    --tw-navy-700: #16304F;
    --tw-navy-800: #0F2540;
    --tw-navy-900: #0A1A2E;
    --tw-navy-950: #06101F;

    --tw-gold-50:  #FEFAF0;
    --tw-gold-100: #FCF1D4;
    --tw-gold-200: #F8E2A8;
    --tw-gold-300: #F4D27D;
    --tw-gold-400: #F0C25F;
    --tw-gold-500: #F5C842;
    --tw-gold-600: #D9A91E;
    --tw-gold-700: #B08416;
    --tw-gold-800: #856010;

    --tw-cream:     #E8E5DA;
    --tw-cream-dim: #C9C5BA;
}

/* =================================================================
 * SIDEBAR — light mode (default)
 * Sidebar navy fissa con testo crema, indipendente dal tema body
 * ================================================================= */
.fi-sidebar {
    background: linear-gradient(180deg, var(--tw-navy-700) 0%, var(--tw-navy-600) 100%) !important;
    border-right: 1px solid var(--tw-navy-800) !important;
    color: var(--tw-cream);
}

/* Header logo nella sidebar */
.fi-sidebar .fi-sidebar-header {
    background: var(--tw-navy-800) !important;
    border-bottom: 1px solid var(--tw-navy-900) !important;
}
.fi-sidebar .fi-sidebar-header .fi-logo,
.fi-sidebar .fi-sidebar-header h1,
.fi-sidebar .fi-sidebar-header span {
    color: var(--tw-gold-400) !important;
    font-weight: 700;
}

/* Group label (titoli sezione) */
.fi-sidebar .fi-sidebar-group-label {
    color: var(--tw-navy-200) !important;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.7rem;
    letter-spacing: 0.06em;
    padding: 0.5rem 1rem 0.25rem;
}

/* Voce nav inattiva */
.fi-sidebar .fi-sidebar-item-button,
.fi-sidebar .fi-sidebar-item a {
    color: var(--tw-cream) !important;
    transition: background-color 150ms, color 150ms;
}
.fi-sidebar .fi-sidebar-item-label {
    color: var(--tw-cream) !important;
    font-weight: 500;
}

/* Hover */
.fi-sidebar .fi-sidebar-item-button:hover,
.fi-sidebar .fi-sidebar-item a:hover {
    background-color: rgba(245, 200, 66, 0.10) !important;
}
.fi-sidebar .fi-sidebar-item-button:hover .fi-sidebar-item-label,
.fi-sidebar .fi-sidebar-item a:hover .fi-sidebar-item-label {
    color: #FFF !important;
}

/* Voce attiva (selezionata) */
.fi-sidebar .fi-sidebar-item.fi-active .fi-sidebar-item-button,
.fi-sidebar .fi-sidebar-item-active .fi-sidebar-item-button,
.fi-sidebar .fi-active > a,
.fi-sidebar .fi-sidebar-item-active > a {
    background-color: rgba(245, 200, 66, 0.18) !important;
    border-left: 3px solid var(--tw-gold-500) !important;
    padding-left: calc(1rem - 3px) !important;
}
.fi-sidebar .fi-sidebar-item.fi-active .fi-sidebar-item-label,
.fi-sidebar .fi-sidebar-item-active .fi-sidebar-item-label {
    color: var(--tw-gold-100) !important;
    font-weight: 600;
}

/* Icone navigation: default crema, poi colori per categoria */
.fi-sidebar .fi-sidebar-item-icon {
    color: var(--tw-cream-dim) !important;
    transition: color 150ms;
}
.fi-sidebar .fi-sidebar-item-button:hover .fi-sidebar-item-icon,
.fi-sidebar .fi-sidebar-item a:hover .fi-sidebar-item-icon {
    color: #FFF !important;
}

/* CRM operativo (esercenti, contatti, lead, attività, rapporti) */
.fi-sidebar a[href*="/admin/esercentes"]   .fi-sidebar-item-icon { color: #93C5FD !important; }
.fi-sidebar a[href*="/admin/contatti"]     .fi-sidebar-item-icon { color: #93C5FD !important; }
.fi-sidebar a[href*="/admin/leads-sito"]   .fi-sidebar-item-icon { color: #FCD34D !important; }
.fi-sidebar a[href*="/admin/attivitas"]    .fi-sidebar-item-icon { color: #6EE7B7 !important; }
.fi-sidebar a[href*="/admin/rapporto"]     .fi-sidebar-item-icon { color: #6EE7B7 !important; }

/* Premi / fedeltà */
.fi-sidebar a[href*="/admin/promozioni"]    .fi-sidebar-item-icon { color: var(--tw-gold-400) !important; }
.fi-sidebar a[href*="/admin/bonus-fedelta"] .fi-sidebar-item-icon { color: var(--tw-gold-400) !important; }
.fi-sidebar a[href*="/admin/livelli"]       .fi-sidebar-item-icon { color: var(--tw-gold-400) !important; }

/* Comunicazioni */
.fi-sidebar a[href*="/admin/email"]    .fi-sidebar-item-icon { color: #C4B5FD !important; }
.fi-sidebar a[href*="/admin/rubrica"]  .fi-sidebar-item-icon { color: #C4B5FD !important; }

/* Promoter / agenti */
.fi-sidebar a[href*="/admin/promoter"]    .fi-sidebar-item-icon { color: #F9A8D4 !important; }
.fi-sidebar a[href*="/admin/assegnazione"] .fi-sidebar-item-icon { color: #F9A8D4 !important; }
.fi-sidebar a[href*="/admin/tariffa"]     .fi-sidebar-item-icon { color: #F9A8D4 !important; }

/* Configurazione */
.fi-sidebar a[href*="/admin/profili"]   .fi-sidebar-item-icon { color: #5EEAD4 !important; }
.fi-sidebar a[href*="/admin/users"]     .fi-sidebar-item-icon { color: #FDBA74 !important; }


/* =================================================================
 * TOPBAR (in alto, contiene search + campanella + avatar)
 * ================================================================= */
.fi-topbar {
    background: #FFFFFF !important;
    border-bottom: 1px solid var(--tw-navy-100) !important;
    box-shadow: 0 1px 3px rgba(15, 37, 64, 0.05);
}
.fi-topbar .fi-input-wrp,
.fi-topbar input[type="search"] {
    background: var(--tw-navy-50) !important;
    border-color: var(--tw-navy-100) !important;
}

/* Campanella notifiche topbar — gold per essere notata */
.fi-topbar .fi-topbar-database-notifications-trigger,
.fi-topbar .fi-icon-btn[aria-label*="otific"] {
    color: var(--tw-gold-600) !important;
}
.fi-topbar .fi-topbar-database-notifications-trigger:hover {
    color: var(--tw-gold-700) !important;
}

/* Toggle dark mode */
.fi-topbar .fi-theme-switcher button {
    color: var(--tw-navy-600) !important;
}


/* =================================================================
 * MAIN PAGE / HEADER PAGINA
 * ================================================================= */
.fi-main {
    background: #F8FAFC;
}
.fi-page-header {
    background: #FFF;
    border-bottom: 1px solid var(--tw-navy-100);
    padding: 1.25rem 1.5rem;
}
.fi-header-heading {
    color: var(--tw-navy-700) !important;
    font-weight: 700;
}
.fi-header-subheading {
    color: #64748B !important;
}
.fi-breadcrumbs a {
    color: var(--tw-navy-500);
}
.fi-breadcrumbs a:hover {
    color: var(--tw-navy-700);
}


/* =================================================================
 * BOTTONI
 * ================================================================= */

/* Bottone primary (blue di Filament — navy custom) */
.fi-btn-color-primary,
.fi-btn-color-primary.fi-btn-style-filled {
    background-color: var(--tw-navy-600) !important;
    color: #FFF !important;
    border-color: var(--tw-navy-700) !important;
    font-weight: 600;
}
.fi-btn-color-primary:hover,
.fi-btn-color-primary.fi-btn-style-filled:hover {
    background-color: var(--tw-navy-700) !important;
    border-color: var(--tw-navy-800) !important;
}

/* Bottone outlined primary */
.fi-btn-color-primary.fi-btn-style-outlined {
    background-color: transparent !important;
    color: var(--tw-navy-600) !important;
    border-color: var(--tw-navy-300) !important;
}
.fi-btn-color-primary.fi-btn-style-outlined:hover {
    background-color: var(--tw-navy-50) !important;
}

/* Bottone warning (oro, CTA) */
.fi-btn-color-warning,
.fi-btn-color-warning.fi-btn-style-filled {
    background-color: var(--tw-gold-500) !important;
    color: var(--tw-navy-900) !important;
    border-color: var(--tw-gold-600) !important;
    font-weight: 700;
}
.fi-btn-color-warning:hover,
.fi-btn-color-warning.fi-btn-style-filled:hover {
    background-color: var(--tw-gold-600) !important;
    color: var(--tw-navy-900) !important;
}


/* =================================================================
 * BADGES (chip colorati)
 * ================================================================= */
.fi-badge {
    font-weight: 600 !important;
}
.fi-badge.fi-color-primary {
    background-color: var(--tw-navy-100) !important;
    color: var(--tw-navy-800) !important;
}
.fi-badge.fi-color-warning {
    background-color: var(--tw-gold-100) !important;
    color: var(--tw-gold-800) !important;
}


/* =================================================================
 * TABELLE
 * ================================================================= */
.fi-ta-header {
    background: #FFF;
    border-bottom: 2px solid var(--tw-navy-100);
}
.fi-ta-header-cell {
    color: var(--tw-navy-700) !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    font-size: 0.72rem;
    letter-spacing: 0.04em;
}
.fi-ta-row:hover {
    background-color: var(--tw-navy-50) !important;
}


/* =================================================================
 * INPUT, FORM
 * ================================================================= */
.fi-input,
.fi-select-input,
.fi-textarea {
    color: var(--tw-navy-900) !important;
}
.fi-input:focus,
.fi-select-input:focus,
.fi-textarea:focus {
    border-color: var(--tw-navy-500) !important;
    box-shadow: 0 0 0 3px rgba(30, 58, 95, 0.15) !important;
}

.fi-fo-field-wrp-label,
.fi-fo-field-wrp-label-prefix,
.fi-section-header-heading {
    color: var(--tw-navy-700) !important;
}


/* =================================================================
 * SECTION (cards bianche con titolo)
 * ================================================================= */
.fi-section {
    background: #FFF !important;
    border: 1px solid var(--tw-navy-100) !important;
    border-radius: 0.75rem;
    box-shadow: 0 1px 3px rgba(15, 37, 64, 0.04);
}
.fi-section-header {
    border-bottom: 1px solid var(--tw-navy-100);
}
.fi-section-header-heading {
    color: var(--tw-navy-700) !important;
    font-weight: 700;
}


/* =================================================================
 * MODAL
 * ================================================================= */
.fi-modal-window {
    border-radius: 1rem !important;
}
.fi-modal-heading {
    color: var(--tw-navy-700) !important;
    font-weight: 700;
}


/* =================================================================
 * NOTIFICATIONS (toast in alto a destra)
 * ================================================================= */
.fi-no-notification {
    border-left: 4px solid var(--tw-navy-600) !important;
}
.fi-no-notification.fi-color-success {
    border-left-color: #059669 !important;
}
.fi-no-notification.fi-color-warning {
    border-left-color: var(--tw-gold-500) !important;
}
.fi-no-notification.fi-color-danger {
    border-left-color: #DC2626 !important;
}


/* =================================================================
 * DARK MODE — applicato quando html.dark è presente
 * Filament gestisce il dark mode con class="dark" sul <html>
 * ================================================================= */

.dark {
    color-scheme: dark;
}

/* Sidebar in dark — leggermente più scura del light */
.dark .fi-sidebar {
    background: linear-gradient(180deg, var(--tw-navy-900) 0%, var(--tw-navy-800) 100%) !important;
    border-right: 1px solid #000 !important;
}
.dark .fi-sidebar .fi-sidebar-header {
    background: var(--tw-navy-950) !important;
    border-bottom: 1px solid #000 !important;
}

/* Topbar dark */
.dark .fi-topbar {
    background: #1E293B !important;
    border-bottom: 1px solid #0F172A !important;
}
.dark .fi-topbar .fi-input-wrp,
.dark .fi-topbar input[type="search"] {
    background: #0F172A !important;
    border-color: #1E293B !important;
    color: #E2E8F0 !important;
}
.dark .fi-topbar .fi-theme-switcher button {
    color: var(--tw-gold-400) !important;
}

/* Main background dark */
.dark .fi-main {
    background: #0F172A !important;
}

/* Page heading dark */
.dark .fi-header-heading {
    color: var(--tw-cream) !important;
}
.dark .fi-page-header {
    background: #1E293B !important;
    border-bottom: 1px solid #334155 !important;
}

/* Sections in dark */
.dark .fi-section {
    background: #1E293B !important;
    border-color: #334155 !important;
}
.dark .fi-section-header {
    border-bottom-color: #334155;
}
.dark .fi-section-header-heading {
    color: var(--tw-cream) !important;
}

/* Tabelle in dark */
.dark .fi-ta-header {
    background: #1E293B !important;
    border-bottom-color: #334155 !important;
}
.dark .fi-ta-header-cell {
    color: var(--tw-gold-300) !important;
}
.dark .fi-ta-row:hover {
    background-color: #334155 !important;
}

/* Form input dark */
.dark .fi-input,
.dark .fi-select-input,
.dark .fi-textarea {
    background: #0F172A !important;
    color: var(--tw-cream) !important;
    border-color: #334155 !important;
}
.dark .fi-input:focus,
.dark .fi-select-input:focus,
.dark .fi-textarea:focus {
    border-color: var(--tw-gold-500) !important;
    box-shadow: 0 0 0 3px rgba(245, 200, 66, 0.2) !important;
}
.dark .fi-fo-field-wrp-label {
    color: var(--tw-cream-dim) !important;
}

/* Bottoni in dark — primary più chiaro per visibilità */
.dark .fi-btn-color-primary,
.dark .fi-btn-color-primary.fi-btn-style-filled {
    background-color: var(--tw-navy-500) !important;
    border-color: var(--tw-navy-400) !important;
}
.dark .fi-btn-color-primary:hover,
.dark .fi-btn-color-primary.fi-btn-style-filled:hover {
    background-color: var(--tw-navy-400) !important;
}
.dark .fi-btn-color-primary.fi-btn-style-outlined {
    color: var(--tw-cream) !important;
    border-color: var(--tw-navy-400) !important;
}
.dark .fi-btn-color-primary.fi-btn-style-outlined:hover {
    background-color: var(--tw-navy-700) !important;
}

/* Badge in dark */
.dark .fi-badge.fi-color-primary {
    background-color: var(--tw-navy-700) !important;
    color: var(--tw-cream) !important;
}
.dark .fi-badge.fi-color-warning {
    background-color: var(--tw-gold-800) !important;
    color: var(--tw-gold-100) !important;
}

/* Modal in dark */
.dark .fi-modal-window {
    background: #1E293B !important;
}
.dark .fi-modal-heading {
    color: var(--tw-cream) !important;
}

/* Topbar campanella in dark */
.dark .fi-topbar .fi-topbar-database-notifications-trigger {
    color: var(--tw-gold-400) !important;
}


/* =================================================================
 * UTILITY: link, focus visibili (accessibilità)
 * ================================================================= */
:focus-visible {
    outline: 2px solid var(--tw-gold-500);
    outline-offset: 2px;
}

/* Link generici dentro pagina */
.fi-main a:not(.fi-btn):not(.fi-sidebar-item-button) {
    color: var(--tw-navy-600);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.fi-main a:not(.fi-btn):not(.fi-sidebar-item-button):hover {
    color: var(--tw-navy-800);
}
.dark .fi-main a:not(.fi-btn):not(.fi-sidebar-item-button) {
    color: var(--tw-gold-300);
}
.dark .fi-main a:not(.fi-btn):not(.fi-sidebar-item-button):hover {
    color: var(--tw-gold-200);
}
