fix: sync CSS classes with refactored layout, restore missing sidebar items, add asset versioning, fix routes and auth

This commit is contained in:
2026-06-14 08:54:37 -04:00
parent c9ab2ca98b
commit d1da560764
31 changed files with 230 additions and 245 deletions

View File

@@ -121,7 +121,7 @@ code, pre {
}
/* App Container */
.app-container {
.app-layout {
display: flex;
min-height: 100vh;
}
@@ -159,7 +159,7 @@ code, pre {
min-height: var(--topbar-height);
}
.sidebar-logo {
.sidebar-brand {
display: flex;
align-items: center;
gap: 0.75rem;
@@ -169,32 +169,13 @@ code, pre {
white-space: nowrap;
}
.sidebar-logo i {
.sidebar-brand i {
font-size: 1.5rem;
color: var(--accent);
}
.sidebar-toggle {
background: none;
border: none;
color: var(--text-secondary);
cursor: pointer;
font-size: 1.1rem;
padding: 0.5rem;
border-radius: var(--radius-sm);
transition: color var(--transition);
flex-shrink: 0;
}
.sidebar-toggle:hover {
color: var(--text-primary);
}
.sidebar-toggle i,
.mobile-toggle i,
.nav-link i,
.nav-sub-item i,
.user-menu a i {
.nav-item i,
.nav-sub-item i {
pointer-events: none;
}
@@ -204,61 +185,6 @@ code, pre {
padding: 0.75rem 0;
}
.nav-list {
list-style: none;
}
.nav-item {
margin: 2px 0;
}
.nav-link {
display: flex;
align-items: center;
gap: 0.75rem;
padding: 0.65rem 1.25rem;
color: var(--text-secondary);
border-radius: 0;
transition: all var(--transition);
font-size: 0.92rem;
white-space: nowrap;
border-left: 3px solid transparent;
}
.nav-link i {
width: 20px;
text-align: center;
flex-shrink: 0;
}
.nav-link:hover {
color: var(--text-primary);
background: var(--bg-hover);
}
.nav-link.active {
color: var(--accent);
background: var(--accent-light);
border-left-color: var(--accent);
font-weight: 500;
}
.nav-divider {
height: 1px;
background: var(--border-color);
margin: 0.5rem 1rem;
}
.nav-section {
padding: 0.5rem 1.25rem;
font-size: 0.75rem;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--text-muted);
font-weight: 600;
white-space: nowrap;
}
.sidebar-footer {
border-top: 1px solid var(--border-color);
padding: 0.75rem 1rem;
@@ -321,21 +247,72 @@ code, pre {
color: var(--text-primary);
}
.nav-item {
display: flex;
align-items: center;
gap: 0.75rem;
padding: 0.65rem 1.25rem;
color: var(--text-secondary);
border-radius: 0;
transition: all var(--transition);
font-size: 0.92rem;
white-space: nowrap;
border-left: 3px solid transparent;
}
.nav-item i {
width: 20px;
text-align: center;
flex-shrink: 0;
}
.nav-item:hover {
color: var(--text-primary);
background: var(--bg-hover);
}
.nav-item.active {
color: var(--accent);
background: var(--accent-light);
border-left-color: var(--accent);
font-weight: 500;
}
.nav-divider {
height: 1px;
background: var(--border-color);
margin: 0.5rem 1rem;
}
.nav-section {
padding: 0.5rem 1.25rem;
font-size: 0.75rem;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--text-muted);
font-weight: 600;
white-space: nowrap;
}
/* Collapsed state */
.sidebar.collapsed .logo-text,
.sidebar.collapsed .nav-link span,
.sidebar.collapsed .nav-item span,
.sidebar.collapsed .nav-chevron,
.sidebar.collapsed .notification-badge,
.sidebar.collapsed .nav-divider,
.sidebar.collapsed .nav-section,
.sidebar.collapsed .user-details,
.sidebar.collapsed .user-menu,
.sidebar.collapsed .nav-divider {
.sidebar.collapsed .sidebar-footer {
display: none;
}
.sidebar.collapsed .sidebar-logo {
.sidebar.collapsed .sidebar-brand {
justify-content: center;
}
.sidebar.collapsed .nav-link {
.sidebar.collapsed .nav-item {
justify-content: center;
padding: 0.65rem;
}
@@ -348,7 +325,7 @@ code, pre {
Main Content
========================================================================== */
.main-content {
.main-area {
flex: 1;
margin-left: var(--sidebar-width);
transition: margin-left var(--transition);
@@ -357,7 +334,7 @@ code, pre {
flex-direction: column;
}
.sidebar.collapsed ~ .main-content {
.sidebar.collapsed ~ .main-area {
margin-left: var(--sidebar-collapsed);
}
@@ -365,7 +342,7 @@ code, pre {
Top Bar
========================================================================== */
.top-bar {
.topbar {
height: var(--topbar-height);
background: var(--bg-secondary);
border-bottom: 1px solid var(--border-color);
@@ -378,48 +355,25 @@ code, pre {
z-index: 50;
}
.top-bar-left {
.topbar-left {
display: flex;
align-items: center;
gap: 1rem;
}
.mobile-toggle {
display: none;
background: none;
border: none;
color: var(--text-secondary);
font-size: 1.3rem;
cursor: pointer;
padding: 0.5rem 0.75rem;
border-radius: var(--radius-sm);
transition: color var(--transition);
}
.mobile-toggle:hover {
color: var(--text-primary);
background: var(--bg-hover);
}
.mobile-overlay {
display: none;
}
.breadcrumb {
font-size: 0.92rem;
color: var(--text-secondary);
font-weight: 500;
}
.top-bar-right {
.topbar-right {
display: flex;
align-items: center;
gap: 0.5rem;
}
.top-bar-actions {
.topbar-user {
display: flex;
gap: 0.25rem;
align-items: center;
gap: 0.5rem;
font-size: 0.88rem;
color: var(--text-secondary);
white-space: nowrap;
}
.btn-icon {
@@ -442,11 +396,15 @@ code, pre {
Content Area
========================================================================== */
.content-area {
.page-content {
flex: 1;
padding: 1.5rem;
}
.container {
max-width: 100%;
}
/* ==========================================================================
Page Header
========================================================================== */
@@ -2340,20 +2298,22 @@ textarea.form-input {
width: 280px;
}
.sidebar.mobile-open.collapsed .logo-text,
.sidebar.mobile-open.collapsed .nav-link span,
.sidebar.mobile-open.collapsed .nav-item span,
.sidebar.mobile-open.collapsed .nav-chevron,
.sidebar.mobile-open.collapsed .notification-badge,
.sidebar.mobile-open.collapsed .nav-divider,
.sidebar.mobile-open.collapsed .nav-section,
.sidebar.mobile-open.collapsed .user-details,
.sidebar.mobile-open.collapsed .user-menu,
.sidebar.mobile-open.collapsed .nav-divider {
.sidebar.mobile-open.collapsed .sidebar-footer {
display: flex;
}
.sidebar.mobile-open.collapsed .sidebar-logo {
.sidebar.mobile-open.collapsed .sidebar-brand {
justify-content: flex-start;
}
.sidebar.mobile-open.collapsed .nav-link {
.sidebar.mobile-open.collapsed .nav-item {
justify-content: flex-start;
padding: 0.65rem 1.25rem;
}
@@ -2362,31 +2322,15 @@ textarea.form-input {
justify-content: flex-start;
}
.main-content {
.main-area {
margin-left: 0 !important;
}
.mobile-toggle {
display: block;
}
.mobile-overlay {
display: none;
position: fixed;
inset: 0;
background: rgba(0,0,0,0.5);
z-index: 99;
}
.mobile-overlay.active {
display: block;
}
.content-area {
.page-content {
padding: 1rem;
}
.top-bar {
.topbar {
padding: 0 1rem;
}
@@ -2414,7 +2358,7 @@ textarea.form-input {
display: none;
}
.nav-submenu {
.nav-sublist {
background: rgba(0,0,0,0.1);
}
}
@@ -2481,11 +2425,11 @@ textarea.form-input {
========================================================================== */
@media print {
.sidebar, .top-bar {
.sidebar, .topbar {
display: none;
}
.main-content {
.main-area {
margin-left: 0;
}
}
@@ -2780,7 +2724,7 @@ textarea.form-input {
}
/* Sidebar accordion */
.nav-item-accordion .nav-link {
.nav-item-accordion .nav-item-toggle {
display: flex;
align-items: center;
gap: 0.5rem;
@@ -2797,20 +2741,13 @@ textarea.form-input {
transform: rotate(90deg);
}
.nav-submenu {
.nav-sublist {
max-height: 0;
overflow: hidden;
transition: max-height 0.25s ease;
background: rgba(0,0,0,0.15);
}
.nav-submenu-loading {
padding: 0.5rem 1rem;
font-size: 0.78rem;
color: var(--text-muted);
text-align: center;
}
.nav-sub-item {
display: flex;
align-items: center;
@@ -3330,7 +3267,7 @@ input[type="range"]::-moz-range-track {
display: block;
}
.notif-dropdown-header {
.notif-header {
display: flex;
align-items: center;
justify-content: space-between;
@@ -3338,11 +3275,9 @@ input[type="range"]::-moz-range-track {
border-bottom: 1px solid var(--border-color);
}
.notif-dropdown-body {
.notif-list {
max-height: 360px;
overflow-y: auto;
}
.notif-dropdown-footer {
border-top: 1px solid var(--border-color);
}