/* ============================================================
   2. SIDEBAR & NAVIGATION (ADMIN, GURU, SISWA)
   ============================================================ */
.sidebar { 
    width: 260px; 
    background: var(--bg-surface); 
    border-right: 1px solid var(--border-color); 
    display: flex; 
    flex-direction: column; 
    position: fixed; 
    top: 0; 
    bottom: 0; 
    left: 0; 
    z-index: 1000; 
    transition: transform 0.3s ease; 
}

.sidebar-brand { 
    padding: 24px 20px; 
    display: flex; 
    align-items: center; 
    gap: 12px; 
    border-bottom: 1px solid #f1f5f9; 
}

.sidebar-brand img { 
    width: 42px; 
    height: 42px; 
    border-radius: 50%; 
    background: #fff; 
    padding: 2px; 
    border: 1.5px solid var(--border-color); 
    object-fit: cover; 
}

.sidebar-brand h3 { 
    margin: 0; 
    font-size: 16px; 
    font-weight: 800; 
    color: var(--text-main); 
    line-height: 1.2; 
}

.sidebar-brand span { 
    font-size: 12px; 
    color: var(--text-muted); 
    font-weight: 500; 
}

.sidebar-menu { 
    padding: 20px 15px; 
    display: flex; 
    flex-direction: column; 
    gap: 6px; 
    flex: 1; 
    overflow-y: auto; 
}

.sidebar-menu::-webkit-scrollbar { 
    width: 4px; 
}

.sidebar-menu::-webkit-scrollbar-thumb { 
    background: #cbd5e1; 
    border-radius: 4px; 
}

.sidebar-nav-btn { 
    background: transparent; 
    border: none; 
    width: 100%; 
    text-align: left; 
    padding: 12px 16px; 
    border-radius: var(--radius-md); 
    font-size: 14px; 
    font-weight: 600; 
    color: var(--text-muted); 
    cursor: pointer; 
    transition: all 0.2s; 
    display: flex; 
    align-items: center; 
    gap: 12px; 
    margin: 0 !important; 
}

.sidebar-nav-btn svg, 
.sidebar-nav-btn img, 
.sidebar-nav-btn .nav-icon { 
    width: 22px !important; 
    height: 22px !important; 
    flex-shrink: 0; 
}

.sidebar-nav-btn:hover { 
    background: var(--bg-body); 
    color: var(--primary); 
}

.sidebar-nav-btn.active { 
    background: var(--primary-light); 
    color: var(--primary); 
    font-weight: 700; 
}

.sidebar-nav-btn.active .nav-icon, 
.sidebar-nav-btn:hover .nav-icon { 
    stroke: var(--primary) !important; 
}

.sidebar-footer { 
    padding: 20px; 
    border-top: 1px solid #f1f5f9; 
}

.btn-logout-sidebar { 
    width: 100%; 
    background: var(--danger-light) !important; 
    color: var(--danger) !important; 
    border-radius: var(--radius-md) !important; 
    padding: 12px !important; 
    font-size: 14px !important; 
    font-weight: 700 !important; 
    border: none; 
    cursor: pointer; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    transition: 0.2s;
}

.btn-logout-sidebar:hover { 
    background: #fecaca !important; 
}

/* ============================================================
   3. MAIN CONTENT & STICKY HEADER
   ============================================================ */
.main-content { 
    flex: 1; 
    margin-left: 260px; 
    display: flex; 
    flex-direction: column; 
    min-width: 0; 
}

.top-header { 
    background: white; 
    height: 70px; 
    border-bottom: 1px solid var(--border-color); 
    display: flex; 
    align-items: center; 
    justify-content: space-between; 
    padding: 0 30px; 
    position: sticky; 
    top: 0; 
    z-index: 900; 
}

.hamburger-btn { 
    background: var(--bg-body) !important; 
    border: 1px solid var(--border-color) !important; 
    color: var(--text-main) !important; 
    width: 40px !important; 
    height: 40px !important; 
    border-radius: 10px !important; 
    display: none; 
    align-items: center; 
    justify-content: center; 
    font-size: 18px; 
    cursor: pointer; 
}

.top-header-title { 
    font-size: 18px; 
    font-weight: 700; 
    color: var(--text-main); 
    margin: 0; 
}

.container { 
    max-width: 1150px; 
    margin: 0 auto; 
    padding: 30px; 
    width: 100%; 
    box-sizing: border-box; 
}

.sidebar-overlay { 
    position: fixed; 
    top: 0; left: 0; right: 0; bottom: 0; 
    background: rgba(15, 23, 42, 0.5); 
    z-index: 990; 
    display: none; 
    backdrop-filter: blur(2px); 
}

.sidebar-overlay.show { 
    display: block; 
}

/* ============================================================
   4. LAYOUT SECTIONS & CARDS (ADMIN, GURU, SISWA)
   ============================================================ */
.card, 
.admin-section, 
.guru-section, 
.siswa-section { 
    background: white; 
    padding: 32px; 
    border-radius: var(--radius-lg); 
    box-shadow: var(--shadow-sm); 
    margin-bottom: 25px; 
    border: 1px solid #f1f5f9; 
    box-sizing: border-box; 
}

#menu-welcome.admin-section,
#menu-welcome.guru-section,
#menu-welcome.siswa-section { 
    background: transparent; 
    padding: 0; 
    border: none; 
    box-shadow: none; 
}

.section-header { 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    margin-bottom: 25px; 
    flex-wrap: wrap; 
    gap: 15px; 
}

.section-header h2 { 
    margin: 0; 
    font-size: 24px; 
    font-weight: 800; 
    color: var(--text-main); 
    display: flex; 
    align-items: center; 
    gap: 10px; 
}

.section-header p { 
    margin: 4px 0 0 0; 
    color: var(--text-muted); 
    font-size: 14px; 
}

.header-count-badge { 
    font-size: 12px; 
    font-weight: 700; 
    background: var(--primary-light); 
    color: var(--primary); 
    padding: 4px 12px; 
    border-radius: 50px; 
    border: 1px solid var(--primary-soft2); 
}

/* Sub Tab Navigation */
.sub-tab-container { 
    display: flex; 
    gap: 10px; 
    margin-bottom: 25px; 
    background: var(--border-color); 
    padding: 5px; 
    border-radius: var(--radius-md); 
    width: fit-content; 
    max-width: 100%; 
    overflow-x: auto; 
}

.sub-tab-btn { 
    background: transparent; 
    border: none; 
    padding: 10px 20px; 
    font-size: 14px; 
    font-weight: 700; 
    color: var(--text-muted); 
    border-radius: 10px; 
    cursor: pointer; 
    white-space: nowrap; 
    width: auto !important; 
    margin: 0 !important; 
}

.sub-tab-btn.active { 
    background: white; 
    color: var(--primary); 
    box-shadow: 0 2px 8px rgba(0,0,0,0.05) !important; 
}

/* Lencana jumlah pada menu sidebar */
.nav-badge { margin-left: auto; min-width: 20px; padding: 2px 7px; border-radius: 20px; background: var(--danger); color: #fff; font-size: 11px; font-weight: 800; text-align: center; line-height: 1.4; }
