Files
accounting_dev_v2/assets/css/dashboard-professional.css
T
2026-09-15 10:38:43 +07:00

597 lines
9.9 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, 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;
}
}