devportal2 / static /css /dashboard.css
Akay Borana
Complete Android-first UI rebuild with mobile-first design system
81552f4
Raw
History Blame Contribute Delete
4.25 kB
/* static/css/dashboard.css β€” Mobile-first */
.dash-scroll {
flex: 1;
overflow-y: auto;
padding: var(--sp-4);
padding-bottom: calc(var(--sp-4) + env(safe-area-inset-bottom, 0px));
}
/* ── Welcome ── */
.dash-welcome {
margin-bottom: var(--sp-5);
}
.dash-welcome h1 {
font-size: 22px;
font-weight: 700;
margin-bottom: var(--sp-1);
color: var(--text-1);
}
.dash-welcome p {
font-size: 13px;
color: var(--text-2);
}
/* ── Quick Actions Grid ── */
.dash-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: var(--sp-3);
margin-bottom: var(--sp-5);
}
.dash-card {
background: var(--bg-elevated);
border: 1px solid var(--border);
border-radius: var(--r-lg);
padding: var(--sp-4);
cursor: pointer;
transition: transform 0.15s ease, border-color 0.15s ease;
display: flex;
flex-direction: column;
gap: var(--sp-2);
min-height: 100px;
position: relative;
overflow: hidden;
}
.dash-card:active { transform: scale(0.97); }
.dash-card:hover { border-color: var(--accent-dim); }
.dash-card-icon {
width: 40px;
height: 40px;
background: var(--accent-dim);
border-radius: var(--r-md);
display: flex;
align-items: center;
justify-content: center;
color: var(--accent);
font-size: 18px;
flex-shrink: 0;
}
.dash-card h3 {
font-size: 14px;
font-weight: 600;
color: var(--text-1);
margin: 0;
}
.dash-card p {
font-size: 12px;
color: var(--text-3);
margin: 0;
line-height: 1.4;
}
/* ── Widget Card ── */
.dash-widget {
background: var(--bg-elevated);
border: 1px solid var(--border);
border-radius: var(--r-lg);
padding: var(--sp-4);
margin-bottom: var(--sp-4);
}
.widget-title {
font-size: 13px;
font-weight: 600;
color: var(--text-2);
margin-bottom: var(--sp-4);
display: flex;
justify-content: space-between;
align-items: center;
}
.widget-action {
font-size: 11px;
color: var(--accent);
cursor: pointer;
background: none;
border: none;
font-weight: 600;
padding: var(--sp-1) var(--sp-2);
border-radius: var(--r-sm);
}
.widget-action:active { background: var(--accent-dim); }
/* ── Progress Bars ── */
.stat-row { margin-bottom: var(--sp-3); }
.stat-row:last-child { margin-bottom: 0; }
.stat-label {
display: flex;
justify-content: space-between;
font-size: 12px;
color: var(--text-2);
margin-bottom: 6px;
}
.stat-bar {
width: 100%;
height: 6px;
background: rgba(255,255,255,0.06);
border-radius: var(--r-full);
overflow: hidden;
}
.stat-fill {
height: 100%;
background: var(--accent);
border-radius: var(--r-full);
transition: width 0.6s ease;
}
/* ── Recent Files ── */
.file-row {
display: flex;
align-items: center;
gap: var(--sp-3);
padding: var(--sp-2) 0;
border-bottom: 1px solid var(--divider);
cursor: pointer;
min-height: var(--touch-min);
}
.file-row:last-child { border-bottom: none; }
.file-row:active { opacity: 0.7; }
.file-icon {
width: 36px;
height: 36px;
background: var(--accent-dim);
border-radius: var(--r-sm);
display: flex;
align-items: center;
justify-content: center;
color: var(--accent);
font-size: 14px;
flex-shrink: 0;
}
.file-meta h4 {
font-size: 13px;
font-weight: 500;
color: var(--text-1);
margin: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
max-width: 180px;
}
.file-meta p {
font-size: 11px;
color: var(--text-3);
margin: 0;
}
/* ── Responsive ── */
@media (min-width: 769px) {
.dash-scroll {
padding: var(--sp-8);
max-width: 1200px;
margin: 0 auto;
width: 100%;
}
.dash-welcome h1 { font-size: 28px; }
.dash-grid { gap: var(--sp-4); }
.dash-card { padding: var(--sp-5); min-height: 120px; }
.dash-card h3 { font-size: 15px; }
}
/* ── Light ── */
:root.light .dash-card { background: var(--bg-surface); border-color: var(--border); }
:root.light .dash-widget { background: var(--bg-surface); }
:root.light .stat-bar { background: rgba(0,0,0,0.06); }