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