:root {
    --sidebar-width: 260px;
    --header-height: 60px;
}
.dashboard-layout { display: flex; min-height: 100vh; }
.sidebar {
    width: var(--sidebar-width);
    background-color: #2c3e50; color: #ecf0f1;
    display: flex; flex-direction: column;
    position: fixed; top: 0; left: 0; height: 100%;
    z-index: 1000; transition: transform 0.3s ease-in-out;
}
.sidebar-header { padding: 1.5rem 1rem; text-align: center; border-bottom: 1px solid #34495e; }
.sidebar-header h3 { margin: 0; }
.sidebar-nav ul { list-style: none; padding: 0; margin: 1rem 0; }
.sidebar-nav li a { display: block; padding: 1rem 1.5rem; color: #ecf0f1; text-decoration: none; transition: 0.2s; }
.sidebar-nav li a:hover { background-color: #34495e; padding-left: 1.8rem; }
.sidebar-nav li.active a { background-color: var(--primary-color); }
.main-content { flex-grow: 1; margin-left: var(--sidebar-width); display: flex; flex-direction: column; }
.main-header {
    height: var(--header-height); background-color: #fff;
    display: flex; align-items: center; padding: 0 2rem;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    position: sticky; top: 0; z-index: 900;
}
.main-header h1 { margin: 0; font-size: 1.5rem; }
.content-wrapper { padding: 2rem; background-color: var(--light-gray-color); flex-grow: 1; }
.menu-toggle { display: none; font-size: 1.5rem; background: none; border: none; cursor: pointer; margin-right: 1rem; }

@media (max-width: 992px) {
    .sidebar { transform: translateX(-100%); }
    .sidebar.is-open { transform: translateX(0); }
    .main-content { margin-left: 0; width: 100%; }
    .menu-toggle { display: block; }
}