:root{
  --sb-z-menu:60;
  --sb-z-backdrop:49;
  --sb-side-w:240px;
  --sb-side-collapsed:56px;
  --sb-side-bg: rgba(9,13,18,0.94);
  --sb-side-border: var(--panel-border, rgba(99,215,255,.25));
  --sb-side-fg: #d4e6fa;
  --sb-side-muted: var(--muted, rgba(212,230,250,.65));
  --sb-accent: var(--amber, rgba(207,255,4,1));
  --sb-accent2: var(--cyan, rgba(99,215,255,.9));
}

/* ── Hamburger (mobile) ───────────────────────────────────────────── */
.sb-menu-btn{
  position:fixed;
  top:12px;
  left:12px;
  z-index:var(--sb-z-menu);
  width:38px;
  height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:2px;
  background: rgba(9,13,18,0.65);
  border:1px solid var(--sb-side-border);
  color:var(--sb-side-fg);
  box-shadow: 0 10px 30px rgba(0,0,0,0.35), inset 0 0 0 1px rgba(15,29,44,0.9);
  cursor:pointer;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.sb-menu-btn:hover{ transform: translateY(-1px); border-color: var(--sb-accent2); box-shadow: 0 12px 36px rgba(0,0,0,0.45), 0 0 0 2px rgba(99,215,255,.10); }
.sb-menu-btn:active{ transform: translateY(0px) scale(0.98); }
.sb-menu-btn svg{ display:block }

/* ── Backdrop (mobile) ────────────────────────────────────────────── */
.sb-backdrop{
  position:fixed;
  inset:0;
  z-index:var(--sb-z-backdrop);
  background: rgba(0,0,0,0);
  opacity:0;
  pointer-events:none;
  transition: opacity .25s ease, background .25s ease;
}
.sb-backdrop[data-open="1"]{
  opacity:1;
  pointer-events:auto;
  background: rgba(0,0,0,0.70);
  backdrop-filter: blur(6px);
}

/* ── Sidebar shell ────────────────────────────────────────────────── */
.sb-sidebar{
  position:fixed;
  top:0;
  left:0;
  bottom:0;
  z-index:calc(var(--sb-z-menu) - 5);
  width:var(--sb-side-w);
  transform: translateX(-102%);
  transition: transform .30s cubic-bezier(.4,0,.2,1), width .25s ease;
  background: var(--sb-side-bg);
  border-right:1px solid var(--sb-side-border);
  overflow:hidden;
}
.sb-sidebar[data-open="1"]{ transform: translateX(0); }

.sb-inner{
  height:100%;
  display:flex;
  flex-direction:column;
}

.sb-brand{
  display:flex;
  align-items:center;
  gap:10px;
  padding:14px 14px 12px;
  border-bottom:1px dashed rgba(99,215,255,.22);
  animation: sb-breathe 4s ease-in-out infinite;
}
@keyframes sb-breathe {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(1.15) drop-shadow(0 0 6px rgba(207,255,4,0.15)); }
}
.sb-mark{
  width:30px;height:30px;
  flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(207,255,4,.3);
  background: rgba(9,13,18,0.6);
  border-radius:4px;
  position:relative;
  box-shadow: 0 0 12px rgba(207,255,4,.08), inset 0 0 0 1px rgba(15,29,44,0.9);
  transition: border-color .3s, box-shadow .3s, width .25s ease, height .25s ease;
}
.sb-mark:hover{
  border-color:rgba(207,255,4,.5);
  box-shadow: 0 0 20px rgba(207,255,4,.15), inset 0 0 0 1px rgba(15,29,44,0.9);
}
.sb-mark svg{
  width:18px;height:18px;
  color:var(--sb-accent);
  filter:drop-shadow(0 0 4px rgba(207,255,4,.3));
  transition: width .25s ease, height .25s ease;
}
.sb-brand strong{
  font-size:12px;
  letter-spacing:.10em;
  text-transform:uppercase;
  color: var(--sb-accent);
}
.sb-brand span{
  display:block;
  margin-top:2px;
  font-size:11px;
  color: var(--sb-side-muted);
}

.sb-nav{
  padding:10px;
  display:flex;
  flex-direction:column;
  gap:6px;
  flex:1;
}
.sb-link{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 10px;
  border-radius:2px;
  color: var(--sb-side-fg);
  text-decoration:none;
  border:1px solid rgba(99,215,255,.14);
  background: rgba(11,22,34,0.35);
  transition: border-color .2s ease, background .2s ease, transform .2s ease, box-shadow .2s ease;
  position: relative;
  overflow: hidden;
}
.sb-link::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(207,255,4,0.04), transparent);
  opacity: 0;
  transition: opacity 0.25s;
  pointer-events: none;
}
.sb-link:hover::after {
  opacity: 1;
}
.sb-link:hover{
  transform: translateX(2px);
  border-color: rgba(99,215,255,.32);
  background: rgba(11,22,34,0.60);
  box-shadow: 0 2px 12px rgba(0,0,0,0.2);
}
.sb-link:active {
  transform: translateX(2px) scale(0.98);
}
.sb-link[aria-current="page"]{
  border-color: rgba(207,255,4,.32);
  box-shadow: 0 0 0 2px rgba(207,255,4,.07);
  background: rgba(207,255,4,0.04);
}
.sb-link[aria-current="page"]::before {
  content: '';
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent, #cff004);
  animation: sb-pulse 2s ease-in-out infinite;
}
@keyframes sb-pulse {
  0%, 100% { opacity: 1; box-shadow: 0 0 4px var(--accent, #cff004); }
  50% { opacity: 0.4; box-shadow: 0 0 8px var(--accent, #cff004); }
}
.sb-ico{
  width:18px;height:18px;
  flex-shrink:0;
  color: rgba(212,230,250,.88);
  transition: color .2s;
}
.sb-link:hover .sb-ico{ color:#fff; }
.sb-link[aria-current="page"] .sb-ico{ color: var(--sb-accent); }
.sb-text{
  font-weight:800;
  font-size:12px;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.sb-sub{
  margin-left:auto;
  font-size:11px;
  color: var(--sb-side-muted);
}

.sb-footer{
  margin-top:auto;
  padding:12px 12px 14px;
  border-top:1px dashed rgba(99,215,255,.22);
  color: var(--sb-side-muted);
  font-size:11px;
  line-height:1.35;
}
.sb-footer a{ color: rgba(99,215,255,.9); text-decoration:none; }
.sb-footer a:hover{ text-decoration:underline; }

.sb-powered{
  display:flex;
  align-items:center;
  gap:6px;
  margin-bottom:8px;
}
.sb-powered-label{
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.1em;
  color: rgba(212,230,250,.4);
}
.sb-powered-link{
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-weight:700;
  font-size:11px;
  letter-spacing:.04em;
  color: var(--sb-accent) !important;
  transition: text-shadow .2s;
}
.sb-powered-link:hover{
  text-decoration:none !important;
  text-shadow: 0 0 8px rgba(207,255,4,.4);
}
.sb-powered-logo{
  width:16px;
  height:16px;
  color: var(--sb-accent);
  filter: drop-shadow(0 0 4px rgba(207,255,4,.25));
}
.sb-footer-links{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
.sb-footer-links a{
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-size:10px;
  color: var(--sb-side-muted) !important;
  transition: color .2s;
}
.sb-footer-links a:hover{
  color: var(--sb-accent2) !important;
  text-decoration:none !important;
}
.sb-footer-links svg{
  opacity:.7;
  transition: opacity .2s;
}
.sb-footer-links a:hover svg{
  opacity:1;
}

/* Desktop: always show a slim rail that expands on hover (stonkbrokers-style). */
@media (min-width: 980px){
  .sb-menu-btn{ display:none; }
  .sb-backdrop{ display:none; }
  .sb-sidebar{
    transform: translateX(0);
    width: var(--sb-side-collapsed);
    transition: width .28s cubic-bezier(.4,0,.2,1);
  }
  .sb-sidebar:hover{ width: var(--sb-side-w); }
  .sb-inner{ overflow-y:auto; overflow-x:hidden; }

  /* Collapsed: center icons, hide everything else */
  .sb-nav{ padding:8px 4px; }
  .sb-link{
    justify-content:center;
    gap:0;
    padding:12px 0;
    border-color:transparent;
    background:transparent;
    overflow:hidden;
    border-radius:6px;
  }
  .sb-link:hover{ background:rgba(207,255,4,.06); border-color:rgba(207,255,4,.12); }
  .sb-link[aria-current="page"]{ border-color:rgba(207,255,4,.22); background:rgba(207,255,4,.08); }
  .sb-link[aria-current="page"]::before{ left:50%; transform:translate(-50%,-50%); top:4px; width:4px; height:4px; }
  .sb-ico{ width:20px; height:20px; }
  .sb-text, .sb-sub{
    display:none;
  }
  .sb-brand{ justify-content:center; padding:12px 4px 10px; gap:0; }
  .sb-brand .sb-brand-text{
    display:none;
  }
  .sb-mark{ width:36px; height:36px; }
  .sb-mark svg{ width:20px; height:20px; }
  .sb-footer, .sb-powered, .sb-footer-links{
    opacity:0; overflow:hidden; max-height:0; padding:0;
    transition: opacity .2s ease, max-height .25s ease, padding .25s ease;
  }

  /* Expanded (hover): restore everything */
  .sb-sidebar:hover .sb-nav{ padding:10px; }
  .sb-sidebar:hover .sb-link{
    justify-content:flex-start;
    gap:10px;
    padding:10px 10px;
    border-color:rgba(99,215,255,.14);
    background:rgba(11,22,34,0.35);
    border-radius:2px;
  }
  .sb-sidebar:hover .sb-link:hover{
    border-color:rgba(99,215,255,.32);
    background:rgba(11,22,34,0.60);
  }
  .sb-sidebar:hover .sb-link[aria-current="page"]{
    border-color:rgba(207,255,4,.32);
  }
  .sb-sidebar:hover .sb-link[aria-current="page"]::before{
    left:10px; transform:translateY(-50%); top:50%; width:6px; height:6px;
  }
  .sb-sidebar:hover .sb-ico{ width:18px; height:18px; }
  .sb-sidebar:hover .sb-text,
  .sb-sidebar:hover .sb-sub{ display:inline; }
  .sb-sidebar:hover .sb-brand{ justify-content:flex-start; gap:10px; padding:14px 14px 12px; }
  .sb-sidebar:hover .sb-brand .sb-brand-text{ display:block; }
  .sb-sidebar:hover .sb-mark{ width:30px; height:30px; }
  .sb-sidebar:hover .sb-footer{ opacity:1; max-height:120px; padding:12px 12px 14px; }
  .sb-sidebar:hover .sb-powered{ opacity:1; max-height:60px; }
  .sb-sidebar:hover .sb-footer-links{ opacity:1; max-height:60px; }
}

/* Desktop collapsed: show tooltip on icon hover */
@media (min-width: 980px){
  .sb-sidebar:not(:hover) .sb-link{
    position:relative;
  }
  .sb-sidebar:not(:hover) .sb-link:hover::after{
    content:attr(data-tip);
    position:absolute;
    left:calc(100% + 8px);
    top:50%;
    transform:translateY(-50%);
    padding:5px 10px;
    background:rgba(9,13,18,.95);
    border:1px solid rgba(207,255,4,.2);
    border-radius:4px;
    color:#e6e6e6;
    font-size:11px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
    white-space:nowrap;
    z-index:100;
    pointer-events:none;
    box-shadow:0 4px 16px rgba(0,0,0,.4);
  }
}

/* Page content spacing when sidebar is present on desktop.
   Applied to body so .wrap { margin:0 auto } centering is preserved. */
@media (min-width: 980px){
  body[data-has-sidebar="1"]{
    margin-left: var(--sb-side-collapsed);
  }
}

