imetting/frontend/src/pages/Dashboard.css

347 lines
6.9 KiB
CSS

.dashboard-v3 {
min-height: calc(100vh - 128px);
padding: 10px 0 28px;
}
.dashboard-hero-card,
.dashboard-main-card {
border-radius: 18px;
}
.dashboard-hero-card .ant-card-body {
padding: 20px 24px;
}
.dashboard-user-block {
display: flex;
align-items: center;
gap: 18px;
}
.dashboard-user-avatar {
box-shadow: 0 12px 28px rgba(29, 78, 216, 0.18);
}
.dashboard-stat-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 10px;
}
.dashboard-stat-card {
position: relative;
overflow: hidden;
padding: 14px 16px;
min-height: 168px;
border-radius: 20px;
border: 1px solid #dce8f7;
background: linear-gradient(180deg, #ffffff 0%, #f6faff 100%);
cursor: pointer;
transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.dashboard-stat-card::after {
content: '';
position: absolute;
inset: auto -24px -36px auto;
width: 96px;
height: 96px;
border-radius: 999px;
background: var(--stat-glow, rgba(29, 78, 216, 0.08));
}
.dashboard-stat-card:hover {
transform: none;
box-shadow: 0 14px 28px rgba(31, 78, 146, 0.11);
}
.dashboard-stat-card.active {
border-color: var(--stat-color, #1d4ed8);
box-shadow: 0 20px 36px rgba(29, 78, 216, 0.16);
background: linear-gradient(180deg, rgba(239, 246, 255, 0.96) 0%, #ffffff 100%);
}
.dashboard-stat-top {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 12px;
}
.dashboard-stat-icon {
width: 42px;
height: 42px;
border-radius: 14px;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--stat-color, #1d4ed8);
background: var(--stat-soft, rgba(29, 78, 216, 0.1));
font-size: 18px;
}
.dashboard-stat-label {
font-size: 14px;
color: #5b718f;
font-weight: 600;
}
.dashboard-stat-value {
font-size: 34px;
line-height: 1;
font-weight: 800;
color: #123a72;
}
.dashboard-stat-desc {
margin-top: 8px;
font-size: 13px;
color: #8aa0ba;
}
.dashboard-toolbar {
padding: 20px 22px 16px;
border-bottom: 1px solid #e7eef7;
}
.dashboard-search-row {
display: flex;
align-items: center;
gap: 12px;
flex-wrap: wrap;
}
.dashboard-search-input {
flex: 1 1 320px;
min-width: 220px;
max-width: 620px;
}
.dashboard-toolbar-actions {
display: flex;
gap: 12px;
flex-wrap: wrap;
margin-left: auto;
}
.dashboard-icon-button {
width: 44px;
min-width: 44px;
height: 44px;
padding: 0;
border-radius: 14px;
display: inline-flex;
align-items: center;
justify-content: center;
}
.dashboard-icon-button.active {
border-color: #c9ddfb;
background: linear-gradient(180deg, #f8fbff 0%, #eef5ff 100%);
color: #1d4ed8;
}
.dashboard-add-button {
height: 44px;
border-radius: 14px;
padding-inline: 16px;
box-shadow: 0 10px 18px rgba(22, 119, 255, 0.22);
}
.dashboard-tag-row {
margin-top: 14px;
padding: 16px 18px;
border-radius: 18px;
border: 1px dashed #cfe0f5;
background: linear-gradient(180deg, #fcfdff 0%, #f5f9ff 100%);
}
.dashboard-tag-row-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-bottom: 12px;
}
.dashboard-main-content {
padding: 24px 22px 28px;
min-height: 520px;
background: #f7fafc;
border-radius: 0 0 20px 20px;
}
.dashboard-timeline-wrap {
max-width: 940px;
margin: 0 auto;
}
.dashboard-empty {
padding: 96px 0;
}
.modern-timeline {
max-width: 900px;
margin: 0 auto;
padding-top: 4px;
}
.modern-timeline .ant-timeline {
margin-left: 0 !important;
}
.modern-timeline .ant-timeline-item {
padding-bottom: 24px;
}
.modern-timeline .ant-timeline-item-label {
width: 72px !important;
text-align: right;
}
.modern-timeline .ant-timeline-item-tail,
.modern-timeline .ant-timeline-item-head {
inset-inline-start: 84px !important;
}
.modern-timeline .ant-timeline-item-content {
inset-inline-start: 96px !important;
width: calc(100% - 112px) !important;
}
.timeline-date-label {
padding-right: 10px;
text-align: right;
opacity: 0.88;
}
.timeline-date-main {
display: block;
font-size: 13px;
color: #5f7595;
font-weight: 700;
white-space: nowrap;
}
.timeline-date-sub {
display: block;
margin-top: 2px;
color: #91a5bf;
font-size: 11px;
}
.timeline-date-dot {
width: 10px;
height: 10px;
border-radius: 50%;
background: linear-gradient(180deg, #2563eb 0%, #38bdf8 100%);
box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.14);
}
.timeline-date-group {
display: flex;
flex-direction: column;
gap: 12px;
}
@media (max-width: 992px) {
.dashboard-stat-grid {
grid-template-columns: 1fr;
}
.dashboard-toolbar-actions {
margin-left: 0;
}
.dashboard-search-input {
width: 100%;
}
.modern-timeline .ant-timeline-item-label {
width: 72px !important;
}
.modern-timeline .ant-timeline-item-tail,
.modern-timeline .ant-timeline-item-head {
inset-inline-start: 84px !important;
}
.modern-timeline .ant-timeline-item-content {
inset-inline-start: 96px !important;
width: calc(100% - 112px) !important;
}
}
@media (max-width: 768px) {
.dashboard-toolbar,
.dashboard-main-content {
padding-left: 16px;
padding-right: 16px;
}
.modern-timeline .ant-timeline-item-label {
width: auto !important;
text-align: left;
margin-bottom: 12px;
}
.modern-timeline .ant-timeline-item-tail,
.modern-timeline .ant-timeline-item-head,
.modern-timeline .ant-timeline-item-content {
inset-inline-start: 12px !important;
}
.modern-timeline .ant-timeline-item-content {
width: calc(100% - 28px) !important;
margin-top: 18px;
}
.timeline-card-title.ant-typography {
font-size: 18px;
}
}
.prompt-config-segmented.ant-segmented {
--prompt-segmented-gap: 4px;
--prompt-segmented-radius: 28px;
--prompt-segmented-thumb-radius: 24px;
padding: var(--prompt-segmented-gap);
border-radius: var(--prompt-segmented-radius);
border: 1px solid #cadefa;
overflow: hidden;
background: linear-gradient(180deg, #f1f6ff 0%, #e7f0ff 100%);
box-shadow: inset 0 1px 0 rgba(255,255,255,0.92), 0 10px 24px rgba(29, 78, 216, 0.08);
}
.prompt-config-segmented .ant-segmented-group {
gap: 0;
}
.prompt-config-segmented .ant-segmented-item {
min-height: 54px;
padding: 0 28px;
border-radius: var(--prompt-segmented-thumb-radius);
font-size: 18px;
font-weight: 700;
color: #557194;
transition: color 0.2s ease, opacity 0.2s ease;
}
.prompt-config-segmented .ant-segmented-item:hover {
color: #2f5a96;
}
.prompt-config-segmented .ant-segmented-item-selected {
color: #1a3e78;
}
.prompt-config-segmented .ant-segmented-thumb {
top: var(--prompt-segmented-gap) !important;
bottom: var(--prompt-segmented-gap) !important;
box-sizing: border-box;
border-radius: var(--prompt-segmented-thumb-radius);
background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
border: 1px solid #d9e5f7;
box-shadow: 0 2px 4px rgba(21, 55, 111, 0.08), 0 12px 22px rgba(21, 55, 111, 0.11);
}