Files
accounting_dev_v2/assets/css/dashboard-professional.css
T
2026-09-11 23:35:24 +07:00

296 lines
10 KiB
CSS

.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, .16);
border-radius: 16px;
color: #fff;
background:
radial-gradient(circle at 88% 20%, rgba(238, 120, 0, .34), transparent 23rem),
linear-gradient(125deg, #142642, #213b62);
box-shadow: 0 10px 26px rgba(23, 43, 77, .12);
}
.dashboard-eyebrow {
display: block;
margin-bottom: 5px;
color: #ffbf7d;
font-size: 10px;
font-weight: 800;
letter-spacing: .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, .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, .18);
border-radius: 11px;
background: rgba(255, 255, 255, .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, .62); font-size: 10px; }
.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, .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: 10px; }
.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: 11px;
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: 10px;
font-weight: 700;
text-decoration: none;
}
.metric-comparison { font-size: 10px; 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 .16s ease, box-shadow .16s ease;
}
.operational-card:hover {
color: #1d2939;
border-color: #ffc68f;
box-shadow: 0 8px 22px rgba(16, 24, 40, .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: 10px; }
.operational-card strong { overflow: hidden; color: #1d2939; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.operational-card em { color: #98a2b3; font-size: 9px; 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: 8px;
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: 10px; }
.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: 9px; 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, .75fr);
gap: 12px;
}
.dashboard-lower-grid { grid-template-columns: minmax(0, 1.55fr) minmax(300px, .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: 11px; }
.attention-list small { color: var(--dash-muted); font-size: 9px; }
.attention-list > a > b { color: #475467; font-size: 12px; }
.section-link { color: var(--dash-orange); font-size: 10px; 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: 10px; 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: 11px; }
.dashboard-empty-state span { font-size: 9px; }
@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; }
}