/** * Copyright since 2025 Mifos Initiative * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ .cfcfrms-dashboard { padding: 24px; max-width: 1400px; margin: 0 auto; } .page-header { margin-bottom: 24px; h2 { margin: 0; font-size: 24px; font-weight: 700; color: #0d1b2a; } .subtitle { margin: 4px 0 0; color: #64748b; font-size: 14px; } } .stat-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-bottom: 24px; @media (max-width: 1280px) { grid-template-columns: repeat(2, 1fr); } } .stat-card { border-left: 4px solid; border-radius: 8px !important; mat-card-content { display: flex; align-items: center; gap: 16px; padding: 20px !important; } .stat-icon { width: 56px; height: 56px; border-radius: 12px; display: flex; align-items: center; justify-content: center; color: #fff; } .stat-info { display: flex; flex-direction: column; } .stat-value { font-size: 28px; font-weight: 700; line-height: 1.2; } .stat-label { font-size: 13px; color: #64748b; margin-top: 2px; } &.stat-total { border-color: #1e88e5; .stat-icon { background: #1e88e5; } .stat-value { color: #1e88e5; } } &.stat-pending { border-color: #f59e0b; .stat-icon { background: #f59e0b; } .stat-value { color: #f59e0b; } } &.stat-lien { border-color: #eab308; .stat-icon { background: #eab308; } .stat-value { color: #92400e; } } &.stat-recovered { border-color: #10b981; .stat-icon { background: #10b981; } .stat-value { color: #10b981; } } } .charts-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 24px; @media (max-width: 1280px) { grid-template-columns: 1fr; } } .chart-card { border-radius: 8px !important; mat-card-header { padding: 16px 16px 0; } mat-card-content { padding: 16px !important; } } .chart-container { height: 280px; position: relative; } .recent-complaints-card { border-radius: 8px !important; mat-card-header { display: flex; align-items: center; padding: 16px; .spacer { flex: 1; } } mat-card-content { padding: 0 !important; } } .full-width { width: 100%; } .ticket-link { color: #1e88e5; text-decoration: none; font-weight: 600; &:hover { text-decoration: underline; } } .loading-container { display: flex; justify-content: center; padding: 40px; } .empty-state { display: flex; flex-direction: column; align-items: center; padding: 48px; color: #94a3b8; p { margin-top: 12px; font-size: 14px; } }