feat: add admin dashboard with usage stats

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-05 09:26:55 +02:00
parent 78f1659db4
commit 5dedb8fac0
9 changed files with 636 additions and 1 deletions
+119
View File
@@ -4919,6 +4919,125 @@ html.theme-cupertino .events-scroll-container {
padding-bottom: 8px;
}
.admin-page {
width: 100%;
max-width: 1200px;
min-height: 100vh;
margin: 0 auto;
padding: 24px;
box-sizing: border-box;
color: var(--app-text);
display: flex;
flex-direction: column;
gap: 24px;
}
.admin-header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16px;
padding-bottom: 16px;
border-bottom: 1px solid var(--app-header-border);
}
.admin-header-left {
display: flex;
align-items: flex-start;
gap: 20px;
min-width: 0;
}
.admin-title {
margin: 0;
font-size: 24px;
font-weight: 700;
background: var(--app-accent-gradient);
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
}
.admin-subtitle {
margin: 6px 0 0;
font-size: 14px;
color: var(--app-text-muted);
}
.admin-main {
display: flex;
flex-direction: column;
gap: 24px;
width: 100%;
}
.admin-kpi-grid {
margin-top: 0;
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.admin-controls {
display: flex;
flex-wrap: wrap;
gap: 24px;
padding: 16px 20px;
border-radius: var(--app-radius-card);
border: 1px solid var(--app-border-subtle);
background: var(--app-surface);
}
.admin-control-group {
display: flex;
flex-direction: column;
gap: 10px;
min-width: 0;
}
.admin-control-label {
font-size: 13px;
font-weight: 600;
color: var(--app-text-muted);
}
.admin-control-buttons {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.admin-control-buttons .btn {
width: auto;
padding: 8px 16px;
font-size: 14px;
}
.admin-charts-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
gap: 20px;
}
.dashboard-subtitle {
margin-top: 4px;
font-size: 14px;
color: var(--app-text-muted);
}
@media (max-width: 640px) {
.admin-page {
padding: 16px;
}
.admin-header-left {
flex-direction: column;
gap: 12px;
}
.admin-kpi-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
.stats-consumption-chart .stats-bar-column--grouped {
display: inline-flex;
white-space: normal;