aboutsummaryrefslogtreecommitdiff
path: root/web/src/pages/DashboardPage.module.css
diff options
context:
space:
mode:
authorzwlucas <lucas.fariamo08@gmail.com>2026-07-25 21:23:29 +0000
committerzwlucas <lucas.fariamo08@gmail.com>2026-07-25 21:23:29 +0000
commitef55d9bb24430610b60c1b77821307cd72c08c55 (patch)
treee6935a810b34370b0a4c821e55f6397aac50c832 /web/src/pages/DashboardPage.module.css
downloadhelpdesk-ef55d9bb24430610b60c1b77821307cd72c08c55.tar.gz
helpdesk-ef55d9bb24430610b60c1b77821307cd72c08c55.zip
feat: upload of the projectHEADmaster
Signed-off-by: zwlucas <lucas.fariamo08@gmail.com>
Diffstat (limited to 'web/src/pages/DashboardPage.module.css')
-rw-r--r--web/src/pages/DashboardPage.module.css160
1 files changed, 160 insertions, 0 deletions
diff --git a/web/src/pages/DashboardPage.module.css b/web/src/pages/DashboardPage.module.css
new file mode 100644
index 0000000..59e1a73
--- /dev/null
+++ b/web/src/pages/DashboardPage.module.css
@@ -0,0 +1,160 @@
+.page {
+ display: flex;
+ flex-direction: column;
+ gap: var(--space-6);
+}
+
+.pageHeader {
+ display: flex;
+ align-items: flex-end;
+ justify-content: space-between;
+}
+
+.heading {
+ font-size: var(--text-2xl);
+ font-weight: 700;
+ color: var(--color-text-primary);
+ letter-spacing: -0.03em;
+}
+
+.total {
+ font-size: var(--text-sm);
+ color: var(--color-text-muted);
+ margin-top: var(--space-1);
+}
+
+/* ── KPI Cards ─────────────────────────────────────────────────────────────── */
+.kpiGrid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
+ gap: var(--space-4);
+ margin-bottom: var(--space-2);
+}
+
+.kpiCard {
+ background: var(--color-surface);
+ border: 1px solid var(--color-border);
+ border-radius: var(--radius-lg);
+ padding: var(--space-4);
+ display: flex;
+ flex-direction: column;
+ gap: var(--space-1);
+}
+
+.kpiLabel {
+ font-size: var(--text-xs);
+ font-weight: 600;
+ color: var(--color-text-muted);
+ text-transform: uppercase;
+ letter-spacing: 0.05em;
+}
+
+.kpiValue {
+ font-size: var(--text-3xl);
+ font-weight: 700;
+ color: var(--color-text-primary);
+ line-height: 1;
+}
+
+/* ── Filtros ───────────────────────────────────────────────────────────────── */
+.filters {
+ display: flex;
+ align-items: center;
+ gap: var(--space-3);
+ flex-wrap: wrap;
+}
+
+/* ── Grid de tickets ───────────────────────────────────────────────────────── */
+.grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
+ gap: var(--space-4);
+}
+
+/* ── Skeleton ──────────────────────────────────────────────────────────────── */
+.skeleton {
+ background: var(--color-surface);
+ border: 1px solid var(--color-border);
+ border-radius: var(--radius-lg);
+ padding: var(--space-5);
+ display: flex;
+ flex-direction: column;
+ gap: var(--space-3);
+ overflow: hidden;
+}
+
+.skeletonLine {
+ border-radius: var(--radius-sm);
+ background: linear-gradient(
+ 90deg,
+ var(--color-surface-2) 25%,
+ var(--color-border) 50%,
+ var(--color-surface-2) 75%
+ );
+ background-size: 200% 100%;
+ animation: shimmer 1.5s infinite;
+}
+
+@keyframes shimmer {
+ 0% { background-position: 200% 0; }
+ 100% { background-position: -200% 0; }
+}
+
+/* ── Estado vazio ──────────────────────────────────────────────────────────── */
+.emptyState {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ gap: var(--space-3);
+ padding: var(--space-16) var(--space-8);
+ text-align: center;
+}
+
+.emptyTitle {
+ font-size: var(--text-lg);
+ font-weight: 600;
+ color: var(--color-text-secondary);
+}
+
+.emptyMessage {
+ font-size: var(--text-sm);
+ color: var(--color-text-muted);
+}
+
+/* ── Estado de erro ────────────────────────────────────────────────────────── */
+.errorState {
+ padding: var(--space-6);
+ background: rgba(248, 113, 113, 0.08);
+ border: 1px solid rgba(248, 113, 113, 0.25);
+ border-radius: var(--radius-lg);
+ text-align: center;
+}
+
+.errorTitle {
+ font-weight: 600;
+ color: var(--color-priority-critical);
+ margin-bottom: var(--space-1);
+}
+
+.errorMessage {
+ font-size: var(--text-sm);
+ color: var(--color-text-secondary);
+}
+
+/* ── Paginação ─────────────────────────────────────────────────────────────── */
+.pagination {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: var(--space-4);
+ padding-top: var(--space-4);
+ border-top: 1px solid var(--color-border);
+}
+
+.pageInfo {
+ font-size: var(--text-sm);
+ color: var(--color-text-secondary);
+ min-width: 120px;
+ text-align: center;
+}