:root {
    --nav-width: 250px;
    --nav-min-width: 180px;
    --nav-max-width: 500px;

    --indent-1: 35px;
    --indent-2: 45px;
    --indent-3: 60px;
    --indent-4: 75px;

    --nav-bg: #2c3e50;
    --nav-bg-dark: #1a252f;
    --nav-text: #bdc3c7;
    --nav-text-hover: #3498db;
    --nav-text-active: #ffffff;
    --nav-border: rgba(255,255,255,0.08);
    --nav-hover-bg: rgba(52, 152, 219, 0.18);
    --nav-active-bg: #3498db;
    --nav-active-bar: #2980b9;
}

/* Reset */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: Arial, sans-serif;
    height: 100vh;
    overflow: hidden;
}

/* Sidebar */
.sidenav {
    width: var(--nav-width);
    min-width: var(--nav-min-width);
    max-width: var(--nav-max-width);
    height: 100vh;
    background: linear-gradient(180deg, var(--nav-bg) 0%, var(--nav-bg-dark) 100%);
    position: fixed;
    left: 0;
    top: 0;
    z-index: 1000;
    overflow-y: auto;
    box-shadow: 2px 0 10px rgba(0,0,0,0.3);
    resize: horizontal;
}

.sidenav h2 {
    padding: 25px 20px;
    color: #ecf0f1;
    font-size: 1.3em;
    border-bottom: 1px solid #34495e;
}

.sidenav ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.sidenav li {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid var(--nav-border);
}

.sidenav a {
    display: block;
    color: var(--nav-text);
    text-decoration: none;
    transition: background 0.25s ease, color 0.25s ease;
    font-weight: 500;
    position: relative;
}

/* Top-level menu */
.sidenav > ul > li > a {
    padding: 12px 25px;
    font-weight: 600;
}

.sidenav > ul > li > a:hover {
    background: var(--nav-hover-bg);
    color: var(--nav-text-hover);
}

.sidenav > ul > li > a.active {
    background: var(--nav-active-bg);
    color: var(--nav-text-active);
}

.sidenav > ul > li > a.active::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 4px;
    background: var(--nav-active-bar);
}

/* Submenus */
.sidenav .submenu1,
.sidenav .submenu2,
.sidenav .submenu2H,
.sidenav .submenu3 {
    list-style: none;
    margin: 0;
    padding: 0;
    display: none;
}

.sidenav .submenu1.open,
.sidenav .submenu2.open,
.sidenav .submenu2H.open,
.sidenav .submenu3.open {
    display: block;
}

.sidenav .submenu1 li,
.sidenav .submenu2 li,
.sidenav .submenu2H li,
.sidenav .submenu3 li {
    border-bottom: none;
}

/* Submenu indentation */
.sidenav .submenu1 a {
    padding: 4px 25px 4px var(--indent-2);
    font-weight: 500;
	font-size: 0.93em;
	line-height: 1.2;
}

.sidenav .submenu2 a,
.sidenav .submenu2H a {
    padding: 4px 25px 4px var(--indent-3);
    font-weight: 500;
	font-size: 0.88em;
	line-height: 1.1;
}

.sidenav .submenu3 a {
    padding: 3px 25px 3px var(--indent-4);
    font-weight: 500;
	font-size: 0.84em;
	line-height: 1.0;
}

.sidenav .submenu1 a:hover,
.sidenav .submenu2 a:hover,
.sidenav .submenu2H a:hover,
.sidenav .submenu3 a:hover {
    background: var(--nav-hover-bg);
    color: var(--nav-text-hover);
}

/* Expandable items: arrow on LEFT */
.sidenav a.has-sub,
.sidenav .checklists-toggle {
    position: relative;
    padding-left: var(--indent-1) !important;
    padding-right: 25px !important;
}

.sidenav a.has-sub::after,
.sidenav .checklists-toggle::after {
    content: none !important;
}

.sidenav a.has-sub::before,
.sidenav .checklists-toggle::before {
    content: "►";
    position: absolute;
    left: 12px !important;
    right: auto !important;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.8em;
    color: inherit;
}

.sidenav a.has-sub.open::before,
.sidenav .checklists-toggle.open::before {
    content: "▼";
}

/* Nested expandable items */
.sidenav .submenu1 a.has-sub {
    padding-left: var(--indent-2) !important;
}

.sidenav .submenu2 a.has-sub,
.sidenav .submenu2H a.has-sub {
    padding-left: var(--indent-3) !important;
}

.sidenav .submenu3 a.has-sub {
    padding-left: var(--indent-4) !important;
}

/* Layout */
.content-wrapper {
    margin-left: var(--nav-width);
    height: 100vh;
    overflow: hidden;
}

#content-frame {
    width: 100%;
    height: 100%;
    border: none;
    background: white;
}

/* Resizer */
.nav-resizer {
    position: absolute;
    top: 0;
    right: 0;
    width: 8px;
    height: 100%;
    cursor: ew-resize;
    z-index: 1100;
    background: transparent;
}

.nav-resizer:hover {
    background: rgba(255,255,255,0.08);
}

/* Mobile */
.menu-toggle {
    display: none;
    position: fixed;
    top: 15px;
    left: 15px;
    z-index: 1001;
    background: #3498db;
    color: white;
    border: none;
    width: 50px;
    height: 50px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 18px;
}

@media (max-width: 768px) {
    .sidenav {
        width: 0;
        min-width: 0;
        max-width: none;
        overflow-x: hidden;
        resize: none;
    }

    .content-wrapper {
        margin-left: 0;
    }

    .menu-toggle {
        display: block;
    }
}