﻿/* ╔══════════════════════════════════════════════════════════════╗
   ║  MONOCHROME — Sidebar Menu                                  ║
   ║  Black + White · Angular Geometry                           ║
   ║  Davivienda / Datasoft BPM · Professional Premium           ║
   ╚══════════════════════════════════════════════════════════════╝ */

:root {
    --sb-collapsed: 64px;
    --sb-expanded: 280px;
    --sb-accent: #e0e0e0;
    --sb-accent-bright: #ffffff;
    --sb-accent-dim: #999999;
    --sb-accent-dark: #555555;
    --sb-white: #ffffff;
    --sb-white-soft: rgba(255,255,255,0.90);
    --sb-white-medium: rgba(255,255,255,0.70);
    --sb-white-dim: rgba(255,255,255,0.45);
    --sb-white-glass: rgba(255,255,255,0.08);
    --sb-white-glass-hover: rgba(255,255,255,0.14);
    --sb-white-glass-active: rgba(255,255,255,0.20);
    --sb-black-deep: #0a0a0a;
    --sb-shadow: 0 8px 24px rgba(0,0,0,0.35), 0 0 0 1px rgba(0,0,0,0.15);
    --sb-transition: 0.15s cubic-bezier(0.2, 0, 0, 1);
    --sb-transition-slow: 0.35s cubic-bezier(0.2, 0, 0, 1);
    --sb-font: 'Inter', system-ui, -apple-system, sans-serif;
    --sb-mono: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace;
}

/* ═══════════════════════════════════════════════════════════════
   SIDEBAR SHELL — Black + White Angular
   ═══════════════════════════════════════════════════════════════ */

.sidebar-menu {
    font-family: var(--sb-font);
    position: fixed;
    top: 0; left: 0;
    width: var(--sb-collapsed);
    height: 100vh; height: 100dvh;
    z-index: 10;
    background:
        /* Franja blanca angular superior */
        linear-gradient(155deg, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0.06) 10%, transparent 10.5%),
        /* Franja blanca angular inferior */
        linear-gradient(155deg, transparent 88%, rgba(255,255,255,0.05) 88.5%, rgba(255,255,255,0.05) 100%),
        /* Bloque blanco geométrico diagonal */
        linear-gradient(-15deg, transparent 45%, rgba(255,255,255,0.04) 46%, rgba(255,255,255,0.04) 54%, transparent 55%),
        /* Bloque blanco segundo */
        linear-gradient(75deg, transparent 60%, rgba(255,255,255,0.03) 61%, rgba(255,255,255,0.03) 75%, transparent 76%),
        /* Base negro monocromático */
        linear-gradient(180deg, #1a1a1a 0%, #141414 35%, #0d0d0d 65%, #000000 100%);
    border-right: none;
    box-shadow:
        1px 0 0 rgba(255,255,255,0.06),
        4px 0 24px rgba(0,0,0,0.4),
        0 0 0 1px rgba(0,0,0,0.15);
    display: flex; flex-direction: column;
    overflow: hidden;
    transition: width var(--sb-transition-slow), box-shadow var(--sb-transition-slow);

}

/* Right-edge white glow strip */
.sidebar-menu::after {
    content: '';
    position: absolute; top: 0; right: 0;
    width: 1px; height: 100%;
    background: linear-gradient(
        180deg,
        transparent 0%,
        rgba(255,255,255,0.35) 15%,
        rgba(255,255,255,0.15) 30%,
        transparent 40%, transparent 60%,
        rgba(255,255,255,0.15) 70%,
        rgba(255,255,255,0.35) 85%,
        transparent 100%
    );
    opacity: 0.6; pointer-events: none;
}

/* Corner accent marker */
.sidebar-menu::before {
    content: '';
    position: absolute; top: 0; right: 0;
    width: 10px; height: 10px;
    background: linear-gradient(135deg, transparent 45%, rgba(255,255,255,0.5) 45%, rgba(255,255,255,0.7) 55%, transparent 55%);
    opacity: 0.7; pointer-events: none; z-index: 2;
}

.sidebar-menu:hover,
.sidebar-menu:focus-within {
    width: var(--sb-expanded);
    box-shadow: var(--sb-shadow), 0 0 40px rgba(255,255,255,0.05);
}

/* White light sweep (visible only on expanded) */
.sidebar-menu:hover::after,
.sidebar-menu:focus-within::after {
    opacity: 0.8;
}

/* ═══════════════════════════════════════════════════════════════
   INNER WRAPPER
   ═══════════════════════════════════════════════════════════════ */

.sidebar-inner {
    display: flex; flex-direction: column;
    height: 100%;
    width: var(--sb-expanded);
    min-width: var(--sb-expanded);
    position: relative; z-index: 1;
}

/* ═══════════════════════════════════════════════════════════════
   LOGO
   ═══════════════════════════════════════════════════════════════ */

.sidebar-logo {
    display: flex; align-items: center;
    height: 56px; min-height: 56px;
    padding: 0 14px;
    gap: 10px;
    position: relative;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

.sidebar-logo::after {
    content: '';
    position: absolute; bottom: -1px; left: 14px;
    width: 0; height: 2px;
    background: var(--sb-white);
    transition: width var(--sb-transition-slow);
    z-index: 2;
}

.sidebar-menu:hover .sidebar-logo::after,
.sidebar-menu:focus-within .sidebar-logo::after {
    width: 36px;
}

.sidebar-logo-icon {
    width: 34px; height: 34px; min-width: 34px;
    border-radius: 2px;
    object-fit: contain; flex-shrink: 0;
    filter:
        drop-shadow(0 0 8px rgba(255,255,255,0.4))
        drop-shadow(0 2px 4px rgba(0,0,0,0.5));
    transition: var(--sb-transition);
}

.sidebar-menu:hover .sidebar-logo-icon,
.sidebar-menu:focus-within .sidebar-logo-icon {
    filter:
        drop-shadow(0 0 14px rgba(255,255,255,0.6))
        drop-shadow(0 2px 6px rgba(0,0,0,0.6));
}

.sidebar-logo-text {
    font-size: 13px; font-weight: 700;
    color: var(--sb-white);
    white-space: nowrap;
    letter-spacing: 0.04em;
    opacity: 0;
    text-shadow: 0 1px 2px rgba(0,0,0,0.3);
    transition: var(--sb-transition);
}

.sidebar-menu:hover .sidebar-logo-text,
.sidebar-menu:focus-within .sidebar-logo-text {
    opacity: 1;
}

/* ═══════════════════════════════════════════════════════════════
   SEARCH
   ═══════════════════════════════════════════════════════════════ */

.sidebar-search-wrapper {
    padding: 8px 10px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    display: flex; flex-direction: column; gap: 6px;
    position: relative;
}

.sidebar-search-collapsed-icon {
    width: 44px; height: 32px;
    margin: 0 auto;
    display: flex; align-items: center; justify-content: center;
    color: var(--sb-white-dim);
    font-size: 16px;
    cursor: pointer;
    border-radius: 2px;
    background: transparent;
    transition: var(--sb-transition);
}

.sidebar-search-collapsed-icon:hover {
    color: var(--sb-white);
    background: var(--sb-white-glass);
}

.sidebar-menu:hover .sidebar-search-collapsed-icon,
.sidebar-menu:focus-within .sidebar-search-collapsed-icon {
    opacity: 0; pointer-events: none; position: absolute;
}

.sidebar-search-input {
    width: 100%;
    padding: 9px 12px 9px 34px;
    border-radius: 2px;
    border: none;
    background: var(--sb-white-glass);
    color: var(--sb-white);
    font-size: 12px; font-family: var(--sb-font);
    outline: none;
    opacity: 0; pointer-events: none;
    position: relative;
    transition: var(--sb-transition);
    box-shadow: inset 0 1px 0 rgba(0,0,0,0.2);
}

.sidebar-menu:hover .sidebar-search-input,
.sidebar-menu:focus-within .sidebar-search-input {
    opacity: 1; pointer-events: auto;
}

.sidebar-search-input::placeholder {
    color: var(--sb-white-dim);
    font-family: var(--sb-mono);
    font-size: 10px;
    letter-spacing: 0.03em;
}

.sidebar-search-input:focus {
    background: var(--sb-white-glass-hover);
    box-shadow:
        inset 0 1px 0 rgba(0,0,0,0.25),
        0 0 0 2px rgba(255,255,255,0.08);
}

/* ═══════════════════════════════════════════════════════════════
   FAVORITES TOGGLE
   ═══════════════════════════════════════════════════════════════ */

.sidebar-fav-toggle {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    width: 44px; height: 30px;
    margin: 0 auto;
    padding: 0 8px;
    border-radius: 2px;
    border: none;
    background: var(--sb-white-glass);
    color: var(--sb-white-soft);
    font-size: 10px; font-weight: 600;
    cursor: pointer;
    transition: var(--sb-transition);
    white-space: nowrap;
    overflow: hidden;
    min-height: 30px;
    letter-spacing: 0.03em;
    box-shadow: inset 0 1px 0 rgba(0,0,0,0.2);
}

.sidebar-menu:hover .sidebar-fav-toggle,
.sidebar-menu:focus-within .sidebar-fav-toggle {
    width: 100%;
    padding: 6px 10px;
    justify-content: flex-start;
}

.sidebar-fav-toggle span {
    display: none;
    opacity: 0;
    transition: var(--sb-transition);
    text-transform: uppercase;
    font-size: 9px;
    letter-spacing: 0.06em;
}

.sidebar-menu:hover .sidebar-fav-toggle span,
.sidebar-menu:focus-within .sidebar-fav-toggle span {
    display: inline;
    opacity: 1;
}

.sidebar-fav-toggle i { font-size: 13px; min-width: 14px; text-align: center; flex-shrink: 0; }
.sidebar-menu:hover .sidebar-fav-toggle i,
.sidebar-menu:focus-within .sidebar-fav-toggle i { font-size: 10px; }

.sidebar-fav-toggle:hover {
    background: var(--sb-white-glass-hover);
    color: var(--sb-white);
}

.sidebar-fav-toggle.active {
    background: var(--sb-white-glass-active);
    color: var(--sb-white);
    box-shadow: inset 0 1px 0 rgba(0,0,0,0.25), 0 0 0 1px rgba(255,255,255,0.1);
}

/* ═══════════════════════════════════════════════════════════════
   NAVIGATION CONTAINER
   ═══════════════════════════════════════════════════════════════ */

.sidebar-nav {
    flex: 1;
    overflow-y: auto; overflow-x: hidden;
    padding: 6px 0;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.15) transparent;
}

.sidebar-nav::-webkit-scrollbar { width: 3px; }
.sidebar-nav::-webkit-scrollbar-track { background: transparent; }
.sidebar-nav::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.15); border-radius: 0; }
.sidebar-nav::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.3); }

/* ═══════════════════════════════════════════════════════════════
   CATEGORY HEADERS
   ═══════════════════════════════════════════════════════════════ */

.sidebar-category { margin-bottom: 2px; }

.sidebar-category-header {
    display: flex; align-items: center;
    height: 32px; padding: 0 18px; gap: 10px;
    font-size: 9px; font-weight: 700;
    color: var(--sb-white-dim);
    text-transform: uppercase;
    letter-spacing: 0.15em;
    white-space: nowrap;
    font-family: var(--sb-mono);
}

.sidebar-category-header-text {
    opacity: 0;
    transition: var(--sb-transition);
}

.sidebar-menu:hover .sidebar-category-header-text,
.sidebar-menu:focus-within .sidebar-category-header-text {
    opacity: 0.7;
}

.sidebar-category-header-icon {
    width: 18px; min-width: 18px;
    text-align: center; font-size: 12px;
    color: var(--sb-white); opacity: 0.6;
}

.sidebar-menu:hover .sidebar-category-header-icon,
.sidebar-menu:focus-within .sidebar-category-header-icon {
    opacity: 1;
}

/* ═══════════════════════════════════════════════════════════════
   DIVIDER
   ═══════════════════════════════════════════════════════════════ */

.sidebar-divider {
    height: 1px; margin: 0 14px;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(255,255,255,0.08) 20%,
        rgba(255,255,255,0.20) 50%,
        rgba(255,255,255,0.08) 80%,
        transparent 100%
    );
    opacity: 0;
    transition: var(--sb-transition);
}

.sidebar-menu:hover .sidebar-divider,
.sidebar-menu:focus-within .sidebar-divider {
    opacity: 1;
}

/* ═══════════════════════════════════════════════════════════════
   PARENT — Level 1 accordion header
   ═══════════════════════════════════════════════════════════════ */

.sidebar-parent {
    display: flex; align-items: center;
    height: 40px; padding: 0 14px; gap: 10px;
    cursor: pointer; user-select: none;
    color: var(--sb-white-soft);
    font-size: 12px; font-weight: 600;
    letter-spacing: 0.02em;
    border-left: 3px solid transparent;
    position: relative; white-space: nowrap;
    transition: var(--sb-transition);
    margin: 1px 0;
    text-shadow: 0 1px 2px rgba(0,0,0,0.2);
}

.sidebar-parent::before {
    content: '';
    position: absolute; left: 0; top: 0; bottom: 0;
    width: 1px;
    background: rgba(255,255,255,0.06);
    transition: var(--sb-transition);
}

.sidebar-parent:hover {
    background: var(--sb-white-glass);
    border-left-color: var(--sb-white-dim);
}

.sidebar-parent:hover::before {
    background: var(--sb-white-dim);
}

.sidebar-parent:active {
    background: var(--sb-white-glass-hover);
}

.sidebar-parent.expanded {
    border-left-color: var(--sb-white);
    background: var(--sb-white-glass-hover);
    color: var(--sb-white);
}

.sidebar-parent.expanded::before {
    background: var(--sb-white-soft);
}

.sidebar-parent.expanded::after {
    content: '';
    position: absolute; left: 1px; top: 50%;
    transform: translateY(-50%);
    width: 5px; height: 5px;
    background: var(--sb-white);
    box-shadow: 0 0 6px rgba(255,255,255,0.7);

}

.sidebar-parent-icon {
    width: 18px; min-width: 18px; text-align: center;
    font-size: 13px; color: var(--sb-white);
    opacity: 0.75;
    transition: var(--sb-transition);
}

.sidebar-parent:hover .sidebar-parent-icon,
.sidebar-parent.expanded .sidebar-parent-icon {
    opacity: 1;
}

.sidebar-parent-label {
    flex: 1; overflow: hidden; text-overflow: ellipsis;
    opacity: 0;
    transition: var(--sb-transition);
}

.sidebar-menu:hover .sidebar-parent-label,
.sidebar-menu:focus-within .sidebar-parent-label {
    opacity: 1;
}

.sidebar-parent-chevron {
    width: 14px; min-width: 14px; height: 14px;
    display: flex; align-items: center; justify-content: center;
    font-size: 8px; color: var(--sb-white-dim);
    transition: var(--sb-transition);
    opacity: 0;
}

.sidebar-menu:hover .sidebar-parent-chevron,
.sidebar-menu:focus-within .sidebar-parent-chevron {
    opacity: 1;
}

.sidebar-parent.expanded .sidebar-parent-chevron {
    transform: rotate(90deg);
    color: var(--sb-white);
}

/* ═══════════════════════════════════════════════════════════════
   CHILDREN PANEL (level 1)
   ═══════════════════════════════════════════════════════════════ */

.sidebar-children {
    overflow: hidden;
    max-height: 0;
    transition: max-height var(--sb-transition-slow);
    position: relative;
}

.sidebar-children.expanded {
    max-height: 4000px;
}

.sidebar-children::before {
    content: '';
    position: absolute; left: 14px; top: 0; bottom: 0;
    width: 1px;
    background: rgba(255,255,255,0.08);
    opacity: 0;
    transition: var(--sb-transition);
}

.sidebar-menu:hover .sidebar-children::before,
.sidebar-menu:focus-within .sidebar-children::before {
    opacity: 1;
}

/* ═══════════════════════════════════════════════════════════════
   SUB-PARENT — Level 2 nested accordion
   ═══════════════════════════════════════════════════════════════ */

.sidebar-sub-parent {
    display: flex; align-items: center;
    height: 34px; padding: 0 14px 0 32px; gap: 8px;
    cursor: pointer; user-select: none;
    color: var(--sb-white-medium);
    font-size: 11.5px; font-weight: 500;
    letter-spacing: 0.02em;
    border-left: 2px solid transparent;
    position: relative; white-space: nowrap;
    transition: var(--sb-transition);
    margin: 1px 0;
}

.sidebar-sub-parent:hover {
    background: var(--sb-white-glass);
    color: var(--sb-white);
    border-left-color: var(--sb-white-dim);
}

.sidebar-sub-parent:active {
    background: var(--sb-white-glass-hover);
}

.sidebar-sub-parent.expanded {
    border-left-color: var(--sb-white);
    background: var(--sb-white-glass-hover);
    color: var(--sb-white);
}

.sidebar-sub-parent-icon {
    width: 14px; min-width: 14px; text-align: center;
    font-size: 5px; color: var(--sb-white-dim);
    transition: var(--sb-transition);
}

.sidebar-sub-parent:hover .sidebar-sub-parent-icon,
.sidebar-sub-parent.expanded .sidebar-sub-parent-icon {
    color: var(--sb-white);
}

.sidebar-sub-parent-label {
    flex: 1; overflow: hidden; text-overflow: ellipsis;
    opacity: 0;
    transition: var(--sb-transition);
}

.sidebar-menu:hover .sidebar-sub-parent-label,
.sidebar-menu:focus-within .sidebar-sub-parent-label {
    opacity: 1;
}

.sidebar-sub-parent-chevron {
    width: 12px; min-width: 12px; height: 12px;
    display: flex; align-items: center; justify-content: center;
    font-size: 7px; color: var(--sb-white-dim);
    transition: var(--sb-transition);
    opacity: 0;
}

.sidebar-menu:hover .sidebar-sub-parent-chevron,
.sidebar-menu:focus-within .sidebar-sub-parent-chevron {
    opacity: 1;
}

.sidebar-sub-parent.expanded .sidebar-sub-parent-chevron {
    transform: rotate(90deg);
    color: var(--sb-white);
}

/* ═══════════════════════════════════════════════════════════════
   SUB-CHILDREN PANEL (level 2)
   ═══════════════════════════════════════════════════════════════ */

.sidebar-sub-children {
    overflow: hidden;
    max-height: 0;
    transition: max-height var(--sb-transition-slow);
    position: relative;
}

.sidebar-sub-children.expanded {
    max-height: 3000px;
}

.sidebar-sub-children::before {
    content: '';
    position: absolute; left: 32px; top: 0; bottom: 0;
    width: 1px;
    background: rgba(255,255,255,0.08);
    opacity: 0;
    transition: var(--sb-transition);
}

.sidebar-menu:hover .sidebar-sub-children::before,
.sidebar-menu:focus-within .sidebar-sub-children::before {
    opacity: 1;
}

/* ═══════════════════════════════════════════════════════════════
   SUB-SUB-PARENT — Level 3 nested accordion
   ═══════════════════════════════════════════════════════════════ */

.sidebar-sub-sub-parent {
    display: flex; align-items: center;
    height: 32px; padding: 0 14px 0 48px; gap: 8px;
    cursor: pointer; user-select: none;
    color: var(--sb-white-medium);
    font-size: 11px; font-weight: 400;
    letter-spacing: 0.01em;
    border-left: 2px solid transparent;
    position: relative; white-space: nowrap;
    transition: var(--sb-transition);
    margin: 1px 0;
}

.sidebar-sub-sub-parent:hover {
    background: var(--sb-white-glass);
    color: var(--sb-white);
    border-left-color: var(--sb-white-dim);
}

.sidebar-sub-sub-parent:active {
    background: var(--sb-white-glass-hover);
}

.sidebar-sub-sub-parent.expanded {
    border-left-color: var(--sb-white);
    background: var(--sb-white-glass-hover);
    color: var(--sb-white);
}

.sidebar-sub-sub-parent-icon {
    width: 12px; min-width: 12px; text-align: center;
    font-size: 4px; color: var(--sb-white-dim);
    transition: var(--sb-transition);
}

.sidebar-sub-sub-parent:hover .sidebar-sub-sub-parent-icon,
.sidebar-sub-sub-parent.expanded .sidebar-sub-sub-parent-icon {
    color: var(--sb-white);
}

.sidebar-sub-sub-parent-label {
    flex: 1; overflow: hidden; text-overflow: ellipsis;
    opacity: 0;
    transition: var(--sb-transition);
}

.sidebar-menu:hover .sidebar-sub-sub-parent-label,
.sidebar-menu:focus-within .sidebar-sub-sub-parent-label {
    opacity: 1;
}

.sidebar-sub-sub-parent-chevron {
    width: 12px; min-width: 12px; height: 12px;
    display: flex; align-items: center; justify-content: center;
    font-size: 7px; color: var(--sb-white-dim);
    transition: var(--sb-transition);
    opacity: 0;
}

.sidebar-menu:hover .sidebar-sub-sub-parent-chevron,
.sidebar-menu:focus-within .sidebar-sub-sub-parent-chevron {
    opacity: 1;
}

.sidebar-sub-sub-parent.expanded .sidebar-sub-sub-parent-chevron {
    transform: rotate(90deg);
    color: var(--sb-white);
}

/* ═══════════════════════════════════════════════════════════════
   SUB-SUB-CHILDREN PANEL (level 3)
   ═══════════════════════════════════════════════════════════════ */

.sidebar-sub-sub-children {
    overflow: hidden;
    max-height: 0;
    transition: max-height var(--sb-transition-slow);
    position: relative;
}

.sidebar-sub-sub-children.expanded {
    max-height: 3000px;
}

.sidebar-sub-sub-children::before {
    content: '';
    position: absolute; left: 48px; top: 0; bottom: 0;
    width: 1px;
    background: rgba(255,255,255,0.08);
    opacity: 0;
    transition: var(--sb-transition);
}

.sidebar-menu:hover .sidebar-sub-sub-children::before,
.sidebar-menu:focus-within .sidebar-sub-sub-children::before {
    opacity: 1;
}

/* ═══════════════════════════════════════════════════════════════
   LEAF — Level 4 terminal item
   ═══════════════════════════════════════════════════════════════ */

.sidebar-leaf {
    display: flex; align-items: center;
    height: 32px; padding: 0 14px 0 48px; gap: 8px;
    cursor: pointer;
    color: var(--sb-white-dim);
    font-size: 11px; font-weight: 400;
    letter-spacing: 0.01em;
    border-left: 2px solid transparent;
    position: relative; white-space: nowrap;
    transition: var(--sb-transition);
    margin: 1px 0;
}

.sidebar-leaf::before {
    content: '';
    position: absolute; left: 35px; top: 50%;
    transform: translateY(-50%);
    width: 4px; height: 4px;
    background: rgba(255,255,255,0.3);
    opacity: 0;
    transition: var(--sb-transition);
}

.sidebar-menu:hover .sidebar-leaf::before,
.sidebar-menu:focus-within .sidebar-leaf::before {
    opacity: 0.5;
}

.sidebar-leaf:hover {
    background: var(--sb-white-glass);
    color: var(--sb-white);
    border-left-color: var(--sb-white-dim);
}

.sidebar-leaf:hover::before {
    background: var(--sb-white);
    opacity: 1;
    box-shadow: 0 0 4px rgba(255,255,255,0.5);
}

.sidebar-leaf:active {
    background: var(--sb-white-glass-hover);
    color: var(--sb-white);
    border-left-color: var(--sb-white);
}

.sidebar-leaf-label {
    flex: 1; overflow: hidden; text-overflow: ellipsis;
    opacity: 0;
    transition: var(--sb-transition);
}

.sidebar-menu:hover .sidebar-leaf-label,
.sidebar-menu:focus-within .sidebar-leaf-label {
    opacity: 1;
}

.sidebar-leaf-fav {
    width: 16px; min-width: 16px; height: 22px;
    display: flex; align-items: center; justify-content: center;
    font-size: 9px; cursor: pointer;
    opacity: 0; transition: var(--sb-transition);
    color: var(--sb-white-dim);
}

.sidebar-leaf:hover .sidebar-leaf-fav {
    opacity: 0.7;
}

.sidebar-leaf-fav:hover {
    background: var(--sb-white-glass);
    opacity: 1;
    color: var(--sb-white);
}

.sidebar-leaf-fav:active {
    transform: scale(0.85);
}

.sidebar-leaf-fav.is-favorite {
    color: #ffd700;
    opacity: 1 !important;
    text-shadow: 0 0 6px rgba(255,215,0,0.5);
}

.sidebar-leaf-fav.is-favorite:hover {
    color: var(--sb-white);
    text-shadow: 0 0 6px rgba(255,255,255,0.5);
}

/* ═══════════════════════════════════════════════════════════════
   EMPTY / ERROR STATES
   ═══════════════════════════════════════════════════════════════ */

.sidebar-empty {
    padding: 20px 16px; text-align: center;
    color: var(--sb-white-dim); font-size: 11px;
    opacity: 0;
    transition: var(--sb-transition);
    letter-spacing: 0.02em;
}

.sidebar-menu:hover .sidebar-empty,
.sidebar-menu:focus-within .sidebar-empty {
    opacity: 0.6;
}

.sidebar-error {
    padding: 20px 16px; text-align: center;
    color: var(--sb-white); font-size: 11px;
    opacity: 0;
    transition: var(--sb-transition);
    letter-spacing: 0.02em;
}

.sidebar-menu:hover .sidebar-error,
.sidebar-menu:focus-within .sidebar-error {
    opacity: 1;
}

/* ═══════════════════════════════════════════════════════════════
   TOOLTIPS (collapsed hover)
   ═══════════════════════════════════════════════════════════════ */

.sidebar-item-tooltip {
    position: absolute;
    left: calc(var(--sb-collapsed) + 8px);
    top: 50%; transform: translateY(-50%);
    background: rgba(30,30,30,0.96);
    color: var(--sb-white);
    padding: 5px 10px;
    border-radius: 2px;
    font-size: 10.5px; font-weight: 500;
    letter-spacing: 0.02em;
    white-space: nowrap;
    pointer-events: none; opacity: 0;
    transition: var(--sb-transition);
    z-index: 1001;
    box-shadow:
        0 4px 16px rgba(0,0,0,0.5),
        0 0 0 1px rgba(0,0,0,0.15),
        0 0 8px rgba(255,255,255,0.06);
    border: none;
    font-family: var(--sb-font);
}

.sidebar-item-tooltip::before {
    content: '';
    position: absolute; left: -4px; top: 50%;
    transform: translateY(-50%);
    width: 0; height: 0;
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
    border-right: 5px solid rgba(30,30,30,0.96);
}

.sidebar-menu:not(:hover) .sidebar-item:hover .sidebar-item-tooltip,
.sidebar-menu:not(:hover) .sidebar-sub-item:hover .sidebar-item-tooltip,
.sidebar-menu:not(:hover) .sidebar-leaf:hover .sidebar-item-tooltip,
.sidebar-menu:not(:hover) .sidebar-parent:hover .sidebar-item-tooltip,
.sidebar-menu:not(:hover) .sidebar-sub-parent:hover .sidebar-item-tooltip,
.sidebar-menu:not(:hover) .sidebar-sub-sub-parent:hover .sidebar-item-tooltip {
    opacity: 1;
}

.sidebar-item,
.sidebar-sub-item {
    color: var(--sb-white);
}

/* ═══════════════════════════════════════════════════════════════
   CONTENT PUSH
   ═══════════════════════════════════════════════════════════════ */

.app-main {
    margin-left: var(--sb-collapsed);
    padding-top: 50px;
    transition: margin-left var(--sb-transition-slow);
    min-height: 100vh;
    position: relative;
    z-index: 1;
}

/* ═══════════════════════════════════════════════════════════════
   MOBILE — Responsive
   ═══════════════════════════════════════════════════════════════ */

@media (max-width: 1024px) {

    .sidebar-menu {
        width: 0;
        box-shadow: none;
        z-index: 40;
    }

    .sidebar-menu.mobile-open {
        width: var(--sb-expanded);
        box-shadow: var(--sb-shadow);
        z-index: 1000;
    }

    .sidebar-menu:hover {
        width: 0;
    }

    .sidebar-menu.mobile-open:hover {
        width: var(--sb-expanded);
    }

    .app-main {
        margin-left: 0 !important;
        padding-top: 50px;
    }

    .sidebar-mobile-toggle {
        display: flex !important;
        position: fixed; top: 8px; left: 8px;
        z-index: 1002;
        width: 38px; height: 38px;
        border-radius: 2px;
        background: var(--sb-white-glass);
        border: none;
        color: var(--sb-white);
        align-items: center; justify-content: center;
        cursor: pointer;
        box-shadow: 0 1px 0 rgba(0,0,0,0.2), 0 2px 6px rgba(0,0,0,0.15);
        transition: var(--sb-transition);
    }

    .sidebar-mobile-toggle:hover {
        background: var(--sb-white-glass-hover);
    }

    .sidebar-mobile-toggle:active {
        background: var(--sb-white-glass-active);
    }

    .sidebar-mobile-overlay {
        position: fixed; inset: 0;
        background: rgba(0, 0, 0, 0.6);
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
        z-index: 999;
        opacity: 0; pointer-events: none;
        transition: opacity var(--sb-transition-slow);
    }

    .sidebar-mobile-overlay.active {
        opacity: 1; pointer-events: auto;
    }

    .sidebar-menu.mobile-open .sidebar-logo-text,
    .sidebar-menu.mobile-open .sidebar-category-header-text,
    .sidebar-menu.mobile-open .sidebar-parent-label,
    .sidebar-menu.mobile-open .sidebar-parent-chevron,
    .sidebar-menu.mobile-open .sidebar-sub-parent-label,
    .sidebar-menu.mobile-open .sidebar-sub-parent-chevron,
    .sidebar-menu.mobile-open .sidebar-sub-sub-parent-label,
    .sidebar-menu.mobile-open .sidebar-sub-sub-parent-chevron,
    .sidebar-menu.mobile-open .sidebar-leaf-label,
    .sidebar-menu.mobile-open .sidebar-leaf::before,
    .sidebar-menu.mobile-open .sidebar-divider,
    .sidebar-menu.mobile-open .sidebar-children::before,
    .sidebar-menu.mobile-open .sidebar-sub-children::before,
    .sidebar-menu.mobile-open .sidebar-sub-sub-children::before,
    .sidebar-menu.mobile-open .sidebar-empty,
    .sidebar-menu.mobile-open .sidebar-error {
        opacity: 1;
    }

    .sidebar-menu.mobile-open .sidebar-search-collapsed-icon {
        opacity: 0; pointer-events: none; position: absolute;
    }

    .sidebar-menu.mobile-open .sidebar-search-input {
        opacity: 1; pointer-events: auto;
    }

    .sidebar-menu.mobile-open .sidebar-fav-toggle {
        width: 100%; padding: 6px 10px; justify-content: flex-start;
    }

    .sidebar-menu.mobile-open .sidebar-fav-toggle span {
        display: inline; opacity: 1;
    }
}

@media (min-width: 1025px) {
    .sidebar-mobile-toggle { display: none !important; }
    .sidebar-mobile-overlay { display: none; }
}


/* ═══════════════════════════════════════════════════════════════
   LIGHT MODE — White/Light sidebar with dark text
   ═══════════════════════════════════════════════════════════════ */

html:not(.dark) .sidebar-menu {
    background: linear-gradient(180deg, #ffffff 0%, #f5f6f8 30%, #eaecf0 65%, #dfe2e6 100%);
    box-shadow: 1px 0 0 rgba(0,0,0,0.06), 4px 0 20px rgba(0,0,0,0.08), 0 0 0 1px rgba(0,0,0,0.04);
}

html:not(.dark) .sidebar-menu:hover,
html:not(.dark) .sidebar-menu:focus-within {
    box-shadow: 4px 0 24px rgba(0,0,0,0.12), 0 0 0 1px rgba(0,0,0,0.04);
}

html:not(.dark) .sidebar-menu::after {
    background: linear-gradient(
        180deg, transparent 0%, rgba(0,0,0,0.06) 15%,
        rgba(0,0,0,0.03) 30%, transparent 40%, transparent 60%,
        rgba(0,0,0,0.03) 70%, rgba(0,0,0,0.06) 85%, transparent 100%);
}

html:not(.dark) .sidebar-menu::before {
    background: linear-gradient(135deg, transparent 45%, rgba(0,0,0,0.12) 45%, rgba(0,0,0,0.18) 55%, transparent 55%);
}

/* ── Logo ── */
html:not(.dark) .sidebar-logo { border-bottom-color: rgba(0,0,0,0.07); }
html:not(.dark) .sidebar-logo-text { color: #2c3e50; text-shadow: none; }
html:not(.dark) .sidebar-logo::after { background: #ed1c24; }
html:not(.dark) .sidebar-logo-icon {
    filter: drop-shadow(0 1px 3px rgba(0,0,0,0.15));
}
html:not(.dark) .sidebar-menu:hover .sidebar-logo-icon,
html:not(.dark) .sidebar-menu:focus-within .sidebar-logo-icon {
    filter: drop-shadow(0 2px 6px rgba(0,0,0,0.2));
}

/* ── Search ── */
html:not(.dark) .sidebar-search-wrapper { border-bottom-color: rgba(0,0,0,0.06); }
html:not(.dark) .sidebar-search-collapsed-icon { color: #7d8c9b; }
html:not(.dark) .sidebar-search-collapsed-icon:hover { color: #2c3e50; background: rgba(0,0,0,0.05); }
html:not(.dark) .sidebar-search-input {
    background: rgba(0,0,0,0.04);
    color: #2c3e50;
    box-shadow: inset 0 1px 0 rgba(0,0,0,0.05);
}
html:not(.dark) .sidebar-search-input::placeholder { color: #94a3b8; }
html:not(.dark) .sidebar-search-input:focus {
    background: rgba(0,0,0,0.07);
    box-shadow: inset 0 1px 0 rgba(0,0,0,0.08), 0 0 0 2px rgba(237,28,36,0.15);
}

/* ── Favorites Toggle ── */
html:not(.dark) .sidebar-fav-toggle {
    background: rgba(0,0,0,0.04); color: #4a5568;
    box-shadow: inset 0 1px 0 rgba(0,0,0,0.04);
}
html:not(.dark) .sidebar-fav-toggle:hover { background: rgba(0,0,0,0.07); color: #2c3e50; }
html:not(.dark) .sidebar-fav-toggle.active {
    background: rgba(237,28,36,0.08); color: #ed1c24;
    box-shadow: inset 0 1px 0 rgba(237,28,36,0.08), 0 0 0 1px rgba(237,28,36,0.1);
}

/* ── Category Headers ── */
html:not(.dark) .sidebar-category-header { color: #718096; }
html:not(.dark) .sidebar-category-header-icon { color: #4a5568; opacity: 0.65; }
html:not(.dark) .sidebar-menu:hover .sidebar-category-header-icon,
html:not(.dark) .sidebar-menu:focus-within .sidebar-category-header-icon { opacity: 0.9; }

/* ── Dividers ── */
html:not(.dark) .sidebar-divider {
    background: linear-gradient(90deg,
        transparent 0%, rgba(0,0,0,0.05) 20%,
        rgba(0,0,0,0.1) 50%, rgba(0,0,0,0.05) 80%, transparent 100%);
}

/* ── Parent (Level 1 accordion) ── */
html:not(.dark) .sidebar-parent { color: #3d4855; text-shadow: none; }
html:not(.dark) .sidebar-parent::before { background: rgba(0,0,0,0.04); }
html:not(.dark) .sidebar-parent:hover { background: rgba(0,0,0,0.04); border-left-color: #94a3b8; }
html:not(.dark) .sidebar-parent:hover::before { background: #94a3b8; }
html:not(.dark) .sidebar-parent:active { background: rgba(0,0,0,0.07); }
html:not(.dark) .sidebar-parent.expanded {
    background: rgba(237,28,36,0.06); color: #ed1c24; border-left-color: #ed1c24;
}
html:not(.dark) .sidebar-parent.expanded::before { background: #ed1c24; }
html:not(.dark) .sidebar-parent.expanded::after {
    background: #ed1c24; box-shadow: 0 0 6px rgba(237,28,36,0.4);
}
html:not(.dark) .sidebar-parent-icon { color: #5a6875; }
html:not(.dark) .sidebar-parent:hover .sidebar-parent-icon,
html:not(.dark) .sidebar-parent.expanded .sidebar-parent-icon { color: #ed1c24; opacity: 1; }
html:not(.dark) .sidebar-parent-chevron { color: #94a3b8; }
html:not(.dark) .sidebar-parent.expanded .sidebar-parent-chevron { color: #ed1c24; }

/* ── Children Panel ── */
html:not(.dark) .sidebar-children::before { background: rgba(0,0,0,0.05); }

/* ── Sub-Parent (Level 2 accordion) ── */
html:not(.dark) .sidebar-sub-parent { color: #4a5568; }
html:not(.dark) .sidebar-sub-parent:hover { background: rgba(0,0,0,0.04); color: #2c3e50; border-left-color: #94a3b8; }
html:not(.dark) .sidebar-sub-parent:active { background: rgba(0,0,0,0.07); }
html:not(.dark) .sidebar-sub-parent.expanded {
    background: rgba(237,28,36,0.06); color: #ed1c24; border-left-color: #ed1c24;
}
html:not(.dark) .sidebar-sub-parent-icon { color: #94a3b8; }
html:not(.dark) .sidebar-sub-parent:hover .sidebar-sub-parent-icon,
html:not(.dark) .sidebar-sub-parent.expanded .sidebar-sub-parent-icon { color: #ed1c24; }
html:not(.dark) .sidebar-sub-parent-chevron { color: #94a3b8; }
html:not(.dark) .sidebar-sub-parent.expanded .sidebar-sub-parent-chevron { color: #ed1c24; }

/* ── Sub-Children Panel ── */
html:not(.dark) .sidebar-sub-children::before { background: rgba(0,0,0,0.05); }

/* ── Sub-Sub-Parent (Level 3 accordion) ── */
html:not(.dark) .sidebar-sub-sub-parent { color: #596673; }
html:not(.dark) .sidebar-sub-sub-parent:hover { background: rgba(0,0,0,0.04); color: #2c3e50; border-left-color: #94a3b8; }
html:not(.dark) .sidebar-sub-sub-parent:active { background: rgba(0,0,0,0.07); }
html:not(.dark) .sidebar-sub-sub-parent.expanded {
    background: rgba(237,28,36,0.06); color: #ed1c24; border-left-color: #ed1c24;
}
html:not(.dark) .sidebar-sub-sub-parent-icon { color: #94a3b8; }
html:not(.dark) .sidebar-sub-sub-parent:hover .sidebar-sub-sub-parent-icon,
html:not(.dark) .sidebar-sub-sub-parent.expanded .sidebar-sub-sub-parent-icon { color: #ed1c24; }
html:not(.dark) .sidebar-sub-sub-parent-chevron { color: #94a3b8; }
html:not(.dark) .sidebar-sub-sub-parent.expanded .sidebar-sub-sub-parent-chevron { color: #ed1c24; }

/* ── Sub-Sub-Children Panel ── */
html:not(.dark) .sidebar-sub-sub-children::before { background: rgba(0,0,0,0.05); }

/* ── Leaf Items (Level 4) ── */
html:not(.dark) .sidebar-item,
html:not(.dark) .sidebar-sub-item,
html:not(.dark) .sidebar-leaf { color: #596673; }
html:not(.dark) .sidebar-leaf::before { background: rgba(0,0,0,0.18); opacity: 0.5 !important; }
html:not(.dark) .sidebar-item:hover,
html:not(.dark) .sidebar-sub-item:hover,
html:not(.dark) .sidebar-leaf:hover {
    background: rgba(0,0,0,0.04); color: #2c3e50; border-left-color: #94a3b8;
}
html:not(.dark) .sidebar-leaf:hover::before { background: #ed1c24; opacity: 1 !important; box-shadow: 0 0 4px rgba(237,28,36,0.3); }
html:not(.dark) .sidebar-leaf:active {
    background: rgba(237,28,36,0.06); color: #ed1c24; border-left-color: #ed1c24;
}

/* ── Favorites Star ── */
html:not(.dark) .sidebar-leaf-fav { color: #a0aec0; }
html:not(.dark) .sidebar-leaf-fav:hover { background: rgba(237,28,36,0.06); color: #ed1c24; }
html:not(.dark) .sidebar-leaf-fav.is-favorite { color: #e6a800; text-shadow: 0 0 4px rgba(230,168,0,0.3); }
html:not(.dark) .sidebar-leaf-fav.is-favorite:hover { color: #ed1c24; text-shadow: 0 0 4px rgba(237,28,36,0.3); }

/* ── Tooltips ── */
html:not(.dark) .sidebar-item-tooltip {
    background: rgba(237,28,36,0.92); color: #ffffff;
    box-shadow: 0 4px 14px rgba(0,0,0,0.2), 0 0 0 1px rgba(0,0,0,0.06);
}
html:not(.dark) .sidebar-item-tooltip::before { border-right-color: rgba(237,28,36,0.92); }

/* ── Empty / Error States ── */
html:not(.dark) .sidebar-empty { color: #718096; }
html:not(.dark) .sidebar-error { color: #ed1c24; }

/* ── Scrollbar ── */
html:not(.dark) .sidebar-nav::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.12); }
html:not(.dark) .sidebar-nav::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,0.25); }

/* ── Mobile ── */
html:not(.dark) .sidebar-mobile-toggle {
    background: rgba(0,0,0,0.06); color: #3d4855;
    box-shadow: 0 1px 0 rgba(0,0,0,0.04), 0 2px 4px rgba(0,0,0,0.06);
}
html:not(.dark) .sidebar-mobile-toggle:hover { background: rgba(0,0,0,0.1); color: #2c3e50; }
html:not(.dark) .sidebar-mobile-overlay { background: rgba(0,0,0,0.4); }
/* ═══════════════════════════════════════════════════════════════
   REDUCED MOTION
   ═══════════════════════════════════════════════════════════════ */

@media (prefers-reduced-motion: reduce) {
    .sidebar-menu,
    .sidebar-menu *,
    .sidebar-menu *::before,
    .sidebar-menu *::after,
    .app-main {
        transition-duration: 0s;

    }
}

/* Banking navigation refresh */
.banking-shell .sidebar-menu {
    --sb-expanded: var(--app-sidebar-width);
    --sb-collapsed: var(--app-sidebar-collapsed-width);
    --sb-transition: var(--app-transition);
    --sb-transition-slow: var(--app-transition);
    top: 0;
    width: var(--sb-collapsed);
    z-index: 1100;
    overflow: hidden;
    background: #fff;
    border-right: 1px solid var(--app-border);
    box-shadow: 3px 0 16px rgba(15, 23, 42, .035);
    transition: width var(--app-transition), box-shadow var(--app-transition);
}

.banking-shell .sidebar-menu.expanded,
.banking-shell .sidebar-menu.expanded:hover,
.banking-shell .sidebar-menu.expanded:focus-within,
.banking-shell .sidebar-menu.tour-force-open { width: var(--sb-expanded); }

.banking-shell .sidebar-menu.collapsed { width: var(--sb-collapsed); }

.banking-shell .sidebar-menu::before { display: none; }
.banking-shell .sidebar-menu::after { width: 1px; opacity: 1; background: var(--app-border); }
.banking-shell .sidebar-inner { width: var(--sb-expanded); min-width: var(--sb-expanded); background: transparent; }

.banking-shell .sidebar-logo {
    height: var(--app-header-height);
    min-height: var(--app-header-height);
    padding: 0 18px;
    gap: 12px;
    border-bottom: 1px solid var(--app-border);
}
.banking-shell .sidebar-logo::after { display: none; }
.banking-shell .sidebar-logo-icon { width: 44px; height: 44px; min-width: 44px; border-radius: 10px; filter: none; }
.banking-shell .sidebar-logo-text { color: #202938; font-size: 15px; font-weight: 750; letter-spacing: -.01em; opacity: 0; }
.banking-shell .sidebar-menu.expanded .sidebar-logo-text,
.banking-shell .sidebar-menu.tour-force-open .sidebar-logo-text { opacity: 1; }

.banking-shell .sidebar-search-wrapper { padding: 12px; gap: 8px; border-bottom: 1px solid var(--app-border); }
.banking-shell .sidebar-search-collapsed-icon { width: 48px; height: 38px; margin-left: 0; color: #7a8597; border-radius: 8px; }
.banking-shell .sidebar-search-input {
    height: 38px;
    padding: 0 12px 0 34px;
    border: 1px solid var(--app-border);
    border-radius: 8px;
    background: #f7f8fa;
    color: #202938;
    box-shadow: none;
}
.banking-shell .sidebar-search-input:focus { background: #fff; border-color: rgba(215,25,32,.48); box-shadow: 0 0 0 3px rgba(215,25,32,.09); }
.banking-shell .sidebar-menu.expanded .sidebar-search-collapsed-icon,
.banking-shell .sidebar-menu.tour-force-open .sidebar-search-collapsed-icon { opacity: 0; pointer-events: none; position: absolute; }
.banking-shell .sidebar-menu.expanded .sidebar-search-input,
.banking-shell .sidebar-menu.tour-force-open .sidebar-search-input { opacity: 1; pointer-events: auto; }
.banking-shell .sidebar-menu.collapsed .sidebar-search-input { opacity: 0; pointer-events: none; }

.banking-shell .sidebar-fav-toggle {
    width: 48px;
    height: 34px;
    min-height: 34px;
    margin: 0;
    border: 1px solid transparent;
    border-radius: 8px;
    background: #f7f8fa;
    color: #6b7586;
    box-shadow: none;
}
.banking-shell .sidebar-menu.expanded .sidebar-fav-toggle,
.banking-shell .sidebar-menu.tour-force-open .sidebar-fav-toggle { width: 100%; padding: 0 12px; justify-content: flex-start; }
.banking-shell .sidebar-menu.expanded .sidebar-fav-toggle span,
.banking-shell .sidebar-menu.tour-force-open .sidebar-fav-toggle span { display: inline; opacity: 1; text-transform: none; font-size: 11px; letter-spacing: 0; }
.banking-shell .sidebar-fav-toggle.active { background: #fff6f6; color: var(--app-primary); border-color: #f5d5d7; box-shadow: none; }

.banking-shell .sidebar-nav { padding: 10px 8px 16px; scrollbar-color: #cbd1da transparent; }
.banking-shell .sidebar-nav::-webkit-scrollbar { width: 5px; }
.banking-shell .sidebar-nav::-webkit-scrollbar-thumb { background: #cbd1da; border-radius: 6px; }
.banking-shell .sidebar-divider { margin: 5px 10px; background: var(--app-border); opacity: 1; }

.banking-shell .sidebar-parent,
.banking-shell .sidebar-sub-parent,
.banking-shell .sidebar-sub-sub-parent,
.banking-shell .sidebar-leaf {
    min-height: 38px;
    height: auto;
    border-left: 3px solid transparent;
    border-radius: 7px;
    color: #596579;
    text-shadow: none;
    transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
.banking-shell .sidebar-parent { padding: 7px 11px; gap: 12px; font-size: 12px; font-weight: 650; }
.banking-shell .sidebar-sub-parent { padding: 6px 10px 6px 31px; }
.banking-shell .sidebar-sub-sub-parent { padding: 6px 10px 6px 42px; }
.banking-shell .sidebar-leaf { min-height: 34px; padding: 6px 10px 6px 42px; }
.banking-shell .sidebar-parent::before,
.banking-shell .sidebar-parent.expanded::after { display: none; }
.banking-shell .sidebar-parent-icon { color: #697589; font-size: 14px; opacity: 1; }
.banking-shell .sidebar-parent-chevron,
.banking-shell .sidebar-sub-parent-chevron,
.banking-shell .sidebar-sub-sub-parent-chevron { color: #9aa3b1; }

.banking-shell .sidebar-parent:hover,
.banking-shell .sidebar-sub-parent:hover,
.banking-shell .sidebar-sub-sub-parent:hover,
.banking-shell .sidebar-leaf:hover { background: #f4f6f8; color: #202938; border-left-color: #c9ced6; }
.banking-shell .sidebar-parent.expanded,
.banking-shell .sidebar-sub-parent.expanded,
.banking-shell .sidebar-sub-sub-parent.expanded,
.banking-shell .sidebar-leaf.active { background: #fff5f5; color: #a90f16; border-left-color: var(--app-primary); }
.banking-shell .sidebar-leaf.active { font-weight: 650; }
.banking-shell .sidebar-leaf.active::before { background: var(--app-primary); opacity: 1; }
.banking-shell .sidebar-parent.expanded .sidebar-parent-icon { color: var(--app-primary); }
.banking-shell .sidebar-children::before,
.banking-shell .sidebar-sub-children::before,
.banking-shell .sidebar-sub-sub-children::before { background: #e6e9ee; }

.banking-shell .sidebar-menu.expanded .sidebar-parent-label,
.banking-shell .sidebar-menu.expanded .sidebar-parent-chevron,
.banking-shell .sidebar-menu.expanded .sidebar-sub-parent-label,
.banking-shell .sidebar-menu.expanded .sidebar-sub-parent-chevron,
.banking-shell .sidebar-menu.expanded .sidebar-sub-sub-parent-label,
.banking-shell .sidebar-menu.expanded .sidebar-sub-sub-parent-chevron,
.banking-shell .sidebar-menu.expanded .sidebar-leaf-label,
.banking-shell .sidebar-menu.tour-force-open .sidebar-parent-label,
.banking-shell .sidebar-menu.tour-force-open .sidebar-parent-chevron,
.banking-shell .sidebar-menu.tour-force-open .sidebar-sub-parent-label,
.banking-shell .sidebar-menu.tour-force-open .sidebar-sub-parent-chevron,
.banking-shell .sidebar-menu.tour-force-open .sidebar-sub-sub-parent-label,
.banking-shell .sidebar-menu.tour-force-open .sidebar-sub-sub-parent-chevron,
.banking-shell .sidebar-menu.tour-force-open .sidebar-leaf-label { opacity: 1; }
.banking-shell .sidebar-menu.collapsed .sidebar-parent-label,
.banking-shell .sidebar-menu.collapsed .sidebar-parent-chevron,
.banking-shell .sidebar-menu.collapsed .sidebar-sub-parent-label,
.banking-shell .sidebar-menu.collapsed .sidebar-leaf-label { opacity: 0; }
.banking-shell .sidebar-menu.collapsed .sidebar-children { max-height: 0; }
.banking-shell .sidebar-menu.collapsed .sidebar-logo {
    width: var(--sb-collapsed);
    padding: 0;
    justify-content: center;
}
.banking-shell .sidebar-menu.collapsed .sidebar-logo-text,
.banking-shell .sidebar-menu.collapsed .sidebar-search-collapsed-icon,
.banking-shell .sidebar-menu.collapsed .sidebar-search-wrapper > div:not(.sidebar-search-collapsed-icon),
.banking-shell .sidebar-menu.collapsed .sidebar-fav-toggle span,
.banking-shell .sidebar-menu.collapsed .sidebar-parent-label,
.banking-shell .sidebar-menu.collapsed .sidebar-parent-chevron {
    display: none;
}
.banking-shell .sidebar-menu.collapsed .sidebar-search-wrapper {
    width: var(--sb-collapsed);
    padding: 12px;
    align-items: center;
}
.banking-shell .sidebar-menu.collapsed .sidebar-fav-toggle {
    width: 48px;
    min-width: 48px;
    margin: 0 auto;
    padding: 0;
    justify-content: center;
}
.banking-shell .sidebar-menu.collapsed .sidebar-nav {
    width: var(--sb-collapsed);
    padding-inline: 8px;
}
.banking-shell .sidebar-menu.collapsed .sidebar-parent {
    width: 56px;
    min-height: 42px;
    padding: 0;
    gap: 0;
    justify-content: center;
    border-left: 0;
}
.banking-shell .sidebar-menu.collapsed .sidebar-parent-icon {
    width: 40px;
    min-width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Explicit open state: it must win over compact-state display rules. */
.banking-shell .sidebar-menu.mobile-open,
.banking-shell .sidebar-menu.tour-force-open {
    width: var(--sb-expanded);
}

.banking-shell .sidebar-menu.mobile-open .sidebar-logo,
.banking-shell .sidebar-menu.tour-force-open .sidebar-logo {
    width: 100%;
    padding-inline: 18px;
    justify-content: flex-start;
}

.banking-shell .sidebar-menu.mobile-open .sidebar-logo-text,
.banking-shell .sidebar-menu.tour-force-open .sidebar-logo-text,
.banking-shell .sidebar-menu.mobile-open .sidebar-parent-label,
.banking-shell .sidebar-menu.tour-force-open .sidebar-parent-label,
.banking-shell .sidebar-menu.mobile-open .sidebar-sub-parent-label,
.banking-shell .sidebar-menu.tour-force-open .sidebar-sub-parent-label,
.banking-shell .sidebar-menu.mobile-open .sidebar-sub-sub-parent-label,
.banking-shell .sidebar-menu.tour-force-open .sidebar-sub-sub-parent-label,
.banking-shell .sidebar-menu.mobile-open .sidebar-leaf-label,
.banking-shell .sidebar-menu.tour-force-open .sidebar-leaf-label {
    display: initial;
    opacity: 1;
}

.banking-shell .sidebar-menu.mobile-open .sidebar-parent-chevron,
.banking-shell .sidebar-menu.tour-force-open .sidebar-parent-chevron,
.banking-shell .sidebar-menu.mobile-open .sidebar-sub-parent-chevron,
.banking-shell .sidebar-menu.tour-force-open .sidebar-sub-parent-chevron,
.banking-shell .sidebar-menu.mobile-open .sidebar-sub-sub-parent-chevron,
.banking-shell .sidebar-menu.tour-force-open .sidebar-sub-sub-parent-chevron {
    display: flex;
    opacity: 1;
}

.banking-shell .sidebar-menu.mobile-open .sidebar-search-wrapper > div:not(.sidebar-search-collapsed-icon),
.banking-shell .sidebar-menu.tour-force-open .sidebar-search-wrapper > div:not(.sidebar-search-collapsed-icon) {
    display: block;
}

.banking-shell .sidebar-menu.mobile-open .sidebar-fav-toggle span,
.banking-shell .sidebar-menu.tour-force-open .sidebar-fav-toggle span {
    display: inline;
    opacity: 1;
}

.banking-shell .sidebar-menu.mobile-open .sidebar-nav,
.banking-shell .sidebar-menu.tour-force-open .sidebar-nav {
    width: 100%;
}

.banking-shell .sidebar-menu.mobile-open .sidebar-parent,
.banking-shell .sidebar-menu.tour-force-open .sidebar-parent {
    width: auto;
    min-height: 38px;
    padding: 7px 11px;
    gap: 12px;
    justify-content: flex-start;
    border-left: 3px solid transparent;
}

.banking-shell .sidebar-menu.mobile-open .sidebar-parent-icon,
.banking-shell .sidebar-menu.tour-force-open .sidebar-parent-icon {
    width: 18px;
    min-width: 18px;
    height: auto;
    display: inline-block;
}

.banking-shell .sidebar-menu.mobile-open .sidebar-children.expanded,
.banking-shell .sidebar-menu.tour-force-open .sidebar-children.expanded {
    max-height: 4000px;
}

/* Desktop hover is CSS-only so expanding the menu does not rerender the tree. */
@media (min-width: 1025px) {
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):hover,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):focus-within {
        width: var(--sb-expanded);
        box-shadow: var(--app-shadow-soft);
    }

    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):hover .sidebar-logo,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):focus-within .sidebar-logo {
        width: 100%;
        padding-inline: 18px;
        justify-content: flex-start;
    }

    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):hover .sidebar-logo-text,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):focus-within .sidebar-logo-text,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):hover .sidebar-parent-label,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):focus-within .sidebar-parent-label,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):hover .sidebar-sub-parent-label,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):focus-within .sidebar-sub-parent-label,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):hover .sidebar-sub-sub-parent-label,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):focus-within .sidebar-sub-sub-parent-label,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):hover .sidebar-leaf-label {
        display: initial;
        opacity: 1;
    }

    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):focus-within .sidebar-leaf-label {
        display: initial;
        opacity: 1;
    }

    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):hover .sidebar-parent-chevron,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):focus-within .sidebar-parent-chevron,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):hover .sidebar-sub-parent-chevron,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):focus-within .sidebar-sub-parent-chevron,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):hover .sidebar-sub-sub-parent-chevron,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):focus-within .sidebar-sub-sub-parent-chevron {
        display: flex;
        opacity: 1;
    }

    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):hover .sidebar-search-wrapper > div:not(.sidebar-search-collapsed-icon),
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):focus-within .sidebar-search-wrapper > div:not(.sidebar-search-collapsed-icon) {
        display: block;
    }

    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):hover .sidebar-search-wrapper,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):focus-within .sidebar-search-wrapper {
        width: 100%;
        align-items: stretch;
    }

    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):hover .sidebar-search-collapsed-icon,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):focus-within .sidebar-search-collapsed-icon {
        opacity: 0;
        pointer-events: none;
        position: absolute;
    }

    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):hover .sidebar-search-input,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):focus-within .sidebar-search-input {
        opacity: 1;
        pointer-events: auto;
    }

    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):hover .sidebar-fav-toggle,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):focus-within .sidebar-fav-toggle {
        width: 100%;
        padding: 0 12px;
        justify-content: flex-start;
    }

    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):hover .sidebar-fav-toggle span,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):focus-within .sidebar-fav-toggle span {
        display: inline;
        opacity: 1;
    }

    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):hover .sidebar-nav,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):focus-within .sidebar-nav {
        width: 100%;
    }

    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):hover .sidebar-parent,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):focus-within .sidebar-parent {
        width: auto;
        min-height: 38px;
        padding: 7px 11px;
        gap: 12px;
        justify-content: flex-start;
        border-left: 3px solid transparent;
    }

    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):hover .sidebar-parent-icon,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):focus-within .sidebar-parent-icon {
        width: 18px;
        min-width: 18px;
        height: auto;
        display: inline-block;
    }

    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):hover .sidebar-children.expanded,
    .banking-shell .sidebar-menu.collapsed:not(.navigation-collapsed):focus-within .sidebar-children.expanded {
        max-height: 4000px;
    }
}

.banking-shell .sidebar-leaf-fav { border: 0; border-radius: 5px; background: transparent; color: #9aa3b1; }
.banking-shell .sidebar-leaf-fav.is-favorite { color: #c88700; text-shadow: none; }
.banking-shell .sidebar-parent:focus-visible,
.banking-shell .sidebar-sub-parent:focus-visible,
.banking-shell .sidebar-sub-sub-parent:focus-visible,
.banking-shell .sidebar-leaf:focus-visible,
.banking-shell .sidebar-fav-toggle:focus-visible,
.sidebar-mobile-toggle:focus-visible { outline: 2px solid var(--app-primary); outline-offset: 2px; }

html.dark .banking-shell .sidebar-menu { background: #171b21; border-color: #2c323c; box-shadow: 3px 0 18px rgba(0,0,0,.2); }
html.dark .banking-shell .sidebar-logo,
html.dark .banking-shell .sidebar-search-wrapper { border-color: #2c323c; }
html.dark .banking-shell .sidebar-logo-text { color: #f2f4f7; }
html.dark .banking-shell .sidebar-search-input,
html.dark .banking-shell .sidebar-fav-toggle { background: #20252d; border-color: #303640; color: #dce1e8; }
html.dark .banking-shell .sidebar-parent,
html.dark .banking-shell .sidebar-sub-parent,
html.dark .banking-shell .sidebar-sub-sub-parent,
html.dark .banking-shell .sidebar-leaf { color: #b1bac7; }
html.dark .banking-shell .sidebar-parent:hover,
html.dark .banking-shell .sidebar-sub-parent:hover,
html.dark .banking-shell .sidebar-sub-sub-parent:hover,
html.dark .banking-shell .sidebar-leaf:hover { background: #222730; color: #fff; }
html.dark .banking-shell .sidebar-parent.expanded,
html.dark .banking-shell .sidebar-sub-parent.expanded,
html.dark .banking-shell .sidebar-sub-sub-parent.expanded,
html.dark .banking-shell .sidebar-leaf.active { background: rgba(215,25,32,.12); color: #ff7a7f; }

@media (max-width: 1024px) {
    .banking-shell .sidebar-menu,
    .banking-shell .sidebar-menu.collapsed,
    .banking-shell .sidebar-menu.expanded,
    .banking-shell .sidebar-menu.collapsed:hover,
    .banking-shell .sidebar-menu.collapsed:focus-within,
    .banking-shell .sidebar-menu.expanded:hover,
    .banking-shell .sidebar-menu.expanded:focus-within {
        width: min(86vw, var(--sb-expanded));
        z-index: 1200;
        transform: translate3d(-100%, 0, 0);
        visibility: hidden;
        pointer-events: none;
        box-shadow: none;
        transition: transform var(--app-transition), box-shadow var(--app-transition), visibility 0s linear var(--app-transition);
        will-change: transform;
    }
    .banking-shell .sidebar-menu.mobile-open,
    .banking-shell .sidebar-menu.mobile-open:hover,
    .banking-shell .sidebar-menu.tour-force-open,
    .banking-shell .sidebar-menu.tour-force-open:hover {
        width: min(86vw, var(--sb-expanded));
        transform: translate3d(0, 0, 0);
        visibility: visible;
        pointer-events: auto;
        box-shadow: var(--app-shadow-soft);
        transition: transform var(--app-transition), box-shadow var(--app-transition), visibility 0s;
    }
    .banking-shell .sidebar-menu.mobile-open .sidebar-logo-text,
    .banking-shell .sidebar-menu.mobile-open .sidebar-parent-label,
    .banking-shell .sidebar-menu.mobile-open .sidebar-parent-chevron,
    .banking-shell .sidebar-menu.mobile-open .sidebar-sub-parent-label,
    .banking-shell .sidebar-menu.mobile-open .sidebar-sub-parent-chevron,
    .banking-shell .sidebar-menu.mobile-open .sidebar-sub-sub-parent-label,
    .banking-shell .sidebar-menu.mobile-open .sidebar-sub-sub-parent-chevron,
    .banking-shell .sidebar-menu.mobile-open .sidebar-leaf-label { opacity: 1; }
    .banking-shell .sidebar-menu.mobile-open .sidebar-children.expanded { max-height: 4000px; }
    .sidebar-mobile-toggle {
        top: 13px; left: 12px; width: 38px; height: 38px;
        z-index: 1300; border: 1px solid var(--app-border); border-radius: 8px;
        background: #fff; color: #303949; box-shadow: var(--app-shadow-soft);
    }
    .sidebar-mobile-toggle.is-open {
        left: calc(min(86vw, var(--app-sidebar-width, 260px)) - 46px);
    }
    .sidebar-mobile-overlay {
        z-index: 1190;
        background: rgba(15,23,42,.42);
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        transition: opacity var(--app-transition);
        will-change: opacity;
    }
}

/*
   Una navegación debe dejar el sidebar realmente contraído aunque el
   elemento seleccionado conserve el foco o el puntero todavía esté sobre la
   zona que ocupaba el menú expandido. MenuDinamico retira esta clase cuando
   el puntero vuelve a entrar o cuando el usuario abre manualmente el menú.
*/
@media (min-width: 1025px) {
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:hover,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:focus-within {
        width: var(--sb-collapsed);
        box-shadow: 3px 0 16px rgba(15, 23, 42, .035);
    }

    .banking-shell .sidebar-menu.collapsed.navigation-collapsed .sidebar-logo-text,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed .sidebar-parent-label,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed .sidebar-parent-chevron,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed .sidebar-sub-parent-label,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed .sidebar-sub-parent-chevron,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed .sidebar-sub-sub-parent-label,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed .sidebar-sub-sub-parent-chevron,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed .sidebar-leaf-label,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:hover .sidebar-logo-text,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:hover .sidebar-parent-label,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:hover .sidebar-parent-chevron,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:hover .sidebar-sub-parent-label,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:hover .sidebar-sub-parent-chevron,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:hover .sidebar-sub-sub-parent-label,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:hover .sidebar-sub-sub-parent-chevron,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:hover .sidebar-leaf-label,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:focus-within .sidebar-logo-text,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:focus-within .sidebar-parent-label,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:focus-within .sidebar-parent-chevron,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:focus-within .sidebar-sub-parent-label,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:focus-within .sidebar-sub-parent-chevron,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:focus-within .sidebar-sub-sub-parent-label,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:focus-within .sidebar-sub-sub-parent-chevron,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:focus-within .sidebar-leaf-label {
        display: none;
        opacity: 0;
    }

    .banking-shell .sidebar-menu.collapsed.navigation-collapsed .sidebar-search-input,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:hover .sidebar-search-input,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:focus-within .sidebar-search-input {
        opacity: 0;
        pointer-events: none;
    }

    .banking-shell .sidebar-menu.collapsed.navigation-collapsed .sidebar-search-collapsed-icon,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:hover .sidebar-search-collapsed-icon,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:focus-within .sidebar-search-collapsed-icon {
        opacity: 1;
        pointer-events: auto;
        position: static;
    }

    .banking-shell .sidebar-menu.collapsed.navigation-collapsed .sidebar-nav,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:hover .sidebar-nav,
    .banking-shell .sidebar-menu.collapsed.navigation-collapsed:focus-within .sidebar-nav {
        width: var(--sb-collapsed);
    }
}
