/* O'Radar - Launcher theme (opt-in).
 * Everything is scoped under .bbhg-theme-launcher on the modal overlay, so with
 * the default "Classic" theme none of these rules apply and frontend.css is untouched. */

/* ---------- Theme switch (visible in both themes) ---------- */
.bbhg-theme-switch { position: relative; z-index: 10003; }
.bbhg-theme-toggle {
    height: 40px; padding: 0 12px; display: inline-flex; align-items: center; gap: 6px;
    border: 0; border-radius: 10px; background: #f1f5f9; color: #1f2937;
    font: 600 13px/1 inherit; cursor: pointer; white-space: nowrap;
}
.bbhg-theme-toggle:hover { background: #e2e8f0; }
.bbhg-theme-toggle:focus-visible, .bbhg-theme-option:focus-visible { outline: 2px solid #0ea5e9; outline-offset: 2px; }
.bbhg-theme-toggle svg { width: 16px; height: 16px; flex: none; }
.bbhg-theme-menu {
    position: absolute; right: 0; top: calc(100% + 8px); min-width: 210px; max-width: calc(100vw - 24px); box-sizing: border-box; padding: 6px;
    background: #fff; color: #0f172a; border: 1px solid #e2e8f0; border-radius: 12px;
    box-shadow: 0 14px 36px rgba(15, 23, 42, .22); display: none;
}
.bbhg-theme-switch.open .bbhg-theme-menu { display: block; }
.bbhg-theme-option {
    width: 100%; display: flex; flex-direction: column; align-items: flex-start; gap: 1px; text-align: left;
    border: 0; background: none; padding: 9px 10px; border-radius: 8px; cursor: pointer; font: inherit; color: inherit;
}
.bbhg-theme-option:hover { background: #f1f5f9; }
.bbhg-theme-option b { font-size: 13px; }
.bbhg-theme-option small { font-size: 12px; color: #64748b; white-space: normal; }
.bbhg-theme-option[aria-checked="true"] b::after { content: " \2713"; color: #0ea5e9; }
@media (max-width: 640px) { .bbhg-theme-toggle span { display: none; } .bbhg-theme-toggle { width: 40px; padding: 0; justify-content: center; } }

/* ---------- Launcher home + tool bar: hidden unless the theme is on ---------- */
.bbhg-lnch, .bbhg-lnch-bar { display: none; }

/* ---------- Launcher theme ---------- */
.bbhg-theme-launcher { --lnch-ink: #1d1a16; --lnch-paper: #fbf9f6; --lnch-line: #e6e0d5; --lnch-accent: #e4572e; --lnch-muted: #8a8275;
    --lnch-font: "Bricolage Grotesque", "Segoe UI", system-ui, sans-serif; }
/* Always full screen at every viewport size: the modal is a fixed-size shell, so searching/filtering
   (which changes the amount of content) never makes it shrink. Only the body scrolls. */
.bbhg-theme-launcher.bbhg-modal-overlay { padding: 0 !important; align-items: stretch !important; justify-content: stretch !important; }
.bbhg-theme-launcher .bbhg-modal {
    background: var(--lnch-paper); font-family: var(--lnch-font);
    width: 100vw !important; max-width: 100% !important;
    height: 100vh !important; max-height: 100% !important;
    border-radius: 0 !important; margin: 0 !important; transform: none !important;
}
@supports (height: 100dvh) { .bbhg-theme-launcher .bbhg-modal { height: 100dvh !important; } }
.bbhg-theme-launcher .bbhg-modal-body { flex: 1 1 auto; min-height: 0; height: auto !important; max-height: none !important; overflow-y: auto; }
/* Fullscreen toggle is meaningless when always full screen */
.bbhg-theme-launcher .bbhg-modal-fullscreen { display: none !important; }
/* Keep the home content a comfortable reading width on big screens */
.bbhg-theme-launcher .bbhg-lnch { max-width: 960px; margin-inline: auto; width: 100%; }
.bbhg-theme-launcher .bbhg-modal-header { background: var(--lnch-paper); border-bottom: 0; padding: 18px 24px 8px; }
.bbhg-theme-launcher .bbhg-logo { background: var(--lnch-ink); box-shadow: none; border-radius: 12px; }
.bbhg-theme-launcher .bbhg-modal-title { font-family: var(--lnch-font); font-size: 22px; font-weight: 800; letter-spacing: -.02em; color: var(--lnch-ink); }
.bbhg-theme-launcher .bbhg-modal-subtitle { color: var(--lnch-muted); }
.bbhg-theme-launcher .bbhg-modal-body { background: var(--lnch-paper); padding-top: 0; }

/* Classic navigation is replaced by the launcher */
.bbhg-theme-launcher .bbhg-header-filters,
.bbhg-theme-launcher .bbhg-header-filters-mobile,
.bbhg-theme-launcher .bbhg-slider-container { display: none !important; }

/* Header buttons */
.bbhg-theme-launcher .bbhg-modal-close,
.bbhg-theme-launcher .bbhg-modal-fullscreen,
.bbhg-theme-launcher .bbhg-theme-toggle { background: #efebe4 !important; border-radius: 99px; color: #4a443b; }
.bbhg-theme-launcher .bbhg-modal-close { border-radius: 99px !important; }

/* Radio bar becomes a rounded pill */
.bbhg-theme-launcher .bbhg-radio-bar { margin: 14px 24px 12px; border-radius: 99px; background: var(--lnch-ink); padding: 8px 16px 8px 10px; gap: 10px; min-height: 48px; }
.bbhg-theme-launcher .bbhg-modal-header { padding-bottom: 12px; }
.bbhg-theme-launcher .bbhg-radio-station { margin-right: 2px; }
.bbhg-theme-launcher .bbhg-radio-toggle { background: var(--lnch-accent); }
.bbhg-theme-launcher .bbhg-radio-toggle:hover { background: #cf4723; }
.bbhg-theme-launcher .bbhg-radio-eq i { background: #fbf9f6; }

/* Home: search, chips, sections of cards */
.bbhg-theme-launcher .bbhg-lnch { display: block; }
.bbhg-theme-launcher.bbhg-lnch-tool .bbhg-lnch { display: none; }
.bbhg-theme-launcher .bbhg-lnch-search {
    display: flex; align-items: center; gap: 10px; margin: 12px 0 6px; padding: 0 16px; height: 54px;
    background: #fff; border: 2px solid var(--lnch-ink); border-radius: 16px; box-shadow: 3px 3px 0 var(--lnch-ink);
}
.bbhg-theme-launcher .bbhg-lnch-search svg { width: 20px; height: 20px; flex: none; color: var(--lnch-ink); }
.bbhg-theme-launcher .bbhg-lnch-search input {
    flex: 1; min-width: 0; border: 0 !important; outline: 0; box-shadow: none !important; background: none !important;
    font: 500 17px var(--lnch-font); color: var(--lnch-ink); padding: 0 !important; height: auto !important;
}
.bbhg-theme-launcher .bbhg-lnch-chips { display: flex; gap: 6px; padding: 10px 0; overflow-x: auto; }
.bbhg-theme-launcher .bbhg-lnch-chip {
    flex: none; border: 1.5px solid #d9d3c8; background: transparent; border-radius: 99px; padding: 6px 14px;
    font: 600 13px var(--lnch-font); color: #4a443b; cursor: pointer;
}
.bbhg-theme-launcher .bbhg-lnch-chip.on { background: var(--lnch-ink); color: var(--lnch-paper); border-color: var(--lnch-ink); }
.bbhg-theme-launcher .bbhg-lnch-sect { padding: 10px 0 0; font: 700 12px/1 ui-monospace, "JetBrains Mono", monospace; letter-spacing: .08em; text-transform: uppercase; color: var(--lnch-muted); }
.bbhg-theme-launcher .bbhg-lnch-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; padding: 10px 0 16px; }
.bbhg-theme-launcher .bbhg-lnch-card {
    position: relative; text-align: left; display: flex; flex-direction: column; gap: 10px; min-height: 96px; padding: 14px;
    border: 1.5px solid var(--lnch-line); background: #fff; border-radius: 16px; color: var(--lnch-ink); font: inherit; cursor: pointer;
}
.bbhg-theme-launcher .bbhg-lnch-card:hover { border-color: var(--lnch-ink); transform: translateY(-1px); }
.bbhg-theme-launcher .bbhg-lnch-card:focus-visible { outline: 2px solid var(--lnch-accent); outline-offset: 2px; }
.bbhg-theme-launcher .bbhg-lnch-ico { width: 32px; height: 32px; border-radius: 9px; display: grid; place-items: center; color: #fff; background: var(--c, #64748b); }
.bbhg-theme-launcher .bbhg-lnch-ico svg { width: 17px; height: 17px; stroke: currentColor; fill: none; stroke-width: 2; }
.bbhg-theme-launcher .bbhg-lnch-name { font-weight: 700; font-size: 14.5px; line-height: 1.2; overflow-wrap: anywhere; }
.bbhg-theme-launcher .bbhg-lnch-card .bbhg-tab-badge { position: absolute; top: 12px; right: 12px; margin: 0; }
.bbhg-theme-launcher .bbhg-lnch-empty { padding: 28px 0; color: var(--lnch-muted); }

/* Tool view: bar with Back + quick switch, then the original panel */
.bbhg-theme-launcher.bbhg-lnch-tool .bbhg-lnch-bar {
    display: flex; align-items: center; gap: 10px; padding: 12px 0; margin-bottom: 8px; border-bottom: 1.5px solid var(--lnch-line);
}
.bbhg-theme-launcher .bbhg-lnch-back { border: 1.5px solid var(--lnch-ink); background: #fff; border-radius: 99px; padding: 6px 14px; font: 700 13px var(--lnch-font); color: var(--lnch-ink); cursor: pointer; }
.bbhg-theme-launcher .bbhg-lnch-title { font-weight: 800; font-size: 17px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bbhg-theme-launcher .bbhg-lnch-switch { margin-left: auto; max-width: 190px; font: 600 13px var(--lnch-font); border: 1.5px solid #d9d3c8; border-radius: 99px; background: #fff; padding: 6px 10px; color: var(--lnch-ink); }
.bbhg-theme-launcher:not(.bbhg-lnch-tool) .bbhg-tab-panel { display: none !important; }

@media (max-width: 640px) {
    .bbhg-theme-launcher .bbhg-modal-header { padding: 14px 16px 6px; }
    .bbhg-theme-launcher .bbhg-modal-subtitle { display: none; }
    .bbhg-theme-launcher .bbhg-radio-bar { margin: 12px 16px 12px; padding: 8px 14px 8px 8px; }
    .bbhg-theme-launcher .bbhg-modal-body { padding-inline: 16px; }
    .bbhg-theme-launcher .bbhg-lnch-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: no-preference) { .bbhg-theme-launcher .bbhg-lnch-card { transition: transform .12s, border-color .12s; } }

/* Logged-in avatar dropdown: never wider than the screen (JS also shifts it back on-screen) */
.bbhg-user-dropdown { max-width: calc(100vw - 24px); box-sizing: border-box; }


/* =====================================================================
 * Night Watch theme (opt-in). Reuses the Launcher structure (full screen, search-first home,
 * tool bar) and restyles it: dark slate, one amber signal colour, tools as a compact list.
 * The overlay carries both .bbhg-theme-launcher and .bbhg-theme-nightwatch.
 * Opened tools sit on a light sheet so the existing panels keep the look they were built for.
 * ===================================================================== */
.bbhg-theme-nightwatch {
    --nw-bg: #0f141b; --nw-panel: #151c25; --nw-row: #131a23; --nw-row-hover: #1a2430; --nw-line: #26303d;
    --nw-text: #dfe6ee; --nw-muted: #7c8a9b; --nw-amber: #ffb347; --nw-amber-deep: #ff8a3d;
    --nw-mono: "IBM Plex Mono", ui-monospace, "JetBrains Mono", Menlo, monospace;
    --lnch-ink: var(--nw-text); --lnch-paper: var(--nw-bg); --lnch-line: var(--nw-line); --lnch-accent: var(--nw-amber); --lnch-muted: var(--nw-muted);
    --lnch-font: "Familjen Grotesk", "Segoe UI", system-ui, sans-serif;
}
.bbhg-theme-nightwatch.bbhg-modal-overlay { background: #05080c; }
.bbhg-theme-nightwatch .bbhg-modal { background: var(--nw-bg); color: var(--nw-text); }
.bbhg-theme-nightwatch .bbhg-modal-header { background: var(--nw-bg); border-bottom: 1px solid var(--nw-line); }
.bbhg-theme-nightwatch .bbhg-modal-title { color: var(--nw-text); }
.bbhg-theme-nightwatch .bbhg-modal-subtitle { color: var(--nw-muted); font-family: var(--nw-mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
.bbhg-theme-nightwatch .bbhg-logo { background: transparent; border: 1.5px solid var(--nw-amber); border-radius: 50%; color: var(--nw-amber); }
.bbhg-theme-nightwatch .bbhg-logo svg { color: var(--nw-amber); }
.bbhg-theme-nightwatch .bbhg-modal-close,
.bbhg-theme-nightwatch .bbhg-modal-fullscreen,
.bbhg-theme-nightwatch .bbhg-theme-toggle { background: #1a222d !important; color: #aab6c4; border-radius: 10px; }
.bbhg-theme-nightwatch .bbhg-modal-close svg { stroke: #aab6c4 !important; }
.bbhg-theme-nightwatch .bbhg-theme-toggle:hover { background: #222d3a !important; }
.bbhg-theme-nightwatch .bbhg-radio-bar { background: #18202a; border: 1px solid var(--nw-line); border-radius: 12px; }
.bbhg-theme-nightwatch .bbhg-radio-toggle { background: var(--nw-amber); color: #0f141b; }
.bbhg-theme-nightwatch .bbhg-radio-toggle:hover { background: var(--nw-amber-deep); }
.bbhg-theme-nightwatch .bbhg-radio-eq i { background: var(--nw-amber); }

/* Body: dark on the home screen, light sheet once a tool is open */
.bbhg-theme-nightwatch .bbhg-modal-body { background: var(--nw-bg); }
.bbhg-theme-nightwatch.bbhg-lnch-tool .bbhg-modal-body { background: #eef1f5; }
.bbhg-theme-nightwatch .bbhg-lnch-bar { background: transparent; border-bottom-color: #d3dae3; color: #0f172a; }
.bbhg-theme-nightwatch .bbhg-lnch-back { color: #b45309; }

/* Search: a terminal-style field */
.bbhg-theme-nightwatch .bbhg-lnch-search { background: var(--nw-panel); border: 1px solid var(--nw-line); border-radius: 10px; box-shadow: none; color: var(--nw-amber); }
.bbhg-theme-nightwatch .bbhg-lnch-search:focus-within { border-color: var(--nw-amber); box-shadow: 0 0 0 3px rgba(255, 179, 71, .18); }
.bbhg-theme-nightwatch .bbhg-lnch-search svg { color: var(--nw-amber); }
.bbhg-theme-nightwatch .bbhg-lnch-search input { color: #eef3f8; }
.bbhg-theme-nightwatch .bbhg-lnch-search input::placeholder { color: var(--nw-muted); }

/* Category chips */
.bbhg-theme-nightwatch .bbhg-lnch-chip { border: 1px solid var(--nw-line); border-radius: 6px; color: var(--nw-muted); font-family: var(--nw-mono); font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
.bbhg-theme-nightwatch .bbhg-lnch-chip:hover { color: var(--nw-text); border-color: #3a4757; }
.bbhg-theme-nightwatch .bbhg-lnch-chip.on { background: var(--nw-amber); border-color: var(--nw-amber); color: #0f141b; }

/* Section label with a rule */
.bbhg-theme-nightwatch .bbhg-lnch-sect { display: flex; align-items: center; gap: 10px; padding: 16px 0 0; color: var(--nw-amber); font-family: var(--nw-mono); font-size: 11px; letter-spacing: .1em; }
.bbhg-theme-nightwatch .bbhg-lnch-sect::after { content: ""; flex: 1; height: 1px; background: var(--nw-line); }

/* Tools as a list of rows (two columns on wide screens) */
.bbhg-theme-nightwatch .bbhg-lnch-cards { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin: 10px 0 6px; padding: 0; border: 1px solid var(--nw-line); border-radius: 10px; overflow: hidden; }
@media (min-width: 900px) { .bbhg-theme-nightwatch .bbhg-lnch-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.bbhg-theme-nightwatch .bbhg-lnch-card {
    flex-direction: row; align-items: center; gap: 14px; min-height: 0; padding: 11px 14px; border: 0; border-radius: 0;
    background: var(--nw-row); color: var(--nw-text); box-shadow: inset 0 -1px 0 var(--nw-line);
}
.bbhg-theme-nightwatch .bbhg-lnch-card:hover { background: var(--nw-row-hover); transform: none; }
.bbhg-theme-nightwatch .bbhg-lnch-card:focus-visible { outline: 2px solid var(--nw-amber); outline-offset: -2px; }
.bbhg-theme-nightwatch .bbhg-lnch-card::after { content: "\203A"; margin-left: auto; color: var(--nw-muted); font-size: 20px; line-height: 1; }
.bbhg-theme-nightwatch .bbhg-lnch-ico { width: 34px; height: 34px; border-radius: 8px; background: #1b2531; color: var(--nw-amber); }
.bbhg-theme-nightwatch .bbhg-lnch-name { font-size: 15px; font-weight: 700; }
.bbhg-theme-nightwatch .bbhg-lnch-empty { color: var(--nw-muted); padding: 40px 0; text-align: center; }
.bbhg-theme-nightwatch .bbhg-lnch-title { color: #0f172a; }
.bbhg-theme-nightwatch .bbhg-lnch-switch { background: #fff; border-color: #cdd5df; }
.bbhg-theme-nightwatch .bbhg-lnch-back { border-color: #cdd5df; background: #fff; color: #b45309; }

/* ---------- Fixes: white icons, header alignment, dark chips, badge placement ---------- */
/* Tool icons: white on the coloured tile (Launcher) and on the dark tile (Night Watch) */
.bbhg-theme-launcher .bbhg-lnch-ico,
.bbhg-theme-launcher .bbhg-lnch-ico svg,
.bbhg-theme-launcher .bbhg-lnch-ico svg * { color: #fff !important; stroke: #fff !important; }
.bbhg-theme-launcher .bbhg-lnch-ico svg { fill: none !important; }
.bbhg-theme-launcher .bbhg-lnch-ico svg [fill]:not([fill="none"]) { fill: #fff !important; }

/* Night Watch: icon tile keeps its dark slate with a white glyph */
.bbhg-theme-nightwatch .bbhg-lnch-ico { background: #243142; }
/* Header buttons (theme picker, grid icon, close): white glyphs */
.bbhg-theme-nightwatch .bbhg-theme-toggle,
.bbhg-theme-nightwatch .bbhg-theme-toggle span,
.bbhg-theme-nightwatch .bbhg-modal-fullscreen { color: #fff !important; }
.bbhg-theme-nightwatch .bbhg-theme-toggle svg,
.bbhg-theme-nightwatch .bbhg-theme-toggle svg *,
.bbhg-theme-nightwatch .bbhg-modal-fullscreen svg,
.bbhg-theme-nightwatch .bbhg-modal-fullscreen svg * { stroke: #fff !important; color: #fff !important; }
.bbhg-theme-nightwatch .bbhg-modal-close svg,
.bbhg-theme-nightwatch .bbhg-modal-close svg * { stroke: #fff !important; }
/* Theme menu itself stays readable (it is a light popup) */
.bbhg-theme-nightwatch .bbhg-theme-menu { background: #18202a; border-color: var(--nw-line); color: var(--nw-text); }
.bbhg-theme-nightwatch .bbhg-theme-option:hover { background: #222d3a; }
.bbhg-theme-nightwatch .bbhg-theme-option small { color: var(--nw-muted); }
.bbhg-theme-nightwatch .bbhg-theme-option[aria-checked="true"] b::after { color: var(--nw-amber); }

/* Night Watch header: logo and title share one centre line */
.bbhg-theme-nightwatch .bbhg-modal-header { align-items: center; }
.bbhg-theme-nightwatch .bbhg-header-left { align-items: center; gap: 12px; }
.bbhg-theme-nightwatch .bbhg-header-text { align-self: center; justify-content: center; gap: 2px; }
.bbhg-theme-nightwatch .bbhg-modal-title { margin: 0 !important; padding: 0 !important; line-height: 1 !important; transform: none; position: static; }
.bbhg-theme-nightwatch .bbhg-logo { align-self: center; margin: 0; }

/* Night Watch chips: dark, not the default white button */
.bbhg-theme-nightwatch .bbhg-lnch-chip { background: transparent !important; color: #9fb0c2 !important; }
.bbhg-theme-nightwatch .bbhg-lnch-chip.on { background: var(--nw-amber) !important; color: #0f141b !important; }

/* Night Watch badges (HOT / EVENTS) sit inline before the chevron instead of on top of it */
.bbhg-theme-nightwatch .bbhg-lnch-card .bbhg-tab-badge { position: static; order: 2; margin-left: auto; flex: none; }
.bbhg-theme-nightwatch .bbhg-lnch-card::after { order: 3; margin-left: 4px; }
.bbhg-theme-nightwatch .bbhg-lnch-card .bbhg-lnch-name { order: 1; min-width: 0; }
.bbhg-theme-nightwatch .bbhg-lnch-card:not(:has(.bbhg-tab-badge))::after { margin-left: auto; }

/* ---------- More groups: Classic top filter bar scrolls instead of overflowing ---------- */
.bbhg-header-filters { max-width: 62vw; overflow-x: auto; scrollbar-width: thin; }
.bbhg-header-filter { flex: none; white-space: nowrap; }
.bbhg-filter-dropdown-menu { max-height: 60vh; overflow-y: auto; }
/* Launcher / Night Watch: group chips wrap on wide screens so every group is visible, scroll on phones */
@media (min-width: 900px) { .bbhg-theme-launcher .bbhg-lnch-chips { flex-wrap: wrap; overflow-x: visible; } }

/* =====================================================================
 * Marquee theme (opt-in). Reuses the Launcher structure (full screen, search-first home, tool bar).
 * Bold yellow ground, thick black rules, heavy type, no icons. Groups are huge expanding rows;
 * tools are text buttons. Opened tools sit on a light sheet so existing panels keep their look.
 * Overlay carries .bbhg-theme-launcher and .bbhg-theme-marquee.
 * ===================================================================== */
.bbhg-theme-marquee {
    --mq-y: #ffe14d; --mq-k: #111; --mq-w: #fff; --mq-pop: #ff4d2e;
    --mq-display: "Archivo Black", "Arial Black", Impact, sans-serif; --mq-body: "Archivo", "Segoe UI", system-ui, sans-serif;
    --lnch-ink: var(--mq-k); --lnch-paper: var(--mq-y); --lnch-line: var(--mq-k); --lnch-accent: var(--mq-pop); --lnch-muted: #3b3410; --lnch-font: var(--mq-body);
}
.bbhg-theme-marquee.bbhg-modal-overlay { background: var(--mq-k); }
.bbhg-theme-marquee .bbhg-modal { background: var(--mq-y); color: var(--mq-k); }

/* Header: black bar, yellow type */
.bbhg-theme-marquee .bbhg-modal-header { background: var(--mq-k); border-bottom: 0; padding: 10px 16px; }
.bbhg-theme-marquee .bbhg-header-left, .bbhg-theme-marquee .bbhg-modal-header { align-items: center; }
.bbhg-theme-marquee .bbhg-logo { background: var(--mq-y); border-radius: 0; box-shadow: none; width: 38px; height: 38px; }
.bbhg-theme-marquee .bbhg-logo-icon { color: var(--mq-k); font-family: var(--mq-display); }
.bbhg-theme-marquee .bbhg-modal-title { color: var(--mq-y) !important; font-family: var(--mq-display); font-size: 22px !important; font-weight: 400; letter-spacing: -.02em; text-transform: uppercase; margin: 0 !important; line-height: 1 !important; }
.bbhg-theme-marquee .bbhg-modal-subtitle { display: none; }
.bbhg-theme-marquee .bbhg-modal-close,
.bbhg-theme-marquee .bbhg-modal-fullscreen,
.bbhg-theme-marquee .bbhg-theme-toggle { background: transparent !important; border: 2px solid var(--mq-y) !important; border-radius: 0 !important; color: var(--mq-y) !important; }
.bbhg-theme-marquee .bbhg-theme-toggle span { color: var(--mq-y) !important; font-family: var(--mq-body); text-transform: uppercase; letter-spacing: .06em; }
.bbhg-theme-marquee .bbhg-theme-toggle svg, .bbhg-theme-marquee .bbhg-theme-toggle svg *,
.bbhg-theme-marquee .bbhg-modal-close svg, .bbhg-theme-marquee .bbhg-modal-close svg * { stroke: var(--mq-y) !important; color: var(--mq-y) !important; }
.bbhg-theme-marquee .bbhg-theme-toggle:hover, .bbhg-theme-marquee .bbhg-modal-close:hover { background: var(--mq-y) !important; }
.bbhg-theme-marquee .bbhg-theme-toggle:hover span, .bbhg-theme-marquee .bbhg-theme-toggle:hover svg *, .bbhg-theme-marquee .bbhg-modal-close:hover svg * { color: var(--mq-k) !important; stroke: var(--mq-k) !important; }
.bbhg-theme-marquee .bbhg-theme-menu { border-radius: 0; border: 3px solid var(--mq-k); box-shadow: 5px 5px 0 var(--mq-k); background: var(--mq-y); }
.bbhg-theme-marquee .bbhg-theme-option { border-radius: 0; }
.bbhg-theme-marquee .bbhg-theme-option:hover { background: var(--mq-k); color: var(--mq-y); }
.bbhg-theme-marquee .bbhg-theme-option:hover small { color: #d9c540; }
.bbhg-theme-marquee .bbhg-theme-option small { color: #3b3410; }
.bbhg-theme-marquee .bbhg-theme-option[aria-checked="true"] b::after { color: var(--mq-pop); }

/* Radio becomes the red band under the header */
.bbhg-theme-marquee .bbhg-radio-bar { margin: 0; border-radius: 0; background: var(--mq-pop); border: 0; border-bottom: 3px solid var(--mq-k); color: var(--mq-k); padding: 6px 16px; min-height: 0; }
.bbhg-theme-marquee .bbhg-radio-bar *, .bbhg-theme-marquee .bbhg-radio-station { color: var(--mq-k); }
.bbhg-theme-marquee .bbhg-radio-toggle { background: var(--mq-k); color: var(--mq-y); border-radius: 0; }
.bbhg-theme-marquee .bbhg-radio-toggle svg, .bbhg-theme-marquee .bbhg-radio-toggle svg * { fill: var(--mq-y); stroke: var(--mq-y); }
.bbhg-theme-marquee .bbhg-radio-eq i { background: var(--mq-k); }

/* Body */
.bbhg-theme-marquee .bbhg-modal-body { background: var(--mq-y); padding: 0 !important; }
.bbhg-theme-marquee.bbhg-lnch-tool .bbhg-modal-body { background: #eef1f5; padding: 8px 16px 16px !important; }
.bbhg-theme-marquee .bbhg-lnch-bar { background: transparent; color: #0f172a; border-bottom-color: #cdd5df; }
.bbhg-theme-marquee .bbhg-lnch-back { border: 2px solid var(--mq-k); border-radius: 0; background: var(--mq-y); color: var(--mq-k); text-transform: uppercase; letter-spacing: .04em; }
.bbhg-theme-marquee .bbhg-lnch-title { color: #0f172a; font-family: var(--mq-display); font-weight: 400; text-transform: uppercase; }
.bbhg-theme-marquee .bbhg-lnch-switch { border: 2px solid var(--mq-k); border-radius: 0; background: #fff; }

/* Big search field, sticky under the header */
.bbhg-theme-marquee .bbhg-lnch-search { position: sticky; top: 0; z-index: 3; margin: 0; padding: 12px 18px 10px; height: auto; background: var(--mq-y); border: 0; border-bottom: 3px solid var(--mq-k); border-radius: 0; box-shadow: none; }
.bbhg-theme-marquee .bbhg-lnch-search svg { width: 28px; height: 28px; stroke-width: 3; color: var(--mq-k); }
.bbhg-theme-marquee .bbhg-lnch-search input { font: 400 clamp(20px, 3.4vw, 30px)/1.1 var(--mq-display) !important; letter-spacing: -.02em; color: var(--mq-k); min-height: 40px; }
.bbhg-theme-marquee .bbhg-lnch-search input::placeholder { color: rgba(17, 17, 17, .4); }
.bbhg-theme-marquee .bbhg-mq-count { flex: none; font: 700 12px var(--mq-body); text-transform: uppercase; letter-spacing: .08em; }
.bbhg-lnch-search .bbhg-mq-count { display: none; }
.bbhg-theme-marquee .bbhg-lnch-search .bbhg-mq-count { display: block; }
.bbhg-theme-marquee .bbhg-lnch-chips, .bbhg-theme-marquee .bbhg-lnch-sect { display: none; }

/* Group rows */
.bbhg-theme-marquee .bbhg-lnch-results { padding: 0; }
.bbhg-theme-marquee .bbhg-mq-row { border-bottom: 3px solid var(--mq-k); }
.bbhg-theme-marquee .bbhg-mq-head { width: 100%; display: flex; align-items: baseline; gap: 14px; padding: 12px 18px; border: 0 !important; border-radius: 0 !important; background: none !important; color: inherit !important; text-align: left; cursor: pointer; box-shadow: none !important; }
.bbhg-theme-marquee .bbhg-mq-name { flex: 1; min-width: 0; font: 400 clamp(26px, 4.4vw, 46px)/.98 var(--mq-display); letter-spacing: -.03em; text-transform: uppercase; overflow-wrap: anywhere; }
.bbhg-theme-marquee .bbhg-mq-head small { flex: none; font: 700 13px var(--mq-body); letter-spacing: .06em; }
.bbhg-theme-marquee .bbhg-mq-head i { flex: none; width: 22px; text-align: center; font: 400 24px/1 var(--mq-display); font-style: normal; }
.bbhg-theme-marquee .bbhg-mq-head:hover .bbhg-mq-name { text-decoration: underline; text-decoration-thickness: 4px; text-underline-offset: 5px; }
.bbhg-theme-marquee .bbhg-mq-row.open { background: var(--mq-k); color: var(--mq-y); }
.bbhg-theme-marquee .bbhg-mq-row.bbhg-mq-game.open { background: var(--mq-pop); color: var(--mq-k); }
.bbhg-theme-marquee .bbhg-mq-cloud { display: none; flex-wrap: wrap; gap: 8px; padding: 4px 18px 18px; }
.bbhg-theme-marquee .bbhg-mq-row.open .bbhg-mq-cloud { display: flex; }

/* Tools: plain text buttons (no icons) */
.bbhg-theme-marquee .bbhg-mq-cloud .bbhg-lnch-card {
    position: relative; display: inline-flex; flex-direction: row; align-items: center; gap: 8px; min-height: 0; padding: 7px 12px;
    background: var(--mq-w); color: var(--mq-k); border: 2px solid var(--mq-k); border-radius: 0; box-shadow: none; font: 700 14px var(--mq-body);
}
.bbhg-theme-marquee .bbhg-mq-cloud .bbhg-lnch-card::after { content: none; }
.bbhg-theme-marquee .bbhg-mq-cloud .bbhg-lnch-name { font: 700 14px/1.2 var(--mq-body); }
.bbhg-theme-marquee .bbhg-mq-cloud .bbhg-lnch-ico { display: none; }
.bbhg-theme-marquee .bbhg-mq-cloud .bbhg-lnch-card:hover { background: var(--mq-y); box-shadow: 3px 3px 0 var(--mq-k); transform: translate(-2px, -2px); }
.bbhg-theme-marquee .bbhg-mq-game .bbhg-mq-cloud .bbhg-lnch-card:hover { background: var(--mq-k); color: var(--mq-y); }
.bbhg-theme-marquee .bbhg-mq-cloud .bbhg-lnch-card:focus-visible, .bbhg-theme-marquee .bbhg-mq-head:focus-visible { outline: 3px solid #2563eb; outline-offset: 2px; }
.bbhg-theme-marquee .bbhg-mq-cloud .bbhg-tab-badge { position: static; margin: 0; border-radius: 0; }
.bbhg-theme-marquee .bbhg-lnch-empty { padding: 34px 18px; font: 400 24px/1.1 var(--mq-display); text-transform: uppercase; color: var(--mq-k); text-align: left; }

@media (max-width: 640px) {
    .bbhg-theme-marquee .bbhg-modal-header { padding: 8px 12px; }
    .bbhg-theme-marquee .bbhg-modal-body { padding: 0 !important; }
    .bbhg-theme-marquee .bbhg-lnch-search, .bbhg-theme-marquee .bbhg-mq-head, .bbhg-theme-marquee .bbhg-mq-cloud { padding-inline: 14px; }
    .bbhg-theme-marquee .bbhg-mq-name { font-size: 28px; }
    .bbhg-theme-marquee.bbhg-lnch-tool .bbhg-modal-body { padding: 8px 12px 16px !important; }
}
@media (prefers-reduced-motion: no-preference) { .bbhg-theme-marquee .bbhg-mq-cloud .bbhg-lnch-card { transition: transform .1s, box-shadow .1s, background .1s; } }

/* =====================================================================
 * Mosaic theme (opt-in). Reuses the Launcher structure. A treemap home: each group is a coloured tile
 * sized by how many tools it holds; tapping a tile zooms into that group. Opened tools sit on a light sheet.
 * Overlay carries .bbhg-theme-launcher and .bbhg-theme-mosaic.
 * ===================================================================== */
.bbhg-theme-mosaic {
    --ms-ground: #e8edf1; --ms-ink: #10212b; --ms-ink2: #51636f;
    --ms-font: "Red Hat Display", "Segoe UI", system-ui, sans-serif; --ms-mono: "Red Hat Mono", ui-monospace, Menlo, monospace;
    --lnch-ink: var(--ms-ink); --lnch-paper: var(--ms-ground); --lnch-line: #cfd8de; --lnch-accent: var(--ms-ink); --lnch-muted: var(--ms-ink2); --lnch-font: var(--ms-font);
}
.bbhg-theme-mosaic.bbhg-modal-overlay { background: #0b1820; }
.bbhg-theme-mosaic .bbhg-modal { background: var(--ms-ground); color: var(--ms-ink); }

/* Header: soft, no rule, round white buttons */
.bbhg-theme-mosaic .bbhg-modal-header { background: var(--ms-ground); border-bottom: 0; padding: 14px 18px 8px; align-items: center; }
.bbhg-theme-mosaic .bbhg-logo { background: var(--ms-ink); border-radius: 12px; box-shadow: none; width: 38px; height: 38px; }
.bbhg-theme-mosaic .bbhg-logo-icon { color: #fff; font-family: var(--ms-font); font-weight: 900; }
.bbhg-theme-mosaic .bbhg-modal-title { color: var(--ms-ink) !important; font-family: var(--ms-font); font-size: 21px !important; font-weight: 900; letter-spacing: -.02em; margin: 0 !important; line-height: 1 !important; }
.bbhg-theme-mosaic .bbhg-modal-subtitle { display: none; }
.bbhg-theme-mosaic .bbhg-modal-close,
.bbhg-theme-mosaic .bbhg-modal-fullscreen,
.bbhg-theme-mosaic .bbhg-theme-toggle { background: #fff !important; border: 0 !important; border-radius: 99px !important; color: var(--ms-ink) !important; }
.bbhg-theme-mosaic .bbhg-theme-toggle span { color: var(--ms-ink) !important; font-weight: 800; }
.bbhg-theme-mosaic .bbhg-theme-toggle svg, .bbhg-theme-mosaic .bbhg-theme-toggle svg *,
.bbhg-theme-mosaic .bbhg-modal-close svg, .bbhg-theme-mosaic .bbhg-modal-close svg * { stroke: var(--ms-ink) !important; color: var(--ms-ink) !important; }
.bbhg-theme-mosaic .bbhg-theme-menu { border-radius: 16px; border: 0; box-shadow: 0 16px 40px rgba(16, 33, 43, .25); }
.bbhg-theme-mosaic .bbhg-theme-option { border-radius: 10px; }
.bbhg-theme-mosaic .bbhg-theme-option[aria-checked="true"] b::after { color: var(--ms-ink); }

/* Radio: white pill */
.bbhg-theme-mosaic .bbhg-radio-bar { margin: 4px 18px 8px; background: #fff; border-radius: 99px; border: 0; color: var(--ms-ink); padding: 6px 14px 6px 6px; min-height: 0; }
.bbhg-theme-mosaic .bbhg-radio-bar *, .bbhg-theme-mosaic .bbhg-radio-station { color: var(--ms-ink); }
.bbhg-theme-mosaic .bbhg-radio-toggle { background: var(--ms-ink); border-radius: 50%; }
.bbhg-theme-mosaic .bbhg-radio-toggle svg, .bbhg-theme-mosaic .bbhg-radio-toggle svg * { fill: #fff; stroke: #fff; }
.bbhg-theme-mosaic .bbhg-radio-eq i { background: var(--ms-ink); }

/* Body */
.bbhg-theme-mosaic .bbhg-modal-body { background: var(--ms-ground); padding: 0 18px 18px !important; }
.bbhg-theme-mosaic.bbhg-lnch-tool .bbhg-modal-body { background: #eef1f5; }
.bbhg-theme-mosaic .bbhg-lnch-bar { color: #0f172a; }
.bbhg-theme-mosaic .bbhg-lnch-back { border: 0; background: #fff; color: var(--ms-ink); font-weight: 800; }
.bbhg-theme-mosaic .bbhg-lnch-title { color: #0f172a; font-weight: 900; }

/* Search: white pill */
.bbhg-theme-mosaic .bbhg-lnch-search { height: 50px; margin: 6px 0 12px; padding: 0 16px; background: #fff; border: 0; border-radius: 99px; box-shadow: none; color: var(--ms-ink2); }
.bbhg-theme-mosaic .bbhg-lnch-search:focus-within { box-shadow: 0 0 0 3px rgba(16, 33, 43, .2); }
.bbhg-theme-mosaic .bbhg-lnch-search svg { color: var(--ms-ink2); }
.bbhg-theme-mosaic .bbhg-lnch-search input { font: 700 16px var(--ms-font) !important; color: var(--ms-ink); }
.bbhg-theme-mosaic .bbhg-mq-count { font: 600 11px var(--ms-mono); color: var(--ms-ink2); flex: none; }
.bbhg-lnch-search .bbhg-mq-count { display: none; }
.bbhg-theme-mosaic .bbhg-lnch-search .bbhg-mq-count { display: block; }
.bbhg-theme-mosaic .bbhg-lnch-chips, .bbhg-theme-mosaic .bbhg-lnch-sect { display: none; }
.bbhg-theme-mosaic .bbhg-lnch-results { padding: 0; }
.bbhg-theme-mosaic .bbhg-lnch-empty { padding: 44px 4px; font: 900 24px/1.15 var(--ms-font); color: var(--ms-ink2); }

/* Treemap grid */
.bbhg-theme-mosaic .bbhg-ms-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: 84px; gap: 8px; grid-auto-flow: dense; }
.bbhg-theme-mosaic .bbhg-ms-tile { position: relative; grid-column: span var(--w); grid-row: span var(--h); background: var(--c); color: #fff; border-radius: 18px; padding: 14px 15px; display: flex; flex-direction: column; justify-content: space-between; min-width: 0; overflow: hidden; }
.bbhg-theme-mosaic .bbhg-ms-tile:hover { filter: brightness(1.07); }
.bbhg-theme-mosaic .bbhg-ms-tile.dim { opacity: .28; }
.bbhg-theme-mosaic .bbhg-ms-open { all: unset; display: block; cursor: pointer; color: inherit; }
.bbhg-theme-mosaic .bbhg-ms-open::after { content: ""; position: absolute; inset: 0; }   /* whole tile is the click target */
.bbhg-theme-mosaic .bbhg-ms-open:focus-visible::after { outline: 3px solid #fff; outline-offset: -5px; border-radius: 18px; }
.bbhg-theme-mosaic .bbhg-ms-open h3 { margin: 0; font: 900 clamp(17px, 2.1vw, 26px)/1 var(--ms-font); letter-spacing: -.02em; color: #fff; overflow-wrap: anywhere; }
.bbhg-theme-mosaic .bbhg-ms-list { margin-top: 8px; font: 600 12.5px/1.45 var(--ms-font); opacity: .92; display: flex; flex-direction: column; gap: 2px; }
.bbhg-theme-mosaic .bbhg-ms-list ul { list-style: none; margin: 0; padding: 0; }
.bbhg-theme-mosaic .bbhg-ms-list li { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bbhg-theme-mosaic .bbhg-ms-n { font: 600 11.5px var(--ms-mono); opacity: .85; letter-spacing: .04em; }
/* Matching tools inside a tile (search): sit above the click overlay so they open the tool */
.bbhg-theme-mosaic .bbhg-ms-list .bbhg-lnch-card { position: relative; z-index: 1; min-height: 0; padding: 0; background: none; border: 0; border-radius: 0; color: #fff; font: 700 13px/1.4 var(--ms-font); text-align: left; text-decoration: underline; text-underline-offset: 3px; flex-direction: row; box-shadow: none; }
.bbhg-theme-mosaic .bbhg-ms-list .bbhg-lnch-card:hover { transform: none; background: none; }

/* Zoomed group */
.bbhg-theme-mosaic .bbhg-ms-zoomhead { padding: 2px 0 12px; }
.bbhg-theme-mosaic .bbhg-ms-back { border: 0; background: #fff; border-radius: 99px; padding: 8px 14px; font: 800 13px var(--ms-font); cursor: pointer; color: var(--ms-ink); }
.bbhg-theme-mosaic .bbhg-ms-zoom { background: var(--c); color: #fff; border-radius: 24px; padding: 22px 22px 24px; }
.bbhg-theme-mosaic .bbhg-ms-zoom h2 { margin: 0; font: 900 clamp(30px, 5vw, 52px)/.95 var(--ms-font); letter-spacing: -.03em; color: #fff; }
.bbhg-theme-mosaic .bbhg-ms-zoom p { margin: 8px 0 16px; max-width: 56ch; font-size: 14.5px; line-height: 1.45; opacity: .92; }
.bbhg-theme-mosaic .bbhg-ms-zl { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; }
.bbhg-theme-mosaic .bbhg-ms-zl .bbhg-lnch-card { position: relative; flex-direction: row; align-items: center; justify-content: space-between; gap: 8px; min-height: 0; padding: 13px 14px; background: rgba(255, 255, 255, .17); color: #fff; border: 0; border-radius: 14px; box-shadow: none; font: 800 14.5px/1.2 var(--ms-font); }
.bbhg-theme-mosaic .bbhg-ms-zl .bbhg-lnch-card:hover { background: #fff; color: var(--ms-ink); transform: none; }
.bbhg-theme-mosaic .bbhg-ms-zl .bbhg-lnch-ico { display: none; }
.bbhg-theme-mosaic .bbhg-ms-zl .bbhg-lnch-name { font: 800 14.5px/1.2 var(--ms-font); }
.bbhg-theme-mosaic .bbhg-ms-zl .bbhg-tab-badge { position: static; margin: 0; flex: none; }
.bbhg-theme-mosaic .bbhg-lnch-card:focus-visible, .bbhg-theme-mosaic .bbhg-ms-back:focus-visible { outline: 3px solid #2563eb; outline-offset: 2px; }

@media (max-width: 700px) {
    .bbhg-theme-mosaic .bbhg-modal-body { padding: 0 14px 16px !important; }
    .bbhg-theme-mosaic .bbhg-ms-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 92px; }
    .bbhg-theme-mosaic .bbhg-ms-tile { grid-column: span var(--pw); grid-row: span var(--ph); }
    .bbhg-theme-mosaic .bbhg-radio-bar { margin-inline: 14px; }
    .bbhg-theme-mosaic .bbhg-modal-header { padding-inline: 14px; }
}
@media (prefers-reduced-motion: no-preference) { .bbhg-theme-mosaic .bbhg-ms-tile { transition: filter .12s, opacity .15s; } }

/* ---------- Mosaic fixes: tile titles (theme buttons were painting a white bar), radio spacing ---------- */
.bbhg-theme-mosaic .bbhg-ms-open { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; color: #fff !important; width: 100%; text-align: left; font: inherit; }
.bbhg-theme-mosaic .bbhg-ms-open h3 { background: transparent !important; color: #fff !important; }
.bbhg-theme-mosaic .bbhg-radio-bar { margin: 10px 18px 14px; padding: 9px 18px 9px 10px; gap: 12px; }
@media (max-width: 700px) { .bbhg-theme-mosaic .bbhg-radio-bar { margin: 8px 14px 12px; } }

/* =====================================================================
 * Message of the day: a slim ticker under the search bar on every launcher-style theme
 * (Launcher, Night Watch, Marquee, Mosaic). Classic keeps it on the Discover tab.
 * It sits in normal flow between the search and the groups, so it never overlaps anything.
 * ===================================================================== */
.bbhg-lnch-motd { display: flex; align-items: stretch; min-width: 0; margin: 8px 0 10px; overflow: hidden; }
.bbhg-lnch-motd-label { flex: none; display: flex; align-items: center; padding: 0 12px; font: 700 10.5px/1 var(--lnch-font, system-ui); letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.bbhg-lnch-motd .bbhg-motd-bar { flex: 1; min-width: 0; margin: 0; padding: 9px 0; background: none; border: 0; border-radius: 0; }
.bbhg-lnch-motd .bbhg-motd-item { font-family: var(--lnch-font, system-ui); font-size: 14px; font-weight: 600; color: inherit; padding: 0 40px; }
@media (max-width: 640px) { .bbhg-lnch-motd-label { display: none; } }

/* Launcher */
.bbhg-theme-launcher .bbhg-lnch-motd { background: #fff; border: 1.5px solid var(--lnch-line); border-radius: 14px; color: var(--lnch-ink); }
.bbhg-theme-launcher .bbhg-lnch-motd-label { background: var(--lnch-ink); color: var(--lnch-paper); }
/* Night Watch */
.bbhg-theme-nightwatch .bbhg-lnch-motd { background: var(--nw-panel); border: 1px solid var(--nw-line); border-radius: 10px; color: var(--nw-text); }
.bbhg-theme-nightwatch .bbhg-lnch-motd-label { color: var(--nw-amber); font-family: var(--nw-mono); border-right: 1px solid var(--nw-line); }
.bbhg-theme-nightwatch .bbhg-lnch-motd .bbhg-motd-item { font-family: var(--nw-font, var(--lnch-font)); }
/* Marquee */
.bbhg-theme-marquee .bbhg-lnch-motd { margin: 0; background: var(--mq-k); color: var(--mq-y); border-bottom: 3px solid var(--mq-k); border-radius: 0; }
.bbhg-theme-marquee .bbhg-lnch-motd-label { background: var(--mq-pop); color: var(--mq-k); font-family: var(--mq-body); padding: 0 14px; }
.bbhg-theme-marquee .bbhg-lnch-motd .bbhg-motd-item { text-transform: uppercase; letter-spacing: .06em; font-weight: 700; font-size: 13px; }
/* Mosaic */
.bbhg-theme-mosaic .bbhg-lnch-motd { background: #fff; border-radius: 99px; color: var(--ms-ink); }
.bbhg-theme-mosaic .bbhg-lnch-motd-label { color: var(--ms-ink2); font-family: var(--ms-mono); padding-left: 18px; }
.bbhg-theme-mosaic .bbhg-lnch-motd-label::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #17986b; margin-right: 8px; }
.bbhg-theme-mosaic .bbhg-lnch-motd .bbhg-motd-bar { border-radius: 0 99px 99px 0; }
/* Hidden when a tool is open */
.bbhg-theme-launcher.bbhg-lnch-tool .bbhg-lnch-motd { display: none; }

/* ---------- Tool bar (all launcher-style themes): show the full tool title ---------- */
.bbhg-theme-launcher.bbhg-lnch-tool .bbhg-lnch-bar { flex-wrap: wrap; row-gap: 8px; }
.bbhg-theme-launcher .bbhg-lnch-back { flex: none; white-space: nowrap; }
.bbhg-theme-launcher .bbhg-lnch-title {
    flex: 1 1 140px; min-width: 0; overflow: visible; text-overflow: clip; white-space: normal;
    overflow-wrap: anywhere; line-height: 1.15; font-size: clamp(14px, 4.4vw, 17px);
}
.bbhg-theme-marquee .bbhg-lnch-title { font-size: clamp(14px, 4.2vw, 18px); }
@media (max-width: 640px) {
    /* Quick-switch dropdown drops to its own full-width row so the title gets the space */
    .bbhg-theme-launcher .bbhg-lnch-switch { order: 3; flex: 1 0 100%; width: 100%; max-width: none; margin-left: 0; }
}

/* =====================================================================
 * Matrix theme (opt-in). Reuses the Launcher structure. Digital rain on a canvas behind the modal content
 * (drawn by launcher.js only while the modal is open in this theme), terminal-style prompt, groups as
 * folders, tools as commands. Opened tools sit on a light sheet. Overlay: .bbhg-theme-launcher .bbhg-theme-matrix
 * ===================================================================== */
.bbhg-theme-matrix {
    --mx-g: #00ff41; --mx-g2: #00c92f; --mx-gd: #0a7a25; --mx-bk: #020a05; --mx-panel: rgba(2, 12, 6, .84); --mx-text: #d6ffe0;
    --mx-mono: "Share Tech Mono", ui-monospace, Menlo, Consolas, monospace; --mx-display: "VT323", var(--mx-mono);
    --lnch-ink: var(--mx-g); --lnch-paper: var(--mx-bk); --lnch-line: var(--mx-gd); --lnch-accent: var(--mx-g); --lnch-muted: var(--mx-g2); --lnch-font: var(--mx-mono);
}
.bbhg-theme-matrix.bbhg-modal-overlay { background: #000; }
.bbhg-theme-matrix .bbhg-modal { background: var(--mx-bk); color: var(--mx-g); isolation: isolate; font-family: var(--mx-mono); }
.bbhg-mx-rain { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; opacity: .5; display: none; }
.bbhg-theme-matrix .bbhg-mx-rain { display: block; }
.bbhg-theme-matrix.bbhg-lnch-tool .bbhg-mx-rain { opacity: .3; }
.bbhg-theme-matrix .bbhg-modal::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 5; background: repeating-linear-gradient(0deg, rgba(0, 0, 0, .16) 0 1px, transparent 1px 3px); }

/* Header */
.bbhg-theme-matrix .bbhg-modal-header { background: var(--mx-panel); border-bottom: 1px solid var(--mx-gd); padding: 10px 14px; align-items: center; }
.bbhg-theme-matrix .bbhg-logo { background: transparent; border: 1px solid var(--mx-g); border-radius: 0; box-shadow: 0 0 10px rgba(0, 255, 65, .4); width: 36px; height: 36px; }
.bbhg-theme-matrix .bbhg-logo-icon { color: var(--mx-g); font-family: var(--mx-mono); }
.bbhg-theme-matrix .bbhg-modal-title { color: var(--mx-g) !important; font: 400 28px/1 var(--mx-display) !important; letter-spacing: .04em; text-transform: uppercase; text-shadow: 0 0 8px rgba(0, 255, 65, .7); margin: 0 !important; }
.bbhg-theme-matrix .bbhg-modal-title::after { content: "://"; }
.bbhg-theme-matrix .bbhg-modal-subtitle { display: none; }
.bbhg-theme-matrix .bbhg-modal-close,
.bbhg-theme-matrix .bbhg-modal-fullscreen,
.bbhg-theme-matrix .bbhg-theme-toggle { background: transparent !important; border: 1px solid var(--mx-gd) !important; border-radius: 0 !important; color: var(--mx-g) !important; }
.bbhg-theme-matrix .bbhg-theme-toggle span { color: var(--mx-g) !important; font-family: var(--mx-mono); text-transform: uppercase; letter-spacing: .06em; }
.bbhg-theme-matrix .bbhg-theme-toggle svg, .bbhg-theme-matrix .bbhg-theme-toggle svg *,
.bbhg-theme-matrix .bbhg-modal-close svg, .bbhg-theme-matrix .bbhg-modal-close svg * { stroke: var(--mx-g) !important; color: var(--mx-g) !important; }
.bbhg-theme-matrix .bbhg-theme-toggle:hover, .bbhg-theme-matrix .bbhg-modal-close:hover { border-color: var(--mx-g) !important; box-shadow: 0 0 10px rgba(0, 255, 65, .4); }
.bbhg-theme-matrix .bbhg-theme-menu { background: #03140a; border: 1px solid var(--mx-g); border-radius: 0; box-shadow: 0 0 20px rgba(0, 255, 65, .3); color: var(--mx-text); }
.bbhg-theme-matrix .bbhg-theme-option { border-radius: 0; font-family: var(--mx-mono); }
.bbhg-theme-matrix .bbhg-theme-option:hover { background: rgba(0, 255, 65, .12); }
.bbhg-theme-matrix .bbhg-theme-option small { color: var(--mx-g2); }
.bbhg-theme-matrix .bbhg-theme-option[aria-checked="true"] b::after { color: var(--mx-g); }

/* Radio */
.bbhg-theme-matrix .bbhg-radio-bar { margin: 10px 14px 4px; padding: 8px 14px 8px 8px; gap: 12px; background: var(--mx-panel); border: 1px solid var(--mx-gd); border-radius: 0; color: var(--mx-text); min-height: 0; }
.bbhg-theme-matrix .bbhg-radio-bar *, .bbhg-theme-matrix .bbhg-radio-station { color: var(--mx-text); }
.bbhg-theme-matrix .bbhg-radio-toggle { background: var(--mx-g); border-radius: 0; }
.bbhg-theme-matrix .bbhg-radio-toggle svg, .bbhg-theme-matrix .bbhg-radio-toggle svg * { fill: var(--mx-bk); stroke: var(--mx-bk); }
.bbhg-theme-matrix .bbhg-radio-eq i { background: var(--mx-g); }

/* Body: transparent so the rain shows between the panels; light sheet when a tool is open */
.bbhg-theme-matrix .bbhg-modal-body { background: transparent; padding: 10px 14px 18px !important; }
.bbhg-theme-matrix.bbhg-lnch-tool .bbhg-modal-body { background: #eef1f5; }
.bbhg-theme-matrix .bbhg-lnch-bar { color: #0f172a; }
.bbhg-theme-matrix .bbhg-lnch-back { border: 1px solid #0a7a25; border-radius: 0; background: #fff; color: #05400f; font-family: var(--mx-mono); }
.bbhg-theme-matrix .bbhg-lnch-title { color: #0f172a; font-family: var(--mx-mono); }
.bbhg-theme-matrix .bbhg-lnch-switch { border: 1px solid #0a7a25; border-radius: 0; background: #fff; }

/* Prompt */
.bbhg-theme-matrix .bbhg-lnch-search { height: auto; min-height: 46px; margin: 0 0 10px; padding: 8px 12px; background: var(--mx-panel); border: 1px solid var(--mx-gd); border-radius: 0; box-shadow: none; color: var(--mx-g2); }
.bbhg-theme-matrix .bbhg-lnch-search::before { content: "user@oradar:~$"; color: var(--mx-g2); font: 400 15px var(--mx-mono); flex: none; }
.bbhg-theme-matrix .bbhg-lnch-search svg { display: none; }
.bbhg-theme-matrix .bbhg-lnch-search:focus-within { border-color: var(--mx-g); box-shadow: 0 0 14px rgba(0, 255, 65, .3); }
.bbhg-theme-matrix .bbhg-lnch-search input { font: 400 16px var(--mx-mono) !important; color: var(--mx-text); caret-color: var(--mx-g); }
.bbhg-theme-matrix .bbhg-lnch-search input::placeholder { color: var(--mx-gd); }
.bbhg-theme-matrix .bbhg-mq-count { font: 400 11px var(--mx-mono); color: var(--mx-g2); flex: none; }
.bbhg-lnch-search .bbhg-mq-count { display: none; }
.bbhg-theme-matrix .bbhg-lnch-search .bbhg-mq-count { display: block; }
.bbhg-theme-matrix .bbhg-lnch-chips, .bbhg-theme-matrix .bbhg-lnch-sect { display: none; }
.bbhg-theme-matrix .bbhg-lnch-results { padding: 0; }
.bbhg-theme-matrix .bbhg-lnch-empty { color: var(--mx-g2); }

/* Message of the day: status line */
.bbhg-theme-matrix .bbhg-lnch-motd { margin: 0 0 10px; background: var(--mx-panel); border: 1px solid var(--mx-gd); border-radius: 0; color: #b6ffc6; }
.bbhg-theme-matrix .bbhg-lnch-motd-label { background: var(--mx-g); color: var(--mx-bk); font-family: var(--mx-mono); }
.bbhg-theme-matrix .bbhg-lnch-motd .bbhg-motd-item { font-family: var(--mx-mono); font-weight: 400; font-size: 13px; }

/* Blocks, folders, commands */
.bbhg-theme-matrix .bbhg-mx-blk { background: var(--mx-panel); border: 1px solid var(--mx-gd); padding: 10px 12px; margin-bottom: 10px; }
.bbhg-theme-matrix .bbhg-mx-cmd { font: 400 13px var(--mx-mono); color: var(--mx-g2); margin-bottom: 8px; }
.bbhg-theme-matrix .bbhg-mx-desc { margin: 0 0 10px; font: 400 12.5px var(--mx-mono); color: var(--mx-g2); }
.bbhg-theme-matrix .bbhg-mx-dirs { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 4px 12px; }
.bbhg-theme-matrix .bbhg-mx-dir { display: flex; justify-content: space-between; gap: 8px; padding: 5px 8px; border: 1px solid transparent !important; border-radius: 0 !important; background: none !important; color: var(--mx-g) !important; font: 400 14.5px var(--mx-mono); text-align: left; cursor: pointer; min-width: 0; box-shadow: none !important; }
.bbhg-theme-matrix .bbhg-mx-dir span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bbhg-theme-matrix .bbhg-mx-dir i { font-style: normal; color: var(--mx-g2); flex: none; }
.bbhg-theme-matrix .bbhg-mx-dir:hover { border-color: var(--mx-g) !important; background: rgba(0, 255, 65, .08) !important; }
.bbhg-theme-matrix .bbhg-mx-dir.on { background: var(--mx-g) !important; color: var(--mx-bk) !important; }
.bbhg-theme-matrix .bbhg-mx-dir.on i { color: var(--mx-bk); }
.bbhg-theme-matrix .bbhg-mx-tools { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 6px 12px; }
.bbhg-theme-matrix .bbhg-mx-tools .bbhg-lnch-card { position: relative; flex-direction: row; align-items: center; gap: 8px; min-height: 0; padding: 8px 10px; background: rgba(0, 20, 8, .6); color: var(--mx-text); border: 1px solid var(--mx-gd); border-radius: 0; box-shadow: none; font: 400 14.5px var(--mx-mono); }
.bbhg-theme-matrix .bbhg-mx-tools .bbhg-lnch-card::before { content: ">"; color: var(--mx-g); flex: none; }
.bbhg-theme-matrix .bbhg-mx-tools .bbhg-lnch-card::after { content: none; }
.bbhg-theme-matrix .bbhg-mx-tools .bbhg-lnch-ico { display: none; }
.bbhg-theme-matrix .bbhg-mx-tools .bbhg-lnch-name { flex: 1; min-width: 0; font: 400 14.5px/1.25 var(--mx-mono); overflow-wrap: anywhere; }
.bbhg-theme-matrix .bbhg-mx-tools .bbhg-tab-badge { position: static; margin: 0; flex: none; border-radius: 0; background: none; border: 1px solid var(--mx-g); color: var(--mx-g); box-shadow: none; }
.bbhg-theme-matrix .bbhg-mx-tools .bbhg-lnch-card:hover { border-color: var(--mx-g); box-shadow: 0 0 12px rgba(0, 255, 65, .35); color: #fff; transform: none; background: rgba(0, 40, 16, .7); }
.bbhg-theme-matrix .bbhg-mx-dir:focus-visible, .bbhg-theme-matrix .bbhg-lnch-card:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.bbhg-mx-cur { display: inline-block; width: 9px; height: 1.05em; background: var(--mx-g, #00ff41); vertical-align: -2px; animation: bbhg-mx-blink 1s steps(2) infinite; }
.bbhg-theme-matrix .bbhg-mx-none { color: var(--mx-g2); }
@keyframes bbhg-mx-blink { 50% { opacity: 0; } }

@media (max-width: 640px) {
    .bbhg-theme-matrix .bbhg-modal-body { padding: 10px 12px 16px !important; }
    .bbhg-theme-matrix .bbhg-mx-dirs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bbhg-theme-matrix .bbhg-mx-tools { grid-template-columns: minmax(0, 1fr); }
    .bbhg-theme-matrix .bbhg-radio-bar { margin-inline: 12px; }
    .bbhg-theme-matrix .bbhg-lnch-search::before { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) { .bbhg-mx-cur { animation: none; } }

/* =====================================================================
 * Classic theme (default): jump bar + floating group dock.
 * Scoped to .bbhg-theme-dock, which launcher.js puts on the overlay whenever no other theme is on.
 * The old top tab strip and filter pills are hidden here; every tab is still clicked behind the scenes,
 * so all panels and loaders keep working. Groups come from the same GROUPS list the other themes use,
 * so "Start Here" (the Discovery Index) appears in every theme.
 * ===================================================================== */
.bbhg-dock { display: none; }
.bbhg-theme-dock {
    --dk-ink: #14161b; --dk-bg: #e8eaf2; --dk-line: #e1e4ee; --dk-muted: #5b6070; --dk-accent: #2f5bff;
    --dk-font: "Manrope", "Segoe UI", system-ui, sans-serif; --dk-mono: "JetBrains Mono", ui-monospace, monospace;
}
.bbhg-theme-dock .bbhg-modal {
    max-width: min(1080px, 100%); height: min(860px, 92vh); max-height: 92vh;
    background: var(--dk-bg); font-family: var(--dk-font); border-radius: 22px;
}
.bbhg-theme-dock.bbhg-fullscreen .bbhg-modal { max-width: 100%; height: 100%; max-height: 100%; border-radius: 0; }
.bbhg-theme-dock .bbhg-modal-header { background: transparent; border-bottom: 0; padding: 14px 22px 6px; }
.bbhg-theme-dock .bbhg-modal-title { font-family: var(--dk-font); font-weight: 800; letter-spacing: -.02em; color: var(--dk-ink); }
.bbhg-theme-dock .bbhg-modal-subtitle { color: var(--dk-muted); }
.bbhg-theme-dock .bbhg-logo { background: var(--dk-accent); box-shadow: none; border-radius: 10px; }
.bbhg-theme-dock .bbhg-header-filters,
.bbhg-theme-dock .bbhg-header-filters-mobile,
.bbhg-theme-dock .bbhg-tabs-slider { display: none !important; }
.bbhg-theme-dock .bbhg-theme-toggle { background: #fff; border-radius: 99px; font-family: var(--dk-font); }
.bbhg-theme-dock .bbhg-theme-toggle:hover { background: #f4f5fa; }
.bbhg-theme-dock .bbhg-modal-fullscreen, .bbhg-theme-dock .bbhg-modal-close { border-radius: 50% !important; }

/* Jump bar (the existing section search, restyled as a centred pill) */
.bbhg-theme-dock .bbhg-modal-body { background: transparent; padding: 0 22px 8px; flex: 1 1 auto; min-height: 0; }
.bbhg-theme-dock .bbhg-tab-search-bar { max-width: 760px; margin: 0 auto !important; padding: 6px 0 14px !important; }
.bbhg-theme-dock .bbhg-tab-search-inner { background: #fff; border: 0; border-radius: 16px; min-height: 48px; box-shadow: 0 6px 24px rgba(20, 22, 27, .08); }
.bbhg-theme-dock .bbhg-tab-search-input { font-family: var(--dk-font); font-weight: 600; font-size: 15px; }
.bbhg-theme-dock .bbhg-tab-panel { background: #fff; border-radius: 22px; box-shadow: 0 10px 40px rgba(20, 22, 27, .08); padding: 22px 26px; border-top: 0 !important; margin-top: 0 !important; }
.bbhg-theme-dock .bbhg-tab-panel.active:not(#bbhg-panel-discover) { padding-top: 22px !important; }

/* Dock */
.bbhg-theme-dock .bbhg-dock { display: flex; flex: none; position: relative; justify-content: center; padding: 8px 14px 16px; z-index: 10001; }
.bbhg-dk-bar {
    display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 26px; max-width: 100%;
    background: #14161b; box-shadow: 0 14px 34px rgba(20, 22, 27, .32);
}
.bbhg-dk-btn {
    --c: #2f5bff; position: relative; flex: none; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 14px; cursor: pointer; color: #fff;
    background: linear-gradient(150deg, var(--c), color-mix(in srgb, var(--c) 62%, #000));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), 0 2px 6px rgba(0, 0, 0, .3);
    display: flex; align-items: center; justify-content: center;
}
.bbhg-dk-btn svg { width: 25px; height: 25px; pointer-events: none; }
.bbhg-dk-btn svg .f { fill: rgba(255, 255, 255, .28); }
.bbhg-dk-btn::after { content: ""; position: absolute; left: 50%; bottom: -7px; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: transparent; }
.bbhg-dk-btn.on { transform: translateY(-6px) scale(1.1); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35), 0 0 0 2px #fff, 0 8px 16px rgba(0, 0, 0, .35); }
.bbhg-dk-btn.on::after { background: #fff; bottom: -12px; }
.bbhg-dk-btn:focus-visible, .bbhg-dk-tool:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.bbhg-dk-tip {
    position: absolute; bottom: calc(100% + 14px); left: 50%; transform: translateX(-50%); white-space: nowrap; pointer-events: none;
    padding: 5px 9px; border-radius: 8px; background: #fff; color: var(--dk-ink); font: 700 12px/1.2 var(--dk-font);
    box-shadow: 0 6px 18px rgba(20, 22, 27, .25); opacity: 0; transition: opacity .12s;
}
.bbhg-dk-btn:hover .bbhg-dk-tip, .bbhg-dk-btn:focus-visible .bbhg-dk-tip { opacity: 1; }
@media (prefers-reduced-motion: no-preference) { .bbhg-dk-btn { transition: transform .15s, box-shadow .15s; } .bbhg-dk-btn:hover { transform: translateY(-4px); } .bbhg-dk-btn.on:hover { transform: translateY(-6px) scale(1.1); } }

/* Group sheet that rises from the dock */
.bbhg-dk-pop {
    --c: #2f5bff; position: absolute; left: 50%; bottom: calc(100% - 4px); transform: translateX(-50%);
    width: min(720px, calc(100% - 28px)); max-height: min(60vh, 460px); overflow-y: auto; padding: 14px;
    background: #fff; border-radius: 20px; box-shadow: 0 18px 50px rgba(20, 22, 27, .35); border-top: 4px solid var(--c);
}
.bbhg-dk-pop[hidden] { display: none; }
.bbhg-dk-pophead { display: flex; align-items: baseline; justify-content: space-between; padding: 2px 6px 10px; color: var(--dk-ink); }
.bbhg-dk-pophead b { font: 800 16px/1.2 var(--dk-font); letter-spacing: -.01em; }
.bbhg-dk-pophead small { font: 700 11px/1 var(--dk-mono); color: var(--dk-muted); text-transform: uppercase; letter-spacing: .08em; }
.bbhg-dk-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 6px; }
.bbhg-dk-tool {
    display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 8px 10px; border: 0; border-radius: 12px; background: #f1f3fa; color: var(--dk-ink);
    font: 700 13.5px/1.25 var(--dk-font); text-align: left; cursor: pointer;
}
.bbhg-dk-tool:hover { background: #e3e8ff; }
.bbhg-dk-tool.on { background: var(--c); color: #fff; }
.bbhg-dk-ti { flex: none; width: 28px; height: 28px; border-radius: 9px; background: #fff; color: var(--c); display: flex; align-items: center; justify-content: center; }
.bbhg-dk-ti svg { width: 16px; height: 16px; stroke: currentColor; }
.bbhg-dk-tn { flex: 1; min-width: 0; overflow-wrap: anywhere; }

@media (max-width: 700px) {
    .bbhg-theme-dock .bbhg-modal { height: 100%; max-height: 100%; border-radius: 0; }
    .bbhg-theme-dock .bbhg-modal-body { padding-inline: 12px; }
    .bbhg-theme-dock .bbhg-tab-panel { padding: 16px 14px; border-radius: 16px; }
    .bbhg-dk-bar { overflow-x: auto; padding-inline: 10px; justify-content: flex-start; scrollbar-width: none; }
    .bbhg-dk-bar::-webkit-scrollbar { display: none; }
    .bbhg-dk-tip { display: none; }
    .bbhg-dk-btn.on { transform: none; }
    .bbhg-dk-pop { width: calc(100% - 16px); }
}
.bbhg-dock:has(.bbhg-dk-pop:not([hidden])) .bbhg-dk-tip { display: none; }
