/* ================================================================ AfterSales CRM — Custom Filament Theme Derived from Material Design tokens in webappUI/ HTML designs ================================================================ */ /* ---------- Google Fonts ---------- */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Manrope:wght@500;600;700;800&family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap'); /* ---------- CSS Variables (Design Tokens from HTML) ---------- */ :root { /* Primary palette */ --crm-primary: #0058be; --crm-primary-hover: #2170e4; --crm-primary-container: #2170e4; --crm-on-primary: #ffffff; --crm-on-primary-container: #fefcff; --crm-primary-fixed: #d8e2ff; --crm-primary-fixed-dim: #adc6ff; --crm-on-primary-fixed: #001a42; --crm-on-primary-fixed-variant: #004395; --crm-inverse-primary: #adc6ff; /* Secondary palette */ --crm-secondary: #585f6c; --crm-secondary-container: #dce2f3; --crm-on-secondary: #ffffff; --crm-on-secondary-container: #5e6572; --crm-secondary-fixed: #dce2f3; --crm-secondary-fixed-dim: #c0c7d6; --crm-on-secondary-fixed: #151c27; --crm-on-secondary-fixed-variant: #404754; /* Tertiary */ --crm-tertiary: #924700; --crm-tertiary-container: #b75b00; --crm-tertiary-fixed: #ffdcc6; --crm-tertiary-fixed-dim: #ffb786; /* Surface / Background */ --crm-background: #f9f9ff; --crm-surface: #f9f9ff; --crm-surface-bright: #f9f9ff; --crm-surface-dim: #d8d9e3; --crm-surface-container: #ecedf7; --crm-surface-container-low: #f2f3fd; --crm-surface-container-lowest: #ffffff; --crm-surface-container-high: #e6e7f2; --crm-surface-container-highest: #e1e2ec; --crm-surface-variant: #e1e2ec; --crm-surface-tint: #005ac2; /* Text on surface */ --crm-on-surface: #191b23; --crm-on-surface-variant: #424754; --crm-on-background: #191b23; --crm-inverse-surface: #2e3038; --crm-inverse-on-surface: #eff0fa; /* Borders / Outlines */ --crm-outline: #727785; --crm-outline-variant: #c2c6d6; /* Error */ --crm-error: #ba1a1a; --crm-error-container: #ffdad6; --crm-on-error: #ffffff; --crm-on-error-container: #93000a; /* Spacing */ --crm-nav-height: 56px; --crm-margin-x: 1.5rem; --crm-gutter: 1rem; --crm-stack-gap: 1.5rem; --crm-form-gap: 1.25rem; --crm-container-max: 1280px; /* Radius */ --crm-radius: 0.125rem; --crm-radius-lg: 0.25rem; --crm-radius-xl: 0.5rem; --crm-radius-full: 0.75rem; /* Font */ --crm-font-heading: 'Manrope', sans-serif; --crm-font-body: 'Inter', sans-serif; } /* ---------- Override Filament Defaults ---------- */ /* Force font family everywhere */ .fi-body, .fi-main, .fi-sidebar, .fi-topbar, body { font-family: var(--crm-font-body) !important; } .fi-header h1, .fi-header h2, .fi-header h3, .fi-widget-heading, .fi-section-header h3, .fi-modal-heading, h1, h2, h3 { font-family: var(--crm-font-heading) !important; } /* Override Filament primary colors */ .fi-btn.fi-color { --c-500: var(--crm-primary); --c-600: var(--crm-primary-hover); } .fi-btn.fi-btn-color-primary { background-color: var(--crm-primary) !important; border-radius: var(--crm-radius) !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; font-family: var(--crm-font-body) !important; font-weight: 500 !important; font-size: 14px !important; } .fi-btn.fi-btn-color-primary:hover { background-color: var(--crm-primary-hover) !important; filter: brightness(1.1); } /* Sharper border radius globally */ .fi-card, .fi-ta-ctn, .fi-fo-tabs, .fi-modal-window, .fi-dropdown-panel, .fi-section, input, select, textarea { border-radius: var(--crm-radius) !important; } /* Card/section borders */ .fi-card { border: 1px solid var(--crm-outline-variant) !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; border-radius: var(--crm-radius-xl) !important; } /* Page background */ body { background-color: var(--crm-background) !important; color: var(--crm-on-background) !important; } /* ---------- TOP NAVIGATION BAR ---------- */ .fi-top-nav { height: var(--crm-nav-height) !important; background-color: var(--crm-surface-container-lowest) !important; border-bottom: 1px solid var(--crm-outline-variant) !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; font-family: var(--crm-font-body) !important; } .fi-top-nav .fi-top-nav-item a { font-size: 14px !important; font-weight: 500 !important; color: var(--crm-on-surface-variant) !important; transition: color 0.2s !important; } .fi-top-nav .fi-top-nav-item a:hover { color: var(--crm-primary) !important; } .fi-top-nav .fi-top-nav-item-active a { color: var(--crm-primary) !important; border-bottom: 2px solid var(--crm-primary) !important; } /* Brand name in top nav */ .fi-top-nav .fi-logo { font-family: var(--crm-font-heading) !important; font-weight: 700 !important; font-size: 20px !important; color: var(--crm-primary) !important; } /* ---------- MAIN CONTENT AREA ---------- */ .fi-main { background: var(--crm-background) !important; } .fi-main-ctn { max-width: var(--crm-container-max) !important; margin-left: auto !important; margin-right: auto !important; padding-left: var(--crm-margin-x) !important; padding-right: var(--crm-margin-x) !important; padding-top: 1.5rem !important; } /* ---------- TABLES ---------- */ .fi-ta { border-radius: var(--crm-radius-xl) !important; border: 1px solid var(--crm-outline-variant) !important; background: var(--crm-surface-container-lowest) !important; } .fi-ta-header { background: var(--crm-surface-container-low) !important; border-bottom: 1px solid var(--crm-outline-variant) !important; } .fi-ta-header-cell { font-family: var(--crm-font-body) !important; font-size: 12px !important; font-weight: 600 !important; color: var(--crm-on-surface-variant) !important; text-transform: none !important; padding: 12px 16px !important; } .fi-ta-row { border-bottom: 1px solid var(--crm-outline-variant) !important; } .fi-ta-row:hover { background: var(--crm-surface-container-low) !important; } .fi-ta-cell { font-family: var(--crm-font-body) !important; font-size: 14px !important; color: var(--crm-on-surface) !important; padding: 12px 16px !important; } /* ---------- STATUS BADGES ---------- */ .fi-badge { border-radius: 4px !important; font-size: 11px !important; font-weight: 600 !important; } /* Pending - amber */ .fi-badge-color-warning { background-color: #fff8e1 !important; color: #b45309 !important; border: 1px solid #fde68a !important; } /* Processing - blue */ .fi-badge-color-info { background-color: #d8e2ff !important; color: #004395 !important; border: 1px solid #adc6ff !important; } /* Resolved - green */ .fi-badge-color-success { background-color: #ecfdf5 !important; color: #047857 !important; border: 1px solid #a7f3d0 !important; } /* Closed - gray */ .fi-badge-color-gray { background-color: #f3f4f6 !important; color: #374151 !important; border: 1px solid #d1d5db !important; } /* Tag badges */ .fi-ta-tags .fi-badge { background-color: var(--crm-surface-container-high) !important; color: var(--crm-on-surface-variant) !important; border: 1px solid var(--crm-outline-variant) !important; border-radius: 2px !important; font-size: 10px !important; padding: 1px 6px !important; } /* ---------- FORM COMPONENTS ---------- */ .fi-fo-field-label { font-family: var(--crm-font-body) !important; font-size: 14px !important; font-weight: 600 !important; color: var(--crm-on-surface) !important; } .fi-input-wrp input, .fi-input-wrp select, .fi-input-wrp textarea, .fi-select-input, select { border: 1px solid var(--crm-outline-variant) !important; border-radius: var(--crm-radius) !important; background: var(--crm-surface-container-lowest) !important; color: var(--crm-on-surface) !important; font-family: var(--crm-font-body) !important; font-size: 14px !important; padding: 8px 12px !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; } .fi-input-wrp input:focus, .fi-input-wrp select:focus, .fi-input-wrp textarea:focus { border-color: var(--crm-primary) !important; box-shadow: 0 0 0 3px rgba(0,88,190,0.15) !important; ring: 2px !important; } /* Form sections */ .fi-section { border: 1px solid var(--crm-outline-variant) !important; border-radius: var(--crm-radius-xl) !important; background: var(--crm-surface-container-lowest) !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; } .fi-section-header { padding: 16px 24px !important; border-bottom: 1px solid rgba(194,198,214,0.5) !important; background: rgba(249,249,255,0.5) !important; } /* ---------- STAT CARDS (Dashboard) ---------- */ .fi-wi-stats-overview-stat { background: var(--crm-surface-container-lowest) !important; border: 1px solid var(--crm-outline-variant) !important; border-radius: var(--crm-radius-xl) !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; padding: 20px !important; } .fi-wi-stats-overview-stat .fi-wi-stats-overview-stat-value { font-family: var(--crm-font-heading) !important; font-size: 32px !important; font-weight: 700 !important; color: var(--crm-on-background) !important; } .fi-wi-stats-overview-stat .fi-wi-stats-overview-stat-label { font-family: var(--crm-font-body) !important; font-size: 14px !important; font-weight: 600 !important; color: var(--crm-on-surface-variant) !important; } /* ---------- PAGE HEADER (breadcrumb + title) ---------- */ .fi-header { margin-bottom: var(--crm-stack-gap) !important; } .fi-breadcrumbs a, .fi-breadcrumbs span { font-size: 12px !important; color: var(--crm-on-surface-variant) !important; } /* ---------- TABS ---------- */ .fi-tabs { border-bottom: 1px solid var(--crm-outline-variant) !important; gap: 1.5rem !important; } .fi-tabs .fi-tabs-item { padding-bottom: 12px !important; font-family: var(--crm-font-body) !important; font-size: 14px !important; font-weight: 600 !important; color: var(--crm-secondary) !important; } .fi-tabs .fi-tabs-item-active { color: var(--crm-primary) !important; border-bottom: 2px solid var(--crm-primary) !important; } /* ---------- MODALS ---------- */ .fi-modal-window { border-radius: var(--crm-radius-xl) !important; border: 1px solid var(--crm-outline-variant) !important; box-shadow: 0 20px 25px rgba(0,0,0,0.1) !important; } .fi-modal-heading { font-family: var(--crm-font-heading) !important; font-size: 18px !important; font-weight: 600 !important; } /* ---------- DELETE / DANGER BUTTONS ---------- */ .fi-btn.fi-btn-color-danger { border: 1px solid rgba(186,26,26,0.3) !important; background: var(--crm-surface-container-lowest) !important; color: var(--crm-error) !important; border-radius: var(--crm-radius) !important; font-weight: 500 !important; } .fi-btn.fi-btn-color-danger:hover { background: var(--crm-error-container) !important; } /* ---------- SECONDARY / OUTLINED BUTTONS ---------- */ .fi-btn.fi-btn-color-gray, .fi-btn.fi-btn-color-secondary { background: var(--crm-surface-container-lowest) !important; border: 1px solid var(--crm-outline-variant) !important; color: var(--crm-secondary) !important; border-radius: var(--crm-radius) !important; font-family: var(--crm-font-body) !important; font-weight: 500 !important; font-size: 14px !important; } .fi-btn.fi-btn-color-gray:hover, .fi-btn.fi-btn-color-secondary:hover { background: var(--crm-surface-variant) !important; } /* ---------- TOGGLE SWITCH ---------- */ .fi-toggle .fi-toggle-input:checked ~ .fi-toggle-bg { background-color: var(--crm-primary) !important; } /* ---------- CHECKBOX ---------- */ .fi-checkbox-input:checked { background-color: var(--crm-primary) !important; border-color: var(--crm-primary) !important; } /* ---------- FILTER BAR ---------- */ .fi-filters { background: var(--crm-surface-container-lowest) !important; border: 1px solid var(--crm-outline-variant) !important; border-radius: var(--crm-radius-lg) !important; padding: 1rem !important; margin-bottom: var(--crm-stack-gap) !important; } /* ---------- PAGINATION ---------- */ .fi-pagination .fi-pagination-item-active { background-color: var(--crm-primary) !important; color: var(--crm-on-primary) !important; border-radius: var(--crm-radius) !important; } /* ---------- SIDEBAR (hide since we use top nav) ---------- */ .fi-sidebar { display: none !important; } /* Adjust main content when sidebar is hidden */ .fi-main-ctn { padding-left: var(--crm-margin-x) !important; } /* ---------- NOTIFICATION BELL ---------- */ .fi-icon-btn { color: var(--crm-on-surface-variant) !important; } .fi-icon-btn:hover { color: var(--crm-primary) !important; } /* ---------- USER MENU ---------- */ .fi-user-menu .fi-user-menu-trigger { font-family: var(--crm-font-body) !important; font-size: 14px !important; } /* ---------- DARK MODE OVERRIDES ---------- */ .dark, [class*="dark"] { --crm-background: #0f172a; --crm-surface-container-lowest: #1e293b; --crm-surface-container-high: #334155; --crm-surface-variant: #334155; --crm-on-surface: #e2e8f0; --crm-on-surface-variant: #94a3b8; --crm-on-background: #e2e8f0; --crm-outline-variant: #475569; } /* ---------- FIX: remove Filament's default blue backgrounds ---------- */ .fi-sidebar, .fi-topbar { background-color: var(--crm-surface-container-lowest) !important; } /* ---------- FIX: Icon sizing ---------- */ svg.fi-icon, .fi-icon svg, .fi-btn svg.fi-icon, .fi-icon-btn svg, .fi-input-wrp svg, .fi-select svg, .fi-fo-field-wrp svg, svg[class*="fi-icon"] { width: 1.25rem !important; height: 1.25rem !important; max-width: 1.25rem !important; max-height: 1.25rem !important; flex-shrink: 0 !important; } /* Smaller icons in table cells and badges */ .fi-ta-cell svg.fi-icon, .fi-badge svg { width: 1rem !important; height: 1rem !important; } /* ---------- Similar Cases footer panel ---------- */ .fi-footer { margin-top: 2rem; background: var(--crm-surface-container-lowest) !important; border: 1px solid var(--crm-outline-variant) !important; border-radius: var(--crm-radius-xl) !important; }