.dashboard-shell { --dash-navy: #172b4d; --dash-muted: #667085; --dash-line: #e4e7ec; --dash-orange: #ee7800; display: grid; gap: 16px; padding-bottom: 18px; } .dashboard-intro { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 24px; border: 1px solid rgba(23, 43, 77, 0.16); border-radius: 16px; color: #fff; background: radial-gradient( circle at 88% 20%, rgba(238, 120, 0, 0.34), transparent 23rem ), linear-gradient(125deg, #142642, #213b62); box-shadow: 0 10px 26px rgba(23, 43, 77, 0.12); } .dashboard-eyebrow { display: block; margin-bottom: 5px; color: #ffbf7d; font-size: 12px; font-weight: 800; letter-spacing: 0.15em; text-transform: uppercase; } .dashboard-intro h2 { margin: 0 0 5px; color: #fff !important; font-size: 20px !important; } .dashboard-intro p { margin: 0; color: rgba(255, 255, 255, 0.72); font-size: 12px; } .dashboard-period { min-width: 175px; display: flex; align-items: center; gap: 11px; padding: 10px 13px; border: 1px solid rgba(255, 255, 255, 0.18); border-radius: 11px; background: rgba(255, 255, 255, 0.09); } .dashboard-period > i { color: #ffab51; font-size: 18px; } .dashboard-period span, .dashboard-period small, .dashboard-period strong { display: block; } .dashboard-period small { color: rgba(255, 255, 255, 0.62); font-size: 12px; } .dashboard-period strong { color: #fff; font-size: 12px; } .dashboard-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; } .metric-card, .dashboard-card, .dashboard-section, .operational-card { border: 1px solid var(--dash-line); border-radius: 14px; background: #fff; box-shadow: 0 5px 18px rgba(16, 24, 40, 0.045); } .metric-card { min-width: 0; padding: 16px; } .metric-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 13px; } .metric-top small { color: #98a2b3; font-size: 12px; } .metric-icon, .operational-icon, .attention-status { display: grid; place-items: center; flex: 0 0 auto; } .metric-icon { width: 34px; height: 34px; border-radius: 9px; font-size: 15px; } .metric-revenue .metric-icon { color: #087443; background: #e4f8ef; } .metric-expense .metric-icon { color: #b54708; background: #fff0df; } .metric-profit .metric-icon { color: #175cd3; background: #eaf2ff; } .metric-receivable .metric-icon { color: #6938ef; background: #f1edff; } .metric-label { display: block; margin-bottom: 4px; color: var(--dash-muted); font-size: 12px; font-weight: 600; } .metric-card > strong { display: block; overflow: hidden; margin-bottom: 9px; color: #1d2939; font-size: clamp(16px, 1.45vw, 21px); line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; } .metric-card > a { color: #6941c6; font-size: 12px; font-weight: 700; text-decoration: none; } .metric-comparison { font-size: 12px; font-weight: 650; } .metric-comparison.is-good { color: #078045; } .metric-comparison.is-bad { color: #c4323d; } .metric-comparison.is-neutral { color: #98a2b3; font-weight: 500; } .operational-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; } .operational-card { position: relative; min-width: 0; display: flex; align-items: center; gap: 11px; padding: 13px; color: #344054; text-decoration: none; transition: border-color 0.16s ease, box-shadow 0.16s ease; } .operational-card:hover { color: #1d2939; border-color: #ffc68f; box-shadow: 0 8px 22px rgba(16, 24, 40, 0.08); } .operational-icon { width: 38px; height: 38px; border-radius: 10px; font-size: 16px; } .operational-icon.orange { color: #b54708; background: #fff2e5; } .operational-icon.blue { color: #175cd3; background: #eff6ff; } .operational-icon.green { color: #087443; background: #e8f8f0; } .operational-icon.purple { color: #6941c6; background: #f2efff; } .operational-card > span:nth-child(2) { min-width: 0; } .operational-card small, .operational-card strong, .operational-card em { display: block; } .operational-card small { color: var(--dash-muted); font-size: 12px; } .operational-card strong { overflow: hidden; color: #1d2939; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; } .operational-card em { color: #98a2b3; font-size: 11px; font-style: normal; } .attention-badge { position: absolute; top: 8px; right: 8px; padding: 2px 6px; border-radius: 999px; color: #fff; background: var(--dash-orange); font-size: 10px; font-weight: 700; } .dashboard-section { padding: 15px 16px; } .section-heading, .dashboard-card-header { display: flex; align-items: center; justify-content: space-between; gap: 14px; } .section-heading { margin-bottom: 12px; } .section-heading h3, .dashboard-card-header h3 { margin: 0; color: #1d2939; font-size: 14px !important; } .section-heading p, .dashboard-card-header p { margin: 3px 0 0; color: var(--dash-muted); font-size: 12px; } .dashboard-quick-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; } .dashboard-quick-grid > a { min-width: 0; display: flex; align-items: center; gap: 10px; padding: 10px 11px; border: 1px solid #eaecf0; border-radius: 10px; color: #344054; background: #fbfcfd; text-decoration: none; } .dashboard-quick-grid > a:hover { border-color: #ffc68f; background: #fff9f3; } .dashboard-quick-grid > a > i:first-child { color: var(--dash-orange); font-size: 17px; } .dashboard-quick-grid span { min-width: 0; flex: 1; } .dashboard-quick-grid strong, .dashboard-quick-grid small { display: block; } .dashboard-quick-grid strong { font-size: 11px; } .dashboard-quick-grid small { overflow: hidden; color: var(--dash-muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; } .quick-arrow { color: #98a2b3; font-size: 11px; } .dashboard-main-grid, .dashboard-lower-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(300px, 0.75fr); gap: 12px; } .dashboard-lower-grid { grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.85fr); } .dashboard-card { min-width: 0; overflow: hidden; } .dashboard-card-header { min-height: 64px; padding: 13px 16px; border-bottom: 1px solid #eaecf0; } .dashboard-card-header .form-select { width: 105px; min-height: 34px; } .chart-container { position: relative; height: 300px; padding: 16px 16px 8px; } .chart-message { position: absolute; inset: 0; place-items: center; color: var(--dash-muted); background: #fff; } .chart-message:not([hidden]) { display: grid; } .attention-list { display: grid; } .attention-list > a { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 12px 15px; border-bottom: 1px solid #f0f1f3; color: #344054; text-decoration: none; } .attention-list > a:last-child { border-bottom: 0; } .attention-list > a:hover { background: #fafbfc; } .attention-status { width: 32px; height: 32px; border-radius: 9px; } .attention-status.danger { color: #b42318; background: #feeceb; } .attention-status.warning { color: #b54708; background: #fff2e5; } .attention-status.clear { color: #087443; background: #e9f8f1; } .attention-list strong, .attention-list small { display: block; } .attention-list strong { color: #344054; font-size: 12px; } .attention-list small { color: var(--dash-muted); font-size: 11px; } .attention-list > a > b { color: #475467; font-size: 12px; } .section-link { color: var(--dash-orange); font-size: 12px; font-weight: 700; text-decoration: none; white-space: nowrap; } .dashboard-table-wrap { margin: 0 !important; border: 0 !important; border-radius: 0 !important; } .dashboard-table td:first-child { white-space: nowrap; } .activity-time { color: #475467; font-weight: 650; } .module-chip { display: inline-block; padding: 3px 7px; border-radius: 6px; color: #344054; background: #f2f4f7; font-weight: 650; } .dashboard-table .badge { padding: 4px 7px; border-radius: 999px; text-transform: capitalize; } .dashboard-empty { padding: 32px !important; color: #98a2b3 !important; text-align: center; } .insight-icon { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; color: #b54708; background: #fff2e5; } .insight-list { max-height: 340px; overflow: auto; } .insight-item { display: flex; align-items: flex-start; gap: 9px; padding: 11px 14px; border-bottom: 1px solid #f0f1f3; font-size: 12px; line-height: 1.55; } .insight-item:last-child { border-bottom: 0; } .insight-item > i { margin-top: 2px; } .insight-item.critical > i { color: #d92d20; } .insight-item.warning > i { color: var(--dash-orange); } .insight-item.info > i { color: #175cd3; } .dashboard-empty-state { min-height: 210px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 5px; padding: 24px; color: #98a2b3; text-align: center; } .dashboard-empty-state > i { font-size: 25px; color: #ee7800; } .dashboard-empty-state strong { color: #475467; font-size: 12px; } .dashboard-empty-state span { font-size: 11px; } @media (max-width: 1199.98px) { .dashboard-metrics, .operational-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dashboard-main-grid, .dashboard-lower-grid { grid-template-columns: 1fr; } } @media (max-width: 767.98px) { .dashboard-shell { gap: 12px; } .dashboard-intro { align-items: flex-start; flex-direction: column; padding: 18px; } .dashboard-period { min-width: 0; width: 100%; } .dashboard-metrics, .operational-grid { grid-template-columns: 1fr 1fr; gap: 8px; } .metric-card { padding: 13px; } .metric-card > strong { font-size: 16px; } .dashboard-quick-grid { display: flex; overflow-x: auto; padding-bottom: 4px; } .dashboard-quick-grid > a { min-width: 205px; } .chart-container { height: 265px; padding: 12px 8px 6px; } } @media (max-width: 479.98px) { .dashboard-metrics, .operational-grid { grid-template-columns: 1fr; } .dashboard-card-header { align-items: flex-start; } }