/* Shared Filament panel shell — user / business / admin */

html.trusido-panel,
html.trusido-panel body.fi-body {
    --font-xs: 12px;
    --font-sm: 14px;
    --font-base: 16px;
    --font-lg: 18px;
    --background: #F6F8FB;
    --surface: #FFFFFF;
    --surface-muted: #F1F5F9;
    --border-soft: #EEF2F7;
    --text-primary: #07111F;
    --text-secondary: #475569;
    --text-muted: #64748B;
    --blue: #2563EB;
    --shadow-card: 0 12px 40px rgba(15, 23, 42, 0.06);
    font-family: Inter, Geist, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

html.trusido-panel.dark,
html.dark.trusido-panel,
html.trusido-panel.dark body.fi-body,
html.dark.trusido-panel body.fi-body {
    --background: #070B14;
    --surface: #0F172A;
    --surface-muted: #1E293B;
    --border-soft: #334155;
    --text-primary: #F8FAFC;
    --text-secondary: #CBD5E1;
    --text-muted: #94A3B8;
    --blue: #3B82F6;
    --shadow-card: 0 14px 50px rgba(0, 0, 0, 0.35);
}

html.trusido-panel.fi body.fi-body,
html.trusido-panel body.fi-body {
    background: var(--background) !important;
    color: var(--text-primary);
}

html.trusido-panel .fi-main,
html.trusido-panel .fi-main-ctn {
    background: transparent !important;
    max-width: 1440px;
}

html.trusido-panel .fi-main {
    padding-inline: 1rem;
}

@media (min-width: 768px) {
    html.trusido-panel .fi-main {
        padding: 2rem;
    }
}

html.trusido-panel .fi-topbar-ctn {
    position: sticky;
    top: 0;
    z-index: 100;
    overflow: visible !important;
}

html.trusido-panel .fi-topbar-end {
    overflow: visible;
    position: relative;
    z-index: 2;
}

html.trusido-panel .fi-user-menu,
html.trusido-panel .fi-dropdown {
    position: relative;
    z-index: 2;
}

/* User menu / notifications — above page content and mobile nav */
body.fi-body .fi-dropdown-panel,
html.trusido-panel .fi-dropdown-panel,
body.fi-body .fi-dropdown .fi-dropdown-panel {
    z-index: 9999 !important;
}

html.trusido-panel .fi-layout,
html.trusido-panel .fi-main-ctn {
    position: relative;
    z-index: 1;
}

html.trusido-panel .fi-topbar {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100%;
    background: color-mix(in oklab, var(--surface) 88%, transparent) !important;
    backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--border-soft) !important;
    box-shadow: none !important;
    color: var(--text-primary) !important;
    min-height: 4rem;
}

/* Filament hides the sidebar header when a topbar is present — logo lives in the topbar. */
body.fi-body .fi-topbar {
    display: flex !important;
    align-items: center !important;
    width: 100%;
}

body.fi-body .fi-topbar-end,
html.trusido-panel .fi-topbar-end {
    margin-inline-start: auto !important;
    display: flex !important;
    align-items: center;
    flex-shrink: 0;
    gap: 0.5rem;
}

html.trusido-panel .fi-topbar .fi-icon-btn,
html.trusido-panel .fi-topbar .fi-topbar-open-sidebar-btn {
    color: var(--text-secondary) !important;
}

html.trusido-panel .fi-topbar .fi-icon-btn:hover {
    color: var(--text-primary) !important;
    background: var(--surface-muted) !important;
}

html.trusido-panel .fi-topbar .fi-user-menu-trigger {
    color: var(--text-primary) !important;
    border-radius: 999px;
    padding: 0.2rem;
    transition: background-color 0.15s ease;
}

html.trusido-panel .fi-topbar .fi-user-menu-trigger:hover {
    background: var(--surface-muted) !important;
}

html.trusido-panel .fi-sidebar {
    width: 280px !important;
    background:
        radial-gradient(circle at top left, rgba(37, 99, 235, 0.28), transparent 30%),
        linear-gradient(180deg, #07111F 0%, #0F172A 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, 0.06) !important;
    color: #fff !important;
}

html.trusido-panel .fi-sidebar-nav,
html.trusido-panel .fi-sidebar-nav-groups {
    color: #fff !important;
}

html.trusido-panel .fi-sidebar-header-ctn {
    padding: 1.25rem 1rem 0.5rem;
}

html.trusido-panel .fi-sidebar-header {
    background: transparent !important;
    border: none !important;
    min-height: 3.5rem;
    align-items: center;
}

html.trusido-panel .fi-sidebar-nav {
    padding: 0.35rem 0.75rem 1.5rem;
}

html.trusido-panel .fi-sidebar-group-label {
    padding-inline: 1rem;
    margin-top: 0.85rem;
    margin-bottom: 0.35rem;
}

html.trusido-panel .trusido-panel-brand,
html.trusido-panel .fi-logo {
    display: inline-flex;
    align-items: center;
    gap: 0.625rem;
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: -0.04em;
    color: #fff !important;
    line-height: 1;
}

html.trusido-panel .trusido-panel-brand__mark {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.95rem;
    font-weight: 700;
    color: #fff;
    background: linear-gradient(135deg, #2563EB 0%, #7C3AED 100%);
    box-shadow: 0 8px 20px rgba(37, 99, 235, 0.35);
}

html.trusido-panel .trusido-panel-brand__name {
    color: inherit;
}

html.trusido-panel.trusido-portal .fi-sidebar .fi-logo {
    text-transform: lowercase;
}

html.trusido-panel .fi-topbar-start {
    display: flex !important;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
    flex-shrink: 0;
}

@media (min-width: 1024px) {
    body.fi-body-has-sidebar:not(.fi-body-has-top-navigation) .fi-topbar-start {
        width: 280px;
        flex-shrink: 0;
        padding-inline-end: 1rem;
    }
}

html.trusido-panel .fi-topbar .trusido-panel-brand,
html.trusido-panel .fi-topbar .fi-logo {
    color: var(--text-primary) !important;
    font-size: 1.15rem;
    font-weight: 700;
    height: auto !important;
    overflow: visible;
}

html.trusido-panel .fi-topbar .trusido-panel-brand__name {
    color: var(--text-primary) !important;
}

html.trusido-panel .fi-topbar .trusido-panel-brand__mark {
    width: 1.75rem;
    height: 1.75rem;
    font-size: 0.85rem;
    box-shadow: 0 6px 16px rgba(37, 99, 235, 0.28);
}

html.trusido-panel .fi-topbar-ctn .fi-topbar {
    padding-inline: 1rem 1.25rem;
    align-items: center;
    gap: 0.75rem;
}

html.trusido-panel .fi-sidebar-group-label {
    color: rgba(255, 255, 255, 0.45) !important;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

html.trusido-panel .fi-sidebar-item-btn,
html.trusido-panel .fi-sidebar-item-btn:hover,
html.trusido-panel .fi-sidebar-item-btn:focus-visible {
    color: rgba(255, 255, 255, 0.82) !important;
    border-radius: 14px !important;
    margin-inline: 0.5rem;
    padding: 0.65rem 0.85rem !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    background: transparent !important;
}

html.trusido-panel .fi-sidebar-item-label {
    color: rgba(255, 255, 255, 0.82) !important;
}

html.trusido-panel .fi-sidebar-item-btn:hover {
    background: rgba(255, 255, 255, 0.08) !important;
    color: #fff !important;
}

html.trusido-panel .fi-sidebar-item-btn:hover .fi-sidebar-item-label {
    color: #fff !important;
}

html.trusido-panel .fi-sidebar-item.fi-active > .fi-sidebar-item-btn,
html.trusido-panel .fi-sidebar-item-active > .fi-sidebar-item-btn,
html.trusido-panel .fi-sidebar-item.fi-active .fi-sidebar-item-btn,
html.trusido-panel .fi-sidebar-item-active .fi-sidebar-item-btn {
    background: linear-gradient(135deg, #2563EB 0%, #7C3AED 100%) !important;
    color: #fff !important;
    box-shadow: 0 10px 30px rgba(37, 99, 235, 0.35);
}

html.trusido-panel .fi-sidebar-item.fi-active .fi-sidebar-item-label,
html.trusido-panel .fi-sidebar-item-active .fi-sidebar-item-label {
    color: #fff !important;
}

html.trusido-panel .fi-sidebar-item-icon,
html.trusido-panel .fi-sidebar-item.fi-active .fi-sidebar-item-icon {
    color: inherit !important;
}

/* Filament v3 page header wrapper (legacy) */
html.trusido-panel .fi-page:has(.tp-dashboard) > .fi-page-header-ctn,
html.trusido-panel .fi-page:has(.tp-page) > .fi-page-header-ctn,
html.trusido-panel .fi-page:has(.tb-page) > .fi-page-header-ctn,
html.trusido-panel .fi-page:has(.tb-dashboard) > .fi-page-header-ctn {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
}

/* Filament v4 — custom tb/tp pages render their own header */
html.trusido-panel .fi-page:has(.tp-dashboard) .fi-page-header-main-ctn > .fi-header,
html.trusido-panel .fi-page:has(.tp-page) .fi-page-header-main-ctn > .fi-header,
html.trusido-panel .fi-page:has(.tb-page) .fi-page-header-main-ctn > .fi-header,
html.trusido-panel .fi-page:has(.tb-dashboard) .fi-page-header-main-ctn > .fi-header,
body.fi-body .fi-page:has(.tp-dashboard) .fi-page-header-main-ctn > .fi-header,
body.fi-body .fi-page:has(.tp-page) .fi-page-header-main-ctn > .fi-header,
body.fi-body .fi-page:has(.tb-page) .fi-page-header-main-ctn > .fi-header,
body.fi-body .fi-page:has(.tb-dashboard) .fi-page-header-main-ctn > .fi-header {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    border: none !important;
}

html.trusido-panel .fi-page:has(.tp-dashboard) .fi-page-content,
html.trusido-panel .fi-page:has(.tp-page) .fi-page-content,
html.trusido-panel .fi-page:has(.tb-page) .fi-page-content,
html.trusido-panel .fi-page:has(.tb-dashboard) .fi-page-content {
    padding-top: 0 !important;
}

html.trusido-panel .fi-section {
    border-radius: 20px !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card);
}

html.trusido-panel .fi-wi-stats-overview-stat {
    border-radius: 18px !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card);
    background: var(--surface) !important;
}

html.trusido-panel .fi-wi-stats-overview-stat-value {
    font-weight: 700 !important;
    letter-spacing: -0.03em;
    color: var(--text-primary) !important;
}

html.trusido-panel .fi-wi-stats-overview-stat-label {
    color: var(--text-secondary) !important;
}

html.trusido-panel .fi-wi-stats-overview-stat-description {
    color: var(--text-muted) !important;
}

/* Tables */
html.trusido-panel .fi-ta-ctn {
    border-radius: 20px !important;
    border-color: var(--border-soft) !important;
    box-shadow: var(--shadow-card);
    background: var(--surface) !important;
    overflow: hidden;
}

html.trusido-panel .fi-ta-header-cell {
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-muted) !important;
    background: var(--surface-muted) !important;
}

html.trusido-panel .fi-ta-row {
    border-color: var(--border-soft) !important;
}

html.trusido-panel .fi-ta-row:hover {
    background: color-mix(in oklab, var(--surface-muted) 70%, transparent) !important;
}

html.trusido-panel .fi-ta-cell {
    color: var(--text-primary) !important;
}

html.trusido-panel .fi-ta-empty-state {
    color: var(--text-muted) !important;
}

/* Forms */
html.trusido-panel .fi-fo-field-wrp-label,
html.trusido-panel .fi-fo-field-wrp-label span {
    color: var(--text-primary) !important;
    font-weight: 600;
}

html.trusido-panel .fi-input-wrp,
html.trusido-panel .fi-select-input,
html.trusido-panel .fi-textarea {
    border-radius: 12px !important;
}

html.trusido-panel .fi-input-wrp {
    border-color: var(--border-soft) !important;
    background: var(--surface-muted) !important;
}

/* Primary buttons */
html.trusido-panel .fi-btn.fi-btn-color-primary:not(.fi-outlined) {
    background: linear-gradient(135deg, #2563eb, #7c3aed) !important;
    border: none !important;
    border-radius: 12px !important;
    box-shadow: 0 8px 24px rgba(37, 99, 235, 0.22);
    color: #fff !important;
}

html.trusido-panel .fi-btn.fi-btn-color-primary:not(.fi-outlined):hover,
html.trusido-panel .fi-btn.fi-btn-color-primary:not(.fi-outlined):focus-visible {
    color: #fff !important;
    background: linear-gradient(135deg, #2563eb, #7c3aed) !important;
    filter: brightness(1.05);
    opacity: 1 !important;
}

html.trusido-panel .fi-btn.fi-btn-color-gray,
html.trusido-panel .fi-btn.fi-outlined {
    border-radius: 12px !important;
}

/* Page titles on resource pages */
html.trusido-panel .fi-header-heading {
    font-weight: 700 !important;
    letter-spacing: -0.03em;
    color: var(--text-primary) !important;
}

html.trusido-panel .fi-header-subheading {
    color: var(--text-secondary) !important;
}

/* Breadcrumbs */
html.trusido-panel .fi-breadcrumbs-item-label {
    color: var(--text-muted) !important;
}

/* Modal */
html.trusido-panel .fi-modal-window {
    border-radius: 20px !important;
}

/* Shared utility classes for custom Blade */
html.trusido-panel .trusido-muted { color: var(--text-muted) !important; }
html.trusido-panel .trusido-strong { color: var(--text-primary) !important; font-weight: 600; }
html.trusido-panel .trusido-body { color: var(--text-secondary) !important; }
html.trusido-panel .trusido-divide { border-color: var(--border-soft) !important; }
html.trusido-panel .trusido-input {
    border: 1px solid var(--border-soft);
    background: var(--surface-muted);
    color: var(--text-primary);
    border-radius: 12px;
    padding: 0.6rem 0.75rem;
}
html.trusido-panel .trusido-stat-success { color: #16a34a !important; }
html.trusido-panel .trusido-stat-danger { color: #dc2626 !important; }
html.dark.trusido-panel .trusido-stat-success { color: #4ade80 !important; }
html.dark.trusido-panel .trusido-stat-danger { color: #f87171 !important; }

html.trusido-panel .fi-page-content .fi-section-content {
    color: var(--text-secondary);
}
