:root {
  --sbn-ui-font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI", Roboto, Arial, sans-serif;
  --sbn-mono-font: var(--sbn-ui-font);
  --sbn-theme-accent: #ec4899; /* default: violet/pink */
  --sbn-theme-img-portrait: url('../img/sbn-theme-violet-portrait.webp');
  --sbn-theme-img-landscape: url('../img/sbn-theme-violet-landscape.webp');

  /* Typography scale (iPad-first, newspaper-clean) */
  --sbn-type-headline: clamp(18px, 0.6vw + 16px, 22px);
  --sbn-type-title: clamp(16px, 0.45vw + 15px, 20px);
  --sbn-type-body: clamp(15.5px, 0.35vw + 14.5px, 18px);
  --sbn-type-snippet: clamp(15px, 0.3vw + 14px, 17px);
  --sbn-type-site: clamp(11.5px, 0.15vw + 11px, 13px);
  --sbn-type-meta: clamp(11px, 0.12vw + 10.5px, 12.5px);

  --sbn-line-headline: 1.2;
  --sbn-line-title: 1.3;
  --sbn-line-body: 1.55;
  --sbn-line-snippet: 1.5;

  --sbn-letter-tight: 0.01em;
  --sbn-letter-wide: 0.06em;

  /* Typography scale (iPad-first, newspaper-clean) */
  --sbn-type-headline: clamp(18px, 0.6vw + 16px, 22px);
  --sbn-type-title: clamp(16px, 0.45vw + 15px, 20px);
  --sbn-type-body: clamp(15.5px, 0.35vw + 14.5px, 18px);
  --sbn-type-snippet: clamp(15px, 0.3vw + 14px, 17px);
  --sbn-type-site: clamp(11.5px, 0.15vw + 11px, 13px);
  --sbn-type-meta: clamp(11px, 0.12vw + 10.5px, 12.5px);

  --sbn-line-headline: 1.2;
  --sbn-line-title: 1.28;
  --sbn-line-body: 1.55;
  --sbn-line-snippet: 1.5;

  --sbn-track-site: 0.06em;
}

/* Global reset for HQ theme */
html, body {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
}

*, *::before, *::after {
    box-sizing: border-box;
}

body {
    background: #0b0f1a;
    overflow-x: hidden;
}

/* Typography + reset */
.sbn-control-room,
.sbn-widget,
.sbn-overlay {
    box-sizing: border-box;
    font-family: var(--sbn-ui-font);
}

/* Floating widget */
.sbn-widget {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    z-index: 9999;
}

.sbn-widget-button {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    border-radius: 999px;
    border: none;
    padding: 0.5rem 0.9rem;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(15,23,42,0.35);
    background: #111827;
    color: #f9fafb;
    font-size: 0.875rem;
}

.sbn-avatar {
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    background-size: cover;
    background-position: center;
    background-image: var(--sbn-theme-img-portrait);
    background-color: var(--sbn-theme-accent);
}

/* Overlay: full-screen */
.sbn-overlay {
    position: fixed;
    inset: 0;
    z-index: 9998;
    background: rgba(15,23,42,0.85);
    display: none;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.sbn-overlay[aria-hidden="false"] {
    display: flex;
    align-items: stretch;
    justify-content: stretch;
}

/* Overlay inner takes full viewport */
.sbn-overlay-inner {
    margin: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    position: relative;
}

.sbn-overlay-body {
    width: 100%;
}

/* Fullscreen shell with café hero */
.sbn-fullscreen-shell {
    width: 100%;
    min-height: 100vh;
    height: auto;
    padding: 2vh 0.9rem;
    display: flex;
    align-items: stretch;
    justify-content: center;
    position: relative;
    background: transparent;
}

/* Fixed background layer so the hero does not scroll with the log */
.sbn-fullscreen-shell::before {
    content: "";
    position: fixed;
    inset: 0;
    background-image: var(--sbn-theme-img-landscape);

  /* Typography scale (iPad-first, newspaper-clean) */
  --sbn-type-headline: clamp(18px, 0.6vw + 16px, 22px);
  --sbn-type-title: clamp(16px, 0.45vw + 15px, 20px);
  --sbn-type-body: clamp(15.5px, 0.35vw + 14.5px, 18px);
  --sbn-type-snippet: clamp(15px, 0.3vw + 14px, 17px);
  --sbn-type-site: clamp(11.5px, 0.15vw + 11px, 13px);
  --sbn-type-meta: clamp(11px, 0.12vw + 10.5px, 12.5px);

  --sbn-line-headline: 1.2;
  --sbn-line-title: 1.3;
  --sbn-line-body: 1.55;
  --sbn-line-snippet: 1.5;

  --sbn-letter-tight: 0.01em;
  --sbn-letter-wide: 0.06em;

  /* Typography scale (iPad-first, newspaper-clean) */
  --sbn-type-headline: clamp(18px, 0.6vw + 16px, 22px);
  --sbn-type-title: clamp(16px, 0.45vw + 15px, 20px);
  --sbn-type-body: clamp(15.5px, 0.35vw + 14.5px, 18px);
  --sbn-type-snippet: clamp(15px, 0.3vw + 14px, 17px);
  --sbn-type-site: clamp(11.5px, 0.15vw + 11px, 13px);
  --sbn-type-meta: clamp(11px, 0.12vw + 10.5px, 12.5px);

  --sbn-line-headline: 1.2;
  --sbn-line-title: 1.28;
  --sbn-line-body: 1.55;
  --sbn-line-snippet: 1.5;

  --sbn-track-site: 0.06em;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 0;
    will-change: transform;
    transform: translateZ(0);
}

/* Ensure the console sits above the fixed background */
.sbn-fullscreen-shell > * {
    position: relative;
    z-index: 1;
}

/* Mobile / tablet: tighter frame so the console feels like a full app */
@media (max-width: 900px) {
    .sbn-fullscreen-shell {
        padding: 1.2vh 0.6rem;
    }
    .sbn-control-room {
        border-radius: 0.75rem;
    }
}


@media (max-width: 768px) {
    .sbn-fullscreen-shell {
        padding: 2rem 1rem;
    }
    .sbn-fullscreen-shell::before {
        background-image: var(--sbn-theme-img-portrait);
    }

}

/* White card console */
.sbn-control-room {
    max-width: 960px;
    width: 100%;
    border-radius: 1rem;
    background: rgba(249,250,251,0.25);
    box-shadow: 0 24px 70px rgba(15,23,42,0.4);
    color: #f9fafb;
    padding: 1.25rem 1.25rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    min-height: 80vh;

    display: flex;
    flex-direction: column;
    max-height: 100%;}

/* Close button */
.sbn-close {
    position: absolute;
    top: 0.75rem;
    right: 1rem;
    border: none;
    background: transparent;
    color: #f9fafb;
    font-size: 1.7rem;
    cursor: pointer;
    z-index: 2;
}

/* Header bar */
.sbn-header-bar {
    display: flex;
    gap: 0.75rem;
    align-items: center;
}

.sbn-header-avatar {
    flex: 0 0 56px;
    height: 56px;
    border-radius: 999px;
    background-color: rgba(17,24,39,0.25);
    background-size: cover;
    background-position: center;
}

.sbn-header-text {
    flex: 1 1 auto;
}

.sbn-header-title {
    font-size: 0.95rem;
    font-weight: 600;
    margin-bottom: 0.25rem;
}

.sbn-status-line {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
    font-size: 0.75rem;
}

.sbn-status-label {
    font-weight: 600;
    color: #f59e0b;
}

.sbn-status-pill {
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    background: rgba(243,244,246,0.25);
    border: 1px solid #e5e7eb;
    color: #374151;
}

.sbn-online {
    background: #10b981;
    color: #ecfdf5;
}

.sbn-status-copy {
    font-size: 0.8rem;
    line-height: 1.4;
    color: #4b5563;
}

/* Terminal */
.sbn-terminal {
    background: rgba(255, 255, 255, 0.40);
    border-radius: 0.75rem;
    border: 1px solid #e5e7eb;
    overflow: hidden;

    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;}

.sbn-terminal-header {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.85rem;
    background: rgba(243,244,246,0.25);
    border-bottom: 1px solid #e5e7eb;
}

.sbn-dot {
    width: 0.6rem;
    height: 0.6rem;
    border-radius: 999px;
    display: inline-block;
}

.sbn-dot-red { background: #f97373; }
.sbn-dot-yellow { background: #facc15; }
.sbn-dot-green { background: #22c55e; }

.sbn-terminal-title {
    margin-left: auto;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #6b7280;
}

.sbn-terminal-body {
    padding: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;

    flex: 1 1 auto;
    min-height: 0;
    }


.sbn-log {
    flex: 1 1 auto;
    padding: 0.25rem 0.25rem 0.75rem;
    font-size: 1rem;
    line-height: 1.55;
    flex: 1 1 auto;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}


.sbn-log-line {
    margin-bottom: 0.5rem;
}

.sbn-prefix {
    font-weight: 600;
    color: #16a34a;
    margin-right: 0.35rem;
}

.sbn-text {
    white-space: pre-wrap;
    color: #f9fafb;
}

/* Form */
.sbn-form {
    border-top: 1px solid #e5e7eb;
    padding: 0.5rem 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;

    margin-top: 0.25rem;
    background: rgba(249,250,251,0.9);
    backdrop-filter: blur(6px);
}

.sbn-label {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #6b7280;
}

#sbn-question {
    width: 100%;
    border-radius: 0.5rem;
    border: 1px solid #e5e7eb;
    background: rgba(255, 255, 255, 0.40);
    color: #f9fafb;
    padding: 0.5rem 0.6rem;
    font-size: 0.85rem;
    resize: vertical;
    box-shadow: 0 0 0 1px rgba(255,255,255,0.5);
}

#sbn-question::placeholder {
    color: #9ca3af;
}

.sbn-mood-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.sbn-mood-option {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.8rem;
    cursor: pointer;
    color: #374151;
}

.sbn-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.sbn-submit-button {
    border-radius: 999px;
    border: none;
    padding: 0.4rem 1.2rem;
    background: linear-gradient(135deg, #f97316, #fb7185);
    color: #f9fafb;
    font-weight: 600;
    font-size: 0.85rem;
    cursor: pointer;
}

.sbn-hint {
    font-size: 0.75rem;
    color: #6b7280;
}

/* Bulletins */
.sbn-bulletins {
    margin-top: 0.5rem;
}

.sbn-bulletins h2 {
    font-size: 1.05rem;
    margin-bottom: 0.4rem;
    color: #f9fafb;
}

.sbn-bulletin-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

.sbn-bulletin-item {
    border-radius: 0.75rem;
    border: 1px solid #e5e7eb;
    background: rgba(255, 255, 255, 0.40);
    padding: 0.75rem;
    font-size: 0.95rem;
    color: #f9fafb;
}

.sbn-bulletin-item a {
    color: #f97316;
    text-decoration: none;
}

/* Larger screens */
@media (min-width: 768px) {
    .sbn-control-room {
        padding: 1.5rem 1.75rem 1.75rem;
        gap: 1.5rem;
    }

    /* Keep bulletins single-column on all screens per Alfons */
    .sbn-bulletin-list {
        grid-template-columns: 1fr;
    }
}


/* Some‑B network cards layout */
.sbn-network-summary {
    margin: 1rem 0 0.5rem;
    font-size: 1.05rem;
    line-height: 1.5;
}

.sbn-network-anchor {
    font-weight: 600;
}

.sbn-network-anchor-kid {
    margin-top: 0.15rem;
    font-size: 0.95rem;
    line-height: 1.4;
    font-style: italic;
    color: #4b5563;
}

.sbn-network-insights {
    margin-top: 0.35rem;
}

.sbn-network-cards-viewport {
    width: 100%;
    max-width: 100%;
    margin: 0.5rem 0 1.25rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.sbn-network-cards {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.75rem;
    padding-bottom: 0.25rem;
    scroll-snap-type: x mandatory;
    width: max-content;
    box-sizing: border-box;
}

.sbn-network-card {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    padding: 0.45rem 0.6rem;
    border-radius: 0.7rem;
    background: rgba(12, 16, 24, 0.035);
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
    max-width: 220px;
    flex: 0 0 190px;
    scroll-snap-align: start;
}

.sbn-network-thumb {
    width: 32px;
    height: 32px;
    border-radius: 999px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    font-weight: 600;
    background: rgba(0,0,0,0.06);
    flex-shrink: 0;
}

.sbn-network-initial {
    display: inline-block;
    transform: translateY(1px);
}

.sbn-network-meta {
    min-width: 0;
}

.sbn-network-site {
    margin: 0;
    font-size: 0.78rem;
    opacity: 0.7;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.sbn-network-title {
    margin: 0.08rem 0 0.15rem;
    font-size: 1.02rem;
    line-height: 1.28;
    font-weight: 600;
    max-width: 100%;
    white-space: normal;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}


.sbn-network-title a {
    text-decoration: none;
    display: block;
    max-width: 100%;
}

.sbn-network-title a:hover {
    text-decoration: underline;
}

.sbn-network-snippet {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.5;
    opacity: 0.92;
}


/* End network cards */


/* Compact input row: avatar + single-line input + Ask button */
.sbn-form--compact .sbn-label,
.sbn-form--compact .sbn-mood-row {
    display: none;
}

.sbn-input-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.sbn-avatar-pill {
    width: 32px;
    height: 32px;
    border-radius: 999px;
    background: rgba(17,24,39,0.08);
    border: 1px solid rgba(148,163,184,0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 600;
    color: #f9fafb;
    box-shadow: 0 0 0 1px rgba(255,255,255,0.7);
}

.sbn-avatar-initials {
    letter-spacing: 0.05em;
}

.sbn-input-row .sbn-input {
    flex: 1;
}

/* One-line, pill-shaped input */
#sbn-question.sbn-input {
    width: 100%;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.85);
    background: rgba(255, 255, 255, 0.40);
    color: #f9fafb;
    padding: 0.4rem 0.75rem;
    font-size: 0.85rem;
    line-height: 1.2;
    resize: none;
    box-shadow: 0 0 0 1px rgba(255,255,255,0.35);
}

#sbn-question.sbn-input::placeholder {
    color: #9ca3af;
}

/* Small Ask button */
.sbn-ask-button {
    border-radius: 999px;
    border: 1px solid #111827;
    background: #111827;
    color: #f9fafb;
    padding: 0.35rem 0.8rem;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}

.sbn-ask-button:hover {
    background: #020617;
    border-color: #020617;
}

@media (max-width: 600px) {
    .sbn-avatar-pill {
        width: 28px;
        height: 28px;
        font-size: 0.78rem;
    }

    .sbn-ask-button {
        padding: 0.3rem 0.7rem;
        font-size: 0.78rem;
    }
}


/* Minimal mode: hide page header/status bar for pure console */
.sbn-header-bar { display: none; }

/* ================================
   Some-B glass console overlay (2-panel layout)
   ================================ */

.sb-console {
  position: fixed;
  inset: 3vh 3vw;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  pointer-events: auto;
  z-index: 9999;
  font-family: var(--sbn-ui-font);
  color: #f9fafb;
}

/* GLASS PANELS */
.sb-log-panel,
.sb-input-panel {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  background: rgba(2, 6, 23, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 20px;
  color: #f9fafb;
}
.sb-log-panel {
  flex: 1;
  padding: 16px 20px 12px;
  margin-bottom: 12px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow-y: auto;
}

.sb-input-panel {
  padding: 10px 12px;
  display: flex;
  align-items: center;
  gap: 10px;
}

/* LOG ENTRIES */
.sb-log {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.sb-log-entry {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

/*
 * Increase the chat text size and line height for better readability.
 * A larger font helps visually impaired users follow the conversation.
 */
.sb-log-text {
  flex: 1;
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.1px;
}



\.sb-log-panel .sbn-text {
  color: #f9fafb;
}
\.sb-log-panel .sbn-prefix {
  color: #86efac;
}
/* AVATARS */
/*
 * Increase the avatar size for better visibility. The default size of
 * 32×32 pixels can be difficult to see for users with limited vision.
 * Enlarging the avatars improves accessibility without compromising
 * layout. The avatars remain circular thanks to a large border-radius.
 */
.sb-avatar {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/*
 * Use softer, more web‑friendly colours for the assistant and user avatars.
 * The previous bright red and blue could be harsh for low‑vision users.
 * Here we switch to pastel purples that harmonise with the franchise
 * palette and improve contrast on dark backgrounds.
 */
.sb-avatar-red {
  background: #c084fc;
}

.sb-avatar-blue {
  background: #d8b4e2;
}

.sb-avatar-icon {
  font-size: 12px;
  color: #fff;
  font-weight: 600;
}

/* Removed radio/dots controls per Alfons: only log + bulletins remain */
/* INPUT + ASK BUTTON */
/*
 * Make the input font larger for accessibility. The increased
 * type size and line height support users with limited vision and
 * align with the enlarged chat text.
 */
.sb-input {
  flex: 1;
  border: none;
  resize: none;
  background: transparent;
  color: #f9fafb;
  font-size: 18px;
  line-height: 1.6;
  max-height: 30vh;
  outline: none;
  font-family: inherit;
}


.sb-input::placeholder {
  color: rgba(249, 250, 251, 0.65);
}

.sb-ask-btn {
  border: none;
  border-radius: 999px;
  padding: 10px 16px;
  /* Use the current theme accent color instead of a fixed orange. */
  background: var(--sbn-theme-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.sb-ask-icon {
  color: #fff;
  font-size: 14px;
  font-weight: 600;
}

/* Bulletins row becomes simple card strip under log */
.sb-bulletin-cards {
  margin-top: 8px;
  display: flex;
  flex-wrap: nowrap;
  gap: 10px;
  overflow-x: auto;
}

/* Keep existing bulletin item styles but tighten for card row */
.sb-bulletin-cards .sbn-bulletin-item {
  flex: 0 0 180px;
}

/* Mobile padding tweak */
@media (max-width: 768px) {
  .sb-console {
    inset: 2vh 2vw;
  }
}



/* === v0.6.1: UX tweaks from Alfons === */

/* 1) Hide inline prefixes like "You>" / "Some-B>" but keep avatar circles */
.sbn-prefix {
  display: none !important;
}

/* 2) Lift input box above bottom toggle / browser controls */
.sb-input-panel {
  margin-bottom: 2.75rem;
}

@media (max-height: 700px) {
  .sb-input-panel {
    margin-bottom: 1.5rem;
  }
}


/* Network answers grid (used by [sbn_network_answers]) */
.sbn-answers-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}

.sbn-answers-grid--empty {
  font-size: 0.9rem;
  opacity: 0.8;
}

.sbn-answer-card {
  padding: 1rem;
  border-radius: 0.75rem;
  border: 1px solid rgba(0, 0, 0, 0.06);
  background: rgba(255, 255, 255, 0.40);
  backdrop-filter: blur(6px);
}

.sbn-answer-question {
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 0.5rem;
}

.sbn-answer-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-bottom: 0.5rem;
}

.sbn-answer-chip {
  font-size: 0.78rem;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  background: rgba(255, 255, 255, 0.40);
}

.sbn-answer-excerpt {
  font-size: 0.98rem;
  line-height: 1.5;
  opacity: 0.9;
}


/* Engine badges: show whether reply came from LLM bridge or local PDE */
.sbn-engine-badge {
  display: inline-block;
  margin-top: 0.35rem;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.85;
}

.sbn-engine-badge.sbn-engine-llm {
  color: #0f766e; /* teal: neural bridge on */
}

.sbn-engine-badge.sbn-engine-local {
  color: #6b7280; /* slate: local PDE */
}


/* === v1.0.4: Bulletins vertical inside text column, no slider (per Alfons) === */
#sbn-bulletin-list {
  display: block !important;
  overflow-x: visible !important;
  margin-top: 8px;
  margin-left: 42px;              /* avatar 32 + gap 10 => align with text column */
  max-width: calc(100% - 42px);   /* keep inside log text width */
}

#sbn-bulletin-list .sbn-bulletin-item {
  display: block !important;
  width: 100% !important;
  flex: 0 0 auto !important;
}


/* v1.0.5: Bulletins as a log-entry inside text column; no slider, no multi-column */
.sb-avatar-placeholder {
  visibility: hidden;
}

#sbn-bulletin-list {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0.75rem !important;
  margin-top: 8px;
  margin-left: 0;
  max-width: 100%;
  overflow-x: visible !important;
}

#sbn-bulletin-list .sbn-bulletin-item {
  display: block !important;
  width: auto !important;
  flex: 0 0 auto !important;
}



/* v1.0.7: Force network cards / bulletins to stack vertically under each other (no horizontal row) */
.sbn-network-cards-viewport {
    overflow-x: visible;
}

.sbn-network-cards {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    gap: 0.75rem;
    scroll-snap-type: none;
}

.sbn-network-card {
    max-width: 100%;
    flex: 0 0 auto;
    width: 100%;
}



/* Footer quick options – tiny all-caps links in the console footer */
.sbn-footer-quicklinks {
  position: absolute;
  left: 1.25rem;   /* Align with console card padding on the left */
  right: auto;     /* Make sure we never hug the right edge */
  bottom: 1.25rem; /* Sit neatly just above the bottom padding */
  margin-top: 0;
  text-align: left;
  font-size: 10px;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  opacity: 0.75;
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 6px;
}

.sbn-footer-quicklinks .sbn-footer-link {
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font: inherit;
  cursor: pointer;
  text-decoration: underline;
  color: inherit;
}

.sbn-footer-quicklinks .sbn-footer-link:focus,
.sbn-footer-quicklinks .sbn-footer-link:hover {
  opacity: 1;
}


/* Mini root-system sibling list inside network cards */
.sbn-network-siblings {
    margin: 0.25rem 0 0;
    padding-left: 1rem;
    list-style: disc;
    font-size: 0.88rem;
    line-height: 1.5;
    opacity: 0.9;
}

.sbn-network-sibling + .sbn-network-sibling {
    margin-top: 0.1rem;
}


/* THEME PALETTES v1.0.8 */
/* Each theme overrides the CSS variables on the fullscreen shell.
   JS simply toggles .sbn-theme-red / .sbn-theme-aqua / .sbn-theme-violet on .sbn-fullscreen-shell. */

.sbn-fullscreen-shell.sbn-theme-violet {
  --sbn-theme-accent: #ec4899;
  --sbn-theme-img-portrait: url('../img/sbn-theme-violet-portrait.webp');
  --sbn-theme-img-landscape: url('../img/sbn-theme-violet-landscape.webp');

  /* Typography scale (iPad-first, newspaper-clean) */
  --sbn-type-headline: clamp(18px, 0.6vw + 16px, 22px);
  --sbn-type-title: clamp(16px, 0.45vw + 15px, 20px);
  --sbn-type-body: clamp(15.5px, 0.35vw + 14.5px, 18px);
  --sbn-type-snippet: clamp(15px, 0.3vw + 14px, 17px);
  --sbn-type-site: clamp(11.5px, 0.15vw + 11px, 13px);
  --sbn-type-meta: clamp(11px, 0.12vw + 10.5px, 12.5px);

  --sbn-line-headline: 1.2;
  --sbn-line-title: 1.3;
  --sbn-line-body: 1.55;
  --sbn-line-snippet: 1.5;

  --sbn-letter-tight: 0.01em;
  --sbn-letter-wide: 0.06em;

  /* Typography scale (iPad-first, newspaper-clean) */
  --sbn-type-headline: clamp(18px, 0.6vw + 16px, 22px);
  --sbn-type-title: clamp(16px, 0.45vw + 15px, 20px);
  --sbn-type-body: clamp(15.5px, 0.35vw + 14.5px, 18px);
  --sbn-type-snippet: clamp(15px, 0.3vw + 14px, 17px);
  --sbn-type-site: clamp(11.5px, 0.15vw + 11px, 13px);
  --sbn-type-meta: clamp(11px, 0.12vw + 10.5px, 12.5px);

  --sbn-line-headline: 1.2;
  --sbn-line-title: 1.28;
  --sbn-line-body: 1.55;
  --sbn-line-snippet: 1.5;

  --sbn-track-site: 0.06em;
}

.sbn-fullscreen-shell.sbn-theme-aqua {
  --sbn-theme-accent: #22c6e8;
  --sbn-theme-img-portrait: url('../img/sbn-theme-aqua-portrait.webp');
  --sbn-theme-img-landscape: url('../img/sbn-theme-aqua-landscape.webp');

  /* Typography scale (iPad-first, newspaper-clean) */
  --sbn-type-headline: clamp(18px, 0.6vw + 16px, 22px);
  --sbn-type-title: clamp(16px, 0.45vw + 15px, 20px);
  --sbn-type-body: clamp(15.5px, 0.35vw + 14.5px, 18px);
  --sbn-type-snippet: clamp(15px, 0.3vw + 14px, 17px);
  --sbn-type-site: clamp(11.5px, 0.15vw + 11px, 13px);
  --sbn-type-meta: clamp(11px, 0.12vw + 10.5px, 12.5px);

  --sbn-line-headline: 1.2;
  --sbn-line-title: 1.3;
  --sbn-line-body: 1.55;
  --sbn-line-snippet: 1.5;

  --sbn-letter-tight: 0.01em;
  --sbn-letter-wide: 0.06em;

  /* Typography scale (iPad-first, newspaper-clean) */
  --sbn-type-headline: clamp(18px, 0.6vw + 16px, 22px);
  --sbn-type-title: clamp(16px, 0.45vw + 15px, 20px);
  --sbn-type-body: clamp(15.5px, 0.35vw + 14.5px, 18px);
  --sbn-type-snippet: clamp(15px, 0.3vw + 14px, 17px);
  --sbn-type-site: clamp(11.5px, 0.15vw + 11px, 13px);
  --sbn-type-meta: clamp(11px, 0.12vw + 10.5px, 12.5px);

  --sbn-line-headline: 1.2;
  --sbn-line-title: 1.28;
  --sbn-line-body: 1.55;
  --sbn-line-snippet: 1.5;

  --sbn-track-site: 0.06em;
}

.sbn-fullscreen-shell.sbn-theme-red {
  --sbn-theme-accent: #f97373;
  --sbn-theme-img-portrait: url('../img/sbn-theme-red-portrait.webp');
  --sbn-theme-img-landscape: url('../img/sbn-theme-red-landscape.webp');

  /* Typography scale (iPad-first, newspaper-clean) */
  --sbn-type-headline: clamp(18px, 0.6vw + 16px, 22px);
  --sbn-type-title: clamp(16px, 0.45vw + 15px, 20px);
  --sbn-type-body: clamp(15.5px, 0.35vw + 14.5px, 18px);
  --sbn-type-snippet: clamp(15px, 0.3vw + 14px, 17px);
  --sbn-type-site: clamp(11.5px, 0.15vw + 11px, 13px);
  --sbn-type-meta: clamp(11px, 0.12vw + 10.5px, 12.5px);

  --sbn-line-headline: 1.2;
  --sbn-line-title: 1.3;
  --sbn-line-body: 1.55;
  --sbn-line-snippet: 1.5;

  --sbn-letter-tight: 0.01em;
  --sbn-letter-wide: 0.06em;

  /* Typography scale (iPad-first, newspaper-clean) */
  --sbn-type-headline: clamp(18px, 0.6vw + 16px, 22px);
  --sbn-type-title: clamp(16px, 0.45vw + 15px, 20px);
  --sbn-type-body: clamp(15.5px, 0.35vw + 14.5px, 18px);
  --sbn-type-snippet: clamp(15px, 0.3vw + 14px, 17px);
  --sbn-type-site: clamp(11.5px, 0.15vw + 11px, 13px);
  --sbn-type-meta: clamp(11px, 0.12vw + 10.5px, 12.5px);

  --sbn-line-headline: 1.2;
  --sbn-line-title: 1.28;
  --sbn-line-body: 1.55;
  --sbn-line-snippet: 1.5;

  --sbn-track-site: 0.06em;
}

/* ---------------------------------------------------------------------------
 * Supergirl themes (custom backgrounds featuring the studio's mascot)
 *
 * Each theme defines its own accent colour and portrait/landscape backgrounds.
 * The accent colour is applied to the input avatar and other highlights.
 */
.sbn-fullscreen-shell.sbn-theme-supergirl-home {
  --sbn-theme-accent: #e68eae;
  --sbn-theme-img-portrait: url('../img/sbn-supergirl-home-portrait.jpeg');
  --sbn-theme-img-landscape: url('../img/sbn-supergirl-home-landscape.jpeg');
  /* Typography overrides intentionally left at defaults */
}

.sbn-fullscreen-shell.sbn-theme-supergirl-city {
  --sbn-theme-accent: #92c5e5;
  --sbn-theme-img-portrait: url('../img/sbn-supergirl-city-portrait.jpeg');
  --sbn-theme-img-landscape: url('../img/sbn-supergirl-city-landscape.jpeg');
}

.sbn-fullscreen-shell.sbn-theme-supergirl-office {
  --sbn-theme-accent: #fec497;
  --sbn-theme-img-portrait: url('../img/sbn-supergirl-office-portrait.jpeg');
  --sbn-theme-img-landscape: url('../img/sbn-supergirl-office-landscape.jpeg');
}

/* Input-row avatar accents for supergirl themes */
.sbn-fullscreen-shell.sbn-theme-supergirl-home .sb-input-panel .sb-avatar {
  background: #e68eae;
}
.sbn-fullscreen-shell.sbn-theme-supergirl-city .sb-input-panel .sb-avatar {
  background: #92c5e5;
}
.sbn-fullscreen-shell.sbn-theme-supergirl-office .sb-input-panel .sb-avatar {
  background: #fec497;
}

/* Input-row avatar follows current theme accent color */
.sbn-fullscreen-shell.sbn-theme-violet .sb-input-panel .sb-avatar {
  background: #ec4899;
}

.sbn-fullscreen-shell.sbn-theme-aqua .sb-input-panel .sb-avatar {
  background: #22c6e8;
}

.sbn-fullscreen-shell.sbn-theme-red .sb-input-panel .sb-avatar {
  background: #f97373;
}



/* Some-B v2.0: abstract avatar icons + scoped font */

/*
 * Enlarge the icon inside the avatar to match the new avatar size. The
 * icon now fills most of the 48×48 avatar while leaving a small margin
 * for the coloured ring. The background-size is set to cover to ensure
 * the portraits scale properly.
 */
.sb-avatar-icon {
  display: inline-block;
  width: 42px;
  height: 42px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  text-indent: -9999px;
  overflow: hidden;
}

/*
 * Override the default avatar icons for chat messages.
 *
 * The original theme used simple SVG icons to represent the Some‑B assistant
 * and the user. To align with the Some‑B franchise vision, we replace those
 * icons with the actual character portraits: Bibi for the assistant and
 * Pixel the cat for the user. These images are stored in the assets/img
 * folder. We round them and scale them to fill the 22×22 pixel icon area.
 */
.sb-avatar-icon-sb {
  /* Show the generated girl-face sticker icon */
  background-image: url('../img/bibi-avatar-icon.png');
  background-size: contain;
  background-position: center;
  border-radius: 0;
}


.sb-avatar-icon-user {
  /* Show the generated cat-face sticker icon */
  background-image: url('../img/pixel-avatar-icon.png');
  background-size: contain;
  background-position: center;
  border-radius: 0;
}


/* -------------------------------------------------------------------
 * Search results slider styles
 *
 * The search and explore commands output results grouped by site in
 * horizontally scrollable slides. Each slide contains the site name
 * followed by a list of matching articles. The slider uses scroll
 * snapping to align slides and indicator buttons to jump between
 * slides. These styles define the layout, colours and responsive
 * behaviour of the slider components.
 */
.sbn-search-slider {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  gap: 1rem;
  margin-top: 1rem;
}

.sbn-search-slide {
  flex: 0 0 100%;
  scroll-snap-align: start;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 0.75rem;
  padding: 1rem;
}

.sbn-search-site {
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  color: #f9fafb;
}

.sbn-search-item {
  font-size: 1rem;
  line-height: 1.45;
  margin-bottom: 0.5rem;
  color: #f9fafb;
}

.sbn-search-item a.sbn-search-link {
  color: #c7d2fe;
  text-decoration: underline;
}

.sbn-search-snippet {
  color: #a1a1aa;
}

.sbn-slider-indicators {
  text-align: center;
  margin-top: 0.5rem;
}

.sbn-slider-indicator {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: none;
  background: rgba(255, 255, 255, 0.4);
  margin: 0 4px;
  cursor: pointer;
  padding: 0;
}

.sbn-slider-indicator.active {
  background: rgba(255, 255, 255, 0.9);
}

.sb-ask-icon-send {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.sb-ask-icon-send::before {
  content: '';
  display: inline-block;
  width: 18px;
  height: 18px;
  margin-right: 4px;
  background-image: url('../icons/send.svg');
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}



/* Some-B v2.0 font + link hard-scope to prevent theme bleed */
.sbn-control-room a,
.sbn-widget a,
.sbn-overlay a,
.sbn-fullscreen-shell a,
.sb-console a {
  font-family: var(--sbn-ui-font) !important;
  color: inherit;
}

.sbn-terminal-title,
.sbn-header-title,
.sbn-network-title,
.sbn-network-title a {
  font-family: var(--sbn-ui-font) !important;
}



/* Some-B v2.0: abstract per-site icons for network answers */
.sbn-network-thumb {
    width: 1.6rem;
    height: 1.6rem;
    min-width: 1.6rem;
    min-height: 1.6rem;
    border-radius: 0.6rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.14);
}

.sbn-site-icon {
    display: inline-block;
    width: 1.1rem;
    height: 1.1rem;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

/* Site icon mappings */
.sbn-site-icon-sbz { background-image: url('../icons/site-sbz.svg'); }
.sbn-site-icon-odd { background-image: url('../icons/site-odd.svg'); }
.sbn-site-icon-osad { background-image: url('../icons/site-osad.svg'); }
.sbn-site-icon-pawn { background-image: url('../icons/site-pawn.svg'); }
.sbn-site-icon-lasg { background-image: url('../icons/site-lasg.svg'); }
.sbn-site-icon-mim { background-image: url('../icons/site-mim.svg'); }
.sbn-site-icon-kuai { background-image: url('../icons/site-kuai.svg'); }
.sbn-site-icon-kueu { background-image: url('../icons/site-kueu.svg'); }
.sbn-site-icon-nya { background-image: url('../icons/site-nya.svg'); }
.sbn-site-icon-ayd { background-image: url('../icons/site-ayd.svg'); }
.sbn-site-icon-sul { background-image: url('../icons/site-sul.svg'); }
.sbn-site-icon-cdd { background-image: url('../icons/site-cdd.svg'); }

/* ===== Codes overview (fold-out) ===== */
.sbn-codes-collapsible{
    margin-top: .75rem;
    border-radius: .9rem;
    backdrop-filter: blur(12px);
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(255,255,255,.12);
    overflow: hidden;
}

.sbn-codes-toggle{
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
    padding: .65rem .8rem;
    background: transparent;
    border: 0;
    color: inherit;
    font-weight: 600;
    font-size: .9rem;
    cursor: pointer;
}

.sbn-codes-hint{
    font-weight: 400;
    opacity: .7;
    font-size: .78rem;
}

.sbn-codes-panel{
    padding: .1rem .75rem .75rem .75rem;
}

.sbn-code-list{
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.sbn-code-item{
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .3rem .55rem;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.2);
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}

.sbn-code-item:hover{
    border-color: rgba(255,255,255,.5);
}

.sbn-code-item code{
    font-family: var(--sbn-ui-font);
    font-size: .78rem;
}

.sbn-code-item span{
    font-size: .75rem;
    opacity: .75;
}


/* ===== Mode launcher (speech bubble) ===== */
.sbn-mode-launcher{
  position: absolute;
  right: 1rem;
  bottom: 5.25rem;
  z-index: 5;
}

.sbn-launcher-button{
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.35);
  background: rgba(17,24,39,.9);
  color: #f9fafb;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 8px 22px rgba(15,23,42,.35);
}

.sbn-launcher-icon{
  font-size: 18px;
  line-height: 1;
}

.sbn-speech-bubble{
  position: absolute;
  right: 0;
  bottom: 54px;
  min-width: 220px;
  padding: .65rem .65rem .5rem;
  border-radius: 14px;
  background: rgba(255,255,255,.65);
  border: 1px solid rgba(255,255,255,.55);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 18px 40px rgba(15,23,42,.22);
}

.sbn-speech-bubble::after{
  content: '';
  position: absolute;
  right: 14px;
  bottom: -8px;
  width: 14px;
  height: 14px;
  background: rgba(255,255,255,.65);
  transform: rotate(45deg);
  border-right: 1px solid rgba(255,255,255,.45);
  border-bottom: 1px solid rgba(255,255,255,.45);
}

.sbn-mode-buttons{
  display: flex;
  gap: .35rem;
  flex-wrap: wrap;
}

.sbn-mode-btn{
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  border-radius: 10px;
  padding: .35rem .45rem;
  border: 1px solid rgba(15,23,42,.08);
  background: rgba(255,255,255,.35);
  color: #0f172a;
  font-weight: 600;
  font-size: .78rem;
  cursor: pointer;
}

.sbn-mode-btn .sbn-mode-emoji{
  font-size: 1rem;
}

.sbn-mode-btn.is-active{
  background: rgba(17,24,39,.95);
  color: #f9fafb;
  border-color: rgba(17,24,39,.95);
}

.sbn-mode-hint{
  margin-top: .4rem;
  font-size: .72rem;
  opacity: .85;
}

.sbn-mode-hint-prefix{
  font-weight: 600;
}

@media (max-width: 600px){
  .sbn-mode-launcher{ right: .75rem; bottom: 5rem; }
  .sbn-speech-bubble{ min-width: 200px; }
}


/* ===== Mode dictionary (predictive code suggestions) ===== */
.sb-input-panel{
  position: relative;
}

.sbn-mode-suggest-btn{
  position: absolute;
  right: 3.25rem;
  bottom: 1.05rem;
  width: 1.9rem;
  height: 1.9rem;
  border-radius: .6rem;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  backdrop-filter: blur(8px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.sbn-mode-suggest-icon{
  font-size: 1rem;
  line-height: 1;
}

.sbn-mode-suggest-panel{
  position: absolute;
  right: 1rem;
  bottom: 3.4rem;
  min-width: 210px;
  max-width: 80vw;
  border-radius: .85rem;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(10,10,10,.6);
  backdrop-filter: blur(12px);
  padding: .6rem .65rem;
  z-index: 9999;
}

.sbn-mode-suggest-title{
  font-size: .75rem;
  opacity: .7;
  margin-bottom: .45rem;
}

.sbn-mode-suggest-list{
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
}

.sbn-mode-suggest-chip{
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  padding: .22rem .45rem;
  border-radius: .55rem;
  font-size: .8rem;
  cursor: pointer;
  white-space: nowrap;
}

/* ===== Mode dictionary: prediction brain override (v2.0.5) ===== */
/* Hide the old brain toggle button so it can't overlap the Ask button */
.sbn-mode-suggest-btn{
  display: none !important;
}

/* Turn the panel into a fold-out predictor above the Ask bar */
.sbn-mode-suggest-panel{
  right: 1rem;
  left: 1rem;
  bottom: 3.9rem; /* stays above the Ask button */
  min-width: 0;
  max-width: none;
  z-index: 60;
}

.sbn-mode-suggest-list{
  display: flex;
  flex-direction: column;
  gap: .25rem;
}

.sbn-mode-suggest-chip{
  width: 100%;
  text-align: left;
  padding: .35rem .55rem;
}

.sbn-mode-suggest-chip small{
  display: block;
  opacity: .7;
  font-size: .72rem;
  margin-top: .1rem;
}

/* ===== Democracy Terminal header + locked code state (R2) ===== */
.sbn-terminal-header{
    display: flex;
    flex-direction: column;
    gap: .35rem;
    margin-bottom: .5rem;
}

.sbn-terminal-status,
.sbn-terminal-cta{
    font-size: .82rem;
    opacity: .9;
}

.sbn-code-item.is-locked{
    opacity: .45;
    cursor: not-allowed;
}

.sbn-code-item.is-locked:hover{
    border-color: rgba(255,255,255,.2);
}

/* R8: Make wake-up quickstart lines clickable presets */
.sb-log-entry.sbn-intro-preset { cursor: pointer; }
.sb-log-entry.sbn-intro-preset .sbn-text { text-decoration: underline; text-underline-offset: 2px; }

/* =====================================================
   R8.1 PATCH — Remove header / codes containers above log
   User directive: no blocks/layers/containers above text log.
   ===================================================== */
.sbn-terminal-header,
.sbn-codes-collapsible,
.sbn-codes-toggle,
.sbn-codes-panel,
.sbn-terminal-status,
.sbn-terminal-cta {
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

/* Ensure log sits flush at top of console */
.sb-log-panel {
    margin-top: 0 !important;
}




/* ==========================================================================
   Some-B v2.0-10 — Franchise Radar Cards + Glass Reading Mode
   --------------------------------------------------------------------------
   Force network/search results into compact horizontal node sliders.
   This block intentionally uses specific selectors and a few !important rules
   to override older card-grid rules that could stack cards vertically.
   ========================================================================== */

.sbn-franchise-radar {
  margin: 1.25rem 0 .75rem;
  padding: .9rem 1rem;
  border-radius: 1rem;
  background: linear-gradient(135deg, rgba(192,132,252,.22), rgba(236,72,153,.14));
  border: 1px solid rgba(216,180,254,.35);
  box-shadow: 0 10px 30px rgba(15, 23, 42, .16);
}

.sbn-radar-kicker {
  font-size: .82rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #f5d0fe;
  font-weight: 800;
}

.sbn-radar-line {
  margin: .35rem 0 0;
  font-size: 1rem;
  color: rgba(255,255,255,.9);
}

.sbn-network-cards-viewport {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}

.sbn-network-cards,
.sbn-search-slider,
.sbn-radar-slider {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: 1rem !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x mandatory !important;
  -webkit-overflow-scrolling: touch;
  padding: .35rem .15rem .85rem;
  margin-top: .65rem;
  scrollbar-width: thin;
}

.sbn-network-card,
.sbn-search-slide {
  flex: 0 0 min(86%, 42rem) !important;
  max-width: min(86%, 42rem) !important;
  scroll-snap-align: start !important;
  border-radius: 1.15rem !important;
  padding: 1rem !important;
  background: rgba(18, 10, 28, .64) !important;
  border: 1px solid rgba(216, 180, 254, .28) !important;
  box-shadow: 0 18px 48px rgba(15, 23, 42, .35) !important;
  backdrop-filter: blur(18px) saturate(145%);
  -webkit-backdrop-filter: blur(18px) saturate(145%);
  color: #fff;
  transition: transform .28s ease, opacity .28s ease, border-color .28s ease;
}

.sbn-network-card:not(.active),
.sbn-search-slide:not(.active) {
  opacity: .78;
}

.sbn-network-card.active,
.sbn-search-slide.active {
  opacity: 1;
  transform: translateY(-2px) scale(1.01);
  border-color: rgba(240, 171, 252, .65) !important;
}

.sbn-network-thumb {
  display: none !important;
}

.sbn-network-meta {
  width: 100%;
}

.sbn-network-site,
.sbn-search-site {
  margin: 0 0 .55rem !important;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-size: .78rem !important;
  line-height: 1.2;
  letter-spacing: .16em;
  text-transform: uppercase;
  font-weight: 850;
  color: #f5d0fe !important;
}

.sbn-network-site::before,
.sbn-search-site::before {
  content: "";
  width: .55rem;
  height: .55rem;
  border-radius: 50%;
  background: #d8b4fe;
  box-shadow: 0 0 0 .2rem rgba(216,180,254,.16);
}

.sbn-network-title,
.sbn-search-item {
  margin: .25rem 0 .55rem !important;
  font-size: clamp(1.05rem, 1.2vw + .9rem, 1.35rem) !important;
  line-height: 1.35 !important;
  font-weight: 800;
}

.sbn-network-title a,
.sbn-search-link {
  color: #fff !important;
  text-decoration: none !important;
}

.sbn-network-title a:hover,
.sbn-search-link:hover {
  color: #f0abfc !important;
  text-decoration: underline !important;
  text-underline-offset: .18em;
}

.sbn-network-snippet,
.sbn-search-snippet {
  color: rgba(255,255,255,.82) !important;
  font-size: clamp(.98rem, .5vw + .92rem, 1.1rem) !important;
  line-height: 1.55 !important;
}

.sbn-network-siblings {
  margin: .85rem 0 0 !important;
  padding: .75rem 0 0 1.15rem !important;
  border-top: 1px solid rgba(255,255,255,.16);
}

.sbn-network-sibling {
  margin-bottom: .4rem;
}

.sbn-network-sibling a {
  color: #c4b5fd !important;
  text-decoration: none;
}

.sbn-network-sibling a:hover {
  color: #fff !important;
  text-decoration: underline;
}

.sbn-slider-indicators {
  display: flex !important;
  justify-content: center;
  align-items: center;
  gap: .5rem;
  margin: .65rem 0 .2rem;
}

.sbn-slider-indicator {
  width: .68rem !important;
  height: .68rem !important;
  border-radius: 50% !important;
  border: 1px solid rgba(255,255,255,.38) !important;
  background: rgba(216,180,254,.32) !important;
  box-shadow: 0 0 0 .18rem rgba(216,180,254,.08);
  padding: 0 !important;
  cursor: pointer;
}

.sbn-slider-indicator.active {
  background: #f0abfc !important;
  border-color: #fff !important;
  box-shadow: 0 0 0 .23rem rgba(240,171,252,.22), 0 0 18px rgba(240,171,252,.5);
}

/* Glass panel article preview */
.sbn-article-modal[hidden] {
  display: none !important;
}

.sbn-article-modal {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 3vw, 2.5rem);
}

.sbn-article-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(6, 5, 12, .48);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.sbn-article-glass {
  position: relative;
  width: min(100%, 860px);
  max-height: min(86vh, 920px);
  overflow: auto;
  border-radius: 1.4rem;
  padding: clamp(1.1rem, 2vw, 2rem);
  color: #fff;
  background: linear-gradient(145deg, rgba(22, 12, 32, .82), rgba(65, 31, 72, .58));
  border: 1px solid rgba(216, 180, 254, .42);
  box-shadow: 0 28px 90px rgba(0,0,0,.48);
  backdrop-filter: blur(24px) saturate(150%);
  -webkit-backdrop-filter: blur(24px) saturate(150%);
}

.sbn-article-close {
  position: sticky;
  top: 0;
  float: right;
  width: 2.5rem;
  height: 2.5rem;
  border: 0;
  border-radius: 50%;
  background: rgba(240, 171, 252, .88);
  color: #1f1029;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  font-weight: 900;
}

.sbn-article-kicker {
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: #f5d0fe;
  font-weight: 850;
  margin-bottom: .75rem;
}

.sbn-article-title {
  margin: 0 0 .6rem;
  font-size: clamp(1.6rem, 2vw + 1rem, 2.35rem);
  line-height: 1.15;
}

.sbn-article-source {
  margin-bottom: 1rem;
  color: rgba(255,255,255,.78);
}

.sbn-article-source a {
  color: #f0abfc;
}

.sbn-article-content {
  font-size: clamp(1.05rem, .7vw + .95rem, 1.22rem);
  line-height: 1.72;
}

.sbn-article-content p {
  margin: 0 0 1rem;
}

.sbn-article-footer {
  margin-top: 1.2rem;
  padding-top: .85rem;
  border-top: 1px solid rgba(255,255,255,.16);
  color: #f5d0fe;
  font-size: .92rem;
  font-weight: 700;
}

@media (max-width: 700px) {
  .sbn-network-card,
  .sbn-search-slide {
    flex-basis: 92% !important;
    max-width: 92% !important;
  }

  .sbn-article-modal {
    padding: .75rem;
  }

  .sbn-article-glass {
    border-radius: 1rem;
    max-height: 88vh;
  }
}

/* Auto Radar v11: keep the card being assembled visually dominant. */
.sbn-radar-slider .sbn-network-card,
.sbn-radar-slider .sbn-search-slide {
  transition: transform 0.28s ease, opacity 0.28s ease, border-color 0.28s ease;
}
.sbn-radar-slider .sbn-network-card.active,
.sbn-radar-slider .sbn-search-slide.active {
  transform: scale(1.015);
  opacity: 1;
  border-color: rgba(216, 180, 254, 0.62);
}


/* ========================================================================== 
   Some-B v2.0-16 — Fixed Radar Container
   --------------------------------------------------------------------------
   Based on the last working AutoRadar build. This patch keeps the search/radar
   interface inside the normal text response column. The carousel may scroll
   internally, but the surrounding terminal/log/text block must never expand to
   fit long titles or additional cards.
   ========================================================================== */

.sb-log,
.sb-log-panel,
.sb-log-entry,
.sb-log-text,
.sbn-text {
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

.sb-log,
.sb-log-panel,
.sb-log-entry,
.sb-log-text {
  overflow-x: hidden !important;
}

.sbn-text {
  display: block !important;
  width: 100% !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

.sbn-franchise-radar,
.sbn-network-cards-viewport,
.sbn-network-cards,
.sbn-search-slider,
.sbn-radar-slider,
.sbn-slider-indicators {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

.sbn-franchise-radar {
  overflow: hidden !important;
}

.sbn-network-cards-viewport {
  position: relative !important;
  overflow: hidden !important;
  contain: inline-size !important;
}

.sbn-network-cards,
.sbn-search-slider,
.sbn-radar-slider {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  gap: 0.9rem !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  overscroll-behavior-x: contain !important;
  scroll-snap-type: x mandatory !important;
  scroll-padding-left: 0 !important;
  -webkit-overflow-scrolling: touch !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* One card occupies the available response width. Long content wraps instead
   of widening the carousel. */
.sbn-network-card,
.sbn-search-slide {
  flex: 0 0 100% !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  scroll-snap-align: start !important;
  overflow: hidden !important;
}

.sbn-network-meta,
.sbn-network-title,
.sbn-network-title a,
.sbn-network-snippet,
.sbn-network-siblings,
.sbn-network-sibling,
.sbn-network-sibling a,
.sbn-search-site,
.sbn-search-item,
.sbn-search-link,
.sbn-search-snippet {
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

.sbn-network-title,
.sbn-search-item {
  display: block !important;
}

.sbn-network-title a,
.sbn-search-link,
.sbn-network-sibling a {
  display: inline !important;
  white-space: normal !important;
}

.sbn-network-siblings {
  overflow: hidden !important;
}

.sbn-slider-indicators {
  flex-wrap: wrap !important;
  overflow: hidden !important;
}

@media (max-width: 700px) {
  .sbn-network-card,
  .sbn-search-slide {
    flex-basis: 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .sbn-network-cards,
  .sbn-search-slider,
  .sbn-radar-slider {
    gap: 0.75rem !important;
  }
}

/* ========================================================================== 
   Some-B v2.0-DEF-scrollfix — iPad/iOS terminal scroll containment
   --------------------------------------------------------------------------
   Fixes the top chat/log area accumulating into one long mess. The console now
   has a hard viewport height, the input stays anchored, and #sbn-log is the
   single vertical scroll container that JS can auto-scroll reliably.
   ========================================================================== */
.sbn-fullscreen-shell {
  height: 100vh !important;
  height: 100dvh !important;
  min-height: 100vh !important;
  min-height: 100dvh !important;
  overflow: hidden !important;
}

.sb-console {
  height: calc(100vh - 6vh) !important;
  height: calc(100dvh - 6vh) !important;
  max-height: calc(100vh - 6vh) !important;
  max-height: calc(100dvh - 6vh) !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

.sb-log-panel {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
}

#sbn-log.sb-log.sbn-log,
.sb-log.sbn-log {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  height: 100% !important;
  max-height: 100% !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior: contain !important;
  padding-bottom: 1rem !important;
}

.sb-input-panel {
  flex: 0 0 auto !important;
}

/* Keep the iPad browser/home bars from eating the input and footer. */
@supports (padding: max(0px)) {
  .sb-console {
    padding-bottom: max(0px, env(safe-area-inset-bottom)) !important;
  }
}

@media (max-width: 768px), (max-height: 760px) {
  .sb-console {
    inset: 1.2vh 2vw !important;
    height: calc(100dvh - 2.4vh) !important;
    max-height: calc(100dvh - 2.4vh) !important;
  }

  .sb-log-panel {
    margin-bottom: .65rem !important;
  }

  .sb-input-panel {
    margin-bottom: 1.6rem !important;
  }
}

/* ========================================================================== 
   Some-B v2.0-19 — HARD iOS scroll fix
   --------------------------------------------------------------------------
   The previous pass made the log container scrollable, but flex children were
   still allowed to shrink on iPad Safari. That makes the messages stack/squash
   instead of creating overflow. These rules force every chat row/card to keep
   its natural height so #sbn-log actually gets a scrollHeight.
   ========================================================================== */
#sbn-console.sb-console {
  position: fixed !important;
  top: 3vh !important;
  left: 3vw !important;
  right: 3vw !important;
  bottom: 3vh !important;
  height: auto !important;
  max-height: none !important;
  min-height: 0 !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
}

#sbn-console .sb-log-panel {
  flex: 1 1 0 !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  touch-action: pan-y !important;
}

#sbn-log.sb-log.sbn-log {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  flex: 1 1 0 !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  overflow-y: scroll !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior-y: contain !important;
  touch-action: pan-y !important;
  padding-right: 0.15rem !important;
}

#sbn-log .sb-log-entry,
#sbn-log .sb-log-text,
#sbn-log .sbn-text,
#sbn-log .sbn-network-radar,
#sbn-log .sbn-network-card,
#sbn-log .sbn-search-results,
#sbn-log .sbn-search-slide,
#sbn-log .sbn-engine-badge {
  flex-shrink: 0 !important;
}

#sbn-log .sb-log-entry {
  min-height: max-content !important;
}

#sbn-log .sb-avatar {
  flex: 0 0 auto !important;
}

#sbn-console .sb-input-panel,
#sbn-console .sbn-footer-quicklinks {
  flex: 0 0 auto !important;
}


/* Some-B v2.0-20 — Pixel avatar is the slash-command menu button, not a blind theme toggle. */
.sb-input-panel {
  position: relative;
}

.sb-input-panel .sb-pixel-menu-button {
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  flex: 0 0 auto;
}

.sb-input-panel .sb-pixel-menu-button:focus-visible {
  outline: 2px solid rgba(255,255,255,.9);
  outline-offset: 3px;
}

.sbn-pixel-menu {
  position: absolute;
  left: 1.1rem;
  bottom: calc(100% + .55rem);
  z-index: 9999;
  width: min(23rem, calc(100vw - 2rem));
  max-height: min(52vh, 28rem);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  padding: .85rem;
  border-radius: 1.15rem;
  background: rgba(20, 8, 24, .84);
  border: 1px solid rgba(255,255,255,.24);
  box-shadow: 0 18px 42px rgba(0,0,0,.46);
  backdrop-filter: blur(18px) saturate(130%);
  color: #fff;
}

.sbn-pixel-menu[hidden] {
  display: none !important;
}

.sbn-pixel-menu-head {
  display: flex;
  flex-direction: column;
  gap: .12rem;
  margin-bottom: .7rem;
  letter-spacing: .04em;
}

.sbn-pixel-menu-head strong {
  font-size: .92rem;
  text-transform: uppercase;
}

.sbn-pixel-menu-head span,
.sbn-pixel-menu-title {
  font-size: .72rem;
  opacity: .72;
  text-transform: uppercase;
  letter-spacing: .13em;
}

.sbn-pixel-theme-btn {
  width: 100%;
  margin: 0 0 .75rem 0;
  padding: .62rem .75rem;
  border-radius: .9rem;
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(236,72,153,.28);
  color: #fff;
  font-weight: 800;
  text-align: left;
  cursor: pointer;
}

.sbn-pixel-command-list {
  display: grid;
  gap: .38rem;
  margin-top: .45rem;
}

.sbn-pixel-command-list button {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: .5rem;
  width: 100%;
  padding: .5rem .62rem;
  border-radius: .75rem;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.07);
  color: #fff;
  text-align: left;
  cursor: pointer;
}

.sbn-pixel-command-list button:hover,
.sbn-pixel-command-list button:focus-visible,
.sbn-pixel-theme-btn:hover,
.sbn-pixel-theme-btn:focus-visible {
  border-color: rgba(255,255,255,.5);
  background: rgba(255,255,255,.12);
}

.sbn-pixel-command-list code {
  font-family: var(--sbn-ui-font);
  font-size: .82rem;
  color: #ffd1ea;
}

.sbn-pixel-command-list span {
  min-width: 0;
  font-size: .78rem;
  opacity: .82;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sbn-pixel-command-list .is-locked {
  opacity: .46;
  cursor: not-allowed;
}

@media (max-width: 640px) {
  .sbn-pixel-menu {
    left: .65rem;
    right: .65rem;
    width: auto;
    max-height: 48vh;
  }
}

/* ========================================================================== 
   Some-B v2.0-DEF-07 — iPad/iPhone keyboard viewport polish
   --------------------------------------------------------------------------
   When the software keyboard opens, Safari keeps fixed layers tied to the
   layout viewport. This override makes the console follow the visible
   viewport, compresses the glass log cleanly, and hides the tiny footer links
   so the input never floats awkwardly over the keyboard.
   ========================================================================== */
:root {
  --sbn-vvh: 100dvh;
  --sbn-vvoffset-top: 0px;
  --sbn-console-edge: clamp(8px, 1.2vh, 14px);
}

html.sbn-visual-viewport-active .sbn-fullscreen-shell {
  height: var(--sbn-vvh) !important;
  min-height: var(--sbn-vvh) !important;
  overflow: hidden !important;
}

html.sbn-visual-viewport-active #sbn-console.sb-console {
  position: fixed !important;
  top: calc(var(--sbn-vvoffset-top, 0px) + var(--sbn-console-edge)) !important;
  left: max(10px, 3vw) !important;
  right: max(10px, 3vw) !important;
  bottom: auto !important;
  height: calc(var(--sbn-vvh, 100dvh) - (var(--sbn-console-edge) * 2)) !important;
  max-height: calc(var(--sbn-vvh, 100dvh) - (var(--sbn-console-edge) * 2)) !important;
  min-height: 0 !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
}

html.sbn-keyboard-open #sbn-console.sb-console {
  --sbn-console-edge: 8px;
  left: max(8px, 3vw) !important;
  right: max(8px, 3vw) !important;
  gap: 0.45rem !important;
}

html.sbn-keyboard-open #sbn-console .sb-log-panel {
  flex: 1 1 0 !important;
  min-height: 0 !important;
  margin-bottom: 0 !important;
  padding: 10px 12px !important;
  border-radius: 16px !important;
  overflow: hidden !important;
}

html.sbn-keyboard-open #sbn-log.sb-log.sbn-log {
  flex: 1 1 0 !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  padding-bottom: 0.5rem !important;
}

html.sbn-keyboard-open #sbn-console .sb-input-panel {
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 8px 10px !important;
  border-radius: 16px !important;
  gap: 8px !important;
  transform: translateZ(0);
}

html.sbn-keyboard-open #sbn-console .sb-input {
  min-height: 34px !important;
  max-height: 68px !important;
  font-size: 16px !important;
  line-height: 1.25 !important;
  padding-top: 4px !important;
  padding-bottom: 4px !important;
}

html.sbn-keyboard-open #sbn-console .sb-avatar {
  width: 42px !important;
  height: 42px !important;
}

html.sbn-keyboard-open #sbn-console .sb-ask-btn {
  min-height: 42px !important;
  padding: 8px 14px !important;
}

html.sbn-keyboard-open #sbn-console .sbn-footer-quicklinks {
  display: none !important;
}

html.sbn-keyboard-open #sbn-pixel-menu,
html.sbn-keyboard-open #sbn-mode-suggest-panel {
  max-height: min(38vh, 18rem) !important;
}

/* ========================================================================== 
   Some-B v2.0-DEF-08 — keep background hero centered in visible viewport
   --------------------------------------------------------------------------
   The keyboard viewport fix moved the console correctly, but the fixed hero
   background layer still used the layout viewport. Mirror the visual viewport
   metrics onto the background layer as well so the image stays centered inside
   the actually visible area.
   ========================================================================== */
html.sbn-visual-viewport-active .sbn-fullscreen-shell::before {
  inset: auto 0 auto 0 !important;
  top: var(--sbn-vvoffset-top, 0px) !important;
  height: var(--sbn-vvh, 100dvh) !important;
  bottom: auto !important;
  background-position: center center !important;
}

html.sbn-keyboard-open .sbn-fullscreen-shell::before {
  background-position: center center !important;
}


/* ========================================================================== 
   Some-B v2.0-DEF-09 — non-intrusive Boomie quick chat
   --------------------------------------------------------------------------
   A slim chat strip lives between the main text display and the main input.
   It collapses into a pink ghetto-blaster icon so it never blocks the console.
   ========================================================================== */
#sbn-console .sbn-boombox-chat {
  flex: 0 0 auto !important;
  margin: 0 0 .65rem 0 !important;
  border-radius: 18px !important;
  border: 1px solid rgba(255, 43, 214, .36) !important;
  background: linear-gradient(135deg, rgba(2,6,23,.58), rgba(255,43,214,.16)) !important;
  color: #fff !important;
  overflow: hidden !important;
  box-shadow: 0 12px 34px rgba(0,0,0,.24), inset 0 0 0 1px rgba(255,255,255,.05) !important;
}

#sbn-console .sbn-boombox-toggle {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  min-height: 44px;
  border: 0;
  padding: 7px 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(0,0,0,.28);
  color: #fff;
  cursor: pointer;
  font-family: inherit;
  text-align: left;
}

#sbn-console .sbn-boombox-toggle:focus-visible {
  outline: 2px solid rgba(255,255,255,.9);
  outline-offset: -3px;
}

#sbn-console .sbn-boombox-icon {
  position: relative;
  width: 42px;
  height: 28px;
  flex: 0 0 42px;
  border: 2px solid #fff;
  border-radius: 7px;
  background: #ff2bd6;
  box-shadow: 0 0 0 2px rgba(255,43,214,.25), 0 0 18px rgba(255,43,214,.45);
}

#sbn-console .sbn-boombox-icon::before,
#sbn-console .sbn-boombox-icon::after {
  content: "";
  position: absolute;
  bottom: 4px;
  width: 10px;
  height: 10px;
  border: 2px solid #08060a;
  border-radius: 999px;
  background: #fff;
}

#sbn-console .sbn-boombox-icon::before { left: 5px; }
#sbn-console .sbn-boombox-icon::after { right: 5px; }

#sbn-console .sbn-boombox-icon span,
#sbn-console .sbn-boombox-icon i { display: none; }

#sbn-console .sbn-boombox-icon {
  background-image:
    linear-gradient(#08060a, #08060a),
    linear-gradient(90deg, transparent 0 16%, #08060a 16% 20%, transparent 20% 36%, #08060a 36% 40%, transparent 40% 56%, #08060a 56% 60%, transparent 60% 100%);
  background-size: 18px 4px, 18px 7px;
  background-position: center 5px, center 12px;
  background-repeat: no-repeat;
}

#sbn-console .sbn-boombox-label {
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-shadow: 0 1px 0 rgba(0,0,0,.6);
}

#sbn-console .sbn-boombox-status {
  margin-left: auto;
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .72;
}

#sbn-console .sbn-boombox-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 7px;
  padding: 8px 10px 10px;
}

#sbn-console .sbn-boombox-log {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  padding-bottom: 2px;
}

#sbn-console .sbn-boombox-message {
  flex: 0 0 auto;
  max-width: min(30rem, 78vw);
  border-radius: 14px;
  padding: 7px 10px;
  font-size: 13px;
  line-height: 1.35;
  color: #fff;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.12);
  white-space: normal;
}

#sbn-console .sbn-boombox-message-user {
  background: rgba(255,43,214,.34);
  border-color: rgba(255,43,214,.48);
}

#sbn-console .sbn-boombox-message-bot {
  background: rgba(0,0,0,.24);
}

#sbn-console .sbn-boombox-form {
  display: flex;
  align-items: center;
  gap: 7px;
}

#sbn-console .sbn-boombox-input {
  flex: 1 1 auto;
  min-width: 0;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px;
  background: rgba(0,0,0,.22);
  color: #fff;
  padding: 9px 12px;
  font: inherit;
  font-size: 16px;
  outline: none;
}

#sbn-console .sbn-boombox-input::placeholder { color: rgba(255,255,255,.58); }

#sbn-console .sbn-boombox-send {
  flex: 0 0 auto;
  border: 0;
  border-radius: 999px;
  padding: 9px 12px;
  background: #ff2bd6;
  color: #fff;
  font: inherit;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
  cursor: pointer;
}

#sbn-console .sbn-boombox-chat.is-minimized {
  align-self: flex-end;
  width: auto;
  min-width: 58px;
  border-radius: 999px !important;
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

#sbn-console .sbn-boombox-chat.is-minimized .sbn-boombox-toggle {
  width: 58px;
  height: 48px;
  min-height: 48px;
  padding: 6px 8px;
  justify-content: center;
  border-radius: 999px;
  background: rgba(255,43,214,.92);
  box-shadow: 0 8px 24px rgba(255,43,214,.34), 0 0 0 2px rgba(255,255,255,.18);
}

#sbn-console .sbn-boombox-chat.is-minimized .sbn-boombox-body,
#sbn-console .sbn-boombox-chat.is-minimized .sbn-boombox-label,
#sbn-console .sbn-boombox-chat.is-minimized .sbn-boombox-status {
  display: none !important;
}

#sbn-console .sbn-boombox-chat.is-minimized .sbn-boombox-icon {
  width: 36px;
  height: 24px;
  flex-basis: 36px;
  box-shadow: none;
}

@media (max-width: 768px), (max-height: 760px) {
  #sbn-console .sbn-boombox-chat { margin-bottom: .55rem !important; }
  #sbn-console .sbn-boombox-body { padding: 7px 8px 8px; }
  #sbn-console .sbn-boombox-log { max-height: 52px; }
  #sbn-console .sbn-boombox-message { font-size: 12px; max-width: 82vw; }
}

html.sbn-keyboard-open #sbn-console .sbn-boombox-chat {
  margin-bottom: .45rem !important;
}

html.sbn-keyboard-open #sbn-console .sbn-boombox-chat:not(.is-minimized) .sbn-boombox-log {
  display: none !important;
}

/* ========================================================================== 
   Some-B v2.0-DEF-10 — Boomie room inside the display screen
   --------------------------------------------------------------------------
   The boombox icon now lives inside the text display screen and toggles a
   lightweight multi-user room. Identity/login/register entry is surfaced in a
   glass lightbox panel.
   ========================================================================== */
#sbn-console .sb-log-panel {
  position: relative !important;
}

#sbn-log.sb-log.sbn-log {
  padding-bottom: 5.6rem !important;
}

#sbn-console .sbn-screen-room-anchor {
  position: absolute;
  right: .9rem;
  bottom: .9rem;
  z-index: 60;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .65rem;
  pointer-events: none;
}

#sbn-console .sbn-screen-room-anchor > * {
  pointer-events: auto;
}

#sbn-console .sbn-chatroom-toggle {
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  width: 88px;
  height: 58px;
  cursor: pointer;
  filter: drop-shadow(0 10px 22px rgba(255,43,214,.35));
  transition: transform .18s ease, filter .18s ease;
}

#sbn-console .sbn-chatroom-toggle:hover,
#sbn-console .sbn-chatroom-toggle.is-open {
  transform: translateY(-2px) scale(1.02);
  filter: drop-shadow(0 14px 28px rgba(255,43,214,.45));
}

#sbn-console .sbn-chatroom-toggle:focus-visible {
  outline: 2px solid rgba(255,255,255,.95);
  outline-offset: 5px;
  border-radius: 999px;
}


#sbn-console .sbn-chatroom-toggle-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

#sbn-console .sbn-chatroom-panel[hidden] {
  display: none !important;
}

#sbn-console .sbn-chatroom-panel {
  width: min(27rem, calc(100vw - 3.25rem));
  max-height: min(48vh, 24rem);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border-radius: 1.2rem;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(18, 12, 28, .78);
  box-shadow: 0 18px 42px rgba(0,0,0,.4), 0 0 0 1px rgba(255,43,214,.14) inset;
  backdrop-filter: blur(18px) saturate(130%);
}

#sbn-console .sbn-chatroom-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .8rem .9rem .55rem;
  border-bottom: 1px solid rgba(255,255,255,.12);
}

#sbn-console .sbn-chatroom-kicker {
  color: #ff8be9;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: 10px;
  font-weight: 900;
}

#sbn-console .sbn-chatroom-identity {
  margin-top: .18rem;
  color: rgba(255,255,255,.86);
  font-size: 12px;
}

#sbn-console .sbn-chatroom-identity-btn,
#sbn-console .sbn-chatroom-send,
.sbn-chatroom-auth-button {
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  color: #fff;
  cursor: pointer;
  font: inherit;
}

#sbn-console .sbn-chatroom-identity-btn {
  padding: .48rem .72rem;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}

#sbn-console .sbn-chatroom-log {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: .8rem .9rem;
  display: flex;
  flex-direction: column;
  gap: .65rem;
  -webkit-overflow-scrolling: touch;
}

#sbn-console .sbn-chatroom-empty {
  border-radius: .95rem;
  padding: .8rem .9rem;
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.75);
  font-size: 13px;
}

#sbn-console .sbn-chatroom-message {
  border-radius: .95rem;
  padding: .7rem .8rem;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.09);
}

#sbn-console .sbn-chatroom-message-meta {
  display: flex;
  align-items: center;
  gap: .55rem;
  margin-bottom: .25rem;
}

#sbn-console .sbn-chatroom-message-author {
  color: #fff;
  font-size: 12px;
  font-weight: 800;
}

#sbn-console .sbn-chatroom-message-time {
  color: rgba(255,255,255,.58);
  font-size: 11px;
}

#sbn-console .sbn-chatroom-message-body {
  color: rgba(255,255,255,.92);
  font-size: 13px;
  line-height: 1.45;
  white-space: pre-wrap;
}

#sbn-console .sbn-chatroom-form {
  display: flex;
  gap: .55rem;
  padding: .75rem .9rem .95rem;
  border-top: 1px solid rgba(255,255,255,.12);
}

#sbn-console .sbn-chatroom-input,
.sbn-chatroom-auth-input {
  width: 100%;
  min-width: 0;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px;
  background: rgba(0,0,0,.24);
  color: #fff;
  font: inherit;
  outline: none;
}

#sbn-console .sbn-chatroom-input {
  flex: 1 1 auto;
  padding: .78rem .95rem;
  font-size: 16px;
}

#sbn-console .sbn-chatroom-input::placeholder,
.sbn-chatroom-auth-input::placeholder {
  color: rgba(255,255,255,.55);
}

#sbn-console .sbn-chatroom-send,
.sbn-chatroom-auth-button.is-primary {
  background: #ff2bd6;
  border-color: rgba(255,255,255,.2);
}

#sbn-console .sbn-chatroom-send {
  padding: .76rem .95rem;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.sbn-chatroom-auth-modal[hidden] {
  display: none !important;
}

.sbn-chatroom-auth-modal {
  position: fixed;
  inset: 0;
  z-index: 100001;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 3vw, 2rem);
}

.sbn-chatroom-auth-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(6,6,10,.54);
  backdrop-filter: blur(8px);
}

.sbn-chatroom-auth-glass {
  position: relative;
  z-index: 1;
  width: min(30rem, calc(100vw - 2rem));
  border-radius: 1.4rem;
  border: 1px solid rgba(255,255,255,.22);
  background: linear-gradient(180deg, rgba(33, 18, 44, .82), rgba(18, 12, 28, .88));
  box-shadow: 0 24px 64px rgba(0,0,0,.44);
  backdrop-filter: blur(18px) saturate(140%);
  padding: 1.1rem 1rem 1rem;
  color: #fff;
}

.sbn-chatroom-auth-close {
  position: absolute;
  top: .7rem;
  right: .8rem;
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  color: #fff;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}

.sbn-chatroom-auth-kicker {
  color: #ff8be9;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: 10px;
  font-weight: 900;
}

.sbn-chatroom-auth-title {
  margin: .35rem 0 .4rem;
  font-size: clamp(1.15rem, 1.2vw + .9rem, 1.55rem);
  line-height: 1.2;
}

.sbn-chatroom-auth-copy {
  margin: 0 0 .9rem;
  color: rgba(255,255,255,.82);
  line-height: 1.5;
  font-size: 14px;
}

.sbn-chatroom-auth-label {
  display: block;
  margin-bottom: .45rem;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.sbn-chatroom-auth-input {
  padding: .85rem .95rem;
  font-size: 16px;
  margin-bottom: .9rem;
}

.sbn-chatroom-auth-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.sbn-chatroom-auth-button {
  padding: .75rem .95rem;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
}

@media (max-width: 768px), (max-height: 760px) {
  #sbn-log.sb-log.sbn-log {
    padding-bottom: 4.9rem !important;
  }

  #sbn-console .sbn-chatroom-toggle {
    width: 76px;
    height: 50px;
  }

  #sbn-console .sbn-chatroom-panel {
    width: min(24rem, calc(100vw - 2.25rem));
    max-height: min(42vh, 20rem);
  }

  #sbn-console .sbn-screen-room-anchor {
    right: .8rem;
    bottom: .8rem;
  }
}


/* ========================================================================== 
   Some-B v2.0-DEF-13 — true transparent sticker avatars
   --------------------------------------------------------------------------
   Remove all fallback avatar backplates/background fills so the generated
   sticker portraits render as standalone icons with only their own white
   sticker outline visible.
   ========================================================================== */
#sbn-console .sb-avatar,
#sbn-console .sb-avatar-red,
#sbn-console .sb-avatar-blue,
#sbn-console .sb-input-panel .sb-avatar,
.sbn-fullscreen-shell.sbn-theme-supergirl-home .sb-input-panel .sb-avatar,
.sbn-fullscreen-shell.sbn-theme-supergirl-city .sb-input-panel .sb-avatar,
.sbn-fullscreen-shell.sbn-theme-supergirl-office .sb-input-panel .sb-avatar,
.sbn-fullscreen-shell.sbn-theme-violet .sb-input-panel .sb-avatar,
.sbn-fullscreen-shell.sbn-theme-aqua .sb-input-panel .sb-avatar,
.sbn-fullscreen-shell.sbn-theme-red .sb-input-panel .sb-avatar {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  border: 0 !important;
  border-radius: 0 !important;
}

#sbn-console .sb-avatar {
  overflow: visible;
}

#sbn-console .sb-avatar-icon,
#sbn-console .sb-avatar-icon-sb,
#sbn-console .sb-avatar-icon-user {
  width: 46px;
  height: 46px;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
  border-radius: 0 !important;
}


/* -------------------------------------------------------------------
 * Bibi interactive copy/fact-check menu
 * Tap/click Bibi on an assistant response to copy clean answer sections.
 */
.sbn-bibi-menu-button {
  cursor: pointer;
  position: relative;
  overflow: visible !important;
  transition: transform 160ms ease, filter 160ms ease;
}

.sbn-bibi-menu-button:hover,
.sbn-bibi-menu-button:focus-visible {
  transform: scale(1.06);
  filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.55));
  outline: 2px solid rgba(255, 255, 255, 0.85);
  outline-offset: 3px;
}

.sbn-bibi-menu-button::after,
.sb-input-panel .sb-pixel-menu-button::after {
  position: absolute;
  right: 0.08rem;
  bottom: 0.08rem;
  z-index: 2;
  width: 0.78rem;
  height: 0.78rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #ff2aa3;
  color: #fff;
  font-size: 0.62rem;
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: none;
  border: 1px solid rgba(255, 255, 255, 0.82);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.22), 0 4px 10px rgba(255, 42, 163, 0.28);
  pointer-events: none;
}

.sbn-bibi-menu-button::after {
  content: "+";
}

.sb-input-panel .sb-pixel-menu-button {
  position: relative;
  overflow: visible;
}

.sb-input-panel .sb-pixel-menu-button::after {
  content: "/";
}

.sbn-bibi-menu {
  position: absolute;
  z-index: 999999;
  max-width: calc(100vw - 24px);
  padding: 0.85rem;
  border-radius: 1rem;
  background: rgba(0, 0, 0, 0.84);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.24);
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.45);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}

.sbn-bibi-menu[hidden] {
  display: none !important;
}

.sbn-bibi-menu-head {
  display: grid;
  gap: 0.15rem;
  margin-bottom: 0.55rem;
}

.sbn-bibi-menu-head strong {
  font-size: 0.95rem;
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.sbn-bibi-menu-head span {
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.75rem;
  line-height: 1.25;
}

.sbn-bibi-menu button {
  width: 100%;
  min-height: 2.35rem;
  margin: 0.28rem 0;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 0.75rem;
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  font: inherit;
  font-size: 0.86rem;
  font-weight: 800;
  text-align: left;
  padding: 0.58rem 0.72rem;
  cursor: pointer;
}

.sbn-bibi-menu button:hover,
.sbn-bibi-menu button:focus-visible {
  background: #ff2aa3;
  color: #fff;
  outline: none;
}

.sbn-bibi-menu-status {
  min-height: 1rem;
  margin-top: 0.35rem;
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.74rem;
  line-height: 1.25;
}

@media (max-width: 640px) {
  .sbn-bibi-menu {
    position: fixed;
    left: 12px !important;
    right: 12px !important;
    top: auto !important;
    bottom: 12px;
    width: auto !important;
  }

  .sbn-bibi-menu button {
    min-height: 2.65rem;
    font-size: 0.92rem;
  }
}


/* Some-B v2.0-DEF-15 — Bibi menu fail-safe tap target */
#sbn-log .sbn-bibi-menu-button,
#sbn-log .sb-from-sb .sb-avatar {
  pointer-events: auto !important;
  touch-action: manipulation !important;
  -webkit-tap-highlight-color: rgba(255, 42, 163, 0.32) !important;
  z-index: 20 !important;
  min-width: 46px !important;
  min-height: 46px !important;
}

.sbn-bibi-menu {
  position: fixed !important;
}

/* ========================================================================== 
   Some-B v2.0-DEF-16 — Unified Pixel glass menu language
   --------------------------------------------------------------------------
   Bibi copy menu, slash/mode predictor, and Boomie room now share the same
   Pixel menu card language: violet-black glass, rounded buttons, uppercase
   header, compact command rows. The ghetto-blaster trigger is reduced 50%.
   ========================================================================== */
:root {
  --sbn-menu-glass-bg: rgba(20, 8, 24, .84);
  --sbn-menu-glass-border: rgba(255,255,255,.24);
  --sbn-menu-glass-shadow: 0 18px 42px rgba(0,0,0,.46);
  --sbn-menu-pink-glow: rgba(236,72,153,.28);
  --sbn-menu-radius: 1.15rem;
  --sbn-menu-row-radius: .75rem;
}

/* Shared glass body */
.sbn-pixel-menu,
#sbn-mode-suggest-panel.sbn-mode-suggest-panel,
.sbn-bibi-menu,
#sbn-console .sbn-chatroom-panel,
.sbn-chatroom-auth-glass {
  border-radius: var(--sbn-menu-radius) !important;
  background: var(--sbn-menu-glass-bg) !important;
  border: 1px solid var(--sbn-menu-glass-border) !important;
  box-shadow: var(--sbn-menu-glass-shadow) !important;
  -webkit-backdrop-filter: blur(18px) saturate(130%) !important;
  backdrop-filter: blur(18px) saturate(130%) !important;
  color: #fff !important;
}

/* Shared header typography */
.sbn-pixel-menu-head strong,
.sbn-bibi-menu-head strong,
#sbn-console .sbn-chatroom-kicker,
.sbn-chatroom-auth-kicker,
.sbn-mode-suggest-title {
  color: #fff !important;
  font-size: .92rem !important;
  line-height: 1.1 !important;
  font-weight: 900 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  opacity: 1 !important;
}

.sbn-pixel-menu-head span,
.sbn-pixel-menu-title,
.sbn-bibi-menu-head span,
#sbn-console .sbn-chatroom-identity,
.sbn-chatroom-auth-copy {
  color: rgba(255,255,255,.72) !important;
  font-size: .72rem !important;
  line-height: 1.3 !important;
  letter-spacing: .08em !important;
}

/* Shared button/chip/message row language */
.sbn-pixel-theme-btn,
.sbn-pixel-command-list button,
.sbn-bibi-menu button,
#sbn-mode-suggest-panel .sbn-mode-suggest-chip,
#sbn-console .sbn-chatroom-message,
#sbn-console .sbn-chatroom-identity-btn,
#sbn-console .sbn-chatroom-send,
.sbn-chatroom-auth-button {
  border-radius: var(--sbn-menu-row-radius) !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  background: rgba(255,255,255,.07) !important;
  color: #fff !important;
  box-shadow: none !important;
}

.sbn-pixel-theme-btn,
#sbn-console .sbn-chatroom-send,
.sbn-chatroom-auth-button.is-primary {
  background: var(--sbn-menu-pink-glow) !important;
  border-color: rgba(255,255,255,.28) !important;
}

.sbn-pixel-command-list button:hover,
.sbn-pixel-command-list button:focus-visible,
.sbn-pixel-theme-btn:hover,
.sbn-pixel-theme-btn:focus-visible,
.sbn-bibi-menu button:hover,
.sbn-bibi-menu button:focus-visible,
#sbn-mode-suggest-panel .sbn-mode-suggest-chip:hover,
#sbn-mode-suggest-panel .sbn-mode-suggest-chip:focus-visible,
#sbn-console .sbn-chatroom-identity-btn:hover,
#sbn-console .sbn-chatroom-identity-btn:focus-visible,
#sbn-console .sbn-chatroom-send:hover,
#sbn-console .sbn-chatroom-send:focus-visible,
.sbn-chatroom-auth-button:hover,
.sbn-chatroom-auth-button:focus-visible {
  border-color: rgba(255,255,255,.5) !important;
  background: rgba(255,255,255,.12) !important;
  color: #fff !important;
  outline: none !important;
}

/* Slash/mode predictor: stop becoming a different wide blue menu. */
#sbn-mode-suggest-panel.sbn-mode-suggest-panel {
  left: 1.1rem !important;
  right: auto !important;
  bottom: calc(100% + .55rem) !important;
  z-index: 9999 !important;
  width: min(23rem, calc(100vw - 2rem)) !important;
  min-width: 0 !important;
  max-width: calc(100vw - 2rem) !important;
  max-height: min(52vh, 28rem) !important;
  overflow: auto !important;
  -webkit-overflow-scrolling: touch !important;
  padding: .85rem !important;
}

#sbn-mode-suggest-panel .sbn-mode-suggest-list {
  display: grid !important;
  gap: .38rem !important;
  margin-top: .45rem !important;
}

#sbn-mode-suggest-panel .sbn-mode-suggest-chip {
  display: grid !important;
  grid-template-columns: 1fr !important;
  align-items: center !important;
  width: 100% !important;
  min-height: 2.35rem !important;
  padding: .5rem .62rem !important;
  text-align: left !important;
  cursor: pointer !important;
  font-size: .82rem !important;
  line-height: 1.2 !important;
  white-space: normal !important;
}

#sbn-mode-suggest-panel .sbn-mode-suggest-chip code,
#sbn-mode-suggest-panel .sbn-mode-suggest-chip strong,
#sbn-mode-suggest-panel .sbn-mode-suggest-chip > span:first-child {
  color: #ffd1ea !important;
  font-family: var(--sbn-ui-font) !important;
  font-size: .82rem !important;
}

#sbn-mode-suggest-panel .sbn-mode-suggest-chip small {
  color: rgba(255,255,255,.82) !important;
  font-size: .78rem !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

/* Bibi menu: same Pixel dimensions and card rhythm. */
.sbn-bibi-menu {
  width: min(23rem, calc(100vw - 2rem)) !important;
  max-width: calc(100vw - 2rem) !important;
  max-height: min(52vh, 28rem) !important;
  overflow: auto !important;
  padding: .85rem !important;
}

.sbn-bibi-menu-head {
  display: flex !important;
  flex-direction: column !important;
  gap: .12rem !important;
  margin-bottom: .7rem !important;
}

.sbn-bibi-menu button {
  display: block !important;
  width: 100% !important;
  min-height: 2.35rem !important;
  margin: .38rem 0 !important;
  padding: .5rem .62rem !important;
  font-size: .86rem !important;
  font-weight: 800 !important;
  text-align: left !important;
}

.sbn-bibi-menu-status {
  color: rgba(255,255,255,.72) !important;
  font-size: .72rem !important;
  letter-spacing: .04em !important;
}

/* Boomie panel: Pixel menu structure but keep chat functional. */
#sbn-console .sbn-chatroom-panel {
  width: min(23rem, calc(100vw - 2rem)) !important;
  max-height: min(52vh, 28rem) !important;
  overflow: hidden !important;
}

#sbn-console .sbn-chatroom-panel-head {
  padding: .85rem .85rem .7rem !important;
  border-bottom: 1px solid rgba(255,255,255,.12) !important;
}

#sbn-console .sbn-chatroom-log,
#sbn-console .sbn-chatroom-form {
  padding-left: .85rem !important;
  padding-right: .85rem !important;
}

#sbn-console .sbn-chatroom-message-body,
#sbn-console .sbn-chatroom-message-author,
#sbn-console .sbn-chatroom-message-time {
  color: rgba(255,255,255,.9) !important;
}

#sbn-console .sbn-chatroom-input,
.sbn-chatroom-auth-input {
  border: 1px solid rgba(255,255,255,.16) !important;
  background: rgba(255,255,255,.07) !important;
  color: #fff !important;
}

/* Ghetto blaster: 50% trigger size. */
#sbn-console .sbn-chatroom-toggle {
  width: 44px !important;
  height: 29px !important;
  filter: drop-shadow(0 5px 11px rgba(255,43,214,.35)) !important;
}

#sbn-console .sbn-chatroom-toggle:hover,
#sbn-console .sbn-chatroom-toggle.is-open {
  transform: translateY(-1px) scale(1.02) !important;
  filter: drop-shadow(0 7px 14px rgba(255,43,214,.45)) !important;
}

#sbn-console .sbn-chatroom-toggle:focus-visible {
  outline-offset: 3px !important;
}

#sbn-console .sbn-chatroom-toggle-image {
  width: 44px !important;
  height: 29px !important;
}

#sbn-console .sbn-screen-room-anchor {
  gap: .45rem !important;
}

/* Legacy minimized boombox strip, if loaded anywhere, also halves cleanly. */
#sbn-console .sbn-boombox-chat.is-minimized {
  min-width: 29px !important;
}

#sbn-console .sbn-boombox-chat.is-minimized .sbn-boombox-toggle {
  width: 29px !important;
  height: 24px !important;
  min-height: 24px !important;
  padding: 3px 4px !important;
}

#sbn-console .sbn-boombox-chat.is-minimized .sbn-boombox-icon {
  width: 18px !important;
  height: 12px !important;
  flex-basis: 18px !important;
  border-width: 1px !important;
  border-radius: 4px !important;
  background-size: 9px 2px, 9px 4px !important;
  background-position: center 3px, center 6px !important;
}

#sbn-console .sbn-boombox-chat.is-minimized .sbn-boombox-icon::before,
#sbn-console .sbn-boombox-chat.is-minimized .sbn-boombox-icon::after {
  width: 5px !important;
  height: 5px !important;
  border-width: 1px !important;
  bottom: 2px !important;
}
#sbn-console .sbn-boombox-chat.is-minimized .sbn-boombox-icon::before { left: 2px !important; }
#sbn-console .sbn-boombox-chat.is-minimized .sbn-boombox-icon::after { right: 2px !important; }

@media (max-width: 640px) {
  #sbn-mode-suggest-panel.sbn-mode-suggest-panel,
  .sbn-bibi-menu,
  .sbn-pixel-menu,
  #sbn-console .sbn-chatroom-panel {
    left: .65rem !important;
    right: .65rem !important;
    width: auto !important;
    max-width: none !important;
    max-height: 48vh !important;
  }

  .sbn-bibi-menu {
    bottom: auto !important;
  }

  #sbn-console .sbn-chatroom-toggle,
  #sbn-console .sbn-chatroom-toggle-image {
    width: 38px !important;
    height: 25px !important;
  }
}

/* =========================================================
   Some-B DEF-17: Option A unified typography
   One readable system UI font across Pixel, Bibi, Boomie,
   mode-code suggestions, inputs, buttons, copied sections.
   ========================================================= */
.sbn-control-room,
.sbn-control-room *,
.sbn-widget,
.sbn-widget *,
.sbn-overlay,
.sbn-overlay *,
.sbn-fullscreen-shell,
.sbn-fullscreen-shell *,
.sb-console,
.sb-console *,
.sbn-pixel-menu,
.sbn-pixel-menu *,
.sbn-bibi-menu,
.sbn-bibi-menu *,
.sbn-boomie-room,
.sbn-boomie-room *,
.sbn-chatroom-panel,
.sbn-chatroom-panel *,
#sbn-mode-suggest-panel,
#sbn-mode-suggest-panel *,
.sbn-mode-suggest-panel,
.sbn-mode-suggest-panel *,
.sbn-mode-suggest-chip,
.sbn-mode-suggest-chip *,
.sbn-pixel-command-list,
.sbn-pixel-command-list *,
.sbn-copy-menu,
.sbn-copy-menu *,
button,
input,
textarea,
select {
  font-family: var(--sbn-ui-font) !important;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.sbn-pixel-menu,
.sbn-bibi-menu,
.sbn-boomie-room,
.sbn-chatroom-panel,
#sbn-mode-suggest-panel,
.sbn-mode-suggest-panel,
.sbn-copy-menu {
  font-size: 16px !important;
  line-height: 1.45 !important;
  letter-spacing: 0.01em !important;
  font-weight: 500 !important;
}

.sbn-pixel-menu h1,
.sbn-pixel-menu h2,
.sbn-pixel-menu h3,
.sbn-bibi-menu h1,
.sbn-bibi-menu h2,
.sbn-bibi-menu h3,
.sbn-boomie-room h1,
.sbn-boomie-room h2,
.sbn-boomie-room h3,
.sbn-chatroom-panel h1,
.sbn-chatroom-panel h2,
.sbn-chatroom-panel h3,
#sbn-mode-suggest-panel h1,
#sbn-mode-suggest-panel h2,
#sbn-mode-suggest-panel h3,
.sbn-panel-title,
.sbn-pixel-title,
.sbn-bibi-title,
.sbn-boomie-title,
.sbn-chatroom-title {
  font-family: var(--sbn-ui-font) !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  line-height: 1.15 !important;
}

.sbn-pixel-command-list code,
#sbn-mode-suggest-panel .sbn-mode-suggest-chip code,
#sbn-mode-suggest-panel .sbn-mode-suggest-chip strong,
#sbn-mode-suggest-panel .sbn-mode-suggest-chip > span:first-child,
.sbn-mode-suggest-chip code,
.sbn-mode-suggest-chip strong,
.sbn-mode-suggest-chip > span:first-child {
  font-family: var(--sbn-ui-font) !important;
  font-weight: 750 !important;
  letter-spacing: 0.005em !important;
}

.sbn-pixel-command-list span,
#sbn-mode-suggest-panel .sbn-mode-suggest-chip small,
.sbn-mode-suggest-chip small,
.sbn-bibi-menu button,
.sbn-boomie-room button,
.sbn-chatroom-panel button,
.sbn-pixel-menu button {
  font-family: var(--sbn-ui-font) !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
}

/* -------------------------------------------------------------------
 * Some-B v2.0 DEF clean shadow patch — Bibi, Pixel and Boomiechat icons
 * Neutral drop shadows only: no coloured glow, no purple/pink halo.
 */
#sbn-console .sb-avatar-icon-sb,
#sbn-console .sb-avatar-icon-user,
#sbn-console .sbn-bibi-menu-button .sb-avatar-icon,
#sbn-console .sb-pixel-menu-button .sb-avatar-icon,
#sbn-console .sbn-chatroom-toggle-image,
#sbn-console .sbn-boombox-icon {
  filter: drop-shadow(0 4px 5px rgba(0, 0, 0, 0.55)) !important;
}

#sbn-console .sbn-bibi-menu-button,
#sbn-console .sb-input-panel .sb-pixel-menu-button,
#sbn-console .sbn-chatroom-toggle {
  filter: drop-shadow(0 5px 8px rgba(0, 0, 0, 0.45)) !important;
}

#sbn-console .sbn-bibi-menu-button:hover,
#sbn-console .sbn-bibi-menu-button:focus-visible,
#sbn-console .sb-input-panel .sb-pixel-menu-button:hover,
#sbn-console .sb-input-panel .sb-pixel-menu-button:focus-visible,
#sbn-console .sbn-chatroom-toggle:hover,
#sbn-console .sbn-chatroom-toggle:focus-visible,
#sbn-console .sbn-chatroom-toggle.is-open {
  filter: drop-shadow(0 6px 10px rgba(0, 0, 0, 0.52)) !important;
}

/* Remove old coloured Boomiechat icon halo while keeping the clean shadow above. */
#sbn-console .sbn-boombox-icon {
  box-shadow: none !important;
}

/* Some-B v2.0 DEF clean shadow correction — remove pink/purple badge halo too. */
#sbn-console .sbn-bibi-menu-button::after,
#sbn-console .sb-input-panel .sb-pixel-menu-button::after {
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.42) !important;
}

/* -------------------------------------------------------------------
 * Some-B v2.0 DEF shadow overflow fix — let clean icon shadows render
 * outside their wrapper boxes instead of being clipped.
 */
#sbn-log,
#sbn-log .sb-log-entry,
#sbn-log .sb-avatar,
#sbn-log .sbn-bibi-menu-button,
#sbn-console .sb-input-panel,
#sbn-console .sb-input-panel .sb-avatar,
#sbn-console .sb-input-panel .sb-pixel-menu-button,
#sbn-console .sbn-screen-room-anchor,
#sbn-console .sbn-chatroom-toggle {
  overflow: visible !important;
}

#sbn-log .sb-avatar-icon,
#sbn-log .sb-avatar-icon-sb,
#sbn-log .sb-avatar-icon-user,
#sbn-console .sb-avatar-icon,
#sbn-console .sb-avatar-icon-sb,
#sbn-console .sb-avatar-icon-user,
#sbn-console .sbn-chatroom-toggle-image,
#sbn-console .sbn-boombox-icon {
  overflow: visible !important;
}

/* -------------------------------------------------------------------
 * Some-B v2.0 DEF baked icon shadow patch
 * Shadow is baked into the PNG assets, so disable CSS-rendered icon shadows
 * to prevent clipping and double-shadow rendering.
 */
#sbn-console .sb-avatar-icon-sb,
#sbn-console .sb-avatar-icon-user,
#sbn-console .sbn-bibi-menu-button .sb-avatar-icon,
#sbn-console .sb-pixel-menu-button .sb-avatar-icon,
#sbn-console .sbn-chatroom-toggle-image,
#sbn-console .sbn-boombox-icon,
#sbn-console .sbn-bibi-menu-button,
#sbn-console .sb-input-panel .sb-pixel-menu-button,
#sbn-console .sbn-chatroom-toggle,
#sbn-console .sbn-bibi-menu-button:hover,
#sbn-console .sbn-bibi-menu-button:focus-visible,
#sbn-console .sb-input-panel .sb-pixel-menu-button:hover,
#sbn-console .sb-input-panel .sb-pixel-menu-button:focus-visible,
#sbn-console .sbn-chatroom-toggle:hover,
#sbn-console .sbn-chatroom-toggle:focus-visible,
#sbn-console .sbn-chatroom-toggle.is-open {
  filter: none !important;
}


/* =========================================================
   Some-B DEF-18: UI-font hard lock
   Generated answers, contact links, list items, slash-code chips,
   copied/source blocks and dynamic terminal HTML all inherit one
   readable native UI font. No Google font, no monospace fallback.
   ========================================================= */
html,
body,
body *,
.sbn-control-room,
.sbn-control-room *,
.sbn-widget,
.sbn-widget *,
.sbn-overlay,
.sbn-overlay *,
.sbn-fullscreen-shell,
.sbn-fullscreen-shell *,
#sbn-console,
#sbn-console *,
#sbn-log,
#sbn-log *,
.sb-log,
.sb-log *,
.sb-log-text,
.sb-log-text *,
.sbn-text,
.sbn-text *,
.sbn-text p,
.sbn-text ul,
.sbn-text ol,
.sbn-text li,
.sbn-text a,
.sbn-text strong,
.sbn-text em,
.sbn-text code,
.sbn-text pre,
.sbn-search-link,
.sbn-footer-quicklinks,
.sbn-footer-quicklinks *,
.sbn-pixel-command-list,
.sbn-pixel-command-list *,
.sbn-mode-suggest-chip,
.sbn-mode-suggest-chip *,
button,
input,
textarea,
select,
code,
pre,
kbd,
samp {
  font-family: var(--sbn-ui-font) !important;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

#sbn-log .sbn-text a,
#sbn-log .sbn-text li,
#sbn-log .sbn-text p {
  font-size: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
}

#sbn-log .sbn-text a {
  font-weight: 700 !important;
  color: inherit !important;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}
