/* ── Shared NHL sidebar ──────────────────────────────────────────────────────
   One copy of the sidebar recipe that used to be pasted into every page.
   Canonical team recipe: command_center.html. League pages add .sidebar--league.
   Team pages must define --team-primary / --team-secondary / --team-accent /
   --team-dark-gradient-base / --team-dark-gradient-mid (theme wrapper or :root).
   Load order on every page: mobile.css → sidebar.css → the page's inline <style>,
   so page-specific rules keep winning ties.
   .pulse-dot / .session-pill are used outside the sidebar too (war_room main
   column) — keep them unscoped. */

.sidebar{
  position:sticky;top:0;height:100vh;
  background:linear-gradient(180deg,#0A100E 0%,#07090A 100%);
  border-right:1px solid var(--line);
  display:flex;flex-direction:column;
  padding:22px 16px 18px;
  min-width:248px;
  overflow-y:auto;
}
.brand-link{
  display:flex;align-items:center;gap:12px;
  padding:6px 10px 22px;border-bottom:1px solid var(--line);margin-bottom:18px;
  text-decoration:none;color:inherit;opacity:1;transition:opacity .2s;
}
.brand-link:hover{opacity:.8;}
.brand-logo{
  width:40px;height:40px;border-radius:10px;display:grid;place-items:center;
  background:radial-gradient(120% 120% at 30% 20%,var(--team-dark-gradient-mid),var(--team-dark-gradient-base) 70%);
  box-shadow:inset 0 0 0 1px rgba(79,208,230,.25),0 6px 20px color-mix(in srgb,var(--team-primary) 18%,transparent);
  color:var(--team-accent,#4FD0E6);
}
.brand-logo img{width:28px;height:28px;object-fit:contain;}
.brand-name{font-family:'Inter Tight';font-weight:800;letter-spacing:.02em;font-size:14px;line-height:1;text-transform:uppercase;}
.brand-sub{color:var(--t-3);font-size:11px;letter-spacing:.18em;text-transform:uppercase;margin-top:5px;}

.nav-section-label{
  color:var(--t-4);font-size:10px;letter-spacing:.22em;text-transform:uppercase;font-weight:700;
  padding:0 12px 8px;
}
.nav{display:flex;flex-direction:column;gap:2px;}
.nav a{
  display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;
  color:var(--t-2);text-decoration:none;font-size:13.5px;font-weight:500;
  border:1px solid transparent;
  transition:background .18s,color .18s,border-color .18s;
}
.nav a:hover{background:rgba(255,255,255,0.05);color:var(--t-1);}
.nav a.active{
  background:linear-gradient(180deg,rgba(31,107,79,0.22),rgba(31,107,79,0.10));
  color:#fff;border-color:rgba(79,208,230,0.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.04);
  position:relative;
}
.nav a.active::before{
  content:"";position:absolute;left:-16px;top:8px;bottom:8px;width:3px;
  background:linear-gradient(180deg,var(--team-accent),var(--team-primary));
  border-radius:0 3px 3px 0;box-shadow:0 0 16px rgba(79,208,230,.45);
}
.nav .icon{width:18px;height:18px;display:grid;place-items:center;color:var(--t-3);flex-shrink:0;}
.nav a.active .icon{color:var(--team-secondary,#4FD0E6);}
.nav .badge{margin-left:auto;font-family:'JetBrains Mono';font-size:10px;color:var(--team-secondary,#4FD0E6);background:rgba(79,208,230,.14);padding:2px 6px;border-radius:5px;font-weight:700;}

.subnav{margin:2px 0 4px 40px;display:flex;flex-direction:column;gap:1px;}
.subnav-item{padding:7px 12px;border-radius:8px;color:var(--t-3);text-decoration:none;font-size:12.5px;display:flex;align-items:center;gap:8px;}
.subnav-item:hover{color:var(--t-1);background:rgba(255,255,255,0.04);}
.subnav-item.active{color:var(--team-secondary,#4FD0E6);font-weight:600;}
.subnav-item em{font-style:normal;font-family:'JetBrains Mono';font-size:8px;letter-spacing:.1em;
  color:var(--t-4);border:1px solid var(--line-strong);border-radius:4px;padding:1px 5px;margin-left:auto;}

/* War Room's subnav rail — indented cyan border instead of the plain list */
.subnav--war{
  margin:2px 0 2px 30px;padding:4px 0;
  border-left:1px solid rgba(79,208,230,0.18);
}
.subnav--war .subnav-item{
  padding:6px 12px;border-radius:0 8px 8px 0;
  font-size:12px;cursor:pointer;
  transition:color .18s,background .18s;
}
.subnav--war .subnav-item.active{color:var(--wheat,#4FD0E6);}
.subnav--war .subnav-item.soon{color:var(--t-4);cursor:default;opacity:.6;}
.subnav--war .subnav-item.soon:hover{background:none;color:var(--t-4);}
.subnav--war .subnav-item.soon em{font-size:8px;letter-spacing:.1em;padding:1px 5px;border-radius:4px;
  margin-left:5px;vertical-align:1px;color:var(--t-4);border:1px solid var(--line-strong);}

/* Session pill (War Room / Be the GM foot; .pulse-dot also used in page bodies) */
.session-pill{
  display:flex;align-items:center;gap:8px;
  padding:8px 10px;border-radius:10px;
  background:rgba(79,208,230,0.06);border:1px solid rgba(79,208,230,0.16);
  font-family:'JetBrains Mono';font-size:10px;letter-spacing:.10em;color:var(--wheat,#4FD0E6);
}
.pulse-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.pulse-dot.wheat{background:var(--wheat,#4FD0E6);animation:wheatPulse 2.2s infinite;}
@keyframes wheatPulse{0%,100%{box-shadow:0 0 0 0 rgba(79,208,230,0.5);}70%{box-shadow:0 0 0 8px rgba(79,208,230,0);}}

.sidebar-foot{
  margin-top:auto;padding-top:16px;border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:10px;
}
.user-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;}
.user-avatar{
  width:32px;height:32px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(135deg,#1F6B4F,#062A24);
  border:1px solid rgba(79,208,230,0.25);
  color:var(--team-accent,#4FD0E6);font-size:12px;font-weight:700;flex-shrink:0;
}
.user-name{font-size:13px;font-weight:600;color:#fff;}
.user-role{font-size:11px;color:var(--t-3);}

/* ── League switcher (the brand block is a button; panel drops below it) ──── */
.brand-switch{position:relative;}
button.brand-link{
  width:100%;background:none;border:0;border-bottom:1px solid var(--line);
  color:inherit;font:inherit;text-align:left;cursor:pointer;
}
.brand-switch .brand-name,.brand-switch .brand-sub{display:block;}
.brand-switch-panel{
  position:absolute;top:calc(100% - 10px);left:0;right:0;z-index:60;
  background:linear-gradient(180deg,#101820,#0A1014);
  border:1px solid var(--line-strong,rgba(232,235,230,0.12));
  border-radius:14px;padding:6px;
  box-shadow:0 18px 40px rgba(0,0,0,.55);
}
.lsw-row{display:flex;align-items:center;gap:10px;padding:10px;border-radius:10px;text-decoration:none;color:#fff;}
.lsw-row:hover{background:rgba(255,255,255,.06);}
.lsw-txt{min-width:0;}
.lsw-name{display:block;font-family:'Inter Tight';font-weight:800;font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;line-height:1.1;}
.lsw-sub{display:block;font-family:'JetBrains Mono';font-size:9px;letter-spacing:.20em;text-transform:uppercase;margin-top:2px;}
.lsw-sub--nhl{color:#4FD0E6;}
.lsw-sub--nba{color:#F59E0B;}
.lsw-dot{margin-left:auto;width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.lsw-dot--nhl{background:#4FD0E6;box-shadow:0 0 8px rgba(79,208,230,.6);}
.lsw-dot--nba{background:#F59E0B;box-shadow:0 0 8px rgba(245,158,11,.6);}
.lsw-sub--soccer{color:#4ADE80;}
.lsw-dot--soccer{background:#4ADE80;box-shadow:0 0 8px rgba(74,222,128,.6);}

/* League-view variant — flat ice chip and flat active states (no team colors) */
.sidebar--league .brand-logo{background:rgba(79,208,230,.08);box-shadow:inset 0 0 0 1px rgba(79,208,230,.25);}
.sidebar--league .nav a.active{
  background:rgba(79,208,230,0.10);color:#fff;border-color:rgba(79,208,230,0.18);
  box-shadow:none;
}
.sidebar--league .nav a.active::before{display:none;}
.sidebar--league .subnav-item.active{color:var(--ice,#4FD0E6);}
