/* ════════════════════════════════════════════════
   SIDEBAR v10.0 — Linear × Stripe × Attio
   Font: Inter (loaded globally)
   bg: #0F172A  border: #1E293B  accent: #4F46E5
   Scoped to .sb — zero impact on other pages.
════════════════════════════════════════════════ */

:root { --sb-w: 220px; --sb-w-col: 64px; }

/* ─── Container ─────────────────────────────── */
.sb {
  width:          var(--sb-w) !important;
  flex:           0 0 var(--sb-w) !important;
  height:         100vh !important;
  background:     var(--bg-sidebar) !important;
  border-right:   1px solid var(--border-sidebar) !important;
  display:        flex !important;
  flex-direction: column !important;
  font-family:    'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif !important;
  -webkit-font-smoothing: antialiased !important;
  position:       sticky !important;
  top:            0 !important;
  overflow:       hidden !important;
  transition:     width 200ms ease, flex-basis 200ms ease, background-color 200ms ease, border-color 200ms ease !important;
  z-index:        100 !important;
  flex-shrink:    0 !important;
  backdrop-filter: none !important;
  box-shadow:     none !important;
}
.sb, .sb * {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif !important;
}

/* ─── Zone 1: Brand Header ──────────────────── */
.sb-hd {
  height:        68px;
  padding:       0 14px 0 12px;
  display:       flex;
  align-items:   center;
  gap:           10px;
  border-bottom: 1px solid rgba(37,99,235,0.10);
  flex-shrink:   0;
  position:      relative;
}
.sb-hd::after {
  content:    '';
  position:   absolute;
  bottom:     0; left: 16px; right: 16px;
  height:     1px;
  background: linear-gradient(90deg, transparent, rgba(37,99,235,0.18), rgba(124,58,237,0.12), transparent);
  pointer-events: none;
}

.sb-logo-mark-img {
  width:         46px;
  height:        46px;
  object-fit:    contain;
  flex-shrink:   0;
  filter:        drop-shadow(0 0 8px rgba(37,99,235,0.30));
  transition:    filter 300ms ease, transform 300ms ease;
}
.sb-logo-mark-img:hover {
  filter:    drop-shadow(0 0 14px rgba(37,99,235,0.50));
  transform: scale(1.06);
}

.sb.collapsed .sb-logo-mark-img { width: 34px; height: 34px; }
.sb.collapsed .sb-hd-text       { opacity: 0; max-width: 0; overflow: hidden; pointer-events: none; }

.sb-hd-text {
  display:        flex;
  flex-direction: column;
  flex:           1;
  min-width:      0;
  overflow:       hidden;
  transition:     opacity 180ms ease, max-width 200ms ease;
}

.sb-hd-name {
  font-size:               15px;
  font-weight:             800 !important;
  background:              linear-gradient(to right, #2563EB 0%, #818CF8 55%, #A855F7 100%) !important;
  -webkit-background-clip: text !important;
  background-clip:         text !important;
  -webkit-text-fill-color: transparent !important;
  white-space:             nowrap;
  line-height:             1.2;
  letter-spacing:          0.3px;
  transition:              letter-spacing 320ms cubic-bezier(0.22,1,0.36,1);
}

/* Each letter wrapped — animates on sb-hd hover */
.sb-hd-name > span {
  display:                 inline-block;
  background:              inherit;
  -webkit-background-clip: text;
  background-clip:         text;
  -webkit-text-fill-color: transparent;
  transition:              transform 360ms cubic-bezier(0.22,1,0.36,1),
                           filter 360ms ease,
                           opacity 360ms ease;
}
.sb-hd:hover .sb-hd-name {
  letter-spacing:          1.6px;
}
.sb-hd:hover .sb-hd-name > span {
  animation: sbHdLetterWave 0.95s cubic-bezier(0.22,1,0.36,1) both;
}
.sb-hd:hover .sb-hd-name > span:nth-child(1) { animation-delay:   0ms; }
.sb-hd:hover .sb-hd-name > span:nth-child(2) { animation-delay:  55ms; }
.sb-hd:hover .sb-hd-name > span:nth-child(3) { animation-delay: 110ms; }
.sb-hd:hover .sb-hd-name > span:nth-child(4) { animation-delay: 165ms; }
.sb-hd:hover .sb-hd-name > span:nth-child(5) { animation-delay: 220ms; }
.sb-hd:hover .sb-hd-name > span:nth-child(6) { animation-delay: 275ms; }
.sb-hd:hover .sb-hd-name > span:nth-child(7) { animation-delay: 330ms; }
.sb-hd:hover .sb-hd-name > span:nth-child(8) { animation-delay: 385ms; }

@keyframes sbHdLetterWave {
  0%   { transform: translateY(0)   scale(1);    filter: drop-shadow(0 0 0 rgba(37,99,235,0)); opacity: 1; }
  35%  { transform: translateY(-9px) scale(1.25); filter: drop-shadow(0 0 8px rgba(37,99,235,0.70)); opacity: 1; }
  70%  { transform: translateY(2px)  scale(0.96); filter: drop-shadow(0 0 4px rgba(168,85,247,0.55)); opacity: 1; }
  100% { transform: translateY(0)   scale(1);    filter: drop-shadow(0 0 0 rgba(37,99,235,0)); opacity: 1; }
}

.sb-hd-sub {
  font-size:               8.5px;
  font-weight:             600 !important;
  color:                   rgba(37,99,235,0.55) !important;
  -webkit-text-fill-color: rgba(37,99,235,0.55) !important;
  line-height:             1.3;
  letter-spacing:          2px;
  text-transform:          uppercase;
  margin-top:              1px;
}

.sb-col-btn {
  width:           26px;
  height:          26px;
  display:         flex;
  align-items:     center;
  justify-content: center;
  background:      none !important;
  border:          none !important;
  color:           var(--text-sidebar-muted);
  cursor:          pointer;
  border-radius:   5px;
  flex-shrink:     0;
  padding:         0;
  transition:      color 150ms ease, background 150ms ease;
}
.sb-col-btn:hover { color: var(--text-sidebar) !important; background: var(--bg-sidebar-slot) !important; }
.sb-col-btn svg { display: block; transition: transform 200ms ease; flex-shrink:0; }


/* ─── Zone 2: Workspace Switcher (48px) ─────── */
.sb-ws {
  margin:        6px 10px;
  padding:       7px 8px;
  display:       flex;
  align-items:   center;
  gap:           9px;
  border-radius: 6px;
  cursor:        pointer;
  background:    transparent;
  border:        none !important;
  flex-shrink:   0;
  transition:    background 150ms ease;
  overflow:      hidden;
  min-height:    36px;
}
.sb-ws:hover { background: var(--bg-sidebar-slot); }

.sb-ws-av {
  width:           24px;
  height:          24px;
  border-radius:   50%;
  background:      linear-gradient(135deg, #2563EB 0%, #1D4ED8 100%);
  color:           white !important;
  -webkit-text-fill-color: white !important;
  font-size:       10px;
  font-weight:     600 !important;
  display:         flex;
  align-items:     center;
  justify-content: center;
  flex-shrink:     0;
  letter-spacing:  -0.3px;
}

.sb-ws-info {
  flex:       1;
  min-width:  0;
  overflow:   hidden;
  transition: opacity 180ms ease, max-width 200ms ease;
}

.sb-ws-name {
  font-size:               12px;
  font-weight:             500 !important;
  color:                   var(--text-sidebar) !important;
  -webkit-text-fill-color: var(--text-sidebar) !important;
  white-space:             nowrap;
  overflow:                hidden;
  text-overflow:           ellipsis;
  line-height:             1.3;
}

.sb-ws-plan {
  font-size:               10px;
  color:                   var(--text-sidebar-muted) !important;
  -webkit-text-fill-color: var(--text-sidebar-muted) !important;
  line-height:             1.2;
}

.sb-ws-icon {
  color:       var(--text-sidebar-muted);
  flex-shrink: 0;
  display:     flex;
  transition:  opacity 180ms ease;
}

/* ─── Zone 3: Quick Search ──────────────────── */
.sb-search-zone {
  padding:     0 10px 10px;
  flex-shrink: 0;
  overflow:    hidden;
  transition:  opacity 180ms ease, max-height 200ms ease;
}

.sb-search-box {
  height:        32px;
  background:    var(--bg-sidebar-slot);
  border:        1px solid var(--border-sidebar);
  border-radius: 6px;
  display:       flex;
  align-items:   center;
  gap:           7px;
  padding:       0 10px;
  cursor:        pointer;
  transition:    border-color 150ms ease;
}
.sb-search-box:hover { border-color: var(--border-sidebar); }

.sb-search-ic { color: var(--text-sidebar-muted); display: flex; flex-shrink: 0; }
.sb-search-ph {
  font-size:               12px;
  color:                   var(--text-sidebar-muted) !important;
  -webkit-text-fill-color: var(--text-sidebar-muted) !important;
  flex:                    1;
  pointer-events:          none;
  white-space:             nowrap;
}

/* ─── Zone 4: Navigation ────────────────────── */
.sb-nav {
  flex:       1 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding:    4px 8px 8px !important;
}
.sb-nav::-webkit-scrollbar       { width: 4px; }
.sb-nav::-webkit-scrollbar-track { background: transparent; }
.sb-nav::-webkit-scrollbar-thumb { background: var(--border-sidebar); border-radius: 4px; }
.sb-nav::-webkit-scrollbar-thumb:hover { background: var(--bg-sidebar-slot); }

/* Group label (legacy static label — kept for compat) */
.sb-grp-lbl {
  font-size:      10px !important;
  font-weight:    600 !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color:          var(--group-label) !important;
  -webkit-text-fill-color: var(--group-label) !important;
  padding:        14px 12px 6px;
  display:        block;
  white-space:    nowrap;
  overflow:       hidden;
  transition:     opacity 180ms ease, max-height 200ms ease;
  pointer-events: none;
  user-select:    none;
}

/* ─── Collapsible Nav Groups ─────────────────── */
.nav-group {
  margin-bottom: 1px;
}

/* ── Header button ── */
.nav-grp-hd {
  width:           100%;
  height:          28px;
  padding:         0 8px 0 10px;
  display:         flex;
  align-items:     center;
  gap:             7px;
  background:      transparent;
  border:          none;
  border-radius:   6px;
  cursor:          pointer;
  font-family:     'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  transition:      background 150ms ease;
  box-sizing:      border-box;
  margin-top:      6px;
  outline:         none;
}
.nav-grp-hd:hover { background: var(--bg-sidebar-hover); }

/* ── Chevron icon ── */
.nav-grp-chev {
  display:     block;
  flex-shrink: 0;
  color:       var(--text-sidebar-muted);
  transition:  transform 180ms ease, color 150ms ease;
}
.nav-grp-hd:hover .nav-grp-chev { color: var(--text-sidebar); }
.nav-group.collapsed .nav-grp-chev { transform: rotate(-90deg); }

/* ── Group name ── */
.nav-grp-lbl {
  flex:                    1 !important;
  font-size:               10px !important;
  font-weight:             600 !important;
  letter-spacing:          0.08em !important;
  text-transform:          uppercase !important;
  color:                   var(--group-label) !important;
  -webkit-text-fill-color: var(--group-label) !important;
  white-space:             nowrap;
  overflow:                hidden;
  text-overflow:           ellipsis;
  line-height:             1;
  background:              none !important;
  padding:                 0 !important;
}

/* ── Count chip (visible only when collapsed) ── */
.nav-grp-cnt {
  font-size:               10px;
  font-weight:             500;
  padding:                 1px 6px;
  border-radius:           10px;
  background:              var(--bg-sidebar-slot);
  color:                   var(--text-sidebar-muted);
  -webkit-text-fill-color: var(--text-sidebar-muted);
  flex-shrink:             0;
  line-height:             1.6;
  opacity:                 0;
  pointer-events:          none;
  transition:              opacity 180ms ease;
}
.nav-group.collapsed .nav-grp-cnt {
  opacity:    1;
  transition: opacity 200ms ease 140ms; /* delay — appears after items fade out */
}

/* ── Collapsible body ── */
.nav-grp-body {
  position:   relative;
  padding:    2px 0 3px;
}

/* ── Vertical guide line ── */
.nav-grp-body::before {
  content:        '';
  position:       absolute;
  left:           16px;
  top:            4px;
  bottom:         4px;
  width:          1px;
  background:     var(--border-sidebar);
  opacity:        0.55;
  border-radius:  1px;
  transition:     opacity 150ms ease, background 200ms ease;
  pointer-events: none;
}
.nav-grp-body:hover::before   { opacity: 1; }
.nav-group:has(.ni.on) .nav-grp-body::before {
  background: #2563EB;
  opacity:    0.45;
}

/* ── Sub-item indent ── */
.ni.ni-sub { padding-left: 22px !important; }

/* Nav items */
.ni {
  height:        34px !important;
  padding:       0 12px !important;
  border-radius: 6px !important;
  display:       flex !important;
  align-items:   center !important;
  gap:           10px !important;
  cursor:        pointer !important;
  color:         var(--text-sidebar) !important;
  background:    transparent !important;
  border:        none !important;
  white-space:   nowrap !important;
  overflow:      hidden !important;
  position:      relative !important;
  transition:    background 120ms ease, color 120ms ease !important;
  font-family:   inherit !important;
  width:         100% !important;
  box-sizing:    border-box !important;
  text-align:    left !important;
  font-size:     13px !important;
  font-weight:   400 !important;
  -webkit-text-fill-color: var(--text-sidebar) !important;
  box-shadow:    none !important;
  transform:     none !important;
  animation:     none !important;
  opacity:       1 !important;
}
.ni::before { display: none !important; }
.ni::after  { display: none !important; }

.ni:hover {
  background: var(--bg-sidebar-hover) !important;
  color:      var(--text) !important;
  -webkit-text-fill-color: var(--text) !important;
  transform:  none !important;
  box-shadow: none !important;
}
.ni:hover .ni-ic { color: var(--text) !important; }

/* Active state — blue-600 left border + subtle tint */
.ni.on {
  background:    rgba(37,99,235,0.08) !important;
  color:         #2563EB !important;
  -webkit-text-fill-color: #2563EB !important;
  font-weight:   500 !important;
  border:        none !important;
  border-left:   3px solid #2563EB !important;
  border-radius: 0 6px 6px 0 !important;
  box-shadow:    none !important;
  padding-left:  9px !important;
}
.ni.on .ni-ic     { color: #2563EB !important; }
.ni.ni-sub.on     { padding-left: 19px !important; }

/* Active indicator bar — replaced by border-left on .ni.on */
.ni.on::before    { display: none !important; }

/* Icon */
.ni-ic {
  color:       var(--text-sidebar-muted) !important;
  display:     flex !important;
  flex-shrink: 0 !important;
  transition:  color 120ms ease !important;
  opacity:     1 !important;
  width:       auto !important;
  height:      auto !important;
  background:  none !important;
  border:      none !important;
  border-radius: 0 !important;
  box-shadow:  none !important;
  animation:   none !important;
}
.ni-ic svg { display: block !important; }

/* Label */
.ni-lb {
  flex:          1 !important;
  white-space:   nowrap !important;
  overflow:      hidden !important;
  text-overflow: ellipsis !important;
  transition:    opacity 180ms ease, max-width 200ms ease;
}

/* Badge */
.ni-bdg {
  font-size:     10px !important;
  font-weight:   500 !important;
  padding:       1px 6px !important;
  border-radius: 10px !important;
  background:    var(--bg-sidebar-slot) !important;
  color:         var(--text-sidebar-muted) !important;
  -webkit-text-fill-color: var(--text-sidebar-muted) !important;
  flex-shrink:   0 !important;
  margin-left:   auto !important;
  line-height:   1.6 !important;
  box-shadow:    none !important;
}
.ni-bdg.alert {
  background: rgba(220,38,38,0.15) !important;
  color:      #FCA5A5 !important;
  -webkit-text-fill-color: #FCA5A5 !important;
  font-weight:600 !important;
}
.ni.on .ni-bdg {
  background: rgba(37,99,235,0.12) !important;
  color:      #2563EB !important;
  -webkit-text-fill-color: #2563EB !important;
}

/* ─── Zone 4b: Setup Wizard shortcut ────────── */
.sb-wizard-btn {
  height:        44px;
  padding:       0 12px;
  display:       flex;
  align-items:   center;
  gap:           10px;
  cursor:        pointer;
  transition:    background 150ms ease;
  flex-shrink:   0;
  border-top:    1px solid var(--border-sidebar);
  color:         var(--text-sidebar-muted);
}
.sb-wizard-btn:hover {
  background: var(--bg-sidebar-slot);
  color:      var(--text-sidebar);
}
.sb-wizard-ic { display:flex; align-items:center; flex-shrink:0; }
.sb-wizard-lb {
  font-size:   12.5px;
  font-weight: 500;
  white-space: nowrap;
  overflow:    hidden;
  text-overflow: ellipsis;
}
.sb.collapsed .sb-wizard-btn { padding:0; justify-content:center; }
.sb.collapsed .sb-wizard-lb  { display:none; }

/* ─── Zone 5: User Profile (64px) ──────────── */
.sb-user-zone {
  height:        64px;
  border-top:    1px solid var(--border-sidebar);
  padding:       0 12px;
  display:       flex;
  align-items:   center;
  gap:           10px;
  cursor:        pointer;
  transition:    background 150ms ease;
  flex-shrink:   0;
  overflow:      hidden;
  position:      relative;
  margin:        0;
  background:    transparent;
  border-radius: 0;
}
.sb-user-zone:hover { background: var(--bg-sidebar-slot); }

.sb-av {
  width:           32px !important;
  height:          32px !important;
  border-radius:   50% !important;
  background:      linear-gradient(135deg, #2563EB 0%, #1D4ED8 100%) !important;
  color:           white !important;
  -webkit-text-fill-color: white !important;
  font-size:       12px !important;
  font-weight:     600 !important;
  display:         flex !important;
  align-items:     center !important;
  justify-content: center !important;
  flex-shrink:     0 !important;
  letter-spacing:  -0.3px !important;
  box-shadow:      none !important;
  border:          none !important;
  animation:       none !important;
}

.sb-user-info {
  flex:       1 !important;
  min-width:  0 !important;
  overflow:   hidden !important;
  transition: opacity 180ms ease, max-width 200ms ease;
}

.sb-uname {
  font-size:               13px !important;
  font-weight:             500 !important;
  color:                   var(--text-sidebar) !important;
  -webkit-text-fill-color: var(--text-sidebar) !important;
  white-space:             nowrap !important;
  overflow:                hidden !important;
  text-overflow:           ellipsis !important;
  line-height:             1.3 !important;
}

.sb-urole {
  font-size:               11px !important;
  color:                   var(--text-sidebar-muted) !important;
  -webkit-text-fill-color: var(--text-sidebar-muted) !important;
  white-space:             nowrap !important;
  overflow:                hidden !important;
  text-overflow:           ellipsis !important;
  line-height:             1.3 !important;
}

.sb-user-more {
  color:       var(--text-sidebar-muted);
  display:     flex;
  flex-shrink: 0;
}

/* ─── User Popover ──────────────────────────── */
.sb-user-pop {
  position:      absolute;
  bottom:        68px;
  left:          8px;
  right:         8px;
  background:    #0F172A;                                 /* fully opaque (was var() that bled through behind) */
  border:        1px solid rgba(255,255,255,0.12);
  border-radius: 10px;
  box-shadow:    0 14px 36px rgba(0,0,0,0.55), 0 2px 6px rgba(0,0,0,0.35);
  z-index:       9999;                                    /* above all sidebar nav items */
  padding:       5px;
  display:       none;
  backdrop-filter: blur(12px);
}
[data-theme="light"] .sb-user-pop {
  background: #FFFFFF;
  border-color: rgba(0,0,0,0.10);
  box-shadow: 0 14px 36px rgba(0,0,0,0.18), 0 2px 6px rgba(0,0,0,0.10);
}
.sb-user-pop.open { display: block; }

.sb-pop-item {
  display:       flex;
  align-items:   center;
  width:         100%;
  padding:       7px 12px !important;
  font-size:     13px !important;
  font-weight:   400 !important;
  color:         var(--text-sidebar) !important;
  -webkit-text-fill-color: var(--text-sidebar) !important;
  background:    transparent !important;
  border:        none !important;
  border-radius: 5px !important;
  cursor:        pointer !important;
  text-align:    left !important;
  font-family:   inherit !important;
  transition:    background 120ms, color 120ms !important;
}
.sb-pop-item:hover {
  background: var(--bg-sidebar-hover) !important;
  color:      var(--text) !important;
  -webkit-text-fill-color: var(--text) !important;
}
.sb-pop-item.danger {
  color:           #DC2626 !important;
  -webkit-text-fill-color: #DC2626 !important;
}
.sb-pop-item.danger:hover {
  background: rgba(220,38,38,0.08) !important;
  color:      #EF4444 !important;
  -webkit-text-fill-color: #EF4444 !important;
}

.sb-pop-div { height: 1px; background: var(--border-sidebar); margin: 4px 0; }

/* ─── Collapsed state ───────────────────────── */
.sb.collapsed {
  width:      var(--sb-w-col) !important;
  flex-basis: var(--sb-w-col) !important;
}

.sb.collapsed .sb-hd         { justify-content: center; padding: 0 10px; }
.sb.collapsed .sb-hd-text    { opacity: 0; max-width: 0; pointer-events: none; }
.sb.collapsed .sb-hd .theme-toggle { display: none !important; }
.sb.collapsed .sb-col-btn svg { transform: rotate(180deg); }

.sb.collapsed .sb-ws          { justify-content: center; padding: 7px; margin: 6px auto; }
.sb.collapsed .sb-ws-info     { opacity: 0; max-width: 0; pointer-events: none; }
.sb.collapsed .sb-ws-icon     { opacity: 0; pointer-events: none; max-width: 0; }

.sb.collapsed .sb-search-zone { opacity: 0; max-height: 0; padding: 0; pointer-events: none; overflow: hidden; }

.sb.collapsed .sb-grp-lbl     { opacity: 0; max-height: 0; padding: 0; overflow: hidden; pointer-events: none; }

/* ── In icon-only mode: hide group headers, always show all items ── */
.sb.collapsed .nav-grp-hd    { display: none !important; }
.sb.collapsed .nav-group     { margin-bottom: 0; }
.sb.collapsed .nav-grp-body  {
  display:    block !important;
  max-height: none !important;
  opacity:    1 !important;
  overflow:   visible !important;
  padding:    0 !important;
}
/* Hide guide line in icon mode */
.sb.collapsed .nav-grp-body::before { display: none !important; }
/* Hairline divider between groups */
.sb.collapsed .nav-group + .nav-group { margin-top: 4px; padding-top: 4px; border-top: 1px solid var(--border-sidebar); }

.sb.collapsed .ni {
  justify-content: center !important;
  padding:         0 !important;
  width:           40px !important;
  margin:          1px auto !important;
}
.sb.collapsed .ni-lb {
  opacity:   0;
  max-width: 0;
  overflow:  hidden;
  pointer-events: none;
}
.sb.collapsed .ni-bdg {
  position:  absolute !important;
  top:       2px !important;
  right:     2px !important;
  margin:    0 !important;
  min-width: 12px !important;
  padding:   1px 3px !important;
  font-size: 8px !important;
}
.sb.collapsed .ni.on::before { display: none !important; }

/* Tooltip in collapsed mode */
.sb.collapsed .ni[data-label] { overflow: visible !important; }
.sb.collapsed .ni[data-label]::after {
  content:        attr(data-label) !important;
  display:        block !important;
  position:       absolute !important;
  left:           calc(100% + 8px) !important;
  top:            50% !important;
  transform:      translateY(-50%) !important;
  background:     var(--bg-card) !important;
  color:          var(--text-sidebar) !important;
  -webkit-text-fill-color: var(--text-sidebar) !important;
  font-size:      12px !important;
  font-weight:    500 !important;
  white-space:    nowrap !important;
  padding:        5px 10px !important;
  border-radius:  4px !important;
  border:         1px solid var(--border-sidebar) !important;
  pointer-events: none !important;
  opacity:        0 !important;
  transition:     opacity 140ms ease !important;
  z-index:        999 !important;
  box-shadow:     0 4px 12px rgba(0,0,0,0.35) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
.sb.collapsed .ni[data-label]:hover::after { opacity: 1 !important; }

.sb.collapsed .sb-user-zone {
  justify-content: center;
  padding:         0;
}
.sb.collapsed .sb-user-info {
  opacity:   0;
  max-width: 0;
  overflow:  hidden;
  pointer-events: none;
}
.sb.collapsed .sb-user-more { opacity: 0; pointer-events: none; }
.sb.collapsed .sb-user-pop  { display: none !important; }

/* ─── Global layout ──────────────────────────── */
#s-app.scr.on {
  display:        flex !important;
  flex-direction: row !important;
  align-items:    stretch !important;
  padding:        0 !important;
  margin:         0 !important;
  gap:            0 !important;
  width:          100% !important;
  min-height:     100vh !important;
}

@media (min-width: 769px) {
  #s-app > .sb {
    position:   sticky !important;
    top:        0 !important;
    height:     100vh !important;
    overflow-y: hidden !important;
  }
}

#s-app > .main {
  flex:      1 1 auto !important;
  margin:    0 !important;
  padding:   0 !important;
  width:     auto !important;
  max-width: none !important;
  min-width: 0 !important;
}

/* ─── Mobile ─────────────────────────────────── */
@media (max-width: 768px) {
  #s-app > .sb {
    flex:     0 0 0 !important;
    width:    0 !important;
    position: fixed !important;
    left:     0 !important;
    top:      0 !important;
    z-index:  1000 !important;
    height:   100vh !important;
    overflow: hidden !important;
  }
  #s-app > .main { margin-left: 0 !important; }
  .sb.mobile-open {
    width:    var(--sb-w) !important;
    flex:     0 0 var(--sb-w) !important;
    overflow: visible !important;
  }
}

.sb-overlay {
  display:    none;
  position:   fixed;
  inset:      0;
  background: rgba(0,0,0,0.6);
  z-index:    999;
}
.sb-overlay.visible { display: block; }

/* ─── Topbar / content layout ────────────────── */
#s-app > .main > .topbar {
  margin:        0 !important;
  padding-left:  24px !important;
  padding-right: 24px !important;
  width:         auto !important;
}
#s-app > .main > .pw {
  padding:   22px 26px 36px !important;
  margin:    0 !important;
  max-width: none !important;
  width:     auto !important;
}
#s-app > .main > .pw > .pg,
#s-app > .main > .pw > .pg.on { margin: 0 !important; }
#s-app > .main > .erp-footer   { margin: 0 !important; }

/* ════════════════════════════════════════════════
   NAV BUTTONS v4 — raised 3D chips + coloured icons
   Everything here is prefixed #s-app so it beats
   visual-overhaul.css (#s-app .ni …) which otherwise
   forces icon colour to `inherit` and flattens the
   hover/active surfaces. Dark primary; light below.
════════════════════════════════════════════════ */

/* ── Sub-item buttons (.ni) — raised, with depth ── */
#s-app .sb .ni {
  height:        36px !important;
  border-radius: 9px !important;
  background:    linear-gradient(180deg, rgba(255,255,255,0.10), rgba(255,255,255,0.035)) !important;
  border:        1px solid rgba(255,255,255,0.12) !important;
  box-shadow:    0 2px 4px rgba(0,0,0,0.30), inset 0 1px 0 rgba(255,255,255,0.10) !important;
  color:         var(--text-sidebar) !important;
  -webkit-text-fill-color: var(--text-sidebar) !important;
  font-size:     13px !important;
  font-weight:   500 !important;
  gap:           10px !important;
  margin-bottom: 4px !important;
  transition:    background 140ms ease, border-color 140ms ease,
                 box-shadow 140ms ease, transform 140ms ease, color 120ms ease !important;
}
#s-app .sb .ni .ni-lb { -webkit-text-fill-color: var(--text-sidebar) !important; }

/* Hover — lift + brighter surface */
#s-app .sb .ni:hover {
  background:   linear-gradient(180deg, rgba(255,255,255,0.17), rgba(255,255,255,0.07)) !important;
  border-color: rgba(255,255,255,0.20) !important;
  box-shadow:   0 6px 14px rgba(0,0,0,0.42), inset 0 1px 0 rgba(255,255,255,0.14) !important;
  transform:    translateY(-1px) !important;
  color:        var(--text) !important;
}
#s-app .sb .ni:hover .ni-lb { -webkit-text-fill-color: var(--text) !important; }
#s-app .sb .ni:active { transform: translateY(0) !important; }

/* Legacy per-item indent neutralised; chip indent comes from .nav-grp-body */
#s-app .sb .ni.ni-sub { padding-left: 11px !important; }

/* Active — raised BLUE pill */
#s-app .sb .ni.on {
  background:   linear-gradient(180deg, rgba(37,99,235,0.28), rgba(37,99,235,0.13)) !important;
  border:       1px solid rgba(59,130,246,0.48) !important;
  box-shadow:   0 3px 12px rgba(37,99,235,0.36), inset 0 1px 0 rgba(255,255,255,0.16) !important;
  color:        #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  font-weight:  600 !important;
  padding-left: 11px !important;
}
#s-app .sb .ni.ni-sub.on { padding-left: 11px !important; }
#s-app .sb .ni.on .ni-lb { -webkit-text-fill-color: #FFFFFF !important; }

/* ── Group HEADER buttons — raised, parent level (a touch stronger) ── */
#s-app .sb .nav-grp-hd {
  height:        32px !important;
  border-radius: 9px !important;
  background:    linear-gradient(180deg, rgba(255,255,255,0.14), rgba(255,255,255,0.055)) !important;
  border:        1px solid rgba(255,255,255,0.15) !important;
  box-shadow:    0 2px 5px rgba(0,0,0,0.34), inset 0 1px 0 rgba(255,255,255,0.11) !important;
  transition:    background 140ms ease, border-color 140ms ease,
                 box-shadow 140ms ease, transform 140ms ease !important;
}
#s-app .sb .nav-grp-hd:hover {
  background:   linear-gradient(180deg, rgba(255,255,255,0.20), rgba(255,255,255,0.09)) !important;
  border-color: rgba(255,255,255,0.24) !important;
  box-shadow:   0 6px 14px rgba(0,0,0,0.44), inset 0 1px 0 rgba(255,255,255,0.14) !important;
  transform:    translateY(-1px) !important;
}
#s-app .sb .nav-grp-hd:active { transform: translateY(0) !important; }

/* Active group → brighten its label + chevron */
#s-app .sb .nav-group:has(.ni.on) > .nav-grp-hd .nav-grp-lbl,
#s-app .sb .nav-group:has(.ni.on) > .nav-grp-hd .nav-grp-chev {
  color:                   #60A5FA !important;
  -webkit-text-fill-color: #60A5FA !important;
}

/* Sub-items indented under header + connector rail */
#s-app .sb .nav-grp-body {
  padding:  3px 0 5px 13px !important;
  position: relative !important;
}
#s-app .sb .nav-grp-body::before {
  content:'' !important; display:block !important; position:absolute !important;
  left:4px !important; top:4px !important; bottom:8px !important; width:2px !important;
  border-radius:2px !important; background:rgba(255,255,255,0.16) !important;
  opacity:1 !important; pointer-events:none !important;
}
#s-app .sb .nav-group:has(.ni.on) .nav-grp-body::before { background:#3B82F6 !important; }

/* Collapsed (icon-only): keep raised chips, no indent/rail */
#s-app .sb.collapsed .ni { margin: 0 auto 4px !important; }
#s-app .sb.collapsed .nav-grp-body { padding: 0 !important; }
#s-app .sb.collapsed .nav-grp-body::before { display: none !important; }

/* ── Light theme: raised dark-on-white ── */
[data-theme="light"] #s-app .sb .ni {
  background: linear-gradient(180deg, #FFFFFF, #EEF2F7) !important;
  border: 1px solid rgba(15,23,42,0.14) !important;
  box-shadow: 0 2px 4px rgba(15,23,42,0.10), inset 0 1px 0 #FFFFFF !important;
  color: var(--text-sidebar) !important; -webkit-text-fill-color: var(--text-sidebar) !important;
}
[data-theme="light"] #s-app .sb .ni .ni-lb { -webkit-text-fill-color: var(--text-sidebar) !important; }
[data-theme="light"] #s-app .sb .ni:hover {
  background: linear-gradient(180deg, #FFFFFF, #E2E8F0) !important;
  border-color: rgba(15,23,42,0.20) !important;
  box-shadow: 0 6px 14px rgba(15,23,42,0.16), inset 0 1px 0 #FFFFFF !important;
}
[data-theme="light"] #s-app .sb .ni.on {
  background: linear-gradient(180deg, rgba(37,99,235,0.16), rgba(37,99,235,0.07)) !important;
  border: 1px solid rgba(37,99,235,0.42) !important;
  box-shadow: 0 3px 12px rgba(37,99,235,0.22), inset 0 1px 0 #FFFFFF !important;
  color: #1D4ED8 !important; -webkit-text-fill-color: #1D4ED8 !important;
}
[data-theme="light"] #s-app .sb .ni.on .ni-lb { -webkit-text-fill-color: #1D4ED8 !important; }
[data-theme="light"] #s-app .sb .nav-grp-hd {
  background: linear-gradient(180deg, #FFFFFF, #E8EDF3) !important;
  border: 1px solid rgba(15,23,42,0.15) !important;
  box-shadow: 0 2px 4px rgba(15,23,42,0.10), inset 0 1px 0 #FFFFFF !important;
}
[data-theme="light"] #s-app .sb .nav-grp-hd:hover {
  background: linear-gradient(180deg, #FFFFFF, #D8E0EA) !important;
  border-color: rgba(15,23,42,0.22) !important;
  box-shadow: 0 6px 14px rgba(15,23,42,0.16), inset 0 1px 0 #FFFFFF !important;
}
[data-theme="light"] #s-app .sb .nav-grp-body::before { background: rgba(15,23,42,0.16) !important; }

/* The glyph must follow its .ni-ic per-icon colour in BOTH themes.
   -webkit-text-fill-color inherits down from .ni (= the text colour) and
   Chromium paints the icon with it — pin it back to the icon's own colour.
   NOTE: don't set `color` on .ni-ic here (the per-icon rules own it). */
#s-app .sb .ni .ni-ic {
  -webkit-text-fill-color: currentColor !important;
}
#s-app .sb .ni .ni-ic svg,
#s-app .sb .ni .ni-ic svg * {
  color:  inherit !important;
  stroke: currentColor !important;
  -webkit-text-fill-color: currentColor !important;
}

/* ════════════════════════════════════════════════
   PER-ICON ACCENT COLOURS — curated, harmonized
   (Tailwind-500 family). #s-app prefix → beats
   visual-overhaul's `#s-app .ni-ic { color: inherit }`.
════════════════════════════════════════════════ */
#s-app .ni[data-pg="dashboard"]         .ni-ic { color: #6366F1 !important; }
#s-app .ni[data-pg="contacts"]          .ni-ic { color: #3B82F6 !important; }
#s-app .ni[data-pg="recovery-dashboard"] .ni-ic { color: #FB7185 !important; }
#s-app .ni[data-pg="recovery"]          .ni-ic { color: #10B981 !important; }
#s-app .ni[data-pg="promises"]          .ni-ic { color: #F59E0B !important; }
#s-app .ni[data-pg="reminders"]         .ni-ic { color: #F97316 !important; }
#s-app .ni[data-pg="clients"]           .ni-ic { color: #3B82F6 !important; }
#s-app .ni[data-pg="units"]             .ni-ic { color: #14B8A6 !important; }
#s-app .ni[data-pg="sales"]             .ni-ic { color: #8B5CF6 !important; }
#s-app .ni[data-pg="agents"]            .ni-ic { color: #06B6D4 !important; }
#s-app .ni[data-pg="healthcenter"]      .ni-ic { color: #F43F5E !important; }
#s-app .ni[data-pg="noc"]               .ni-ic { color: #22C55E !important; }
#s-app .ni[data-pg="blacklist"]         .ni-ic { color: #EF4444 !important; }
#s-app .ni[data-pg="cancelledunits"]    .ni-ic { color: #F59E0B !important; }
#s-app .ni[data-pg="transferunits"]     .ni-ic { color: #818CF8 !important; }
#s-app .ni[data-pg="receipts"]          .ni-ic { color: #10B981 !important; }
#s-app .ni[data-pg="pdc"]               .ni-ic { color: #F59E0B !important; }
#s-app .ni[data-pg="reports"]           .ni-ic { color: #3B82F6 !important; }
#s-app .ni[data-pg="ledgers"]           .ni-ic { color: #0EA5E9 !important; }
#s-app .ni[data-pg="paylinks"]          .ni-ic { color: #06B6D4 !important; }
#s-app .ni[data-pg="commissions"]       .ni-ic { color: #22C55E !important; }
#s-app .ni[data-pg="agenttransactions"] .ni-ic { color: #14B8A6 !important; }
#s-app .ni[data-pg="payables"]          .ni-ic { color: #FB7185 !important; }
#s-app .ni[data-pg="receivables"]       .ni-ic { color: #34D399 !important; }
#s-app .ni[data-pg="projects"]          .ni-ic { color: #6366F1 !important; }
#s-app .ni[data-pg="categories"]        .ni-ic { color: #8B5CF6 !important; }
#s-app .ni[data-pg="banks"]             .ni-ic { color: #22C55E !important; }
#s-app .ni[data-pg="users"]             .ni-ic { color: #3B82F6 !important; }
#s-app .ni[data-pg="admin"]             .ni-ic { color: #94A3B8 !important; }
#s-app .ni[data-pg="backup"]            .ni-ic { color: #06B6D4 !important; }
#s-app .ni[data-pg="audit"]             .ni-ic { color: #F59E0B !important; }
#s-app .ni[data-pg="executive"]         .ni-ic { color: #6366F1 !important; }
#s-app .ni[data-pg="documents"]         .ni-ic { color: #94A3B8 !important; }
#s-app .ni[data-pg="commscenter"]       .ni-ic { color: #14B8A6 !important; }
#s-app .ni[data-pg="forecasting"]       .ni-ic { color: #8B5CF6 !important; }
#s-app .ni[data-pg="campaigns"]         .ni-ic { color: #F97316 !important; }
#s-app .ni[data-pg="radar"]             .ni-ic { color: #06B6D4 !important; }
#s-app .ni[data-pg="escalations"]       .ni-ic { color: #EF4444 !important; }
