/* ── Shared navy top nav ──────────────────────────────────────────────────
   Used by every page that's migrated off the older dark left-sidebar
   pattern (src/shared/app-sidebar.ts) onto the shared component in
   src/shared/top-nav.ts. Self-contained: only references the custom
   properties declared below, so a page can load just this file (plus
   hub.css for the shared --font variable) without hub-redesign.css's
   other hub-page-specific styling (cards, confetti, sidebar, etc). */

:root {
  --hb-navy: #16223d;
  --hb-blue: #2f8fea;
  --hb-sky: #7cc4f5;
  --hb-page-bg: #f5f8fc;
  --hb-card-bg: #ffffff;
  --hb-card-border: #dce6f5;
  --hb-text-muted: #8b93a3;
  --hb-text-primary: #25324a;
}

/* Light page background + centered content column -- shared by every page
   using this top nav, matching the hub page's own body background and
   the max-width its .hb-body centers content to. */
body.hb-body-bg {
  background: var(--hb-page-bg);
  min-height: 100vh;
}
.hb-page-center {
  max-width: 1296px;
  margin: 0 auto;
}

.hb-topnav {
  background: var(--hb-navy);
  width: 100%;
  position: sticky;
  top: 0;
  z-index: 40;
}

.hb-topnav-inner {
  max-width: 1296px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 10px 20px;
}

.hb-topnav-logo {
  display: flex;
  align-items: center;
  gap: 9px;
  text-decoration: none;
  flex-shrink: 0;
}
.hb-topnav-logo-img {
  width: 27px;
  height: 27px;
  border-radius: 7.2px;
}
.hb-topnav-brand {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Inter, Helvetica, Arial, sans-serif;
  font-size: 13.1px;
  font-weight: 800;
  color: #fff;
  line-height: 1.2;
}
.hb-topnav-sub {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: var(--hb-sky);
  line-height: 1.3;
}

.hb-topnav-links {
  display: flex;
  align-items: center;
  gap: 2px;
  flex: 1;
  flex-wrap: nowrap;
}

.hb-nav-link {
  display: inline-flex;
  align-items: center;
  gap: 3.6px;
  font-size: 12.2px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  padding: 7.2px 10.8px;
  border-radius: 7.2px;
  border: none;
  background: transparent;
  cursor: pointer;
  white-space: nowrap;
  position: relative;
}
.hb-nav-link:hover {
  color: #fff;
}
.hb-nav-link.active {
  color: #fff;
  font-weight: 800;
}
.hb-nav-link.active::after {
  content: '';
  position: absolute;
  left: 10.8px;
  right: 10.8px;
  bottom: 0;
  height: 1.8px;
  border-radius: 1.8px;
  background: var(--hb-sky);
}

/* "Opens externally" indicator -- .hb-nav-link's flex + gap already spaces
   it from the label text; color inherits from the link via currentColor. */
.hb-nav-ext-icon {
  opacity: 0.7;
  flex-shrink: 0;
}

.hb-topnav-actions {
  display: flex;
  align-items: center;
  gap: 5.4px;
  flex-shrink: 0;
}

.hb-icon-btn {
  position: relative;
  width: 30.6px;
  height: 30.6px;
  border-radius: 8999.1px;
  border: none;
  background: transparent;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.hb-icon-btn:hover {
  background: rgba(255, 255, 255, 0.12);
}

/* ── Admin on/off slider switch (Option B) ────────────────────────────── */
.hb-admin-sw {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 5px 4px;
  border-radius: 8px;
  flex-shrink: 0;
  white-space: nowrap;
}
.hb-admin-sw:hover {
  background: rgba(255, 255, 255, 0.08);
}
.hb-admin-sw-label {
  font-size: 12.5px;
  font-weight: 800;
  color: rgba(255, 255, 255, 0.55);
}
.hb-admin-sw--on .hb-admin-sw-label {
  color: #f3c85c;
}
.hb-admin-sw-track {
  width: 36px;
  height: 20px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.22);
  position: relative;
  display: block;
  transition: background 0.18s;
  flex-shrink: 0;
}
.hb-admin-sw--on .hb-admin-sw-track {
  background: #e2b33c;
}
.hb-admin-sw-thumb {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  transition: left 0.18s;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.22);
}
.hb-admin-sw--on .hb-admin-sw-thumb {
  left: 18px;
}

/* ── Colleague search — frosted pill ─────────────────────────────────── */
.hb-csearch {
  position: relative;
  flex-shrink: 1; /* shrinks before other nav items get squeezed */
  min-width: 0;
}
/* Icon-only button: visible only on narrow screens */
.hb-csearch-icon {
  display: none;
  width: 36px;
  height: 36px;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  color: rgba(255, 255, 255, 0.75);
  cursor: pointer;
  transition: background 0.15s;
}
.hb-csearch-icon:hover {
  background: rgba(255, 255, 255, 0.15);
}
/* Full frosted pill: visible on wide screens */
.hb-csearch-field {
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  padding: 0 12px;
  height: 34px;
  width: 230px;
  min-width: 0;
  color: rgba(255, 255, 255, 0.65);
  cursor: text;
  transition:
    background 0.15s,
    border-color 0.15s,
    box-shadow 0.15s;
}
.hb-csearch-field:hover {
  background: rgba(255, 255, 255, 0.13);
}
.hb-csearch-field:focus-within {
  background: #fff;
  border-color: rgba(255, 255, 255, 0.6);
  box-shadow: 0 0 0 3px rgba(100, 180, 255, 0.35);
  color: #333;
}
.hb-csearch-input {
  flex: 1;
  min-width: 0;
  background: transparent;
  border: none;
  outline: none;
  color: #fff;
  font-size: 13px;
  font-family: inherit;
  transition: color 0.15s;
}
.hb-csearch-field:focus-within .hb-csearch-input {
  color: #1a2535;
}
.hb-csearch-input::placeholder {
  color: rgba(255, 255, 255, 0.5);
  transition: color 0.15s;
}
.hb-csearch-field:focus-within .hb-csearch-input::placeholder {
  color: #9aa3b0;
}
.hb-csearch-input::-webkit-search-cancel-button {
  display: none;
}
/* Mag icon color */
.hb-csearch-field > svg {
  flex-shrink: 0;
  transition: color 0.15s;
}
.hb-csearch-field:focus-within > svg {
  color: #555;
}
/* Results dropdown — wider than pill, left-aligned */
.hb-csearch-drop {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  width: 320px;
  background: #fff;
  color: #25324a;
  border: 1px solid #e6eaf1;
  border-radius: 16px;
  box-shadow: 0 18px 40px rgba(22, 34, 61, 0.18);
  padding: 6px;
  z-index: 60;
}
.hb-csearch-result {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px;
  border-radius: 10px;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
}
.hb-csearch-result:hover,
.hb-csearch-result.hb-csearch-active {
  background: #eef5fd;
}
.hb-csearch-av-ini {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  flex-shrink: 0;
  background: #e3eefb;
  color: #1b6fc0;
  font-weight: 800;
  font-size: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hb-csearch-name {
  display: block;
  font-size: 13.5px;
  font-weight: 600;
  color: #16223d;
}
.hb-csearch-name mark {
  background: #fff1c2;
  color: inherit;
  border-radius: 3px;
  padding: 0;
}
.hb-csearch-sub {
  display: block;
  font-size: 12px;
  color: #7a8499;
}
.hb-csearch-foot {
  border-top: 1px solid #f0f2f6;
  margin-top: 4px;
  padding: 8px 8px 2px;
  font-size: 12px;
  color: #7a8499;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.hb-csearch-foot a {
  color: #1b6fc0;
  font-weight: 700;
  text-decoration: none;
}
.hb-csearch-foot a:hover {
  text-decoration: underline;
}

/* ── Admin mode bottom bar ───────────────────────────────────────────────
   Gold 3px line along the bottom of the nav, gold subtitle text, gold
   active underline on nav links. */
.hb-topnav--admin {
  box-shadow: inset 0 -3px 0 #f3c85c;
}
.hb-topnav--admin .hb-topnav-sub {
  color: #f3c85c;
}
/* Admin tab active underline: gold instead of sky-blue */
.hb-topnav--admin .hb-nav-link.active--admin-tab {
  color: #fff;
  font-weight: 800;
}
.hb-topnav--admin .hb-nav-link.active--admin-tab::after {
  content: '';
  position: absolute;
  left: 10.8px;
  right: 10.8px;
  bottom: 0;
  height: 1.8px;
  border-radius: 1.8px;
  background: #f3c85c;
}
/* Admin area nav: inactive areas are dimmed, active gets gold underline */
.hb-topnav--admin .hb-nav-link {
  color: rgba(255, 255, 255, 0.6);
}
.hb-topnav--admin .hb-nav-link:hover {
  color: rgba(255, 255, 255, 0.9);
}
.hb-topnav--admin .hb-nav-link.active--admin-area {
  color: #fff;
  font-weight: 800;
}
.hb-topnav--admin .hb-nav-link.active--admin-area::after {
  content: '';
  position: absolute;
  left: 10.8px;
  right: 10.8px;
  bottom: 0;
  height: 2px;
  border-radius: 1.8px;
  background: #f3c85c;
}

/* Bell's unread count -- red with a thin navy ring, top-right of the
   icon button. Populated client-side from the same per-notification
   localStorage "seen" state the bell's own dropdown list uses. */
.hb-bell-count-bubble {
  position: absolute;
  top: 1px;
  right: 1px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 15.3px;
  height: 15.3px;
  padding: 0 3.6px;
  border-radius: 8999.1px;
  background: #f0625a;
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  box-sizing: border-box;
  box-shadow: 0 0 0 1.4px var(--hb-navy, #16223d);
}
.hb-bell-count-bubble[hidden] {
  display: none;
}

/* ── Notification panel (bell dropdown) ────────────────────────────────── */
.hb-notif-menu {
  width: 380px;
  max-width: calc(100vw - 28px);
  max-height: 480px;
  overflow-y: auto;
  padding: 0;
}
/* Panel header row */
.hb-notif-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 13px 16px 10px;
}
.hb-notif-head-title {
  font-size: 15px;
  font-weight: 800;
  color: var(--hb-text-primary);
}
.hb-notif-new-badge {
  font-size: 11px;
  font-weight: 800;
  color: #fff;
  background: #e5484d;
  border-radius: 999px;
  padding: 1px 7px;
}
.hb-notif-new-badge[hidden] {
  display: none;
}
.hb-notif-mark-read {
  margin-left: auto;
  border: none;
  background: none;
  color: var(--hb-blue);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  padding: 1px;
}
.hb-notif-mark-read:hover {
  text-decoration: underline;
}
/* Filter chips */
.hb-nf-chips {
  display: flex;
  gap: 6px;
  padding: 0 16px 10px;
}
.hb-nf-chip {
  border: none;
  border-radius: 999px;
  padding: 5px 11px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  background: #f3f6fa;
  color: #4a5872;
}
.hb-nf-chip.active {
  background: #14213d;
  color: #fff;
}
/* Section headers (TODAY / EARLIER) */
.hb-notif-section {
  padding: 6px 16px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #8a94a6;
  background: #fafbfd;
  border-top: 1px solid var(--hb-card-border);
}
/* Notification items */
.hb-notif-list {
  display: flex;
  flex-direction: column;
}
.hb-notif-empty {
  padding: 20px 16px;
  font-size: 12px;
  color: var(--hb-text-muted);
  text-align: center;
  margin: 0;
}
.hb-notif-item {
  display: flex;
  gap: 12px;
  padding: 12px 16px;
  border-top: 1px solid var(--hb-card-border);
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  background: #fff;
  align-items: flex-start;
}
.hb-notif-item--unread {
  background: #f5f9fe;
}
.hb-notif-item:hover {
  background: #eef5ff;
}
/* Colored round icon by type */
.hb-notif-icon {
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hb-notif-icon--shoutout {
  background: #eaf5ff;
  color: #2f8ce8;
}
.hb-notif-icon--pulse {
  background: #fdf3da;
  color: #b88a1e;
}
.hb-notif-icon--streak {
  background: #e7f6ec;
  color: #2e9e5b;
}
.hb-notif-icon--newhire {
  background: #f3f6fa;
  color: #4a5872;
}
.hb-notif-icon--admin {
  background: #fdf3da;
  color: #8a6512;
}
.hb-notif-icon--reward {
  background: #fdf3da;
  color: #b88a1e;
}
.hb-notif-icon--feedback {
  background: #eaf5ff;
  color: #2f8ce8;
}
.hb-notif-icon--default {
  background: #f3f6fa;
  color: #4a5872;
}
/* Content area */
.hb-notif-content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.hb-notif-text {
  font-size: 13px;
  line-height: 1.45;
  color: #2d3a52;
}
.hb-notif-pts {
  color: #2e9e5b;
  font-weight: 700;
}
.hb-notif-admin-tag {
  display: inline-flex;
  font-size: 10px;
  font-weight: 800;
  color: #8a6512;
  background: #fdf3da;
  border-radius: 999px;
  padding: 1px 6px;
  margin-right: 4px;
  vertical-align: middle;
}
.hb-notif-time {
  display: block;
  font-size: 11.5px;
  color: #8a94a6;
}
/* Unread dot */
.hb-notif-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--hb-blue);
  flex-shrink: 0;
  margin-top: 5px;
}
/* New-design notification item elements */
.hb-notif-item--unread {
  box-shadow: inset 3px 0 0 #2f8ce8;
}
.hb-notif-icon-circle {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hb-notif-row1 {
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.hb-notif-title {
  font-size: 13.5px;
  font-weight: 600;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #14213d;
}
.hb-notif-title--unread {
  font-weight: 800;
}
.hb-notif-body {
  font-size: 12.5px;
  color: #5b6880;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
}
.hb-notif-pts-badge {
  flex-shrink: 0;
  align-self: center;
  font-size: 12px;
  font-weight: 800;
  color: #1d7442;
  background: #e7f6ec;
  border-radius: 999px;
  padding: 3px 8px;
  white-space: nowrap;
}
/* Footer */
.hb-notif-footer-link {
  display: block;
  text-align: center;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--hb-blue);
  text-decoration: none;
  padding: 12px 16px;
  border-top: 1px solid var(--hb-card-border);
}
.hb-notif-footer-link:hover {
  background: var(--hb-page-bg);
}

/* On narrow viewports pin the notification panel to the viewport so it
   doesn't run off-screen. 63px clears the topnav height + gap. */
@media (max-width: 520px) {
  .hb-notif-menu {
    position: fixed;
    top: 63px;
    left: 10px;
    right: 10px;
    width: auto;
    max-width: none;
  }
}

.hb-account-trigger {
  display: flex;
  align-items: center;
  gap: 5.4px;
  border: none;
  background: transparent;
  color: #fff;
  cursor: pointer;
  padding: 3px;
  border-radius: 50%;
}
.hb-account-trigger:hover {
  background: rgba(255, 255, 255, 0.1);
}
.hb-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--hb-sky);
  color: var(--hb-navy);
  font-size: 10.8px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
}
.hb-avatar-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  opacity: 0;
  transition: opacity 150ms ease;
}
.hb-avatar-photo--loaded {
  opacity: 1;
}

/* ── Dropdowns (Coming Soon / Admin / Manager / account) ─────────────────── */
.hb-dropdown {
  position: relative;
}
.hb-dropdown-trigger {
  display: inline-flex;
  align-items: center;
  gap: 3.6px;
}
.hb-dropdown-menu {
  position: absolute;
  top: calc(100% + 7.2px);
  left: 0;
  min-width: 198px;
  background: var(--hb-card-bg);
  border: 1px solid var(--hb-card-border);
  border-radius: 10.8px;
  box-shadow: 0 10.8px 28.8px rgba(22, 34, 61, 0.16);
  padding: 5.4px;
  z-index: 50;
}
.hb-dropdown-menu--right {
  left: auto;
  right: 0;
}
.hb-dropdown-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 9px;
  font-size: 11.7px;
  font-weight: 600;
  color: var(--hb-text-primary);
  text-decoration: none;
  padding: 8.1px 9px;
  border-radius: 7.2px;
}
a.hb-dropdown-item:hover {
  background: var(--hb-page-bg);
}
.hb-dropdown-item--static {
  color: var(--hb-text-muted);
  cursor: default;
}
.hb-dropdown-item--featured {
  color: var(--hb-blue);
  font-weight: 800;
}
.hb-dropdown-divider {
  height: 1px;
  background: var(--hb-card-border);
  margin: 5.4px 3.6px;
}

/* ── Gold points pill ───────────────────────────────────────────────────── */
.hb-points-pill {
  display: flex;
  align-items: center;
  gap: 3.6px;
  background: linear-gradient(135deg, #ffe9a8, #f2c43d 55%, #d9a441);
  color: #5a3d0a;
  font-size: 11.2px;
  font-weight: 800;
  padding: 5.4px 10.8px;
  border-radius: 8999.1px;
  white-space: nowrap;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
  opacity: 0;
  transition: opacity 150ms ease;
}
.hb-points-pill[data-loaded='true'] {
  opacity: 1;
}
@media (max-width: 640px) {
  .hb-points-pill {
    display: none;
  }
}

.hb-soon-tag {
  font-size: 8.6px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  color: var(--hb-blue);
  background: rgba(47, 143, 234, 0.12);
  border-radius: 8999.1px;
  padding: 1.8px 6.3px;
}

@media (max-width: 900px) {
  .hb-topnav-links {
    display: none;
  }
  .hb-admin-sw {
    display: none;
  }
  /* Collapse search to icon-only; clicking the icon opens the full field */
  .hb-csearch-field {
    display: none;
  }
  .hb-csearch-icon {
    display: flex;
  }
  .hb-csearch.hb-csearch--open .hb-csearch-icon {
    display: none;
  }
  .hb-csearch.hb-csearch--open .hb-csearch-field {
    display: flex;
    position: fixed;
    top: 8px;
    left: 10px;
    right: 10px;
    width: auto;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.15);
    z-index: 60;
  }
  .hb-csearch.hb-csearch--open .hb-csearch-drop {
    position: fixed;
    top: 58px;
    left: 10px;
    right: 10px;
    width: auto;
  }
}

/* ── Profile (account) dropdown menu ────────────────────────────────────── */
.hb-acct-menu {
  width: 320px;
  max-width: calc(100vw - 20px);
  padding: 8px 0;
}
/* Header: large avatar + name + title */
.hb-acct-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px 12px;
}
.hb-acct-head-avatar {
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--hb-sky);
  color: var(--hb-navy);
  font-size: 14px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.hb-acct-head-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.hb-acct-head-name {
  font-size: 15px;
  font-weight: 800;
  color: var(--hb-text-primary);
}
.hb-acct-head-title {
  font-size: 12px;
  color: #5b6880;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* My Profile row with icon + chevron */
.hb-dropdown-item--with-icon {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px 9px 14px;
}
.hb-di-icon {
  width: 30px;
  height: 30px;
  border-radius: 9px;
  background: #f3f6fa;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #4a5872;
}
/* Scrappy tiers section */
.hb-acct-tiers-box {
  margin: 2px 8px;
  padding: 12px;
  border-radius: 12px;
  background: linear-gradient(160deg, #f5f9fe, #ffffff);
}
.hb-acct-tiers-header {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  font-weight: 800;
  color: var(--hb-text-primary);
  margin-bottom: 10px;
}
.hb-acct-tiers-pts-label {
  color: #5b6880;
  font-weight: 600;
}
.hb-acct-medals {
  display: flex;
  gap: 6px;
}
.hb-acct-medal {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  opacity: 0.4;
  transition: opacity 0.2s;
}
.hb-acct-medal.earned {
  opacity: 1;
}
.hb-acct-medal.next-up {
  opacity: 0.75;
}
.hb-acct-medal-icon {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hb-acct-medal-label {
  font-size: 11.5px;
  font-weight: 800;
  color: var(--hb-text-primary);
  text-align: center;
}
.hb-acct-medal-pts {
  font-size: 11px;
  color: #5b6880;
  text-align: center;
}
.hb-acct-tiers-progress {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.hb-acct-tiers-bar {
  height: 6px;
  border-radius: 999px;
  background: #e8eef6;
  overflow: hidden;
}
.hb-acct-tiers-fill {
  height: 100%;
  background: #2e9e5b;
  border-radius: 999px;
  transition: width 0.4s;
}
.hb-acct-tiers-desc {
  font-size: 11.5px;
  color: #4a5872;
}

/* Legacy dropdown header classes (kept for any caller that still uses them) */
.hb-dropdown-header {
  padding: 7.2px 9px 9px;
}
.hb-dropdown-header-name {
  font-size: 12.6px;
  font-weight: 800;
  color: var(--hb-text-primary);
}
.hb-dropdown-header-sub {
  font-size: 10.8px;
  font-weight: 600;
  color: var(--hb-text-muted);
  margin-top: 1.8px;
}
.hb-dropdown-item--multiline {
  flex-direction: column;
  align-items: flex-start;
  gap: 1.8px;
}
.hb-dropdown-item-sub {
  font-size: 9.9px;
  font-weight: 600;
  color: var(--hb-text-muted);
}

/* ── Background confetti toggle row ──────────────────────────────────────── */
.hb-confetti-toggle-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px 9px 14px;
  cursor: pointer;
  user-select: none;
}
.hb-confetti-toggle-row:hover {
  background: #f5f7fa;
}
.hb-confetti-switch-track {
  display: block;
  width: 32px;
  height: 18px;
  border-radius: 9px;
  background: #d1d9e6;
  position: relative;
  transition: background 0.18s;
  flex-shrink: 0;
}
.hb-confetti-switch-thumb {
  display: block;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #fff;
  position: absolute;
  top: 2px;
  left: 2px;
  transition:
    left 0.18s,
    background 0.18s;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
}
.hb-confetti-toggle-row[data-confetti-on='true'] .hb-confetti-switch-track {
  background: #2f8ce8;
}
.hb-confetti-toggle-row[data-confetti-on='true'] .hb-confetti-switch-thumb {
  left: 16px;
}
