|
@@ -12,87 +12,259 @@ $border-color: #E5E6EB;
|
|
|
$background-primary: #FFFFFF;
|
|
|
$background-secondary: #F2F3F5;
|
|
|
$background-tertiary: #F7F8FA;
|
|
|
-$shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
|
|
|
-$shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08);
|
|
|
-$shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.1);
|
|
|
-$border-radius: 8px;
|
|
|
-$transition: all 0.3s ease;
|
|
|
+$shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.06);
|
|
|
+$shadow-md: 0 8px 24px rgba(0, 0, 0, 0.12);
|
|
|
+$shadow-lg: 0 16px 40px rgba(0, 0, 0, 0.16);
|
|
|
+$border-radius: 12px;
|
|
|
+$transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
|
|
|
|
// 主容器
|
|
|
.admin-dashboard {
|
|
|
- padding: 20px 0;
|
|
|
+ padding: 32px 0;
|
|
|
+ background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
|
|
|
+ min-height: 100vh;
|
|
|
+}
|
|
|
+
|
|
|
+// 编写按钮样式
|
|
|
+.write-button {
|
|
|
+ position: fixed;
|
|
|
+ bottom: 32px;
|
|
|
+ right: 32px;
|
|
|
+ width: 64px;
|
|
|
+ height: 64px;
|
|
|
+ background: linear-gradient(135deg, $primary-color, #7c3aed);
|
|
|
+ border: none;
|
|
|
+ border-radius: 50%;
|
|
|
+ box-shadow: 0 8px 24px rgba(22, 93, 255, 0.3);
|
|
|
+ cursor: pointer;
|
|
|
+ transition: $transition;
|
|
|
+ z-index: 1000;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ transform: translateY(-4px) scale(1.05);
|
|
|
+ box-shadow: 0 12px 32px rgba(22, 93, 255, 0.4);
|
|
|
+ }
|
|
|
+
|
|
|
+ &:active {
|
|
|
+ transform: translateY(-2px) scale(1.02);
|
|
|
+ }
|
|
|
+
|
|
|
+ svg {
|
|
|
+ width: 28px;
|
|
|
+ height: 28px;
|
|
|
+ fill: white;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 模态框样式
|
|
|
+.modal-overlay {
|
|
|
+ position: fixed;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ bottom: 0;
|
|
|
+ background: rgba(0, 0, 0, 0.5);
|
|
|
+ backdrop-filter: blur(8px);
|
|
|
+ z-index: 2000;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ padding: 20px;
|
|
|
+ animation: fadeIn 0.3s ease;
|
|
|
+}
|
|
|
+
|
|
|
+.modal-content {
|
|
|
+ background: $background-primary;
|
|
|
+ border-radius: 16px;
|
|
|
+ width: 100%;
|
|
|
+ max-width: 600px;
|
|
|
+ max-height: 90vh;
|
|
|
+ overflow-y: auto;
|
|
|
+ box-shadow: 0 24px 48px rgba(0, 0, 0, 0.2);
|
|
|
+ animation: slideUp 0.3s ease;
|
|
|
+
|
|
|
+ .modal-header {
|
|
|
+ padding: 32px 32px 0;
|
|
|
+ border-bottom: 1px solid $border-color;
|
|
|
+
|
|
|
+ .modal-title {
|
|
|
+ font-size: 24px;
|
|
|
+ font-weight: 700;
|
|
|
+ color: $text-primary;
|
|
|
+ margin: 0 0 16px 0;
|
|
|
+ background: linear-gradient(135deg, $primary-color, #7c3aed);
|
|
|
+ -webkit-background-clip: text;
|
|
|
+ -webkit-text-fill-color: transparent;
|
|
|
+ background-clip: text;
|
|
|
+ }
|
|
|
+
|
|
|
+ .modal-subtitle {
|
|
|
+ font-size: 16px;
|
|
|
+ color: $text-secondary;
|
|
|
+ margin: 0 0 24px 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .close-button {
|
|
|
+ position: absolute;
|
|
|
+ top: 24px;
|
|
|
+ right: 24px;
|
|
|
+ width: 40px;
|
|
|
+ height: 40px;
|
|
|
+ border: none;
|
|
|
+ background: rgba(0, 0, 0, 0.05);
|
|
|
+ border-radius: 50%;
|
|
|
+ cursor: pointer;
|
|
|
+ transition: $transition;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background: rgba(0, 0, 0, 0.1);
|
|
|
+ transform: scale(1.1);
|
|
|
+ }
|
|
|
+
|
|
|
+ svg {
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ fill: $text-secondary;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .modal-body {
|
|
|
+ padding: 32px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+@keyframes fadeIn {
|
|
|
+ from {
|
|
|
+ opacity: 0;
|
|
|
+ }
|
|
|
+ to {
|
|
|
+ opacity: 1;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+@keyframes slideUp {
|
|
|
+ from {
|
|
|
+ opacity: 0;
|
|
|
+ transform: translateY(40px) scale(0.95);
|
|
|
+ }
|
|
|
+ to {
|
|
|
+ opacity: 1;
|
|
|
+ transform: translateY(0) scale(1);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 页面标题
|
|
|
.page-header {
|
|
|
- margin-bottom: 24px;
|
|
|
+ margin-bottom: 32px;
|
|
|
+ text-align: center;
|
|
|
|
|
|
.page-title {
|
|
|
- font-size: 28px;
|
|
|
- font-weight: 600;
|
|
|
+ font-size: 32px;
|
|
|
+ font-weight: 700;
|
|
|
color: $text-primary;
|
|
|
- margin: 0 0 8px 0;
|
|
|
+ margin: 0 0 12px 0;
|
|
|
+ background: linear-gradient(135deg, $primary-color, #7c3aed);
|
|
|
+ -webkit-background-clip: text;
|
|
|
+ -webkit-text-fill-color: transparent;
|
|
|
+ background-clip: text;
|
|
|
}
|
|
|
|
|
|
.page-description {
|
|
|
- font-size: 16px;
|
|
|
+ font-size: 18px;
|
|
|
color: $text-secondary;
|
|
|
margin: 0;
|
|
|
+ font-weight: 400;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 统计卡片网格
|
|
|
.stats-grid {
|
|
|
display: grid;
|
|
|
- grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
|
|
|
- gap: 20px;
|
|
|
- margin-bottom: 32px;
|
|
|
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
|
|
|
+ gap: 24px;
|
|
|
+ margin-bottom: 40px;
|
|
|
}
|
|
|
|
|
|
// 统计卡片
|
|
|
.stat-card {
|
|
|
- background-color: $background-primary;
|
|
|
+ background: $background-primary;
|
|
|
border-radius: $border-radius;
|
|
|
- padding: 20px;
|
|
|
+ padding: 28px;
|
|
|
box-shadow: $shadow-sm;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
- gap: 16px;
|
|
|
+ gap: 20px;
|
|
|
transition: $transition;
|
|
|
- border: 1px solid $border-color;
|
|
|
+ border: 1px solid rgba(255, 255, 255, 0.8);
|
|
|
+ position: relative;
|
|
|
+ overflow: hidden;
|
|
|
+
|
|
|
+ &::before {
|
|
|
+ content: '';
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ height: 4px;
|
|
|
+ background: linear-gradient(90deg, $primary-color, $success-color);
|
|
|
+ transform: scaleX(0);
|
|
|
+ transition: $transition;
|
|
|
+ }
|
|
|
|
|
|
&:hover {
|
|
|
box-shadow: $shadow-md;
|
|
|
- transform: translateY(-2px);
|
|
|
+ transform: translateY(-4px);
|
|
|
+
|
|
|
+ &::before {
|
|
|
+ transform: scaleX(1);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.stat-icon {
|
|
|
- width: 48px;
|
|
|
- height: 48px;
|
|
|
- border-radius: 50%;
|
|
|
+ width: 56px;
|
|
|
+ height: 56px;
|
|
|
+ border-radius: 16px;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: center;
|
|
|
color: white;
|
|
|
+ position: relative;
|
|
|
+
|
|
|
+ &::before {
|
|
|
+ content: '';
|
|
|
+ position: absolute;
|
|
|
+ inset: 0;
|
|
|
+ border-radius: inherit;
|
|
|
+ background: inherit;
|
|
|
+ opacity: 0.1;
|
|
|
+ transform: scale(1.3);
|
|
|
+ }
|
|
|
|
|
|
&.primary {
|
|
|
- background-color: $primary-color;
|
|
|
+ background: linear-gradient(135deg, $primary-color, #4c9aff);
|
|
|
}
|
|
|
|
|
|
&.secondary {
|
|
|
- background-color: $secondary-color;
|
|
|
+ background: linear-gradient(135deg, $secondary-color, #6366f1);
|
|
|
}
|
|
|
|
|
|
&.success {
|
|
|
- background-color: $success-color;
|
|
|
+ background: linear-gradient(135deg, $success-color, #52c41a);
|
|
|
}
|
|
|
|
|
|
&.warning {
|
|
|
- background-color: $warning-color;
|
|
|
+ background: linear-gradient(135deg, $warning-color, #ffa940);
|
|
|
}
|
|
|
|
|
|
&.danger {
|
|
|
- background-color: $danger-color;
|
|
|
+ background: linear-gradient(135deg, $danger-color, #ff7875);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -100,37 +272,43 @@ $transition: all 0.3s ease;
|
|
|
flex: 1;
|
|
|
|
|
|
.stat-value {
|
|
|
- font-size: 28px;
|
|
|
- font-weight: 600;
|
|
|
+ font-size: 32px;
|
|
|
+ font-weight: 800;
|
|
|
color: $text-primary;
|
|
|
- margin-bottom: 4px;
|
|
|
+ margin-bottom: 6px;
|
|
|
+ line-height: 1;
|
|
|
+ letter-spacing: -0.02em;
|
|
|
}
|
|
|
|
|
|
.stat-label {
|
|
|
- font-size: 14px;
|
|
|
+ font-size: 15px;
|
|
|
color: $text-secondary;
|
|
|
+ font-weight: 500;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
.stat-trend {
|
|
|
- font-size: 12px;
|
|
|
- font-weight: 500;
|
|
|
- padding: 4px 8px;
|
|
|
- border-radius: 4px;
|
|
|
+ font-size: 13px;
|
|
|
+ font-weight: 600;
|
|
|
+ padding: 6px 10px;
|
|
|
+ border-radius: 8px;
|
|
|
white-space: nowrap;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 4px;
|
|
|
|
|
|
&.positive {
|
|
|
- background-color: color-mix(in srgb, $success-color 5%, transparent);
|
|
|
+ background: rgba(0, 180, 42, 0.1);
|
|
|
color: $success-color;
|
|
|
}
|
|
|
|
|
|
&.negative {
|
|
|
- background-color: color-mix(in srgb, $danger-color 5%, transparent);
|
|
|
+ background: rgba(245, 63, 63, 0.1);
|
|
|
color: $danger-color;
|
|
|
}
|
|
|
|
|
|
&.neutral {
|
|
|
- background-color: $background-tertiary;
|
|
|
+ background: $background-tertiary;
|
|
|
color: $text-secondary;
|
|
|
}
|
|
|
}
|
|
@@ -139,150 +317,202 @@ $transition: all 0.3s ease;
|
|
|
// 图表网格
|
|
|
.charts-grid {
|
|
|
display: grid;
|
|
|
- grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
|
|
|
- gap: 20px;
|
|
|
- margin-bottom: 32px;
|
|
|
+ grid-template-columns: 2fr 1fr;
|
|
|
+ gap: 32px;
|
|
|
+ margin-bottom: 40px;
|
|
|
}
|
|
|
|
|
|
// 图表卡片
|
|
|
.chart-card {
|
|
|
- background-color: $background-primary;
|
|
|
+ background: $background-primary;
|
|
|
border-radius: $border-radius;
|
|
|
box-shadow: $shadow-sm;
|
|
|
overflow: hidden;
|
|
|
- border: 1px solid $border-color;
|
|
|
+ border: 1px solid rgba(255, 255, 255, 0.8);
|
|
|
+ transition: $transition;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ box-shadow: $shadow-md;
|
|
|
+ transform: translateY(-2px);
|
|
|
+ }
|
|
|
|
|
|
.chart-header {
|
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
|
align-items: center;
|
|
|
- padding: 20px;
|
|
|
+ padding: 24px;
|
|
|
border-bottom: 1px solid $border-color;
|
|
|
+ background: linear-gradient(135deg, rgba(22, 93, 255, 0.02), rgba(124, 58, 237, 0.02));
|
|
|
|
|
|
h3 {
|
|
|
- font-size: 16px;
|
|
|
- font-weight: 600;
|
|
|
+ font-size: 18px;
|
|
|
+ font-weight: 700;
|
|
|
color: $text-primary;
|
|
|
margin: 0;
|
|
|
}
|
|
|
|
|
|
.chart-period {
|
|
|
display: flex;
|
|
|
- gap: 8px;
|
|
|
+ gap: 4px;
|
|
|
+ background: $background-secondary;
|
|
|
+ padding: 4px;
|
|
|
+ border-radius: 8px;
|
|
|
|
|
|
.period-btn {
|
|
|
- padding: 6px 12px;
|
|
|
- border: 1px solid $border-color;
|
|
|
- background-color: $background-primary;
|
|
|
- border-radius: 4px;
|
|
|
- font-size: 12px;
|
|
|
+ padding: 8px 16px;
|
|
|
+ border: none;
|
|
|
+ background: transparent;
|
|
|
+ border-radius: 6px;
|
|
|
+ font-size: 13px;
|
|
|
color: $text-secondary;
|
|
|
cursor: pointer;
|
|
|
transition: $transition;
|
|
|
+ font-weight: 500;
|
|
|
|
|
|
&:hover {
|
|
|
- background-color: $background-tertiary;
|
|
|
+ background: $background-primary;
|
|
|
+ color: $text-primary;
|
|
|
}
|
|
|
|
|
|
&.active {
|
|
|
- background-color: $primary-color;
|
|
|
+ background: $primary-color;
|
|
|
color: white;
|
|
|
- border-color: $primary-color;
|
|
|
+ box-shadow: 0 2px 4px rgba(22, 93, 255, 0.3);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
.chart-container {
|
|
|
- height: 300px;
|
|
|
- padding: 20px;
|
|
|
+ height: 320px;
|
|
|
+ padding: 24px;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 最近活动区域
|
|
|
.recent-activities {
|
|
|
- background-color: $background-primary;
|
|
|
+ background: $background-primary;
|
|
|
border-radius: $border-radius;
|
|
|
+ padding: 32px;
|
|
|
box-shadow: $shadow-sm;
|
|
|
- border: 1px solid $border-color;
|
|
|
-
|
|
|
- .section-header {
|
|
|
+ border: 1px solid rgba(255, 255, 255, 0.8);
|
|
|
+ transition: $transition;
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ box-shadow: $shadow-md;
|
|
|
+ }
|
|
|
+
|
|
|
+ .activities-header {
|
|
|
display: flex;
|
|
|
- justify-content: space-between;
|
|
|
align-items: center;
|
|
|
- padding: 20px;
|
|
|
- border-bottom: 1px solid $border-color;
|
|
|
-
|
|
|
+ justify-content: space-between;
|
|
|
+ margin-bottom: 24px;
|
|
|
+ padding-bottom: 16px;
|
|
|
+ border-bottom: 2px solid $border-color;
|
|
|
+
|
|
|
h3 {
|
|
|
- font-size: 16px;
|
|
|
- font-weight: 600;
|
|
|
+ font-size: 20px;
|
|
|
+ font-weight: 700;
|
|
|
color: $text-primary;
|
|
|
margin: 0;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 8px;
|
|
|
+
|
|
|
+ &::before {
|
|
|
+ content: '';
|
|
|
+ width: 4px;
|
|
|
+ height: 20px;
|
|
|
+ background: linear-gradient(135deg, $primary-color, $success-color);
|
|
|
+ border-radius: 2px;
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
- .view-all-link {
|
|
|
+
|
|
|
+ .view-all {
|
|
|
font-size: 14px;
|
|
|
color: $primary-color;
|
|
|
text-decoration: none;
|
|
|
+ font-weight: 600;
|
|
|
+ padding: 8px 16px;
|
|
|
+ border-radius: 8px;
|
|
|
+ background: rgba(22, 93, 255, 0.1);
|
|
|
transition: $transition;
|
|
|
-
|
|
|
+
|
|
|
&:hover {
|
|
|
- text-decoration: underline;
|
|
|
+ background: rgba(22, 93, 255, 0.2);
|
|
|
+ transform: translateY(-1px);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- .activities-list {
|
|
|
- padding: 0 20px 20px 20px;
|
|
|
-
|
|
|
+
|
|
|
+ .activity-list {
|
|
|
.activity-item {
|
|
|
display: flex;
|
|
|
- align-items: flex-start;
|
|
|
- gap: 12px;
|
|
|
+ align-items: center;
|
|
|
padding: 16px 0;
|
|
|
- border-bottom: 1px solid $border-color;
|
|
|
-
|
|
|
+ border-bottom: 1px solid rgba(229, 230, 235, 0.5);
|
|
|
+ transition: $transition;
|
|
|
+
|
|
|
&:last-child {
|
|
|
border-bottom: none;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background: rgba(22, 93, 255, 0.02);
|
|
|
+ border-radius: 8px;
|
|
|
+ margin: 0 -16px;
|
|
|
+ padding: 16px;
|
|
|
+ }
|
|
|
+
|
|
|
.activity-icon {
|
|
|
- width: 32px;
|
|
|
- height: 32px;
|
|
|
- border-radius: 50%;
|
|
|
- background-color: $background-tertiary;
|
|
|
+ width: 40px;
|
|
|
+ height: 40px;
|
|
|
+ border-radius: 12px;
|
|
|
+ background: linear-gradient(135deg, rgba(22, 93, 255, 0.1), rgba(124, 58, 237, 0.1));
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: center;
|
|
|
- color: $primary-color;
|
|
|
- flex-shrink: 0;
|
|
|
+ margin-right: 16px;
|
|
|
+
|
|
|
+ svg {
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ fill: $primary-color;
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
.activity-content {
|
|
|
flex: 1;
|
|
|
-
|
|
|
+
|
|
|
.activity-text {
|
|
|
- font-size: 14px;
|
|
|
+ font-size: 15px;
|
|
|
color: $text-primary;
|
|
|
- line-height: 1.5;
|
|
|
- margin-bottom: 4px;
|
|
|
+ margin-bottom: 6px;
|
|
|
+ line-height: 1.4;
|
|
|
+
|
|
|
+ .user {
|
|
|
+ font-weight: 700;
|
|
|
+ color: $primary-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ .action {
|
|
|
+ color: $text-secondary;
|
|
|
+ font-weight: 500;
|
|
|
+ }
|
|
|
+
|
|
|
+ .target {
|
|
|
+ color: $text-primary;
|
|
|
+ font-weight: 600;
|
|
|
+ background: rgba(22, 93, 255, 0.1);
|
|
|
+ padding: 2px 6px;
|
|
|
+ border-radius: 4px;
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
.activity-time {
|
|
|
- font-size: 12px;
|
|
|
- color: $text-tertiary;
|
|
|
- }
|
|
|
-
|
|
|
- .activity-user {
|
|
|
- font-weight: 600;
|
|
|
- color: $text-primary;
|
|
|
- }
|
|
|
-
|
|
|
- .activity-project,
|
|
|
- .activity-task,
|
|
|
- .activity-customer {
|
|
|
- font-weight: 600;
|
|
|
- color: $primary-color;
|
|
|
+ font-size: 13px;
|
|
|
+ color: $text-secondary;
|
|
|
+ font-weight: 500;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -290,27 +520,67 @@ $transition: all 0.3s ease;
|
|
|
}
|
|
|
|
|
|
// 响应式设计
|
|
|
-@media (max-width: 1200px) {
|
|
|
- .stats-grid {
|
|
|
- grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
|
|
|
+@media (max-width: 1400px) {
|
|
|
+ .admin-dashboard {
|
|
|
+ .charts-grid {
|
|
|
+ grid-template-columns: 1fr;
|
|
|
+ gap: 24px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .stats-grid {
|
|
|
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
|
|
+ }
|
|
|
}
|
|
|
+}
|
|
|
|
|
|
- .charts-grid {
|
|
|
- grid-template-columns: 1fr;
|
|
|
+@media (max-width: 1024px) {
|
|
|
+ .admin-dashboard {
|
|
|
+ padding: 24px 0;
|
|
|
+
|
|
|
+ .stats-grid {
|
|
|
+ grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
|
|
|
+ gap: 20px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .stat-card {
|
|
|
+ padding: 24px;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@media (max-width: 768px) {
|
|
|
+ .admin-dashboard {
|
|
|
+ padding: 20px 0;
|
|
|
+ }
|
|
|
+
|
|
|
.page-title {
|
|
|
- font-size: 24px !important;
|
|
|
+ font-size: 28px !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ .page-description {
|
|
|
+ font-size: 15px !important;
|
|
|
}
|
|
|
|
|
|
.stats-grid {
|
|
|
grid-template-columns: 1fr;
|
|
|
+ gap: 16px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .stat-card {
|
|
|
+ padding: 20px;
|
|
|
+
|
|
|
+ .stat-icon {
|
|
|
+ width: 44px;
|
|
|
+ height: 44px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .stat-value {
|
|
|
+ font-size: 28px !important;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.chart-container {
|
|
|
- height: 250px !important;
|
|
|
+ height: 280px !important;
|
|
|
}
|
|
|
|
|
|
.chart-header {
|
|
@@ -321,32 +591,63 @@ $transition: all 0.3s ease;
|
|
|
|
|
|
.recent-activities {
|
|
|
margin-top: 20px;
|
|
|
+ padding: 24px;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@media (max-width: 480px) {
|
|
|
.admin-dashboard {
|
|
|
- padding: 12px 0;
|
|
|
+ padding: 16px 0;
|
|
|
}
|
|
|
|
|
|
.page-title {
|
|
|
- font-size: 20px !important;
|
|
|
+ font-size: 24px !important;
|
|
|
}
|
|
|
|
|
|
.page-description {
|
|
|
font-size: 14px !important;
|
|
|
}
|
|
|
|
|
|
- .chart-container {
|
|
|
- height: 200px !important;
|
|
|
- padding: 12px !important;
|
|
|
+ .stats-grid {
|
|
|
+ gap: 12px;
|
|
|
}
|
|
|
|
|
|
.stat-card {
|
|
|
padding: 16px;
|
|
|
+
|
|
|
+ .stat-icon {
|
|
|
+ width: 40px;
|
|
|
+ height: 40px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .stat-value {
|
|
|
+ font-size: 24px !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ .stat-label {
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- .stat-value {
|
|
|
- font-size: 24px !important;
|
|
|
+ .chart-container {
|
|
|
+ height: 240px !important;
|
|
|
+ padding: 12px !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ .recent-activities {
|
|
|
+ padding: 20px;
|
|
|
+
|
|
|
+ .activity-item {
|
|
|
+ .activity-icon {
|
|
|
+ width: 36px;
|
|
|
+ height: 36px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .activity-content {
|
|
|
+ .activity-text {
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|