/* ============================================================================
   BOOST.CSS — MitikBoost SMM Panel (Sidebar + Light content)
   ============================================================================
   Namespace: .boost-*
   Dark sidebar + light content area (Stripe/Vercel style)
   Accent: Cyan (var(--boost-accent))
   Self-contained: no dependency on global.css
   ============================================================================ */

/* ---- Registered custom properties (enables transitions on gradients) ---- */
@property --cp-width {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 0%;
}

/* ---- Minimal reset (replaces global.css dependency) ---- */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
/* overflow-x:hidden también en <html>, no solo en .boost-body: el sidebar oculto
   (position:fixed + transform:translateX(100%)) sigue contando para el ancho de
   layout de <html> aunque esté invisible — sin este corte, window.innerWidth salía
   más ancho que la pantalla real (432px en un iPhone de 390px) y el navegador
   obligaba a hacer pinch-zoom para ver la página completa. Bug real 2026-09-09. */
html { height: 100%; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; overflow-x: hidden; max-width: 100vw; }
/* Safety net: during directory scroll restore we disable smooth scrolling so
   the jump to the saved position is instant and the user never sees the
   "persiana" effect of cards sliding past. */
html.boost-scroll-restoring { scroll-behavior: auto; }
img, svg { display: block; max-width: 100%; }
input, button, select, textarea { font: inherit; }
button { cursor: pointer; }
ul, ol { list-style: none; }

/* ---- Design tokens + Base ---- */
.boost-body {
  /* Tokens */
  --boost-sidebar-bg: #2a3450;
  --boost-sidebar-w: 230px;
  --boost-topbar-bg: rgba(255, 255, 255, 0.5);
  --boost-topbar-h: 56px;
  --boost-bottom-tab-h: 60px;
  --boost-content-bg: #e8ecf4;
  --boost-content-bg-rgb: 232, 236, 244;
  --boost-content-bg-light: #edf0f8;
  --boost-content-bg-dark: #e4e9f3;
  --boost-content-bg-mid: #eceef6;
  --boost-card-bg: rgba(255,255,255,0.72);
  --boost-popover-bg: #ffffff;
  --boost-popover-shadow: 0 8px 24px rgba(15, 23, 42, 0.18), 0 2px 6px rgba(15, 23, 42, 0.08);
  --boost-card-border: rgba(170,185,210,0.75);
  --boost-form-bg: rgba(238,241,250,0.80);
  --boost-form-border: rgba(165,180,210,0.80);
  --boost-input-bg: rgba(255,255,255,0.97);
  --boost-input-border: rgba(150,168,200,0.55);
  --boost-accent: #06b6d4;
  --boost-accent-hover: #0891b2;
  --boost-accent-mid: #22d3ee;
  --boost-accent-light: #67e8f9;
  --boost-accent-rgb: 6, 182, 212;
  --boost-accent-end: #0ea5e9;
  /* Immutable brand tokens — default Boost cyan, NOT overridden by AI/Fans contexts.
     Use for elements that must always render the base Boost brand color regardless
     of the active theme zone (e.g. default Boost logo inside shared popovers). */
  --boost-brand-cyan: #06b6d4;
  --boost-brand-cyan-end: #0ea5e9;
  --boost-accent-end-hover: #0284c7;
  --boost-accent-glow: rgba(var(--boost-accent-rgb), 0.12);
  --boost-success: #10b981;
  --boost-success-bold: #059669;
  --boost-success-rgb: 16, 185, 129;
  --boost-success-bg: rgba(var(--boost-success-rgb),0.1);
  --boost-danger: #ef4444;
  --boost-danger-rgb: 239, 68, 68;
  --boost-danger-bg: rgba(var(--boost-danger-rgb),0.08);
  --boost-warning: #d97706;
  --boost-warning-rgb: 217, 119, 6;
  --boost-warning-light: #f59e0b;
  --boost-warning-light-rgb: 245, 158, 11;
  --boost-warning-bg: rgba(var(--boost-warning-light-rgb),0.08);
  --boost-info: #3b82f6;
  --boost-info-rgb: 59, 130, 246;
  --boost-info-bg: rgba(var(--boost-info-rgb),0.08);
  --boost-text-1: #18181b;
  --boost-text-2: #3f3f46;
  --boost-text-3: #71717a;
  --boost-white: #fff;
  --boost-white-rgb: 255, 255, 255;
  --boost-shimmer: rgba(255,255,255,0.15);
  --platform-tiktok: #ff0050;
  --platform-instagram: #E1306C;
  --platform-youtube: #FF0000;
  /* Gradients de marca (oficiales) — usados en accesos rápidos sidebar */
  --platform-instagram-gradient: linear-gradient(45deg, #F09433 0%, #E6683C 25%, #DC2743 50%, #CC2366 75%, #BC1888 100%);
  --platform-tiktok-gradient: linear-gradient(135deg, #25F4EE 0%, #FE2C55 100%);
  --platform-facebook: #1877F2;
  --platform-telegram: #26A5E4;
  --platform-spotify: #1DB954;
  --platform-twitch: #9146FF;
  --platform-discord: #5865F2;
  --platform-linkedin: #0A66C2;
  --platform-pinterest: #E60023;
  --platform-snapchat: #FFFC00;
  --platform-soundcloud: #FF5500;
  --platform-reddit: #FF4500;
  --platform-applemusic: #FC3C44;
  --platform-bluesky: #0085FF;
  --crypto-bitcoin: #f7931a;
  --crypto-ethereum: #627eea;
  --crypto-tether: #26a17b;
  --crypto-solana: #9945ff;
  --crypto-litecoin: #345d9d;
  --platform-clubhouse: #F3E652;
  --platform-kick: #53FC19;
  --platform-rumble: #85C742;
  --platform-shopee: #EE4D2D;
  --platform-trovo: #19D66B;
  --platform-trustpilot: #00B67A;
  --platform-onlyfans: #00AFF0;
  --platform-fansly: #1fa0f3;
  --platform-twitter: #1DA1F2;
  --platform-x: #000;
  --platform-whatsapp: #25D366;
  --platform-tiktok-alt: #fe2c55;
  --boost-bg: var(--boost-content-bg);
  --boost-border: var(--boost-card-border);
  --boost-primary: var(--boost-accent);
  --boost-primary-bg: var(--boost-accent-glow);
  --boost-border-w: 2px;
  --boost-radius: 18px;
  --boost-radius-sm: 12px;
  --boost-radius-xs: 8px;
  --boost-landing-max: 1100px;
  --boost-transition: 0.2s ease;
  --boost-t-smooth: 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  --boost-glass-shadow: 0 1px 1px rgba(0,0,0,0.06), 0 3px 8px rgba(0,0,0,0.08), 0 12px 28px rgba(0,0,0,0.10), 0 28px 56px rgba(0,0,0,0.10), 0 48px 80px rgba(0,0,0,0.06);
  --boost-glass-shadow-hover: 0 1px 2px rgba(0,0,0,0.07), 0 6px 16px rgba(0,0,0,0.10), 0 20px 44px rgba(0,0,0,0.12), 0 40px 72px rgba(0,0,0,0.12), 0 64px 110px rgba(0,0,0,0.07);
  --boost-shadow-sm: 0 2px 8px rgba(0,0,0,0.08);
  --boost-shadow-md: 0 8px 24px rgba(0,0,0,0.12), 0 2px 6px rgba(0,0,0,0.06);
  --boost-container-bg: rgba(255,255,255,0.28);
  --boost-container-border: rgba(var(--boost-accent-rgb), 0.06);
  /* Override global.css variables for light boost panel */
  --text-primary: var(--boost-text-1);
  --text-secondary: var(--boost-text-2);
  --text-muted: var(--boost-text-3);
  --bg-dark: var(--boost-content-bg);
  --primary: var(--boost-accent);
  --primary-hover: var(--boost-accent-hover);
  --primary-light: var(--boost-accent-light);
  --primary-rgb: 6, 182, 212;
  --content-rgb: 0, 0, 0;
  --bg-card: var(--boost-card-bg);
  --gradient-purple: var(--boost-accent-hover);
  /* Spacing + typography (used by guides.css) */
  --spacing-sm: 0.5rem;
  --spacing-md: 1rem;
  --spacing-lg: 1.5rem;
  --spacing-xl: 2rem;
  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --font-mono: 'SF Mono', 'Fira Code', monospace;
  /* Radii (guides.css) */
  --radius-sm: 0.375rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.75rem;
  --radius-xl: 1rem;
  --transition-base: 200ms ease;
  /* Semantic borders & backgrounds (light theme) */
  --boost-border-subtle: rgba(0,0,0,0.06);
  --boost-border-soft: rgba(0,0,0,0.08);
  --boost-bg-subtle: rgba(0,0,0,0.02);
  --boost-bg-muted: rgba(0,0,0,0.04);
  --boost-pink: #db2777;
  --boost-pink-rgb: 219, 39, 119;
  --boost-amber: #F59E0B;
  --boost-amber-rgb: 245, 158, 11;
  --boost-orange: #f97316;
  --boost-yellow: #eab308;
  /* Colors — mapped to existing boost tokens (consumed by guides.css) */
  --border-color: var(--boost-border-soft);
  --bg-secondary: var(--boost-content-bg);
  --bg-tertiary: var(--boost-bg-muted);
  --bg-primary: var(--boost-card-bg);
  --success: var(--boost-success);
  --success-dark: var(--boost-success-bold);
  --success-bright: #22c55e;
  --warning: var(--boost-warning-light);
  --warning-dark: var(--boost-warning);
  --warning-light: #fbbf24;
  --danger: var(--boost-danger);
  --info: var(--boost-info);
  --info-light: #60a5fa;
  /* Semantic tokens — consumed by blog h2, highlight strong, hero labels */
  --boost-heading-accent: var(--boost-accent-hover);
  --boost-heading-accent-light: var(--boost-accent-light);
  --violet: #8b5cf6;
  --violet-rgb: 139, 92, 246;
  --violet-light: #a78bfa;
  --violet-dark: #6d28d9;
  --black: #000;
  --boost-dark-rgb: 15, 23, 42;
  --boost-featured-bg-start: #1e293b;
  --boost-featured-bg-end: #334155;
  --android-green: #3DDC84;
  --facebook: #1877F2;
  --vinted: #09B1BA;
  --wallapop: #13C1AC;
  --transition-fast: 150ms ease;
  /* CTA dorado */
  --boost-cta-bg: var(--boost-orange);
  --boost-cta-bg-end: #fb923c;
  --boost-cta-bg-rgb: 249, 115, 22;
  --boost-cta-text: #7c2d12;
  /* CTA plateado */
  --boost-cta-silver: #8e9ab0;
  --boost-cta-silver-end: #6b7a94;
  --boost-cta-silver-rgb: 110, 125, 150;
  /* Overlay */
  --boost-overlay-dark: rgba(0, 0, 0, 0.35);
  --boost-modal-backdrop: var(--modal-backdrop);
  /* Badge OnlyFans gradiente */
  --boost-badge-of-start: var(--platform-onlyfans);
  --boost-badge-of-end: var(--platform-fansly);
  --boost-badge-of-glow-rgb: 0, 175, 240;
  /* Ticker verde esmeralda */
  --boost-ticker-bg: #34d399;
  --boost-ticker-bg-end: #6ee7b7;
  --boost-ticker-bg-rgb: 52, 211, 153;
  --boost-ticker-text: #064e3b;
  /* Donor level tiers (pill backgrounds — dark enough for white text) */
  --boost-donor-bronze: #A0522D;
  --boost-donor-silver: #8E99A4;
  --boost-donor-gold: #D4A017;
  --boost-donor-gold-end: #b8860b;
  --boost-donor-platinum-start: #7B68EE;
  --boost-donor-platinum-end: #9370DB;
  --boost-donor-platinum-rgb: 123, 104, 238;
  --boost-donor-diamond-start: #00B4D8;
  --boost-donor-diamond-end: #48CAE4;
  --boost-donor-diamond-rgb: 0, 180, 216;
  --boost-donor-legend-start: #FF416C;
  --boost-donor-legend-end: #FF4B2B;
  --boost-donor-legend-rgb: 255, 65, 108;
  --boost-ticker-icon: #065f46;
  /* Base styling */
  background: linear-gradient(168deg, var(--boost-content-bg-light) 0%, var(--boost-content-bg) 35%, var(--boost-content-bg-dark) 70%, var(--boost-content-bg-mid) 100%);
  background-attachment: fixed;
  color: var(--boost-text-1);
  min-height: var(--boost-vvh, 100vh);
  display: flex;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  padding-top: 0;
  padding-bottom: 0;
  overflow-x: hidden;
  max-width: 100vw;
}

.boost-body h1,
.boost-body h2,
.boost-body h3,
.boost-body h4,
.boost-body h5,
.boost-body h6 {
  color: var(--boost-text-1);
  margin-bottom: 0;
}

.boost-body p {
  color: var(--boost-text-2);
  margin-bottom: 0;
}

.boost-body a { color: inherit; text-decoration: none; }
.boost-body a:hover { color: inherit; }

.boost-creator-lightbox:not([hidden]) {
  display: flex;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.boost-creator-lightbox.boost-lightbox-visible,
.boost-creator-lightbox.active {
  opacity: 1;
  pointer-events: auto;
}
.boost-creator-lightbox-media {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 92vw;
  max-height: 92vh;
  overflow: visible;
}

/* ============================================================================
   MitikFans pink theme — /creators pages
   ============================================================================
   Scoped to .boost-main-area so sidebar keeps cyan. Cascade handles the rest:
   buttons, badges, links, gradients, glows all consume --boost-accent.
   Contrast: #d6336c on #e8ecf4 = 5.9:1 (AA); on #fff = 4.8:1 (AA).
   ============================================================================ */
.boost-body-creators .boost-main-area,
.boost-body-creators .boost-main-minimal,
.boost-body-creators > .boost-directory-filter-panel,
.boost-body-creators > .boost-modal-overlay,
.boost-body-creators > .boost-gift-overlay {
  --boost-accent: #d6336c;
  --boost-accent-hover: #c2255c;
  --boost-accent-mid: #e64980;
  --boost-accent-light: #f06595;
  --boost-accent-rgb: 214, 51, 108;
  --boost-accent-end: #e64980;
  --boost-accent-end-hover: #d6336c;
  --boost-accent-glow: rgba(214, 51, 108, 0.10);
  --boost-primary: var(--boost-accent);
  --boost-primary-bg: var(--boost-accent-glow);
  --primary: var(--boost-accent);
  --primary-hover: var(--boost-accent-hover);
  --primary-light: var(--boost-accent-light);
  --primary-rgb: 214, 51, 108;
  --gradient-purple: var(--boost-accent-hover);
  --boost-container-border: rgba(214, 51, 108, 0.06);
  --boost-heading-accent: var(--boost-text-1);
  --boost-heading-accent-light: var(--boost-accent-light);
  --boost-featured-bg-start: #3d1433;
  --boost-featured-bg-end: #4d1c42;
  --boost-dark-rgb: 61, 20, 51;
}

/* ============================================================================
   MitikAI amber theme — /boost/ai pages
   ============================================================================
   Same cascade approach as MitikFans. Sidebar keeps cyan.
   Contrast: #D97706 on #e8ecf4 = 5.2:1 (AA); on #fff = 4.5:1 (AA-large).
   ============================================================================ */

/* ============================================================================
   SIDEBAR — frosted glass, scoped variable overrides
   ============================================================================ */
.boost-sidebar {
  --boost-text-1: #1a202c;
  --boost-text-2: #2d3748;
  --boost-text-3: #4a5568;
  --boost-card-border: rgba(255,255,255,0.35);
  --boost-sidebar-hover: rgba(255,255,255,0.4);
  --boost-sidebar-subtle: rgba(255,255,255,0.2);
  width: var(--boost-sidebar-w);
  background: linear-gradient(180deg, rgba(160, 175, 205, 0.82) 0%, rgba(150, 168, 200, 0.75) 100%);
  border-right: none;
  box-shadow: 4px 0 40px rgba(0,0,0,0.1);
  color: var(--boost-text-2);
  display: flex;
  flex-direction: column;
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  z-index: 100;
  transition: transform var(--boost-t-smooth);
  overflow: visible;
  animation: boostSidebarFadeIn 0.4s ease-out both;
}

@keyframes boostSidebarFadeIn {
  from { opacity: 0; transform: translateX(-12px); }
  to   { opacity: 1; transform: translateX(0); }
}

.boost-sidebar-nav {
  flex: 1;
  min-height: 0;
}

.boost-sidebar-header {
  padding: 14px 14px 10px;
  border-bottom: none;
  display: none;
  align-items: center;
  justify-content: center;
  position: relative;
}

.boost-sidebar-close {
  display: none;
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: var(--boost-text-3);
  font-size: 16px;
  cursor: pointer;
  padding: 6px;
  border-radius: 6px;
  transition: color var(--boost-transition);
}

.boost-sidebar-close:hover {
  color: var(--boost-text-1);
}

.boost-sidebar-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0;
  cursor: pointer;
  transition: background var(--boost-transition);
  border-radius: var(--boost-radius-xs);
}

.boost-sidebar-logo:hover {
  background: rgba(255,255,255,0.3);
}

/* Umbrella brand mark "M" — multi-gradient represents all 3 products */
.boost-sidebar-logo-mark {
  width: 30px;
  height: 30px;
  border-radius: 9px;
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-pink) 60%, var(--boost-amber));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 900;
  color: var(--boost-white);
  flex-shrink: 0;
  letter-spacing: -0.03em;
  box-shadow: 0 4px 20px rgba(var(--boost-accent-rgb), 0.3), 0 2px 8px rgba(var(--boost-pink-rgb), 0.15);
}

/* Legacy logo icon support (used by zone brand dividers) */
.boost-sidebar-logo-icon {
  width: 28px;
  height: 28px;
  background: linear-gradient(135deg, var(--boost-accent) 0%, var(--boost-accent-end) 100%);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--boost-white);
  font-size: 13px;
  flex-shrink: 0;
  box-shadow: 0 4px 20px rgba(var(--boost-accent-rgb), 0.4);
}

.boost-sidebar .boost-sidebar-logo-text {
  font-size: 15px;
  font-weight: 600;
  color: var(--boost-text-2);
  letter-spacing: -0.02em;
}

.boost-sidebar-logo-text span {
  font-weight: 800;
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Sidebar draft pill */
.boost-sidebar-draft {
  margin: 0 16px 4px;
  padding: 10px 12px;
  background: var(--boost-card-bg);
  border: 2px solid rgba(var(--boost-danger-rgb), 0.4);
  border-radius: var(--boost-radius-sm);
  display: none;
  flex-direction: column;
  gap: 8px;
  animation: boostDraftPulse 2s ease-in-out infinite;
}
.boost-sidebar-draft.active { display: flex; }

@keyframes boostDraftPulse {
  0%, 100% { border-color: rgba(var(--boost-danger-rgb), 0.25); }
  50% { border-color: rgba(var(--boost-danger-rgb), 0.85); }
}

.boost-sidebar-draft-top {
  display: flex;
  align-items: center;
  gap: 10px;
}
.boost-sidebar-draft-icon {
  font-size: 22px;
  flex-shrink: 0;
  width: 32px;
  text-align: center;
  align-self: center;
}
.boost-sidebar-draft-info {
  flex: 1;
  min-width: 0;
}
.boost-sidebar-draft-header {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 10px;
  font-weight: 800;
  color: var(--boost-text-1);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1;
}
.boost-sidebar-draft-summary {
  font-size: 12px;
  font-weight: 500;
  color: var(--boost-text-1);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin-top: 3px;
}
.boost-sidebar-draft-discard {
  padding: 4px 6px;
  background: transparent;
  color: var(--boost-text-3);
  border: 1px solid transparent;
  border-radius: 6px;
  font-size: 12px;
  cursor: pointer;
  flex-shrink: 0;
  transition: all var(--boost-transition);
}
.boost-sidebar-draft-discard:hover {
  color: var(--boost-danger);
  border-color: var(--boost-danger);
}
.boost-sidebar-draft-continue {
  display: block;
  padding: 6px 12px;
  background: var(--boost-accent);
  color: var(--boost-white);
  border: none;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: background var(--boost-transition);
  text-decoration: none;
  text-align: center;
}
.boost-sidebar-draft-continue:hover {
  background: var(--boost-accent-hover);
  color: var(--boost-white);
}

/* ---- Floating draft pill (fixed bottom) ---- */
.boost-draft-pill {
  position: fixed;
  bottom: max(20px, env(safe-area-inset-bottom, 0px));
  left: 50%;
  transform: translateX(-50%) translateY(100px);
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: var(--boost-card-bg);
  border: 2px solid rgba(var(--boost-accent-rgb), 0.35);
  border-radius: 50px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.18), 0 2px 8px rgba(0,0,0,0.1);
  backdrop-filter: blur(20px) saturate(150%);
  z-index: 900;
  opacity: 0;
  pointer-events: none;
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.25s ease;
  max-width: calc(100vw - 32px);
  white-space: nowrap;
}
.boost-draft-pill.active {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.boost-draft-pill-icon {
  font-size: 18px;
  width: 28px;
  text-align: center;
  flex-shrink: 0;
}
.boost-draft-pill-text {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  overflow: hidden;
}
.boost-draft-pill-label {
  font-size: 11px;
  font-weight: 800;
  color: var(--boost-accent);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  flex-shrink: 0;
}
.boost-draft-pill-summary {
  font-size: 13px;
  font-weight: 500;
  color: var(--boost-text-2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.boost-draft-pill-continue {
  padding: 6px 14px;
  background: var(--boost-accent);
  color: var(--boost-white);
  border: none;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: background var(--boost-transition);
  text-decoration: none;
  flex-shrink: 0;
}
.boost-draft-pill-continue:hover {
  background: var(--boost-accent-hover);
  color: var(--boost-white);
}
.boost-draft-pill-close {
  padding: 4px;
  background: none;
  border: none;
  color: var(--boost-text-3);
  font-size: 13px;
  cursor: pointer;
  border-radius: 50%;
  transition: color var(--boost-transition), background var(--boost-transition);
  flex-shrink: 0;
  line-height: 1;
}
.boost-draft-pill-close:hover {
  color: var(--boost-danger);
  background: rgba(var(--boost-danger-rgb), 0.1);
}

/* Sidebar nav */
.boost-sidebar-nav {
  flex: 1;
  overflow-y: auto;
  padding: 8px 0;
  min-height: 0;
}

.boost-sidebar-nav::-webkit-scrollbar { width: 4px; }
.boost-sidebar-nav::-webkit-scrollbar-thumb { background: var(--boost-text-3); border-radius: 4px; }

.boost-nav-section {
  padding: 12px 16px 5px;
  font-size: 11.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--boost-text-1);
  display: flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
}

.boost-nav-section i {
  width: 17px;
  height: 17px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 8px;
  color: var(--boost-white);
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
  border-radius: 5px;
  box-shadow: 0 2px 8px rgba(var(--boost-accent-rgb), 0.35);
}

.boost-nav-section-badge {
  font-size: 9px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--boost-badge-of-start), var(--boost-badge-of-end));
  color: var(--boost-white);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
  box-shadow: 0 2px 8px rgba(var(--boost-badge-of-glow-rgb), 0.4);
  animation: boostPulseGlow 2s ease-in-out infinite;
}

/* Social proof block del sidebar (números live cacheados 5 min).
   El sidebar tiene fondo claro → texto oscuro y fondo verde-suave para destacar. */
.boost-sidebar-social-proof {
  margin: 12px 8px;
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(74, 222, 128, 0.10);
  border: 1px solid rgba(74, 222, 128, 0.25);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.boost-sidebar-social-proof-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--boost-text-2, #3f3f46);
  line-height: 1.3;
}
.boost-sidebar-social-proof-row i {
  font-size: 12px;
  color: #16a34a;
  flex-shrink: 0;
}
.boost-sidebar-social-proof-row strong {
  color: var(--boost-text-1, #18181b);
  font-weight: 700;
}

/* Accesos rápidos del sidebar: iconos con colores oficiales de cada red.
   Reutiliza atributo data-platform (mismo patrón usado en líneas 4948-4950). */
.boost-nav-item[data-platform="Instagram"] > i {
  background: var(--platform-instagram-gradient);
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
          color: transparent;
}
.boost-nav-item[data-platform="TikTok"] > i {
  color: var(--platform-tiktok);
  text-shadow: -1px 0 var(--platform-tiktok-alt, #25F4EE), 1px 0 #25F4EE;
}
.boost-nav-item[data-platform="YouTube"] > i {
  color: var(--platform-youtube);
}
.boost-nav-item[data-platform="other"] > i {
  color: var(--boost-text-2, #a1a1aa);
}
/* Hover: realce sutil del item completo */
.boost-nav-item[data-platform] {
  transition: background-color 0.15s ease, transform 0.15s ease;
}
.boost-nav-item[data-platform]:hover {
  background-color: rgba(var(--boost-white-rgb, 255, 255, 255), 0.06);
  transform: translateX(2px);
}

@keyframes boostPulseGlow {
  0%, 100% { box-shadow: 0 2px 8px rgba(var(--boost-badge-of-glow-rgb), 0.4); }
  50% { box-shadow: 0 2px 16px rgba(var(--boost-badge-of-glow-rgb), 0.7); }
}

.boost-nav-section::after {
  content: '';
  flex: 1;
  height: 3px;
  border-radius: 2px;
  background: rgba(var(--boost-accent-rgb), 0.7);
}

/* ════════════════════════════════════════════
   ZONE SYSTEM — colored section backgrounds
   ════════════════════════════════════════════ */

/* ---- Zone base — shared structure for Boost/Fans/AI zones ---- */
.boost-nav-zone {
  position: relative;
  margin: 6px 8px;
  padding: 8px 6px;
  border-radius: var(--boost-radius-sm);
  transition: background 0.25s, box-shadow 0.25s;
}
/* Left accent bar (grows on hover) */
.boost-nav-zone::after {
  content: '';
  position: absolute;
  left: 0;
  top: 10px;
  bottom: 10px;
  width: 3px;
  border-radius: 0 3px 3px 0;
  transition: opacity 0.3s, top 0.3s, bottom 0.3s, box-shadow 0.3s;
  opacity: 0.85;
}
.boost-nav-zone:hover::after,
.boost-nav-zone.boost-flyout-open::after {
  opacity: 1;
  top: 6px;
  bottom: 6px;
  box-shadow: 0 0 8px var(--zone-glow, rgba(0,0,0,0.1));
}

/* Zone items spacing — reduced margins inside zones */
.boost-nav-zone .boost-nav-item {
  margin-left: 6px;
  margin-right: 6px;
}
.boost-nav-zone .boost-nav-section {
  padding-left: 10px;
  padding-right: 10px;
}
.boost-nav-zone .boost-nav-compact-row {
  margin: 4px 6px 2px;
}
.boost-nav-zone .boost-nav-item-group {
  margin-left: 6px;
  margin-right: 6px;
}

/* ---- Zone header — brand icon + label + chevron (flyout trigger) ---- */
.boost-nav-zone-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 6px 8px 8px;
  margin-bottom: 5px;
  border-bottom: 1px solid rgba(0,0,0,0.06);
  border-radius: var(--boost-radius-xs) var(--boost-radius-xs) 0 0;
  cursor: pointer;
  transition: background 0.18s, border-color 0.18s;
  user-select: none;
  position: relative;
}
.boost-nav-zone-header:hover {
  background: rgba(255,255,255,0.35);
}
.boost-nav-zone.boost-flyout-open .boost-nav-zone-header {
  background: rgba(255,255,255,0.45);
  border-bottom-color: rgba(0,0,0,0.10);
}

.boost-nav-zone-icon {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  color: var(--boost-white);
  flex-shrink: 0;
}
.boost-nav-zone-label {
  font-size: 15px;
  font-weight: 600;
  color: var(--boost-text-2);
}
.boost-nav-zone-label span {
  font-weight: 800;
}
.boost-nav-zone-chevron {
  font-size: 9px;
  color: var(--boost-text-3);
  transition: transform 0.2s, color 0.2s;
  opacity: 0.7;
}
.boost-nav-zone-header:hover .boost-nav-zone-chevron {
  opacity: 1;
  color: var(--boost-text-2);
}
.boost-nav-zone.boost-flyout-open .boost-nav-zone-chevron {
  opacity: 1;
  color: var(--boost-text-1);
  transform: rotate(-90deg);
}

/* ---- Boost zone (cyan/teal) ---- */
.boost-nav-boost-zone {
  --zone-glow: rgba(var(--boost-accent-rgb), 0.4);
  background:
    radial-gradient(ellipse at 10% 20%, rgba(var(--boost-accent-rgb), 0.15), transparent 60%),
    rgba(255,255,255,0.45);
  border: 1px solid rgba(var(--boost-accent-rgb), 0.18);
  box-shadow: 0 2px 12px rgba(var(--boost-accent-rgb), 0.08), 0 1px 3px rgba(0,0,0,0.04);
}
.boost-nav-boost-zone::after {
  background: linear-gradient(180deg, var(--boost-accent), var(--boost-accent-end));
}
.boost-nav-boost-zone:hover {
  background:
    radial-gradient(ellipse at 10% 20%, rgba(var(--boost-accent-rgb), 0.22), transparent 60%),
    rgba(255,255,255,0.55);
  box-shadow: 0 4px 16px rgba(var(--boost-accent-rgb), 0.12), 0 1px 3px rgba(0,0,0,0.05);
}
.boost-nav-boost-zone .boost-nav-zone-icon {
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
  box-shadow: 0 4px 20px rgba(var(--boost-accent-rgb), 0.4);
}
.boost-nav-boost-zone .boost-nav-zone-label span {
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.boost-nav-boost-zone .boost-nav-zone-header:hover { background: rgba(var(--boost-accent-rgb), 0.08); }
.boost-nav-boost-zone.boost-flyout-open .boost-nav-zone-header { background: rgba(var(--boost-accent-rgb), 0.12); }
.boost-nav-boost-zone .boost-nav-item:hover:not(.active) {
  background: rgba(var(--boost-accent-rgb), 0.08);
  border-color: rgba(var(--boost-accent-rgb), 0.15);
}
.boost-nav-boost-zone .boost-nav-item:hover:not(.active) i {
  color: var(--boost-accent);
  border-color: rgba(var(--boost-accent-rgb), 0.25);
}

/* ---- Fans zone (pink) ---- */
.boost-nav-fans-zone {
  --zone-glow: rgba(var(--boost-pink-rgb), 0.4);
  background:
    radial-gradient(ellipse at 10% 30%, rgba(var(--boost-pink-rgb), 0.13), transparent 60%),
    rgba(255,255,255,0.42);
  border: 1px solid rgba(var(--boost-pink-rgb), 0.16);
  box-shadow: 0 2px 12px rgba(var(--boost-pink-rgb), 0.07), 0 1px 3px rgba(0,0,0,0.04);
}
.boost-nav-fans-zone::after {
  background: linear-gradient(180deg, var(--boost-pink), var(--boost-danger));
}
.boost-nav-fans-zone:hover {
  background:
    radial-gradient(ellipse at 10% 30%, rgba(var(--boost-pink-rgb), 0.20), transparent 60%),
    rgba(255,255,255,0.52);
  box-shadow: 0 4px 16px rgba(var(--boost-pink-rgb), 0.10), 0 1px 3px rgba(0,0,0,0.05);
}
.boost-nav-fans-zone .boost-nav-zone-icon {
  background: linear-gradient(135deg, var(--boost-pink), var(--boost-danger));
  box-shadow: 0 4px 20px rgba(var(--boost-pink-rgb), 0.4);
}
.boost-nav-fans-zone .boost-nav-zone-label span {
  background: linear-gradient(135deg, var(--boost-pink), var(--boost-danger));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.boost-nav-fans-zone .boost-nav-zone-header:hover { background: rgba(var(--boost-pink-rgb), 0.08); }
.boost-nav-fans-zone.boost-flyout-open .boost-nav-zone-header { background: rgba(var(--boost-pink-rgb), 0.12); }

/* ---- AI zone (amber/orange) ---- */

/* MitikAI section heading — amber icon + amber line */

/* ════════════════════════════════════════════
   FLYOUT SUBMENU — premium hover panels
   ════════════════════════════════════════════ */

/* Invisible bridge so mouse can travel from zone to flyout */
.boost-nav-flyout-bridge {
  position: fixed;
  left: calc(var(--boost-sidebar-w) - 20px);
  width: 28px;
  pointer-events: none;
  z-index: 199;
}
.boost-nav-zone.boost-flyout-open .boost-nav-flyout-bridge {
  pointer-events: auto;
}

.boost-nav-flyout {
  --flyout-color: var(--boost-accent);
  --flyout-rgb: var(--boost-accent-rgb);
  position: fixed;
  left: calc(var(--boost-sidebar-w) + 4px);
  min-width: 230px;
  max-width: 280px;
  border: 1px solid var(--boost-border);
  border-radius: 14px;
  box-shadow:
    0 20px 60px rgba(0,0,0,0.18),
    0 4px 16px rgba(0,0,0,0.08);
  padding: 8px;
  opacity: 0;
  visibility: hidden;
  transform: translateX(-10px) scale(0.97);
  transition: opacity 0.22s, transform 0.22s, visibility 0.22s;
  z-index: 200;
  pointer-events: none;
  overflow: hidden;
}

/* Zone-specific flyout tint */
.boost-nav-fans-zone .boost-nav-flyout { --flyout-color: var(--boost-pink); --flyout-rgb: var(--boost-pink-rgb); }

.boost-nav-boost-zone .boost-nav-flyout { background: linear-gradient(135deg, color-mix(in srgb, var(--boost-accent) 6%, var(--boost-popover-bg)), var(--boost-popover-bg)); }
.boost-nav-fans-zone .boost-nav-flyout  { background: linear-gradient(135deg, color-mix(in srgb, var(--boost-pink) 6%, var(--boost-popover-bg)), var(--boost-popover-bg)); }

/* Top accent stripe inside flyout */
.boost-nav-flyout::before {
  content: '';
  position: absolute;
  top: 0;
  left: 16px;
  right: 16px;
  height: 2px;
  border-radius: 0 0 2px 2px;
  background: linear-gradient(90deg, var(--flyout-color), transparent 80%);
  opacity: 0.5;
}

.boost-nav-zone.boost-flyout-open .boost-nav-flyout {
  opacity: 1;
  visibility: visible;
  transform: translateX(0) scale(1);
  pointer-events: auto;
}

/* ---- Flyout header ---- */
.boost-flyout-header {
  padding: 10px 10px 8px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.boost-flyout-header-icon {
  width: 24px;
  height: 24px;
  border-radius: 7px;
  background: linear-gradient(135deg, var(--flyout-color), rgba(var(--flyout-rgb),0.7));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  color: var(--boost-white);
  box-shadow: 0 2px 8px rgba(var(--flyout-rgb),0.3);
}
.boost-flyout-header-text {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--boost-text-3);
}
.boost-flyout-header-line {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, rgba(var(--flyout-rgb), 0.2), transparent);
}

/* ---- Flyout items ---- */
.boost-flyout-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border-radius: 9px;
  text-decoration: none;
  color: var(--boost-text-2);
  font-size: 13px;
  font-weight: 500;
  border: 1px solid transparent;
  transition: background 0.15s, color 0.15s, border-color 0.15s, transform 0.12s;
}
.boost-flyout-item:hover {
  background: rgba(var(--flyout-rgb), 0.08);
  color: var(--boost-text-1);
  border-color: rgba(var(--flyout-rgb), 0.12);
  transform: translateX(3px);
}
.boost-flyout-item.active {
  background: linear-gradient(135deg, var(--flyout-color), rgba(var(--flyout-rgb),0.8));
  color: var(--boost-white);
  font-weight: 600;
  border-color: transparent;
  box-shadow: 0 2px 10px rgba(var(--flyout-rgb), 0.3);
}
.boost-flyout-item i {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 7px;
  font-size: 12px;
  background: rgba(var(--flyout-rgb), 0.08);
  border: 1px solid rgba(var(--flyout-rgb), 0.10);
  color: var(--flyout-color);
  flex-shrink: 0;
  transition: background 0.15s, color 0.15s, box-shadow 0.15s;
}
.boost-flyout-item:hover i {
  background: rgba(var(--flyout-rgb), 0.15);
  box-shadow: 0 2px 6px rgba(var(--flyout-rgb), 0.15);
}
.boost-flyout-item.active i {
  background: rgba(255,255,255,0.2);
  border-color: rgba(255,255,255,0.25);
  color: var(--boost-white);
  box-shadow: none;
}
.boost-flyout-item-content { flex: 1; min-width: 0; }
.boost-flyout-item-label { display: block; }
.boost-flyout-item-desc {
  display: block;
  font-size: 10px;
  font-weight: 400;
  color: var(--boost-text-3);
  margin-top: 1px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.boost-flyout-badge {
  margin-left: auto;
  padding: 2px 8px;
  border-radius: 8px;
  font-size: 9px;
  font-weight: 700;
  color: var(--boost-white);
  box-shadow: 0 2px 6px rgba(0,0,0,0.12);
}
.boost-flyout-badge-pink { background: linear-gradient(135deg, var(--boost-pink), var(--boost-danger)); }
.boost-flyout-badge-accent { background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end)); }

/* Legacy brand divider — kept for backwards compat */
/* Logo icon variants for bottom-tab popover + minimal topbar */
.boost-sidebar-logo-icon-fans {
  background: linear-gradient(135deg, var(--boost-pink), var(--boost-danger));
  box-shadow: 0 4px 20px rgba(var(--boost-danger-rgb), 0.4);
}
.boost-sidebar-logo-text-fans span {
  background: linear-gradient(135deg, var(--boost-pink), var(--boost-danger));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.boost-sidebar-logo-text-boost span {
  background: linear-gradient(135deg, var(--boost-brand-cyan), var(--boost-brand-cyan-end));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Inline brand marks — icon + bicolor text matching sidebar logos */
.boost-brand {
  font-weight: 700;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 0.3em;
}
.boost-brand em { font-style: normal; }
.boost-brand > i {
  font-size: 0.85em;
  width: 1.4em;
  height: 1.4em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.35em;
  color: var(--boost-white);
  flex-shrink: 0;
}
.boost-brand-fans > i {
  background: linear-gradient(135deg, var(--boost-pink), var(--boost-danger));
  box-shadow: 0 2px 8px rgba(var(--boost-danger-rgb), 0.3);
}
.boost-brand-fans em {
  background: linear-gradient(135deg, var(--boost-pink), var(--boost-danger));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.boost-brand-boost > i {
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
  box-shadow: 0 2px 8px rgba(var(--boost-accent-rgb), 0.3);
}
.boost-brand-boost em {
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.boost-sidebar .boost-nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 8px;
  margin: 2px 8px;
  border-radius: 7px;
  color: var(--boost-text-2);
  font-size: 12.5px;
  font-weight: 500;
  border: 1px solid transparent;
  transition: background 0.15s, color 0.15s, transform 0.12s, border-color 0.15s;
  position: relative;
}

/* "Nuevo Pedido" — separated CTA above nav */
.boost-sidebar .boost-sidebar-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 14px 12px 6px;
  padding: 10px 14px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
  border: none;
  color: var(--boost-white);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 4px 16px rgba(var(--boost-accent-rgb), 0.3), inset 0 1px 0 rgba(255,255,255,0.2);
  transition: transform 0.15s, box-shadow 0.15s;
  animation: boostCtaPulse 3s ease-in-out infinite;
}
.boost-sidebar .boost-sidebar-cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(var(--boost-accent-rgb), 0.4), inset 0 1px 0 rgba(255,255,255,0.2);
  color: var(--boost-white);
  animation: none;
}
.boost-sidebar .boost-sidebar-cta.active {
  background: linear-gradient(135deg, var(--boost-accent-hover), var(--boost-accent));
  color: var(--boost-white);
}
@keyframes boostCtaPulse {
  0%, 100% { box-shadow: 0 4px 16px rgba(var(--boost-accent-rgb), 0.3), inset 0 1px 0 rgba(255,255,255,0.2); }
  50% { box-shadow: 0 4px 24px rgba(var(--boost-accent-rgb), 0.45), inset 0 1px 0 rgba(255,255,255,0.2); }
}

/* "Crea tu perfil" — dot indicator style */
.boost-sidebar .boost-nav-item-dot {
  color: var(--boost-text-2);
  font-weight: 600;
  position: relative;
}
.boost-sidebar .boost-nav-item-dot::after {
  content: '';
  position: absolute;
  top: 10px;
  right: 10px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--boost-cta-bg);
}
.boost-sidebar .boost-nav-item-dot.active::after {
  display: none;
}

.boost-nav-creator-thumb-wrap {
  position: relative;
  display: inline-flex;
  flex-shrink: 0;
  margin-right: 6px;
}
.boost-nav-creator-thumb {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  object-fit: cover;
}
.boost-nav-creator-dot {
  position: absolute;
  bottom: -1px;
  right: -1px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--boost-success);
  border: 2px solid var(--boost-sidebar-bg);
}
.boost-nav-hidden-tag {
  margin-left: auto;
  font-size: 11px;
  color: var(--boost-text-3);
  opacity: 0.7;
}
/* Profile row — "Mi perfil" link + % badge + availability toggle on same line.
   Completeness shown as a background fill via linear-gradient on --cp-width. */
.boost-nav-profile-row {
  display: flex;
  align-items: center;
  gap: 0;
  position: relative;
  overflow: hidden;
}
.boost-nav-profile-row:not(.boost-nav-profile-complete) {
  background: linear-gradient(
    to right,
    var(--boost-cp-fill) var(--cp-width, 0%),
    transparent var(--cp-width, 0%)
  );
  transition: --cp-width 0.4s ease;
}
.boost-nav-profile-row .boost-nav-item {
  flex: 1;
  min-width: 0;
  margin-right: 0;
  border-radius: var(--boost-radius-xs);
  background: transparent;
}
/* Availability icon button — compact tower-broadcast toggle */
.boost-avail-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  border: none;
  border-radius: 0 var(--boost-radius-xs) 0 0;
  background: transparent;
  color: var(--boost-text-3);
  font-size: 14px;
  cursor: pointer;
  transition: all var(--boost-t-smooth);
  position: relative;
}
.boost-avail-btn:hover {
  color: var(--boost-text-1);
  background: var(--boost-sidebar-hover);
}
.boost-avail-btn.active {
  color: var(--boost-success);
  animation: avail-pulse 2s ease-in-out infinite;
}
.boost-avail-btn.active::after {
  content: '';
  position: absolute;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--boost-success);
  bottom: 4px;
  right: 4px;
  box-shadow: 0 0 6px var(--boost-success);
}
@keyframes avail-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.5; }
}
/* Active group state overrides for avail button */
.boost-sidebar .boost-nav-item-group.active .boost-avail-btn {
  color: rgba(255,255,255,0.6);
}
.boost-sidebar .boost-nav-item-group.active .boost-avail-btn.active {
  color: var(--boost-white);
}
.boost-sidebar .boost-nav-item-group.active .boost-avail-btn.active::after {
  background: var(--boost-white);
  box-shadow: 0 0 6px rgba(255,255,255,0.5);
}
/* Nav item group — wraps link + completeness bar as a single visual block */
.boost-nav-item-group {
  margin: 2px 12px;
  border-radius: var(--boost-radius-xs);
  border: 1px solid transparent;
  transition: all var(--boost-t-smooth);
}
.boost-nav-item-group .boost-nav-item {
  margin: 0;
  border: none;
  border-radius: var(--boost-radius-xs);
}
/* Completeness % badge — inline inside profile row */
.boost-nav-completeness-pct {
  font-size: 0.6rem;
  font-weight: 700;
  white-space: nowrap;
  flex-shrink: 0;
  padding: 2px 6px;
  border-radius: 8px;
  line-height: 1;
}
/* Completeness fill color tiers — used by both background gradient and % badge */
.boost-nav-profile-row[data-level="low"]  { --boost-cp-fill: color-mix(in srgb, var(--boost-danger) 15%, transparent); }
.boost-nav-profile-row[data-level="mid"]  { --boost-cp-fill: color-mix(in srgb, var(--boost-warning) 15%, transparent); }
.boost-nav-profile-row[data-level="high"] { --boost-cp-fill: color-mix(in srgb, var(--boost-success) 15%, transparent); }
.boost-nav-profile-row[data-level="low"]  .boost-nav-completeness-pct { color: var(--boost-danger); }
.boost-nav-profile-row[data-level="mid"]  .boost-nav-completeness-pct { color: var(--boost-warning); }
.boost-nav-profile-row[data-level="high"] .boost-nav-completeness-pct { color: var(--boost-success); }

/* Group hover/active: apply to the wrapper, not the inner <a> */
.boost-sidebar .boost-nav-item-group:hover {
  background: var(--boost-sidebar-hover);
  border-color: color-mix(in srgb, var(--boost-white) 50%, transparent);
  transform: translateX(4px);
}
.boost-sidebar .boost-nav-item-group:hover .boost-nav-item {
  background: none;
  border-color: transparent;
  transform: none;
}
.boost-sidebar .boost-nav-item-group.active {
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-hover));
  border-color: var(--boost-accent);
  box-shadow: 0 2px 12px rgba(var(--boost-accent-rgb), 0.35), inset 0 1px 0 var(--boost-shimmer);
}
.boost-sidebar .boost-nav-item-group.active .boost-nav-item {
  background: none;
  border-color: transparent;
  box-shadow: none;
  color: var(--boost-white);
  font-weight: 700;
}
.boost-sidebar .boost-nav-item-group.active .boost-nav-item::before {
  display: none;
}
.boost-sidebar .boost-nav-item-group.active .boost-nav-completeness-pct {
  color: color-mix(in srgb, var(--boost-white) 85%, transparent);
}
.boost-sidebar .boost-nav-item-group.active .boost-nav-profile-row:not(.boost-nav-profile-complete) {
  --boost-cp-fill: var(--boost-shimmer);
}
.boost-completeness-tooltip {
  display: none;
  position: fixed;
  z-index: 9999;
  width: 280px;
  background: var(--boost-white);
  border: 1px solid var(--boost-form-border);
  border-radius: var(--boost-radius);
  box-shadow: var(--boost-popover-shadow);
  padding: 16px;
}
.boost-completeness-tooltip-title {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--boost-text-1);
  margin-bottom: 2px;
}
.boost-completeness-tooltip-sub {
  font-size: 0.75rem;
  color: var(--boost-text-3);
  margin-bottom: 12px;
}
.boost-completeness-tooltip-list {
  list-style: none;
  padding: 0;
  margin: 0 0 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.boost-completeness-tooltip-list li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 0.8rem;
  color: var(--boost-text-2);
}
.boost-completeness-tooltip-list li.done {
  color: var(--boost-text-3);
}
.boost-completeness-tooltip-list li.done > i {
  color: var(--boost-success);
}
.boost-completeness-tooltip-list li:not(.done) > i {
  color: var(--boost-text-3);
}
.boost-completeness-tooltip-label {
  font-weight: 600;
}
.boost-completeness-tooltip-hint {
  font-size: 0.7rem;
  color: var(--boost-text-3);
  display: block;
}
/* Completeness trigger + panel — editor page */
.boost-cp-wrap {
  position: relative;
}
.boost-cp-trigger {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 10px 16px;
  background: linear-gradient(135deg, rgba(var(--boost-accent-rgb), 0.08), rgba(var(--boost-accent-rgb), 0.03));
  border: var(--boost-border-w) solid rgba(var(--boost-accent-rgb), 0.2);
  border-radius: 10px;
  cursor: pointer;
  transition: box-shadow 0.2s, border-radius 0.2s;
  color: var(--boost-text-1);
  font-family: inherit;
}
.boost-cp-trigger:hover {
  box-shadow: 0 0 0 3px rgba(var(--boost-accent-rgb), 0.12);
}
.boost-cp-trigger-open {
  border-radius: 10px 10px 0 0;
}
.boost-cp-trigger-bar {
  flex: 1;
  height: 6px;
  background: rgba(0, 0, 0, 0.08);
  border-radius: 3px;
  overflow: hidden;
}
.boost-cp-trigger-fill {
  width: var(--cp-progress, 0%);
  height: 100%;
  border-radius: 3px;
  transition: width 0.3s ease, background 0.3s ease;
}
.boost-cp-trigger-label {
  font-size: 0.82rem;
  font-weight: 600;
  white-space: nowrap;
}
.boost-cp-trigger-arrow {
  font-size: 0.7rem;
  color: var(--boost-text-3);
  transition: transform 0.2s;
}
.boost-cp-trigger-open .boost-cp-trigger-arrow {
  transform: rotate(90deg);
}
/* Trigger color tiers */
.boost-cp-trigger[data-level="low"] .boost-cp-trigger-fill { background: var(--boost-danger); }
.boost-cp-trigger[data-level="mid"] .boost-cp-trigger-fill { background: var(--boost-warning); }
.boost-cp-trigger[data-level="high"] .boost-cp-trigger-fill { background: var(--boost-success); }

/* Completeness panel — overlay dropdown below trigger */
.boost-cp-panel {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 480px;
  z-index: 20;
  background: var(--boost-content-bg);
  border: var(--boost-border-w) solid rgba(var(--boost-accent-rgb), 0.2);
  border-top: none;
  border-radius: 0 0 10px 10px;
  padding: 14px 16px 16px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
  animation: boostCpPanelSlide 0.2s ease;
}
.boost-cp-panel[hidden] { display: none; }
.boost-cp-panel-close {
  position: absolute;
  top: 8px;
  right: 8px;
  background: none;
  border: none;
  color: var(--boost-text-3);
  font-size: 0.9rem;
  padding: 4px 6px;
  cursor: pointer;
  border-radius: 6px;
  transition: color 0.15s, background 0.15s;
  line-height: 1;
}
.boost-cp-panel-close:hover {
  color: var(--boost-text-1);
  background: rgba(var(--boost-accent-rgb), 0.08);
}
.boost-cp-panel-sub {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--boost-accent);
  text-align: center;
  background: rgba(var(--boost-accent-rgb), 0.08);
  border: 1px solid rgba(var(--boost-accent-rgb), 0.15);
  border-radius: 8px;
  padding: 8px 14px;
  margin: 0 28px 14px 0;
}
.boost-cp-panel-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.boost-cp-panel-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  transition: background 0.15s;
}
.boost-cp-panel-item:not(.done) {
  cursor: pointer;
}
.boost-cp-panel-item:not(.done):hover {
  background: rgba(var(--boost-accent-rgb), 0.06);
}
.boost-cp-panel-item.done {
  opacity: 0.5;
}
.boost-cp-panel-item.done > i {
  color: var(--boost-success);
}
.boost-cp-panel-item:not(.done) > i {
  color: var(--boost-text-3);
}
.boost-cp-panel-item-text {
  flex: 1;
  min-width: 0;
}
.boost-cp-panel-item-label {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--boost-text-1);
}
.boost-cp-panel-item-hint {
  font-size: 0.75rem;
  color: var(--boost-text-3);
  display: block;
}
.boost-cp-panel-item-arrow {
  margin-left: auto;
  color: var(--boost-accent);
  font-size: 0.75rem;
}

/* Completeness glow animation — applied to target field */
@keyframes boostCpGlow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(var(--boost-accent-rgb), 0); }
  50% { box-shadow: 0 0 0 6px rgba(var(--boost-accent-rgb), 0.25); }
}
.boost-cp-highlight {
  animation: boostCpGlow 0.6s ease 2;
  border-radius: 8px;
}

/* Panel slide-down animation */
@keyframes boostCpPanelSlide {
  from { opacity: 0; transform: translateX(-50%) translateY(-8px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}

/* Sidebar tooltip clickeable items */
.boost-completeness-tooltip-list li.boost-cp-clickable {
  cursor: pointer;
  border-radius: 6px;
  padding: 4px 6px;
  margin: -4px -6px;
  transition: background 0.15s;
}
.boost-completeness-tooltip-list li.boost-cp-clickable:hover {
  background: rgba(var(--boost-accent-rgb), 0.06);
}

@media (max-width: 480px) {
  .boost-cp-trigger { padding: 8px 12px; gap: 8px; }
  .boost-cp-trigger-label { font-size: 0.75rem; }
  .boost-cp-panel { padding: 10px 12px 12px; }
  .boost-cp-panel-item { padding: 8px 10px; }
}

/* Completeness dot — inline indicator next to incomplete field labels */
.boost-cp-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--boost-warning);
  margin-left: 6px;
  vertical-align: middle;
  cursor: help;
}

.boost-sidebar .boost-nav-item:hover {
  background: var(--boost-sidebar-hover);
  border-color: rgba(255,255,255,0.5);
  color: var(--boost-text-1);
  transform: translateX(4px);
}

.boost-sidebar .boost-nav-item:hover i {
  background: rgba(var(--boost-accent-rgb), 0.12);
  border-color: rgba(var(--boost-accent-rgb), 0.25);
  color: var(--boost-accent);
}

.boost-sidebar .boost-nav-item.active {
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-hover));
  border-color: var(--boost-accent);
  color: var(--boost-white);
  font-weight: 700;
  box-shadow: 0 2px 12px rgba(var(--boost-accent-rgb), 0.35), inset 0 1px 0 var(--boost-shimmer);
}

.boost-sidebar .boost-nav-item.active i {
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
  border-color: transparent;
  color: var(--boost-white);
  box-shadow: 0 2px 8px rgba(var(--boost-accent-rgb), 0.4);
}

.boost-nav-item.active::before {
  content: '';
  position: absolute;
  left: -12px;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 20px;
  background: linear-gradient(180deg, var(--boost-accent), var(--boost-accent-end));
  border-radius: 0 3px 3px 0;
  box-shadow: 0 0 16px rgba(var(--boost-accent-rgb), 0.6);
}

.boost-nav-item i {
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  background: rgba(255,255,255,0.35);
  border: 1px solid rgba(255,255,255,0.25);
  color: var(--boost-text-1);
  font-size: 11px;
  flex-shrink: 0;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}

/* Compact icon row — messages, calls, notifications */
.boost-nav-compact-row {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin: 4px 12px;
  padding: 5px 8px;
  background: rgba(255,255,255,0.22);
  border-radius: var(--boost-radius-sm);
  border: 1px solid rgba(255,255,255,0.12);
  border-top: 1px solid rgba(255,255,255,0.2);
}
.boost-nav-compact {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255,255,255,0.5);
  border: 1px solid rgba(255,255,255,0.35);
  color: var(--boost-text-2);
  font-size: 12px;
  transition: all var(--boost-t-smooth);
  text-decoration: none;
}
.boost-nav-compact:hover {
  background: var(--boost-sidebar-hover);
  border-color: rgba(var(--boost-accent-rgb), 0.3);
  color: var(--boost-accent);
  transform: scale(1.08);
}
.boost-nav-compact.active {
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-hover));
  border-color: var(--boost-accent);
  color: var(--boost-white);
  box-shadow: 0 2px 8px rgba(var(--boost-accent-rgb), 0.3);
}
.boost-nav-compact .boost-nav-badge {
  position: absolute;
  top: -4px;
  right: -4px;
}

/* ---- Fans zone overrides — pink accent for active/hover states ---- */
.boost-nav-fans-zone .boost-nav-item.active {
  background: linear-gradient(135deg, var(--boost-pink), var(--boost-danger));
  border-color: transparent;
  color: var(--boost-white);
  box-shadow: 0 2px 12px rgba(var(--boost-pink-rgb), 0.35), inset 0 1px 0 var(--boost-shimmer);
}
.boost-nav-fans-zone .boost-nav-item.active i {
  background: linear-gradient(135deg, var(--boost-pink), var(--boost-danger));
  border-color: transparent;
  color: var(--boost-white);
  box-shadow: 0 2px 8px rgba(var(--boost-pink-rgb), 0.4);
}
.boost-nav-fans-zone .boost-nav-item:hover:not(.active) {
  border-color: rgba(var(--boost-pink-rgb), 0.15);
  background: rgba(var(--boost-pink-rgb), 0.06);
}
.boost-nav-fans-zone .boost-nav-item:hover:not(.active) i {
  background: rgba(var(--boost-pink-rgb), 0.12);
  border-color: rgba(var(--boost-pink-rgb), 0.25);
  color: var(--boost-pink);
}
.boost-nav-fans-zone .boost-nav-item.active::before {
  background: linear-gradient(180deg, var(--boost-pink), var(--boost-danger));
  box-shadow: 0 0 16px rgba(var(--boost-pink-rgb), 0.6);
}
.boost-nav-fans-zone .boost-nav-compact.active {
  background: linear-gradient(135deg, var(--boost-pink), var(--boost-danger));
  border-color: transparent;
  color: var(--boost-white);
  box-shadow: 0 2px 8px rgba(var(--boost-pink-rgb), 0.3);
}
.boost-nav-fans-zone .boost-nav-compact:hover:not(.active) {
  border-color: rgba(var(--boost-pink-rgb), 0.2);
  color: var(--boost-pink);
}
.boost-nav-fans-zone .boost-nav-item-group.active {
  background: linear-gradient(135deg, var(--boost-pink), var(--boost-danger));
  border-color: transparent;
  box-shadow: 0 2px 12px rgba(var(--boost-pink-rgb), 0.35), inset 0 1px 0 var(--boost-shimmer);
}
/* ---- AI zone overrides — amber accent for active/hover states ---- */

/* Sidebar footer / user */
.boost-sidebar-footer {
  flex-shrink: 0;
  margin-top: auto;
  position: relative;
  /* Por encima de .boost-sidebar-legal (mismo 50, siguiente en el DOM): sin esto,
     el popup .boost-user-menu (z-index:200) queda atrapado en el stacking context
     de este contenedor y el "© Mitik Boost" del pie legal lo tapa igualmente al
     empatar z-index con el padre — el 200 del hijo no "escapa" al contenedor. */
  z-index: 51;
}
.boost-sidebar-footer-divider {
  height: 1px;
  margin: 0 14px;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.08) 30%, rgba(0,0,0,0.08) 70%, transparent);
}

.boost-sidebar-legal {
  flex-shrink: 0;
  position: relative;
  padding: 0 12px 8px;
  z-index: 50;
}

/* Al abrir, por encima de .boost-sidebar-footer (z-index: 51): el menú abre
   hacia arriba (bottom: 100%) y sin esto pinta POR DEBAJO de la tarjeta de
   usuario (el z-index: 200 del menú no "escapa" a este contenedor z-50).
   Solo con .open para no invertir el orden deliberado del comentario de
   .boost-sidebar-footer (el popup de usuario debe seguir sobre la marca).
   Los toggles JS ya garantizan exclusión mutua entre ambos popups. */
.boost-sidebar-legal.open {
  z-index: 52;
}

.boost-sidebar-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  text-align: center;
  font-size: 10px;
  color: var(--boost-text-3);
  padding: 4px 12px;
  margin: 0;
  background: none;
  border: none;
  cursor: pointer;
  transition: color var(--boost-transition);
}

.boost-sidebar-brand:hover {
  color: var(--boost-text-2);
}

.boost-legal-chevron {
  font-size: 8px;
  transition: transform 0.2s;
}

.boost-sidebar-legal.open .boost-legal-chevron {
  transform: rotate(180deg);
}

.boost-legal-menu {
  position: absolute;
  bottom: calc(100% + 4px);
  left: 10px;
  right: 10px;
  background: var(--boost-popover-bg);
  border: 1px solid var(--boost-border);
  border-radius: 10px;
  box-shadow: 0 -8px 32px rgba(0,0,0,0.12);
  z-index: 200;
  padding: 6px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity 0.18s, transform 0.18s, visibility 0.18s;
}

.boost-sidebar-legal.open .boost-legal-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.boost-legal-menu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: var(--boost-radius-xs);
  color: var(--boost-text-2);
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
  transition: background var(--boost-transition), color var(--boost-transition);
}

.boost-legal-menu-item:hover {
  background: rgba(0,0,0,0.05);
  color: var(--boost-text-1);
}

.boost-legal-menu-item i {
  width: 16px;
  text-align: center;
  font-size: 13px;
  color: var(--boost-text-3);
}


.boost-sidebar-user {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  transition: background var(--boost-transition);
  cursor: pointer;
  user-select: none;
}

.boost-sidebar-user:hover {
  background: rgba(255,255,255,0.3);
}

.boost-sidebar-avatar {
  width: 30px;
  height: 30px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--boost-accent) 0%, var(--boost-accent-end) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--boost-white);
  font-size: 12px;
  font-weight: 700;
  flex-shrink: 0;
  border: 2px solid rgba(255,255,255,0.25);
  box-shadow: 0 0 16px rgba(var(--boost-accent-rgb), 0.25);
  position: relative;
}

.boost-sidebar-avatar::after {
  content: '';
  position: absolute;
  bottom: -2px;
  right: -2px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--boost-success);
  border: 2px solid rgba(255,255,255,0.8);
  animation: boostOnlinePulse 2s ease-in-out infinite;
}

.boost-sidebar-avatar-img {
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
}

.boost-avatar-picker {
  display: grid;
  grid-template-columns: repeat(auto-fill, 48px);
  justify-content: center;
  gap: 6px;
  padding: 8px 10px;
}

.boost-avatar-picker[hidden] {
  display: none;
}

.boost-avatar-option {
  width: 48px;
  height: 48px;
  border-radius: var(--boost-radius-sm);
  border: 2px solid transparent;
  background: var(--boost-sidebar-hover);
  cursor: pointer;
  padding: 0;
  overflow: hidden;
  transition: border-color var(--boost-transition), transform var(--boost-transition);
  display: flex;
  align-items: center;
  justify-content: center;
}

.boost-avatar-option img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}

.boost-avatar-option:hover {
  border-color: var(--boost-accent);
  transform: scale(1.08);
}

.boost-avatar-option.active {
  border-color: var(--boost-accent);
  box-shadow: 0 0 10px rgba(var(--boost-accent-rgb), 0.35);
}

.boost-avatar-option-reset {
  background: linear-gradient(135deg, var(--boost-accent) 0%, var(--boost-accent-end) 100%);
  color: var(--boost-white);
  font-size: 0.69rem;
  font-weight: 700;
}

.boost-sidebar-user-info {
  flex: 1;
  min-width: 0;
}

.boost-sidebar-user-meta {
  font-size: 11px;
  color: var(--boost-text-3);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}


.boost-sidebar-user-chevron {
  font-size: 10px;
  color: var(--boost-text-3);
  transition: transform 0.2s;
  flex-shrink: 0;
}

.boost-sidebar-footer.open .boost-sidebar-user-chevron {
  transform: rotate(180deg);
}

/* ---- User context menu (popup above trigger) ---- */
.boost-user-menu {
  position: absolute;
  bottom: calc(100% + 6px);
  left: 6px;
  right: 6px;
  background: var(--boost-popover-bg);
  border: 1px solid var(--boost-border);
  border-radius: var(--boost-radius-sm);
  box-shadow: 0 -12px 40px rgba(0,0,0,0.14), 0 0 0 1px rgba(0,0,0,0.04);
  z-index: 200;
  padding: 6px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.2s, transform 0.2s, visibility 0.2s;
}

.boost-sidebar-footer.open .boost-user-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.boost-user-menu-balance {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  background: rgba(var(--boost-accent-rgb), 0.1);
  border-radius: var(--boost-radius-xs);
  margin-bottom: 4px;
}

.boost-user-menu-balance-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--boost-text-2);
}

.boost-user-menu-balance-amount {
  font-size: 18px;
  font-weight: 800;
  color: var(--boost-accent-hover);
  letter-spacing: -0.02em;
}

.boost-sidebar-premium-badge {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: linear-gradient(135deg, rgba(var(--boost-accent-rgb), 0.15), rgba(var(--boost-accent-rgb), 0.05));
  border: 1px solid rgba(var(--boost-accent-rgb), 0.25);
  border-radius: var(--boost-radius-xs);
  font-size: 12px;
  font-weight: 700;
  color: var(--boost-accent);
  margin-bottom: 4px;
}

.boost-user-menu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: var(--boost-radius-xs);
  color: var(--boost-text-2);
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
  transition: background var(--boost-transition), color var(--boost-transition);
  background: none;
  border: none;
  width: 100%;
  cursor: pointer;
}

.boost-user-menu-item:hover {
  background: rgba(0,0,0,0.05);
  color: var(--boost-text-1);
}

.boost-user-menu-item i {
  width: 16px;
  text-align: center;
  font-size: 13px;
}

.boost-user-menu-item-danger {
  color: var(--boost-danger);
}

.boost-user-menu-item-danger:hover {
  background: rgba(var(--boost-danger-rgb), 0.08);
  color: var(--boost-danger);
}

.boost-user-menu-divider {
  height: 1px;
  background: rgba(0,0,0,0.08);
  margin: 4px 0;
}

/* ---- Public sidebar (SEO pages) ---- */
.boost-sidebar-footer .boost-btn-block {
  display: block;
  width: 100%;
  max-width: none;
  text-align: center;
  margin-bottom: 8px;
}

.boost-sidebar-footer .boost-btn-block:last-child {
  margin-bottom: 0;
}

/* ---- Sidebar overlay (mobile) ---- */
.boost-sidebar-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: var(--boost-modal-backdrop);
  z-index: 90;
}

.boost-sidebar-overlay.open { display: block; }

/* ---- Sidebar responsive: short laptops ---- */
@media (max-height: 720px) {
  .boost-sidebar .boost-sidebar-cta { padding: 8px 12px; margin: 14px 10px 4px; font-size: 12px; }
  .boost-sidebar .boost-nav-item { padding: 5px 8px; font-size: 12px; }
  .boost-nav-zone { margin: 4px 6px; padding: 5px 5px; }
  .boost-nav-zone-header { padding: 3px 6px 4px; }
  .boost-nav-compact-row .boost-nav-compact { padding: 4px; }
  .boost-sidebar-user { padding: 8px 10px; }
  .boost-user-menu-item { padding: 6px 10px; font-size: 12px; }
  .boost-user-menu-balance { padding: 8px 10px; }
  .boost-user-menu-balance-amount { font-size: 16px; }
}

/* ---- Accessibility: reduced motion ---- */
@media (prefers-reduced-motion: reduce) {
  .boost-sidebar,
  .boost-sidebar .boost-sidebar-cta { animation: none; }
}

/* ============================================================================
   MAIN AREA + TOPBAR
   ============================================================================ */
.boost-main-area {
  flex: 1;
  margin-left: var(--boost-sidebar-w);
  display: flex;
  flex-direction: column;
  min-height: var(--boost-vvh, 100vh);
  min-width: 0;
  background: var(--boost-content-bg);
  position: relative;
}

.boost-topbar {
  background: var(--boost-content-bg);
  border-bottom: none;
  padding: 0 32px;
  height: var(--boost-topbar-h);
  display: flex;
  align-items: center;
  gap: 16px;
  position: sticky;
  top: 0;
  z-index: 50;
}

.boost-topbar-hamburger {
  display: none;
  background: none;
  border: none;
  color: var(--boost-text-2);
  font-size: 18px;
  cursor: pointer;
  padding: 4px;
}

/* Brand badge en topbar — visible siempre, icono + gradiente según contexto */
.boost-topbar-brand {
  display: inline-flex;
  font-size: 0.95rem;
}

.boost-topbar-inner {
  display: flex;
  align-items: center;
  gap: 16px;
  max-width: 1200px;
  width: 100%;
}

.boost-topbar-right {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 12px;
}

.boost-topbar-balance {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  font-size: 13px;
  font-weight: 700;
  color: var(--boost-text-1);
  background: rgba(0, 0, 0, 0.04);
  border: var(--boost-border-w) solid var(--boost-card-border);
  border-radius: var(--boost-radius-sm);
  white-space: nowrap;
  text-decoration: none;
  transition: background var(--boost-transition), color var(--boost-transition);
}

.boost-topbar-balance:hover {
  background: rgba(0, 0, 0, 0.08);
  color: var(--boost-accent);
}

.boost-topbar-balance i {
  font-size: 12px;
  color: var(--boost-accent);
}

.boost-topbar-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(0,0,0,0.04);
  border: var(--boost-border-w) solid var(--boost-card-border);
  color: var(--boost-text-2);
  font-size: 14px;
  cursor: pointer;
  transition: background var(--boost-transition), color var(--boost-transition);
  text-decoration: none;
}

.boost-topbar-btn:hover {
  background: rgba(0,0,0,0.08);
  color: var(--boost-text-1);
}

/* ---- Minimal layout for ad landing pages (no sidebar/topbar/tabs) ---- */
.boost-minimal-topbar {
  position: sticky;
  top: 0;
  z-index: var(--boost-z-topbar);
  background: var(--boost-bg-2);
  border-bottom: 1px solid var(--boost-border);
  height: var(--boost-topbar-h);
  display: flex;
  align-items: center;
  padding: 0 20px;
}
.boost-minimal-topbar-inner {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: var(--boost-landing-max);
  margin: 0 auto;
}
.boost-body-minimal {
  --boost-topbar-h: 67px;
}
.boost-body-minimal .boost-main-minimal {
  min-height: var(--boost-vvh, 100vh);
  max-width: var(--boost-landing-max);
  margin: 0 auto;
  padding: 40px 20px 0;
}

/* ---- Auth pages inside public sidebar layout ---- */
.boost-body-auth .boost-main {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: calc(var(--boost-vvh, 100vh) - var(--boost-topbar-h));
  position: relative;
  overflow: hidden;
}

/* Decorative gradient blobs behind the auth card */
.boost-body-auth .boost-main::before,
.boost-body-auth .boost-main::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  filter: blur(100px);
  opacity: 0.35;
  pointer-events: none;
  z-index: 0;
}
.boost-body-auth .boost-main::before {
  width: 420px;
  height: 420px;
  background: var(--boost-accent);
  top: -120px;
  right: -100px;
}
.boost-body-auth .boost-main::after {
  width: 350px;
  height: 350px;
  background: var(--boost-success);
  bottom: -80px;
  left: -80px;
}

/* ---- Content area ---- */
.boost-main {
  flex: 1;
  padding: 32px;
  max-width: 1200px;
  width: 100%;
  min-width: 0;
  position: relative;
  z-index: 1;
  overflow-wrap: break-word;
  word-break: break-word;
}

/* Entrance animations — staggered fade-up for content sections */
@keyframes boostFadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

.boost-main > *:not(.boost-creator-lightbox):not(.boost-modal-overlay) {
  animation: boostFadeUp 0.55s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.boost-main > :nth-child(2) { animation-delay: 0.06s; }
.boost-main > :nth-child(3) { animation-delay: 0.12s; }
.boost-main > :nth-child(4) { animation-delay: 0.15s; }
.boost-main > :nth-child(5) { animation-delay: 0.18s; }
.boost-main > :nth-child(n+6) { animation-delay: 0.22s; }

/* Skip fade-up on containers with position:fixed descendants
   (any computed transform creates a containing block, breaking fixed positioning) */

@media (prefers-reduced-motion: reduce) {
  .boost-main > * { animation: none; }
  .boost-sidebar-logo-icon { animation: none; }
  .boost-sidebar-avatar::after { animation: none; }
  .boost-bg-blob { animation: none; }
  .boost-btn-primary::after, .boost-btn-accent::after { animation: none; }
  .boost-avatar-option { transition: none; }
  .boost-avatar-option:hover { transform: none; }
}

@keyframes boostLogoPulse {
  0%, 100% { box-shadow: 0 4px 20px rgba(var(--boost-accent-rgb), 0.4); }
  50% { box-shadow: 0 4px 28px rgba(var(--boost-accent-rgb), 0.6), 0 0 48px rgba(var(--boost-accent-rgb), 0.15); }
}

@keyframes boostShimmerCta {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

@keyframes boostOnlinePulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(var(--boost-success-rgb), 0.5); }
  50% { box-shadow: 0 0 0 4px rgba(var(--boost-success-rgb), 0); }
}

@keyframes boostBlobFloat {
  0%   { transform: translate(0, 0) scale(1); }
  25%  { transform: translate(40px, -50px) scale(1.06); }
  50%  { transform: translate(-30px, 30px) scale(0.94); }
  75%  { transform: translate(20px, -20px) scale(1.03); }
  100% { transform: translate(-10px, 15px) scale(0.98); }
}

.boost-bg-blob {
  position: fixed;
  border-radius: 50%;
  filter: blur(100px);
  opacity: 0.55;
  animation: boostBlobFloat 20s ease-in-out infinite alternate;
  pointer-events: none;
  z-index: 0;
  will-change: transform;
}

.boost-bg-blob-1 {
  width: 600px; height: 600px;
  background: rgba(var(--boost-accent-rgb), 0.18);
  top: -15%; right: 5%;
  animation-duration: 24s;
}

.boost-bg-blob-2 {
  width: 500px; height: 500px;
  background: rgba(var(--violet-rgb), 0.14);
  top: 35%; left: -8%;
  animation-duration: 20s;
  animation-delay: -6s;
}

.boost-bg-blob-3 {
  width: 400px; height: 400px;
  background: rgba(var(--boost-success-rgb), 0.1);
  bottom: -10%; right: 20%;
  animation-duration: 26s;
  animation-delay: -12s;
}

.boost-bg-blob-4 {
  width: 300px; height: 300px;
  background: rgba(var(--boost-accent-rgb), 0.1);
  top: 60%; right: 60%;
  animation-duration: 22s;
  animation-delay: -3s;
}

.boost-bg-dots {
  position: fixed;
  inset: 0;
  background-image: radial-gradient(circle, rgba(0,0,0,0.04) 1px, transparent 1px);
  background-size: 24px 24px;
  pointer-events: none;
  z-index: 0;
}

/* ============================================================================
   GUIDES INSIDE BOOST PANEL — Light-theme overrides
   guides.css targets dark bg; these adapt to boost glassmorphism.
   All values via --boost-* variables, zero hardcoded colors.
   ============================================================================ */

/* Container — .boost-main provides its own padding */
.boost-main .guias-page { padding: 0; max-width: none; }

/* ---- Shared glass pattern ---- */
.boost-main .guia-card,
.boost-main .guias-intro {
  background: var(--boost-card-bg);
  border: var(--boost-border-w) solid var(--boost-card-border);
  border-radius: var(--boost-radius);
  box-shadow: var(--boost-glass-shadow);
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
}

/* Blog post in boost: transparent, not a card — header stands alone */
.boost-main .blog-post {
  margin-top: 0;
  margin-bottom: 0;
  max-width: 900px;
}
.boost-main .faq-item,
.boost-main .guia-feature {
  background: var(--boost-card-bg);
  border: var(--boost-border-w) solid var(--boost-card-border);
  border-radius: var(--boost-radius-sm);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* ---- Guide cards ---- */
.boost-main .guia-card { transition: all var(--boost-t-smooth); }
.boost-main .guia-card:hover {
  border-color: rgba(var(--boost-accent-rgb), 0.3);
  box-shadow: var(--boost-glass-shadow-hover);
  transform: translateY(-3px);
}
.boost-main .guia-content h2,
.boost-main .guia-content h3 { color: var(--boost-text-1); }
.boost-main .guia-content p { color: var(--boost-text-2); }
.boost-main .guia-time { color: var(--boost-text-3); }

/* Tag badges — existing tokens for light-bg contrast */
.boost-main .guia-tag.tag-essential { color: var(--violet); background: rgba(var(--boost-info-rgb), 0.08); }
.boost-main .guia-tag.tag-popular { color: var(--boost-warning); background: rgba(var(--boost-warning-rgb), 0.08); }
.boost-main .guia-tag.tag-advanced { color: var(--boost-success-bold); background: rgba(var(--boost-success-rgb), 0.08); }
.boost-main .guia-tag.tag-beginner { color: var(--boost-info); background: rgba(var(--boost-info-rgb), 0.08); }
.boost-main .guia-tag.tag-tips { color: var(--boost-pink); background: rgba(var(--boost-danger-rgb), 0.08); }

/* Headers & text */
.boost-main .guias-header h1,
.boost-main .section-header h2,
.boost-main .section-header,
.boost-main .guia-section h2,
.boost-main .faq-item h3,
.boost-main .guia-feature h4 { color: var(--boost-text-1); }
.boost-main .guias-header p,
.boost-main .guia-feature p { color: var(--boost-text-2); }
.boost-main .guias-intro p,
.boost-main .faq-item p,
.boost-main .guia-checklist li { color: var(--boost-text-2); }
.boost-main .guia-feature i,
.boost-main .guia-checklist li i { color: var(--boost-accent); }

/* Separators */
.boost-main .guias-faq,
.boost-main .guia-footer,
.boost-main .guia-intro { border-color: var(--boost-border-subtle); }
.boost-main .guia-footer { color: var(--boost-text-3); }

/* Screenshots */
.boost-main .guia-screenshot img {
  box-shadow: var(--boost-glass-shadow);
  border-color: var(--boost-border-soft);
}

/* ---- Article: blog post ---- */
.boost-main .blog-header {
  margin-bottom: 32px;
  padding: 28px 32px;
  background: var(--boost-card-bg);
  border: var(--boost-border-w) solid var(--boost-card-border);
  border-radius: var(--boost-radius);
  box-shadow: var(--boost-glass-shadow);
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
}
.boost-main .blog-header h1 { color: var(--boost-text-1); }
.boost-main .blog-meta { color: var(--boost-text-3); }

.boost-main .blog-content,
.boost-main .blog-content p,
.boost-main .blog-content ul,
.boost-main .blog-content ol { color: var(--boost-text-2); }

.boost-main .blog-content h2 {
  color: var(--boost-heading-accent);
  border-left-color: var(--boost-accent);
}
.boost-main .blog-content h3 {
  color: var(--boost-text-1);
  border-left-color: rgba(var(--boost-accent-rgb), 0.4);
}
.boost-main .blog-content strong { color: var(--boost-text-1); }
.boost-main .blog-highlight strong,
.boost-main .blog-warning strong { color: var(--boost-heading-accent); }

.boost-main .blog-content a { color: var(--boost-accent); text-decoration-color: rgba(var(--boost-accent-rgb), 0.3); }
.boost-main .blog-content a:hover { color: var(--boost-accent-hover); text-decoration-color: var(--boost-accent-hover); }
.boost-main .blog-content .boost-btn-primary,
.boost-main .blog-content .boost-btn-primary:hover,
.boost-main .blog-content .boost-btn-accent,
.boost-main .blog-content .boost-btn-accent:hover { color: var(--boost-white); text-decoration: none; }

/* Tabs */
.boost-main .platform-tab span:nth-child(2) { color: var(--boost-text-1); }

/* Highlight & warning boxes */
.boost-main .blog-highlight {
  background: rgba(var(--boost-accent-rgb), 0.05);
  border: 1px solid rgba(var(--boost-accent-rgb), 0.15);
}
.boost-main .blog-highlight.success {
  background: rgba(var(--boost-success-rgb), 0.06);
  border-color: rgba(var(--boost-success-rgb), 0.15);
}
.boost-main .blog-warning {
  background: rgba(var(--boost-warning-rgb), 0.06);
  border: 1px solid rgba(var(--boost-warning-rgb), 0.15);
}
.boost-main .blog-highlight p,
.boost-main .blog-highlight ul,
.boost-main .blog-warning p,
.boost-main .blog-warning ul { color: var(--boost-text-2); }

/* TOC */
.boost-main .blog-toc {
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-border-subtle);
  border-radius: var(--boost-radius-sm);
}
.boost-main .blog-toc-title { color: var(--boost-text-1); }
.boost-main .blog-toc-list a { color: var(--boost-text-3); }
.boost-main .blog-toc-list a:hover,
.boost-main .blog-toc-list a::before { color: var(--boost-accent); }

/* Tables */
.boost-main .blog-table { border-radius: var(--boost-radius-xs); overflow: hidden; }
.boost-main .blog-table th {
  background: rgba(var(--boost-accent-rgb), 0.08);
  color: var(--boost-text-1);
  border-bottom: 2px solid rgba(var(--boost-accent-rgb), 0.15);
}
.boost-main .blog-table td {
  color: var(--boost-text-2);
  border-bottom: 1px solid var(--boost-border-subtle);
}
.boost-main .blog-table tr:hover td { background: rgba(var(--boost-accent-rgb), 0.03); }

/* Code blocks */
.boost-main .blog-code,
.boost-main .blog-pre,
.boost-main .code-block {
  background: var(--boost-bg-muted);
  border: 1px solid var(--boost-border-subtle);
  border-radius: var(--boost-radius-xs);
  color: var(--boost-text-2);
}

/* Config/toggle/notification items */
.boost-main .notification-type,
.boost-main .toggle-item,
.boost-main .guia-config-item,
.boost-main .notification-block {
  background: var(--boost-bg-subtle);
  border: 1px solid var(--boost-border-subtle);
  border-radius: var(--boost-radius-xs);
}

/* .btn inside boost panel → inherits boost-btn design system */
.boost-main .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 18px;
  border-radius: var(--boost-radius-sm);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  border: 1px solid transparent;
  transition: background var(--boost-transition), border-color var(--boost-transition), transform var(--boost-transition), box-shadow var(--boost-transition);
}
.boost-main .btn-primary {
  background: var(--boost-accent);
  color: var(--boost-white);
}
.boost-main .btn-primary:hover {
  background: var(--boost-accent-hover);
  transform: translateY(-1px);
  box-shadow: 0 4px 20px rgba(var(--boost-accent-rgb), 0.3);
}
.boost-main .btn-lg {
  padding: 14px 32px;
  font-size: 15px;
  border-radius: var(--boost-radius);
}

/* CTA — gradient bg, button inverts to white for contrast */
.boost-main .guias-cta,
.boost-main .blog-cta {
  background: linear-gradient(135deg, var(--boost-accent) 0%, var(--boost-sidebar-bg) 100%);
  border: none;
}
.boost-main .guias-cta h3,
.boost-main .blog-cta h3 { color: var(--boost-white); }
.boost-main .guias-cta p,
.boost-main .blog-cta p { color: rgba(255,255,255,0.9); }
.boost-main .blog-cta-note { color: rgba(255,255,255,0.7); }
.boost-main .guias-cta .btn,
.boost-main .blog-cta .btn {
  background: var(--boost-white);
  color: var(--boost-sidebar-bg);
}
.boost-main .guias-cta .btn:hover,
.boost-main .blog-cta .btn:hover {
  background: var(--boost-text-1);
  color: var(--boost-white);
  box-shadow: var(--boost-glass-shadow-hover);
}

/* Back link */
.boost-main .back-link-home {
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-border-soft);
  color: var(--boost-text-2);
}
.boost-main .back-link-home:hover {
  background: var(--boost-accent);
  border-color: var(--boost-accent);
  color: var(--boost-white);
}

/* Status text */
.boost-main .text-status-success { color: var(--boost-success); }
.boost-main .text-status-warning { color: var(--boost-warning); }
.boost-main .text-status-error { color: var(--boost-danger); }
.boost-main .blog-testimonial { color: var(--boost-accent); }

/* ---- Platform name highlights (auto-applied by JS) ---- */
.boost-hl { font-weight: inherit; }
.boost-hl-instagram { color: var(--platform-instagram); }
.boost-hl-tiktok { color: var(--platform-tiktok); }
.boost-hl-youtube { color: var(--platform-youtube); }
.boost-hl-facebook { color: var(--platform-facebook); }
.boost-hl-spotify { color: var(--platform-spotify); }
.boost-hl-twitter { color: var(--platform-facebook); }
.boost-hl-telegram { color: var(--platform-telegram); }
.boost-hl-discord { color: var(--platform-discord); }
.boost-hl-twitch { color: var(--platform-twitch); }
.boost-hl-linkedin { color: var(--platform-linkedin); }
.boost-hl-pinterest { color: var(--platform-pinterest); }
.boost-hl-snapchat { color: var(--boost-warning); }
.boost-hl-soundcloud { color: var(--platform-soundcloud); }
.boost-hl-reddit { color: var(--platform-reddit); }
.boost-hl-kick { color: var(--platform-kick); }
.boost-hl-rumble { color: var(--platform-rumble); }
.boost-hl-trustpilot { color: var(--platform-trustpilot); }
.boost-hl-threads { color: var(--boost-text-1); }
.boost-hl-clubhouse { color: var(--boost-warning); }
.boost-hl-bluesky { color: var(--platform-bluesky); }
.boost-hl-google { color: var(--boost-info); }
.boost-hl-shopee { color: var(--platform-shopee); }
.boost-hl-trovo { color: var(--platform-trovo); }
.boost-hl-applemusic { color: var(--platform-applemusic); }
.boost-hl-accent { color: var(--boost-accent); font-weight: 700; }


/* ============================================================================
   PAGE COMPONENTS
   ============================================================================ */

/* ---- Page header ---- */
.boost-page-header {
  margin-bottom: 20px;
  text-align: center;
}

.boost-page-header h1 {
  font-size: 22px;
  font-weight: 700;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.boost-page-header p {
  color: var(--boost-text-2);
  margin: 4px 0 0;
  font-size: 13px;
}

.boost-page-header-inline {
  display: flex;
  align-items: baseline;
  gap: 12px;
}

.boost-page-header-inline p {
  margin: 0;
  color: var(--boost-text-3);
  font-size: 12px;
  margin-left: auto;
}

/* ---- Legal pages ---- */
.boost-legal-page { max-width: 900px; margin: 0 auto; padding: 0 16px 60px; }
.boost-legal-content { color: var(--boost-text-2); line-height: 1.7; font-size: 14px; }
.boost-legal-section { margin-top: 32px; }
.boost-legal-section h2 { font-size: 18px; color: var(--boost-text-1); margin-bottom: 12px; font-weight: 600; }
.boost-legal-section h3 { font-size: 15px; color: var(--boost-text-1); margin: 20px 0 8px; font-weight: 600; }
.boost-legal-section p { margin-bottom: 12px; }
.boost-legal-section ul, .boost-legal-section ol { margin: 8px 0 16px 20px; }
.boost-legal-section li { margin-bottom: 6px; }
.boost-legal-section a { color: var(--boost-accent); text-decoration: underline; }
.boost-legal-section strong { color: var(--boost-text-1); }
.boost-legal-table { width: 100%; border-collapse: collapse; margin: 16px 0; font-size: 13px; }
.boost-legal-table th, .boost-legal-table td { padding: 10px 12px; border: 1px solid var(--boost-border); text-align: left; }
.boost-legal-table th { background: var(--boost-bg-2); color: var(--boost-text-1); font-weight: 600; }
@media (max-width: 480px) {
  .boost-legal-section h2 { font-size: 16px; }
  .boost-legal-content { font-size: 13px; }
}

/* ---- Section ---- */
.boost-section {
  margin-bottom: 20px;
}

.boost-admin-nav + .boost-section {
  margin-top: 4px;
}

.boost-section h2 {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.boost-section h2 i {
  color: var(--boost-accent);
}

.boost-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}

.boost-collapsible-header {
  display: flex;
  align-items: center;
  cursor: pointer;
  user-select: none;
  border-radius: 12px;
  padding: 12px 16px;
  transition: background 0.2s;
}
.boost-collapsible-header:hover {
  background: var(--boost-content-bg-light);
}
.boost-collapsible-header[aria-expanded="true"] {
  margin-bottom: 16px;
}
.boost-collapsible-header[aria-expanded="false"] {
  margin-bottom: 0;
}
.boost-collapsible-chevron {
  font-size: 14px;
  color: var(--boost-text-3);
  transition: transform 0.3s;
}
.boost-collapsible-header[aria-expanded="true"] .boost-collapsible-chevron {
  transform: rotate(180deg);
}
/* .boost-body de más aquí (0,3,0) — sin él empataría en especificidad
   (0,2,0) con la regla base de abajo una vez prefijada, y el orden de
   aparición en el archivo decidiría el ganador en vez de la intención. */
.boost-body .boost-collapsible-header .boost-section-title {
  margin-bottom: 0;
}

/* Prefijo .boost-body: mismo motivo que .boost-packages-title — sin él
   pierde frente al reset ".boost-body h1...h6 { margin-bottom: 0 }". */
.boost-body .boost-section-title {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 18px;
  display: flex;
  align-items: center;
  gap: 8px;
}
/* When a section-title follows any sibling (not first child), add breathing room above */
* + .boost-section-title {
  margin-top: 24px;
}

.boost-section-title i {
  color: var(--boost-accent);
}

.boost-t-accent { color: var(--boost-accent); }
.boost-hero-card-featured .boost-t-accent { color: var(--boost-accent-light); }

/* ============================================================================
   DASHBOARD: HERO GRID
   ============================================================================ */
.boost-hero-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 20px;
  align-items: stretch;
}

.boost-hero-card {
  background: var(--boost-card-bg);
  border: var(--boost-border-w) solid var(--boost-card-border);
  border-radius: var(--boost-radius);
  padding: 24px 22px;
  display: flex;
  align-items: center;
  gap: 16px;
  box-shadow: var(--boost-glass-shadow);
  transition: all var(--boost-t-smooth);
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
  position: relative;
  overflow: hidden;
}

.boost-hero-card:hover {
  border-color: rgba(var(--boost-accent-rgb), 0.2);
  transform: translateY(-4px);
  box-shadow: var(--boost-glass-shadow-hover);
}

.boost-hero-card:hover .boost-hero-icon { transform: scale(1.08); }

.boost-hero-card-featured {
  background: linear-gradient(135deg, var(--boost-featured-bg-start) 0%, var(--boost-featured-bg-end) 100%);
  border-color: rgba(var(--boost-accent-rgb), 0.15);
  color: var(--boost-white);
  box-shadow: var(--boost-glass-shadow), 0 0 48px -8px rgba(var(--boost-accent-rgb), 0.18);
}

.boost-hero-card-featured:hover {
  border-color: rgba(var(--boost-accent-rgb), 0.3);
  box-shadow: var(--boost-glass-shadow-hover), 0 0 64px -4px rgba(var(--boost-accent-rgb), 0.25);
  transform: translateY(-5px);
}

.boost-hero-card-featured .boost-hero-label { color: var(--boost-heading-accent-light); }
.boost-hero-card-featured .boost-hero-icon { background: rgba(var(--boost-accent-rgb), 0.12); color: var(--boost-accent-mid); }

.boost-hero-icon {
  width: 50px;
  height: 50px;
  border-radius: var(--boost-radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 19px;
  flex-shrink: 0;
  transition: transform var(--boost-t-smooth);
}

.boost-hero-icon-balance { background: var(--boost-success-bg); color: var(--boost-success); }
.boost-hero-icon-deposits { background: var(--boost-accent-glow); color: var(--boost-accent); }
.boost-hero-icon-spent { background: var(--boost-danger-bg); color: var(--boost-danger); }
.boost-hero-icon-orders { background: var(--boost-info-bg); color: var(--boost-info); }

.boost-hero-body { flex: 1; min-width: 0; }
.boost-hero-label { font-size: 12px; color: var(--boost-text-2); margin-bottom: 6px; display: block; font-weight: 600; }
.boost-hero-value { font-size: 26px; font-weight: 800; letter-spacing: -0.02em; display: block; }
.boost-hero-card-featured .boost-hero-value { color: var(--boost-accent-hover); }
.boost-hero-expiry { display: block; margin-top: 6px; font-size: 12px; font-weight: 600; color: var(--boost-text-2); }
.boost-hero-expiry-note { display: block; margin-top: 3px; font-size: 11px; line-height: 1.35; color: var(--boost-text-2); opacity: 0.8; }
.boost-hero-expiry-soon { color: var(--boost-warning); }

a.boost-hero-card-link { text-decoration: none; color: inherit; }
a.boost-hero-card-link:hover { border-color: var(--boost-accent); }

/* ---- Container card (glass grouping) ---- */
.boost-container {
  background: var(--boost-container-bg);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--boost-container-border);
  border-radius: calc(var(--boost-radius) + 6px);
  box-shadow: 0 1px 2px rgba(0,0,0,0.02), 0 8px 24px rgba(0,0,0,0.04);
  padding: 16px;
  margin-bottom: 20px;
}

.boost-container .boost-section,
.boost-container .boost-action-grid,
.boost-container .boost-hero-grid,
.boost-container .boost-table-wrap {
  margin-bottom: 0;
}

.boost-container-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 4px 6px 14px;
}

.boost-container .boost-hero-card:not(.boost-hero-card-featured),
.boost-container .boost-action-card,
.boost-container .boost-table-wrap,
.boost-container .boost-chart-card,
.boost-container .boost-empty-card {
  background: var(--boost-form-bg);
  border-color: var(--boost-form-border);
}

.boost-container-dark {
  background: rgba(var(--boost-dark-rgb), 0.06);
  border-color: rgba(var(--boost-dark-rgb), 0.08);
}

/* ============================================================================
   DASHBOARD: SPENDING CHART
   ============================================================================ */
.boost-chart-card {
  background: var(--boost-form-bg);
  border: var(--boost-border-w) solid var(--boost-form-border);
  border-radius: var(--boost-radius);
  padding: 20px;
  position: relative;
  height: 280px;
  overflow: hidden;
  box-shadow: var(--boost-glass-shadow);
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
}

.boost-chart-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: var(--boost-text-3);
}

.boost-chart-loading[hidden] { display: none; }

.boost-chart-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: var(--boost-text-3);
  gap: 8px;
}

.boost-chart-empty[hidden] { display: none; }

.boost-chart-empty i {
  font-size: 28px;
  opacity: 0.5;
}

.boost-chart-empty p {
  margin: 0;
  font-size: 14px;
}

/* ============================================================================
   DASHBOARD: RECHARGE CARD
   ============================================================================ */
.boost-recharge-card {
  background: var(--boost-form-bg);
  border: var(--boost-border-w) solid var(--boost-form-border);
  border-radius: var(--boost-radius);
  padding: 40px 36px;
  margin-bottom: 20px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.1), 0 0 48px -12px rgba(var(--boost-accent-rgb), 0.12);
  text-align: center;
  scroll-margin-top: calc(var(--boost-topbar-h) + 16px);
}

.boost-recharge-card h2 {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.boost-recharge-card > p {
  font-size: 13px;
  color: var(--boost-text-2);
  margin-bottom: 18px;
}

.boost-recharge-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-bottom: 14px;
}
.boost-recharge-grid[hidden],
.boost-recharge-custom[hidden],
.boost-recharge-confirm[hidden],
.boost-trust-strip[hidden],
.boost-crypto-panel[hidden] { display: none; }

.boost-recharge-btn {
  padding: 13px 28px;
  background: var(--boost-input-bg);
  border: 1px solid var(--boost-input-border);
  border-radius: var(--boost-radius-sm);
  color: var(--boost-text-1);
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  min-width: 84px;
  transition: all var(--boost-t-smooth);
}

.boost-recharge-btn:hover {
  border-color: var(--boost-accent);
  background: var(--boost-accent-glow);
  color: var(--boost-accent);
  transform: translateY(-3px);
  box-shadow: 0 4px 20px rgba(var(--boost-accent-rgb), 0.25);
}

.boost-recharge-btn-popular {
  position: relative;
}
.boost-recharge-btn-tag {
  position: absolute;
  top: -9px;
  right: -6px;
  padding: 2px 7px;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: var(--boost-accent);
  color: var(--boost-white);
  border-radius: 6px;
  line-height: 1.3;
}
.boost-recharge-btn.active {
  border-color: var(--boost-accent);
  background: rgba(var(--boost-accent-rgb), 0.08);
  color: var(--boost-accent);
  box-shadow: 0 0 0 2px rgba(var(--boost-accent-rgb), 0.2);
}

.boost-recharge-custom {
  max-width: 380px;
  margin: 0 auto 14px;
}
.boost-recharge-confirm {
  display: flex;
  width: 100%;
  max-width: 380px;
  margin: 0 auto 0;
  font-size: 15px;
  gap: 6px 8px;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
}
.boost-recharge-confirm-main {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
/* Nota inline del total+comisión PayPal — ocupa línea completa bajo el label principal.
   Visible sólo cuando method=paypal (JS añade/quita .is-visible). display:block explícito
   porque <small> default es inline y width:100% no aplicaría correctamente. */
.boost-recharge-fee-note {
  display: none;
  width: 100%;
  text-align: center;
  font-size: 12px;
  font-weight: 400;
  opacity: 0.88;
  line-height: 1.35;
}
.boost-recharge-fee-note.is-visible { display: block; }

/* ---- Standalone recharge page (MitikFans /creators/recargar) ---- */
.boost-standalone-recharge {
  padding-top: 24px;
  max-width: 520px;
}

.boost-standalone-recharge .boost-page-header {
  text-align: left;
  margin-bottom: 24px;
}

.boost-standalone-recharge .boost-recharge-card {
  text-align: left;
}

.boost-standalone-recharge .boost-recharge-card h2 {
  justify-content: flex-start;
}

.boost-standalone-recharge .boost-recharge-grid {
  justify-content: flex-start;
}

.boost-standalone-recharge .boost-payment-methods {
  justify-content: flex-start;
}

.boost-standalone-recharge .boost-recharge-custom {
  margin: 0;
}

.boost-standalone-recharge .boost-trust-strip {
  justify-content: flex-start;
}

/* ============================================================================
   DASHBOARD: PAYMENT METHOD SELECTOR
   ============================================================================ */
.boost-payment-methods {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin-bottom: 16px;
}

.boost-payment-method-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 24px;
  border: var(--boost-border-w) solid var(--boost-input-border);
  border-radius: var(--boost-radius);
  background: transparent;
  color: var(--boost-text-2);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all var(--boost-t-smooth);
}

.boost-payment-method-btn:hover {
  border-color: rgba(var(--boost-accent-rgb), 0.4);
  color: var(--boost-text-1);
}

.boost-payment-method-btn.active {
  border-color: var(--boost-accent);
  background: rgba(var(--boost-accent-rgb), 0.08);
  color: var(--boost-accent);
}

.boost-payment-method-btn i {
  font-size: 18px;
}

.boost-payment-method-icon {
  display: inline-block;
  width: 18px;
  height: 18px;
  object-fit: contain;
  flex-shrink: 0;
  vertical-align: middle;
}

.boost-payment-method-btn .fa-cc-stripe {
  color: var(--boost-payment-stripe, #635bff);
}

.boost-payment-method-btn .fa-paypal {
  color: var(--boost-payment-paypal, #009cde);
}

.boost-payment-method-btn .fa-bitcoin {
  color: var(--crypto-bitcoin);
}

.boost-payment-method-soon {
  opacity: 0.5;
  cursor: default;
}

.boost-badge-soon {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  background: rgba(var(--boost-accent-rgb), 0.12);
  color: var(--boost-accent);
  padding: 2px 6px;
  border-radius: 4px;
}

.boost-crypto-preview {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 10px 20px;
  margin: 0 auto 16px;
  border: var(--boost-border-w) solid var(--boost-input-border);
  border-radius: var(--boost-radius);
  background: rgba(var(--boost-accent-rgb), 0.03);
}

.boost-crypto-preview[hidden] {
  display: none;
}

.boost-crypto-icons {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 22px;
}

.boost-crypto-icons .fa-bitcoin { color: var(--crypto-bitcoin); }
.boost-crypto-icons .fa-ethereum { color: var(--crypto-ethereum); }

.boost-crypto-icons svg {
  width: 22px;
  height: 22px;
}

.boost-paypal-fee-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  max-width: 420px;
  margin: 0 auto 16px;
  padding: 10px 16px;
  border-radius: var(--boost-radius);
  background: var(--boost-warning-bg);
  border: 1px solid rgba(var(--boost-warning-light-rgb), 0.2);
  color: var(--boost-text-2);
  font-size: 12px;
  line-height: 1.4;
}

.boost-paypal-fee-notice[hidden] {
  display: none;
}

.boost-paypal-fee-notice i {
  color: var(--boost-warning-light);
  flex-shrink: 0;
}

/* ============================================================================
   DASHBOARD: ACTION CARDS
   ============================================================================ */
.boost-action-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 14px;
  margin-bottom: 20px;
  align-items: stretch;
}

.boost-action-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 22px;
  background: var(--boost-card-bg);
  border: var(--boost-border-w) solid var(--boost-card-border);
  border-radius: var(--boost-radius);
  box-shadow: var(--boost-glass-shadow);
  transition: all var(--boost-t-smooth);
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
}

.boost-action-card:hover {
  border-color: rgba(var(--boost-accent-rgb), 0.2);
  transform: translateY(-2px);
  box-shadow: var(--boost-glass-shadow-hover);
}

.boost-action-card:hover .boost-action-icon { transform: scale(1.1); }

.boost-action-icon {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  flex-shrink: 0;
  transition: transform var(--boost-t-smooth);
}

.boost-action-icon-primary { background: var(--boost-accent-glow); color: var(--boost-accent); }
.boost-action-icon-info { background: var(--boost-info-bg); color: var(--boost-info); }
.boost-action-icon-success { background: var(--boost-success-bg); color: var(--boost-success); }
.boost-action-icon-accent { background: rgba(139, 92, 246, 0.1); color: var(--violet); }

.boost-action-body { flex: 1; min-width: 0; }
.boost-action-title { font-weight: 600; font-size: 14px; display: block; }
.boost-action-desc { font-size: 12px; color: var(--boost-text-2); margin-top: 2px; display: block; }
.boost-action-arrow { color: var(--boost-text-3); font-size: 12px; transition: transform var(--boost-transition), color var(--boost-transition); }
.boost-action-card:hover .boost-action-arrow { transform: translateX(4px); color: var(--boost-accent); }

/* ---- Empty state / empty card ---- */
.boost-empty-state {
  text-align: center;
  padding: 48px 16px;
  color: var(--boost-text-2);
  max-width: 400px;
  margin: 0 auto;
}

.boost-empty-state i {
  font-size: 3rem;
  margin-bottom: 16px;
  opacity: 0.5;
}

.boost-empty-state p {
  margin-bottom: 20px;
  font-size: 16px;
}

.boost-empty-card {
  text-align: center;
  padding: 32px;
  background: var(--boost-card-bg);
  border: var(--boost-border-w) solid var(--boost-card-border);
  border-radius: var(--boost-radius);
  color: var(--boost-text-2);
  box-shadow: var(--boost-glass-shadow);
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
}

.boost-empty-card i {
  font-size: 2.5rem;
  margin-bottom: 8px;
  opacity: 0.4;
}

.boost-empty-card p {
  margin-bottom: 16px;
  font-size: 13px;
}

/* ============================================================================
   TABLES
   ============================================================================ */
.boost-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  background: var(--boost-form-bg);
  border: var(--boost-border-w) solid var(--boost-form-border);
  border-radius: var(--boost-radius);
  box-shadow: var(--boost-glass-shadow);
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
  margin-bottom: 20px;
}

.boost-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

/* Premium header — gradient accent, sticky, frosted */
.boost-table thead {
  background: linear-gradient(135deg, rgba(var(--boost-accent-rgb), 0.12), rgba(var(--boost-accent-rgb), 0.04));
  position: sticky;
  top: 0;
  z-index: 2;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.boost-table thead tr {
  border-bottom: 2px solid rgba(var(--boost-accent-rgb), 0.25);
}

.boost-table th {
  padding: 11px 16px;
  text-align: left;
  font-weight: 700;
  color: var(--boost-text-1);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  white-space: nowrap;
  user-select: none;
}

/* Sortable header indicators */
.boost-table th[data-sort] {
  cursor: pointer;
  transition: color 0.15s, background 0.15s;
  border-radius: 4px 4px 0 0;
}

.boost-table th[data-sort]:hover {
  color: var(--boost-accent);
  background: rgba(var(--boost-accent-rgb), 0.06);
}

.boost-table th[data-sort]::after {
  content: '\f0dc';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  display: inline-block;
  margin-left: 6px;
  font-size: 10px;
  opacity: 0.3;
  transition: opacity 0.15s, color 0.15s;
}

.boost-table th[data-sort]:hover::after {
  opacity: 0.6;
}

/* Active sort column — highlighted header */
.boost-table th.sort-asc,
.boost-table th.sort-desc {
  color: var(--boost-accent);
  background: rgba(var(--boost-accent-rgb), 0.08);
}

.boost-table th.sort-asc::after {
  content: '\f0de';
  opacity: 1;
  color: var(--boost-accent);
}

.boost-table th.sort-desc::after {
  content: '\f0dd';
  opacity: 1;
  color: var(--boost-accent);
}

/* Active sort column cells — subtle stripe */
.boost-table td.sort-active-col {
  background: rgba(var(--boost-accent-rgb), 0.025);
}

.boost-table td {
  padding: 12px 16px;
  border-top: 1px solid var(--boost-form-border);
  color: var(--boost-text-2);
  transition: background 0.15s;
}

/* Premium row hover */
.boost-table tbody tr:hover {
  background: rgba(var(--boost-accent-rgb), 0.04);
  box-shadow: inset 3px 0 0 var(--boost-accent);
}

.boost-td-truncate {
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.boost-td-actions {
  white-space: nowrap;
  display: flex;
  gap: 6px;
  align-items: center;
}

/* Search bar */
.boost-table-search {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.boost-table-search-input {
  width: 100%;
  padding: 9px 36px 9px 36px;
  background: var(--boost-input-bg);
  border: var(--boost-border-w) solid var(--boost-input-border);
  border-radius: var(--boost-radius);
  font-size: 13px;
  color: var(--boost-text-1);
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.boost-table-search-input:focus {
  border-color: var(--boost-accent);
  box-shadow: 0 0 0 3px rgba(var(--boost-accent-rgb), 0.1);
}

.boost-table-search-wrap {
  position: relative;
  flex: 1;
  min-width: 200px;
}

.boost-table-search-wrap::before {
  content: '\f002';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--boost-text-3);
  font-size: 12px;
  pointer-events: none;
}

/* Clear button */
.boost-table-search-clear {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  border: none;
  background: rgba(var(--boost-accent-rgb), 0.1);
  color: var(--boost-text-3);
  width: 22px;
  height: 22px;
  border-radius: 50%;
  font-size: 11px;
  display: none;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
  padding: 0;
  line-height: 1;
}

.boost-table-search-clear:hover {
  background: rgba(var(--boost-danger-rgb), 0.12);
  color: var(--boost-danger);
}

.boost-table-search-wrap.has-value .boost-table-search-clear {
  display: flex;
}

/* Fade transition for table body during search reload */
.boost-table-wrap.boost-table-loading {
  opacity: 0.5;
  pointer-events: none;
  transition: opacity 0.15s;
}

.boost-table-wrap:not(.boost-table-loading) {
  opacity: 1;
  transition: opacity 0.15s;
}

.boost-table-meta {
  font-size: 12px;
  color: var(--boost-text-3);
  white-space: nowrap;
}

/* Skeleton loading rows */
.boost-table-skeleton td {
  position: relative;
  overflow: hidden;
  color: transparent;
  pointer-events: none;
}

.boost-table-skeleton td::after {
  content: '';
  position: absolute;
  inset: 8px 16px;
  border-radius: 4px;
  background: linear-gradient(90deg, rgba(var(--boost-content-bg-rgb), 0.5), rgba(255,255,255,0.3), rgba(var(--boost-content-bg-rgb), 0.5));
  background-size: 200% 100%;
  animation: boostShimmer 2s infinite;
}

@media (prefers-reduced-motion: reduce) {
  .boost-table-skeleton td::after {
    animation: none;
    background: rgba(var(--boost-content-bg-rgb), 0.5);
  }
}

/* Infinite scroll sentinel & loading */
.boost-table-sentinel {
  height: 1px;
  visibility: hidden;
}

.boost-table-loading-more {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px;
  color: var(--boost-text-3);
  font-size: 13px;
}

.boost-table-end {
  text-align: center;
  padding: 16px;
  color: var(--boost-text-3);
  font-size: 12px;
}

/* Empty search results inside table */
.boost-table-no-results {
  text-align: center;
  padding: 32px 16px;
  color: var(--boost-text-3);
  font-size: 13px;
}

.boost-table-no-results i {
  display: block;
  font-size: 24px;
  margin-bottom: 8px;
  opacity: 0.4;
}

/* Error state en tabla (con reintento) */
.boost-table-error {
  text-align: center;
  padding: 32px 16px;
  color: var(--boost-text-3);
  font-size: 13px;
}

.boost-table-error-msg {
  display: block;
  margin-bottom: 12px;
}

.boost-table-error-msg i {
  display: block;
  font-size: 24px;
  margin-bottom: 8px;
  color: var(--boost-danger);
  opacity: 0.7;
}

/* ---- Status filter pills ---- */
.boost-status-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 12px;
}

.boost-status-filter {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 14px;
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-card-border);
  border-radius: 100px;
  font-size: 12px;
  font-weight: 600;
  color: var(--boost-text-2);
  cursor: pointer;
  transition: all 0.2s;
}

.boost-status-filter:hover {
  border-color: var(--boost-accent);
  color: var(--boost-text-1);
}

.boost-status-filter.active {
  background: rgba(var(--boost-accent-rgb), 0.08);
  border-color: var(--boost-accent);
  color: var(--boost-accent);
}

/* ---- Column resize handles ---- */
.boost-th-resizable { position: relative; }
.boost-table-fixed { table-layout: fixed; }

.boost-th-resize {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 8px;
  cursor: col-resize;
  z-index: 3;
  background: transparent;
  border-right: 2px solid rgba(var(--boost-accent-rgb), 0.18);
  transition: border-color 0.15s, background 0.15s;
}

.boost-th-resize:hover,
.boost-th-resize:active {
  border-right-color: var(--boost-accent);
  background: rgba(var(--boost-accent-rgb), 0.08);
}

.boost-col-resizing {
  cursor: col-resize;
  user-select: none;
}

/* ---- Auto-fit button ---- */
.boost-table-autofit {
  background: none;
  border: 1px solid var(--boost-border);
  border-radius: 6px;
  color: var(--boost-muted);
  cursor: pointer;
  padding: 4px 8px;
  font-size: 13px;
  line-height: 1;
  margin-left: 8px;
  transition: color 0.15s, border-color 0.15s;
}

.boost-table-autofit:hover {
  color: var(--boost-accent);
  border-color: var(--boost-accent);
}

/* ---- Service name structured cell ---- */
.boost-svc-cell {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.boost-svc-icon {
  font-size: 16px;
  flex-shrink: 0;
  width: 20px;
  text-align: center;
}

.boost-svc-detail {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  min-width: 0;
  overflow: hidden;
}

.boost-svc-type {
  font-weight: 600;
  color: var(--boost-text-1);
  white-space: nowrap;
}

.boost-svc-flags {
  font-size: 14px;
  flex-shrink: 0;
}

.boost-svc-extra {
  font-size: 11px;
  color: var(--boost-text-3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

/* ============================================================================
   BADGES
   ============================================================================ */
.boost-badge {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  text-transform: capitalize;
  white-space: nowrap;
}

.boost-badge-completed { background: var(--boost-success-bg); color: var(--boost-success); }
.boost-badge-processing,
.boost-badge-in_progress {
  background: var(--boost-warning-bg);
  color: var(--boost-warning);
  position: relative;
  overflow: hidden;
  padding-right: 1.4em;
}

.boost-badge-processing::before,
.boost-badge-in_progress::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, var(--boost-shimmer), transparent);
  transform: translateX(-100%);
  animation: boostShimmer 2s infinite;
  will-change: transform;
}

@keyframes boostShimmer {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

.boost-badge-processing::after,
.boost-badge-in_progress::after {
  content: '...';
  position: absolute;
  right: 6px;
  width: 1em;
  text-align: left;
  overflow: hidden;
  animation: boostDots 1.5s steps(4, end) infinite;
}

@keyframes boostDots {
  0%  { width: 0; }
  25% { width: 0.33em; }
  50% { width: 0.66em; }
  75% { width: 1em; }
}

.boost-badge-pending { background: var(--boost-info-bg); color: var(--boost-info); }
.boost-badge-queued { background: var(--boost-warning-bg); color: var(--boost-warning); }
.boost-badge-verifying { background: var(--boost-warning-bg); color: var(--boost-warning); }
.boost-badge-partial { background: var(--boost-accent-glow); color: var(--boost-accent); }
.boost-badge-canceled,
.boost-badge-error { background: var(--boost-danger-bg); color: var(--boost-danger); }

/* ============================================================================
   BUTTONS
   ============================================================================ */
.boost-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 18px;
  border-radius: var(--boost-radius-sm);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  border: 1px solid transparent;
  white-space: nowrap;
  transition: background var(--boost-transition), border-color var(--boost-transition), transform var(--boost-transition), box-shadow var(--boost-transition);
}

.boost-btn.boost-btn-primary,
.boost-btn.boost-btn-accent {
  background: linear-gradient(135deg, var(--boost-accent) 0%, var(--boost-accent-end) 100%);
  color: var(--boost-white);
  box-shadow: 0 4px 20px rgba(var(--boost-accent-rgb), 0.4), inset 0 1px 0 rgba(255,255,255,0.2);
  position: relative;
  overflow: hidden;
}

.boost-btn.boost-btn-primary > *,
.boost-btn.boost-btn-accent > * {
  position: relative;
  z-index: 1;
}
.boost-btn.boost-btn-primary::after,
.boost-btn.boost-btn-accent::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
  animation: boostShimmerCta 3s ease-in-out infinite;
  z-index: 0;
}

.boost-btn.boost-btn-primary:hover,
.boost-btn.boost-btn-accent:hover {
  background: linear-gradient(135deg, var(--boost-accent-hover) 0%, var(--boost-accent-end-hover) 100%);
  transform: translateY(-1px);
  box-shadow: 0 8px 32px rgba(var(--boost-accent-rgb), 0.55), inset 0 1px 0 rgba(255,255,255,0.2);
}

.boost-btn.boost-btn-primary:disabled,
.boost-btn.boost-btn-accent:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.boost-btn.boost-btn-primary:disabled::after,
.boost-btn.boost-btn-accent:disabled::after {
  animation: none;
}

.boost-btn-outline {
  background: transparent;
  border-color: var(--boost-card-border);
  color: var(--boost-text-2);
}

.boost-btn-outline:hover {
  border-color: var(--boost-text-3);
  color: var(--boost-text-1);
}

.boost-btn-sm {
  padding: 6px 14px;
  font-size: 12px;
}

.boost-btn-lg {
  padding: 14px 32px;
  font-size: 16px;
}

.boost-btn-danger-outline {
  background: transparent;
  border-color: var(--boost-danger);
  color: var(--boost-danger);
}

.boost-btn-danger-outline:hover {
  background: var(--boost-danger-bg);
}

.boost-btn.boost-btn-danger {
  background: var(--boost-danger);
  color: var(--boost-white);
  border-color: var(--boost-danger);
}
.boost-btn.boost-btn-danger:hover {
  opacity: 0.85;
}

.boost-btn-block {
  display: flex;
  width: 100%;
  max-width: 360px;
  margin-left: auto;
  margin-right: auto;
  padding-top: 12px;
  padding-bottom: 12px;
  font-size: 14px;
  margin-top: 4px;
  display: block;
}

.boost-form-actions {
  display: flex;
  justify-content: center;
  margin-top: 8px;
}

/* ============================================================================
   ALERTS
   ============================================================================ */
.boost-alert {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  border-radius: var(--boost-radius);
  margin-bottom: 16px;
  font-size: 13px;
  border: 1px solid transparent;
}

.boost-alert-success {
  background: var(--boost-success-bg);
  border-color: rgba(var(--boost-success-rgb),0.2);
  color: var(--boost-success);
}

.boost-alert-danger {
  background: var(--boost-danger-bg);
  border-color: rgba(var(--boost-danger-rgb),0.2);
  color: var(--boost-danger);
}

.boost-alert-warning {
  background: var(--boost-warning-bg);
  border-color: rgba(var(--boost-warning-rgb),0.2);
  color: var(--boost-warning);
}

/* Post-payment creator CTA */
.boost-creator-postcta {
  display: flex;
  align-items: center;
  gap: 12px;
  background: linear-gradient(135deg, rgba(var(--boost-primary-rgb),0.08), rgba(var(--boost-primary-rgb),0.03));
  border: 1px solid rgba(var(--boost-primary-rgb),0.2);
  border-radius: var(--boost-radius-md);
  padding: 14px 16px;
  margin-bottom: 12px;
}
.boost-creator-postcta-icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(var(--boost-primary-rgb),0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--boost-primary);
  font-size: 16px;
}
.boost-creator-postcta-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.boost-creator-postcta-body strong {
  font-size: 14px;
  color: var(--boost-text-primary);
  font-weight: 600;
}
.boost-creator-postcta-body span {
  font-size: 12px;
  color: var(--boost-text-secondary);
}
@media (max-width: 480px) {
  .boost-creator-postcta {
    flex-wrap: wrap;
  }
  .boost-creator-postcta .boost-btn {
    width: 100%;
    text-align: center;
  }
}

.boost-alert-info {
  background: var(--boost-info-bg);
  border-color: rgba(var(--boost-info-rgb),0.2);
  color: var(--boost-info);
}

.boost-alert-abandoned {
  background: var(--boost-info-bg);
  color: var(--boost-info);
  border-color: rgba(var(--boost-info-rgb),0.2);
  flex-wrap: wrap;
}
.boost-alert-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}
.boost-alert-cta {
  padding: 6px 14px;
  background: var(--boost-accent);
  color: var(--boost-white);
  border: none;
  border-radius: var(--boost-radius);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.2s;
}
.boost-alert-cta:hover { opacity: 0.85; }
/* Variante outline para secondary action (ej: "probar otro método") — hereda tipografía de .boost-alert-cta */
.boost-alert-cta-alt {
  background: transparent;
  color: var(--boost-accent);
  border: 1px solid var(--boost-accent);
}
.boost-alert-cta-alt:hover { background: rgba(var(--boost-accent-rgb), 0.08); opacity: 1; }
/* Meta label inline (ej: método de pago fallado junto al importe) */
.boost-alert-meta {
  font-size: 11px;
  opacity: 0.75;
  margin-left: 4px;
}
.boost-alert-dismiss {
  background: none;
  border: none;
  color: inherit;
  opacity: 0.5;
  cursor: pointer;
  padding: 4px;
  font-size: 14px;
  transition: opacity 0.2s;
}
.boost-alert-dismiss:hover { opacity: 1; }

.boost-alert-tip {
  background: rgba(var(--boost-accent-rgb), 0.06);
  border-color: rgba(var(--boost-accent-rgb), 0.15);
  color: var(--boost-text);
  gap: 14px;
  padding: 12px 16px;
}
.boost-alert-tip[hidden] { display: none; }
.boost-alert-tip__icon {
  color: var(--boost-accent);
  font-size: 18px;
  flex-shrink: 0;
}
.boost-alert-tip__body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}
.boost-alert-tip__body strong {
  font-size: 13px;
  line-height: 1.3;
}
.boost-alert-tip__body span {
  font-size: 12px;
  opacity: 0.75;
  line-height: 1.3;
}
@media (max-width: 600px) {
  .boost-alert-tip { flex-wrap: wrap; gap: 10px; }
  .boost-alert-tip .boost-alert-cta { width: 100%; text-align: center; }
}

/* Farewell banner (post-logout) */
.boost-farewell {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 16px 20px;
  margin-bottom: 20px;
  background: var(--boost-info-bg);
  border: 1px solid rgba(var(--boost-info-rgb), 0.3);
  border-radius: var(--boost-radius);
  animation: boostFarewellIn 0.4s ease-out;
}

.boost-farewell-icon {
  font-size: 28px;
  flex-shrink: 0;
  color: var(--boost-info);
}

.boost-farewell-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 2px;
  min-width: 0;
}

.boost-farewell-text strong {
  font-size: 16px;
  color: var(--boost-text-1);
}

.boost-farewell-text span {
  font-size: 14px;
  color: var(--boost-text-2);
}

.boost-farewell-close {
  background: none;
  border: none;
  color: var(--boost-text-3);
  cursor: pointer;
  padding: 4px;
  font-size: 16px;
  flex-shrink: 0;
  transition: color var(--boost-transition);
}

.boost-farewell-close:hover {
  color: var(--boost-text-1);
}

.boost-farewell-countdown {
  font-size: 11px;
  opacity: 0.5;
  margin-right: 4px;
}

.boost-farewell-out {
  animation: boostFarewellOut 0.3s ease-in forwards;
}

@keyframes boostFarewellIn {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes boostFarewellOut {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(-8px); }
}

/* ============================================================================
   AUTH FORMS
   ============================================================================ */
.boost-auth-card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 440px;
  background: var(--boost-form-bg);
  border: var(--boost-border-w) solid var(--boost-form-border);
  border-radius: 20px;
  padding: 36px 36px;
  box-shadow:
    0 1px 3px rgba(0,0,0,0.04),
    0 8px 24px rgba(0,0,0,0.06),
    0 20px 48px rgba(0,0,0,0.08);
}

.boost-auth-header {
  text-align: center;
  margin-bottom: 32px;
}

.boost-auth-header > i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  font-size: 1.6rem;
  color: var(--boost-white);
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-hover));
  border-radius: 18px;
  margin-bottom: 16px;
  box-shadow: 0 8px 20px rgba(var(--boost-accent-rgb),0.3);
}

.boost-auth-header h1 {
  font-size: 22px;
  font-weight: 700;
  margin-top: 4px;
}

.boost-auth-header p {
  color: var(--boost-text-2);
  font-size: 14px;
  margin-top: 6px;
}

/* Compact auth header — icon inline with title, no large icon block */
.boost-auth-header-compact {
  margin-bottom: 24px;
}

.boost-auth-header-compact h1 {
  font-size: 24px;
  margin-top: 0;
}

.boost-auth-header-compact h1 > i {
  color: var(--boost-accent);
  margin-right: 6px;
  font-size: 0.85em;
}

.boost-auth-divider {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 20px 0;
  font-size: 12px;
  font-weight: 500;
  color: var(--boost-text-3);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.boost-auth-divider::before,
.boost-auth-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--boost-form-border);
}

.boost-btn-google {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  padding: 14px 16px;
  border: var(--boost-border-w) solid var(--boost-card-border);
  border-radius: var(--boost-radius);
  background: var(--boost-input-bg);
  color: var(--boost-text-1);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: background var(--boost-transition), border-color var(--boost-transition), box-shadow var(--boost-transition), transform var(--boost-transition);
}

.boost-btn-google:hover {
  background: var(--boost-content-bg);
  border-color: var(--boost-text-3);
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  transform: translateY(-1px);
}

.boost-btn-google svg {
  flex-shrink: 0;
}

.boost-auth-card .boost-btn-primary {
  padding: 14px 20px;
  font-size: 15px;
  border-radius: var(--boost-radius);
}

.boost-auth-card .boost-btn-block {
  max-width: none;
}

.boost-auth-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid var(--boost-form-border);
  font-size: 13px;
  color: var(--boost-text-3);
}

.boost-auth-footer a {
  color: var(--boost-accent);
  font-weight: 600;
  transition: color var(--boost-transition);
}

.boost-auth-footer a:hover {
  color: var(--boost-accent-hover);
  text-decoration: underline;
}

.boost-auth-hint {
  font-size: 12px;
  color: var(--boost-text-3);
  text-align: center;
  margin-top: 8px;
}

/* ============================================================================
   FORMS & INPUTS
   ============================================================================ */
.boost-form {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.boost-form-group {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.boost-form-group + .boost-form-group {
  margin-top: 16px;
}

.boost-form-group label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 700;
  color: var(--boost-text-1);
}
.boost-char-counter {
  margin-left: auto;
  font-weight: 400;
  font-size: 0.75rem;
  color: var(--boost-text-3);
}
.boost-input-counter {
  font-size: 0.72rem;
  font-weight: 400;
  color: var(--boost-text-3);
  margin-left: auto;
}

/* Collapsible picker: click-to-expand overlay for card grids in editors */
.boost-picker-wrap {
  position: relative;
}
.boost-picker-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 10px 14px;
  border: 1px solid var(--boost-border);
  border-radius: 10px;
  background: var(--boost-content-bg);
  color: var(--boost-text-1);
  font-size: 14px;
  cursor: pointer;
  transition: border-color 0.2s;
}
.boost-picker-toggle:hover {
  border-color: var(--boost-accent);
}
.boost-picker-toggle-value {
  display: flex;
  align-items: center;
  gap: 8px;
}
.boost-picker-toggle-caret {
  font-size: 12px;
  color: var(--boost-text-3);
  transition: transform 0.3s;
}
.boost-picker-wrap.open .boost-picker-toggle-caret {
  transform: rotate(180deg);
}
.boost-picker-wrap.open .boost-picker-toggle {
  border-color: var(--boost-accent);
}
.boost-picker-body {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 20;
  padding: 12px;
  margin-top: 4px;
  background: var(--boost-popover-bg);
  border: 1px solid var(--boost-border);
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}
.boost-picker-wrap.open .boost-picker-body {
  display: block;
}

.boost-input-icon {
  position: relative;
}

.boost-input-icon i {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--boost-text-3);
  font-size: 14px;
  pointer-events: none;
  z-index: 1;
}

.boost-input,
.boost-input-icon input {
  width: 100%;
  padding: 12px 14px;
  background: var(--boost-input-bg);
  border: 1px solid var(--boost-input-border);
  border-radius: var(--boost-radius);
  color: var(--boost-text-1);
  font-size: 14px;
  transition: border-color var(--boost-transition), box-shadow var(--boost-transition), background var(--boost-transition);
  box-sizing: border-box;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 2px 6px rgba(0,0,0,0.06), 0 0 0 1px rgba(0,0,0,0.02);
}

/* Icon inputs need extra left padding to clear the icon */
.boost-input-icon input {
  padding-left: 40px;
}

/* Right padding when input has a clear button sibling */
.boost-input-icon:has(.boost-input-clear) input {
  padding-right: 40px;
}

.boost-input:focus,
.boost-input-icon input:focus {
  outline: none;
  border-color: var(--boost-accent);
  background: var(--boost-input-bg);
  box-shadow: 0 0 0 4px rgba(var(--boost-accent-rgb), 0.1), 0 0 20px rgba(var(--boost-accent-rgb), 0.06);
}

/* Select dropdowns — premium appearance */
select.boost-input {
  appearance: none;
  -webkit-appearance: none;
  background: var(--boost-input-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center / 12px;
  padding-right: 36px;
  cursor: pointer;
}
select.boost-input:focus {
  background: var(--boost-input-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%236366f1' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center / 12px;
}

.boost-input-short {
  max-width: 120px;
}
.boost-picker-body .boost-picker-inline-field {
  margin-bottom: 12px;
}
.boost-picker-body .boost-picker-inline-field label {
  font-size: 12px;
  font-weight: 600;
  color: var(--boost-text-2);
  margin-bottom: 6px;
  display: block;
}

.boost-input::placeholder,
.boost-input-icon input::placeholder,
.boost-textarea::placeholder {
  color: var(--boost-text-3);
}

/* ---- Validation error state ---- */
.boost-input-error,
.boost-input-error:focus,
.boost-input-icon.boost-input-error input,
.boost-input-icon.boost-input-error input:focus,
.boost-textarea.boost-input-error,
.boost-textarea.boost-input-error:focus {
  border-color: var(--boost-danger);
  box-shadow: 0 0 0 3px var(--boost-danger-bg);
}

/* ---- Validation success state ---- */
.boost-input-success,
.boost-input-success:focus {
  border-color: var(--boost-success);
  box-shadow: 0 0 0 3px rgba(var(--boost-success-rgb, 16,185,129), 0.15);
}

/* ---- Readonly input (e.g. auto-calculated quantity) ---- */
.boost-input[readonly] {
  background: var(--boost-card-bg);
  opacity: .65;
  cursor: default;
}
.boost-referral-input-group .boost-input[readonly] {
  opacity: 1;
  color: var(--boost-text-1);
  background: var(--boost-input-bg);
  font-size: 12px;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
}

/* ---- Inline validation indicator (icon after input) ---- */
.boost-input-validated {
  position: relative;
}

.boost-input-validated .boost-input {
  padding-right: 40px;
  text-overflow: ellipsis;
}

.boost-input-validated-icon {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 15px;
  pointer-events: none;
  opacity: 0;
  z-index: 2;
  transition: opacity 0.2s, color 0.2s;
}

.boost-input-validated.is-valid .boost-input {
  border-color: var(--boost-success);
  box-shadow: 0 0 0 3px var(--boost-success-bg);
}

.boost-input-validated.is-valid .boost-input-validated-icon {
  opacity: 1;
  color: var(--boost-success);
}

.boost-input-validated.is-invalid .boost-input {
  border-color: var(--boost-danger);
  box-shadow: 0 0 0 3px var(--boost-danger-bg);
}

.boost-input-validated.is-invalid .boost-input-validated-icon {
  opacity: 1;
  color: var(--boost-danger);
}

.boost-input-saved {
  border-color: var(--boost-success);
  box-shadow: 0 0 0 3px var(--boost-success-bg);
  transition: border-color 0.3s, box-shadow 0.3s;
}

/* ---- Field hints ---- */
.boost-field-hint {
  display: block;
  font-size: 12px;
  color: var(--boost-text-2);
  margin-top: 4px;
}

.boost-field-hint-inline {
  font-size: 12px;
  color: var(--boost-text-3);
  font-weight: 400;
  margin-left: auto;
}

/* ============================================================================
   NEW ORDER: ORDER LAYOUT
   ============================================================================ */
.boost-order-layout {
  max-width: 720px;
  margin: 0 auto 20px;
  display: flex;
  flex-direction: column;
  gap: 36px;
}

.boost-order-layout [hidden] {
  display: none;
}

.boost-order-section {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 8px;
}

.boost-order-label {
  font-size: 13px;
  font-weight: 700;
  color: var(--boost-text-1);
  display: flex;
  align-items: center;
  gap: 6px;
  letter-spacing: 0.01em;
}

.boost-order-label i {
  color: var(--boost-accent);
  font-size: 12px;
}

.boost-order-label-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

.boost-qty-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.boost-qty-chip {
  padding: 5px 12px;
  border-radius: 20px;
  border: 1.5px solid var(--boost-card-border);
  background: var(--boost-card-bg);
  color: var(--boost-text-2);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: border-color var(--boost-transition), color var(--boost-transition), background var(--boost-transition);
}

.boost-qty-chip:hover {
  border-color: var(--boost-accent);
  color: var(--boost-accent);
}

.boost-qty-chip-active {
  border-color: var(--boost-accent);
  background: var(--boost-accent-glow);
  color: var(--boost-accent);
}

/* ---- Open platform link ---- */
.boost-open-platform-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 600;
  color: var(--boost-accent);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  transition: color var(--boost-transition);
}
.boost-open-platform-link:hover {
  color: var(--boost-accent-hover);
}

/* ---- Link help modal content ---- */
.boost-link-help-box { max-width: 420px; text-align: left; }

.boost-link-help-steps {
  list-style: none;
  padding: 0;
  margin: 16px 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.boost-link-help-step {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: var(--boost-text-1);
  line-height: 1.4;
}

.boost-link-help-num {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--boost-accent);
  color: var(--boost-white);
  font-size: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

.boost-link-help-icon {
  flex-shrink: 0;
  width: 18px;
  text-align: center;
  color: var(--boost-text-3);
  font-size: 15px;
}

.boost-link-help-example {
  background: var(--boost-bg);
  border: 1px solid var(--boost-border);
  border-radius: 8px;
  padding: 8px 12px;
  margin-bottom: 12px;
  overflow-x: auto;
}
.boost-link-help-example code {
  font-size: 12px;
  color: var(--boost-accent);
  word-break: break-all;
}

.boost-link-help-tip {
  font-size: 12px;
  color: var(--boost-text-3);
  margin-bottom: 16px;
}
.boost-link-help-tip .fa-lightbulb { color: var(--boost-warning); }

.boost-link-help-actions {
  display: flex;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}
.boost-link-help-open {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--boost-bg);
  color: var(--boost-text-1);
  border: 1px solid var(--boost-border);
  text-decoration: none;
  transition: border-color var(--boost-transition), color var(--boost-transition);
}
.boost-link-help-open:hover {
  border-color: var(--boost-accent);
  color: var(--boost-accent);
}
.boost-link-help {
  color: var(--boost-text-3);
  font-size: 0.75rem;
  margin-left: 4px;
  text-decoration: none;
  transition: color var(--boost-transition);
}
.boost-link-help:hover {
  color: var(--boost-accent);
}
.boost-link-help-box .boost-modal-icon { text-align: center; }
.boost-link-help-box .boost-modal-title { text-align: center; margin-bottom: 4px; }

/* ---- Platform grid ---- */
.boost-platform-grid {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 8px;
}

.boost-platform-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 10px 14px;
  background: var(--boost-input-bg);
  border: 1px solid var(--boost-input-border);
  border-radius: var(--boost-radius-sm);
  color: var(--boost-text-2);
  font-size: 11px;
  cursor: pointer;
  transition: border-color var(--boost-transition), color var(--boost-transition), background var(--boost-transition), box-shadow var(--boost-transition);
}

.boost-platform-btn i {
  font-size: 20px;
}

.boost-platform-btn span {
  transition: color var(--boost-transition);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}

.boost-platform-btn:hover {
  border-color: var(--boost-text-3);
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}

.boost-platform-btn:hover span {
  color: var(--boost-text-1);
}

.boost-platform-btn.active {
  border-color: var(--boost-accent);
  background: var(--boost-accent-glow);
}

.boost-platform-btn.active span {
  color: var(--boost-accent);
}

/* ---- Platform brand colors (shared: grid buttons + dropdown icons) ---- */
[data-platform="TikTok"] > i,      [data-platform="TikTok"] i.fab,      [data-platform="TikTok"] > .boost-dropdown-icon      { color: var(--platform-tiktok); }
[data-platform="Instagram"] > i,   [data-platform="Instagram"] i.fab,   [data-platform="Instagram"] > .boost-dropdown-icon   { color: var(--platform-instagram); }
[data-platform="YouTube"] > i,     [data-platform="YouTube"] i.fab,     [data-platform="YouTube"] > .boost-dropdown-icon     { color: var(--platform-youtube); }
[data-platform="Facebook"] > i,    [data-platform="Facebook"] i.fab,    [data-platform="Facebook"] > .boost-dropdown-icon    { color: var(--platform-facebook); }
[data-platform="Twitter"] > i,     [data-platform="Twitter"] i.fab,     [data-platform="Twitter"] > .boost-dropdown-icon     { color: var(--boost-text-2); }
[data-platform="Telegram"] > i,    [data-platform="Telegram"] i.fab,    [data-platform="Telegram"] > .boost-dropdown-icon    { color: var(--platform-telegram); }
[data-platform="Spotify"] > i,     [data-platform="Spotify"] i.fab,     [data-platform="Spotify"] > .boost-dropdown-icon     { color: var(--platform-spotify); }
[data-platform="Twitch"] > i,      [data-platform="Twitch"] i.fab,      [data-platform="Twitch"] > .boost-dropdown-icon      { color: var(--platform-twitch); }
[data-platform="Discord"] > i,     [data-platform="Discord"] i.fab,     [data-platform="Discord"] > .boost-dropdown-icon     { color: var(--platform-discord); }
[data-platform="Threads"] > i,     [data-platform="Threads"] i.fab,     [data-platform="Threads"] > .boost-dropdown-icon     { color: var(--boost-text-2); }
[data-platform="LinkedIn"] > i,    [data-platform="LinkedIn"] i.fab,    [data-platform="LinkedIn"] > .boost-dropdown-icon    { color: var(--platform-linkedin); }
[data-platform="Pinterest"] > i,   [data-platform="Pinterest"] i.fab,   [data-platform="Pinterest"] > .boost-dropdown-icon   { color: var(--platform-pinterest); }
[data-platform="Snapchat"] > i,    [data-platform="Snapchat"] i.fab,    [data-platform="Snapchat"] > .boost-dropdown-icon    { color: var(--platform-snapchat); }
[data-platform="SoundCloud"] > i,  [data-platform="SoundCloud"] i.fab,  [data-platform="SoundCloud"] > .boost-dropdown-icon  { color: var(--platform-soundcloud); }
[data-platform="Reddit"] > i,      [data-platform="Reddit"] i.fab,      [data-platform="Reddit"] > .boost-dropdown-icon      { color: var(--platform-reddit); }
[data-platform="Apple Music"] > i, [data-platform="Apple Music"] i.fab, [data-platform="Apple Music"] > .boost-dropdown-icon { color: var(--platform-applemusic); }
[data-platform="Bluesky"] > i,     [data-platform="Bluesky"] i.fas,     [data-platform="Bluesky"] > .boost-dropdown-icon     { color: var(--platform-bluesky); }
[data-platform="Clubhouse"] > i,   [data-platform="Clubhouse"] i.fas,   [data-platform="Clubhouse"] > .boost-dropdown-icon   { color: var(--platform-clubhouse); }
[data-platform="Kick.com"] > i,    [data-platform="Kick.com"] i.fas,    [data-platform="Kick.com"] > .boost-dropdown-icon    { color: var(--platform-kick); }
[data-platform="Rumble"] > i,      [data-platform="Rumble"] i.fas,      [data-platform="Rumble"] > .boost-dropdown-icon      { color: var(--platform-rumble); }
[data-platform="Shopee"] > i,      [data-platform="Shopee"] i.fas,      [data-platform="Shopee"] > .boost-dropdown-icon      { color: var(--platform-shopee); }
[data-platform="Trovo"] > i,       [data-platform="Trovo"] i.fas,       [data-platform="Trovo"] > .boost-dropdown-icon       { color: var(--platform-trovo); }
[data-platform="Trustpilot"] > i,  [data-platform="Trustpilot"] i.fas,  [data-platform="Trustpilot"] > .boost-dropdown-icon  { color: var(--platform-trustpilot); }

/* ---- Custom dropdown (category & service pickers) ---- */
.boost-dropdown {
  position: relative;
  width: 100%;
}

.boost-dropdown-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 10px 14px;
  background: var(--boost-input-bg);
  border: 1px solid var(--boost-input-border);
  border-radius: var(--boost-radius-sm);
  color: var(--boost-text-1);
  font-size: 14px;
  cursor: pointer;
  transition: border-color var(--boost-transition), box-shadow var(--boost-transition);
  text-align: left;
  gap: 8px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.06), 0 0 0 1px rgba(0,0,0,0.02);
}

.boost-dropdown-trigger:hover {
  border-color: var(--boost-text-3);
}

.boost-dropdown-open .boost-dropdown-trigger {
  border-color: var(--boost-accent);
  box-shadow: 0 0 0 3px var(--boost-accent-glow);
}

.boost-dropdown-disabled .boost-dropdown-trigger {
  opacity: 0.5;
  cursor: not-allowed;
}

.boost-dropdown-text {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.boost-dropdown-arrow {
  font-size: 11px;
  color: var(--boost-text-3);
  transition: transform var(--boost-transition);
  flex-shrink: 0;
}

.boost-dropdown-open .boost-dropdown-arrow {
  transform: rotate(180deg);
}

.boost-dropdown-menu {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  max-height: min(320px, 60vh);
  overflow-y: auto;
  background: var(--boost-form-bg);
  border: var(--boost-border-w) solid var(--boost-form-border);
  border-radius: var(--boost-radius-sm);
  box-shadow: 0 8px 24px rgba(0,0,0,0.12);
  z-index: 50;
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
  scrollbar-width: thin;
  scrollbar-color: var(--boost-accent-light) transparent;
}

.boost-dropdown-open .boost-dropdown-menu {
  display: block;
}

.boost-dropdown-menu::-webkit-scrollbar { width: 6px; }
.boost-dropdown-menu::-webkit-scrollbar-track { background: transparent; }
.boost-dropdown-menu::-webkit-scrollbar-thumb { background: var(--boost-accent-light); border-radius: 3px; }
.boost-dropdown-menu::-webkit-scrollbar-thumb:hover { background: var(--boost-accent); }

.boost-dropdown-item {
  padding: 10px 14px;
  font-size: 13px;
  color: var(--boost-text-1);
  cursor: pointer;
  transition: background var(--boost-transition);
  border-bottom: 1px solid var(--boost-card-border);
  line-height: 1.4;
}

.boost-dropdown-item:last-child {
  border-bottom: none;
}

.boost-dropdown-item:hover {
  background: var(--boost-accent-glow);
}

.boost-dropdown-item.active {
  background: var(--boost-accent-glow);
  color: var(--boost-accent);
  font-weight: 600;
}

.boost-dropdown-id {
  display: inline-block;
  padding: 1px 7px;
  background: var(--boost-accent);
  color: var(--boost-white);
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  vertical-align: middle;
  margin-right: 4px;
  font-variant-numeric: tabular-nums;
}

.boost-dropdown-icon {
  width: 16px;
  text-align: center;
  font-size: 13px;
  flex-shrink: 0;
  color: var(--boost-text-3);
}

.boost-dropdown-price {
  color: var(--boost-text-3);
  font-size: 12px;
  white-space: nowrap;
}

/* ---- Service description panel ---- */
.boost-svc-desc {
  background: var(--boost-form-bg);
  border: var(--boost-border-w) solid var(--boost-form-border);
  border-radius: var(--boost-radius-sm);
  padding: 20px;
  margin: 16px 0 8px;
}

.boost-svc-desc-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

.boost-svc-desc-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-align: center;
}

.boost-svc-desc-label {
  font-size: 11px;
  color: var(--boost-text-2);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

.boost-hint-icon {
  font-size: 10px;
  opacity: 0.6;
  cursor: help;
}

.boost-svc-desc-value {
  font-size: 15px;
  font-weight: 700;
}

/* ---- Order form fields ---- */
.boost-order-fields {
  display: flex;
  flex-direction: column;
  gap: 16px;
  background: var(--boost-form-bg);
  border: var(--boost-border-w) solid var(--boost-form-border);
  border-radius: var(--boost-radius-sm);
  padding: 20px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 2px 4px rgba(0,0,0,0.03), 0 8px 24px rgba(0,0,0,0.06);
}

.boost-order-row {
  display: flex;
  gap: 16px;
}

.boost-order-grow {
  flex: 1;
}

.boost-charge-display {
  font-size: 20px;
  font-weight: 700;
  color: var(--boost-success);
  padding: 8px 0 4px;
}

.boost-order-feedback {
  font-size: 13px;
  min-height: 1.4em;
  text-align: center;
}

.boost-feedback-success { color: var(--boost-success); }
.boost-feedback-error { color: var(--boost-danger); }
.boost-feedback-info { color: var(--boost-accent); }
.boost-link-btn {
  background: none;
  border: none;
  color: var(--boost-muted);
  cursor: pointer;
  font-size: 13px;
  padding: 6px 0;
  text-decoration: underline;
}
.boost-link-btn:hover { color: var(--boost-text); }
.boost-link-btn:disabled { opacity: 0.5; cursor: not-allowed; }

/* ============================================================================
   PAGINATION
   ============================================================================ */
.boost-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 20px;
}

.boost-page-info {
  font-size: 13px;
  color: var(--boost-text-3);
}

/* ============================================================================
   UTILITY
   ============================================================================ */
.boost-text-muted { color: var(--boost-text-3); }
.boost-text-success { color: var(--boost-success); }
.boost-text-center { text-align: center; }
.boost-mt-8 { margin-top: 8px; }
.boost-mt-16 { margin-top: 16px; }

.boost-link-external {
  color: var(--boost-info);
}

.boost-link-external:hover {
  text-decoration: underline;
}

.boost-link-external i {
  font-size: 0.7em;
  margin-left: 4px;
}

/* ============================================================================
   ADMIN SPECIFICS
   ============================================================================ */
.boost-admin-nav {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--boost-border);
  padding-bottom: 12px;
}

.boost-admin-nav-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: var(--boost-radius);
  font-size: 13px;
  font-weight: 500;
  color: var(--boost-text-2);
  text-decoration: none;
  transition: background var(--boost-transition), color var(--boost-transition);
}

.boost-admin-nav-item:hover {
  background: var(--boost-content-bg-dark);
  color: var(--boost-text-1);
}

.boost-admin-nav-item.active {
  background: var(--boost-accent);
  color: var(--boost-white);
}

.boost-admin-links {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}

.boost-page-header:has(.boost-admin-links) {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
}

.boost-admin-actions {
  display: flex;
  gap: 4px;
}

.boost-btn-refund {
  color: var(--boost-white);
  border: none;
  white-space: nowrap;
}
.boost-btn-refund:hover {
  filter: brightness(0.9);
}
.boost-btn-refund-safe {
  background: var(--boost-success);
}
.boost-btn-refund-loss {
  background: var(--boost-danger);
}
.boost-btn-refund-unknown {
  background: var(--boost-warning);
}

.boost-refund-info {
  display: grid;
  gap: 6px;
  margin-bottom: 16px;
  padding: 12px;
  border-radius: var(--boost-radius);
  background: var(--boost-bg-2);
}
.boost-refund-info-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  font-size: 13px;
}
.boost-refund-info-label {
  color: var(--boost-text-3);
  flex-shrink: 0;
}
.boost-refund-info-msg {
  text-align: right;
  word-break: break-word;
  color: var(--boost-text-2);
}
.boost-refund-charge-zero {
  color: var(--boost-success);
  font-weight: 600;
}
.boost-refund-charge-paid {
  color: var(--boost-danger);
  font-weight: 600;
}
.boost-refund-verdict {
  padding: 10px 14px;
  border-radius: var(--boost-radius);
  font-size: 13px;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
}
.boost-refund-verdict-safe {
  background: color-mix(in srgb, var(--boost-success) 12%, transparent);
  color: var(--boost-success);
}
.boost-refund-verdict-loss {
  background: color-mix(in srgb, var(--boost-danger) 12%, transparent);
  color: var(--boost-danger);
}

.boost-admin-margin {
  min-width: 60px;
  width: auto;
  padding: 4px 8px;
  text-align: center;
}

.boost-admin-pvp {
  font-weight: 600;
  color: var(--boost-success);
}

.boost-tab-count {
  font-size: 11px;
  color: var(--boost-text-3);
}

.boost-margin-input {
  min-width: 60px;
  max-width: 100px;
  width: auto;
  text-align: right;
  padding-right: 8px;
}

.boost-margin-preview-changed {
  color: var(--boost-accent);
  font-weight: 600;
}

.boost-surcharge-badge {
  font-size: 0.75rem;
  padding: 2px 6px;
  border-radius: var(--boost-radius-sm);
  background: rgba(var(--boost-warning-light-rgb), 0.15);
  color: var(--boost-warning);
  margin-left: 6px;
}

.boost-filter-bar {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.boost-filter-bar .boost-input { width: auto; min-width: 180px; }

.boost-score-bar {
  display: inline-block;
  width: 48px;
  height: 6px;
  background: var(--boost-card-border);
  border-radius: 3px;
  overflow: hidden;
  vertical-align: middle;
  margin-right: 6px;
}
.boost-score-bar-fill {
  width: var(--score-width, 0%);
  height: 100%;
  border-radius: 3px;
  transition: width 0.3s ease;
}
.boost-score-bar-completed { background: var(--boost-success); }
.boost-score-bar-processing { background: var(--boost-warning); }
.boost-score-bar-error { background: var(--boost-danger); }

.boost-text-danger { color: var(--boost-danger); font-weight: 600; }
.boost-text-warning { color: var(--boost-warning); font-weight: 600; }
.boost-order-stuck-notice,
.boost-order-refund-notice,
.boost-order-cancel-pending-notice,
.boost-order-progress {
  display: block;
  margin-top: 4px;
  font-size: 11px;
}
.boost-order-stuck-notice { color: var(--boost-danger); }
.boost-order-refund-notice { color: var(--boost-success); font-weight: 500; }
.boost-order-cancel-pending-notice { color: var(--boost-warning); font-weight: 500; }
.boost-order-progress { color: var(--boost-accent); font-weight: 500; }
.boost-order-stuck-notice a {
  color: var(--boost-primary);
  text-decoration: underline;
  margin-left: 4px;
}
.boost-order-refund-notice i,
.boost-order-stuck-notice i,
.boost-order-cancel-pending-notice i,
.boost-order-progress i {
  margin-right: 3px;
}

.boost-hidden[class] { display: none; }
.boost-no-scroll { overflow: hidden; }

/* ============================================================================
   LOADERS & SPINNERS
   ============================================================================ */
@keyframes boost-spin {
  to { transform: rotate(360deg); }
}

.boost-spinner {
  display: inline-block;
  width: 18px;
  height: 18px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: boost-spin 0.6s linear infinite;
  vertical-align: middle;
}

.boost-spinner-sm {
  width: 14px;
  height: 14px;
  border-width: 2px;
}

.boost-btn.boost-btn-loading {
  pointer-events: none;
  opacity: 0.7;
}

/* Page loader — full-screen overlay during navigation */
.boost-page-loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(var(--boost-content-bg-rgb), 0.6);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

.boost-page-loader.active {
  display: flex;
}

.boost-page-loader .boost-spinner {
  width: 32px;
  height: 32px;
  border-width: 3px;
  color: var(--boost-accent);
}

/* Poll indicator — inline spinner next to heading */
.boost-poll-indicator {
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
  margin-left: 8px;
  opacity: 0.6;
}

/* ============================================================================
   TEXTAREA
   ============================================================================ */
.boost-textarea {
  width: 100%;
  padding: 10px 14px;
  background: var(--boost-input-bg);
  border: 1px solid var(--boost-input-border);
  border-radius: var(--boost-radius-sm);
  color: var(--boost-text-1);
  font-size: 14px;
  font-family: inherit;
  resize: vertical;
  min-height: 100px;
  transition: border-color var(--boost-transition), box-shadow var(--boost-transition);
  box-sizing: border-box;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 2px 6px rgba(0,0,0,0.06), 0 0 0 1px rgba(0,0,0,0.02);
}

.boost-textarea:focus {
  outline: none;
  border-color: var(--boost-accent);
  box-shadow: 0 0 0 4px rgba(var(--boost-accent-rgb), 0.1), 0 0 20px rgba(var(--boost-accent-rgb), 0.06);
}

/* ============================================================================
   SETTINGS PAGE
   ============================================================================ */

/* Prefijo .boost-body en ambas: mismo motivo que .boost-packages-title —
   sin él pierden frente al reset ".boost-body p { margin-bottom: 0 }". */
.boost-body .boost-settings-desc {
  color: var(--boost-text-2);
  font-size: 13px;
  line-height: 1.6;
  margin: 0 0 16px;
}
.boost-body .boost-settings-desc-muted {
  color: var(--boost-text-3);
  font-size: 12px;
  margin-bottom: 12px;
}

.boost-settings-avatar-scroll {
  position: relative;
}

.boost-settings-avatar-scroll::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 40px;
  height: 100%;
  background: linear-gradient(to right, transparent, var(--boost-card-bg, #1a1f2e));
  pointer-events: none;
  opacity: 1;
  transition: opacity 0.2s;
}

.boost-settings-avatar-scroll.scrolled-end::after {
  opacity: 0;
}

.boost-settings-avatar-grid {
  display: flex;
  gap: 10px;
  padding: 12px 0;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.boost-settings-avatar-grid::-webkit-scrollbar {
  display: none;
}

.boost-settings-avatar-grid .boost-avatar-option {
  width: 56px;
  height: 56px;
  flex-shrink: 0;
  scroll-snap-align: start;
}

.boost-settings-reset {
  margin-top: 0;
}

.boost-settings-feedback {
  margin-top: 8px;
  color: var(--boost-success);
  font-size: 13px;
  font-weight: 600;
}

/* ---- Avatar upload ---- */

.boost-avatar-upload-wrap {
  margin-top: 16px;
}

.boost-avatar-upload-sep {
  display: block;
  color: var(--boost-text-2);
  font-size: 13px;
  margin-bottom: 10px;
}

.boost-avatar-upload-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.boost-avatar-upload-preview {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  border: 2px solid var(--boost-accent);
  box-shadow: 0 0 10px rgba(var(--boost-accent-rgb), 0.25);
}

.boost-avatar-upload-preview-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.boost-btn-danger-text {
  color: var(--boost-danger);
}

.boost-btn-danger-text:hover {
  background: var(--boost-danger-bg);
}

/* ---- Danger zone ---- */

.boost-settings-danger {
  margin-top: 40px;
  border: 1px solid var(--boost-danger);
  border-radius: var(--boost-radius);
  padding: 24px;
  background: var(--boost-danger-bg);
}

.boost-settings-danger h2 {
  color: var(--boost-danger);
}

.boost-settings-danger h2 i {
  color: var(--boost-danger);
}

.boost-settings-danger-list {
  list-style: none;
  padding: 0;
  margin: 8px 0 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.boost-settings-danger-list li {
  font-size: 13px;
  color: var(--boost-text-2);
  display: flex;
  align-items: center;
  gap: 8px;
}

.boost-settings-danger-list li i {
  color: var(--boost-danger);
  font-size: 11px;
  flex-shrink: 0;
}

.boost-settings-creator-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 12px;
}
.boost-settings-creator-actions .boost-settings-desc {
  width: 100%;
  margin-top: 0;
}

.boost-delete-modal-error {
  font-size: 13px;
  color: var(--boost-danger);
  margin-top: 8px;
  min-height: 18px;
}
.boost-modal-box .boost-form-group {
  margin: 10px 0;
}

/* ---- Settings grid ---- */

/* ── Editor tabs ──────────────── */
.boost-editor-sticky-nav {
  grid-column: 1 / -1;
  position: sticky;
  top: var(--boost-topbar-h);
  z-index: 20;
  background: var(--boost-bg);
  padding-bottom: 4px;
}
.boost-editor-tabs {
  display: flex;
  gap: 4px;
  border-bottom: 1px solid var(--boost-card-border);
  padding-bottom: 4px;
}
.boost-editor-tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--boost-text-3);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: color var(--boost-transition), border-color var(--boost-transition);
}
.boost-editor-tab:hover { color: var(--boost-text-1); }
.boost-editor-tab.active {
  color: var(--boost-accent);
  border-bottom-color: var(--boost-accent);
}
.boost-editor-preview-link {
  margin-left: auto;
  margin-right: auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 20px;
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
  color: var(--boost-white);
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  transition: opacity var(--boost-transition), box-shadow var(--boost-transition);
}
.boost-editor-preview-link:hover {
  opacity: 0.88;
  box-shadow: 0 2px 12px rgba(var(--boost-accent-rgb), 0.35);
}
.boost-editor-preview-link i { font-size: 11px; }
.boost-editor-panel { display: none; grid-column: 1 / -1; }
.boost-editor-panel.active { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }

@media (max-width: 480px) {
  .boost-editor-tabs { overflow-x: auto; gap: 0; }
  .boost-editor-tab span { display: none; }
  .boost-editor-tab { padding: 8px 12px; font-size: 15px; }
  .boost-editor-preview-link { padding: 5px 12px; font-size: 11px; }
}

.boost-settings-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  align-items: start;
}

.boost-settings-card {
  background: var(--boost-card-bg);
  border: var(--boost-border-w) solid var(--boost-card-border);
  border-radius: var(--boost-radius);
  padding: 28px;
  box-shadow: var(--boost-glass-shadow);
  overflow: visible;
  /* Los grid items no se encogen por debajo del contenido más ancho de dentro
     (min-width:auto por defecto) — sin esto la tarjeta ignoraba el ancho real
     de su columna del grid (370px) y salía tan ancha como su hijo más ancho
     (422px), desbordando 42px por la derecha en móvil. Bug real 2026-09-09. */
  min-width: 0;
}

.boost-settings-card-full {
  grid-column: 1 / -1;
}

.boost-settings-links-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
  margin-top: 12px;
}
.boost-settings-link {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border: 1px solid var(--boost-border);
  border-radius: 12px;
  background: var(--boost-content-bg-light);
  color: var(--boost-text-1);
  text-decoration: none;
  transition: background 0.15s, border-color 0.15s, transform 0.15s;
}
.boost-settings-link:hover {
  background: var(--boost-accent-glow);
  border-color: var(--boost-accent);
  transform: translateX(2px);
}
.boost-settings-link > i:first-child {
  font-size: 1.15rem;
  color: var(--boost-accent);
  flex-shrink: 0;
  width: 32px;
  text-align: center;
}
.boost-settings-link-text {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.boost-settings-link-text strong {
  font-size: 0.92rem;
  color: var(--boost-text-1);
}
.boost-settings-link-text span {
  font-size: 0.78rem;
  color: var(--boost-text-3);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.boost-settings-link-arrow {
  color: var(--boost-text-3);
  font-size: 0.8rem;
  flex-shrink: 0;
}

.boost-links-tip {
  padding: 16px 20px;
  font-size: 13px;
  line-height: 1.6;
  text-align: center;
  color: var(--boost-text-2);
  background: rgba(var(--boost-accent-rgb), 0.06);
  border-left: 3px solid var(--boost-accent);
  border-radius: var(--boost-radius-sm);
}

.boost-links-tip + .boost-form-grid {
  margin-top: 28px;
}

.boost-links-tip i {
  color: var(--boost-accent);
  margin-right: 6px;
}

.boost-links-tip-boost {
  display: block;
  margin-top: 6px;
  font-size: 12px;
  color: var(--boost-text-3);
}

.boost-links-tip-boost a {
  color: var(--boost-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.boost-settings-card-compact {
  max-width: 680px;
  justify-self: center;
}

.boost-settings-card-compact .boost-settings-card-header {
  justify-content: center;
}

.boost-settings-section-divider {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 8px 0 0;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--boost-text-3);
}

.boost-settings-section-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: rgba(var(--boost-accent-rgb), 0.12);
}

.boost-badge-inline {
  font-size: 9px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--boost-badge-of-start), var(--boost-badge-of-end));
  color: var(--boost-white);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.boost-settings-card-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 0 0 16px;
  margin: 0 0 20px;
  border-bottom: 1px solid rgba(var(--boost-accent-rgb), 0.10);
}

.boost-settings-card-header h2 {
  font-size: 16px;
  font-weight: 700;
  color: var(--boost-text-1);
  margin: 0;
}

.boost-settings-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: var(--boost-radius-xs);
  background: linear-gradient(135deg, rgba(var(--boost-accent-rgb), 0.15), rgba(var(--boost-accent-rgb), 0.06));
  color: var(--boost-accent);
  font-size: 16px;
  flex-shrink: 0;
}

.boost-settings-card-danger {
  border-color: var(--boost-danger);
  background: var(--boost-danger-bg);
  margin-top: 20px;
}

.boost-settings-card-thumb {
  width: 38px;
  height: 38px;
  border-radius: var(--boost-radius-xs);
  object-fit: cover;
  flex-shrink: 0;
}

.boost-settings-card-danger .boost-settings-card-icon {
  background: linear-gradient(135deg, rgba(var(--boost-danger-rgb), 0.15), rgba(var(--boost-danger-rgb), 0.06));
  color: var(--boost-danger);
}

.boost-settings-card-danger .boost-settings-card-header h2 {
  color: var(--boost-danger);
}

.boost-settings-card-danger .boost-settings-card-header {
  border-bottom-color: rgba(var(--boost-danger-rgb), 0.18);
}

/* ---- Face verification section ---- */

.boost-verify-section {
  padding: 16px;
  margin: 16px 16px 0;
  border: 1px solid rgba(var(--boost-accent-rgb), 0.15);
  border-radius: var(--boost-radius-sm);
  background: rgba(var(--boost-accent-rgb), 0.03);
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.boost-verify-status {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
}

.boost-verify-status > i {
  font-size: 22px;
  flex-shrink: 0;
}

.boost-verify-status > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.boost-verify-status strong {
  font-size: 13px;
}

.boost-verify-status-desc {
  font-size: 11px;
  color: var(--boost-text-3);
}

.boost-verify-status-verified > i {
  color: var(--boost-success);
}

.boost-verify-status-unverified > i {
  color: var(--boost-text-3);
}

/* ---- Creator Premium section ---- */

.boost-badge-premium {
  background: rgba(var(--boost-accent-rgb), 0.12);
  color: var(--boost-accent);
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: var(--boost-radius-xs);
  margin-left: auto;
}

.boost-premium-status {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-radius: var(--boost-radius-sm);
  margin-bottom: 16px;
}

.boost-premium-status-active {
  background: rgba(var(--boost-accent-rgb), 0.08);
  border: 1px solid rgba(var(--boost-accent-rgb), 0.2);
}

.boost-premium-status-active > i {
  font-size: 20px;
  color: var(--boost-accent);
}

.boost-premium-status-active > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.boost-premium-status-active > div > strong {
  font-size: 14px;
  color: var(--boost-accent);
}

.boost-premium-status-active > div > span {
  font-size: 12px;
  color: var(--boost-text-3);
}

.boost-premium-benefits {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}

.boost-premium-benefit {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: var(--boost-text-2);
}

.boost-premium-benefit > i {
  width: 18px;
  text-align: center;
  color: var(--boost-accent);
  font-size: 12px;
}

.boost-premium-store {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 16px;
}

.boost-premium-plans {
  display: flex;
  gap: 8px;
}
@media (max-width: 480px) {
  .boost-premium-plans { flex-direction: column; }
}

.boost-premium-choose {
  font-size: 13px;
  font-weight: 600;
  color: var(--boost-text-3);
  margin: 0;
}
.boost-premium-plan-chip {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border: 2px solid var(--boost-card-border);
  border-radius: var(--boost-radius);
  background: var(--boost-card-bg);
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
  flex: 1;
  min-width: 0;
}
.boost-premium-plan-chip:hover {
  border-color: var(--boost-accent);
}
.boost-premium-plan-chip.active {
  border-color: var(--boost-accent);
  background: rgba(var(--boost-accent-rgb), 0.06);
  box-shadow: 0 0 0 3px rgba(var(--boost-accent-rgb), 0.12);
}
.boost-premium-plan-radio {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid var(--boost-card-border);
  flex-shrink: 0;
  transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
}
.boost-premium-plan-chip.active .boost-premium-plan-radio {
  border-color: var(--boost-accent);
  background: var(--boost-accent);
  box-shadow: inset 0 0 0 3px var(--boost-card-bg);
}
.boost-premium-plan-days {
  font-size: 14px;
  font-weight: 700;
  color: var(--boost-text-1);
}
.boost-premium-plan-price {
  font-size: 14px;
  font-weight: 700;
  color: var(--boost-accent);
}

.boost-premium-buy-btn {
  width: 100%;
  padding: 14px 20px;
  font-size: 15px;
  font-weight: 700;
  border: none;
  border-radius: var(--boost-radius);
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
  color: var(--boost-white);
  cursor: pointer;
  transition: box-shadow 0.25s, opacity 0.25s;
  box-shadow: 0 4px 16px rgba(var(--boost-accent-rgb), 0.3);
}
.boost-premium-buy-btn:hover {
  box-shadow: 0 6px 24px rgba(var(--boost-accent-rgb), 0.45);
}
.boost-premium-buy-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  box-shadow: none;
}

/* Plan chip states */
.boost-premium-plan-disabled {
  opacity: 0.35;
  cursor: not-allowed;
  pointer-events: none;
}
.boost-premium-plan-current {
  opacity: 0.5;
  cursor: default;
  pointer-events: none;
  border-color: var(--boost-text-3);
  background: rgba(var(--boost-accent-rgb), 0.03);
}
.boost-premium-plan-current .boost-premium-plan-radio {
  border-color: var(--boost-text-3);
  background: var(--boost-text-3);
  box-shadow: inset 0 0 0 3px var(--boost-card-bg);
}
.boost-premium-plan-current .boost-premium-plan-price {
  color: var(--boost-text-3);
}

/* Plan info + label */
.boost-premium-plan-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}
.boost-premium-plan-label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--boost-text-3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.boost-premium-plan-current .boost-premium-plan-label {
  color: var(--boost-text-3);
}
/* Free upgrade badge */
.boost-premium-plan-free {
  color: var(--boost-success);
}

/* Pricing with strikethrough */
.boost-premium-plan-pricing {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
.boost-premium-plan-original {
  font-size: 11px;
  color: var(--boost-text-3);
  text-decoration: line-through;
}

/* Days remaining */
.boost-premium-days-left {
  font-size: 11px;
  font-weight: 600;
  color: var(--boost-warning);
}

/* Insufficient balance hint */
.boost-premium-balance-hint {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--boost-accent);
  margin: 0;
  padding: 10px 0 0;
}

/* No action message */
.boost-premium-no-action {
  font-size: 13px;
  color: var(--boost-text-3);
  text-align: center;
  padding: 8px 0;
}

/* ---- Referral section ---- */

.boost-referral-section {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.boost-referral-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--boost-text-3);
  margin-bottom: 4px;
  display: block;
}

.boost-referral-input-group {
  display: flex;
  gap: 6px;
}

.boost-referral-input-group .boost-input {
  flex: 1;
  font-size: 12px;
  min-width: 0;
}

.boost-referral-stats {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  margin-top: 20px;
  margin-bottom: 16px;
}

.boost-referral-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  flex: 1 1 auto;
  min-width: 100px;
  max-width: 160px;
  padding: 12px 16px;
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-border);
  border-radius: var(--boost-radius-sm);
}

.boost-referral-stat-value {
  font-size: 22px;
  font-weight: 800;
  color: var(--boost-accent);
}

.boost-referral-stat-label {
  font-size: 11px;
  font-weight: 600;
  color: var(--boost-text-3);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.boost-referral-desc {
  font-size: 13px;
  color: var(--boost-text-3);
  line-height: 1.5;
  margin: 0 0 16px;
}

/* ── Share buttons row ── */
.boost-referral-share-row {
  display: flex;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.boost-referral-share-btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--boost-border);
  background: var(--boost-card-bg);
  color: var(--boost-text-2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.boost-referral-share-btn:hover[data-network="whatsapp"] { background: var(--platform-whatsapp); color: var(--boost-white); border-color: var(--platform-whatsapp); }
.boost-referral-share-btn:hover[data-network="facebook"] { background: var(--platform-facebook); color: var(--boost-white); border-color: var(--platform-facebook); }
.boost-referral-share-btn:hover[data-network="twitter"]  { background: var(--platform-x);        color: var(--boost-white); border-color: var(--platform-x); }
.boost-referral-share-btn:hover[data-network="telegram"] { background: var(--platform-telegram); color: var(--boost-white); border-color: var(--platform-telegram); }
.boost-referral-share-btn:hover[data-network="native"]   { background: var(--boost-accent); color: var(--boost-white); border-color: var(--boost-accent); }
.boost-referral-share-btn:hover[data-network="qr"]      { background: var(--boost-accent); color: var(--boost-white); border-color: var(--boost-accent); }

/* ── Referral share wrap (DRY partial) ── */
.boost-ref-share-wrap {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* ── Referral progress bars ── */
.boost-ref-progress {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 16px;
}

.boost-ref-progress-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--boost-text-3);
}

.boost-ref-progress-track {
  height: 12px;
  background: var(--boost-border);
  border-radius: 6px;
  overflow: hidden;
}

.boost-ref-progress-fill {
  height: 100%;
  width: var(--progress, 0%);
  background: linear-gradient(90deg, var(--boost-accent), color-mix(in srgb, var(--boost-accent) 70%, var(--boost-white)));
  border-radius: 6px;
  transition: width 0.6s ease;
}

.boost-ref-progress-track-vis .boost-ref-progress-fill,
.boost-ref-progress-fill-vis {
  background: linear-gradient(90deg, var(--boost-donor-gold), var(--boost-donor-legend-start));
}

.boost-ref-progress-markers {
  display: flex;
  justify-content: space-between;
  gap: 4px;
}

.boost-ref-progress-marker {
  font-size: 11px;
  color: var(--boost-text-4, var(--boost-text-3));
  opacity: 0.5;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 8px 12px;
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-border);
  border-radius: var(--boost-radius-sm);
  transition: border-color 0.2s, opacity 0.2s;
}

.boost-ref-progress-marker small {
  font-size: 10px;
  color: var(--boost-text-4, var(--boost-text-3));
}

.boost-ref-progress-marker.reached {
  color: var(--boost-accent);
  opacity: 1;
  font-weight: 600;
  border-color: var(--boost-accent);
  background: color-mix(in srgb, var(--boost-accent) 8%, var(--boost-card-bg));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--boost-accent) 15%, transparent);
}

.boost-ref-progress-marker.reached small {
  color: var(--boost-accent);
}

.boost-ref-progress-track-vis + .boost-ref-progress-markers .boost-ref-progress-marker.reached {
  color: var(--boost-donor-gold);
}

.boost-ref-progress-next {
  font-size: 12px;
  color: var(--boost-text-3);
  margin-top: 2px;
}

.boost-ref-progress-complete {
  color: var(--boost-success);
  font-weight: 600;
}

.boost-ref-hub-progress {
  border: 1px solid var(--boost-accent);
  border-radius: var(--boost-radius);
  background: linear-gradient(135deg, color-mix(in srgb, var(--boost-accent) 4%, var(--boost-card-bg)), var(--boost-card-bg));
  padding: 20px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.03), 0 4px 16px rgba(0,0,0,0.05);
}

.boost-ref-progress-goal {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border: 1px dashed var(--boost-accent);
  border-radius: var(--boost-radius-sm);
  background: color-mix(in srgb, var(--boost-accent) 6%, transparent);
  font-size: 13px;
  color: var(--boost-text-2);
  margin-top: 10px;
}

.boost-ref-progress-goal i {
  color: var(--boost-accent);
}

.boost-ref-hub-table-current td {
  background: color-mix(in srgb, var(--boost-accent) 12%, transparent);
  font-weight: 600;
}

/* ── Referral level badges ── */
.boost-ref-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  font-size: 10px;
  color: var(--boost-white);
  vertical-align: middle;
  margin-left: 3px;
}

.boost-ref-promoter  { background: var(--boost-accent); }
.boost-ref-influencer { background: var(--boost-donor-gold); }
.boost-ref-ambassador { background: var(--boost-donor-platinum-start); }
.boost-ref-legend     { background: var(--boost-donor-legend-start); }

/* ── Referral hub page ── */

/* All cards in hub: force vertical stacking (override .boost-card flex-row) */
.boost-ref-hub .boost-card {
  flex-direction: column;
  align-items: stretch;
}

/* ── Hero + CTA shared container ── */
.boost-ref-hub-hero,
.boost-ref-hub-cta {
  text-align: center;
  background: color-mix(in srgb, var(--boost-accent) 6%, var(--boost-bg-2));
  border: 1px solid color-mix(in srgb, var(--boost-accent) 15%, var(--boost-border));
  padding: 36px 24px 32px;
  border-radius: var(--boost-radius);
  position: relative;
  overflow: hidden;
}

.boost-ref-hub-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 16px;
  border-radius: 50px;
  background: color-mix(in srgb, var(--boost-accent) 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--boost-accent) 20%, transparent);
  color: var(--boost-accent);
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 16px;
}

.boost-ref-hub-hero h1 {
  font-size: 24px;
  font-weight: 800;
  color: var(--boost-text-1);
  margin: 0 0 8px;
}

.boost-ref-hub-subtitle {
  font-size: 14px;
  color: var(--boost-text-2);
  margin: 0 auto 20px;
  line-height: 1.5;
  max-width: 480px;
}

.boost-ref-hub-value {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  margin: 0 0 20px;
}
.boost-ref-hub-value-amount {
  font-size: 40px;
  font-weight: 800;
  color: var(--boost-accent);
  line-height: 1.1;
  letter-spacing: -1px;
}
.boost-ref-hub-value-label {
  font-size: 14px;
  font-weight: 600;
  color: var(--boost-text-1);
}
.boost-ref-hub-value-hint {
  font-size: 12px;
  color: var(--boost-text-3);
}

.boost-ref-hub-hero .boost-referral-stat {
  background: color-mix(in srgb, var(--boost-accent) 8%, transparent);
  border: 1px solid color-mix(in srgb, var(--boost-accent) 12%, transparent);
  border-radius: var(--boost-radius-sm);
}

.boost-ref-hub-hero .boost-referral-stat-value {
  color: var(--boost-accent);
  font-size: 28px;
}

.boost-ref-hub-hero .boost-referral-stat-label {
  color: var(--boost-text-3);
}

/* Hero + CTA: share components */
.boost-ref-hub-hero .boost-referral-label,
.boost-ref-hub-cta .boost-referral-label {
  color: var(--boost-text-2);
}

.boost-ref-hub-hero .boost-referral-share-btn,
.boost-ref-hub-cta .boost-referral-share-btn {
  border: none;
  border-radius: var(--boost-radius-sm);
  color: var(--boost-white);
  transition: transform 0.15s, box-shadow 0.15s;
}
.boost-ref-hub-hero .boost-referral-share-btn:hover,
.boost-ref-hub-cta .boost-referral-share-btn:hover {
  transform: translateY(-2px);
}
.boost-ref-hub-hero .boost-referral-share-btn[data-network="whatsapp"],
.boost-ref-hub-cta .boost-referral-share-btn[data-network="whatsapp"] {
  background: var(--platform-whatsapp);
  box-shadow: 0 3px 10px color-mix(in srgb, var(--platform-whatsapp) 35%, transparent);
}
.boost-ref-hub-hero .boost-referral-share-btn[data-network="facebook"],
.boost-ref-hub-cta .boost-referral-share-btn[data-network="facebook"] {
  background: var(--platform-facebook);
  box-shadow: 0 3px 10px color-mix(in srgb, var(--platform-facebook) 35%, transparent);
}
.boost-ref-hub-hero .boost-referral-share-btn[data-network="twitter"],
.boost-ref-hub-cta .boost-referral-share-btn[data-network="twitter"] {
  background: var(--platform-twitter);
  box-shadow: 0 3px 10px color-mix(in srgb, var(--platform-twitter) 35%, transparent);
}
.boost-ref-hub-hero .boost-referral-share-btn[data-network="telegram"],
.boost-ref-hub-cta .boost-referral-share-btn[data-network="telegram"] {
  background: var(--platform-telegram);
  box-shadow: 0 3px 10px color-mix(in srgb, var(--platform-telegram) 35%, transparent);
}
.boost-ref-hub-hero .boost-referral-share-btn[data-network="native"],
.boost-ref-hub-cta .boost-referral-share-btn[data-network="native"],
.boost-ref-hub-hero .boost-referral-share-btn[data-network="qr"],
.boost-ref-hub-cta .boost-referral-share-btn[data-network="qr"] {
  background: color-mix(in srgb, var(--boost-accent) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--boost-accent) 20%, transparent);
  color: var(--boost-accent);
}

.boost-ref-hub-hero .boost-referral-input-group .boost-input,
.boost-ref-hub-cta .boost-referral-input-group .boost-input {
  background: var(--boost-bg-1);
  border-color: var(--boost-border);
  color: var(--boost-text-1);
}

.boost-ref-hub-share {
  max-width: 500px;
  margin: 0 auto 20px;
}

.boost-ref-hub-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 16px;
  position: relative;
}

.boost-ref-hub-steps::before {
  content: '';
  position: absolute;
  top: 18px;
  left: calc(12.5% + 18px);
  right: calc(12.5% + 18px);
  height: 2px;
  background: var(--boost-border);
}

.boost-ref-hub-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  position: relative;
  z-index: 1;
}

.boost-ref-hub-step-num {
  width: 36px;
  height: 36px;
  min-width: 36px;
  border-radius: 50%;
  background: var(--boost-accent);
  color: var(--boost-white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 15px;
  box-shadow: 0 0 0 4px var(--boost-content-bg);
}

.boost-ref-hub-step-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 2px;
}

.boost-ref-hub-step-body strong {
  font-size: 14px;
  color: var(--boost-text-1);
}

.boost-ref-hub-step-body span {
  font-size: 13px;
  color: var(--boost-text-3);
  line-height: 1.4;
}

/* Rewards table */
.boost-ref-hub-table-wrap {
  overflow-x: auto;
  margin-top: 12px;
}

.boost-ref-hub-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.boost-ref-hub-table th {
  text-align: left;
  font-weight: 600;
  padding: 8px 12px;
  border-bottom: 2px solid var(--boost-border);
  color: var(--boost-text-2);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.boost-ref-hub-table td {
  padding: 8px 12px;
  border-bottom: 1px solid var(--boost-border);
  color: var(--boost-text-1);
}

/* Tips grid (flex for centering last row with odd items) */
.boost-ref-hub-tips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin-top: 12px;
}

.boost-ref-hub-tip {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 10px;
  padding: 20px 16px;
  border: 1px solid var(--boost-border);
  border-radius: var(--boost-radius);
  transition: transform 0.2s, box-shadow 0.2s;
  flex: 0 0 calc((100% - 24px) / 3);
  min-width: 0;
}

.boost-ref-hub-tip:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px color-mix(in srgb, var(--boost-accent) 10%, transparent);
  background: color-mix(in srgb, var(--boost-accent) 4%, transparent);
}

.boost-ref-hub-tip > i {
  font-size: 22px;
  color: var(--boost-accent);
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: color-mix(in srgb, var(--boost-accent) 10%, transparent);
}

.boost-ref-hub-tip div {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

.boost-ref-hub-tip strong {
  font-size: 14px;
  color: var(--boost-text-1);
}

.boost-ref-hub-tip span {
  font-size: 13px;
  color: var(--boost-text-3);
  line-height: 1.4;
}

/* Empty + loading */
.boost-ref-hub-loading {
  display: flex;
  justify-content: center;
  padding: 24px 0;
}

/* Pagination */
.boost-ref-hub-pagination {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: 12px;
}

.boost-ref-hub-cta h2 {
  color: var(--boost-text-1);
  margin-bottom: 8px;
}

.boost-ref-hub-cta p {
  color: var(--boost-text-2);
  margin-bottom: 16px;
}

/* Hero/CTA: native share hover */
.boost-ref-hub-hero .boost-referral-share-btn:hover[data-network="native"],
.boost-ref-hub-cta .boost-referral-share-btn:hover[data-network="native"],
.boost-ref-hub-hero .boost-referral-share-btn:hover[data-network="qr"],
.boost-ref-hub-cta .boost-referral-share-btn:hover[data-network="qr"] {
  background: var(--boost-accent);
  color: var(--boost-white);
  border-color: var(--boost-accent);
}

/* ── Visibility level cards ── */
.boost-ref-hub-levels {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 16px;
}

.boost-ref-hub-level-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 20px 12px;
  border: 1px solid var(--boost-border);
  border-radius: var(--boost-radius);
  text-align: center;
  position: relative;
  transition: transform 0.2s, border-color 0.2s, box-shadow 0.2s, opacity 0.2s, filter 0.2s;
}

.boost-ref-hub-level-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px color-mix(in srgb, var(--boost-accent) 8%, transparent);
}

.boost-ref-hub-level-card-active {
  border-color: var(--boost-accent);
  box-shadow: 0 0 0 1px var(--boost-accent), 0 4px 16px color-mix(in srgb, var(--boost-accent) 15%, transparent);
}

.boost-ref-hub-level-card-locked {
  opacity: 0.45;
  filter: grayscale(0.3);
}

.boost-ref-hub-level-card-locked:hover {
  transform: none;
  box-shadow: none;
}

.boost-ref-hub-level-card-locked::after {
  content: '\f023';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  position: absolute;
  top: 8px;
  right: 8px;
  font-size: 10px;
  color: var(--boost-text-4, var(--boost-text-3));
}

.boost-ref-hub-level-icon {
  font-size: 22px;
  color: var(--boost-accent);
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: color-mix(in srgb, var(--boost-accent) 10%, transparent);
}

.boost-ref-hub-level-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--boost-text-1);
}

.boost-ref-hub-level-at {
  font-size: 12px;
  color: var(--boost-text-3);
}

.boost-ref-hub-level-boost {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 50px;
  background: color-mix(in srgb, var(--boost-accent) 8%, transparent);
  color: var(--boost-accent);
  font-size: 12px;
  font-weight: 700;
}

/* ── Referral empty state (motivating) ── */
.boost-ref-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 32px 16px;
  text-align: center;
}

.boost-ref-empty-state-icon {
  font-size: 48px;
  color: var(--boost-accent);
  opacity: 0.8;
}

.boost-ref-empty-state-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--boost-text-1);
}

.boost-ref-empty-state-hint {
  font-size: 14px;
  color: var(--boost-text-3);
}

/* ── Leaderboard ── */
.boost-ref-leaderboard-medal {
  font-size: 18px;
  min-width: 28px;
  text-align: center;
}

.boost-ref-leaderboard-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
  vertical-align: middle;
}

/* ── QR modal ── */
.boost-ref-qr-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 8px 0;
}

.boost-ref-qr-wrap svg {
  max-width: 200px;
  max-height: 200px;
  width: 100%;
  height: auto;
}

/* ── Pitch templates ── */
.boost-ref-template-card {
  flex: 1 1 100%;
  padding: 16px;
  border: 1px solid var(--boost-border);
  border-radius: var(--boost-radius);
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.boost-ref-template-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.boost-ref-template-header i {
  font-size: 18px;
}

.boost-ref-template-text {
  font-size: 13px;
  line-height: 1.5;
  color: var(--boost-text-2);
  white-space: pre-line;
}

@media (max-width: 480px) {
  .boost-referral-share-btn { width: 40px; height: 40px; font-size: 16px; }
}

/* ── Invite landing ── */

/* Invite landing — lighter page background */
.boost-body-minimal.boost-body-creators {
  --boost-content-bg: #f8f9fc;
  background: var(--boost-content-bg);
}
/* Card tints — must be inside .boost-main-minimal where --boost-accent-rgb is pink */
.boost-body-minimal.boost-body-creators .boost-main-minimal {
  --boost-card-bg: rgba(var(--boost-accent-rgb), 0.03);
  --boost-card-border: rgba(var(--boost-accent-rgb), 0.10);
}

/* Hero outer — soft pink tint */
.boost-invite-hero {
  text-align: center;
  padding: 56px 16px 36px;
  background: rgba(var(--boost-accent-rgb), 0.10);
  color: var(--boost-text-1);
  border-radius: var(--boost-radius);
  margin-bottom: 48px;
}

/* Hero inner container — semi-transparent white, contrasts with outer tint */
.boost-invite-hero > .boost-container {
  --boost-container-bg: rgba(255, 255, 255, 0.70);
  background: var(--boost-container-bg);
  border-color: rgba(var(--boost-accent-rgb), 0.08);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* Sections container (after hero) — no glass */
.boost-invite-hero ~ .boost-container {
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: none;
  box-shadow: none;
  padding: 0;
}

.boost-invite-hero ~ .boost-container .boost-card {
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.02);
}

.boost-invite-title {
  font-size: 30px;
  font-weight: 800;
  margin: 0 0 12px;
  line-height: 1.2;
}

.boost-invite-subtitle {
  font-size: 16px;
  color: var(--boost-text-2);
  margin: 0 0 24px;
  max-width: 480px;
  margin-inline: auto;
  line-height: 1.5;
}


.boost-invite-social-proof {
  display: flex;
  justify-content: center;
  gap: 24px;
  margin-top: 20px;
  font-size: 14px;
  color: var(--boost-text-2);
}

.boost-invite-online-dot {
  font-size: 8px;
  color: var(--boost-success);
  vertical-align: middle;
  margin-right: 2px;
}

.boost-invite-section {
  margin-bottom: 64px;
}

.boost-invite-section-title {
  text-align: center;
  font-size: 24px;
  font-weight: 700;
  margin: 0 0 36px;
  color: var(--boost-text-1);
}

.boost-invite-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.boost-invite-benefit {
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 28px 20px;
}

.boost-invite-benefit-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(var(--boost-accent-rgb), 0.1);
  font-size: 24px;
  color: var(--boost-accent);
  margin-bottom: 12px;
}

.boost-invite-benefit h3 {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 8px;
  color: var(--boost-text-1);
}

.boost-invite-benefit p {
  font-size: 13px;
  color: var(--boost-text-2);
  margin: 0;
  line-height: 1.5;
}

.boost-invite-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.boost-invite-step {
  text-align: center;
  padding: 16px;
}

.boost-invite-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--boost-accent);
  color: var(--boost-white);
  font-size: 16px;
  font-weight: 800;
  margin-bottom: 12px;
}

.boost-invite-step h3 {
  font-size: 15px;
  font-weight: 700;
  margin: 0 0 6px;
  color: var(--boost-text-1);
}

.boost-invite-step p {
  font-size: 13px;
  color: var(--boost-text-2);
  margin: 0;
  line-height: 1.5;
}

.boost-invite-premium-cta .boost-card {
  text-align: center;
  padding: 32px 24px;
}

.boost-invite-premium-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.boost-invite-crown {
  font-size: 32px;
  color: var(--boost-accent);
}

.boost-invite-premium-inner h2 {
  font-size: 20px;
  font-weight: 700;
  margin: 0;
  color: var(--boost-text-1);
}

.boost-invite-premium-inner p {
  font-size: 14px;
  color: var(--boost-text-3);
  margin: 0;
  max-width: 400px;
  line-height: 1.5;
}

/* ---- Invite landing v2 additions ---- */

.boost-invite-hero-value {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  margin-bottom: 16px;
}

.boost-invite-hero-value-amount {
  font-size: 48px;
  font-weight: 800;
  color: var(--boost-accent);
  line-height: 1.1;
}

.boost-invite-hero-value-label {
  font-size: 14px;
  font-weight: 600;
  color: var(--boost-text-2);
}

.boost-invite-trust {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin-top: 20px;
  flex-wrap: wrap;
}

.boost-invite-trust-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--boost-text-2);
}

.boost-invite-trust-item i {
  font-size: 14px;
  color: var(--boost-success);
}

.boost-invite-explainer-short {
  font-size: 17px;
  font-weight: 500;
  color: var(--boost-text-1);
}

.boost-invite-benefit-hint {
  font-size: 14px;
  font-weight: 700;
  color: var(--boost-accent);
}

.boost-invite-income-cta {
  margin-top: 4px;
  font-size: 13px;
  padding: 10px 24px;
}

.boost-invite-mid-cta {
  text-align: center;
  margin-bottom: 56px;
}

.boost-invite-badge {
  display: inline-block;
  padding: 6px 16px;
  border-radius: 50px;
  background: rgba(var(--boost-accent-rgb), 0.12);
  color: var(--boost-accent);
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 16px;
}

.boost-invite-hero-note {
  font-size: 13px;
  color: var(--boost-text-3);
  margin-top: 12px;
}

.boost-invite-explainer {
  text-align: center;
  max-width: 640px;
  margin: 0 auto;
  line-height: 1.7;
  color: var(--boost-text-2);
  font-size: 15px;
}

.boost-invite-explainer p {
  margin: 0 0 12px;
}

.boost-invite-income-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.boost-invite-income-card {
  text-align: center;
  padding: 28px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.boost-invite-income-tier {
  font-size: 13px;
  font-weight: 700;
  color: var(--boost-text-1);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.boost-invite-income-range {
  font-size: 26px;
  font-weight: 800;
  color: var(--boost-accent);
}

.boost-invite-income-card p {
  font-size: 13px;
  color: var(--boost-text-2);
  margin: 0;
  line-height: 1.5;
}

.boost-invite-income-active {
  border-color: var(--boost-accent);
  box-shadow: 0 0 0 1px var(--boost-accent), 0 4px 16px rgba(var(--boost-accent-rgb), 0.15);
}

.boost-invite-grid-6 {
  grid-template-columns: repeat(3, 1fr);
}

.boost-invite-steps-4 {
  grid-template-columns: repeat(4, 1fr);
}

.boost-invite-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

.boost-invite-stat-item {
  text-align: center;
  padding: 28px 16px;
  background: var(--boost-card-bg);
  border: var(--boost-border-w) solid var(--boost-card-border);
  border-radius: var(--boost-radius-sm);
}

.boost-invite-stat-number {
  display: block;
  font-size: 32px;
  font-weight: 800;
  color: var(--boost-accent);
  margin-bottom: 4px;
}

.boost-invite-stat-label {
  font-size: 13px;
  color: var(--boost-text-2);
}

.boost-invite-early-card {
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 36px 28px;
}

.boost-invite-early-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.boost-invite-early-icon {
  font-size: 32px;
  color: var(--boost-accent);
}

.boost-invite-early-inner h2 {
  font-size: 20px;
  font-weight: 700;
  margin: 0;
  color: var(--boost-text-1);
}

.boost-invite-early-inner p {
  font-size: 14px;
  color: var(--boost-text-2);
  margin: 0;
  max-width: 480px;
  line-height: 1.5;
}

.boost-invite-early-list {
  text-align: left;
  max-width: 400px;
  margin: 8px auto 0;
}

.boost-invite-early-list li {
  padding: 6px 0;
  font-size: 14px;
  color: var(--boost-text-2);
  display: flex;
  align-items: center;
  gap: 10px;
}

.boost-invite-early-list li i {
  color: var(--boost-accent);
  font-size: 12px;
  flex-shrink: 0;
}

.boost-invite-final-cta {
  text-align: center;
  padding: 40px 16px;
}

.boost-invite-final-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.boost-invite-final-inner h2 {
  font-size: 24px;
  font-weight: 800;
  margin: 0;
  color: var(--boost-text-1);
}

/* Sticky CTA pill for invite landing (reuses draft-pill positioning pattern) */
.boost-invite-sticky {
  position: fixed;
  bottom: 20px;
  left: 0;
  right: 0;
  width: fit-content;
  margin-inline: auto;
  transform: translateY(100px);
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  background: var(--boost-white);
  border: 2px solid rgba(var(--boost-accent-rgb), 0.35);
  border-radius: 50px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.18), 0 2px 8px rgba(0,0,0,0.1);
  backdrop-filter: blur(20px) saturate(150%);
  z-index: 900;
  opacity: 0;
  pointer-events: none;
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.25s ease;
  max-width: calc(100vw - 32px);
  white-space: nowrap;
}
.boost-invite-sticky.active {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.boost-invite-sticky-logo {
  font-size: 18px;
  color: var(--boost-accent);
}
.boost-invite-sticky-text {
  font-size: 13px;
  font-weight: 600;
  color: var(--boost-text-1);
}
@media (max-width: 480px) {
  .boost-invite-sticky-text { display: none; }
  .boost-invite-sticky { padding: 8px 12px; gap: 8px; }
}

/* ---- Onboarding card (dashboard) ---- */

.boost-onboard-card {
  position: relative;
  padding: 20px 24px;
  margin-bottom: 20px;
  border-color: var(--boost-accent);
  background: linear-gradient(135deg, rgba(var(--boost-accent-rgb), 0.06), rgba(var(--boost-accent-rgb), 0.02));
}

.boost-onboard-dismiss {
  position: absolute;
  top: 12px;
  right: 12px;
  background: none;
  border: none;
  color: var(--boost-text-3);
  font-size: 16px;
  padding: 4px;
  transition: color 0.2s;
}

.boost-onboard-dismiss:hover {
  color: var(--boost-text-1);
}

.boost-onboard-content {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

.boost-onboard-icon {
  font-size: 28px;
  color: var(--boost-accent);
  flex-shrink: 0;
}

.boost-onboard-text {
  flex: 1;
  min-width: 200px;
}

.boost-onboard-text h3 {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 4px;
  color: var(--boost-text-1);
}

.boost-onboard-text p {
  font-size: 14px;
  color: var(--boost-text-2);
  margin: 0;
  line-height: 1.5;
}

.boost-onboard-actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}

/* ---- Welcome banner (creator-edit) ---- */

.boost-onboard-welcome-link {
  color: inherit;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: rgba(var(--boost-success-rgb), 0.4);
  margin-left: 4px;
}

.boost-onboard-welcome-link:hover {
  text-decoration-color: currentColor;
}

/* ---- Analytics chart (Premium) ---- */

.boost-premium-analytics {
  position: relative;
  min-height: 200px;
}

.boost-premium-analytics canvas {
  max-height: 220px;
}

.boost-premium-analytics-locked {
  position: relative;
}

.boost-premium-analytics-blur {
  filter: blur(6px);
  opacity: 0.5;
  pointer-events: none;
}

.boost-premium-analytics-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  z-index: 1;
}

.boost-premium-analytics-overlay > i {
  font-size: 28px;
  color: var(--boost-text-3);
}

.boost-premium-analytics-overlay > p {
  font-size: 13px;
  color: var(--boost-text-3);
  margin: 0;
  text-align: center;
}

/* ---- Face verification camera page ---- */

.boost-verify-container {
  max-width: 480px;
  margin: 40px auto;
  padding: 24px 16px;
  text-align: center;
}

.boost-verify-container h2 {
  font-size: 20px;
  margin-bottom: 8px;
  color: var(--boost-text-1);
}

.boost-verify-instructions {
  color: var(--boost-text-3);
  font-size: 14px;
  margin-bottom: 20px;
}

.boost-verify-camera-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 4/3;
  background: var(--boost-bg-muted);
  border-radius: var(--boost-radius-sm);
  overflow: hidden;
  margin-bottom: 20px;
}

.boost-verify-camera-wrap video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scaleX(-1);
}

.boost-verify-face-guide {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 55%;
  height: 72%;
  transform: translate(-50%, -50%);
  border: 2px dashed var(--boost-accent);
  border-radius: 50%;
  pointer-events: none;
  opacity: 0.6;
}

.boost-verify-result {
  padding: 40px 16px;
  text-align: center;
}

.boost-verify-result-icon {
  font-size: 56px;
  margin-bottom: 16px;
}

.boost-verify-result-success {
  color: var(--boost-success);
}

.boost-verify-result-error {
  color: var(--boost-danger);
}

.boost-verify-spinner {
  color: var(--boost-accent);
  margin-bottom: 16px;
}

/* ---- Verification QR modal ---- */

.boost-verify-qr {
  width: 200px;
  height: 200px;
  margin: 16px auto;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--boost-bg);
  border-radius: var(--boost-radius-sm);
  border: 1px solid var(--boost-border);
}

.boost-verify-qr svg {
  width: 100%;
  height: 100%;
}

.boost-verify-qr-timer {
  font-size: 20px;
  font-weight: 600;
  color: var(--boost-accent);
  font-variant-numeric: tabular-nums;
  margin-bottom: 8px;
}

.boost-verify-qr-status {
  font-size: 13px;
  color: var(--boost-text-3);
}

/* ---- Videocall room ---- */

.boost-call-room {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: var(--boost-text-1);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.boost-call-remote {
  flex: 1;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.boost-call-remote-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.boost-call-remote-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  color: var(--boost-text-3);
  font-size: 14px;
}

.boost-call-remote-placeholder > i {
  font-size: 48px;
  opacity: 0.4;
}

.boost-call-remote-placeholder[hidden] {
  display: none;
}

/* Local PiP */
.boost-call-local {
  position: absolute;
  bottom: 100px;
  right: 16px;
  width: 140px;
  height: 190px;
  border-radius: var(--boost-radius);
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.5);
  z-index: 1010;
  background: rgba(0, 0, 0, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
}

.boost-call-local-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scaleX(-1);
}

.boost-call-local-placeholder {
  color: rgba(255, 255, 255, 0.4);
  font-size: 32px;
}

.boost-call-local-placeholder[hidden] {
  display: none;
}

/* Header overlay */
.boost-call-header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1020;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.6), transparent);
  color: var(--boost-white);
  pointer-events: none;
}

.boost-call-header > * {
  pointer-events: auto;
}

.boost-call-header-left,
.boost-call-header-center,
.boost-call-header-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.boost-call-header-right {
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

.boost-call-peer-name {
  font-weight: 600;
  font-size: 15px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.boost-call-status-dot {
  font-size: 8px;
  color: var(--boost-text-3);
  transition: color 0.3s ease;
}

.boost-call-status-dot.boost-call-status-connected {
  color: var(--boost-success);
}

.boost-call-timer {
  font-size: 18px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.5px;
}

.boost-call-balance {
  font-size: 13px;
  display: flex;
  align-items: center;
  gap: 6px;
  background: rgba(0, 0, 0, 0.4);
  padding: 4px 10px;
  border-radius: var(--boost-radius-sm);
}

.boost-call-charged {
  font-size: 13px;
  color: var(--boost-warning);
  display: flex;
  align-items: center;
  gap: 6px;
  background: rgba(0, 0, 0, 0.4);
  padding: 4px 10px;
  border-radius: var(--boost-radius-sm);
}

.boost-call-rate {
  font-size: 11px;
  opacity: 0.7;
}

.boost-call-low-balance {
  position: absolute;
  top: 56px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 20;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: var(--boost-radius);
  background: rgba(var(--boost-warning-rgb), 0.9);
  color: var(--boost-white);
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  animation: boost-call-warn-pulse 2s ease-in-out infinite;
}
@keyframes boost-call-warn-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.7; }
}

/* Toolbar */
.boost-call-toolbar {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1020;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 20px;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.7), transparent);
}

.boost-call-toolbar-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 14px;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  color: var(--boost-white);
  font-size: 20px;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
  width: 56px;
  height: 56px;
  justify-content: center;
}

.boost-call-toolbar-btn:hover {
  background: rgba(255, 255, 255, 0.25);
  transform: scale(1.05);
}

.boost-call-toolbar-btn.boost-call-toolbar-btn-active {
  background: rgba(255, 255, 255, 0.35);
}

.boost-call-toolbar-btn-gift {
  background: rgba(var(--boost-accent-rgb), 0.3);
}

.boost-call-toolbar-btn-gift:hover {
  background: rgba(var(--boost-accent-rgb), 0.5);
}

.boost-call-toolbar-btn-hangup {
  background: var(--boost-danger);
}

.boost-call-toolbar-btn-hangup:hover {
  background: rgba(var(--boost-danger-rgb), 0.85);
  transform: scale(1.08);
}

.boost-call-toolbar-label {
  font-size: 10px;
  font-weight: 500;
  white-space: nowrap;
  margin-top: 2px;
}

/* Ringing overlay */
.boost-call-ringing-overlay {
  position: absolute;
  inset: 0;
  z-index: 1050;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--boost-modal-backdrop);
}

.boost-call-ringing-overlay[hidden] {
  display: none;
}

.boost-call-ringing-content {
  text-align: center;
  color: var(--boost-white);
}

.boost-call-ringing-avatar {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px;
  font-size: 32px;
  color: rgba(255, 255, 255, 0.5);
  animation: boostCallPulse 2s ease-in-out infinite;
}

.boost-call-ringing-name {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 8px;
}

.boost-call-ringing-status {
  font-size: 14px;
  opacity: 0.8;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

@keyframes boostCallPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.2); }
  50% { box-shadow: 0 0 0 20px rgba(255, 255, 255, 0); }
}

/* Summary overlay */
.boost-call-summary-overlay {
  position: absolute;
  inset: 0;
  z-index: 1060;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--boost-modal-backdrop);
  overflow-y: auto;
  padding: 24px 16px;
}

.boost-call-summary-overlay[hidden] {
  display: none;
}

.boost-call-summary-box {
  max-width: 420px;
  width: 100%;
  background: var(--boost-card-bg);
  border-radius: var(--boost-radius);
  padding: 32px 24px;
  text-align: center;
}

.boost-call-summary-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--boost-danger-bg);
  color: var(--boost-danger);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  margin: 0 auto 16px;
}

.boost-call-summary-box h2 {
  font-size: 20px;
  font-weight: 700;
  color: var(--boost-text-1);
  margin-bottom: 8px;
}

.boost-call-summary-reason {
  font-size: 13px;
  color: var(--boost-text-3);
  margin: 0 0 20px;
}

.boost-call-summary-stats {
  display: flex;
  gap: 12px;
  margin-bottom: 24px;
}

.boost-call-summary-stat {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 8px;
  background: rgba(var(--boost-accent-rgb), 0.04);
  border-radius: var(--boost-radius-sm);
  border: 1px solid rgba(var(--boost-accent-rgb), 0.08);
}

.boost-call-summary-stat-label {
  font-size: 11px;
  color: var(--boost-text-3);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.boost-call-summary-stat-value {
  font-size: 18px;
  font-weight: 700;
  color: var(--boost-text-1);
  font-variant-numeric: tabular-nums;
}

/* Rating */
.boost-call-summary-rating {
  margin-bottom: 24px;
}

.boost-call-summary-rating-label {
  font-size: 14px;
  color: var(--boost-text-2);
  margin-bottom: 12px;
}

.boost-call-rating-stars {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-bottom: 12px;
}

.boost-call-star {
  background: none;
  border: none;
  padding: 4px;
  font-size: 28px;
  color: var(--boost-card-border);
  cursor: pointer;
  transition: color 0.15s ease, transform 0.15s ease;
}

.boost-call-star:hover {
  transform: scale(1.15);
}

.boost-call-star.boost-call-star-active {
  color: var(--boost-accent);
}

.boost-call-rating-comment {
  margin-bottom: 12px;
  resize: none;
}

.boost-call-summary-actions {
  display: flex;
  justify-content: center;
  gap: 12px;
}

/* Confirm end-call overlay */
.boost-call-end-confirm {
  position: absolute;
  inset: 0;
  z-index: 1070;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.8);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.boost-call-end-confirm[hidden] {
  display: none;
}

.boost-call-end-confirm-box {
  text-align: center;
  color: var(--boost-white);
  max-width: 300px;
  width: 100%;
  padding: 32px 24px;
}

.boost-call-end-confirm-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: rgba(var(--boost-danger-rgb), 0.2);
  color: var(--boost-danger);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  margin: 0 auto 16px;
}

.boost-call-end-confirm-box h3 {
  font-size: 18px;
  font-weight: 600;
  margin: 0 0 8px;
}

.boost-call-end-confirm-box p {
  font-size: 14px;
  opacity: 0.7;
  margin: 0 0 24px;
}

.boost-call-end-confirm-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
}

.boost-call-end-confirm-actions .boost-btn-outline {
  border-color: rgba(255, 255, 255, 0.25);
  color: var(--boost-white);
}

.boost-call-end-confirm-actions .boost-btn-outline:hover {
  background: rgba(255, 255, 255, 0.1);
}

.boost-call-end-confirm-hangup {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 24px;
  border: none;
  border-radius: var(--boost-radius);
  background: var(--boost-danger);
  color: var(--boost-white);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.boost-call-end-confirm-hangup:hover {
  opacity: 0.85;
}

/* ---- Videocall room responsive ---- */
@media (max-width: 480px) {
  .boost-call-local {
    width: 100px;
    height: 140px;
    bottom: 90px;
    right: 10px;
  }

  .boost-call-toolbar {
    gap: 10px;
    padding: 14px;
  }

  .boost-call-toolbar-btn {
    width: 48px;
    height: 48px;
    font-size: 18px;
    padding: 12px;
  }

  .boost-call-toolbar-label {
    display: none;
  }

  .boost-call-header {
    padding: 12px 14px;
  }

  .boost-call-timer {
    font-size: 15px;
  }

  .boost-call-summary-stats {
    flex-direction: column;
    gap: 8px;
  }

  .boost-call-summary-box {
    padding: 24px 16px;
  }
}

@media (max-width: 768px) and (min-width: 481px) {
  .boost-call-local {
    width: 120px;
    height: 165px;
  }
}

/* PiP popup mode — compact call room for desktop popup window */
.boost-body-call-pip {
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.boost-body-call-pip .boost-main-call-pip {
  padding: 0;
  margin: 0;
}

.boost-body-call-pip .boost-call-room {
  position: relative;
  width: 100%;
  height: var(--boost-vvh, 100vh);
  z-index: 1;
}

.boost-body-call-pip .boost-call-header {
  padding: 10px 14px;
}

.boost-body-call-pip .boost-call-timer {
  font-size: 15px;
}

.boost-body-call-pip .boost-call-toolbar {
  gap: 10px;
  padding: 14px;
}

.boost-body-call-pip .boost-call-toolbar-btn {
  width: 46px;
  height: 46px;
  font-size: 17px;
}

.boost-body-call-pip .boost-call-toolbar-label {
  display: none;
}

.boost-body-call-pip .boost-call-local {
  width: 100px;
  height: 140px;
  bottom: 80px;
  right: 10px;
}

.boost-body-call-pip .boost-call-summary-stats {
  flex-direction: column;
  gap: 8px;
}

.boost-body-call-pip .boost-call-summary-box {
  padding: 24px 16px;
}

/* ---- Settings info grid (read-only data) ---- */

.boost-settings-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding: 16px;
  margin-top: 16px;
  background: rgba(var(--boost-accent-rgb), 0.03);
  border-radius: var(--boost-radius-sm);
  border: 1px solid rgba(var(--boost-accent-rgb), 0.06);
}

.boost-settings-info-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.boost-settings-info-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--boost-text-3);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.boost-settings-info-value {
  font-size: 14px;
  color: var(--boost-text-1);
  font-weight: 500;
  word-break: break-word;
  overflow-wrap: break-word;
}

/* ---- Stats inline (horizontal label:value rows) ---- */
.boost-stats-inline {
  display: flex;
  flex-direction: column;
  gap: 0;
  border-radius: var(--boost-radius);
  overflow: hidden;
}
.boost-stats-inline-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--boost-card-border);
}
.boost-stats-inline-item:last-child { border-bottom: none; }
.boost-stats-inline-item i {
  color: var(--boost-accent);
  font-size: 13px;
  width: 16px;
  text-align: center;
  flex-shrink: 0;
}
.boost-stats-inline-label {
  font-size: 13px;
  color: var(--boost-text-3);
  flex: 1;
  min-width: 0;
}
.boost-stats-inline-value {
  font-size: 14px;
  font-weight: 700;
  color: var(--boost-text-1);
  flex-shrink: 0;
}

/* ---- Display name input ---- */

.boost-settings-name-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}

.boost-settings-name-row .boost-input {
  flex: 1;
  max-width: 320px;
}

.boost-settings-name-feedback {
  font-size: 13px;
  color: var(--boost-success);
  font-weight: 600;
  min-height: 18px;
  margin-bottom: 8px;
}

/* ---- Toggle rows (preferences) ---- */

/* Prefijo .boost-body: mismo motivo que .boost-packages-title — sin él
   pierde frente al reset ".boost-body h3 { margin-bottom: 0 }". */
.boost-body .boost-toggle-section-title {
  font-size: 11px;
  font-weight: 700;
  color: var(--boost-text-3);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 16px 0 4px;
  padding-top: 4px;
}

.boost-toggle-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(var(--boost-accent-rgb), 0.06);
}

.boost-toggle-row:last-child {
  border-bottom: none;
}
/* Subordinate checkbox — indented under a parent toggle */
.boost-toggle-sub {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 6px 0 12px 28px;
  cursor: pointer;
  border-bottom: 1px solid rgba(var(--boost-accent-rgb), 0.06);
}
.boost-toggle-sub:last-child {
  border-bottom: none;
}
.boost-toggle-sub input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin-top: 2px;
  flex-shrink: 0;
  accent-color: var(--boost-accent);
  cursor: pointer;
}
.boost-toggle-sub-title {
  display: block;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--boost-text-1);
}
.boost-toggle-sub-desc {
  display: block;
  font-size: 0.72rem;
  color: var(--boost-text-3);
  margin-top: 2px;
}

.boost-toggle-separator {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 0 8px;
  margin-top: 8px;
}
.boost-toggle-separator span {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--boost-accent);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.boost-toggle-separator::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, rgba(var(--boost-accent-rgb), 0.25), transparent);
}

.boost-toggle-texts {
  flex: 1;
  min-width: 0;
}

.boost-toggle-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--boost-text-1);
}

.boost-toggle-desc {
  font-size: 12px;
  color: var(--boost-text-3);
  margin-top: 2px;
}

.boost-toggle-switch {
  position: relative;
  display: inline-block;
  width: 44px;
  height: 24px;
  flex-shrink: 0;
}

.boost-toggle-switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.boost-toggle-slider {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.12);
  border-radius: 24px;
  cursor: pointer;
  transition: background var(--boost-transition);
}

.boost-toggle-slider::before {
  content: '';
  position: absolute;
  height: 18px;
  width: 18px;
  left: 3px;
  bottom: 3px;
  background: var(--boost-white);
  border-radius: 50%;
  transition: transform var(--boost-transition);
}

.boost-toggle-switch input:checked + .boost-toggle-slider {
  background: var(--boost-accent);
}

.boost-toggle-switch input:checked + .boost-toggle-slider::before {
  transform: translateX(20px);
}

/* ---- Preferences select ---- */

.boost-settings-locale-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
}

.boost-settings-locale-row label {
  font-size: 14px;
  font-weight: 600;
  color: var(--boost-text-1);
  white-space: nowrap;
}

.boost-settings-locale-picker {
  position: relative;
}

.boost-settings-locale-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: var(--boost-radius-xs);
  border: 1px solid var(--boost-input-border);
  background: var(--boost-input-bg);
  color: var(--boost-text-1);
  font-size: 14px;
  cursor: pointer;
  min-width: 160px;
  transition: border-color var(--boost-transition);
}

.boost-settings-locale-toggle:hover {
  border-color: var(--boost-accent);
}

.boost-settings-locale-toggle .boost-lang-flag {
  font-size: 18px;
  line-height: 1;
}

.boost-settings-locale-toggle .boost-lang-caret {
  font-size: 10px;
  margin-left: auto;
  transition: transform 0.2s;
}

.boost-settings-locale-picker.open .boost-lang-caret {
  transform: rotate(180deg);
}

.boost-settings-locale-menu {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 180px;
  background: var(--boost-content-bg-light);
  border: var(--boost-border-w) solid var(--boost-card-border);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
  z-index: 200;
  padding: 6px;
  list-style: none;
  margin: 0;
}

.boost-settings-locale-picker.open .boost-settings-locale-menu {
  display: block;
}

.boost-settings-locale-menu li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 6px;
  color: var(--boost-text-2);
  font-size: 13px;
  cursor: pointer;
  transition: background var(--boost-transition), color var(--boost-transition);
}

.boost-settings-locale-menu li:hover {
  background: rgba(0, 0, 0, 0.04);
  color: var(--boost-text-1);
}

.boost-settings-locale-menu li.active {
  background: rgba(var(--boost-accent-rgb), 0.10);
  color: var(--boost-accent);
  font-weight: 600;
}

.boost-settings-locale-menu li .boost-lang-flag {
  font-size: 18px;
  line-height: 1;
}

.boost-settings-prefs-feedback {
  font-size: 13px;
  color: var(--boost-success);
  font-weight: 600;
  min-height: 18px;
  margin-top: 8px;
}
.boost-settings-prefs-feedback.is-error {
  color: var(--boost-danger);
}

/* ---- Sidebar display name ---- */

.boost-sidebar-user-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--boost-text-1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ---- Settings responsive ---- */

@media (max-width: 768px) {
  .boost-settings-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .boost-editor-panel.active {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .boost-settings-card {
    padding: 20px 16px;
  }

  .boost-settings-card-compact {
    max-width: none;
  }

  .boost-settings-card-compact .boost-settings-card-header {
    justify-content: flex-start;
  }

  .boost-settings-card-header {
    justify-content: flex-start;
    padding-bottom: 12px;
    margin-bottom: 16px;
  }

  .boost-settings-info-grid {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 12px;
  }

  .boost-settings-name-row .boost-input {
    max-width: 100%;
  }

  .boost-settings-locale-row {
    flex-wrap: wrap;
  }

  .boost-settings-locale-toggle {
    min-width: 140px;
  }

  .boost-settings-locale-menu {
    min-width: 160px;
  }

  .boost-verify-section {
    margin: 12px 12px 0;
    padding: 12px;
  }

  .boost-verify-container {
    margin: 20px auto;
    padding: 16px 12px;
  }

  .boost-verify-qr {
    width: 160px;
    height: 160px;
  }

  /* ---- Accordion collapse for creator editor cards ---- */

  .boost-settings-card[data-accordion] .boost-settings-card-header {
    cursor: pointer;
    margin-bottom: 0;
    border-bottom: none;
    padding-bottom: 0;
  }

  .boost-settings-card[data-accordion] .boost-settings-card-header::after {
    content: '\f054';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    font-size: 12px;
    color: var(--boost-text-3);
    margin-left: auto;
    transition: transform 0.3s;
  }

  .boost-settings-card[data-accordion].open .boost-settings-card-header {
    margin-bottom: 20px;
    border-bottom: 1px solid rgba(var(--boost-accent-rgb), 0.10);
    padding-bottom: 16px;
  }

  .boost-settings-card[data-accordion].open .boost-settings-card-header::after {
    transform: rotate(90deg);
  }

  .boost-settings-card[data-accordion] .boost-settings-card-body {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
  }

  .boost-settings-card[data-accordion].open .boost-settings-card-body {
    max-height: none;
    overflow: visible;
  }

  .boost-settings-card-danger[data-accordion] .boost-settings-card-header::after {
    color: var(--boost-danger);
  }
}

/* ============================================================================
   SUPPORT PAGE
   ============================================================================ */
.boost-page-header-support {
  margin-bottom: 32px;
  padding-top: 20px;
}

.boost-support-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgba(var(--boost-accent-rgb), 0.12);
  font-size: 20px;
  color: var(--boost-primary);
}

.boost-page-header-support h1 {
  font-size: 28px;
}

.boost-page-header-support p {
  margin-top: 8px;
  font-size: 14px;
  max-width: 480px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.5;
}

.boost-support-trust {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 16px 24px;
  margin-top: 16px;
  font-size: 12px;
  color: var(--boost-text-3);
}

.boost-support-trust span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.boost-support-trust i {
  color: var(--boost-success);
  font-size: 13px;
}

.boost-support-card {
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-card-border);
  border-radius: var(--boost-radius);
  padding: 28px 24px;
}

/* ---- Support success state ---- */
.boost-support-success {
  text-align: center;
  padding: 48px 16px;
  color: var(--boost-text-2);
}

.boost-support-success i {
  font-size: 3rem;
  color: var(--boost-success);
  margin-bottom: 16px;
}

.boost-support-success h2 {
  justify-content: center;
  margin-bottom: 8px;
}

.boost-support-success p {
  color: var(--boost-text-2);
  font-size: 13px;
}

/* ---- Ticket list ---- */
.boost-tickets-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.boost-ticket-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 18px;
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-card-border);
  border-radius: var(--boost-radius);
  cursor: pointer;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.boost-ticket-card:hover {
  border-color: var(--boost-accent);
  box-shadow: 0 0 0 3px rgba(var(--boost-accent-rgb), 0.08);
}

.boost-ticket-card-body {
  flex: 1;
  min-width: 0;
}

.boost-ticket-card-subject {
  font-size: 14px;
  font-weight: 600;
  color: var(--boost-text-1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.boost-ticket-card-date {
  font-size: 12px;
  color: var(--boost-text-3);
  margin-top: 2px;
}

/* ---- Conversation ---- */
.boost-conversation-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--boost-card-border);
}

.boost-conversation-header h2 {
  font-size: 16px;
  font-weight: 600;
  color: var(--boost-text-1);
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.boost-conversation {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-height: 500px;
  overflow-y: auto;
  padding: 16px 0;
  scroll-behavior: smooth;
}

.boost-msg {
  max-width: 75%;
  padding: 10px 14px;
  border-radius: 14px;
  position: relative;
}

.boost-msg-user {
  align-self: flex-end;
  background: rgba(var(--boost-accent-rgb), 0.12);
  border-bottom-right-radius: 4px;
}

.boost-msg-admin {
  align-self: flex-start;
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-card-border);
  border-bottom-left-radius: 4px;
}

.boost-msg-label {
  font-size: 11px;
  font-weight: 600;
  color: var(--boost-accent);
  margin-bottom: 4px;
}

.boost-msg-admin .boost-msg-label {
  color: var(--boost-text-3);
}

.boost-msg-body {
  font-size: 13px;
  color: var(--boost-text-1);
  line-height: 1.5;
  white-space: pre-wrap;
  word-break: break-word;
}

.boost-msg-meta {
  font-size: 11px;
  color: var(--boost-text-3);
  margin-top: 4px;
  text-align: right;
}

.boost-msg-admin .boost-msg-meta {
  text-align: left;
}

/* ---- Original message (first in thread) ---- */
.boost-msg-original {
  align-self: flex-end;
  background: rgba(var(--boost-accent-rgb), 0.08);
  border: 1px dashed rgba(var(--boost-accent-rgb), 0.25);
  border-radius: 14px;
  border-bottom-right-radius: 4px;
  max-width: 75%;
  padding: 10px 14px;
}

.boost-msg-original.boost-msg-original-left {
  align-self: flex-start;
  border-bottom-right-radius: 14px;
  border-bottom-left-radius: 4px;
}

/* ---- Chat bubble skeletons (initial conversation load) ---- */
.boost-msg-skeleton {
  max-width: 75%;
  padding: 12px 14px;
  border-radius: 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.boost-msg-skeleton.boost-msg-user {
  align-self: flex-end;
  background: rgba(var(--boost-accent-rgb), 0.08);
  border-bottom-right-radius: 4px;
}
.boost-msg-skeleton.boost-msg-admin {
  align-self: flex-start;
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-card-border);
  border-bottom-left-radius: 4px;
}
.boost-msg-skeleton-line {
  height: 10px;
  border-radius: 5px;
}
.boost-msg-skeleton-line.boost-msg-skeleton-line--sm { width: 40%; }
.boost-msg-skeleton-line.boost-msg-skeleton-line--md { width: 70%; }
.boost-msg-skeleton-line.boost-msg-skeleton-line--lg { width: 90%; }

/* ---- Reply form ---- */
.boost-conversation-reply {
  display: flex;
  gap: 10px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--boost-card-border);
}

.boost-conversation-reply textarea {
  flex: 1;
  min-height: 60px;
  max-height: 150px;
  resize: vertical;
}

.boost-conversation-reply button {
  align-self: flex-end;
}

/* ---- Messages chat toolbar (WhatsApp-style, premium) ---- */
.boost-messages-conv .boost-conversation-reply {
  align-items: flex-end;
  gap: 6px;
  margin-top: 0;
  padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--boost-border-soft);
  background: linear-gradient(180deg, var(--boost-card-bg), var(--boost-popover-bg));
  flex-shrink: 0;
}

.boost-messages-conv .boost-conversation-reply textarea {
  field-sizing: content;
  min-height: 40px;
  max-height: 140px;
  resize: none;
  padding: 10px 16px;
  line-height: 1.4;
  border-radius: 22px;
  background: var(--boost-content-bg-light);
  border: 1px solid var(--boost-border-soft);
  box-shadow: inset 0 1px 2px rgba(var(--boost-dark-rgb), 0.04);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.boost-messages-conv .boost-conversation-reply textarea:focus {
  outline: none;
  background: var(--boost-popover-bg);
  border-color: rgba(var(--boost-accent-rgb), 0.45);
  box-shadow:
    inset 0 1px 2px rgba(var(--boost-dark-rgb), 0.04),
    0 0 0 3px rgba(var(--boost-accent-rgb), 0.12);
}

/* ---- Chat plus-wrap (attach + emoji collapsible on mobile) ---- */
/* Chat composer "+" button — collapses attach + emoji into a popover that
   opens on click. Mismo comportamiento en desktop y móvil: los iconos del
   panel no se exponen en la toolbar, sólo se ven al pulsar el botón +. */
.boost-chat-plus-wrap {
  display: flex;
  position: relative;
}
.boost-chat-plus-toggle {
  display: flex;
}
.boost-chat-plus-panel {
  display: flex;
  gap: 6px;
  position: absolute;
  bottom: calc(100% + 8px);
  left: 0;
  background: var(--boost-popover-bg);
  border: 1px solid var(--boost-border);
  border-radius: var(--boost-radius);
  box-shadow: var(--boost-popover-shadow);
  padding: 8px;
  z-index: 120;
}
.boost-chat-plus-panel[hidden] { display: none; }

.boost-conversation-closed {
  text-align: center;
  padding: 14px;
  color: var(--boost-text-3);
  font-size: 13px;
  border-top: 1px solid var(--boost-card-border);
  margin-top: 16px;
}

.boost-conversation-closed i {
  margin-right: 6px;
}

/* ---- Admin new-ticket form ---- */
.boost-ticket-actions {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 16px;
}

.boost-new-ticket-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 20px;
  padding: 16px;
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-card-border);
  border-radius: var(--boost-radius);
}

.boost-user-search-wrap {
  position: relative;
}

.boost-user-search-results {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 50;
  background: var(--boost-content-bg);
  border: 1px solid var(--boost-card-border);
  border-radius: var(--boost-radius);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
  max-height: 200px;
  overflow-y: auto;
}

.boost-user-search-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  cursor: pointer;
  transition: background 0.15s;
}

.boost-user-search-item:hover {
  background: rgba(var(--boost-accent-rgb), 0.06);
}

.boost-user-search-email {
  flex: 1;
  font-size: 13px;
  color: var(--boost-text-1);
}

.boost-user-search-id {
  font-size: 11px;
  color: var(--boost-text-3);
}

.boost-selected-user {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  background: rgba(var(--boost-accent-rgb), 0.08);
  border: 1px solid rgba(var(--boost-accent-rgb), 0.2);
  border-radius: 100px;
  font-size: 13px;
  color: var(--boost-text-1);
}

.boost-selected-user button {
  background: none;
  border: none;
  color: var(--boost-text-3);
  cursor: pointer;
  padding: 0;
  font-size: 14px;
  line-height: 1;
}

.boost-selected-user button:hover {
  color: var(--boost-danger);
}

.boost-ticket-order-ref {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  background: rgba(var(--boost-accent-rgb), 0.06);
  border: 1px solid rgba(var(--boost-accent-rgb), 0.15);
  border-radius: 6px;
  font-size: 12px;
  color: var(--boost-text-2);
  margin-top: 6px;
}

.boost-ticket-order-ref i {
  color: var(--boost-accent);
  font-size: 11px;
}

.boost-form-label-optional {
  font-size: 11px;
  color: var(--boost-text-3);
  font-weight: 400;
  margin-left: 4px;
}

/* ---- Ticket controls (admin) ---- */
.boost-ticket-controls {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 12px;
}

/* ---- Clickable ticket rows (admin) ---- */
.boost-ticket-row {
  cursor: pointer;
}

.boost-ticket-row:hover td {
  background: rgba(var(--boost-accent-rgb), 0.04);
}

/* ---- Section toggle ---- */
.boost-section-hidden {
  display: none;
}

/* ---- Support nav tabs ---- */
.boost-support-tabs {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-bottom: 24px;
}

.boost-support-tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 20px;
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-card-border);
  border-radius: 100px;
  font-size: 13px;
  font-weight: 600;
  color: var(--boost-text-2);
  cursor: pointer;
  transition: all 0.2s;
}

.boost-support-tab:hover {
  border-color: var(--boost-accent);
  color: var(--boost-text-1);
}

.boost-support-tab.active {
  background: rgba(var(--boost-accent-rgb), 0.08);
  border-color: var(--boost-accent);
  color: var(--boost-accent);
}

@media (max-width: 768px) {
  .boost-msg,
  .boost-msg-original {
    max-width: 90%;
  }
  .boost-ticket-card {
    padding: 12px 14px;
  }
  .boost-conversation-reply {
    flex-direction: column;
  }
  .boost-messages-conv .boost-conversation-reply {
    flex-direction: row;
    align-items: flex-end;
  }
  .boost-new-ticket-form {
    padding: 12px;
  }
  .boost-conversation-reply button {
    align-self: stretch;
  }
  .boost-messages-conv .boost-conversation-reply button {
    align-self: auto;
  }
}

@media (max-width: 480px) {
  .boost-msg,
  .boost-msg-original {
    max-width: 95%;
  }
  .boost-msg-body {
    font-size: 12px;
  }
  .boost-conversation {
    max-height: 400px;
  }
}

/* ============================================================================
   CHATBOT SUPPORT + AI BIO GENERATOR
   ============================================================================ */

/* -- Chatbot card override -- */
#section-chatbot .boost-support-card {
  padding: 0;
  overflow: hidden;
}

/* -- Header with gradient accent strip -- */

/* -- Chat area inside chatbot -- */
#section-chatbot .boost-conversation {
  padding: 16px 18px;
  max-height: 420px;
  min-height: 180px;
}

/* -- Chatbot bubbles refinement -- */
#section-chatbot .boost-msg-admin {
  background: var(--boost-content-bg-light);
  border: none;
  box-shadow: 0 1px 3px rgba(var(--boost-dark-rgb), .06);
}
#section-chatbot .boost-msg-user {
  background: var(--boost-accent);
  color: #fff;
}
#section-chatbot .boost-msg-user .boost-msg-body {
  color: #fff;
}

/* -- Composer pill (WhatsApp style, reuses messaging pattern) -- */
#section-chatbot .boost-conversation-reply {
  padding: 10px 14px;
  border-top: 1px solid var(--boost-card-border);
  background: linear-gradient(180deg, var(--boost-card-bg), var(--boost-popover-bg));
  align-items: flex-end;
  gap: 8px;
}
#section-chatbot .boost-conversation-reply textarea {
  field-sizing: content;
  min-height: 40px;
  max-height: 120px;
  resize: none;
  padding: 10px 16px;
  line-height: 1.4;
  border-radius: 22px;
  background: var(--boost-content-bg-light);
  border: 1px solid var(--boost-border-soft);
  transition: border-color 0.2s, box-shadow 0.2s;
}
#section-chatbot .boost-conversation-reply textarea:focus {
  outline: none;
  border-color: rgba(var(--boost-accent-rgb), .45);
  box-shadow: 0 0 0 3px rgba(var(--boost-accent-rgb), .12);
}
#section-chatbot .boost-conversation-reply button {
  width: 40px;
  height: 40px;
  min-width: 40px;
  border-radius: 50%;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* -- Footer -- */

/* -- Escalate buttons -- */

/* -- AI bio generator button -- */
.boost-btn-ai {
  margin-top: 6px;
  gap: 6px;
}
.boost-btn-ai i {
  color: var(--boost-accent);
}

/* -- Chatbot responsive -- */
@media (max-width: 480px) {
  #section-chatbot .boost-conversation { padding: 12px 14px; max-height: 350px; }
  #section-chatbot .boost-conversation-reply { padding: 8px 10px; }
}

/* ============================================================================
   COUNTDOWN ALERT
   ============================================================================ */
.boost-countdown-alert strong {
  font-variant-numeric: tabular-nums;
}

/* ============================================================================
   GUIDES PAGE TABS (Guías / FAQ)
   ============================================================================ */
.boost-guides-tabs {
  display: flex;
  gap: 4px;
  margin-bottom: 24px;
  border-bottom: 2px solid var(--boost-border);
}
.boost-guides-tab {
  padding: 10px 20px;
  border: none;
  background: none;
  font-size: 14px;
  font-weight: 600;
  color: var(--boost-text-2);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: color .2s, border-color .2s;
  display: flex;
  align-items: center;
  gap: 6px;
}
.boost-guides-tab:hover {
  color: var(--boost-text-1);
}
.boost-guides-tab.active {
  color: var(--boost-accent);
  border-bottom-color: var(--boost-accent);
}
.boost-guides-panel {
  display: none;
}
.boost-guides-panel.active {
  display: block;
}
@media (max-width: 480px) {
  .boost-guides-tab {
    padding: 8px 14px;
    font-size: 13px;
  }
}

/* ============================================================================
   FAQ ACCORDION
   ============================================================================ */
.boost-faq-section {
  max-width: 680px;
  margin: 0 auto 20px;
}

.boost-faq-section h2 {
  font-size: 16px;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
}

.boost-faq-section h2 i {
  color: var(--boost-accent);
}

.boost-faq-item {
  background: var(--boost-card-bg);
  border: none;
  border-radius: 16px;
  margin-bottom: 10px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  transition: box-shadow 0.3s ease, background 0.3s ease;
}

.boost-faq-item.open {
  background: linear-gradient(135deg, var(--boost-accent-hover), var(--boost-accent-mid));
  box-shadow: 0 4px 16px rgba(var(--boost-accent-rgb), 0.25);
}

.boost-faq-question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 20px;
  background: none;
  border: none;
  color: var(--boost-text-1);
  font-size: 14px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  transition: color 0.3s ease;
}

.boost-faq-item.open .boost-faq-question {
  color: var(--boost-white);
}

.boost-faq-question:hover {
  background: rgba(0, 0, 0, 0.02);
}

.boost-faq-item.open .boost-faq-question:hover {
  background: rgba(255, 255, 255, 0.08);
}

.boost-faq-question .boost-faq-toggle {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: var(--boost-accent);
  color: var(--boost-white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  transition: background 0.3s ease, transform 0.3s ease;
}

.boost-faq-item.open .boost-faq-toggle {
  background: rgba(255, 255, 255, 0.25);
}

.boost-faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.boost-faq-answer-inner {
  padding: 0 20px 18px;
  font-size: 13.5px;
  color: rgba(255, 255, 255, 0.92);
  line-height: 1.7;
}

.boost-faq-item.open .boost-faq-answer {
  max-height: 300px;
}

/* ── FAQ AI Search ── */
.boost-faq-search-row {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.boost-faq-search-input {
  display: flex;
  gap: 8px;
}
.boost-faq-search-input .boost-input {
  flex: 1;
}
.boost-faq-ai-result {
  margin-top: 12px;
  padding: 14px 18px;
  border-radius: var(--boost-radius);
  font-size: 13.5px;
  line-height: 1.7;
}
.boost-faq-ai-loading {
  background: var(--boost-form-bg);
  color: var(--boost-text-3);
}
.boost-faq-ai-success {
  background: rgba(var(--boost-accent-rgb), 0.08);
  color: var(--boost-text-1);
  border: 1px solid rgba(var(--boost-accent-rgb), 0.2);
}
.boost-faq-ai-error {
  background: var(--boost-danger-bg);
  color: var(--boost-danger);
}
.boost-faq-ai-info {
  background: var(--boost-form-bg);
  color: var(--boost-text-2);
}

/* ── AI Dashboard Summary ── */

/* ── AI Features responsive ── */
@media (max-width: 480px) {
  .boost-faq-search-input {
    flex-direction: column;
  }
  .boost-faq-search-input .boost-btn {
    align-self: flex-end;
  }
  .boost-faq-ai-result {
    padding: 12px 14px;
    font-size: 13px;
  }
}

/* ============================================================================
   ADMIN: PLATFORM TABS (services page)
   ============================================================================ */
.boost-platform-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--boost-card-border);
  padding-bottom: 4px;
}

.boost-platform-tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--boost-text-3);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: color var(--boost-transition), border-color var(--boost-transition);
}

.boost-platform-tab:hover {
  color: var(--boost-text-1);
}

.boost-platform-tab.active {
  color: var(--_tab-color, var(--boost-accent));
  border-bottom-color: var(--_tab-color, var(--boost-accent));
}

/* Platform color mapping for tabs (uses --_tab-color scoped custom property) */
.boost-platform-tab[data-platform="TikTok"]       { --_tab-color: var(--platform-tiktok); }
.boost-platform-tab[data-platform="Instagram"]     { --_tab-color: var(--platform-instagram); }
.boost-platform-tab[data-platform="YouTube"]       { --_tab-color: var(--platform-youtube); }
.boost-platform-tab[data-platform="Facebook"]      { --_tab-color: var(--platform-facebook); }
.boost-platform-tab[data-platform="Twitter"]       { --_tab-color: var(--boost-text-2); }
.boost-platform-tab[data-platform="Telegram"]      { --_tab-color: var(--platform-telegram); }
.boost-platform-tab[data-platform="Spotify"]       { --_tab-color: var(--platform-spotify); }
.boost-platform-tab[data-platform="Twitch"]        { --_tab-color: var(--platform-twitch); }
.boost-platform-tab[data-platform="Discord"]       { --_tab-color: var(--platform-discord); }
.boost-platform-tab[data-platform="Threads"]       { --_tab-color: var(--boost-text-2); }
.boost-platform-tab[data-platform="LinkedIn"]      { --_tab-color: var(--platform-linkedin); }
.boost-platform-tab[data-platform="Pinterest"]     { --_tab-color: var(--platform-pinterest); }
.boost-platform-tab[data-platform="Snapchat"]      { --_tab-color: var(--platform-snapchat); }
.boost-platform-tab[data-platform="SoundCloud"]    { --_tab-color: var(--platform-soundcloud); }
.boost-platform-tab[data-platform="Reddit"]        { --_tab-color: var(--platform-reddit); }
.boost-platform-tab[data-platform="Apple Music"]   { --_tab-color: var(--platform-applemusic); }
.boost-platform-tab[data-platform="Bluesky"]       { --_tab-color: var(--platform-bluesky); }
.boost-platform-tab[data-platform="Clubhouse"]     { --_tab-color: var(--platform-clubhouse); }
.boost-platform-tab[data-platform="Kick.com"]      { --_tab-color: var(--platform-kick); }
.boost-platform-tab[data-platform="Rumble"]        { --_tab-color: var(--platform-rumble); }
.boost-platform-tab[data-platform="Shopee"]        { --_tab-color: var(--platform-shopee); }
.boost-platform-tab[data-platform="Trovo"]         { --_tab-color: var(--platform-trovo); }
.boost-platform-tab[data-platform="Trustpilot"]    { --_tab-color: var(--platform-trustpilot); }

.boost-service-panel {
  display: none;
}

.boost-service-panel.active {
  display: block;
}

/* Admin services: search bar */
.boost-svc-search {
  max-width: 360px;
  margin-bottom: 16px;
}

/* Admin services: card icon color variants */
.boost-card-icon-success {
  background: var(--boost-success-bg);
  color: var(--boost-success);
}

.boost-card-icon-info {
  background: rgba(var(--boost-info-rgb), 0.1);
  color: var(--boost-info);
}

/* Admin services: toggle in table cell */
.boost-svc-active-toggle {
  vertical-align: middle;
}

/* ============================================================================
   ADMIN: STATS GRID
   ============================================================================ */
.boost-stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
  gap: 10px;
  margin-bottom: 24px;
  align-items: stretch;
}

.boost-card {
  background: var(--boost-card-bg);
  border: var(--boost-border-w) solid var(--boost-card-border);
  border-radius: var(--boost-radius);
  padding: 12px 14px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.03), 0 4px 16px rgba(0,0,0,0.05);
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 60px;
}

.boost-card-icon {
  width: 34px;
  height: 34px;
  border-radius: var(--boost-radius-sm);
  background: var(--boost-accent-glow);
  color: var(--boost-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  flex-shrink: 0;
}

.boost-card-balance .boost-card-icon {
  background: var(--boost-success-bg);
  color: var(--boost-success);
}

.boost-card-body { flex: 1; min-width: 0; }
/*
 * Content card auto-detect: when a card contains a .boost-section-title
 * inside .boost-card-body, it's a "content card" (not a stat card).
 * → Card switches to column layout
 * → Card-body becomes flex-column with gap for natural spacing between title and content
 * Without this, .boost-card default is flex-row (designed for icon + label stat cards)
 * and titles appear "stuck" to content below them.
 */
.boost-card:has(> .boost-card-body > .boost-section-title) {
  flex-direction: column;
  align-items: stretch;
}
.boost-card:has(> .boost-card-body > .boost-section-title) > .boost-card-body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
/* Inside a content card, the gap handles spacing — remove title's own margin to avoid double space.
   .boost-body de más por el mismo motivo que el override de .boost-collapsible-header arriba. */
.boost-body .boost-card-body > .boost-section-title {
  margin-bottom: 0;
}
.boost-card-label { font-size: 12px; color: var(--boost-text-2); display: block; }
.boost-card-value { font-size: 18px; font-weight: 700; display: block; margin-top: 2px; }
.boost-card-value-sm { font-size: 14px; }

/* ============================================================================
   WIZARD — Step-by-step order flow
   ============================================================================ */
.boost-wizard {
  max-width: 840px;
  margin: 0 auto;
}

/* Breadcrumb trail */
.boost-wizard-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
}

.boost-wizard-breadcrumb:not(:has(.boost-wizard-crumb, .boost-wizard-back:not([hidden]))) {
  display: none;
}

.boost-wizard-crumb {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  background: var(--boost-accent-glow);
  border: 1px solid var(--boost-accent);
  border-radius: 20px;
  font-size: 12px;
  color: var(--boost-accent);
  cursor: pointer;
  transition: background var(--boost-transition), box-shadow var(--boost-transition);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 1px 4px rgba(0,0,0,0.03);
}

.boost-wizard-crumb:hover {
  background: var(--boost-accent);
  color: var(--boost-white);
  box-shadow: 0 4px 16px rgba(var(--boost-accent-rgb), 0.3);
}

.boost-wizard-crumb-dim {
  font-weight: 600;
  text-transform: uppercase;
  font-size: 10px;
  letter-spacing: 0.04em;
  opacity: 0.7;
}

.boost-wizard-crumb-val { font-weight: 600; }

.boost-wizard-crumb .fa-xmark {
  font-size: 10px;
  opacity: 0.6;
}

.boost-wizard-crumb-sep {
  font-size: 10px;
  color: var(--boost-text-3);
}

/* Crumb states: active (current), done (filled), pending (required & empty) */
.boost-wizard-crumb-active {
  background: var(--boost-accent);
  color: var(--boost-white);
  border-color: var(--boost-accent);
}
.boost-wizard-crumb-done {
  background: var(--boost-success-bg);
  border-color: var(--boost-success);
  color: var(--boost-success);
}
.boost-wizard-crumb-pending {
  background: var(--boost-danger-bg);
  border-color: var(--boost-danger);
  color: var(--boost-danger);
}
.boost-wizard-crumb-pending:hover {
  background: var(--boost-danger);
  color: var(--boost-white);
  box-shadow: 0 4px 16px rgba(var(--boost-danger-rgb), 0.3);
}
.boost-wizard-crumb-done:hover {
  background: var(--boost-success);
  color: var(--boost-white);
  box-shadow: 0 4px 16px rgba(var(--boost-success-rgb), 0.3);
}

/* Compact wizard progress bar (creator wizard + order wizard) */
.boost-wizard-progress {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  max-width: 400px;
  margin: 0 auto 16px;
}
.boost-wizard-progress-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--boost-text-2);
  white-space: nowrap;
}
.boost-wizard-progress-track {
  flex: 1;
  height: 6px;
  border-radius: 3px;
  background: var(--boost-form-border);
  overflow: hidden;
}
.boost-wizard-progress-fill {
  height: 100%;
  border-radius: 3px;
  background: var(--boost-accent);
  transition: width 0.3s ease;
  width: var(--wz-progress, 0%);
}

/* Required field marker */
.boost-required {
  color: var(--boost-danger);
  font-weight: 700;
}

/* Panel + transitions */
.boost-wizard-panel {
  min-height: 200px;
}
.boost-wizard-panel .boost-form-group {
  max-width: 480px;
  margin-left: auto;
  margin-right: auto;
}

@keyframes wzEnterFwd {
  from { opacity: 0; transform: translateX(24px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes wzEnterBack {
  from { opacity: 0; transform: translateX(-24px); }
  to { opacity: 1; transform: translateX(0); }
}

.boost-wizard-enter-fwd { animation: wzEnterFwd 0.22s ease; }
.boost-wizard-enter-back { animation: wzEnterBack 0.22s ease; }

/* Step header */
.boost-wizard-step-header {
  text-align: center;
  margin-bottom: 24px;
}
.boost-wizard-step-header-inline {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}
.boost-wizard-step-header-inline .boost-wizard-platform-context {
  margin: 0;
}

.boost-wizard-step-title {
  font-size: 22px;
  font-weight: 700;
  color: var(--boost-text-1);
  margin: 0;
}

.boost-wizard-step-subtitle {
  color: var(--boost-text-2);
  font-size: 14px;
  margin: 4px 0 0;
}

.boost-wizard-platform-context {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: fit-content;
  margin: 0 auto 8px;
  padding: 8px 20px;
  border-radius: 999px;
  background: rgba(var(--boost-accent-rgb), 0.08);
  border: var(--boost-border-w) solid rgba(var(--boost-accent-rgb), 0.2);
  backdrop-filter: blur(12px);
}
.boost-wizard-platform-context i {
  font-size: 22px;
}
.boost-wizard-platform-context span {
  font-size: 16px;
  font-weight: 700;
  color: var(--boost-text-1);
}

/* Card grid */
.boost-wizard-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.boost-wizard-grid-3 {
  grid-template-columns: repeat(3, 1fr);
}

.boost-wizard-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 14px 16px;
  background: var(--boost-card-bg);
  border: 2px solid var(--boost-card-border);
  border-radius: var(--boost-radius);
  cursor: pointer;
  text-align: left;
  transition: border-color var(--boost-transition), box-shadow var(--boost-transition), transform var(--boost-transition);
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
  box-shadow: var(--boost-glass-shadow);
}

.boost-wizard-card-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.boost-wizard-card-row .boost-wizard-card-icon {
  font-size: 36px;
  flex-shrink: 0;
}

.boost-wizard-card-row .boost-wizard-card-label {
  font-size: 20px;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.boost-wizard-card:hover {
  border-color: var(--boost-accent);
  box-shadow: var(--boost-glass-shadow-hover), 0 0 0 3px var(--boost-accent-glow);
  transform: translateY(-2px);
}

.boost-wizard-card-selected {
  border-color: var(--boost-accent);
  background: var(--boost-accent-glow);
  box-shadow: 0 0 0 3px var(--boost-accent-glow);
}

.boost-wizard-card-icon {
  color: var(--boost-accent);
  line-height: 1;
}

/* Semantic icon colors by action type */
.boost-wizard-icon-green { color: var(--boost-success); }
.boost-wizard-icon-red { color: var(--boost-danger); }
.boost-wizard-icon-purple { color: var(--violet); }
.boost-wizard-icon-blue { color: var(--boost-info); }
.boost-wizard-icon-amber { color: var(--boost-warning-light); }
.boost-wizard-icon-orange { color: var(--boost-orange); }
.boost-wizard-icon-pink { color: var(--boost-pink); }
.boost-wizard-icon-yellow { color: var(--boost-yellow); }
.boost-wizard-icon-violet { color: var(--violet-light); }

.boost-wizard-card-flag {
  font-size: 36px;
  line-height: 1;
}

.boost-wizard-card-label {
  font-weight: 600;
  color: var(--boost-text-1);
  word-break: break-word;
  line-height: 1.2;
}

.boost-wizard-card-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

/* Badge "EN DIRECTO" — inline junto al título (no absoluto) para no arriesgar
   solapes con el icono o el botón de info en pantallas estrechas; envuelve con
   el texto igual que cualquier otra palabra si hace falta. */
.boost-wizard-live-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: 6px;
  padding: 1px 6px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.3px;
  color: var(--boost-danger);
  background: var(--boost-danger-bg);
  border: 1px solid rgba(var(--boost-danger-rgb), 0.3);
  border-radius: 999px;
  vertical-align: middle;
  white-space: nowrap;
}

.boost-wizard-live-dot {
  width: 6px;
  height: 6px;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--boost-danger);
  animation: boostLiveDotPulse 1.6s ease-in-out infinite;
}

@keyframes boostLiveDotPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(var(--boost-danger-rgb), 0.6); }
  50% { box-shadow: 0 0 0 4px rgba(var(--boost-danger-rgb), 0); }
}

.boost-wizard-card-hint {
  font-size: 12px;
  font-weight: 400;
  color: var(--boost-text-3);
  line-height: 1.3;
}

.boost-wizard-card-time {
  font-size: 12px;
  font-weight: 600;
  color: var(--boost-success-bold);
  display: flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  flex-shrink: 0;
}

.boost-wizard-card-row > .boost-wizard-card-time {
  margin-left: auto;
}

.boost-wizard-card > .boost-wizard-card-time {
  margin-top: 4px;
  justify-content: center;
}

.boost-wizard-card-time i {
  font-size: 11px;
}

/* ---- Wizard Search ---- */
.boost-wizard-search-wrap {
  margin-bottom: 20px;
  max-width: 560px;
  margin-inline: auto;
}

.boost-wizard-search-wrap .boost-input-icon {
  position: relative;
}

.boost-wizard-search-wrap input {
  padding-right: 40px;
}

.boost-wizard-search-clear,
.boost-input-clear {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: var(--boost-text-3);
  font-size: 14px;
  cursor: pointer;
  padding: 4px;
  border-radius: 50%;
  transition: color var(--boost-transition), background var(--boost-transition);
  z-index: 2;
}

/* Reset .boost-input-icon i styles on clear button icon */
.boost-wizard-search-clear i,
.boost-input-clear i {
  position: static;
  transform: none;
  pointer-events: auto;
  color: inherit;
}

.boost-wizard-search-clear:hover,
.boost-input-clear:hover {
  color: var(--boost-text-1);
  background: var(--boost-bg-muted);
}

.boost-wizard-search-results {
  max-width: 640px;
  margin: 0 auto;
}

.boost-wizard-search-count {
  font-size: 12px;
  color: var(--boost-text-3);
  margin-bottom: 8px;
  text-align: center;
}

.boost-wizard-search-list {
  max-height: 420px;
  overflow-y: auto;
  border-radius: var(--boost-radius-sm);
  background: var(--boost-form-bg);
  border: var(--boost-border-w) solid var(--boost-form-border);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
  backdrop-filter: blur(20px) saturate(150%);
  scrollbar-width: thin;
  scrollbar-color: var(--boost-accent-light) transparent;
}

.boost-wizard-search-list::-webkit-scrollbar {
  width: 6px;
}

.boost-wizard-search-list::-webkit-scrollbar-track {
  background: transparent;
}

.boost-wizard-search-list::-webkit-scrollbar-thumb {
  background: var(--boost-accent-light);
  border-radius: 3px;
}

.boost-wizard-search-list::-webkit-scrollbar-thumb:hover {
  background: var(--boost-accent);
}

/* ---- Custom Select (country picker wizard) ---- */
.boost-custom-select {
  position: relative;
}

.boost-custom-select-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  text-align: left;
  width: 100%;
  font-size: 14px;
}

.boost-custom-select-toggle:focus {
  border-color: var(--boost-accent);
  box-shadow: 0 0 0 3px var(--boost-accent-glow);
}

.boost-custom-select-caret {
  font-size: 12px;
  color: var(--boost-text-3);
  transition: transform var(--boost-transition);
  flex-shrink: 0;
  margin-left: 8px;
}

.boost-custom-select.open .boost-custom-select-caret {
  transform: rotate(180deg);
}

.boost-custom-select-menu {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 50;
  background: var(--boost-content-bg);
  border: var(--boost-border-w) solid var(--boost-form-border);
  border-radius: var(--boost-radius-sm);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
  overflow: hidden;
}

.boost-custom-select.open .boost-custom-select-menu {
  display: block;
  animation: boostModalSlideIn 0.15s ease;
}

.boost-custom-select-header {
  display: contents;
}

.boost-custom-select-close {
  display: none;
}

.boost-custom-select-search {
  border: none;
  border-bottom: var(--boost-border-w) solid var(--boost-form-border);
  border-radius: 0;
  font-size: 13px;
  padding: 10px 12px;
}

.boost-custom-select-search:focus {
  box-shadow: none;
  border-color: var(--boost-accent);
}

.boost-custom-select-list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 220px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--boost-accent-light) transparent;
}

.boost-custom-select-list::-webkit-scrollbar { width: 6px; }
.boost-custom-select-list::-webkit-scrollbar-track { background: transparent; }
.boost-custom-select-list::-webkit-scrollbar-thumb { background: var(--boost-accent-light); border-radius: 3px; }

.boost-custom-select-list li {
  padding: 8px 12px;
  font-size: 14px;
  cursor: pointer;
  color: var(--boost-text-1);
  transition: background var(--boost-transition);
}

.boost-custom-select-list li:hover {
  background: var(--boost-bg-muted);
}

.boost-custom-select-list li.active {
  background: var(--boost-accent-glow);
  color: var(--boost-accent);
  font-weight: 600;
}

.boost-wizard-search-item {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 12px 14px;
  background: none;
  border: none;
  border-bottom: 1px solid var(--boost-card-border);
  cursor: pointer;
  text-align: left;
  color: var(--boost-text-1);
  font: inherit;
  transition: background var(--boost-transition);
}

.boost-wizard-search-item:last-child {
  border-bottom: none;
}

.boost-wizard-search-item:hover {
  background: var(--boost-accent-glow);
}

.boost-wizard-search-item-icon {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  font-size: 22px;
  width: 36px;
  flex-shrink: 0;
}

.boost-wizard-search-item-body {
  flex: 1;
  min-width: 0;
}

.boost-wizard-search-item-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--boost-text-1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.boost-wizard-search-item-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 2px;
}

.boost-wizard-search-item-id {
  font-size: 9px;
  color: var(--boost-text-3);
  font-weight: 600;
  line-height: 1;
}

.boost-wizard-search-item-flag {
  font-size: 14px;
  line-height: 1;
}

.boost-wizard-search-item-range {
  font-size: 11px;
  color: var(--boost-text-3);
}

.boost-wizard-search-item-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 3px;
}

.boost-wizard-search-item-tags .boost-wizard-tag {
  font-size: 10px;
  padding: 1px 6px;
  color: var(--boost-text-1);
  background: var(--boost-bg-muted);
  border-color: var(--boost-card-border);
}

.boost-wizard-search-item-info {
  text-align: right;
  flex-shrink: 0;
}

.boost-wizard-search-item-price-from {
  font-size: 10px;
  color: var(--boost-text-3);
  font-weight: 500;
}

.boost-wizard-search-item-price {
  font-size: 28px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.02em;
}

.boost-price-cheap { color: var(--boost-success); }
.boost-price-mid { color: var(--boost-accent); }
.boost-price-high { color: var(--boost-warning); }



.boost-wizard-search-item-time {
  font-size: 11px;
  color: var(--boost-text-3);
  margin-top: 2px;
}

.boost-wizard-search-loading {
  text-align: center;
  padding: 32px;
  color: var(--boost-text-3);
  font-size: 20px;
}

.boost-wizard-search-empty {
  text-align: center;
  padding: 40px 20px;
  color: var(--boost-text-3);
}

.boost-wizard-search-empty i {
  font-size: 36px;
  margin-bottom: 12px;
  opacity: 0.4;
}

.boost-wizard-search-empty-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--boost-text-2);
  margin-bottom: 4px;
}

.boost-wizard-search-empty-hint {
  font-size: 13px;
}


/* Tags */
.boost-wizard-tag {
  display: inline-block;
  padding: 2px 8px;
  background: var(--boost-accent-glow);
  color: var(--boost-accent);
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  border: 1px solid rgba(var(--boost-accent-rgb), 0.18);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.boost-wizard-tag-ok {
  color: var(--boost-success);
}

/* Service card (details step) */
.boost-wizard-service-card {
  background: var(--boost-form-bg);
  border: var(--boost-border-w) solid var(--boost-form-border);
  border-radius: var(--boost-radius);
  padding: 20px;
  margin-bottom: 20px;
  text-align: center;
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
  box-shadow: var(--boost-glass-shadow);
}

.boost-wizard-service-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--boost-text-1);
  word-break: break-word;
}


.boost-wizard-service-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 24px;
  margin-top: 14px;
  padding-top: 14px;
  justify-content: center;
  border-top: 1px solid var(--boost-form-border);
}

.boost-wizard-meta-label {
  font-size: 11px;
  color: var(--boost-text-2);
  display: block;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 600;
}

.boost-wizard-meta-value {
  font-size: 16px;
  font-weight: 700;
  display: block;
  margin-top: 2px;
}

/* Guarantee badge (inside service card, after meta) */
.boost-guarantee-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 14px;
  background: rgba(var(--boost-success-rgb), 0.12);
  color: var(--boost-success-bold);
  border-radius: var(--boost-radius-sm);
  font-size: 12px;
  font-weight: 700;
  margin-top: 12px;
  border: 1px solid rgba(var(--boost-success-rgb), 0.3);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 2px 8px rgba(var(--boost-success-rgb), 0.1);
}

/* Compact service header (inside form, replaces separate service-card) */
.boost-wizard-svc-header {
  padding-bottom: 14px;
  margin-bottom: 2px;
  border-bottom: 2px solid rgba(var(--boost-accent-rgb), 0.15);
  text-align: center;
}

.boost-wizard-svc-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--boost-text-1);
  word-break: break-word;
}

.boost-wizard-svc-info {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
  justify-content: center;
}

.boost-wizard-svc-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  font-size: 11px;
  font-weight: 600;
  color: var(--boost-text-1);
  background: var(--boost-input-bg);
  border: 1px solid var(--boost-input-border);
  border-radius: var(--boost-radius-sm);
}

.boost-wizard-svc-chip i { font-size: 10px; }

.boost-wizard-svc-chip.boost-price-cheap {
  background: rgba(var(--boost-success-rgb), 0.1);
  border-color: rgba(var(--boost-success-rgb), 0.3);
}
.boost-wizard-svc-chip.boost-price-mid {
  background: rgba(var(--boost-accent-rgb), 0.1);
  border-color: rgba(var(--boost-accent-rgb), 0.3);
}
.boost-wizard-svc-chip.boost-price-high {
  background: rgba(var(--boost-warning-rgb), 0.1);
  border-color: rgba(var(--boost-warning-rgb), 0.3);
}

.boost-wizard-svc-chip-success {
  color: var(--boost-success-bold);
  background: var(--boost-success-bg);
}

.boost-svc-info-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  padding: 0;
  font-size: 12px;
  color: var(--boost-accent);
  background: rgba(var(--boost-accent-rgb), 0.08);
  border: 1px solid rgba(var(--boost-accent-rgb), 0.2);
  border-radius: 50%;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
  flex-shrink: 0;
}
.boost-svc-info-btn:hover {
  background: rgba(var(--boost-accent-rgb), 0.15);
  border-color: rgba(var(--boost-accent-rgb), 0.35);
}

.boost-svc-info-btn-abs {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 1;
}
.boost-wizard-card:has(.boost-svc-info-btn-abs) {
  padding-right: 36px;
}

.boost-specs-box { max-width: 420px; }

/* "Qué es esto" — contexto en lenguaje llano antes de las specs técnicas */
.boost-specs-what-is {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-top: 10px;
  padding: 10px 14px;
  background: rgba(var(--boost-accent-rgb), 0.08);
  border: 1px solid rgba(var(--boost-accent-rgb), 0.2);
  border-radius: var(--boost-radius-sm);
  text-align: left;
  font-size: 13px;
  line-height: 1.4;
  color: var(--boost-text-1);
}

.boost-specs-what-is i {
  color: var(--boost-accent);
  margin-top: 2px;
  flex-shrink: 0;
}

.boost-specs-grid {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 16px 0 12px;
  text-align: left;
}

.boost-specs-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  background: var(--boost-input-bg);
  border: 1px solid var(--boost-input-border);
  border-radius: var(--boost-radius-sm);
}

.boost-specs-label {
  font-size: 14px;
  font-weight: 600;
  color: var(--boost-text-2);
  white-space: nowrap;
}

.boost-specs-label i {
  color: var(--boost-accent);
  margin-right: 6px;
}

.boost-specs-value {
  font-size: 14px;
  font-weight: 700;
  color: var(--boost-text-1);
  text-align: right;
}

.boost-specs-desc {
  margin-top: 12px;
  padding: 12px 14px;
  background: var(--boost-input-bg);
  border: 1px solid var(--boost-input-border);
  border-radius: var(--boost-radius-sm);
  text-align: left;
}

.boost-specs-desc-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--boost-text-2);
  margin-bottom: 6px;
}

.boost-specs-desc-label i {
  color: var(--boost-accent);
  margin-right: 6px;
}

.boost-specs-desc-text {
  font-size: 13px;
  color: var(--boost-text-1);
  line-height: 1.5;
  white-space: pre-line;
  max-height: 120px;
  overflow-y: auto;
}

/* Trust strip (below submit button and recharge section) */
.boost-trust-strip {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin: 14px auto 0;
  font-size: 11px;
  font-weight: 600;
  color: var(--boost-text-2);
  max-width: 380px;
}

.boost-trust-strip span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.boost-trust-strip i {
  color: var(--boost-success);
}

/* Promo countdown banner — uses direct values (rendered outside .boost-body in guides) */
.boost-promo-countdown {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 20px;
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-hover));
  border-radius: 10px;
  margin-bottom: 20px;
  color: var(--boost-white);
}

.boost-promo-countdown-left {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  min-width: 0;
}

.boost-promo-countdown-badge {
  font-size: 22px;
  font-weight: 800;
  white-space: nowrap;
}

.boost-promo-countdown-text strong {
  display: block;
  font-size: 16px;
  line-height: 1.3;
}

.boost-promo-countdown-text p {
  margin: 2px 0 0;
  font-size: 12px;
  opacity: 1;
  color: rgba(255, 255, 255, 0.95);
}

.boost-promo-countdown-timer {
  font-family: 'SF Mono', 'Fira Code', monospace;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 2px;
  white-space: nowrap;
}

.boost-promo-countdown-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 22px;
  background: rgba(0, 0, 0, 0.25);
  color: var(--boost-white);
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 8px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.15s, border-color 0.15s;
}

.boost-promo-countdown-cta:hover {
  background: rgba(0, 0, 0, 0.35);
  border-color: rgba(255, 255, 255, 0.6);
  color: var(--boost-white);
}

/* Form wrapper */
.boost-wizard-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
  background: var(--boost-form-bg);
  border: var(--boost-border-w) solid var(--boost-form-border);
  border-radius: var(--boost-radius);
  padding: 20px;
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
  box-shadow: var(--boost-glass-shadow);
}

/* Back button — integrated in breadcrumb */
.boost-wizard-back {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid var(--boost-border, rgba(255,255,255,0.15));
  background: var(--boost-card-bg);
  color: var(--boost-accent);
  font-size: 13px;
  cursor: pointer;
  transition: all var(--boost-t-smooth);
  flex-shrink: 0;
}
.boost-wizard-back:hover {
  background: var(--boost-accent);
  border-color: var(--boost-accent);
  color: var(--boost-white);
  transform: scale(1.1);
  box-shadow: 0 2px 10px rgba(var(--boost-accent-rgb), 0.3);
}
.boost-wizard-back[hidden] {
  display: none;
}

/* Step inline error (shown below header on validation fail) */
.boost-wizard-step-error {
  text-align: center;
  padding: 10px 16px;
  margin: 0 auto 16px;
  max-width: 480px;
  border-radius: var(--boost-radius);
  background: var(--boost-danger-bg);
  color: var(--boost-danger);
  font-size: 0.9rem;
  font-weight: 500;
  animation: wzEnterFwd 0.22s ease;
}
.boost-wizard-step-error i {
  margin-right: 6px;
}

/* Step inline success (shown on profile creation success) */
.boost-wizard-step-success {
  text-align: center;
  padding: 10px 16px;
  margin: 0 auto 16px;
  max-width: 480px;
  border-radius: var(--boost-radius);
  background: var(--boost-success-bg);
  color: var(--boost-success);
  font-size: 0.9rem;
  font-weight: 500;
  animation: wzEnterFwd 0.22s ease;
}
.boost-wizard-step-success i {
  margin-right: 6px;
}

/* Step actions (centered buttons inside wizard panel) */
.boost-wizard-step-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin-top: 24px;
  padding-bottom: 8px;
}
.boost-wizard-photo-hint {
  font-size: 0.85rem;
  text-align: center;
  margin: 0;
}

/* Success panel */
.boost-wizard-success {
  text-align: center;
  padding: 48px 20px;
}

.boost-wizard-success-icon {
  font-size: 56px;
  color: var(--boost-success);
  margin-bottom: 16px;
}

.boost-wizard-success-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-top: 24px;
}

.boost-wizard-cta-creators {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 28px;
  padding: 16px 20px;
  background: rgba(var(--boost-accent-rgb), 0.06);
  border: 1px solid rgba(var(--boost-accent-rgb), 0.15);
  border-radius: var(--boost-radius);
  text-align: left;
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s;
}
.boost-wizard-cta-creators:hover {
  background: rgba(var(--boost-accent-rgb), 0.10);
  border-color: rgba(var(--boost-accent-rgb), 0.3);
}
.boost-wizard-cta-creators > i:first-child {
  font-size: 24px;
  color: var(--boost-accent);
  flex-shrink: 0;
}
.boost-wizard-cta-creators > i:last-child {
  color: var(--boost-accent);
  flex-shrink: 0;
  font-size: 14px;
}
.boost-wizard-cta-creators-text {
  flex: 1;
  min-width: 0;
}
.boost-wizard-cta-creators-text strong {
  display: block;
  font-size: 14px;
  color: var(--boost-text-1);
  margin-bottom: 2px;
}
.boost-wizard-cta-creators-text span {
  font-size: 12px;
  color: var(--boost-text-2);
  line-height: 1.4;
}

/* Recharge step inside wizard */
.boost-wizard-recharge {
  text-align: center;
  padding: 24px 0;
}

/* Prefijo .boost-body: mismo motivo que .boost-packages-title (ver arriba) —
   sin él, el reset ".boost-body h1...h6/p { margin-bottom: 0 }" gana por
   especificidad (0,1,1 > 0,1,0) y el margin-bottom nunca se aplica. */
.boost-body .boost-wizard-recharge-summary {
  font-size: 16px;
  color: var(--boost-text-2);
  margin-bottom: 12px;
}

.boost-wizard-recharge-needed {
  font-size: 18px;
  font-weight: 700;
  color: var(--boost-accent);
  margin: 0;
  padding-bottom: 28px;
}

.boost-wizard-recharge .boost-recharge-grid {
  justify-content: center;
  max-width: 400px;
  margin: 0 auto 16px;
}

.boost-wizard-recharge .boost-recharge-custom {
  max-width: 400px;
  margin: 0 auto;
}

/* Auth prompt for guests in wizard */
.boost-wizard-auth {
  text-align: center;
  padding: 32px 0;
}

.boost-wizard-auth-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--boost-text-1);
  margin-bottom: 16px;
}

.boost-wizard-auth-btns {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 320px;
  margin: 0 auto;
}

.boost-wizard-auth-divider {
  color: var(--boost-text-3);
  font-size: 13px;
  margin: 4px 0;
}

/* Express checkout form in auth prompt */
.boost-express-form {
  background: rgba(var(--boost-accent-rgb), 0.06);
  border: 1px solid rgba(var(--boost-accent-rgb), 0.2);
  border-radius: var(--boost-radius);
  padding: 20px 16px;
  text-align: left;
}

.boost-express-desc {
  font-size: 13px;
  color: var(--boost-text-2);
  margin: 0;
  padding-bottom: 14px;
  text-align: center;
}

.boost-express-input-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.boost-express-input-row .boost-input {
  flex: 1;
  min-width: 140px;
}

.boost-express-input-row .boost-btn {
  flex-shrink: 0;
}

.boost-express-code-input {
  font-family: monospace;
  font-size: 20px;
  letter-spacing: 6px;
  text-align: center;
  max-width: 180px;
}

.boost-express-code-actions {
  display: flex;
  gap: 16px;
  justify-content: center;
  width: 100%;
  margin-top: 4px;
}

.boost-express-code-link {
  background: none;
  border: none;
  color: var(--boost-accent);
  font-size: 13px;
  cursor: pointer;
  padding: 4px 0;
  transition: opacity 0.2s;
}

.boost-express-code-link:hover {
  text-decoration: underline;
}

.boost-express-code-link:disabled {
  color: var(--boost-text-3);
  cursor: default;
  text-decoration: none;
}

.boost-express-code-validity {
  width: 100%;
  text-align: center;
  color: var(--boost-text-3);
  font-size: 12px;
}

/* Restored order banner */
.boost-wizard-restored-banner {
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-hover));
  border: none;
  border-radius: var(--boost-radius-sm);
  padding: 14px 16px;
  color: var(--boost-white);
  font-weight: 600;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 12px;
}
.boost-wizard-restored-banner i {
  font-size: 20px;
  flex-shrink: 0;
}

/* Empty state */
.boost-wizard-empty {
  text-align: center;
  padding: 48px 20px;
  color: var(--boost-text-2);
}

.boost-wizard-empty i {
  font-size: 48px;
  margin-bottom: 16px;
  display: block;
}


/* ============================================================================
   TOAST NOTIFICATIONS
   ============================================================================ */
.boost-toast-container {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  gap: 8px;
  pointer-events: none;
}

.boost-toast {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 500;
  color: var(--boost-text-1);
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-border);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
  pointer-events: auto;
  animation: boostToastIn 0.3s ease;
  max-width: 380px;
}

.boost-toast-success { border-left: 4px solid var(--boost-success); color: var(--boost-text-1); }
.boost-toast-error   { border-left: 4px solid var(--boost-danger);  color: var(--boost-text-1); }
.boost-toast-info    { border-left: 4px solid var(--boost-accent);  color: var(--boost-text-1); }

.boost-toast i { font-size: 16px; flex-shrink: 0; }
.boost-toast-success i { color: var(--boost-success); }
.boost-toast-error i   { color: var(--boost-danger); }
.boost-toast-info i    { color: var(--boost-accent); }

.boost-toast-msg { flex: 1; line-height: 1.4; }

.boost-toast-close {
  background: none;
  border: none;
  color: var(--boost-text-3);
  cursor: pointer;
  padding: 2px;
  font-size: 14px;
  flex-shrink: 0;
}

.boost-toast-out {
  animation: boostToastOut 0.25s ease forwards;
}

@keyframes boostToastIn {
  from { opacity: 0; transform: translateX(40px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes boostToastOut {
  from { opacity: 1; transform: translateX(0); }
  to   { opacity: 0; transform: translateX(40px); }
}

/* ============================================================================
   PUSH NOTIFICATION BANNER
   ============================================================================ */
.boost-push-banner {
  position: fixed;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-border);
  border-radius: 12px;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15);
  max-width: 480px;
  width: calc(100% - 32px);
}
.boost-push-banner > .fa-bell {
  color: var(--boost-accent);
  font-size: 18px;
  flex-shrink: 0;
}
.boost-push-banner-text {
  flex: 1;
  font-size: 13px;
  color: var(--boost-text-1);
  line-height: 1.4;
}
.boost-push-banner-close {
  background: none;
  border: none;
  color: var(--boost-text-3);
  cursor: pointer;
  padding: 4px;
  font-size: 14px;
  flex-shrink: 0;
}

/* iOS PWA guide card (settings page) */
.boost-ios-pwa-guide .boost-settings-card-icon {
  color: var(--boost-text-2);
}
.boost-ios-pwa-steps {
  margin: 8px 0 0;
  padding-left: 20px;
  color: var(--boost-text-2);
  font-size: 14px;
  line-height: 1.8;
}

/* Call room avatar */
.boost-call-avatar {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
}
.boost-call-ringing-avatar img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}

@media (max-width: 480px) {
  .boost-push-banner {
    flex-wrap: wrap;
    gap: 8px;
    bottom: 12px;
  }
  .boost-push-banner-text {
    flex-basis: calc(100% - 44px);
  }
}

/* ============================================================================
   CONFIRM MODAL
   ============================================================================ */
.boost-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 10001;
  background: var(--boost-modal-backdrop);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
  overflow-y: auto;
}
.boost-modal-overlay:not([hidden]) {
  display: flex;
  animation: boostModalFadeIn 0.2s ease;
}

.boost-modal-overlay[hidden] { display: none; }

.boost-modal-box {
  background: var(--boost-content-bg);
  border: 3px solid rgba(var(--boost-accent-rgb), 0.7);
  border-radius: 14px;
  padding: 28px 24px 20px;
  max-width: 400px;
  width: 100%;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.3);
  text-align: center;
}
.boost-modal-overlay:not([hidden]) .boost-modal-box {
  animation: boostModalSlideIn 0.25s ease;
}

.boost-modal-box-wide {
  max-width: 640px;
  text-align: left;
}

/* Modal Stripe Embedded Checkout — monta el widget de Stripe dentro. max-height con scroll interno
   para que el formulario de Stripe (puede ser largo: tarjeta + bizum + datos facturación) encaje
   siempre en viewport en móvil. */
.boost-stripe-modal { padding: 20px 20px 16px; max-height: 90vh; overflow-y: auto; }
/* Prefijo .boost-body: mismo motivo que .boost-packages-title — sin él
   pierde frente al reset ".boost-body h1...h6 { margin-bottom: 0 }". */
.boost-body .boost-stripe-modal-title {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 14px;
  color: var(--boost-text-1);
  display: flex;
  align-items: center;
  gap: 8px;
  padding-right: 32px; /* espacio para close button absolute */
}
.boost-stripe-modal-title i { color: var(--boost-accent); }
.boost-stripe-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 40px 20px;
  color: var(--boost-text-2);
  font-size: 14px;
}
.boost-stripe-loading[hidden] { display: none; }
.boost-stripe-mount {
  min-height: 200px; /* evita colapso mientras Stripe monta */
}
/* Stripe inyecta iframe dentro — heredamos su width 100% */
.boost-stripe-mount > div { width: 100%; }

@media (max-width: 480px) {
  .boost-stripe-modal { padding: 16px 12px 12px; max-height: 94vh; }
  .boost-stripe-modal-title { font-size: 15px; }
}
.boost-modal-box-wide .boost-modal-actions {
  justify-content: flex-end;
}
.boost-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 16px;
}
.boost-form-grid .boost-form-group {
  margin: 0;
}
.boost-form-grid .boost-form-group + .boost-form-group {
  margin: 0;
}
.boost-form-group-full {
  grid-column: 1 / -1;
}
@media (max-width: 480px) {
  .boost-form-grid { grid-template-columns: 1fr; }
  .boost-modal-box-wide { padding: 20px 16px 16px; }
}

.boost-modal-icon {
  font-size: 44px;
  margin-bottom: 12px;
}
.boost-modal-icon-warning { color: var(--boost-warning); }
.boost-modal-icon-info    { color: var(--boost-accent); }
.boost-donate-modal .boost-modal-icon {
  font-size: 2.2rem;
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(var(--boost-accent-rgb), 0.15), rgba(var(--boost-accent-rgb), 0.06));
  color: var(--boost-accent);
  margin: 0 auto;
  box-shadow: 0 4px 16px rgba(var(--boost-accent-rgb), 0.18);
}

/* Prefijo .boost-body en .boost-modal-title/.boost-modal-msg: mismo motivo
   que .boost-packages-title — sin él pierde frente al reset de headings/p
   cuando se usan en <h3>/<p> estáticos (los modales generados por JS con
   <div> no se ven afectados, pero comparten la misma regla). */
.boost-body .boost-modal-title {
  font-size: 19px;
  font-weight: 600;
  color: var(--boost-text-1);
  margin-bottom: 8px;
}

.boost-body .boost-modal-msg {
  font-size: 14px;
  color: var(--boost-text-2);
  line-height: 1.5;
  margin-bottom: 20px;
}
.boost-modal-input {
  width: 100%;
  margin-bottom: 16px;
}

.boost-modal-actions {
  display: flex;
  gap: 10px;
  justify-content: center;
}

.boost-modal-actions .boost-btn {
  min-width: 110px;
}

/* Contact modal — circular avatar left, title + @username + price info right */
.boost-contact-modal { text-align: left; }
.boost-contact-header {
  display: flex;
  gap: 14px;
  align-items: center;
  justify-content: flex-start;
  margin-bottom: 12px;
}
.boost-contact-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: rgba(var(--boost-accent-rgb), 0.12);
  border: 2px solid rgba(var(--boost-accent-rgb), 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.boost-contact-avatar-clickable {
  cursor: pointer;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.boost-contact-avatar-clickable:hover {
  transform: scale(1.04);
  border-color: var(--boost-accent);
  box-shadow: 0 4px 14px rgba(var(--boost-accent-rgb), 0.3);
}
.boost-contact-avatar-clickable:focus-visible {
  outline: 2px solid var(--boost-accent);
  outline-offset: 2px;
}
.boost-contact-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.boost-contact-avatar-initials {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--boost-accent);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.boost-contact-header-text {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  text-align: left;
  flex: 1;
}
.boost-contact-header-text h3 {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--boost-text-1);
  margin: 0;
  line-height: 1.2;
}
.boost-contact-username {
  font-size: 0.88rem;
  color: var(--boost-text-3);
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.boost-contact-price-info {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 14px;
  margin-bottom: 14px;
  background: var(--boost-content-bg-dark);
  border-radius: var(--boost-radius-sm);
  border-left: 3px solid var(--boost-accent);
}
.boost-contact-price-row {
  font-size: 0.82rem;
  color: var(--boost-text-2);
  display: flex;
  align-items: center;
  gap: 6px;
}
.boost-contact-price-row i {
  color: var(--boost-accent);
  font-size: 0.78rem;
  flex-shrink: 0;
}
.boost-contact-price-row strong {
  color: var(--boost-text-1);
}
.boost-contact-modal .boost-modal-actions {
  justify-content: center;
}
/* ---- Emoji picker (reusable partial) ---- */
.boost-emoji-picker {
  position: relative;
  display: inline-flex;
}
/* The author `display: inline-flex` above has the same specificity as the UA
   `[hidden] { display: none }` rule (class vs attribute both = 0,1,0) and
   author wins over UA, so we need an explicit class+attribute rule to honor
   the `hidden` attribute on reaction pickers. Without this, `#msgReactionPicker`
   stays rendered as an empty inline-flex with its absolutely-positioned
   dropdown floating at the bottom-left of the page. */
.boost-emoji-picker[hidden] { display: none; }
.boost-emoji-toggle {
  font-size: 1.1rem;
  line-height: 1;
  border: 1px solid var(--boost-card-border);
}
.boost-emoji-toggle:hover {
  border-color: var(--boost-accent);
}
.boost-emoji-toggle-icon {
  pointer-events: none;
}
.boost-emoji-dropdown {
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px;
  padding: 8px;
  background: var(--boost-popover-bg);
  border: 1px solid var(--boost-card-border);
  border-radius: var(--boost-radius);
  box-shadow: var(--boost-shadow-md);
  z-index: 120;
  min-width: 160px;
}
.boost-emoji-dropdown[hidden] { display: none; }
.boost-emoji-item {
  background: none;
  border: none;
  padding: 6px;
  font-size: 1.3rem;
  cursor: pointer;
  border-radius: 6px;
  line-height: 1;
  text-align: center;
  transition: background 0.15s, transform 0.15s;
  -webkit-tap-highlight-color: transparent;
}
.boost-emoji-item:hover {
  background: rgba(var(--boost-accent-rgb), 0.10);
  transform: scale(1.15);
}
@media (max-width: 480px) {
  .boost-contact-header { gap: 10px; }
  .boost-contact-avatar { width: 48px; height: 48px; }
  .boost-contact-avatar-initials { font-size: 1rem; }
  .boost-contact-header-text h3 { font-size: 0.98rem; }
  .boost-contact-username { font-size: 0.82rem; }
  .boost-contact-price-info { padding: 8px 12px; margin-bottom: 10px; }
  .boost-contact-price-row { font-size: 0.78rem; }
  .boost-emoji-dropdown {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    top: auto;
    transform: none;
    border-radius: var(--boost-radius) var(--boost-radius) 0 0;
    grid-template-columns: repeat(8, 1fr);
    min-width: 0;
    padding: 12px 8px calc(env(safe-area-inset-bottom, 8px) + 8px);
    z-index: 10010;
  }
}

@keyframes boostModalFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes boostModalSlideIn {
  from { opacity: 0; transform: scale(0.9) translateY(10px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

/* PWA Install Modal */
.boost-pwa-modal {
  text-align: center;
  max-width: 360px;
  position: relative;
}
.boost-pwa-modal .boost-modal-close {
  position: absolute;
  top: 8px;
  right: 8px;
}
.boost-pwa-icon {
  font-size: 2.5rem;
  color: var(--boost-accent);
  margin-bottom: 12px;
}
/* Prefijo .boost-body: mismo motivo que .boost-packages-title — sin él
   pierde frente al reset ".boost-body h3/p { margin-bottom: 0 }". */
.boost-body .boost-pwa-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--boost-text-1);
  margin-bottom: 6px;
}
.boost-body .boost-pwa-desc {
  font-size: 0.85rem;
  color: var(--boost-text-3);
  margin-bottom: 16px;
  line-height: 1.4;
}
.boost-pwa-install-btn {
  width: 100%;
  margin-bottom: 12px;
}
.boost-pwa-ios {
  text-align: left;
  margin-bottom: 12px;
}
/* Prefijo .boost-body: mismo motivo que arriba — pierde frente al reset
   ".boost-body p { margin-bottom: 0 }" sin esta especificidad extra. */
.boost-body .boost-pwa-ios-step {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: 0.82rem;
  color: var(--boost-text-2);
  margin-bottom: 6px;
}
.boost-pwa-ios-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--boost-accent);
  color: var(--boost-white);
  font-size: 0.7rem;
  font-weight: 700;
  flex-shrink: 0;
}
.boost-pwa-dismiss {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 0.75rem;
  color: var(--boost-text-3);
  cursor: pointer;
  margin-top: 8px;
}
.boost-pwa-dismiss input { accent-color: var(--boost-accent); }


/* Extras: cell with truncated text + visible icon */
.boost-td-svc-extras {
  display: flex;
  align-items: center;
  gap: 4px;
  max-width: 200px;
  overflow: visible;
}
.boost-td-truncate-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}

/* Extras detail modal */
.boost-extras-btn {
  flex-shrink: 0;
  position: relative;
  z-index: 2;
  background: rgba(var(--boost-accent-rgb), 0.15);
  border: none;
  border-radius: var(--boost-radius-sm);
  color: var(--boost-accent);
  cursor: pointer;
  padding: 3px 7px;
  font-size: 12px;
  transition: background var(--boost-transition);
}
.boost-extras-btn:hover { background: rgba(var(--boost-accent-rgb), 0.3); }

.boost-extras-modal {
  max-width: 480px;
  text-align: left;
}
.boost-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.boost-modal-header h3 {
  font-size: 16px;
  font-weight: 700;
  color: var(--boost-text-1);
  margin: 0;
}
.boost-modal-close {
  background: none;
  border: none;
  color: var(--boost-text-3);
  font-size: 18px;
  cursor: pointer;
  padding: 4px;
  transition: color var(--boost-transition);
}
.boost-modal-close:hover { color: var(--boost-text-1); }
.boost-modal-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.boost-extras-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.boost-extras-label {
  font-size: 11px;
  font-weight: 600;
  color: var(--boost-text-3);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.boost-extras-value {
  font-size: 14px;
  color: var(--boost-text-1);
  background: var(--boost-content-bg-light);
  border-radius: var(--boost-radius-sm);
  padding: 10px 12px;
  line-height: 1.6;
  white-space: pre-wrap;
  word-break: break-word;
}

/* ---- Language selector ---- */
.boost-lang-selector {
  position: relative;
}

.boost-lang-toggle {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  background: rgba(0,0,0,0.04);
  border: var(--boost-border-w) solid var(--boost-card-border);
  border-radius: 8px;
  color: var(--boost-text-2);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: background var(--boost-transition), color var(--boost-transition);
  white-space: nowrap;
}

.boost-lang-toggle:hover {
  background: rgba(0,0,0,0.08);
  color: var(--boost-text-1);
}

.boost-lang-toggle .boost-lang-flag {
  font-size: 16px;
  line-height: 1;
}

.boost-lang-toggle .boost-lang-caret {
  font-size: 10px;
  transition: transform 0.2s;
}

.boost-lang-selector.open .boost-lang-caret {
  transform: rotate(180deg);
}

.boost-lang-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  min-width: 160px;
  background: var(--boost-content-bg-light);
  border: var(--boost-border-w) solid var(--boost-card-border);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.15);
  z-index: 200;
  padding: 6px;
  list-style: none;
  margin: 0;
}

.boost-lang-selector.open .boost-lang-dropdown {
  display: block;
}

.boost-lang-dropdown li a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 6px;
  color: var(--boost-text-2);
  font-size: 13px;
  text-decoration: none;
  transition: background var(--boost-transition), color var(--boost-transition);
}

.boost-lang-dropdown li a:hover {
  background: rgba(0,0,0,0.04);
  color: var(--boost-text-1);
}

.boost-lang-dropdown li a.active {
  background: var(--boost-primary-bg);
  color: var(--boost-primary);
  font-weight: 600;
}

.boost-lang-dropdown li a .boost-lang-flag {
  font-size: 18px;
  line-height: 1;
}

/* ---- Fallback language banner ---- */
.boost-lang-fallback-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  background: var(--boost-warning-bg);
  border: 1px solid rgba(var(--boost-warning-rgb),0.2);
  border-radius: 8px;
  color: var(--boost-text-1);
  font-size: 13px;
  margin-bottom: 16px;
}

.boost-lang-fallback-banner i {
  color: var(--boost-warning);
  font-size: 16px;
  flex-shrink: 0;
}

/* ============================================================================
   WELCOME MODAL
   ============================================================================ */
@keyframes boostWelcomeFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes boostWelcomeBoxIn {
  from { opacity: 0; transform: scale(0.85) translateY(30px); }
  to { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes boostWelcomePulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.15); }
}

@keyframes boostWelcomeTagIn {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes boostWelcomeGlow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(var(--boost-accent-rgb), 0.3); }
  50% { box-shadow: 0 0 20px 4px rgba(var(--boost-accent-rgb), 0.25); }
}


.boost-welcome-overlay {
  position: fixed;
  inset: 0;
  z-index: 10002;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: var(--boost-modal-backdrop);
  animation: boostWelcomeFadeIn 0.35s ease-out;
}

.boost-welcome-overlay.boost-welcome-open {
  display: flex;
}

.boost-welcome-overlay.boost-welcome-closing {
  opacity: 0;
  transition: opacity 0.3s ease;
}

.boost-welcome-box {
  position: relative;
  max-width: 440px;
  width: 100%;
  /* Opaco a propósito: --boost-form-bg es semitransparente (frosted glass,
     pensado para ir encima de otras cards), pero este modal flota sobre
     el overlay oscuro de fondo y con ella el contenido de la página se
     transparentaba a través, dificultando la lectura. */
  background: var(--boost-popover-bg);
  border-radius: 18px;
  padding: 36px 28px 24px;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.35);
  text-align: center;
  animation: boostWelcomeBoxIn 0.4s ease-out;
}

.boost-welcome-closing .boost-welcome-box {
  opacity: 0;
  transform: scale(0.9);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.boost-welcome-close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  color: var(--boost-text-3);
  font-size: 16px;
  cursor: pointer;
  border-radius: 50%;
  transition: background var(--boost-transition), color var(--boost-transition);
}

.boost-welcome-close:hover {
  background: rgba(0, 0, 0, 0.06);
  color: var(--boost-text-1);
}

.boost-welcome-icon {
  font-size: 56px;
  color: var(--boost-accent);
  margin-bottom: 12px;
  animation: boostWelcomePulse 2s ease-in-out infinite;
}

/* Prefijo .boost-body: mismo motivo que .boost-packages-title — sin él
   pierde frente al reset ".boost-body h1...h6/p { margin-bottom: 0 }". */
.boost-body .boost-welcome-title {
  font-size: 22px;
  font-weight: 800;
  color: var(--boost-text-1);
  margin: 0 0 6px;
  line-height: 1.3;
}

.boost-body .boost-welcome-subtitle {
  font-size: 14px;
  color: var(--boost-text-2);
  line-height: 1.5;
  margin: 0 0 18px;
}

.boost-welcome-services {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-bottom: 20px;
}

.boost-welcome-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 14px;
  background: var(--boost-accent-glow);
  color: var(--boost-accent);
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  opacity: 0;
  animation: boostWelcomeTagIn 0.4s ease-out forwards;
}

.boost-welcome-tag:nth-child(1) { animation-delay: 0.1s; }
.boost-welcome-tag:nth-child(2) { animation-delay: 0.15s; }
.boost-welcome-tag:nth-child(3) { animation-delay: 0.2s; }
.boost-welcome-tag:nth-child(4) { animation-delay: 0.25s; }
.boost-welcome-tag:nth-child(5) { animation-delay: 0.3s; }


.boost-welcome-trust {
  display: flex;
  justify-content: center;
  gap: 16px;
  font-size: 12px;
  color: var(--boost-text-3);
  margin-bottom: 18px;
}

.boost-welcome-trust span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.boost-welcome-trust i {
  font-size: 13px;
}

.boost-welcome-cta {
  font-size: 15px;
}

.boost-welcome-dismiss {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 12px;
  color: var(--boost-text-3);
  cursor: pointer;
  margin-top: 12px;
  user-select: none;
}

.boost-welcome-dismiss input[type="checkbox"] {
  accent-color: var(--boost-accent);
}

/* ============================================================================
   PACKAGES + SOCIAL PROOF (guías SEO)
   ============================================================================ */
.boost-packages {
  margin-top: 32px;
  padding: 24px;
  background: var(--boost-form-bg);
  border: var(--boost-border-w) solid var(--boost-form-border);
  border-radius: 14px;
}

/* Prefijo .boost-body eleva la especificidad (0,2,0) por encima del reset
   ".boost-body h1...h6 { margin-bottom: 0 }" (0,1,1) — sin esto el reset
   gana pese a ir declarado antes, y el margin-bottom nunca se aplica. */
.boost-body .boost-packages-title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 20px;
  font-weight: 700;
  color: var(--boost-text-1);
  /* Mismo espaciado que .boost-landing-section-title (fuente única del
     hueco título→contenido en las secciones de la landing de Boost) —
     antes 20px, quedaba pegado a las cards de debajo. */
  margin: 0 0 2.5rem;
  text-align: center;
}

/* Platform icon colors in package cards */
.boost-packages-platform-icon { font-size: 20px; }
.boost-packages-platform-icon[data-platform="instagram"] { color: var(--platform-instagram); }
.boost-packages-platform-icon[data-platform="tiktok"] { color: var(--platform-tiktok); }
.boost-packages-platform-icon[data-platform="youtube"] { color: var(--platform-youtube); }
.boost-packages-platform-icon[data-platform="twitter"] { color: var(--platform-facebook); }
.boost-packages-platform-icon[data-platform="facebook"] { color: var(--platform-facebook); }
.boost-packages-platform-icon[data-platform="spotify"] { color: var(--platform-spotify); }
.boost-packages-platform-icon[data-platform="linkedin"] { color: var(--platform-linkedin); }
.boost-packages-platform-icon[data-platform="telegram"] { color: var(--platform-telegram); }
.boost-packages-platform-icon[data-platform="discord"] { color: var(--platform-discord); }
.boost-packages-platform-icon[data-platform="twitch"] { color: var(--platform-twitch); }
.boost-packages-platform-icon[data-platform="pinterest"] { color: var(--platform-pinterest); }
.boost-packages-platform-icon[data-platform="snapchat"] { color: var(--platform-snapchat); }
.boost-packages-platform-icon[data-platform="soundcloud"] { color: var(--platform-soundcloud); }
.boost-packages-platform-icon[data-platform="threads"] { color: var(--boost-text-1); }
.boost-packages-platform-icon[data-platform="clubhouse"] { color: var(--platform-clubhouse); }
.boost-packages-platform-icon[data-platform="reddit"] { color: var(--platform-reddit); }
.boost-packages-platform-icon[data-platform="kick"] { color: var(--platform-kick); }
.boost-packages-platform-icon[data-platform="rumble"] { color: var(--platform-rumble); }
.boost-packages-platform-icon[data-platform="trustpilot"] { color: var(--platform-trustpilot); }
.boost-packages-platform-icon[data-platform="google-business"] { color: var(--platform-facebook); }

.boost-package-tier .boost-packages-platform-icon { font-size: 14px; }

.boost-packages-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.boost-packages-grid-auto {
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.boost-packages-landing {
  background: transparent;
  border: none;
  padding: 0;
  margin-top: 24px;
}

.boost-packages-landing .boost-package-card {
  text-decoration: none;
  color: inherit;
}

.boost-package-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 24px 18px;
  background: var(--boost-card-bg);
  border: var(--boost-border-w) solid var(--boost-card-border);
  border-radius: 12px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.boost-package-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

.boost-package-card.recommended {
  border-color: var(--boost-accent);
  background: linear-gradient(180deg, rgba(var(--boost-accent-rgb), 0.04) 0%, var(--boost-content-bg) 100%);
  position: relative;
}

.boost-package-tier {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 4px 12px;
  border-radius: 20px;
  background: rgba(0, 0, 0, 0.05);
  color: var(--boost-text-3);
  margin-bottom: 14px;
}

.boost-package-card.recommended .boost-package-tier {
  background: var(--boost-accent);
  color: var(--boost-white);
}

.boost-package-qty {
  font-size: 22px;
  font-weight: 800;
  color: var(--boost-text-1);
  margin-bottom: 6px;
}

.boost-package-price {
  font-size: 15px;
  font-weight: 600;
  color: var(--boost-accent);
  margin-bottom: 14px;
}

.boost-package-meta {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 12px;
  color: var(--boost-text-2);
  margin-bottom: 16px;
  min-height: 42px;
}

.boost-package-meta span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.boost-package-meta i {
  font-size: 11px;
  color: var(--boost-accent);
}

/* Extends .boost-btn .boost-btn-primary (added in HTML) */
.boost-package-cta {
  width: 100%;
}

/* ============================================================================
   BRIDGE LANDING — /boost hero con selector de plataformas
   ============================================================================ */
.boost-bridge-hero {
  text-align: center;
  padding: 0 1.5rem 3rem;
  max-width: 800px;
  margin: 0 auto;
}

/* Prefijo .boost-body: mismo motivo que .boost-packages-title — sin él
   pierde frente al reset ".boost-body h1/p { margin-bottom: 0 }". */
.boost-body .boost-bridge-title {
  font-size: 2.4rem;
  font-weight: 800;
  color: var(--boost-text-1);
  margin: 0 0 1.5rem;
  line-height: 1.2;
}

.boost-body .boost-bridge-subtitle {
  font-size: 1.2rem;
  color: var(--boost-text-2);
  margin: 0 0 2.5rem;
  font-weight: 400;
}

/* Social proof inside bridge — single line, no wrapping */
.boost-bridge-hero .boost-social-proof {
  margin-bottom: 3rem;
  padding: 18px 28px;
  font-size: 14px;
  flex-wrap: wrap;
  gap: 16px 28px;
}

.boost-bridge-hero .boost-social-proof-item {
  white-space: nowrap;
}

/* Platform tabs row */
.boost-bridge-platforms {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
  margin: 0 0 2rem;
}

.boost-bridge-platform-tab {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  width: 72px;
  height: 72px;
  justify-content: center;
  border-radius: 16px;
  border: 3px solid var(--boost-border);
  background: var(--boost-card-bg);
  cursor: pointer;
  transition: all 0.2s ease;
  padding: 0;
}

.boost-bridge-platform-tab i {
  font-size: 24px;
  color: var(--_platform-color, var(--boost-text-2));
  transition: color 0.2s ease, filter 0.2s ease;
}

.boost-bridge-platform-name {
  font-size: 10px;
  font-weight: 600;
  color: var(--boost-text-3);
  line-height: 1;
  transition: color 0.2s ease;
}

.boost-bridge-platform-tab:hover {
  border-color: var(--_platform-color, rgba(var(--boost-accent-rgb), 0.4));
  transform: translateY(-2px);
}

.boost-bridge-platform-tab:hover .boost-bridge-platform-name {
  color: var(--_platform-color, var(--boost-text-1));
}

.boost-bridge-platform-tab.active {
  border-color: var(--_platform-color, var(--boost-accent));
  border-width: 3px;
  background: rgba(var(--boost-accent-rgb), 0.08);
  box-shadow: 0 0 16px rgba(var(--boost-accent-rgb), 0.2);
  transform: translateY(-2px);
}

.boost-bridge-platform-tab.active i {
  color: var(--_platform-color, var(--boost-accent));
  filter: brightness(1.2);
}

.boost-bridge-platform-tab.active .boost-bridge-platform-name {
  color: var(--_platform-color, var(--boost-accent));
}

/* Platform-specific tab colors */
.boost-bridge-platform-tab[data-platform="instagram"]  { --_platform-color: var(--platform-instagram); }
.boost-bridge-platform-tab[data-platform="tiktok"]     { --_platform-color: var(--platform-tiktok); }
.boost-bridge-platform-tab[data-platform="youtube"]    { --_platform-color: var(--platform-youtube); }
.boost-bridge-platform-tab[data-platform="facebook"]   { --_platform-color: var(--platform-facebook); }
.boost-bridge-platform-tab[data-platform="twitter"]    { --_platform-color: var(--platform-twitter); }
.boost-bridge-platform-tab[data-platform="spotify"]    { --_platform-color: var(--platform-spotify); }

/* "+more" platform tab */
.boost-bridge-platform-more {
  text-decoration: none;
  border-style: dashed;
  border-color: rgba(var(--boost-accent-rgb), 0.3);
  background: rgba(var(--boost-accent-rgb), 0.04);
}

.boost-bridge-platform-more:hover {
  border-color: var(--boost-accent);
  background: rgba(var(--boost-accent-rgb), 0.1);
}

.boost-bridge-more-count {
  font-size: 18px;
  font-weight: 800;
  color: var(--boost-accent);
  line-height: 1;
}

/* Service panels (hidden by default, .active shows) */
.boost-bridge-services {
  display: none;
  max-width: 500px;
  margin: 0 auto 2rem;
}

.boost-bridge-services.active {
  display: block;
}

/* Service rows */
.boost-bridge-service-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-radius: var(--boost-radius-xs);
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-border);
  margin-bottom: 8px;
  text-decoration: none;
  color: var(--boost-text-1);
  transition: all 0.2s ease;
}

.boost-bridge-service-row:hover {
  background: rgba(var(--boost-accent-rgb), 0.06);
  border-color: rgba(var(--boost-accent-rgb), 0.3);
  transform: translateX(4px);
}

.boost-bridge-service-icon {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: rgba(var(--boost-accent-rgb), 0.1);
  color: var(--boost-accent);
  font-size: 14px;
  flex-shrink: 0;
}

.boost-bridge-service-name {
  flex: 1;
  font-weight: 600;
  font-size: 0.95rem;
  text-align: left;
}

.boost-bridge-service-arrow {
  color: var(--boost-text-3);
  font-size: 12px;
  transition: transform 0.2s ease;
}

.boost-bridge-service-row:hover .boost-bridge-service-arrow {
  transform: translateX(4px);
  color: var(--boost-accent);
}

.boost-bridge-service-all {
  border-style: dashed;
  color: var(--boost-text-2);
}

.boost-bridge-service-all .boost-bridge-service-icon {
  background: rgba(var(--boost-accent-rgb), 0.05);
}

/* Platform-colored service icons + hover arrow — uses --_platform-color scoped var */
.boost-bridge-services { --_svc-color: var(--boost-accent); }
#bridge-panel-instagram { --_svc-color: var(--platform-instagram); }
#bridge-panel-tiktok    { --_svc-color: var(--platform-tiktok); }
#bridge-panel-youtube   { --_svc-color: var(--platform-youtube); }
#bridge-panel-facebook  { --_svc-color: var(--platform-facebook); }
#bridge-panel-twitter   { --_svc-color: var(--platform-twitter); }
#bridge-panel-spotify   { --_svc-color: var(--platform-spotify); }

.boost-bridge-services .boost-bridge-service-icon {
  color: var(--_svc-color);
  background: transparent;
  position: relative;
}

.boost-bridge-services .boost-bridge-service-icon::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: currentColor;
  opacity: 0.1;
}

.boost-bridge-services .boost-bridge-service-row:hover .boost-bridge-service-arrow {
  color: var(--_svc-color);
}

/* CTA button — extra top margin for separation */
.boost-bridge-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 32px;
  font-size: 1.05rem;
  margin: 0.5rem 0 2rem;
}

/* Trust badges */
.boost-bridge-trust {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px 24px;
  padding: 1.5rem;
  border-radius: var(--boost-radius-sm);
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-border);
}

.boost-bridge-trust-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--boost-text-2);
}

.boost-bridge-trust-item i {
  color: var(--boost-accent);
  font-size: 16px;
}

/* ====== Landing SEO: Section titles ====== */
/* Fuente única del hueco título→contenido en TODAS las secciones de la
   landing de Boost (Cómo Funciona, comparativa, etc. y .boost-packages-title
   arriba, que comparte este mismo valor) — antes 2rem, quedaba pegado.
   Prefijo .boost-body: mismo motivo que .boost-packages-title — sin él,
   el reset ".boost-body h1...h6 { margin-bottom: 0 }" (0,1,1) gana por
   especificidad sobre el selector de una sola clase (0,1,0). */
.boost-body .boost-landing-section-title {
  text-align: center;
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--boost-text-1);
  margin: 0 0 2.5rem;
}

/* ====== Landing SEO: How It Works stepper ====== */
.boost-landing-steps {
  max-width: 900px;
  margin: 3rem auto;
  padding: 0 1rem;
}
.boost-landing-steps-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}
.boost-landing-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.6rem;
  padding: 1.5rem 1rem;
  background: var(--boost-card-bg);
  border-radius: var(--boost-radius-lg, 16px);
  border: 1px solid var(--boost-border, rgba(255,255,255,0.08));
  position: relative;
}
.boost-landing-step-num {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
  color: var(--boost-bg);
  font-weight: 800;
  font-size: 0.8rem;
  border-radius: 50%;
}
.boost-landing-step > i {
  font-size: 1.6rem;
  color: var(--boost-accent);
  margin-top: 0.5rem;
}
.boost-landing-step strong {
  font-size: 0.95rem;
  color: var(--boost-text-1);
}
.boost-landing-step > span {
  font-size: 0.82rem;
  color: var(--boost-text-2);
  line-height: 1.4;
}

/* ====== Landing SEO: Comparison table ====== */
.boost-landing-compare {
  max-width: 700px;
  margin: 3rem auto;
  padding: 0 1rem;
}
.boost-landing-compare-table {
  display: grid;
  gap: 0;
  border-radius: var(--boost-radius-lg, 16px);
  overflow: hidden;
  border: 1px solid var(--boost-border, rgba(255,255,255,0.08));
}
.boost-landing-compare-header {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  background: var(--boost-card-bg);
  padding: 1rem;
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--boost-text-1);
  border-bottom: 2px solid var(--boost-border, rgba(255,255,255,0.08));
}
.boost-landing-compare-row {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  padding: 0.8rem 1rem;
  font-size: 0.85rem;
  border-bottom: 1px solid var(--boost-border, rgba(255,255,255,0.05));
  background: var(--boost-card-bg);
}
.boost-landing-compare-row:last-child {
  border-bottom: none;
}
.boost-landing-compare-label {
  color: var(--boost-text-1);
  font-weight: 500;
}
.boost-landing-compare-us {
  color: var(--boost-success, #10b981);
}
.boost-landing-compare-us i {
  margin-right: 6px;
}
.boost-landing-compare-them {
  color: var(--boost-text-2);
  opacity: 0.7;
}
.boost-landing-compare-them i {
  margin-right: 6px;
  color: var(--boost-danger, #ef4444);
}

/* Responsive */
@media (max-width: 768px) {
  .boost-landing-section-title {
    font-size: 1.3rem;
  }
  .boost-landing-steps-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.2rem;
  }
  .boost-landing-compare-header,
  .boost-landing-compare-row {
    grid-template-columns: 1.2fr 1fr 1fr;
    font-size: 0.8rem;
    padding: 0.7rem;
  }
}
@media (max-width: 480px) {
  .boost-landing-steps-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .boost-landing-step {
    padding: 1.2rem 1rem;
  }
  .boost-landing-compare-header,
  .boost-landing-compare-row {
    grid-template-columns: 1fr 0.8fr 0.8fr;
    font-size: 0.75rem;
    padding: 0.6rem 0.5rem;
  }
}

/* Responsive */
@media (max-width: 768px) {
  .boost-bridge-hero {
    padding: 0 1rem 2rem;
  }
  .boost-body .boost-bridge-title {
    font-size: 1.7rem;
    margin-bottom: 1rem;
  }
  .boost-body .boost-bridge-subtitle {
    margin-bottom: 1.5rem;
    font-size: 1rem;
  }
  .boost-bridge-hero .boost-social-proof {
    margin-bottom: 2rem;
    padding: 14px 16px;
    font-size: 13px;
    gap: 10px 20px;
  }
  .boost-bridge-platform-tab {
    width: 56px;
    height: 56px;
  }
  .boost-bridge-platform-tab i {
    font-size: 20px;
  }
  .boost-bridge-platform-name {
    font-size: 9px;
  }
  .boost-bridge-more-count {
    font-size: 16px;
  }
}

@media (max-width: 480px) {
  .boost-bridge-hero {
    padding: 0 0.75rem 1.5rem;
  }
  .boost-bridge-title {
    font-size: 1.4rem;
  }
  .boost-bridge-hero .boost-social-proof {
    flex-direction: column;
    gap: 8px;
    padding: 12px 16px;
    font-size: 13px;
  }
  .boost-bridge-hero .boost-social-proof-item {
    white-space: normal;
  }
  .boost-bridge-platforms {
    gap: 8px;
  }
  .boost-bridge-platform-tab {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    border-width: 2px;
  }
  .boost-bridge-platform-tab i {
    font-size: 18px;
  }
  .boost-bridge-platform-name {
    font-size: 8px;
  }
  .boost-bridge-more-count {
    font-size: 14px;
  }
  .boost-bridge-service-row {
    padding: 12px;
  }
  .boost-bridge-trust {
    gap: 12px 16px;
    padding: 1rem;
  }
  .boost-bridge-trust-item {
    font-size: 0.8rem;
  }
}

/* Social proof strip */
.boost-social-proof {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  padding: 10px 16px;
  margin-bottom: 16px;
  background: rgba(var(--boost-accent-rgb), 0.06);
  border-radius: 10px;
  font-size: 13px;
  color: var(--boost-text-2);
}

.boost-social-proof-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.boost-social-proof-item i {
  color: var(--boost-accent);
  font-size: 14px;
}

.boost-social-proof-item strong {
  font-weight: 700;
  color: var(--boost-text-1);
}

.boost-stars {
  color: var(--boost-warning-light);
  font-size: 14px;
  letter-spacing: 1px;
}

/* ============================================================================
   BUNDLES — Multi-service packs (niche pages)
   ============================================================================ */
.boost-bundles {
  margin: 40px -28px;
  padding: 32px 28px;
  line-height: 1.5;
  font-size: 14px;
  background: var(--boost-bg);
  border-radius: var(--boost-radius);
  border: var(--boost-border-w) solid var(--boost-form-border);
}

/* Prefijo .boost-body: mismo motivo que .boost-packages-title — sin él
   pierde frente al reset ".boost-body h1...h6 { margin-bottom: 0 }". */
.boost-body .boost-bundles-title {
  font-size: 22px;
  font-weight: 800;
  color: var(--boost-text-1);
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.boost-bundles-title i {
  color: var(--boost-accent);
  font-size: 24px;
}

.boost-bundles-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  align-items: stretch;
}

.boost-bundle-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 22px 20px;
  background: var(--boost-form-bg);
  border: var(--boost-border-w) solid var(--boost-form-border);
  border-radius: var(--boost-radius);
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
  box-shadow: var(--boost-glass-shadow);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.boost-bundle-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--boost-glass-shadow-hover);
  border-color: rgba(var(--boost-accent-rgb), 0.35);
}

.boost-bundle-card.featured {
  border-color: rgba(var(--boost-accent-rgb), 0.25);
  border-top: none;
  box-shadow: var(--boost-glass-shadow);
  overflow: hidden;
}

.boost-bundle-card.featured::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--boost-accent), var(--boost-accent-hover));
}

.boost-bundle-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  text-align: center;
}

.boost-bundle-name {
  font-size: 17px;
  font-weight: 700;
  color: var(--boost-text-1);
  line-height: 1.3;
}

.boost-bundle-badge {
  flex-shrink: 0;
  font-size: 10px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 6px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.boost-bundle-badge-popular {
  color: var(--boost-white);
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-hover));
}

.boost-bundle-badge-best_value {
  color: var(--boost-white);
  background: linear-gradient(135deg, var(--boost-success), var(--boost-success-bold));
}

.boost-bundle-desc {
  font-size: 13px;
  color: var(--boost-text-2);
  margin-bottom: 18px;
  line-height: 1.5;
  text-align: center;
}

.boost-bundle-items {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 20px;
  padding: 14px;
  background: var(--boost-bg);
  border-radius: var(--boost-radius-sm);
  flex: 1;
}

.boost-bundle-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  font-weight: 500;
  color: var(--boost-text-1);
}

.boost-bundle-item-icon {
  width: 20px;
  font-size: 16px;
  text-align: center;
  flex-shrink: 0;
}

.boost-bundle-item-qty {
  font-weight: 700;
  color: var(--boost-accent);
  min-width: 40px;
}

.boost-bundle-pricing {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 10px;
  margin-top: auto;
  margin-bottom: 16px;
  padding-top: 6px;
  flex-wrap: wrap;
}

.boost-bundle-price-original {
  font-size: 14px;
  color: var(--boost-text-3);
  text-decoration: line-through;
}

.boost-bundle-price-final {
  font-size: 26px;
  font-weight: 800;
  color: var(--boost-success);
}

.boost-bundle-discount-badge {
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 6px;
  color: var(--boost-white);
  background: var(--boost-success);
}

/* Extends .boost-btn .boost-btn-primary (added in HTML) */
.boost-bundle-cta {
  width: 100%;
  padding: 12px 20px;
  font-weight: 700;
}

/* ============================================================================
   PACKAGE CHECKOUT — Multi-link form
   ============================================================================ */
.boost-pkg-checkout {
  max-width: 640px;
  margin: 0 auto;
}

/* Prefijo .boost-body: mismo motivo que .boost-packages-title — sin él
   pierde frente al reset ".boost-body p { margin-bottom: 0 }". */
.boost-body .boost-pkg-checkout-desc {
  font-size: 13px;
  color: var(--boost-text-2);
  margin: 10px 0 16px;
}

.boost-pkg-checkout-items {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin: 4px 0 20px;
}

.boost-pkg-checkout-item-icon {
  width: 20px;
  font-size: 16px;
  text-align: center;
  flex-shrink: 0;
}

.boost-pkg-checkout-summary {
  padding: 16px;
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-border);
  border-radius: var(--boost-radius-sm);
  margin-bottom: 16px;
}

.boost-pkg-checkout-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 0;
  font-size: 14px;
  color: var(--boost-text-2);
}

.boost-pkg-checkout-row-total {
  font-size: 18px;
  font-weight: 700;
  color: var(--boost-text-1);
  border-top: 1px solid var(--boost-border);
  margin-top: 8px;
  padding-top: 12px;
}

.boost-pkg-checkout-row .boost-text-success {
  color: var(--boost-success);
  font-weight: 600;
}

.boost-pkg-checkout-submit {
  width: 100%;
  padding: 14px;
  font-size: 15px;
  font-weight: 700;
}

/* ============================================================================
   GUIDE PREMIUM EXTRAS — Steps and platform tips (niche guides)
   ============================================================================ */
.boost-guide-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin: 24px 0;
}

.boost-guide-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 20px 16px;
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-border);
  border-radius: var(--boost-radius-sm);
}

.boost-guide-step-number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  font-size: 16px;
  font-weight: 800;
  color: var(--boost-white);
  background: var(--boost-accent);
  border-radius: 50%;
  margin-bottom: 12px;
}

.boost-guide-step-icon {
  font-size: 24px;
  color: var(--boost-accent);
  margin-bottom: 8px;
}

.boost-guide-step-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--boost-text-1);
  margin-bottom: 4px;
}

.boost-guide-step-desc {
  font-size: 13px;
  color: var(--boost-text-2);
  line-height: 1.4;
}

.boost-guide-platform-tips {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin: 24px 0;
}

.boost-guide-tip-card {
  padding: 16px;
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-border);
  border-radius: var(--boost-radius-sm);
}

.boost-guide-tip-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  font-size: 15px;
  font-weight: 700;
  color: var(--boost-text-1);
}

.boost-guide-tip-header i {
  font-size: 18px;
}

.boost-guide-tip-card p,
.boost-guide-tip-card ul {
  font-size: 13px;
  color: var(--boost-text-2);
  line-height: 1.5;
}

.boost-guide-tip-card ul {
  padding-left: 16px;
  margin: 0;
}

.boost-guide-tip-card li {
  margin-bottom: 4px;
}

/* ============================================================================
   TIPS TICKER — Rotating banner in sidebar
   ============================================================================ */
.boost-tips-ticker {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 16px 0 0;
  padding: 12px 14px;
  background: linear-gradient(135deg, var(--boost-ticker-bg) 0%, var(--boost-ticker-bg-end) 100%);
  border-radius: var(--boost-radius-xs);
  overflow: hidden;
  cursor: default;
  box-shadow: 0 4px 16px rgba(var(--boost-ticker-bg-rgb), 0.25);
}

.boost-tips-ticker-icon {
  color: var(--boost-ticker-icon);
  font-size: 14px;
  flex-shrink: 0;
  width: 18px;
  text-align: center;
  transition: opacity 0.4s ease;
}

.boost-tips-ticker-icon.fade-out {
  opacity: 0;
}

.boost-tips-ticker-text {
  flex: 1;
  font-size: 11.5px;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
  color: var(--boost-ticker-text);
  transition: opacity 0.4s ease;
}

.boost-tips-ticker-text.fade-out {
  opacity: 0;
}

/* ============================================================================
   PROMOTIONAL CAROUSEL — Rail (desktop ≥1600px) + Strip (mobile)
   ============================================================================ */

/* ---- Rail: hidden by default, shown only on wide screens ---- */
.boost-promo-rail {
  display: none;
}

@media (min-width: 1800px) {
  .boost-promo-rail {
    display: block;
    position: fixed;
    top: calc(var(--boost-topbar-h) + 100px);
    right: calc((100vw - var(--boost-sidebar-w) - 1200px - 220px) / 2);
    width: 220px;
    max-height: calc(100vh - var(--boost-topbar-h) - 120px);
    z-index: 40;
    overflow: hidden;
  }

  .boost-promo-rail-header {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--boost-text-3);
    padding: 0 4px 12px;
    display: flex;
    align-items: center;
    gap: 6px;
  }

  .boost-promo-rail-header i {
    color: var(--boost-warning);
    font-size: 12px;
    animation: boostPulse 2s ease-in-out infinite;
  }

  @keyframes boostPulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
  }

  .boost-promo-rail-inner {
    display: flex;
    flex-direction: column;
    gap: 14px;
  }
}

/* ---- Promo card ---- */
.boost-promo-card {
  --_promo-platform-rgb: var(--boost-accent-rgb);
  display: block;
  position: relative;
  background:
    radial-gradient(ellipse at 0% 0%, rgba(var(--_promo-platform-rgb), 0.08), transparent 65%),
    var(--boost-white);
  border: 1px solid rgba(var(--_promo-platform-rgb), 0.18);
  border-radius: var(--boost-radius);
  padding: 14px 14px 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06), 0 6px 20px rgba(0, 0, 0, 0.04);
  cursor: pointer;
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              border-color 0.35s ease;
  animation: boostFadeUp 0.4s cubic-bezier(0.16, 1, 0.3, 1) both;
}

/* Shimmer sweep on hover */
.boost-promo-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    105deg,
    transparent 40%,
    var(--boost-shimmer) 50%,
    transparent 60%
  );
  opacity: 0;
  transform: translateX(-100%);
  transition: opacity 0.3s ease;
  pointer-events: none;
}

.boost-promo-card:hover {
  transform: translateY(-3px) scale(1.01);
  box-shadow:
    0 4px 16px rgba(var(--_promo-platform-rgb), 0.12),
    0 12px 32px rgba(0, 0, 0, 0.10);
  border-color: rgba(var(--_promo-platform-rgb), 0.35);
  color: inherit;
  text-decoration: none;
}

.boost-promo-card:hover::after {
  opacity: 1;
  transform: translateX(100%);
  transition: opacity 0.2s ease, transform 0.7s ease;
}

/* Platform-specific glow tints */
.boost-promo-card:has([data-platform="TikTok"])    { --_promo-platform-rgb: 255, 0, 80; }
.boost-promo-card:has([data-platform="Instagram"])  { --_promo-platform-rgb: 225, 48, 108; }
.boost-promo-card:has([data-platform="Facebook"])   { --_promo-platform-rgb: 24, 119, 242; }
.boost-promo-card:has([data-platform="YouTube"])    { --_promo-platform-rgb: 255, 0, 0; }

.boost-promo-card-platform {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 3px 9px;
  border-radius: 20px;
  margin-bottom: 8px;
  background: rgba(var(--_promo-platform-rgb), 0.10);
  color: var(--boost-text-2);
}

.boost-promo-card-platform i {
  font-size: 13px;
  color: rgb(var(--_promo-platform-rgb));
  filter: drop-shadow(0 0 4px rgba(var(--_promo-platform-rgb), 0.4));
}

.boost-promo-card-action {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--boost-text-1);
  margin-bottom: 6px;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.boost-promo-card-price {
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -0.02em;
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 6px;
}

.boost-promo-card-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 10px;
  color: var(--boost-text-3);
  padding-top: 8px;
  border-top: 1px solid rgba(var(--_promo-platform-rgb), 0.08);
}

.boost-promo-card-meta span {
  display: flex;
  align-items: center;
  gap: 4px;
}

.boost-promo-card-meta i {
  font-size: 10px;
  color: rgb(var(--_promo-platform-rgb));
}

.boost-promo-card-cta {
  display: block;
  text-align: center;
  margin-top: 10px;
  padding: 8px 0;
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
  color: var(--boost-white);
  border-radius: var(--boost-radius-sm);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.03em;
  box-shadow: 0 2px 8px rgba(var(--boost-accent-rgb), 0.25);
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.boost-promo-card:hover .boost-promo-card-cta {
  box-shadow: 0 4px 16px rgba(var(--boost-accent-rgb), 0.35);
  transform: scale(1.02);
}

/* Subtle single-card crossfade transitions */
.boost-promo-card {
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.boost-promo-card-exit {
  opacity: 0;
  transform: translateY(8px) scale(0.97);
}

.boost-promo-card-enter {
  opacity: 0;
  transform: translateY(-8px) scale(0.97);
}


/* ============================================================================
   RESPONSIVE
   ============================================================================ */
@media (max-width: 1024px) {
  .boost-hero-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .boost-action-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .boost-promo-countdown {
    flex-direction: column;
    text-align: center;
    gap: 10px;
    padding: 12px 16px;
  }

  .boost-promo-countdown-left {
    flex-direction: column;
    gap: 6px;
  }

  .boost-promo-countdown-timer {
    font-size: 18px;
  }

  .boost-trust-strip {
    gap: 10px;
    flex-wrap: wrap;
  }

  .boost-welcome-box {
    padding: 28px 20px 20px;
  }

  .boost-welcome-title {
    font-size: 19px;
  }

  .boost-welcome-trust {
    flex-wrap: wrap;
    gap: 10px;
  }

  .boost-farewell {
    gap: 12px;
    padding: 14px 16px;
  }

  .boost-farewell-icon {
    font-size: 24px;
  }

  .boost-farewell-text strong {
    font-size: 15px;
  }

  .boost-farewell-text span {
    font-size: 13px;
  }

  /* Packages grid */
  .boost-packages-grid {
    grid-template-columns: 1fr;
  }

  .boost-package-card.recommended {
    order: -1;
  }

  .boost-packages {
    padding: 16px;
  }

  .boost-social-proof {
    flex-direction: column;
    gap: 8px;
  }

  /* Bundles */
  .boost-bundles {
    margin: 32px -16px;
    padding: 24px 16px;
  }

  .boost-bundles-grid {
    grid-template-columns: 1fr;
    max-width: 400px;
    margin: 0 auto;
  }

  .boost-bundle-card.featured {
    order: -1;
  }

  /* Blog header card responsive */
  .boost-main .blog-header {
    padding: 20px 16px;
    margin-bottom: 20px;
  }

  /* Package checkout */
  .boost-pkg-checkout .boost-order-label-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }

  /* Guide premium extras */
  .boost-guide-steps {
    grid-template-columns: 1fr;
  }

  .boost-guide-platform-tips {
    grid-template-columns: 1fr;
  }

  /* Sidebar: hidden by default, slides from right */
  .boost-sidebar {
    left: auto;
    right: 0;
    border-right: none;
    border-left: none;
    box-shadow: -4px 0 40px rgba(0,0,0,0.12);
    transform: translateX(100%);
    animation: none;
    background: rgb(160, 175, 205);
    padding-top: env(safe-area-inset-top, 0px);
  }

  .boost-sidebar.open {
    transform: translateX(0);
  }

  .boost-main-area {
    margin-left: 0;
  }

  .boost-topbar-hamburger {
    display: flex;
    font-size: 22px;
    padding: 6px;
    order: 4;
  }

  .boost-sidebar-close {
    display: flex;
  }

  /* Flyout → accordion on mobile */
  .boost-nav-flyout {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    background: none;
    border: none;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    padding: 0 0 0 6px;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.25s ease;
    pointer-events: auto;
    min-width: auto;
    max-width: none;
    border-radius: 0;
  }
  .boost-nav-flyout::before { display: none; }
  .boost-nav-zone.boost-flyout-open .boost-nav-flyout { max-height: 500px; }
  .boost-flyout-header { display: none; }
  .boost-flyout-item i { width: 22px; height: 22px; font-size: 11px; border-radius: 6px; }
  .boost-flyout-item { padding: 7px 8px; font-size: 12.5px; }
  .boost-flyout-item-desc { display: none; }

  /* User popup: bottom sheet on mobile */
  .boost-user-menu {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    border-radius: 16px 16px 0 0;
    max-height: 70vh;
    overflow-y: auto;
    padding: 8px 8px 16px;
  }
  .boost-legal-menu {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    border-radius: 16px 16px 0 0;
    padding: 8px;
  }

  .boost-body {
    --boost-topbar-h: 46px;
  }
  .boost-topbar {
    padding: 0 10px;
    height: var(--boost-topbar-h);
    position: sticky;
    top: 0;
    z-index: 50;
    background: var(--boost-content-bg);
  }

  .boost-topbar-inner {
    gap: 8px;
  }

  .boost-topbar-right {
    order: 3;
    gap: 6px;
  }

  .boost-topbar-brand {
    font-size: 0.85rem;
  }

  .boost-main {
    padding: 4px 10px 10px;
  }

  /* Hide topbar login/register on mobile (sidebar has it) */
  .boost-topbar-right .boost-btn {
    display: none;
  }

  .boost-topbar-balance {
    padding: 3px 8px;
    font-size: 11px;
    gap: 4px;
  }

  .boost-topbar-balance i {
    font-size: 10px;
  }

  /* Compact lang selector on mobile: flag + caret only */
  .boost-lang-toggle > span:not(.boost-lang-flag) {
    display: none;
  }

  .boost-lang-toggle {
    padding: 5px 8px;
    gap: 4px;
  }

  .boost-lang-dropdown {
    right: 0;
    left: auto;
  }

  /* Grids */
  .boost-hero-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }

  .boost-container { padding: 10px; border-radius: var(--boost-radius); }

  .boost-hero-card {
    padding: 18px 16px;
    gap: 12px;
  }

  .boost-hero-icon {
    width: 40px;
    height: 40px;
    font-size: 16px;
  }

  .boost-hero-label { font-size: 11px; }
  .boost-hero-value { font-size: 20px; }

  .boost-action-grid { grid-template-columns: 1fr; }

  /* Payment method selector — horizontal, icon stacked above text */
  .boost-payment-method-btn {
    flex: 1;
    flex-direction: column;
    gap: 4px;
    padding: 10px 8px;
    font-size: 12px;
    justify-content: center;
    min-width: 0;
  }

  .boost-paypal-fee-notice {
    max-width: 100%;
  }

  /* Recharge */
  .boost-recharge-custom {
    max-width: 100%;
  }

  /* Table → card layout on mobile */
  .boost-table-wrap:has(.boost-table-cards) {
    background: transparent;
    border: none;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-radius: 0;
    padding: 0;
    margin: 0;
    overflow: visible;
    max-width: 100%;
  }

  .boost-table-cards {
    display: block;
    max-width: 100%;
  }

  .boost-table-cards thead {
    display: none;
  }

  .boost-table-cards tbody {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .boost-table-cards tbody tr {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    max-width: 100%;
    background: var(--boost-card-bg);
    border: var(--boost-border-w) solid var(--boost-card-border);
    border-radius: var(--boost-radius);
    padding: 0;
    box-shadow: var(--boost-glass-shadow);
    backdrop-filter: blur(20px) saturate(150%);
    -webkit-backdrop-filter: blur(20px) saturate(150%);
    overflow: hidden;
  }

  .boost-table-cards tbody tr:hover {
    background: var(--boost-card-bg);
  }

  .boost-table-cards td {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-width: 0;
    padding: 7px 14px;
    font-size: 13px;
    border: none;
    word-break: break-word;
  }

  .boost-table-cards td::before {
    content: attr(data-label);
    flex-shrink: 0;
    white-space: nowrap;
    font-size: 10px;
    font-weight: 700;
    color: var(--boost-text-3);
    text-transform: uppercase;
    letter-spacing: 0.3px;
  }

  .boost-table-cards td:empty {
    display: none;
  }

  /* Card header: ID + date row with accent background */
  .boost-table-cards .boost-td-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 10px 14px;
    background: rgba(var(--boost-accent-rgb), 0.06);
    border-bottom: 1px solid var(--boost-card-border);
  }

  .boost-table-cards .boost-td-card-header::before {
    display: none;
  }

  /* Half-width fields: pair them side by side */
  .boost-table-cards .boost-td-half {
    width: 50%;
    padding-top: 5px;
    padding-bottom: 5px;
  }

  .boost-table-cards .boost-td-half::before {
    font-size: 9px;
  }

  /* ID cell: small #N top-right, secondary */
  .boost-table-cards .boost-td-half[data-label="ID"] {
    width: auto;
    margin-left: auto;
    font-size: 11px;
    font-weight: 600;
    color: var(--boost-text-3);
    order: -1;
    padding: 8px 14px 0;
  }

  .boost-table-cards .boost-td-half[data-label="ID"]::before {
    content: '#';
    width: auto;
    font-size: 11px;
    font-weight: 600;
    color: var(--boost-text-3);
    text-transform: none;
    letter-spacing: 0;
  }

  /* Date: top-left, prominent */
  .boost-table-cards .boost-td-date {
    order: -2;
    width: auto;
    font-size: 12px;
    font-weight: 600;
    color: var(--boost-text-2);
    padding: 8px 0 0 14px;
  }

  .boost-table-cards .boost-td-date::before {
    font-size: 9px;
    color: var(--boost-text-3);
  }

  /* Service name: full-width, slightly larger */
  .boost-table-cards .boost-td-truncate,
  .boost-table-cards .boost-td-svc {
    max-width: none;
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    font-weight: 600;
    color: var(--boost-text-1);
    border-bottom: 1px solid rgba(var(--boost-accent-rgb), 0.06);
    padding-bottom: 8px;
  }

  /* Price value: green for money */
  .boost-table-cards .boost-td-price {
    color: var(--boost-success-bold);
    font-weight: 700;
  }

  /* Quantity value: accent */
  .boost-table-cards .boost-td-qty {
    color: var(--boost-accent-hover);
    font-weight: 600;
  }

  /* Status: highlight with subtle bg */
  .boost-table-cards td .boost-badge {
    font-size: 11.5px;
    padding: 4px 12px;
  }

  /* Actions row: centered, accent-tinted footer */
  .boost-table-cards .boost-td-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    width: 100%;
    padding: 10px 14px;
    margin: 0;
    background: rgba(var(--boost-accent-rgb), 0.03);
    border-top: 1px solid var(--boost-card-border);
    justify-content: center;
  }

  .boost-table-cards .boost-td-actions::before {
    display: none;
  }

  .boost-table-cards .boost-td-actions .boost-btn {
    justify-content: center;
  }

  /* Non-card tables keep compact style */
  .boost-table:not(.boost-table-cards) {
    font-size: 12px;
  }

  .boost-table:not(.boost-table-cards) .boost-td-truncate {
    max-width: 120px;
  }

  .boost-table:not(.boost-table-cards) .boost-td-svc .boost-svc-extra {
    display: none;
  }

  .boost-status-filters {
    flex-wrap: wrap;
    justify-content: center;
  }

  .boost-status-filter {
    font-size: 12px;
    padding: 4px 10px;
  }

  /* Admin stats */
  .boost-stats-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  /* FAQ */
  .boost-faq-section {
    max-width: 100%;
  }
  .boost-faq-question {
    font-size: 13px;
    padding: 12px 14px;
  }
  .boost-faq-question .boost-faq-toggle {
    width: 24px;
    height: 24px;
    font-size: 12px;
  }

  /* Platform tabs */
  .boost-platform-tabs {
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .boost-platform-tabs::-webkit-scrollbar {
    display: none;
  }

  .boost-platform-tab {
    flex-shrink: 0;
  }

  .boost-table-search {
    flex-direction: column;
  }

  .boost-table-search-wrap {
    width: 100%;
  }

  .boost-table-meta {
    width: 100%;
    text-align: center;
  }

  .boost-table th {
    padding: 8px 12px;
    font-size: 10px;
  }

  .boost-table td {
    padding: 10px 12px;
    font-size: 12px;
  }

  /* Order layout */
  .boost-order-layout {
    max-width: 100%;
  }

  .boost-support-card {
    padding: 20px 16px;
  }

  .boost-support-trust {
    gap: 10px 16px;
  }

  .boost-platform-grid {
    grid-template-columns: repeat(4, 1fr);
  }

  .boost-platform-btn {
    min-width: 0;
    padding: 8px 10px;
  }

  .boost-svc-desc-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }

  .boost-order-row {
    flex-direction: column;
  }

  .boost-order-fields {
    padding: 16px;
  }

  .boost-page-header h1 {
    font-size: 18px;
  }

  .boost-admin-links {
    width: 100%;
    flex-wrap: wrap;
  }

  .boost-admin-nav {
    gap: 4px;
  }

  .boost-admin-nav-item {
    padding: 6px 10px;
    font-size: 12px;
  }

  .boost-pagination {
    flex-wrap: wrap;
  }

  .boost-table-search {
    gap: 8px;
  }

  .boost-table-search-wrap {
    min-width: 0;
  }

  /* Wizard */

  .boost-wizard-form {
    padding: 16px;
  }

  .boost-wizard-step-title {
    font-size: 17px;
  }

  .boost-wizard-step-subtitle {
    font-size: 13px;
    margin-top: 2px;
  }

  .boost-wizard-step-header-inline {
    gap: 8px;
  }

  .boost-wizard-platform-context {
    padding: 6px 16px;
  }
  .boost-wizard-platform-context i {
    font-size: 18px;
  }
  .boost-wizard-platform-context span {
    font-size: 14px;
  }

  .boost-wizard-breadcrumb {
    margin-bottom: 2px;
  }

  .boost-wizard-step-header {
    margin-bottom: 16px;
  }

  .boost-page-header {
    margin-bottom: 12px;
  }

  .boost-page-header-inline h1 {
    font-size: 16px;
    gap: 6px;
  }

  .boost-page-header-inline p {
    font-size: 11px;
  }

  .boost-wizard-svc-info { gap: 6px; }

  /* Prevent iOS auto-zoom on input focus (requires font-size >= 16px) */
  .boost-input,
  .boost-input-icon input,
  .boost-textarea,
  .boost-dropdown-trigger,
  .boost-body select {
    font-size: 16px;
  }
}

@media (max-width: 480px) {
  /* Hero stat cards (dashboard): volver a 2 columnas (antes forzaba 1, ocupando
     toda la pantalla en vertical) pero con el icono ARRIBA y el texto centrado
     DEBAJO en vez de en fila — así el texto tiene el ancho completo de la
     tarjeta en vez de compartirlo con un icono de 40px al lado, que es lo que
     obligaba antes a partir "disponible"/"completados" a mitad de palabra. */
  .boost-hero-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }

  .boost-hero-card {
    flex-direction: column;
    text-align: center;
    padding: 14px 10px;
    gap: 8px;
  }

  .boost-hero-icon {
    width: 32px;
    height: 32px;
    font-size: 14px;
  }

  .boost-hero-label { font-size: 10px; }
  .boost-hero-value { font-size: 17px; }

  /* Country picker: fullscreen overlay on mobile (avoids keyboard overlap) */
  .boost-custom-select.open .boost-custom-select-menu {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    border-radius: 0;
    background: var(--boost-content-bg);
    display: flex;
    flex-direction: column;
  }

  .boost-custom-select.open .boost-custom-select-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    flex-shrink: 0;
    border-bottom: var(--boost-border-w) solid var(--boost-form-border);
  }

  .boost-custom-select.open .boost-custom-select-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    border: none;
    background: none;
    color: var(--boost-text-2);
    font-size: 16px;
    cursor: pointer;
    border-radius: var(--boost-radius-sm);
  }

  .boost-custom-select.open .boost-custom-select-close:active {
    background: var(--boost-bg-muted);
  }

  .boost-custom-select.open .boost-custom-select-search {
    flex: 1;
    padding: 10px 12px;
    font-size: 16px;
    border-bottom: none;
  }

  .boost-custom-select.open .boost-custom-select-list {
    max-height: none;
    flex: 1;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .boost-custom-select.open .boost-custom-select-list li {
    padding: 12px 16px;
    font-size: 16px;
  }

  .boost-alert-actions { margin-left: 0; width: 100%; justify-content: flex-end; }

  .boost-draft-pill { bottom: 14px; padding: 8px 12px; gap: 8px; }
  .boost-draft-pill-summary { max-width: 120px; font-size: 12px; }
  .boost-draft-pill-continue { padding: 5px 10px; font-size: 11px; }

  .boost-bg-blob { opacity: 0.35; }

  .boost-promo-countdown-badge {
    font-size: 18px;
  }

  .boost-promo-countdown-text strong {
    font-size: 13px;
  }

  .boost-promo-countdown-cta {
    width: 100%;
    justify-content: center;
  }

  .boost-trust-strip {
    font-size: 10px;
    gap: 8px;
  }

  .boost-welcome-overlay {
    padding: 12px;
  }

  .boost-welcome-box {
    border-radius: 14px;
  }

  .boost-welcome-services {
    gap: 6px;
  }

  .boost-welcome-tag {
    font-size: 11px;
    padding: 5px 10px;
  }

  .boost-toast-container {
    top: 10px;
    right: 10px;
    left: 10px;
  }

  .boost-packages-title {
    font-size: 17px;
  }

  .boost-package-qty {
    font-size: 18px;
  }

  .boost-social-proof {
    font-size: 12px;
  }

  .boost-toast { max-width: 100%; }

  .boost-modal-box { padding: 24px 18px 18px; max-width: calc(100vw - 32px); }

  .boost-specs-box { max-width: 100%; }
  .boost-specs-label,
  .boost-specs-value { font-size: 13px; }
  .boost-specs-row { padding: 8px 12px; gap: 10px; }
  .boost-specs-desc { padding: 10px 12px; }
  .boost-specs-desc-text { font-size: 12px; }

  .boost-auth-card {
    padding: 32px 22px;
    border-radius: 16px;
  }

  .boost-body-auth .boost-main::before {
    width: 280px;
    height: 280px;
    top: -80px;
    right: -60px;
  }
  .boost-body-auth .boost-main::after {
    width: 220px;
    height: 220px;
    bottom: -60px;
    left: -40px;
  }

  .boost-table:not(.boost-table-cards) th,
  .boost-table:not(.boost-table-cards) td {
    padding: 8px 10px;
  }

  .boost-table:not(.boost-table-cards) .boost-td-truncate {
    max-width: 90px;
  }

  .boost-svc-icon {
    font-size: 14px;
  }

  .boost-svc-type {
    font-size: 12px;
  }

  .boost-table:not(.boost-table-cards) .boost-td-actions {
    flex-direction: column;
    gap: 4px;
  }

  .boost-table-cards td {
    padding: 6px 12px;
    font-size: 12px;
    max-width: none;
  }

  .boost-table-cards td::before {
    font-size: 9px;
  }

  .boost-table-cards .boost-td-actions {
    padding: 8px 12px;
    gap: 6px;
    flex-wrap: wrap;
  }

  .boost-table-cards .boost-td-actions .boost-btn {
    font-size: 11px;
    padding: 5px 8px;
  }

  .boost-hero-value {
    font-size: 18px;
  }

  .boost-stats-grid {
    grid-template-columns: 1fr;
  }

  .boost-filter-bar .boost-input {
    min-width: 0;
    flex: 1 1 100%;
  }

  .boost-platform-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .boost-svc-desc-grid {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .boost-recharge-btn {
    flex: 1;
    min-width: 60px;
    text-align: center;
    padding: 10px 16px;
    font-size: 14px;
  }

  /* Wizard */
  .boost-wizard-search-wrap {
    max-width: 100%;
  }

  .boost-wizard-search-list {
    max-height: 340px;
  }

  .boost-wizard-search-item {
    padding: 14px 12px;
    gap: 12px;
  }

  .boost-wizard-search-item-icon {
    font-size: 22px;
    width: 36px;
  }

  .boost-wizard-search-item-name {
    font-size: 14px;
  }

  .boost-wizard-search-item-tags .boost-wizard-tag {
    font-size: 10px;
  }

  .boost-wizard-grid {
    gap: 8px;
  }

  .boost-wizard-grid-3 {
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
  }

  .boost-wizard-grid-3 .boost-wizard-card-row {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 6px;
  }

  .boost-wizard-grid-3 .boost-wizard-card {
    padding: 10px 6px;
    align-items: center;
    justify-content: center;
  }

  .boost-wizard-grid-3 .boost-wizard-card-row .boost-wizard-card-icon {
    font-size: clamp(22px, 6vw, 30px);
  }

  .boost-wizard-grid-3 .boost-wizard-card-row .boost-wizard-card-label {
    font-size: clamp(11px, 3.2vw, 14px);
    white-space: nowrap;
  }

  .boost-wizard-grid-subtypes {
    grid-template-columns: 1fr;
  }

  .boost-wizard-card {
    padding: 12px 36px 12px 12px;
  }

  .boost-svc-info-btn-abs {
    top: 8px;
    right: 8px;
  }

  .boost-wizard-card-row .boost-wizard-card-icon {
    font-size: clamp(26px, 7vw, 34px);
  }

  .boost-wizard-card-row .boost-wizard-card-label {
    font-size: clamp(15px, 4.5vw, 20px);
  }

  .boost-wizard-grid-platforms .boost-wizard-card {
    padding: 16px 12px;
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  .boost-wizard-grid-platforms .boost-wizard-card-row {
    flex-direction: column;
    align-items: center;
    gap: 10px;
    width: 100%;
  }

  .boost-wizard-grid-platforms .boost-wizard-card-row .boost-wizard-card-icon {
    font-size: 38px;
  }

  .boost-wizard-grid-platforms .boost-wizard-card-row .boost-wizard-card-label {
    font-size: clamp(14px, 4vw, 17px);
    text-align: center;
    width: 100%;
  }

  .boost-wizard-grid-countries .boost-wizard-card {
    align-items: center;
    text-align: center;
  }

  .boost-wizard-grid-countries .boost-wizard-card-row {
    justify-content: center;
  }

  .boost-wizard-grid-countries .boost-wizard-card > .boost-wizard-card-time {
    justify-content: center;
  }

  .boost-wizard-card-hint {
    font-size: 12px;
  }

  .boost-wizard-success-actions {
    flex-direction: column;
  }

  .boost-wizard-cta-creators {
    flex-direction: column;
    text-align: center;
    padding: 14px 16px;
  }
  .boost-wizard-cta-creators > i:last-child { display: none; }

  .boost-wizard-breadcrumb {
    gap: 6px;
  }

  .boost-wizard-crumb {
    font-size: 11px;
    padding: 3px 8px;
  }

  .boost-wizard-crumb-dim {
    display: none;
  }

  .boost-wizard-recharge .boost-recharge-grid {
    flex-direction: column;
    align-items: stretch;
  }

  .boost-wizard-auth-title {
    font-size: 16px;
  }

  .boost-wizard-restored-banner {
    font-size: 13px;
  }

  .boost-express-input-row {
    flex-direction: column;
  }

  /* Bundles */
  .boost-bundles {
    margin: 24px -12px;
    padding: 20px 12px;
  }

  .boost-bundles-title {
    font-size: 18px;
  }

  .boost-bundles-grid {
    max-width: 100%;
  }

  .boost-bundle-card {
    padding: 16px 14px;
  }

  .boost-bundle-name {
    font-size: 15px;
  }

  .boost-bundle-desc {
    font-size: 12px;
  }

  .boost-bundle-item {
    font-size: 12px;
  }

  .boost-bundle-items {
    padding: 10px;
  }

  .boost-bundle-price-final {
    font-size: 22px;
  }

  .boost-bundle-cta {
    padding: 10px 16px;
    font-size: 13px;
  }

}

/* ---------- 360px ---------- */
@media (max-width: 360px) {
  .boost-wizard-grid-3 {
    grid-template-columns: repeat(3, 1fr);
  }

  .boost-bundle-card {
    padding: 14px 12px;
  }

  .boost-bundle-items {
    padding: 8px;
    gap: 8px;
  }
}

/* ============================================================================
   CREATOR DIRECTORY
   ============================================================================ */

/* ---- Hero + Search ---- */
.boost-directory-hero {
  text-align: center;
  padding: 28px 20px 20px;
  margin-bottom: 8px;
  background: linear-gradient(180deg, rgba(var(--boost-accent-rgb), 0.06) 0%, transparent 100%);
  border-bottom: 1px solid rgba(var(--boost-accent-rgb), 0.08);
}
.boost-directory-hero-title {
  font-size: 2rem;
  font-weight: 800;
  background: linear-gradient(135deg, var(--boost-text-1) 40%, var(--boost-accent));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 8px;
}
.boost-badge-beta {
  display: inline-block;
  font-size: 0.45em;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 20px;
  background: rgba(var(--boost-accent-rgb), 0.15);
  color: var(--boost-accent);
  -webkit-text-fill-color: var(--boost-accent);
  vertical-align: middle;
  position: relative;
  top: -0.15em;
}
.boost-directory-hero-sub {
  color: var(--boost-text-3);
  font-size: 0.95rem;
  max-width: 520px;
  margin: 0 auto;
  line-height: 1.5;
}
.boost-directory-hero-stats {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 10px;
  font-size: 0.85rem;
  color: var(--boost-text-3);
}
.boost-directory-hero-stat {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.boost-directory-online-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--boost-success);
  animation: boost-pulse-dot 2s ease-in-out infinite;
}
@keyframes boost-pulse-dot {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}
/* Search toggle button (circular) */
.boost-directory-search-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid var(--boost-form-border);
  background: var(--boost-card-bg);
  color: var(--boost-text-2);
  cursor: pointer;
  transition: all 0.2s;
  flex-shrink: 0;
  font-size: 0.9rem;
}
.boost-directory-search-toggle:hover {
  border-color: var(--boost-accent);
  color: var(--boost-accent);
}
.boost-directory-search-toggle.active {
  background: var(--boost-accent);
  color: var(--boost-white);
  border-color: var(--boost-accent);
}
/* Search wrap — collapsible */
.boost-directory-search-wrap {
  min-width: 0;
  overflow: hidden;
  max-width: 0;
  opacity: 0;
  transition: max-width 0.3s ease, opacity 0.2s ease;
}
.boost-directory-search-wrap.expanded {
  max-width: 360px;
  opacity: 1;
  flex: 1;
  overflow: visible;
}
.boost-directory-search-wrap input {
  padding-right: 40px;
}
/* Cancel button — hidden by default, shown on mobile when search is expanded */
.boost-directory-search-cancel {
  display: none;
  background: none;
  border: none;
  color: var(--boost-accent);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  padding: 8px 4px;
  white-space: nowrap;
  flex-shrink: 0;
}

/* ---- Filter chips ---- */
.boost-directory-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  padding: 0 20px 12px;
  margin-bottom: 8px;
}
.boost-directory-filters + .boost-directory-grid {
  margin-top: 12px;
}
/* Filters toggle button + results count row */
.boost-directory-filter-toggle-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 6px 20px;
  margin-bottom: 14px;
  position: sticky;
  top: var(--boost-topbar-h);
  z-index: 200;
  background: var(--boost-content-bg);
}
.boost-directory-filter-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: 20px;
  border: 1px solid var(--boost-form-border);
  background: var(--boost-card-bg);
  color: var(--boost-text-2);
  font-size: 0.85rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
}
.boost-directory-filter-toggle:hover {
  border-color: var(--boost-accent);
  color: var(--boost-accent);
}
.boost-filter-reset {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid var(--boost-form-border);
  background: var(--boost-card-bg);
  color: var(--boost-text-2);
  font-size: 0.85rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}
.boost-filter-reset:hover:not(:disabled) {
  border-color: var(--boost-accent);
  color: var(--boost-accent);
  background: rgba(var(--boost-accent-rgb), 0.08);
}
.boost-filter-reset:disabled {
  opacity: 0.3;
  cursor: default;
}
.boost-directory-filter-toggle.active {
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
  color: var(--boost-white);
  border-color: transparent;
}
.boost-directory-filter-toggle-caret {
  font-size: 0.65rem;
  transition: transform 0.2s;
}
.boost-directory-filter-toggle.active .boost-directory-filter-toggle-caret {
  transform: rotate(180deg);
}
.boost-directory-results-count {
  font-size: 0.8rem;
  color: var(--boost-text-3);
  white-space: nowrap;
}

/* Filter panel — overlay dropdown */
.boost-directory-filter-panel {
  position: absolute;
  top: 100%;
  left: 20px;
  z-index: 200;
  background: var(--boost-content-bg);
  border: 1px solid var(--boost-form-border);
  border-radius: 16px;
  padding: 14px 18px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.15);
  min-width: min(480px, calc(100vw - 40px));
  max-width: calc(100vw - 40px);
}
/* Filter header (title + close) — visible only on mobile via panel override */
.boost-filter-header {
  display: none;
}
/* Active value summary — visible only when row is collapsed on mobile */
.boost-filter-active-value {
  display: none;
}
/* Apply button — visible only on mobile */
.boost-filter-apply {
  display: none;
}
.boost-directory-filter-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 6px 0;
}
.boost-directory-filter-row:not(:last-child) {
  border-bottom: 1px solid rgba(var(--boost-accent-rgb), 0.06);
}
.boost-directory-filter-label {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--boost-text-1);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  min-width: 72px;
  flex-shrink: 0;
}
.boost-filter-chevron {
  display: none;
}
.boost-directory-filter-panel .boost-directory-filters {
  padding: 0;
  margin-bottom: 0;
  justify-content: flex-start;
}
.boost-directory-filter-panel .boost-directory-filter-chip {
  padding: 5px 12px;
  font-size: 0.8rem;
}
.boost-directory-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: 20px;
  border: 1px solid var(--boost-card-border);
  background: var(--boost-card-bg);
  color: var(--boost-text-1);
  font-size: 0.85rem;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  transition: all 0.2s;
}
.boost-directory-filter-chip:hover {
  border-color: var(--boost-accent);
  color: var(--boost-accent);
}
.boost-directory-filter-chip.active {
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
  color: var(--boost-white);
  border-color: transparent;
}
.boost-directory-chip-count {
  font-size: 0.72rem;
  opacity: 0.55;
  font-weight: 400;
}

/* Filter "More" dropdown — reusable for category, country, etc. */
.boost-directory-filter-more {
  position: relative;
}
.boost-directory-filter-more .fa-chevron-down {
  font-size: 0.6rem;
  transition: transform 0.2s;
}
.boost-directory-filter-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  z-index: 210;
  background: var(--boost-content-bg);
  border: 1px solid var(--boost-form-border);
  border-radius: var(--boost-radius);
  box-shadow: 0 6px 20px rgba(0,0,0,0.12);
  max-height: 200px;
  overflow-y: auto;
  min-width: min(180px, calc(100vw - 40px));
  padding: 4px 0;
}
.boost-directory-filter-dropdown-option {
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  padding: 8px 14px;
  border: none;
  background: none;
  color: var(--boost-text-1);
  font-size: 0.84rem;
  cursor: pointer;
  text-align: left;
  transition: background 0.15s;
}
.boost-directory-filter-dropdown-option:hover {
  background: var(--boost-bg-subtle);
}
.boost-directory-filter-dropdown-option.active {
  color: var(--boost-accent);
  font-weight: 600;
}

/* ---- Grid ---- */
.boost-directory-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 14px;
  padding: 0 16px;
}

/* ---- Map toggle (icon button) ---- */
.boost-directory-map-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--boost-radius-sm);
  border: 1px solid var(--boost-card-border);
  background: var(--boost-card-bg);
  color: var(--boost-text-secondary);
  cursor: pointer;
  font-size: 15px;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
  flex-shrink: 0;
}
.boost-directory-map-toggle:hover {
  background: var(--boost-hover-bg);
  color: var(--boost-text);
}
.boost-directory-map-toggle.active {
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end, var(--boost-accent)));
  color: var(--boost-white);
  border-color: var(--boost-accent);
}

/* ---- Map wrapper + container ---- */
.boost-directory-map-wrap {
  position: relative;
  height: 70vh;
  min-height: 400px;
  border-radius: var(--boost-radius-sm);
  overflow: hidden;
  margin: 0 16px;
  width: calc(100% - 32px);
}
.boost-directory-map {
  width: 100%;
  height: 100%;
}

/* ---- Map loading bar ---- */
.boost-map-loading {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  z-index: 1000;
  overflow: hidden;
}
.boost-map-loading-bar {
  width: 40%;
  height: 100%;
  background: linear-gradient(90deg, var(--boost-accent), var(--boost-accent-end, var(--boost-accent)));
  border-radius: 2px;
  animation: boost-map-loading-slide 1.2s ease-in-out infinite;
}
@keyframes boost-map-loading-slide {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(350%); }
}

/* ---- Map count badge ---- */
.boost-map-count-badge {
  position: absolute;
  bottom: 12px;
  left: 12px;
  z-index: 1000;
  padding: 5px 12px;
  border-radius: 20px;
  background: rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: var(--boost-white);
  font-size: 12px;
  font-weight: 500;
  pointer-events: none;
}

/* ---- Map attribution ---- */
.boost-directory-map-wrap .leaflet-control-attribution {
  font-size: 10px;
}

/* ---- Map custom controls ---- */
.boost-map-control {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--boost-radius-xs);
  border: none;
  background: rgba(0, 0, 0, 0.65);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: var(--boost-white);
  font-size: 16px;
  cursor: pointer;
  transition: background 0.2s;
  margin-bottom: 6px;
}
.boost-map-control:hover {
  background: rgba(0, 0, 0, 0.85);
}
.boost-map-control:disabled {
  opacity: 0.5;
  cursor: default;
}
.boost-directory-map-wrap:fullscreen,
.boost-directory-map-wrap:-webkit-full-screen {
  border-radius: 0;
}
.boost-directory-map-wrap:fullscreen .boost-directory-map,
.boost-directory-map-wrap:-webkit-full-screen .boost-directory-map {
  height: 100vh;
}

/* ---- Map tooltip (desktop hover) ---- */
.leaflet-tooltip.boost-map-tooltip-wrap {
  background: rgba(0, 0, 0, 0.85);
  border: none;
  border-radius: var(--boost-radius-xs);
  padding: 0;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
.leaflet-tooltip.boost-map-tooltip-wrap::before {
  border-top-color: rgba(0, 0, 0, 0.85);
}
.boost-map-tooltip {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
}
.boost-map-tooltip-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
.boost-map-tooltip-text {
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.boost-map-tooltip-text strong {
  font-size: 12px;
  color: var(--boost-white);
  white-space: nowrap;
}
.boost-map-tooltip-text span {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.6);
  white-space: nowrap;
}

/* ---- Leaflet native controls dark theme ---- */
.boost-directory-map-wrap .leaflet-control-zoom a {
  background: rgba(0, 0, 0, 0.65);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: var(--boost-white);
  border-color: rgba(255, 255, 255, 0.1);
  width: 36px;
  height: 36px;
  line-height: 36px;
  font-size: 16px;
}
.boost-directory-map-wrap .leaflet-control-zoom a:hover {
  background: rgba(0, 0, 0, 0.85);
}
.boost-directory-map-wrap .leaflet-control-zoom {
  border: none;
  border-radius: var(--boost-radius-xs);
  overflow: hidden;
}

/* ---- Leaflet popup dark theme ---- */
.boost-directory-map-wrap .leaflet-popup-content-wrapper {
  background: var(--boost-content-bg);
  color: var(--boost-text);
  border-radius: var(--boost-radius-sm);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}
.boost-directory-map-wrap .leaflet-popup-tip {
  background: var(--boost-content-bg);
}
.boost-directory-map-wrap .leaflet-popup-content {
  margin: 10px;
}
.boost-directory-map-wrap .leaflet-popup-close-button {
  color: var(--boost-text-secondary);
}
.boost-directory-map-wrap .leaflet-popup-close-button:hover {
  color: var(--boost-text);
}

/* ---- Map markers ---- */
.leaflet-marker-icon.boost-map-marker-wrap,
.leaflet-marker-icon.boost-map-cluster-wrap {
  background: none;
  border: none;
}
.boost-map-marker {
  width: 48px;
  height: 58px;
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,0.3));
  transform: scale(var(--map-marker-scale, 1));
  transform-origin: center bottom;
  transition: transform 0.2s ease;
}
/* Bubble background */
.boost-map-marker::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 48px;
  background: var(--boost-accent);
  border-radius: 50%;
}
/* Arrow/pointer */
.boost-map-marker::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 12px solid var(--boost-accent);
}
.boost-map-marker-online::before {
  background: var(--success-bright);
}
.boost-map-marker-online::after {
  border-top-color: var(--success-bright);
}
/* Avatar photo inside bubble */
.boost-map-marker-avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  object-fit: cover;
  background: var(--boost-content-bg);
  position: relative;
  z-index: 1;
  margin-top: 3px;
}
/* Initials fallback when no avatar */
.boost-map-marker-initials {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 3px solid var(--boost-white, #fff);
  background: var(--boost-white, #fff);
  position: relative;
  z-index: 1;
  margin-top: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  color: var(--boost-accent);
}

/* ── Gradual marker scale by zoom ── */
.boost-map-z-far  { --map-marker-scale: 0.6; }
.boost-map-z-mid  { --map-marker-scale: 0.8; }
.boost-map-z-close { --map-marker-scale: 1.25; }
.boost-map-z-max  { --map-marker-scale: 1.5; }

/* ---- Map clusters ---- */
.boost-map-cluster {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: var(--boost-white);
  font-weight: 700;
  font-size: 13px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.25);
  width: 44px;
  height: 44px;
  transition: transform 0.2s;
}
.boost-map-cluster-small {
  background: rgba(var(--boost-accent-rgb, 236,72,153), 0.65);
  border: 3px solid rgba(var(--boost-accent-rgb, 236,72,153), 0.5);
}
.boost-map-cluster-medium {
  width: 52px;
  height: 52px;
  font-size: 14px;
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end, var(--boost-accent)));
  border: 3px solid var(--boost-accent);
}
.boost-map-cluster-large {
  width: 60px;
  height: 60px;
  font-size: 15px;
  background: linear-gradient(135deg, var(--boost-accent-hover, var(--boost-accent)), var(--boost-accent));
  border: 3px solid var(--boost-accent);
  box-shadow: 0 0 16px rgba(var(--boost-accent-rgb, 236,72,153), 0.45), 0 2px 8px rgba(0,0,0,0.25);
}

/* Avatar inside cluster */
.boost-map-cluster-avatar {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}

/* Count badge overlay (top-right) */
.boost-map-cluster-badge {
  position: absolute;
  top: -6px;
  right: -6px;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  border-radius: 10px;
  background: var(--boost-accent);
  color: var(--boost-white);
  font-size: 11px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 4px rgba(0,0,0,0.3);
  line-height: 1;
}
.boost-map-cluster-medium .boost-map-cluster-badge {
  min-width: 22px;
  height: 22px;
  font-size: 12px;
  top: -7px;
  right: -7px;
}
.boost-map-cluster-large .boost-map-cluster-badge {
  min-width: 24px;
  height: 24px;
  font-size: 13px;
  top: -8px;
  right: -8px;
}

/* Fallback: no avatar, just count centered */
.boost-map-cluster-count-only {
  font-size: inherit;
  font-weight: 700;
}
.boost-map-cluster:has(.boost-map-cluster-count-only) .boost-map-cluster-badge {
  display: none;
}

/* ---- Map popup ---- */
.boost-map-popup {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 4px 0;
  min-width: 180px;
  max-width: 220px;
}
.boost-map-popup-thumb {
  width: 100%;
  height: 80px;
  object-fit: cover;
  border-radius: 6px;
}
.boost-map-popup-body {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
.boost-map-popup-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
.boost-map-popup-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.boost-map-popup-info strong {
  font-size: 12px;
  color: var(--boost-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.boost-map-popup-info span {
  font-size: 11px;
  color: var(--boost-text-secondary);
}
.boost-map-popup-online {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--success-bright);
  font-size: 10px;
  font-weight: 600;
}
.boost-map-popup-online::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--success-bright);
  flex-shrink: 0;
}
.boost-map-popup-city i {
  color: var(--boost-accent);
  font-size: 10px;
}
.boost-map-popup-cat {
  display: inline-block;
  padding: 1px 8px;
  border-radius: 10px;
  background: rgba(var(--boost-accent-rgb, 236,72,153), 0.15);
  color: var(--boost-accent);
  font-size: 10px;
  font-weight: 600;
  margin-top: 2px;
  white-space: nowrap;
}
.boost-map-popup-btn {
  width: 100%;
  text-align: center;
}

/* ---- Required asterisk ---- */
.boost-required {
  color: var(--boost-accent);
  font-weight: 700;
}

/* ---- City dropdown loading state ---- */
.boost-custom-select-loading {
  text-align: center;
  padding: 16px;
  color: var(--boost-text-secondary);
}

/* ---- Creator card ---- */
.boost-creator-card {
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-card-border);
  border-radius: 12px;
  overflow: hidden;
  transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}
.boost-creator-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.08);
  border-color: rgba(var(--boost-accent-rgb), 0.3);
}
.boost-creator-card-link {
  display: block;
  text-decoration: none;
  color: inherit;
}
.boost-creator-card-img-wrap {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--boost-form-bg);
}
.boost-creator-card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s;
}
/* Avatar overlay on card (OnlyFans style) */
.boost-creator-card-avatar {
  position: absolute;
  bottom: 10px;
  left: 10px;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: 3px solid var(--boost-card-bg);
  background: var(--boost-form-bg);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  transform-origin: bottom left;
  cursor: pointer;
}
.boost-creator-card-avatar:hover {
  transform: scale(2.3);
  box-shadow: 0 4px 16px rgba(0,0,0,0.25);
  z-index: 5;
}
.boost-creator-card-avatar.videocall:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,0.25), 0 0 12px var(--boost-success);
}
.boost-creator-card-avatar.online {
  border-color: var(--boost-success);
}
.boost-creator-card-avatar.videocall {
  border-color: var(--boost-success);
  box-shadow: 0 2px 8px rgba(0,0,0,0.15), 0 0 8px var(--boost-success);
}
.boost-creator-card-avatar-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}
.boost-creator-card-avatar-initials {
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--boost-text-2);
  line-height: 1;
  text-transform: uppercase;
}
.boost-creator-card-avatar-dot {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--boost-success);
  border: 2px solid var(--boost-card-bg);
  z-index: 3;
}
.boost-creator-card-avatar-dot.videocall {
  animation: boost-dot-pulse 2s ease-in-out infinite;
}
@keyframes boost-dot-pulse {
  0%, 100% { box-shadow: 0 0 0 1px rgba(0,0,0,0.1), 0 0 4px var(--boost-success); }
  50% { box-shadow: 0 0 0 1px rgba(0,0,0,0.1), 0 0 10px var(--boost-success); }
}
.boost-creator-card:hover .boost-creator-card-img {
  transform: scale(1.05);
}
/* Country flag badge — top right on cover */
.boost-creator-card-flag {
  position: absolute;
  top: 8px;
  right: 8px;
  background: rgba(255,255,255,0.75);
  backdrop-filter: blur(6px);
  padding: 3px 7px;
  border-radius: 8px;
  font-size: 1rem;
  z-index: 2;
  line-height: 1;
}
/* Stats badges — bottom right on cover */
.boost-creator-card-overlay-stats {
  position: absolute;
  bottom: 8px;
  right: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  z-index: 2;
}
.boost-creator-card-overlay-stat {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: rgba(255,255,255,0.75);
  backdrop-filter: blur(6px);
  padding: 3px 8px;
  border-radius: 8px;
  font-size: 0.7rem;
  color: var(--boost-text);
  font-weight: 500;
  line-height: 1;
}
.boost-creator-card-overlay-stat i { font-size: 0.6rem; }
.boost-creator-card-overlay-stat .fa-heart { color: var(--boost-danger); }
.boost-creator-card-overlay-stat .fa-bell { color: var(--boost-accent); }
/* Mobile avatar zoom toggle */
.boost-creator-card-avatar.zoomed {
  transform: scale(2.3);
  box-shadow: 0 4px 16px rgba(0,0,0,0.25);
  z-index: 5;
}
/* Info section */
.boost-creator-card-info {
  padding: 8px 10px 10px;
}
/* Row 1: @username + verified */
.boost-creator-card-row1 {
  display: flex;
  align-items: center;
  gap: 4px;
}
.boost-creator-card-name-text {
  font-weight: 700;
  font-size: 0.82rem;
  color: var(--boost-text-1);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Row 2: Display name + age */
.boost-creator-card-row2 {
  margin-top: 2px;
  font-size: 0.78rem;
  color: var(--boost-text-2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.boost-creator-card-row2 strong {
  color: var(--boost-text-1);
  font-weight: 600;
}
/* Card mini tags */
.boost-creator-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  margin-top: 4px;
  overflow: hidden;
  max-height: 22px;
}
.boost-tag-chip-mini {
  display: inline-block;
  padding: 1px 6px;
  border-radius: 8px;
  font-size: 0.62rem;
  font-weight: 500;
  background: color-mix(in srgb, var(--boost-accent) 12%, transparent);
  color: var(--boost-accent);
  white-space: nowrap;
}
/* Row 3: Like, Follow, Share — same buttons as profile */
.boost-creator-card-row3 {
  display: flex;
  justify-content: center;
  gap: 8px;
  padding: 6px 10px 10px;
}
.boost-creator-card-row3 .boost-creator-profile-icon-btn {
  width: 34px;
  height: 34px;
  font-size: 14px;
}
/* Contact icon — info/blue (communication) */
.boost-creator-card-row3 .boost-creator-card-icon-contact {
  color: var(--boost-info);
  border-color: var(--boost-info);
}
.boost-creator-card-row3 .boost-creator-card-icon-contact:hover,
.boost-creator-card-row3 .boost-creator-card-icon-contact:focus-visible {
  background: var(--boost-info);
  color: var(--boost-white);
}
/* Donate icon — warning/amber (generosity) */
.boost-creator-card-row3 .boost-creator-card-icon-donate {
  color: var(--boost-warning);
  border-color: var(--boost-warning);
}
.boost-creator-card-row3 .boost-creator-card-icon-donate:hover,
.boost-creator-card-row3 .boost-creator-card-icon-donate:focus-visible {
  background: var(--boost-warning);
  color: var(--boost-white);
}
/* Conversation indicator — contact button with existing conversation */
.boost-creator-card-row3 .boost-creator-card-icon-contact.has-conversation {
  color: var(--boost-white);
  background: var(--boost-info);
  border-color: var(--boost-info);
}
.boost-creator-card-row3 .boost-creator-card-icon-contact.has-conversation:hover,
.boost-creator-card-row3 .boost-creator-card-icon-contact.has-conversation:focus-visible {
  filter: brightness(0.85);
}

/* ---- Badges ---- */
.boost-creator-badge-verified {
  color: var(--boost-accent);
  font-size: 0.8em;
  flex-shrink: 0;
}
.boost-creator-badge-featured {
  position: absolute;
  top: 10px;
  left: 10px;
  background: var(--boost-warning);
  color: var(--boost-white);
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  z-index: 2;
}
.boost-creator-badge-featured-inline {
  color: var(--boost-warning);
  font-size: 0.9em;
}
.boost-creator-badge-premium {
  position: absolute;
  top: 10px;
  right: 10px;
  background: var(--boost-accent);
  color: var(--boost-white);
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.boost-creator-badge-featured ~ .boost-creator-badge-premium {
  right: 44px;
}
.boost-creator-badge-premium-inline {
  color: var(--boost-accent);
  font-size: 0.9em;
}
.boost-creator-badge-new {
  position: absolute;
  top: 10px;
  left: 10px;
  background: var(--boost-accent);
  color: var(--boost-white);
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  padding: 2px 8px;
  border-radius: var(--boost-radius-sm);
  letter-spacing: 0.03em;
  z-index: 2;
}

/* ---- Empty + Loader ---- */
.boost-directory-empty {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 60px 20px;
  gap: 12px;
  color: var(--boost-text-3);
}
.boost-directory-empty i {
  font-size: 2.5rem;
  margin-bottom: 4px;
  opacity: 0.4;
}
.boost-directory-empty .boost-btn {
  margin-top: 8px;
}
.boost-directory-loader:not(.boost-hidden) {
  display: flex;
  justify-content: center;
  padding: 32px;
}

/* ---- Scroll-restore veil ----
   Cubre la viewport mientras se recargan en ráfaga las páginas del scroll
   infinito al volver de un perfil. Evita el efecto "persiana" de ver el
   scroll cayendo al fondo y subiendo progresivamente. */
.boost-directory-restore-veil {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--boost-content-bg);
  opacity: 1;
  transition: opacity 0.24s ease;
}
.boost-directory-restore-veil.fading {
  opacity: 0;
  pointer-events: none;
}
.boost-directory-restore-veil i {
  font-size: 2rem;
  color: var(--boost-accent);
}
@media (prefers-reduced-motion: reduce) {
  .boost-directory-restore-veil { transition: none; }
}

/* ---- Filter badge (count) ---- */
.boost-directory-filter-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  background: var(--boost-accent);
  color: var(--boost-white);
  font-size: 0.65rem;
  font-weight: 700;
  line-height: 1;
  margin-left: 2px;
}
.boost-directory-filter-toggle.active .boost-directory-filter-badge {
  background: var(--boost-white);
  color: var(--boost-accent);
}

/* ---- Active filter pills (outside panel) ---- */
.boost-directory-active-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 0 20px;
  margin-bottom: 10px;
  justify-content: center;
}
.boost-directory-active-filters:empty {
  display: none;
}
.boost-directory-active-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 20px;
  background: rgba(var(--boost-accent-rgb), 0.1);
  color: var(--boost-accent);
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.4;
  border: 1px solid rgba(var(--boost-accent-rgb), 0.2);
}
.boost-directory-active-pill-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border: none;
  background: rgba(var(--boost-accent-rgb), 0.15);
  color: var(--boost-accent);
  border-radius: 50%;
  font-size: 0.6rem;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  transition: background 0.2s;
}
.boost-directory-active-pill-close:hover {
  background: rgba(var(--boost-accent-rgb), 0.3);
}

/* ---- Skeleton primitives ----
   Reusable shimmer placeholder. Compose by giving any box the .boost-skeleton
   class; the shimmer overlay is drawn via ::after. All skeleton variants in
   the codebase (card, chat bubble, list row) should extend this base. */
.boost-skeleton {
  position: relative;
  overflow: hidden;
  background: var(--boost-form-bg);
}
.boost-skeleton::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, var(--boost-shimmer), transparent);
  transform: translateX(-100%);
  animation: boostShimmer 2s infinite;
  will-change: transform;
}
@media (prefers-reduced-motion: reduce) {
  .boost-skeleton::after {
    animation: none;
    background: rgba(var(--boost-content-bg-rgb), 0.5);
    transform: none;
  }
}

/* ---- LQIP blur-up placeholder ----
   Paints a tiny base64 WebP (stored in `lqip` column) behind the real image
   so the browser has something to show instantly — no extra request, zero
   layout shift. Any element that has `position: relative; overflow: hidden`
   can opt in by adding the .boost-img-lqip class; the ::before pseudo
   reads the URL from the custom property `--boost-lqip-bg`, which
   `window.boostInitLqip()` writes from the `data-lqip` attribute at mount.
   Once the real image decodes, JS toggles `data-lqip-loaded="1"` and the
   placeholder fades away. Reduced-motion users get an instant swap. */
.boost-img-lqip::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: var(--boost-lqip-bg, none);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  filter: blur(18px);
  transform: scale(1.15);
  z-index: 0;
  pointer-events: none;
  opacity: 1;
  transition: opacity 0.4s ease;
}
.boost-img-lqip > img {
  position: relative;
  z-index: 1;
}
.boost-img-lqip[data-lqip-loaded="1"]::before {
  opacity: 0;
}
@media (prefers-reduced-motion: reduce) {
  .boost-img-lqip::before { transition: none; }
}

/* ---- Skeleton cards (directory) ---- */
.boost-creator-card-skeleton {
  display: block;
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-card-border);
  border-radius: 12px;
  overflow: hidden;
}
.boost-creator-card-skeleton-img {
  aspect-ratio: 4 / 5;
}
.boost-creator-card-skeleton-info {
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.boost-creator-card-skeleton-bar {
  height: 12px;
  border-radius: 6px;
}
.boost-creator-card-skeleton-bar:nth-child(1) { width: 65%; }
.boost-creator-card-skeleton-bar:nth-child(2) { width: 85%; height: 10px; }
.boost-creator-card-skeleton-bar:nth-child(3) { width: 50%; height: 10px; }

/* ---- CTA ---- */
.boost-directory-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 48px 20px;
  margin-top: 24px;
  gap: 4px;
  background: var(--boost-card-bg);
  border: var(--boost-border-w) solid var(--boost-card-border);
  border-radius: var(--boost-radius);
  box-shadow: var(--boost-glass-shadow);
}
.boost-directory-cta > i {
  font-size: 2rem;
  color: var(--boost-accent);
  margin-bottom: 8px;
  display: block;
}
.boost-directory-cta h3 {
  font-size: 1.25rem;
  color: var(--boost-text-1);
  margin-bottom: 4px;
}
.boost-directory-cta p {
  color: var(--boost-text-3);
  margin-bottom: 16px;
  max-width: 400px;
}

/* ---- Directory landing (captación, < 10 perfiles) ---- */
.boost-directory-landing-hero {
  text-align: center;
  padding: 48px 20px 32px;
  background: rgba(var(--boost-accent-rgb), 0.06);
  border-radius: var(--boost-radius);
  margin-bottom: 32px;
}
.boost-directory-landing-title {
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 12px;
  background: linear-gradient(135deg, var(--boost-text-1), var(--boost-accent));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.boost-directory-landing-subtitle {
  color: var(--boost-text-3);
  font-size: 1.05rem;
  max-width: 520px;
  margin: 0 auto 24px;
  line-height: 1.5;
}
.boost-directory-landing-cta {
  padding: 14px 36px;
  font-size: 1rem;
}
.boost-directory-landing-hero-note {
  font-size: 0.8rem;
  color: var(--boost-text-3);
  opacity: 0.7;
  margin-top: 12px;
}
.boost-directory-landing-section {
  margin-bottom: 48px;
  padding: 0 16px;
}
.boost-directory-landing-section-title {
  text-align: center;
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--boost-text-1);
  margin-bottom: 24px;
}
.boost-directory-landing-features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  max-width: 900px;
  margin: 0 auto;
}
.boost-directory-landing-feature {
  flex-direction: column;
  justify-content: flex-start;
  text-align: center;
  padding: 24px 16px;
}
.boost-directory-landing-feature-icon {
  font-size: 1.75rem;
  color: var(--boost-accent);
  margin-bottom: 12px;
}
.boost-directory-landing-feature h3 {
  font-size: 1rem;
  font-weight: 600;
  color: var(--boost-text-1);
  margin-bottom: 8px;
}
.boost-directory-landing-feature p {
  font-size: 0.85rem;
  color: var(--boost-text-3);
  line-height: 1.45;
}
.boost-directory-landing-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  max-width: 700px;
  margin: 0 auto;
}
.boost-directory-landing-step {
  text-align: center;
}
.boost-directory-landing-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(var(--boost-accent-rgb), 0.1);
  color: var(--boost-accent);
  font-weight: 700;
  font-size: 1.1rem;
  margin-bottom: 12px;
}
.boost-directory-landing-step h3 {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--boost-text-1);
  margin-bottom: 6px;
}
.boost-directory-landing-step p {
  font-size: 0.85rem;
  color: var(--boost-text-3);
  line-height: 1.45;
}
.boost-directory-landing-grid {
  max-width: 900px;
  margin: 0 auto;
}

/* ---- Bottom tab bar (mobile, creator community) ---- */
.boost-bottom-tab {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: linear-gradient(to top, rgba(var(--boost-accent-rgb), 0.10), rgba(var(--boost-accent-rgb), 0.04)), var(--boost-white);
  border-top: 1px solid rgba(var(--boost-accent-rgb), 0.12);
  padding-bottom: env(safe-area-inset-bottom, 0px);
  transform: translateZ(0);
}
.boost-bottom-tab-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 8px 4px 6px;
  font-size: 10px;
  font-weight: 500;
  color: var(--boost-text-3);
  text-decoration: none;
  position: relative;
  transition: color 0.2s;
  overflow: hidden;
  min-width: 0;
}
.boost-bottom-tab-item span {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.boost-bottom-tab-item i {
  font-size: 18px;
}
.boost-bottom-tab-item.active {
  color: var(--boost-accent);
  font-weight: 700;
}
.boost-bottom-tab-badge {
  position: absolute;
  top: 4px;
  right: 50%;
  transform: translateX(14px);
  min-width: 16px;
  height: 16px;
  border-radius: 8px;
  background: var(--boost-danger);
  color: var(--boost-white);
  font-size: 10px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  line-height: 1;
}
/* ── Bottom tab "More" selector ── */
.boost-bottom-tab-more {
  background: none;
  border: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.boost-bottom-tab-more[aria-expanded="true"] {
  color: var(--boost-accent);
}
.boost-bottom-tab-popover {
  display: none;
  position: fixed;
  bottom: calc(var(--boost-bottom-tab-h) + env(safe-area-inset-bottom, 0px) + 8px);
  right: 8px;
  background: var(--boost-white);
  border: 1px solid var(--boost-card-border);
  border-radius: 12px;
  box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.25);
  min-width: 140px;
  padding: 8px;
  z-index: 1002;
}
.boost-bottom-tab-popover:not(.boost-hidden) {
  display: block;
}
.boost-bottom-tab-popover-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 10px;
  text-decoration: none;
  transition: background 0.15s;
}
.boost-bottom-tab-popover-item:hover {
  background: var(--boost-hover-bg);
}
.boost-bottom-tab-popover-item .boost-sidebar-logo-icon {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  font-size: 13px;
  animation: none;
}
.boost-bottom-tab-popover-item .boost-sidebar-logo-text {
  font-size: 15px;
  font-weight: 800;
  color: var(--boost-text-1);
  letter-spacing: -0.02em;
}
/* Force default cyan on Boost logo inside popover (AI/Fans contexts override --boost-accent) */
.boost-body-callroom .boost-bottom-tab {
  display: none;
}
@media (max-width: 768px) {
  .boost-body .boost-bottom-tab {
    display: flex;
  }
  .boost-body.sidebar-open .boost-bottom-tab {
    display: none;
  }
  .boost-body .boost-main {
    padding-bottom: calc(var(--boost-bottom-tab-h) + env(safe-area-inset-bottom, 0px));
  }
  /* Hide draft pill when bottom tab is visible to avoid overlap */
  .boost-body .boost-draft-pill {
    bottom: calc(60px + env(safe-area-inset-bottom, 0px));
  }
}

/* ---- Profile page ---- */
.boost-creator-profile-header {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 24px;
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-card-border);
}
.boost-creator-profile-cover {
  height: 260px;
  background: var(--cover-bg) center var(--cover-pos-y, 50%) / cover no-repeat;
  position: relative;
  cursor: pointer;
  cursor: default;
}
.boost-creator-profile-cover::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 120px;
  background: linear-gradient(transparent, var(--boost-overlay-dark));
  pointer-events: none;
}
.boost-creator-profile-cover-actions {
  position: absolute;
  top: 12px;
  right: 12px;
  display: flex;
  gap: 8px;
  z-index: 2;
}
/* Cover controls — shared glass base */
.boost-cover-action-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--boost-pink-rgb), 0.65);
  color: var(--boost-white);
  border: 1px solid rgba(255, 255, 255, 0.25);
  cursor: pointer;
  text-decoration: none;
  font-size: 0.95rem;
  transition: background 0.18s, transform 0.18s, box-shadow 0.18s;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 2px 8px rgba(var(--boost-pink-rgb), 0.3);
}
.boost-cover-action-btn:hover {
  background: var(--boost-pink);
  transform: scale(1.08);
  color: var(--boost-white);
  box-shadow: 0 4px 14px rgba(var(--boost-pink-rgb), 0.45);
}
.boost-creator-profile-cover.boost-cover-editing {
  cursor: grab;
  outline: 2px dashed var(--boost-pink);
  outline-offset: -4px;
  touch-action: none;
  -webkit-user-select: none;
  user-select: none;
}
.boost-creator-profile-cover.boost-cover-editing:active { cursor: grabbing; }
.boost-cover-edit-hint {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  padding: 10px 18px;
  background: rgba(var(--boost-pink-rgb), 0.75);
  color: var(--boost-white);
  border-radius: 24px;
  font-size: 0.9rem;
  font-weight: 600;
  pointer-events: none;
  z-index: 2;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  border: 1px solid rgba(255, 255, 255, 0.2);
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
  box-shadow: 0 4px 16px rgba(var(--boost-pink-rgb), 0.35);
}
.boost-cover-edit-actions {
  position: absolute;
  bottom: 12px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 3;
}
.boost-cover-edit-actions .boost-btn-outline {
  background: rgba(var(--boost-pink-rgb), 0.55);
  border-color: rgba(255, 255, 255, 0.25);
  color: var(--boost-white);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 2px 8px rgba(var(--boost-pink-rgb), 0.25);
}
.boost-cover-edit-actions .boost-btn-outline:hover {
  background: rgba(var(--boost-pink-rgb), 0.8);
  border-color: rgba(255, 255, 255, 0.4);
  color: var(--boost-white);
  box-shadow: 0 4px 12px rgba(var(--boost-pink-rgb), 0.4);
}
.boost-cover-pos-indicator {
  position: absolute;
  top: 12px;
  left: 12px;
  padding: 6px 12px;
  background: rgba(var(--boost-pink-rgb), 0.7);
  color: var(--boost-white);
  font-weight: 700;
  font-size: 0.85rem;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  z-index: 3;
  pointer-events: none;
  font-variant-numeric: tabular-nums;
  box-shadow: 0 2px 8px rgba(var(--boost-pink-rgb), 0.3);
}
.boost-cover-edit-actions .boost-btn-sm:not(.boost-btn-outline) {
  background: linear-gradient(135deg, var(--boost-pink), var(--boost-danger));
  color: var(--boost-white);
  border-color: transparent;
  box-shadow: 0 2px 10px rgba(var(--boost-pink-rgb), 0.4);
}
.boost-cover-edit-actions .boost-btn-sm:not(.boost-btn-outline):hover {
  box-shadow: 0 4px 16px rgba(var(--boost-pink-rgb), 0.55);
}
.boost-cover-save-spin { font-size: 0.9rem; }
.boost-creator-profile-cover.boost-cover-editing:focus-visible { outline-offset: -6px; }
.boost-btn-sm { padding: 6px 14px; font-size: 0.85rem; }
.boost-creator-profile-info {
  position: relative;
  padding: 16px 24px 24px;
  z-index: 1;
}
.boost-creator-profile-top {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 16px;
}
.boost-creator-profile-avatar-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  flex-shrink: 0;
}
.boost-creator-profile-avail {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.72rem;
  font-weight: 600;
}
.boost-creator-profile-avail.online { color: var(--boost-success); }
.boost-creator-profile-avail.offline { color: var(--boost-text-3); }
.boost-creator-profile-avail-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  display: inline-block;
}
.boost-creator-profile-avail-dot.on {
  background: var(--boost-success);
  box-shadow: 0 0 4px var(--boost-success);
}
.boost-creator-profile-avail-dot.off { background: var(--boost-text-3); }
.boost-creator-profile-avatar {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  border: 3px solid var(--boost-card-bg);
  overflow: hidden;
  background: var(--boost-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: -64px;
  cursor: pointer;
}
.boost-creator-profile-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.boost-creator-profile-initials {
  color: var(--boost-white);
  font-weight: 700;
  font-size: 1.3rem;
}
.boost-creator-profile-details {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  flex: 1;
}
.boost-creator-profile-identity {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-size: 1rem;
  font-weight: 400;
  margin: 0;
}
.boost-creator-profile-username {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--boost-text-1);
}
.boost-creator-profile-headline {
  color: var(--boost-text-3);
  font-size: 0.95rem;
  margin: 0;
}
.boost-creator-profile-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 4px;
  flex-wrap: wrap;
  justify-content: center;
}
.boost-creator-profile-cat,
.boost-creator-profile-gender,
.boost-creator-profile-age,
.boost-creator-profile-country {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.8rem;
  color: var(--boost-text-3);
  padding: 3px 10px;
  border-radius: 20px;
  background: var(--boost-form-bg);
}
.boost-creator-profile-cat {
  color: var(--boost-accent);
  font-weight: 600;
}
.boost-creator-profile-gender-female i { color: var(--platform-instagram); }
.boost-creator-profile-gender-male i { color: var(--platform-facebook); }
.boost-creator-profile-gender-trans i { color: var(--platform-instagram); }
.boost-creator-profile-gender-non_binary i { color: var(--violet); }
.boost-creator-profile-gender-couple i { color: var(--boost-danger); }
.boost-creator-profile-gender-other i { color: var(--boost-warning); }
.boost-creator-profile-header-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  margin-left: auto;
  flex-shrink: 0;
}
.boost-creator-profile-separator {
  height: 1px;
  background: var(--boost-border);
  margin: 14px 0;
}
.boost-creator-profile-bio-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--boost-text-1);
  margin: 0 0 10px;
}
.boost-creator-profile-bio-label i {
  color: var(--boost-accent);
  font-size: 0.85em;
}

/* ── Tag chips ─────────────────────────────── */
.boost-tag-chip {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 0.8rem;
  font-weight: 500;
  background: color-mix(in srgb, var(--boost-text-3) 8%, transparent);
  color: var(--boost-text-2);
  border: 1px solid color-mix(in srgb, var(--boost-text-3) 15%, transparent);
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
  user-select: none;
}
.boost-tag-chip:hover {
  background: color-mix(in srgb, var(--boost-accent) 10%, transparent);
  border-color: color-mix(in srgb, var(--boost-accent) 30%, transparent);
  color: var(--boost-accent);
}
.boost-tag-chip i { font-size: 0.75em; }
.boost-tag-chip-selected {
  background: color-mix(in srgb, var(--boost-accent) 15%, transparent);
  color: var(--boost-accent);
  border-color: var(--boost-accent);
  font-weight: 600;
}
.boost-tag-chip-private {
  border-color: color-mix(in srgb, var(--boost-danger) 25%, transparent);
}
.boost-tag-chip-private.boost-tag-chip-selected {
  background: color-mix(in srgb, var(--boost-danger) 15%, transparent);
  color: var(--boost-danger);
  border-color: var(--boost-danger);
}
.boost-tag-chip-display {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 16px;
  font-size: 0.75rem;
  font-weight: 500;
  background: color-mix(in srgb, var(--boost-accent) 10%, transparent);
  color: var(--boost-accent);
  cursor: default;
}
.boost-tag-chip-display.boost-tag-chip-private {
  background: color-mix(in srgb, var(--boost-danger) 10%, transparent);
  color: var(--boost-danger);
}
.boost-tag-chip-display i { font-size: 0.7em; }

/* Tag groups grid — 2 columns on desktop, 1 on mobile */
.boost-tag-groups-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

/* Tag groups in editor — collapsible via CSS grid 0fr/1fr */
.boost-tag-group {
  border-radius: 10px;
  border: 1px solid color-mix(in srgb, var(--boost-text-3) 10%, transparent);
  background: color-mix(in srgb, var(--boost-text-3) 3%, transparent);
}
.boost-tag-group-title {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--boost-text-2);
  margin: 0;
  padding: 11px 14px;
  cursor: pointer;
  user-select: none;
  display: flex;
  align-items: center;
  gap: 8px;
  border-radius: 10px;
  transition: background 0.15s;
}
.boost-tag-group-title:hover {
  background: color-mix(in srgb, var(--boost-text-3) 6%, transparent);
}
.boost-tag-group-label {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 8px;
}
.boost-tag-group-label i {
  font-size: 0.8rem;
  width: 18px;
  text-align: center;
  color: var(--boost-accent);
}
.boost-tag-group-count {
  font-size: 0.7rem;
  font-weight: 700;
  min-width: 20px;
  height: 20px;
  line-height: 20px;
  text-align: center;
  border-radius: 10px;
  background: color-mix(in srgb, var(--boost-accent) 15%, transparent);
  color: var(--boost-accent);
}
.boost-tag-group-title::after {
  content: '\f078';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  font-size: 9px;
  color: var(--boost-text-3);
  transition: transform 0.25s ease;
  margin-left: 4px;
}
.boost-tag-group-collapsed .boost-tag-group-title::after {
  transform: rotate(-90deg);
}
.boost-tag-group .boost-tag-grid-wrap {
  display: grid;
  grid-template-rows: 1fr;
  transition: grid-template-rows 0.25s ease;
}
.boost-tag-group-collapsed .boost-tag-grid-wrap {
  grid-template-rows: 0fr;
}
.boost-tag-group .boost-tag-grid-wrap > .boost-tag-grid {
  overflow: hidden;
  padding: 2px 14px 12px;
}
.boost-tag-group-collapsed .boost-tag-grid-wrap > .boost-tag-grid {
  padding-top: 0;
  padding-bottom: 0;
}
.boost-tag-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 6px;
}

/* Per-group icon tints */
.boost-tag-group[data-group="physical"] .boost-tag-group-label i { color: var(--boost-accent); }
.boost-tag-group[data-group="personality"] .boost-tag-group-label i { color: var(--boost-danger); }
.boost-tag-group[data-group="interests"] .boost-tag-group-label i { color: var(--boost-warning); }
.boost-tag-group[data-group="languages"] .boost-tag-group-label i { color: var(--boost-success); }
.boost-tag-group[data-group="fetish"] .boost-tag-group-label i { color: var(--boost-danger); }
.boost-tag-group[data-group="preferences"] .boost-tag-group-label i { color: var(--boost-warning); }

/* Per-group count tints for private groups */
.boost-tag-group[data-group="fetish"] .boost-tag-group-count,
.boost-tag-group[data-group="preferences"] .boost-tag-group-count {
  background: color-mix(in srgb, var(--boost-danger) 15%, transparent);
  color: var(--boost-danger);
}

.boost-section-separator {
  border: none;
  border-top: 1px solid color-mix(in srgb, var(--boost-text-3) 10%, transparent);
  margin: 20px 0;
}

/* Private zone wrapper in editor — visually groups all paid content */
.boost-private-zone-wrap {
  border: 1px solid color-mix(in srgb, var(--boost-accent) 18%, transparent);
  border-radius: 12px;
  padding: 16px;
  background: color-mix(in srgb, var(--boost-accent) 2%, transparent);
}
.boost-private-zone-wrap .boost-gallery-section-title:first-child {
  margin-top: 0;
}
.boost-private-zone-wrap .boost-section-separator {
  border-color: color-mix(in srgb, var(--boost-accent) 10%, transparent);
}
@media (max-width: 600px) {
  .boost-tag-groups-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 480px) {
  .boost-private-zone-wrap {
    padding: 10px;
    border-radius: 8px;
  }
  .boost-tag-group-title {
    padding: 9px 10px;
  }
  .boost-tag-group .boost-tag-grid-wrap > .boost-tag-grid {
    padding: 2px 10px 10px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .boost-tag-group .boost-tag-grid-wrap,
  .boost-tag-group-title::after {
    transition: none;
  }
}
.boost-tag-counter {
  font-size: 0.85rem;
  color: var(--boost-text-3);
  margin-bottom: 16px;
}

/* Tags on profile page */
.boost-creator-profile-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: center;
  margin: 12px 0;
}

/* Private zone bio + tags */
.boost-private-zone-bio { margin: 16px 0; padding: 0 16px; }
.boost-private-zone-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 0 16px;
  margin: 12px 0;
}

/* Tag search in directory dropdown */
.boost-tag-search {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid color-mix(in srgb, var(--boost-text-3) 20%, transparent);
  border-radius: 8px;
  font-size: 0.85rem;
  background: var(--boost-bg-card);
  color: var(--boost-text-1);
  margin-bottom: 8px;
  outline: none;
}
.boost-tag-search:focus {
  border-color: var(--boost-accent);
}

.boost-creator-profile-stats {
  display: flex;
  align-items: center;
  gap: 10px;
}
.boost-creator-profile-views,
.boost-creator-profile-likes {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  color: var(--boost-text-3);
}
.boost-creator-profile-likes i { color: var(--boost-danger); }
.boost-creator-profile-followers {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  color: var(--boost-text-3);
}
.boost-creator-profile-followers i { color: var(--boost-accent); }
.boost-badge-success {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 600;
  background: color-mix(in srgb, var(--boost-success) 15%, transparent);
  color: var(--boost-success);
  white-space: nowrap;
}
.boost-followers-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.boost-follower-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 8px;
  background: var(--boost-form-bg);
  font-size: 0.85rem;
}
.boost-follower-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
}
.boost-follower-avatar-initials {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--boost-accent);
  color: var(--boost-white);
  font-size: 0.7rem;
  font-weight: 700;
}
.boost-follower-name {
  color: var(--boost-text-1);
}
.boost-empty-hint {
  color: var(--boost-text-3);
  font-size: 0.85rem;
  padding: 8px 0;
}
.boost-creator-profile-icon-btn.boost-liked {
  color: var(--boost-danger);
  border-color: var(--boost-danger);
}
.boost-creator-profile-icon-btn.boost-liked:hover {
  background: var(--boost-danger);
  color: var(--boost-white);
}
.boost-creator-profile-bio {
  color: var(--boost-text-1);
  font-size: 0.95rem;
  line-height: 1.7;
  word-break: break-word;
  overflow-wrap: break-word;
}
.boost-creator-profile-socials {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 16px;
  justify-content: center;
}
/* ─── Profile CTA Block (premium centered) ──────────────────── */
.boost-profile-cta {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
}
.boost-profile-cta .boost-btn {
  padding: 12px 24px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 600;
  border: none;
  cursor: pointer;
  transition: all 0.25s ease;
}
.boost-profile-cta .boost-btn i { font-size: 15px; }
.boost-btn.boost-btn-contact {
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
  color: var(--boost-white);
  box-shadow: 0 4px 20px rgba(var(--boost-accent-rgb), 0.35);
}
.boost-btn.boost-btn-contact:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(var(--boost-accent-rgb), 0.45);
}
.boost-profile-cta .boost-btn-videocall {
  background: linear-gradient(135deg, var(--violet), var(--violet-dark));
  color: var(--boost-white);
  box-shadow: 0 4px 20px rgba(var(--violet-rgb), 0.35);
}
.boost-profile-cta .boost-btn-videocall:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(var(--violet-rgb), 0.45);
}
.boost-profile-cta .boost-btn-videocall:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
}
.boost-profile-cta .boost-btn-donate {
  background: linear-gradient(135deg, var(--boost-warning-light), var(--boost-warning));
  color: var(--boost-white);
  box-shadow: 0 4px 20px rgba(var(--boost-warning-light-rgb), 0.3);
  padding: 12px 20px;
}
.boost-profile-cta .boost-btn-donate:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(var(--boost-warning-light-rgb), 0.4);
}
/* Legacy — keep for compatibility with non-profile uses */
.boost-creator-profile-actions {
  display: flex;
  gap: 12px;
}
.boost-creator-profile-header-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}
.boost-creator-profile-icon-follow.active {
  background: color-mix(in srgb, var(--boost-accent) 12%, transparent);
  border-color: var(--boost-accent);
  color: var(--boost-accent);
}
.boost-creator-profile-icon-btn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid var(--boost-border);
  background: var(--boost-content-bg-light);
  color: var(--boost-text-3);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 16px;
  transition: color 0.2s, background 0.2s, border-color 0.2s;
}
.boost-creator-profile-icon-btn:hover {
  color: var(--boost-accent);
  border-color: var(--boost-accent);
}
.boost-creator-profile-icon-fav.active {
  color: var(--boost-danger);
  border-color: var(--boost-danger);
  background: color-mix(in srgb, var(--boost-danger) 12%, transparent);
}
.boost-creator-profile-icon-fav:hover {
  color: var(--boost-danger);
  border-color: var(--boost-danger);
}
.boost-creator-profile-icon-share {
  color: var(--boost-accent);
  border-color: var(--boost-accent);
}
.boost-creator-profile-icon-share:hover {
  background: var(--boost-accent);
  color: var(--boost-white);
}
.boost-creator-profile-bio-wrap {
  position: relative;
  margin-bottom: 16px;
}
.boost-creator-profile-bio-collapsed {
  max-height: 4.8em;
  overflow: hidden;
}
.boost-creator-profile-bio-wrap:has(.boost-creator-profile-bio-collapsed)::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2em;
  background: linear-gradient(to bottom, transparent, var(--boost-white));
  pointer-events: none;
}
.boost-creator-profile-bio-wrap.expanded::after {
  display: none;
}
.boost-creator-profile-bio-toggle {
  background: none;
  border: none;
  color: var(--boost-accent);
  cursor: pointer;
  font-size: 0.85rem;
  font-weight: 600;
  padding: 4px 0;
  position: relative;
  z-index: 1;
}
.boost-creator-profile-bio-toggle:hover {
  text-decoration: underline;
}

/* ---- Gallery ---- */
.boost-creator-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 12px;
}
.boost-creator-gallery-item {
  position: relative;
  aspect-ratio: 1;
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
  background: var(--boost-form-bg);
}
.boost-creator-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s;
}
.boost-creator-gallery-item:hover img {
  transform: scale(1.08);
}
.boost-creator-gallery-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--boost-white);
  font-size: 1.2rem;
  opacity: 0;
  transition: opacity 0.2s;
}
.boost-creator-gallery-item:hover .boost-creator-gallery-overlay {
  opacity: 1;
}

/* ---- Premium gallery (locked content) ----
   `.boost-gallery-premium-locked` is a semantic marker used by JS to skip the
   lightbox handler (see creator-profile.php). All visual styling is supplied
   by `.boost-gallery-placeholder` below, which is always applied together.
   No CSS rules on `.boost-gallery-premium-locked` itself — adding any would
   leak through to the placeholder and duplicate intent. */

/* Locked placeholder tile — used when the viewer has no unlock so we can't
   embed any real filename in the HTML. Pure CSS pattern, no <img>. */
.boost-gallery-placeholder {
  background:
    repeating-linear-gradient(
      135deg,
      rgba(var(--boost-accent-rgb), 0.10) 0 10px,
      rgba(var(--boost-accent-rgb), 0.18) 10px 20px
    ),
    linear-gradient(135deg, rgba(0,0,0,0.35), rgba(var(--boost-accent-rgb), 0.25));
  cursor: default;
}
.boost-gallery-placeholder .boost-creator-gallery-lock {
  background: transparent; /* the tile background already carries the gradient */
}
.boost-creator-gallery-lock {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  background: linear-gradient(135deg, rgba(0,0,0,0.55), rgba(var(--boost-accent-rgb), 0.25));
  color: var(--boost-white);
  border-radius: var(--boost-radius);
  z-index: 1;
}
.boost-creator-gallery-lock i {
  font-size: 1.5rem;
}
.boost-creator-gallery-lock span {
  font-size: 0.9rem;
  font-weight: 700;
}

/* ---- Donate button + price badge ---- */
.boost-btn-donate {
  border-color: var(--boost-border);
  color: var(--boost-text-2);
  background: var(--boost-form-bg);
  font-size: 0.8rem;
  padding: 6px 14px;
}
.boost-btn-donate:hover {
  border-color: var(--boost-accent);
  color: var(--boost-accent);
}
.boost-btn-price {
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
  padding: 2px 8px;
  background: rgba(255, 255, 255, 0.2);
  border-radius: var(--boost-radius-sm);
  font-size: 0.8em;
  font-weight: 700;
}

/* ---- Donate modal ---- */
.boost-donate-modal {
  display: flex;
  flex-direction: column;
  gap: 14px;
  background: var(--boost-popover-bg);
  border: 3px solid rgba(var(--boost-accent-rgb), 0.7);
}
.boost-donate-modal .boost-modal-title { margin-bottom: 0; }
.boost-donate-modal .boost-form-group + .boost-form-group { margin-top: 0; }

/* Optional hint copy banner shown by monetization triggers (E1/E7) */
.boost-donate-hint-copy {
  margin: 0;
  padding: 12px 14px;
  border-radius: var(--boost-radius-sm);
  background: linear-gradient(135deg, rgba(var(--boost-accent-rgb), 0.12), rgba(var(--boost-accent-rgb), 0.04));
  border: 1px solid rgba(var(--boost-accent-rgb), 0.28);
  color: var(--boost-text-1);
  font-size: 0.9rem;
  line-height: 1.45;
  text-align: center;
}
.boost-donate-hint-copy strong {
  color: var(--boost-accent);
}

/* ── Icebreaker banner (E3) — creator profile ─────────────── */
.boost-icebreaker {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 18px 20px;
  margin: 24px 0;
  border-radius: var(--boost-radius);
  background: linear-gradient(135deg, rgba(var(--boost-accent-rgb), 0.14), rgba(var(--boost-accent-rgb), 0.04));
  border: 1px solid rgba(var(--boost-accent-rgb), 0.3);
  box-shadow: var(--boost-shadow-sm);
}
.boost-icebreaker-body {
  display: flex;
  align-items: center;
  gap: 10px;
}
.boost-icebreaker-dot {
  flex-shrink: 0;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--boost-success);
  box-shadow: 0 0 0 0 rgba(var(--boost-success-rgb),0.45);
  animation: boost-icebreaker-pulse 2s ease-out infinite;
}
@keyframes boost-icebreaker-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(var(--boost-success-rgb),0.5); }
  70%  { box-shadow: 0 0 0 10px rgba(var(--boost-success-rgb),0); }
  100% { box-shadow: 0 0 0 0 rgba(var(--boost-success-rgb),0); }
}
.boost-icebreaker-copy {
  margin: 0;
  color: var(--boost-text-1);
  font-size: 0.95rem;
  line-height: 1.5;
}
.boost-icebreaker-copy strong {
  color: var(--boost-accent);
}
.boost-icebreaker-form {
  display: flex;
  gap: 10px;
}
.boost-icebreaker-form .boost-input {
  flex: 1;
  min-width: 0;
}
.boost-icebreaker-form .boost-btn {
  flex-shrink: 0;
}
@media (max-width: 480px) {
  .boost-icebreaker {
    padding: 14px 16px;
  }
  .boost-icebreaker-form {
    flex-direction: column;
  }
  .boost-icebreaker-form .boost-btn {
    width: 100%;
    justify-content: center;
  }
}

/* ---- Response-time stats card (E6d) ---- */
.boost-response-tip {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  border-radius: var(--boost-radius);
  background: linear-gradient(135deg, rgba(var(--boost-warning-rgb), 0.12), rgba(var(--boost-warning-rgb), 0.04));
  border: 1px solid rgba(var(--boost-warning-rgb), 0.25);
}
.boost-response-tip i {
  flex-shrink: 0;
  color: var(--boost-warning);
  font-size: 1.2rem;
  margin-top: 2px;
}
.boost-response-tip p {
  margin: 0;
  color: var(--boost-text-1);
  font-size: 0.92rem;
  line-height: 1.5;
}
.boost-response-metric {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 18px 14px;
  margin-top: 14px;
  border-radius: var(--boost-radius);
  background: var(--boost-surface-2);
  border: 1px solid var(--boost-border);
}
.boost-response-metric-value {
  font-size: 2.4rem;
  font-weight: 700;
  color: var(--boost-accent);
  line-height: 1;
}
.boost-response-metric-value small {
  font-size: 1rem;
  color: var(--boost-text-2);
  font-weight: 500;
  margin-left: 4px;
}
.boost-response-metric-label {
  color: var(--boost-text-2);
  font-size: 0.88rem;
}
.boost-response-empty {
  margin: 14px 0 0;
  padding: 14px;
  text-align: center;
  color: var(--boost-text-2);
  font-size: 0.9rem;
  background: var(--boost-surface-2);
  border-radius: var(--boost-radius);
  border: 1px dashed var(--boost-border);
}
.boost-response-chart-wrap {
  margin-top: 16px;
  position: relative;
  height: 180px;
}
@media (max-width: 480px) {
  .boost-response-tip {
    padding: 12px 14px;
  }
  .boost-response-metric-value {
    font-size: 2rem;
  }
  .boost-response-chart-wrap {
    height: 150px;
  }
}

/* ---- Donate modal chips ---- */
.boost-donate-amounts {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.boost-donate-chip {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  flex: 1;
  min-width: 68px;
  padding: 14px 10px;
  border: 2px solid rgba(var(--boost-accent-rgb), 0.15);
  border-radius: var(--boost-radius);
  background: rgba(var(--boost-accent-rgb), 0.04);
  color: var(--boost-text-1);
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s, transform 0.15s;
}
.boost-donate-chip:hover {
  border-color: var(--boost-accent);
  background: rgba(var(--boost-accent-rgb), 0.08);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(var(--boost-accent-rgb), 0.15);
}
.boost-donate-chip.active {
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
  border-color: var(--boost-accent);
  color: var(--boost-white);
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(var(--boost-accent-rgb), 0.3);
}
.boost-donate-chip-icon {
  font-size: 1.6rem;
  line-height: 1;
}
.boost-donate-chip-price {
  font-size: 0.95rem;
  font-weight: 700;
}
.boost-donate-balance {
  font-size: 0.85rem;
  color: var(--boost-text-3);
  margin: 8px 0;
}
.boost-donate-modal .boost-donate-balance {
  margin: 0;
  padding: 10px 14px;
  background: linear-gradient(135deg, rgba(var(--boost-accent-rgb), 0.08), rgba(var(--boost-accent-rgb), 0.03));
  border: 1px solid rgba(var(--boost-accent-rgb), 0.12);
  border-radius: var(--boost-radius-sm);
}
.boost-donate-balance i {
  margin-right: 4px;
}
.boost-donate-custom-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
}
.boost-donate-custom-row label {
  white-space: nowrap;
  margin-bottom: 0;
}
.boost-donate-custom-row .boost-input-price-wrap {
  flex: 1;
}
.boost-donate-note {
  resize: none;
  font-size: 0.85rem;
  min-height: 64px;
}

/* ---- Insufficient balance modal ---- */
.boost-insufficient-modal {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.boost-insufficient-modal .boost-modal-title { margin-bottom: 0; }
.boost-insufficient-icon {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(var(--boost-accent-rgb), 0.1);
  color: var(--boost-accent);
  font-size: 1.8rem;
  margin: 0 auto;
}
.boost-insufficient-reason {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.4;
  color: var(--boost-text-2);
  text-align: center;
}
.boost-insufficient-reason[hidden] { display: none; }
.boost-insufficient-figures {
  display: flex;
  gap: 12px;
  padding: 14px 16px;
  border-radius: var(--boost-radius);
  background: rgba(var(--boost-accent-rgb), 0.06);
  border: 1px solid rgba(var(--boost-accent-rgb), 0.12);
}
.boost-insufficient-figure {
  flex: 1;
  min-width: 0;
  text-align: center;
}
.boost-insufficient-label {
  display: block;
  font-size: 0.72rem;
  color: var(--boost-text-3);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 4px;
}
.boost-insufficient-figure strong {
  font-size: 1.15rem;
  color: var(--boost-text-1);
  font-weight: 700;
  word-break: break-all;
}
.boost-insufficient-lead {
  text-align: center;
  margin: 0;
  font-size: 0.9rem;
  color: var(--boost-text-2);
}
.boost-insufficient-chips {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.boost-insufficient-chip {
  position: relative;
  padding: 14px 8px;
  border: 2px solid var(--boost-border);
  border-radius: var(--boost-radius);
  background: var(--boost-content-bg-light);
  color: var(--boost-text-1);
  font-size: 1.05rem;
  font-weight: 700;
  cursor: pointer;
  transition: border-color 0.18s, background 0.18s, color 0.18s, transform 0.15s;
}
.boost-insufficient-chip:hover {
  border-color: var(--boost-accent);
  background: rgba(var(--boost-accent-rgb), 0.08);
  color: var(--boost-accent);
  transform: translateY(-2px);
}
.boost-insufficient-chip-popular {
  border-color: var(--boost-accent);
  background: rgba(var(--boost-accent-rgb), 0.08);
  color: var(--boost-accent);
}
.boost-insufficient-chip-popular::after {
  content: '★';
  position: absolute;
  top: -8px;
  right: -6px;
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--boost-accent);
  color: var(--boost-white);
  font-size: 0.65rem;
  line-height: 1;
}
.boost-insufficient-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  background: transparent;
  border: 1px solid transparent;
  color: var(--boost-accent);
  font-size: 0.88rem;
  font-weight: 600;
  text-decoration: underline;
  cursor: pointer;
  transition: color 0.18s;
}
.boost-insufficient-more:hover {
  color: var(--boost-accent-hover);
}
@media (max-width: 480px) {
  .boost-insufficient-chips { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .boost-insufficient-figures { flex-direction: column; gap: 10px; padding: 12px; }
  .boost-insufficient-modal .boost-modal-actions { flex-direction: column; }
  .boost-insufficient-modal .boost-modal-actions .boost-btn,
  .boost-insufficient-more { width: 100%; }
}

/* ---- Gift Animation Overlay ---- */
.boost-gift-overlay {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--boost-modal-backdrop);
  pointer-events: none;
  animation: boostGiftOverlayIn 0.35s ease forwards;
}
.boost-gift-overlay[hidden] { display: none; }
.boost-gift-center {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  max-width: 420px;
  padding: 0 16px;
}
.boost-gift-emoji {
  font-size: 8rem;
  animation: boostGiftCenterPop 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
  filter: drop-shadow(0 8px 24px rgba(0, 0, 0, 0.5));
}
.boost-gift-label {
  font-size: 3rem;
  font-weight: 900;
  color: var(--boost-accent);
  letter-spacing: -0.02em;
  opacity: 0;
  animation: boostGiftLabelFade 0.5s 0.35s ease forwards;
  text-shadow: 0 4px 16px rgba(0, 0, 0, 0.5),
               0 0 40px rgba(var(--boost-accent-rgb), 0.5);
}
.boost-gift-note {
  font-size: 1.3rem;
  color: var(--boost-white);
  font-style: italic;
  max-width: 360px;
  text-align: center;
  word-break: break-word;
  padding: 14px 22px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 14px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  line-height: 1.45;
  opacity: 0;
  animation: boostGiftLabelFade 0.5s 0.7s ease forwards;
}
.boost-gift-particle {
  position: absolute;
  font-size: 2.4rem;
  animation: boostGiftFly var(--dur, 1.3s) cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
  transform: translate(0, 0) scale(0);
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.4));
}
@keyframes boostGiftOverlayIn {
  0%   { opacity: 0; }
  100% { opacity: 1; }
}
@keyframes boostGiftCenterPop {
  0%   { transform: scale(0); opacity: 0; }
  50%  { transform: scale(1.35); opacity: 1; }
  100% { transform: scale(1); opacity: 1; }
}
@keyframes boostGiftLabelFade {
  0%   { opacity: 0; transform: translateY(8px); }
  100% { opacity: 1; transform: translateY(0); }
}
@keyframes boostGiftFly {
  0%   { transform: translate(0, 0) scale(0) rotate(0deg); opacity: 1; }
  60%  { opacity: 1; }
  100% { transform: translate(var(--dx), var(--dy)) scale(0.5) rotate(var(--rot)); opacity: 0; }
}
@keyframes boostGiftOverlayOut {
  0%   { opacity: 1; }
  100% { opacity: 0; }
}
.boost-gift-overlay-out {
  animation: boostGiftOverlayOut 0.4s ease forwards;
}
@media (prefers-reduced-motion: reduce) {
  .boost-gift-overlay,
  .boost-gift-emoji,
  .boost-gift-label,
  .boost-gift-note,
  .boost-msg-gift-emoji { animation-duration: 0.3s; }
  .boost-gift-particle { display: none; }
}

/* ---- Lottie gift container ---- */
.boost-gift-lottie {
  width: 320px;
  height: 320px;
  filter: drop-shadow(0 8px 24px rgba(0, 0, 0, 0.4));
}

/* ---- Donor Level Badges (TikTok-style pill) ---- */
.boost-donor-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 1px 6px;
  border-radius: 10px;
  font-size: 0.65rem;
  font-weight: 700;
  color: var(--boost-white);
  vertical-align: middle;
  margin-left: 4px;
  line-height: 1.4;
  white-space: nowrap;
}
.boost-donor-badge i { font-size: 0.55rem; }
.boost-donor-lvl { font-size: 0.6rem; }

/* Tier backgrounds */
.boost-donor-bronze { background: var(--boost-donor-bronze); }
.boost-donor-silver { background: var(--boost-donor-silver); }
.boost-donor-gold   { background: var(--boost-donor-gold); color: var(--boost-text-1); }
.boost-donor-platinum {
  background: linear-gradient(135deg, var(--boost-donor-platinum-start), var(--boost-donor-platinum-end));
  box-shadow: 0 0 6px rgba(var(--boost-donor-platinum-rgb), 0.35);
}
.boost-donor-diamond {
  background: linear-gradient(135deg, var(--boost-donor-diamond-start), var(--boost-donor-diamond-end));
  box-shadow: 0 0 6px rgba(var(--boost-donor-diamond-rgb), 0.35);
}
.boost-donor-legend {
  background: linear-gradient(135deg, var(--boost-donor-legend-start), var(--boost-donor-legend-end));
  animation: boost-legend-pulse 2s ease-in-out infinite;
}
@keyframes boost-legend-pulse {
  0%, 100% { box-shadow: 0 0 4px rgba(var(--boost-donor-legend-rgb), 0.4); }
  50%      { box-shadow: 0 0 12px rgba(var(--boost-donor-legend-rgb), 0.7); }
}

/* Badge inside gift animation label — slightly larger */
.boost-gift-label .boost-donor-badge {
  font-size: 0.85rem;
  padding: 2px 8px;
  margin-left: 8px;
}
.boost-gift-label .boost-donor-badge i { font-size: 0.75rem; }
.boost-gift-label .boost-donor-lvl { font-size: 0.8rem; }

/* Badge clickable cursor */
.boost-donor-badge { cursor: pointer; }

/* ---- Donor Levels Modal ---- */
.boost-donor-modal { text-align: center; position: relative; max-height: calc(100vh - 32px); overflow-y: auto; }
.boost-donor-modal .boost-modal-close {
  position: absolute;
  top: 12px;
  right: 12px;
}
.boost-donor-modal-header { margin-bottom: 20px; }
.boost-donor-modal-icon {
  font-size: 36px;
  color: var(--boost-accent);
  margin-bottom: 8px;
}
.boost-donor-modal-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 20px;
}
.boost-donor-modal-tier {
  background: var(--boost-content-bg-light);
  border: 1px solid var(--boost-border);
  border-radius: var(--boost-radius);
  padding: 12px 10px;
  text-align: left;
}
.boost-donor-modal-tier-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--boost-border);
}
.boost-donor-modal-tier-name {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--boost-text-1);
}
.boost-donor-modal-tier-levels {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.boost-donor-modal-level {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 4px 6px;
  border-radius: 6px;
  font-size: 0.75rem;
  color: var(--boost-text-2);
}
.boost-donor-modal-level-current {
  background: rgba(var(--boost-accent-rgb), 0.08);
  color: var(--boost-accent);
  font-weight: 600;
}
.boost-donor-modal-level-num {
  font-weight: 700;
  min-width: 18px;
}
.boost-donor-modal-level-threshold {
  font-size: 0.7rem;
  opacity: 0.8;
}
.boost-donor-modal-footer {
  margin-bottom: 16px;
}
.boost-donor-modal-current {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--boost-accent);
}
.boost-donor-modal-no-level {
  color: var(--boost-text-3);
  font-weight: 400;
}
.boost-donor-modal-how {
  background: var(--boost-content-bg-light);
  border-radius: var(--boost-radius);
  padding: 14px 16px;
  text-align: left;
}
.boost-donor-modal-how h4 {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--boost-text-1);
  margin-bottom: 6px;
}
.boost-donor-modal-how h4 i {
  color: var(--boost-accent);
}
.boost-donor-modal-how p {
  font-size: 0.8rem;
  color: var(--boost-text-2);
  line-height: 1.5;
  margin: 0;
}
@media (max-width: 768px) {
  .boost-donor-modal-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ---- Top Fans ---- */
.boost-top-fans {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-top: 12px;
  flex-wrap: wrap;
}
.boost-top-fan {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  background: var(--boost-content-bg-light);
  border: 1px solid var(--boost-border);
  border-radius: var(--boost-radius);
  font-size: 0.82rem;
  text-decoration: none;
  color: inherit;
  transition: background 0.15s;
}
.boost-top-fan:hover { background: var(--boost-content-bg-dark); }
.boost-top-fan-inline { display: inline-flex; padding: 4px 8px; }
.boost-top-fan-rank {
  font-size: 1.1rem;
  line-height: 1;
}
.boost-top-fan-avatar {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  object-fit: cover;
  background: var(--boost-content-bg-dark);
}
.boost-top-fan-initials {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--boost-accent);
  color: var(--boost-white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.6rem;
  font-weight: 700;
}
.boost-top-fan-name {
  font-weight: 600;
  color: var(--boost-text-1);
}
.boost-top-fan-title {
  width: 100%;
  text-align: center;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--boost-text-2);
  margin: 0 0 4px;
}

/* ---- Input with price suffix ---- */
.boost-input-price-wrap {
  position: relative;
  display: flex;
  align-items: center;
}
.boost-input-price-wrap .boost-input {
  padding-right: 32px;
}
.boost-input-price-suffix {
  position: absolute;
  right: 10px;
  color: var(--boost-text-3);
  font-weight: 600;
  pointer-events: none;
}

/* ---- Earnings card ---- */
.boost-earn-summary {
  display: flex;
  gap: 16px;
  margin-bottom: 16px;
}
.boost-earn-stat {
  flex: 1;
  text-align: center;
  padding: 12px;
  background: var(--boost-content-bg-light);
  border-radius: var(--boost-radius);
}
.boost-earn-stat-value {
  display: block;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--boost-accent);
}
.boost-earn-stat-label {
  font-size: 0.8rem;
  color: var(--boost-text-3);
}
.boost-earn-breakdown {
  margin: 12px 0;
}
.boost-earn-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid var(--boost-border);
  font-size: 0.9rem;
}
.boost-earn-row:last-child {
  border-bottom: none;
}
.boost-earn-row i {
  margin-right: 6px;
  color: var(--boost-text-3);
}
.boost-earn-donor-link {
  color: var(--boost-accent);
  text-decoration: none;
  font-weight: 600;
}
.boost-earn-donor-link:hover { text-decoration: underline; }
.boost-earn-section-title {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--boost-text-2);
  margin: 16px 0 8px;
}
.boost-earn-transactions {
  max-height: 300px;
  overflow-y: auto;
}

/* ---- Payout section ---- */
.boost-payout-section {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 2px solid var(--boost-border);
}
.boost-payout-header {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--boost-text-2);
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.boost-payout-header i {
  color: var(--boost-accent);
}
.boost-payout-desc {
  font-size: 0.82rem;
  color: var(--boost-text-3);
  margin: 0 0 12px;
}
.boost-payout-progress-wrap {
  margin-bottom: 14px;
}
.boost-payout-progress-bar {
  height: 8px;
  background: var(--boost-content-bg-light);
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 4px;
}
.boost-payout-progress-fill {
  height: 100%;
  width: var(--payout-pct, 0%);
  background: var(--boost-accent);
  border-radius: 4px;
  transition: width 0.4s ease;
}
.boost-payout-progress-label {
  font-size: 0.78rem;
  color: var(--boost-text-3);
  font-weight: 600;
}
.boost-payout-section .boost-form-group {
  margin-bottom: 10px;
}
.boost-payout-section .boost-btn[disabled] {
  opacity: 0.5;
  cursor: not-allowed;
}
.boost-payout-hint {
  display: block;
  margin-top: 8px;
  font-size: 0.78rem;
  color: var(--boost-text-3);
}

/* ---- Earnings config section ---- */
.boost-earn-config {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 2px solid var(--boost-border);
}
.boost-earn-config-header {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--boost-text-2);
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.boost-earn-config-header i {
  color: var(--boost-accent);
}
.boost-earn-config .boost-toggle-row {
  margin-bottom: 12px;
}
.boost-earn-config .boost-form-group {
  margin-bottom: 14px;
}

/* ---- Storage bar ---- */
.boost-storage-bar {
  height: 24px;
  background: var(--boost-content-bg-light);
  border-radius: var(--boost-radius);
  position: relative;
  overflow: hidden;
  margin-bottom: 12px;
}
.boost-storage-bar-fill {
  height: 100%;
  background: var(--boost-accent);
  border-radius: var(--boost-radius);
  transition: width 0.3s ease;
  width: var(--bar-width, 0%);
}
.boost-storage-bar-fill.boost-storage-bar-warning {
  background: var(--boost-danger);
}
.boost-storage-bar-text {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--boost-text-1);
}

/* ---- Private toggle on photo grid (editor) ---- */
.boost-photo-private-toggle {
  position: absolute;
  bottom: 36px;
  right: 4px;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.5);
  border: none;
  border-radius: 50%;
  color: var(--boost-text-3);
  cursor: pointer;
  font-size: 0.75rem;
  transition: color 0.2s, background 0.2s;
  z-index: 2;
}
.boost-photo-private-toggle:hover {
  background: rgba(0, 0, 0, 0.7);
  color: var(--boost-white);
}
.boost-photo-private-toggle.active {
  color: var(--boost-accent);
  background: rgba(0, 0, 0, 0.7);
}

/* ---- Video badge (gallery items — both profile and editor) ---- */
.boost-creator-gallery-video-badge,
.boost-creator-edit-video-badge {
  position: absolute;
  bottom: 6px;
  left: 6px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  background: rgba(0, 0, 0, 0.7);
  color: var(--boost-white);
  font-size: 0.75rem;
  font-weight: 600;
  border-radius: var(--boost-radius-sm);
  z-index: 2;
  pointer-events: none;
}
.boost-creator-gallery-video-badge i,
.boost-creator-edit-video-badge i {
  font-size: 0.65rem;
}

/* ---- Gallery section titles (editor public/private separator) ---- */
.boost-gallery-section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--boost-text-2);
  margin: 16px 0 14px;
  padding: 0;
}
.boost-gallery-section-title i {
  font-size: 0.85rem;
}
.boost-gallery-section-title-accent {
  color: var(--boost-accent);
}

/* ---- Private Zone card (profile view) ---- */
.boost-private-zone-card {
  border-color: var(--boost-accent);
  background: linear-gradient(135deg, var(--boost-card-bg) 80%, rgba(var(--boost-accent-rgb), 0.06));
}
.boost-private-zone-card .boost-settings-card-header {
  border-bottom-color: rgba(var(--boost-accent-rgb), 0.18);
}
.boost-private-zone-card .boost-settings-card-header i {
  color: var(--boost-accent);
}

/* ---- Private Zone locked preview ---- */
.boost-private-zone-locked {
  position: relative;
}
.boost-creator-gallery-preview {
  pointer-events: none;
}
.boost-private-zone-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 24px 16px;
  gap: 8px;
}
.boost-private-zone-cta-icon {
  font-size: 2rem;
  color: var(--boost-accent);
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(var(--boost-accent-rgb), 0.15), rgba(var(--boost-accent-rgb), 0.05));
}
.boost-private-zone-cta h3 {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--boost-text-1);
  margin: 0;
}
.boost-private-zone-cta-count {
  font-size: 0.9rem;
  color: var(--boost-text-3);
  margin: 0;
}
.boost-private-zone-social-proof {
  font-size: 0.85rem;
  color: var(--boost-accent);
  font-weight: 600;
  margin: 4px 0 0;
  display: flex;
  align-items: center;
  gap: 6px;
}
/* Cross-sell: similar profiles after zone unlock */
.boost-cross-sell { margin-bottom: 0; }
.boost-cross-sell-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--boost-text-1);
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 12px;
}
.boost-cross-sell-title i { color: var(--boost-accent); }
.boost-cross-sell-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.boost-cross-sell-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  background: var(--boost-content-bg-light);
  border-radius: 12px;
  padding: 12px;
  transition: transform 0.2s;
}
.boost-cross-sell-card:hover { transform: translateY(-2px); }
.boost-cross-sell-card img {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  object-fit: cover;
  margin-bottom: 8px;
}
.boost-cross-sell-card-name {
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--boost-text-1);
}
.boost-cross-sell-card-headline {
  font-size: 0.8rem;
  color: var(--boost-text-3);
  text-align: center;
  margin-top: 2px;
}
.boost-private-zone-unlocked-msg {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 12px;
  color: var(--boost-success);
  font-weight: 600;
  font-size: 0.9rem;
}

/* ---- Anti-leak: private zone gallery + protected lightbox ----
   Best-effort prevention against casual copy/save. Images cannot be
   selected, dragged, or saved via context menu. Screenshots and DevTools
   are out of scope (would require full DRM). */
.boost-creator-gallery[data-zone="private"] img,
.boost-creator-gallery[data-zone="private"] video,
.boost-creator-lightbox.boost-lightbox-protected img,
.boost-creator-lightbox.boost-lightbox-protected video {
  user-select: none;
  -webkit-user-select: none;
  -webkit-user-drag: none;
  -webkit-touch-callout: none;
  pointer-events: auto;
}
.boost-creator-gallery[data-zone="private"] .boost-creator-gallery-item {
  -webkit-touch-callout: none;
}

/* Hide private content when printing the page. */
@media print {
  .boost-private-zone-card,
  .boost-creator-lightbox {
    display: none;
  }
}

/* ---- Lightbox video ---- */
#lightboxVideo {
  max-width: 90vw;
  max-height: 90vh;
  border-radius: var(--boost-radius);
  background: var(--boost-content-bg);
  height: 100%;
  object-fit: cover;
  border-radius: var(--boost-radius);
}

/* ---- Social circles (profile page) ---- */
.boost-creator-profile-social {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  text-decoration: none;
  transition: color 0.2s;
}
.boost-creator-profile-social i {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  font-size: 1.1rem;
  border: 1px solid var(--boost-border);
  background: var(--boost-content-bg-light);
  transition: color 0.2s, background 0.2s, border-color 0.2s;
}
.boost-creator-profile-social-label {
  font-size: 0.7rem;
  color: var(--boost-text-3);
  white-space: nowrap;
}
.boost-creator-profile-social-onlyfans i { color: var(--platform-onlyfans); }
.boost-creator-profile-social-fansly i { color: var(--platform-fansly); }
.boost-creator-profile-social-instagram i { color: var(--platform-instagram); }
.boost-creator-profile-social-twitter i { color: var(--platform-twitter); }
.boost-creator-profile-social-tiktok i { color: var(--platform-tiktok-alt); }
.boost-creator-profile-social-website i { color: var(--boost-accent); }
.boost-creator-profile-social-onlyfans:hover i { background: var(--platform-onlyfans); color: var(--boost-white); border-color: var(--platform-onlyfans); }
.boost-creator-profile-social-fansly:hover i { background: var(--platform-fansly); color: var(--boost-white); border-color: var(--platform-fansly); }
.boost-creator-profile-social-instagram:hover i { background: var(--platform-instagram); color: var(--boost-white); border-color: var(--platform-instagram); }
.boost-creator-profile-social-twitter:hover i { background: var(--platform-twitter); color: var(--boost-white); border-color: var(--platform-twitter); }
.boost-creator-profile-social-tiktok:hover i { background: var(--platform-tiktok-alt); color: var(--boost-white); border-color: var(--platform-tiktok-alt); }
.boost-creator-profile-social-website:hover i { background: var(--boost-accent); color: var(--boost-white); border-color: var(--boost-accent); }

/* Platform icon colors (reusable utility) */
.boost-icon-onlyfans { color: var(--platform-onlyfans); }
.boost-icon-fansly { color: var(--platform-fansly); }
.boost-icon-instagram { color: var(--platform-instagram); }
.boost-icon-twitter { color: var(--platform-twitter); }
.boost-icon-tiktok { color: var(--platform-tiktok-alt); }
.boost-icon-web { color: var(--boost-accent); }

/* Custom brand SVG icons (no FA equivalent) — renders via ::before like FA */
.boost-svg-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: -0.125em;
}
.boost-svg-icon::before {
  content: '';
  display: block;
  width: 1em;
  height: 1em;
  background-color: currentColor;
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
}
.boost-svg-icon-onlyfans::before {
  mask-image: url('../img/icon-onlyfans.svg');
  -webkit-mask-image: url('../img/icon-onlyfans.svg');
}
.boost-svg-icon-fansly::before {
  mask-image: url('../img/icon-fansly.svg');
  -webkit-mask-image: url('../img/icon-fansly.svg');
}

/* ---- Lightbox ---- */
.boost-creator-lightbox {
  position: fixed;
  inset: 0;
  z-index: 100010;
  background: rgba(0,0,0,0.97);
  display: none;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  opacity: 0;
  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.boost-creator-lightbox:not([hidden]) {
  display: flex;
}
.boost-creator-lightbox.boost-lightbox-visible,
.boost-creator-lightbox.active {
  opacity: 1;
}
.boost-creator-lightbox-media {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 92vw;
  max-height: 92vh;
}
.boost-creator-lightbox-backdrop {
  position: absolute;
  inset: 0;
  cursor: pointer;
}
.boost-creator-lightbox-content {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  max-width: 92vw;
  max-height: 96vh;
  z-index: 1;
}
.boost-creator-lightbox-content > .boost-creator-lightbox-close {
  position: absolute;
  top: 8px;
  right: 8px;
}
.boost-creator-lightbox img,
.boost-creator-lightbox video {
  display: block;
  max-width: 92vw;
  max-height: 82vh;
  object-fit: contain;
  border-radius: 10px;
  box-shadow: 0 8px 48px rgba(0,0,0,0.7);
  transform: scale(1);
  transition: opacity 0.25s ease, transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  user-select: none;
  -webkit-user-select: none;
}
.boost-creator-lightbox.boost-lightbox-entering img,
.boost-creator-lightbox.boost-lightbox-entering video {
  transform: scale(0.9);
  opacity: 0;
}
.boost-creator-lightbox .boost-lightbox-slide-left {
  animation: lbSlideLeft 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.boost-creator-lightbox .boost-lightbox-slide-right {
  animation: lbSlideRight 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
@keyframes lbSlideLeft {
  0% { opacity: 0; transform: translateX(50px); }
  100% { opacity: 1; transform: translateX(0); }
}
@keyframes lbSlideRight {
  0% { opacity: 0; transform: translateX(-50px); }
  100% { opacity: 1; transform: translateX(0); }
}
.boost-creator-lightbox-close {
  position: absolute;
  top: 8px;
  right: 8px;
  background: rgba(0,0,0,0.55);
  border: none;
  color: var(--boost-white);
  width: 34px;
  height: 34px;
  border-radius: 50%;
  font-size: 0.9rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0.85;
  transition: opacity 0.2s, background 0.2s, transform 0.2s;
  z-index: 2;
  -webkit-tap-highlight-color: transparent;
}
.boost-creator-lightbox-close:hover {
  opacity: 1;
  background: rgba(0,0,0,0.75);
  transform: scale(1.1);
}
.boost-creator-lightbox-prev,
.boost-creator-lightbox-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0,0,0,0.45);
  border: none;
  color: var(--boost-white);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font-size: 0.95rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.25s, background 0.2s, transform 0.2s;
  z-index: 2;
  -webkit-tap-highlight-color: transparent;
}
.boost-creator-lightbox-media:hover .boost-creator-lightbox-prev,
.boost-creator-lightbox-media:hover .boost-creator-lightbox-next {
  opacity: 0.85;
}
.boost-creator-lightbox-prev:hover,
.boost-creator-lightbox-next:hover {
  opacity: 1;
  background: rgba(0,0,0,0.65);
  transform: translateY(-50%) scale(1.1);
}
.boost-creator-lightbox-prev { left: 10px; }
.boost-creator-lightbox-next { right: 10px; }
.boost-creator-lightbox-counter {
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  color: var(--boost-white);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.04em;
  opacity: 0.7;
  pointer-events: none;
  font-variant-numeric: tabular-nums;
  background: rgba(0,0,0,0.5);
  padding: 4px 12px;
  border-radius: 12px;
  z-index: 2;
}ight {
  animation: lbSlideRight 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
@keyframes lbSlideLeft {
  0% { opacity: 0; transform: translateX(50px); }
  100% { opacity: 1; transform: translateX(0); }
}
@keyframes lbSlideRight {
  0% { opacity: 0; transform: translateX(-50px); }
  100% { opacity: 1; transform: translateX(0); }
}
.boost-creator-lightbox-close {
  position: absolute;
  top: 8px;
  right: 8px;
  background: rgba(0,0,0,0.55);
  border: none;
  color: var(--boost-white);
  width: 34px;
  height: 34px;
  border-radius: 50%;
  font-size: 0.9rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0.85;
  transition: opacity 0.2s, background 0.2s, transform 0.2s;
  z-index: 2;
  -webkit-tap-highlight-color: transparent;
}
.boost-creator-lightbox-close:hover {
  opacity: 1;
  background: rgba(0,0,0,0.75);
  transform: scale(1.1);
}
.boost-creator-lightbox-prev,
.boost-creator-lightbox-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0,0,0,0.45);
  border: none;
  color: var(--boost-white);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font-size: 0.95rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.25s, background 0.2s, transform 0.2s;
  z-index: 2;
  -webkit-tap-highlight-color: transparent;
}
.boost-creator-lightbox-media:hover .boost-creator-lightbox-prev,
.boost-creator-lightbox-media:hover .boost-creator-lightbox-next {
  opacity: 0.85;
}
.boost-creator-lightbox-prev:hover,
.boost-creator-lightbox-next:hover {
  opacity: 1;
  background: rgba(0,0,0,0.65);
  transform: translateY(-50%) scale(1.1);
}
.boost-creator-lightbox-prev { left: 10px; }
.boost-creator-lightbox-next { right: 10px; }
.boost-creator-lightbox-counter {
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  color: var(--boost-white);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.04em;
  opacity: 0.7;
  pointer-events: none;
  font-variant-numeric: tabular-nums;
  background: rgba(0,0,0,0.5);
  padding: 4px 12px;
  border-radius: 12px;
  z-index: 2;
}

/* ---- Editor: Photo grid ---- */
.boost-creator-edit-photos {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 12px;
  padding-top: 36px;
}
.boost-creator-edit-photo {
  position: relative;
  aspect-ratio: 1;
  border-radius: 12px;
  overflow: visible;
  background: var(--boost-form-bg);
  border: 2px solid transparent;
  cursor: grab;
  transition: opacity 0.2s, border-color 0.2s;
}
.boost-creator-edit-photo.dragging {
  opacity: 0.4;
}
.boost-creator-edit-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  border-radius: 10px;
}

.boost-creator-photo-main {
  border-color: var(--boost-donor-gold);
}

.boost-creator-photo-profile-badge {
  position: absolute;
  bottom: calc(100% + 4px);
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  background: var(--boost-info);
  color: var(--boost-white);
  font-size: 8px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 8px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 4px;
}

.boost-creator-photo-star {
  position: absolute;
  top: -10px;
  left: -10px;
  background: var(--boost-card-bg);
  color: var(--boost-text-3);
  border: 1px solid var(--boost-border);
  width: 28px;
  height: 28px;
  border-radius: 50%;
  font-size: 0.65rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}

.boost-creator-photo-star:hover {
  background: linear-gradient(135deg, var(--boost-donor-gold), var(--boost-donor-gold-end));
  color: var(--boost-content-bg);
  border-color: var(--boost-donor-gold);
}

.boost-creator-photo-cover {
  position: absolute;
  bottom: -10px;
  left: -10px;
  background: var(--boost-card-bg);
  color: var(--boost-text-3);
  border: 1px solid var(--boost-border);
  width: 28px;
  height: 28px;
  border-radius: 50%;
  font-size: 0.65rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}
.boost-creator-photo-cover:hover {
  background: var(--boost-accent);
  color: var(--boost-white);
  border-color: var(--boost-accent);
}

.boost-creator-photo-cover-badge {
  position: absolute;
  bottom: calc(100% + 4px);
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  background: var(--boost-accent);
  color: var(--boost-white);
  font-size: 8px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 8px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 4px;
}

.boost-creator-photo-profile-badge + .boost-creator-photo-cover-badge {
  bottom: calc(100% + 18px);
}

.boost-creator-photo-uploading {
  pointer-events: none;
  opacity: 0.5;
  position: relative;
}
.boost-creator-photo-uploading::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 28px;
  height: 28px;
  margin: -14px 0 0 -14px;
  border: 3px solid var(--boost-form-border);
  border-top-color: var(--boost-accent);
  border-radius: 50%;
  animation: boost-spin 0.8s linear infinite;
}
.boost-creator-photo-upload {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 2px dashed var(--boost-form-border);
  color: var(--boost-text-3);
  font-size: 0.85rem;
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s;
}
.boost-creator-photo-upload:hover {
  border-color: var(--boost-accent);
  color: var(--boost-accent);
}
.boost-creator-photo-upload i {
  font-size: 1.5rem;
}
.boost-creator-photo-delete {
  position: absolute;
  top: -10px;
  right: -10px;
  background: var(--boost-card-bg);
  color: var(--boost-danger);
  border: 1px solid var(--boost-border);
  width: 28px;
  height: 28px;
  border-radius: 50%;
  font-size: 0.65rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}
.boost-creator-photo-delete:hover {
  background: var(--boost-danger);
  color: var(--boost-white);
  border-color: var(--boost-danger);
}
.boost-creator-photo-status {
  position: absolute;
  bottom: 6px;
  left: 6px;
  font-size: 0.65rem;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 8px;
  text-transform: uppercase;
}
.boost-creator-photo-status-success {
  background: var(--boost-success-bg);
  color: var(--boost-success);
}
.boost-creator-photo-status-warning {
  background: var(--boost-warning-bg);
  color: var(--boost-warning);
}
.boost-creator-photo-status-error {
  background: var(--boost-danger-bg);
  color: var(--boost-danger);
}

/* ---- Editor: Actions sticky ---- */
.boost-creator-edit-actions {
  position: sticky;
  bottom: 0;
  padding: 16px 0;
  display: flex;
  justify-content: center;
  z-index: 10;
}
@media (max-width: 768px) {
  .boost-body .boost-creator-edit-actions {
    bottom: calc(60px + env(safe-area-inset-bottom, 0px));
  }
}

/* ---- Badges (reused) ---- */
.boost-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 10px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: capitalize;
}
.boost-badge-success   { background: var(--boost-success-bg); color: var(--boost-success); }
.boost-badge-warning   { background: var(--boost-warning-bg); color: var(--boost-warning); }
.boost-badge-error     { background: var(--boost-danger-bg);  color: var(--boost-danger); }
.boost-badge-info      { background: var(--boost-accent-glow); color: var(--boost-accent); }
.boost-badge-secondary { background: var(--boost-content-bg-light); color: var(--boost-text-3); }

/* Small utilities reused across tables */
.boost-text-end { text-align: right; }
.boost-fade-out { opacity: 0; transform: translateX(12px); transition: opacity 0.25s ease, transform 0.25s ease; }

/* Report reason cell (my-reports.php) */
.boost-report-reason-cell {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.boost-report-details-snippet {
  font-size: 0.75rem;
  color: var(--boost-text-3);
  font-style: italic;
}

/* ---- Input hint ---- */
.boost-input-hint {
  font-size: 0.78rem;
  color: var(--boost-text-3);
  margin-left: 6px;
  transition: color 0.2s ease;
}
.boost-input-hint.boost-text-success { color: var(--boost-success); }
.boost-input-hint.boost-text-danger { color: var(--boost-danger); }

/* ---- Messages layout ---- */
.boost-messages-layout {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: 0;
  height: calc(var(--boost-vvh, 100dvh) - var(--boost-topbar-h) - 64px - env(safe-area-inset-bottom, 0px));
  max-height: 800px;
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-border-soft);
  border-radius: var(--boost-radius);
  overflow: hidden;
  box-shadow:
    0 1px 2px rgba(var(--boost-dark-rgb), 0.04),
    0 10px 30px rgba(var(--boost-dark-rgb), 0.08);
}
.boost-messages-layout-tab {
  height: calc(var(--boost-vvh, 100dvh) - var(--boost-topbar-h) - 200px - env(safe-area-inset-bottom, 0px));
  max-height: 700px;
}
/* ── Sidebar wrapper: filters + list ─────────────────── */
.boost-messages-sidebar {
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--boost-card-border);
  min-height: 0;
  overflow: hidden;
}
.boost-messages-sidebar > .boost-messages-list {
  border-right: none;
  flex: 1 1 auto;
  min-height: 0;
}
/* ── Filter chips bar ────────────────────────────────── */
.boost-messages-filters {
  display: flex;
  gap: 8px;
  padding: 10px 12px;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  flex-shrink: 0;
  border-bottom: 1px solid var(--boost-card-border);
  background: var(--boost-popover-bg, #ffffff);
  -webkit-overflow-scrolling: touch;
}
.boost-messages-filters::-webkit-scrollbar { display: none; }
.boost-messages-filter-chip {
  flex-shrink: 0;
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid var(--boost-border);
  background: transparent;
  color: var(--boost-text-2);
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
  -webkit-tap-highlight-color: transparent;
}
.boost-messages-filter-chip:hover {
  background: var(--boost-content-bg-light);
  color: var(--boost-text-1);
}
.boost-messages-filter-chip.active {
  background: var(--boost-accent);
  border-color: var(--boost-accent);
  color: var(--boost-white);
}
.boost-messages-list {
  border-right: 1px solid var(--boost-card-border);
  overflow-y: auto;
}
.boost-messages-conv-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--boost-border-subtle);
  cursor: pointer;
  transition: background 0.18s ease, transform 0.15s ease;
  position: relative;
  -webkit-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}
.boost-messages-conv-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 10%;
  bottom: 10%;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: linear-gradient(180deg, var(--boost-accent), var(--boost-accent-end));
  opacity: 0;
  transition: opacity 0.2s ease;
}
.boost-messages-conv-item.active::before {
  opacity: 1;
}
/* ── Per-user conv state indicators ──────────────────── */
.boost-conv-pinned::before {
  content: "\f08d"; /* fa-thumbtack */
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  position: absolute;
  top: 6px;
  right: 8px;
  font-size: 0.7rem;
  color: var(--boost-accent);
  opacity: 0.85;
}
.boost-conv-muted .boost-messages-conv-name::after {
  content: "\f1f6"; /* fa-bell-slash */
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  margin-left: 6px;
  font-size: 0.72rem;
  color: var(--boost-text-3);
}
.boost-conv-archived {
  opacity: 0.75;
}
.boost-messages-conv-item:hover,
.boost-messages-conv-item.active {
  background: var(--boost-accent-glow);
}
.boost-messages-conv-unread {
  background: rgba(var(--boost-accent-rgb), 0.04);
}
.boost-messages-conv-avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  overflow: visible;
  background: var(--boost-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
}
.boost-messages-conv-avatar img,
.boost-messages-conv-avatar .boost-messages-conv-initials {
  border-radius: 50%;
}
.boost-messages-conv-online-dot {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--boost-text-3);
  border: 2px solid var(--boost-popover-bg);
  display: none;
}
.boost-messages-conv-online-dot.on {
  display: block;
  background: var(--boost-success);
  box-shadow: 0 0 0 0 rgba(var(--boost-success-rgb), 0.55);
  animation: boost-online-pulse 2.2s ease-out infinite;
}
@keyframes boost-online-pulse {
  0%   { box-shadow: 0 0 0 0   rgba(var(--boost-success-rgb), 0.55); }
  70%  { box-shadow: 0 0 0 8px rgba(var(--boost-success-rgb), 0);    }
  100% { box-shadow: 0 0 0 0   rgba(var(--boost-success-rgb), 0);    }
}
.boost-messages-conv-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.boost-messages-conv-initials {
  color: var(--boost-white);
  font-weight: 700;
  font-size: 0.85rem;
}
.boost-messages-conv-info {
  flex: 1;
  min-width: 0;
}
.boost-messages-conv-name {
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--boost-text-1);
  display: flex;
  align-items: center;
  gap: 8px;
}
.boost-messages-conv-profile-link {
  color: var(--boost-accent);
  text-decoration: none;
  font-weight: 600;
}
.boost-messages-conv-profile-link:hover {
  text-decoration: underline;
}
.boost-messages-conv-preview {
  font-size: 0.78rem;
  color: var(--boost-text-3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.boost-messages-conv-time {
  font-size: 0.72rem;
  color: var(--boost-text-3);
  white-space: nowrap;
  flex-shrink: 0;
}

/* ---- Messages: conversation ---- */
.boost-messages-conv {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
  position: relative; /* anchor for .boost-msg-scroll-bottom */
}
.boost-messages-conv-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 20px;
  border-bottom: 1px solid var(--boost-border-soft);
  font-weight: 600;
  color: var(--boost-text-1);
  min-width: 0;
  background: linear-gradient(180deg, var(--boost-popover-bg), var(--boost-card-bg));
  flex-shrink: 0;
}
.boost-messages-conv-header #convHeaderName,
.boost-messages-conv-header #seedConvHeaderName {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--boost-text-1);
  letter-spacing: -0.01em;
}
.boost-messages-conv-header #convHeaderName,
.boost-messages-conv-header #seedConvHeaderLink,
.boost-messages-conv-header #seedConvHeaderName {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.boost-messages-conv-header #seedConvHeaderLink { display: block; }
.boost-messages-header-avatar {
  width: 40px;
  height: 40px;
  font-size: 0.82rem;
  flex-shrink: 0;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(var(--boost-accent-rgb), 0.18);
}
.boost-messages-back {
  display: none;
  background: none;
  border: none;
  color: var(--boost-text-2);
  font-size: 1.1rem;
  cursor: pointer;
}
.boost-messages-conv-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 20px 20px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow-anchor: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(var(--boost-accent-rgb), 0.25) transparent;
  background:
    radial-gradient(1200px 500px at 50% -10%, rgba(var(--boost-accent-rgb), 0.07), transparent 60%),
    linear-gradient(180deg, var(--boost-content-bg-light), var(--boost-content-bg));
  /* Anchor for the floating reaction picker (reaction-mode emoji picker). */
  position: relative;
}
.boost-messages-conv-body::-webkit-scrollbar { width: 6px; }
.boost-messages-conv-body::-webkit-scrollbar-thumb {
  background: rgba(var(--boost-accent-rgb), 0.22);
  border-radius: 3px;
}
.boost-messages-conv-body::-webkit-scrollbar-thumb:hover {
  background: rgba(var(--boost-accent-rgb), 0.4);
}

/* ── Scroll-to-bottom floating button (messages + seed) ─────────────── */
.boost-msg-scroll-bottom {
  position: absolute;
  right: 18px;
  bottom: calc(var(--boost-reply-height, 72px) + 14px);
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--boost-popover-bg);
  border: 1px solid var(--boost-card-border);
  box-shadow: 0 6px 20px rgba(var(--boost-dark-rgb), 0.16);
  color: var(--boost-accent);
  font-size: 0.95rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s, background 0.15s;
  -webkit-tap-highlight-color: transparent;
}
.boost-msg-scroll-bottom.boost-msg-scroll-bottom--visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.boost-msg-scroll-bottom:hover {
  background: var(--boost-form-bg);
  transform: translateY(-2px);
}
.boost-msg-scroll-bottom:active {
  transform: translateY(0);
}
.boost-msg-scroll-bottom:focus-visible {
  outline: 2px solid var(--boost-accent);
  outline-offset: 2px;
}
.boost-msg-scroll-bottom-count {
  position: absolute;
  top: -5px;
  right: -5px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  background: var(--boost-danger);
  color: var(--boost-white);
  font-size: 10px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  box-shadow: 0 2px 6px rgba(var(--boost-danger-rgb), 0.35);
  border: 2px solid var(--boost-popover-bg);
}
@media (max-width: 480px) {
  .boost-msg-scroll-bottom {
    right: 12px;
    width: 38px;
    height: 38px;
    bottom: calc(var(--boost-reply-height, 64px) + 10px);
  }
}
@media (prefers-reduced-motion: reduce) {
  .boost-msg-scroll-bottom,
  .boost-msg-scroll-bottom.boost-msg-scroll-bottom--visible,
  .boost-msg-scroll-bottom:hover,
  .boost-msg-scroll-bottom:active {
    transition: opacity 0.1s, visibility 0.1s;
    transform: none;
  }
}

/* ── Drag & drop overlay for chat image attach ────────────── */
.boost-msg-drop-overlay {
  position: absolute;
  inset: 0;
  background: rgba(var(--boost-accent-rgb), 0.08);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  border: 3px dashed var(--boost-accent);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 20;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.18s ease, visibility 0.18s;
}
.boost-msg-drop-overlay.boost-msg-drop-overlay--visible {
  opacity: 1;
  visibility: visible;
}
.boost-msg-drop-overlay-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 24px 32px;
  background: var(--boost-popover-bg);
  border-radius: 16px;
  box-shadow: 0 10px 40px rgba(var(--boost-dark-rgb), 0.18);
  color: var(--boost-accent);
  font-weight: 700;
  font-size: 1rem;
  text-align: center;
  max-width: 80%;
}
.boost-msg-drop-overlay-inner i {
  font-size: 2.2rem;
}
@media (max-width: 480px) {
  .boost-msg-drop-overlay-inner {
    padding: 18px 22px;
    font-size: 0.9rem;
  }
  .boost-msg-drop-overlay-inner i {
    font-size: 1.8rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .boost-msg-drop-overlay {
    transition: opacity 0.1s, visibility 0.1s;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}

/* ---- Chat bubbles premium (scoped to .boost-messages-conv-body; no afecta tickets) ---- */
.boost-messages-conv-body .boost-msg {
  max-width: min(78%, 520px);
  padding: 10px 14px 8px;
  border-radius: 18px;
  position: relative;
  animation: boost-msg-in 0.32s var(--boost-t-smooth) both;
  box-shadow:
    0 1px 2px rgba(var(--boost-dark-rgb), 0.04),
    0 6px 18px rgba(var(--boost-dark-rgb), 0.06);
  overflow: visible;
}
.boost-messages-conv-body .boost-msg-user {
  align-self: flex-end;
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
  border: none;
  border-bottom-right-radius: 6px;
  color: var(--boost-white);
  box-shadow:
    0 2px 6px rgba(var(--boost-accent-rgb), 0.18),
    0 12px 28px rgba(var(--boost-accent-rgb), 0.18);
}
.boost-messages-conv-body .boost-msg-user .boost-msg-body,
.boost-messages-conv-body .boost-msg-user .boost-msg-text {
  color: var(--boost-white);
}
.boost-messages-conv-body .boost-msg-user .boost-msg-meta {
  color: rgba(var(--boost-white-rgb), 0.82);
}
.boost-messages-conv-body .boost-msg-user .boost-msg-meta strong {
  color: var(--boost-white);
}
.boost-messages-conv-body .boost-msg-user .boost-msg-checks {
  color: rgba(var(--boost-white-rgb), 0.68);
}
.boost-messages-conv-body .boost-msg-user .boost-msg-checks.boost-msg-read {
  color: var(--boost-white);
}
.boost-messages-conv-body .boost-msg-admin {
  align-self: flex-start;
  background: var(--boost-card-bg);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  backdrop-filter: blur(16px) saturate(140%);
  border: 1px solid var(--boost-border-soft);
  border-bottom-left-radius: 6px;
}
/* iMessage-style tails (::after) */
.boost-messages-conv-body .boost-msg-user::after {
  content: "";
  position: absolute;
  bottom: 0;
  right: -5px;
  width: 12px;
  height: 14px;
  background: var(--boost-accent-end);
  clip-path: polygon(0 0, 100% 100%, 0 100%);
}
.boost-messages-conv-body .boost-msg-admin::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: -5px;
  width: 12px;
  height: 14px;
  background: var(--boost-card-bg);
  border-left: 1px solid var(--boost-border-soft);
  border-bottom: 1px solid var(--boost-border-soft);
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}
/* Date separator (centered "Hoy / Ayer / fecha") */
.boost-messages-conv-body .boost-msg-date-sep {
  align-self: center;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--boost-text-3);
  background: rgba(var(--boost-dark-rgb), 0.05);
  padding: 4px 12px;
  border-radius: 999px;
  margin: 12px 0 4px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
/* Offline retry indicator (fetch fail) */
.boost-messages-conv-body .boost-msg-offline {
  align-self: center;
  font-size: 0.78rem;
  color: var(--boost-warning);
  background: var(--boost-warning-bg);
  border: 1px solid rgba(var(--boost-warning-light-rgb), 0.25);
  padding: 6px 14px;
  border-radius: 999px;
  margin-top: 8px;
}
/* Bubble entry animation */
@keyframes boost-msg-in {
  from { transform: translateY(6px) scale(0.96); opacity: 0; }
  to   { transform: translateY(0) scale(1);      opacity: 1; }
}
.boost-messages-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 24px;
  color: var(--boost-text-3);
  text-align: center;
  gap: 4px;
}
.boost-messages-empty i {
  font-size: 2.4rem;
  margin-bottom: 14px;
  color: var(--boost-accent);
  opacity: 0.55;
  background: rgba(var(--boost-accent-rgb), 0.1);
  width: 72px;
  height: 72px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 18px rgba(var(--boost-accent-rgb), 0.12);
}
.boost-messages-empty p {
  margin: 0;
  font-size: 0.88rem;
  color: var(--boost-text-2);
  font-weight: 500;
  line-height: 1.5;
}
/* ---- Messages: read checks ---- */
.boost-msg-checks {
  display: inline-block;
  font-size: 0.65rem;
  color: var(--boost-text-3);
  margin-left: 4px;
  letter-spacing: -2px;
  user-select: none;
  float: right;
  margin-top: 4px;
}
.boost-msg-read {
  color: var(--boost-accent);
}

/* ---- Messages: photo media ---- */
.boost-msg-media {
  margin: 6px 0;
  max-width: 260px;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 14px;
}
.boost-msg-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  cursor: pointer;
  display: block;
  transition: transform 0.25s var(--boost-t-smooth), box-shadow 0.25s ease;
  box-shadow: 0 2px 8px rgba(var(--boost-dark-rgb), 0.12);
}
.boost-msg-media img:hover {
  transform: scale(1.02);
  box-shadow: 0 6px 18px rgba(var(--boost-dark-rgb), 0.18);
}

/* ---- Messages: scroll anchor + history spinner ---- */
.boost-msg-scroll-anchor { overflow-anchor: auto; height: 0; flex-shrink: 0; }
.boost-msg-history-spinner { align-self: center; padding: 12px 0; flex-shrink: 0; }

/* ---- Messages: search bar ---- */
.boost-msg-search-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: var(--boost-popover-bg);
  border-bottom: 1px solid var(--boost-border-soft);
  flex-shrink: 0;
}
.boost-msg-search-input { flex: 1; min-width: 0; }
.boost-msg-search-nav {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.8rem;
  color: var(--boost-text-3);
  white-space: nowrap;
}
.boost-msg-search-highlight { background: rgba(var(--boost-warning-light-rgb), 0.15); border-radius: 2px; }
.boost-msg-search-active { background: rgba(var(--boost-warning-light-rgb), 0.30); box-shadow: 0 0 0 2px var(--boost-warning); border-radius: 2px; }
@media (max-width: 480px) {
  .boost-msg-search-bar { padding: 6px 10px; gap: 6px; }
}

/* ---- Messages: unified action button (attach, donate, videocall, send) ---- */
.boost-msg-action-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 50%;
  background: var(--boost-content-bg-light);
  color: var(--boost-text-2);
  font-size: 1rem;
  cursor: pointer;
  transition: background 0.2s, color 0.15s, transform 0.15s;
  flex-shrink: 0;
}
.boost-msg-action-btn:hover {
  background: var(--boost-accent);
  color: var(--boost-white);
  transform: scale(1.08);
}
.boost-msg-action-btn[disabled] {
  opacity: 0.3;
  pointer-events: none;
}
.boost-msg-send-btn {
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
  color: var(--boost-white);
  box-shadow: 0 2px 6px rgba(var(--boost-accent-rgb), 0.18);
}
.boost-msg-send-btn:hover {
  background: linear-gradient(135deg, var(--boost-accent-hover), var(--boost-accent-end-hover));
  color: var(--boost-white);
  box-shadow: 0 4px 12px rgba(var(--boost-accent-rgb), 0.28);
}
/* Glow when textarea has content (no JS needed, uses :has()) */
.boost-messages-conv .boost-conversation-reply:has(textarea:not(:placeholder-shown)) .boost-msg-send-btn {
  transform: scale(1.06);
  box-shadow:
    0 0 0 3px rgba(var(--boost-accent-rgb), 0.18),
    0 6px 18px rgba(var(--boost-accent-rgb), 0.35);
}
.boost-msg-attach-preview {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-top: 1px solid var(--boost-card-border);
  background: var(--boost-form-bg);
}
.boost-msg-attach-preview img {
  width: 48px;
  height: 48px;
  object-fit: cover;
  border-radius: 6px;
}
.boost-msg-attach-remove {
  background: none;
  border: none;
  color: var(--boost-danger);
  cursor: pointer;
  font-size: 0.9rem;
  padding: 4px 8px;
}

/* ---- Messages: typing dots ---- */
.boost-msg-typing {
  align-self: flex-start;
  padding: 10px 14px;
  background: var(--boost-card-bg);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  backdrop-filter: blur(16px) saturate(140%);
  border: 1px solid var(--boost-border-soft);
  border-radius: 18px;
  border-bottom-left-radius: 6px;
  animation: boost-msg-in 0.3s var(--boost-t-smooth) both;
}
.boost-typing-dots {
  display: flex;
  gap: 4px;
  align-items: center;
}
.boost-typing-dots span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--boost-accent);
  animation: boost-typing-bounce 1.3s infinite ease-in-out;
  opacity: 0.6;
}
.boost-typing-dots span:nth-child(2) { animation-delay: 0.18s; }
.boost-typing-dots span:nth-child(3) { animation-delay: 0.36s; }
@keyframes boost-typing-bounce {
  0%, 80%, 100% { transform: translateY(0) scale(0.85); opacity: 0.45; }
  40%           { transform: translateY(-4px) scale(1); opacity: 1;    }
}

/* ---- Inbox preview typing dots (sidebar) ---- */
.boost-inbox-typing {
  display: inline-flex;
  gap: 3px;
  align-items: center;
  vertical-align: middle;
}
.boost-inbox-typing span {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--boost-accent);
  animation: boost-typing-bounce 1.4s infinite;
}
.boost-inbox-typing span:nth-child(2) { animation-delay: 0.2s; }
.boost-inbox-typing span:nth-child(3) { animation-delay: 0.4s; }
.boost-messages-conv-preview.boost-inbox-typing-active {
  color: var(--boost-accent);
  font-style: italic;
}

/* ---- Gift message bubble ---- */
.boost-msg-gift {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 20px 24px;
  background: linear-gradient(135deg, var(--boost-content-bg-light), var(--boost-card-bg));
  border: 2px solid var(--boost-accent);
  border-radius: var(--boost-radius);
  text-align: center;
  box-shadow: 0 8px 32px rgba(var(--boost-accent-rgb), 0.35),
              0 0 0 1px rgba(var(--boost-accent-rgb), 0.15);
  position: relative;
}
/* Gift bubbles inside user-side bubbles: compensate the white text inherited */
.boost-messages-conv-body .boost-msg-user .boost-msg-gift-amount,
.boost-messages-conv-body .boost-msg-user .boost-msg-gift-label,
.boost-messages-conv-body .boost-msg-user .boost-msg-gift-note {
  color: var(--boost-white);
}
.boost-msg-gift-emoji {
  font-size: 3.5rem;
  width: 80px;
  height: 80px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 30% 30%, rgba(var(--boost-accent-rgb), 0.28), rgba(var(--boost-accent-rgb), 0.08));
  border-radius: 50%;
  border: 2px solid rgba(var(--boost-accent-rgb), 0.45);
  box-shadow: 0 4px 14px rgba(var(--boost-accent-rgb), 0.3);
  animation: boostGiftCenterPop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}
.boost-msg-gift-amount {
  font-size: 1.9rem;
  font-weight: 900;
  color: var(--boost-accent);
  letter-spacing: -0.02em;
  line-height: 1;
}
.boost-msg-gift-label {
  font-size: 0.75rem;
  color: var(--boost-text-3);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.boost-msg-gift-note {
  font-size: 0.95rem;
  color: var(--boost-text-1);
  font-style: italic;
  max-width: 260px;
  word-break: break-word;
  background: rgba(var(--boost-accent-rgb), 0.10);
  border-left: 3px solid var(--boost-accent);
  padding: 10px 14px 10px 26px;
  border-radius: 8px;
  margin-top: 4px;
  text-align: left;
  position: relative;
  line-height: 1.45;
}
.boost-msg-gift-note::before {
  content: '\201C';
  position: absolute;
  left: 8px;
  top: 4px;
  font-size: 1.8rem;
  color: var(--boost-accent);
  font-family: Georgia, serif;
  line-height: 1;
}
/* Shake highlight when a gift bubble first appears via polling */
.boost-msg-gift-new {
  animation: boostGiftBubbleShake 0.9s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
  transform-origin: center center;
}
@keyframes boostGiftBubbleShake {
  0%, 100% { transform: translate3d(0, 0, 0); }
  10%, 30%, 50%, 70%, 90% { transform: translate3d(-6px, 0, 0) rotate(-0.6deg); }
  20%, 40%, 60%, 80%      { transform: translate3d(6px, 0, 0) rotate(0.6deg); }
}
@media (prefers-reduced-motion: reduce) {
  .boost-msg-gift-new { animation: none; }
}

/* ---- Message reactions (emoji pills below any bubble) ---- */
/* Trigger button floats at the top-opposite corner of the bubble.
   Hidden by default on desktop, revealed on hover/focus-within. Always
   visible on touch so mobile users can discover the affordance. */
.boost-msg-react-trigger {
  position: absolute;
  top: -10px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 1px solid var(--boost-card-border);
  background: var(--boost-popover-bg);
  color: var(--boost-text-2);
  font-size: 0.78rem;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(var(--boost-dark-rgb), 0.12);
  opacity: 0;
  transition: opacity 0.15s ease, transform 0.15s ease, background 0.15s;
  z-index: 2;
  -webkit-tap-highlight-color: transparent;
}
.boost-messages-conv-body .boost-msg-user .boost-msg-react-trigger { left: -10px; }
.boost-messages-conv-body .boost-msg-admin .boost-msg-react-trigger { right: -10px; }
.boost-messages-conv-body .boost-msg:hover .boost-msg-react-trigger,
.boost-messages-conv-body .boost-msg:focus-within .boost-msg-react-trigger {
  opacity: 1;
}
.boost-msg-react-trigger:hover {
  background: var(--boost-accent);
  color: var(--boost-white);
  transform: scale(1.08);
}
/* Reaction pills container (flex wrap under message content) */
.boost-msg-reactions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 6px;
}
.boost-msg-reactions:empty { display: none; }
.boost-msg-reaction-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  background: rgba(var(--boost-dark-rgb), 0.05);
  border: 1px solid var(--boost-border-soft);
  border-radius: 999px;
  font-size: 0.78rem;
  line-height: 1.2;
  color: var(--boost-text-2);
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, transform 0.15s;
  -webkit-tap-highlight-color: transparent;
}
.boost-msg-reaction-chip:hover {
  background: rgba(var(--boost-accent-rgb), 0.10);
  transform: translateY(-1px);
}
.boost-msg-reaction-chip--mine {
  background: rgba(var(--boost-accent-rgb), 0.14);
  border-color: rgba(var(--boost-accent-rgb), 0.35);
  color: var(--boost-accent);
  font-weight: 600;
}
.boost-msg-reaction-emoji { font-size: 0.95rem; line-height: 1; }
.boost-msg-reaction-count { font-variant-numeric: tabular-nums; }
/* User-side bubbles invert the chip color contrast (accent background bubble) */
.boost-messages-conv-body .boost-msg-user .boost-msg-reaction-chip {
  background: rgba(var(--boost-white-rgb), 0.18);
  border-color: rgba(var(--boost-white-rgb), 0.30);
  color: var(--boost-white);
}
.boost-messages-conv-body .boost-msg-user .boost-msg-reaction-chip--mine {
  background: var(--boost-white);
  color: var(--boost-accent);
  border-color: var(--boost-white);
}
/* Floating picker in reaction mode: positioned absolutely inside convBody
   via JS (custom properties). Non-anchored state keeps it inline-flex so the
   compose-mode picker is unaffected. */
.boost-emoji-picker--reaction.boost-emoji-picker--anchored {
  position: absolute;
  top: var(--boost-emoji-picker-top, 0);
  left: var(--boost-emoji-picker-left, 0);
  display: block;
  z-index: 120;
}
.boost-emoji-picker--reaction.boost-emoji-picker--anchored .boost-emoji-dropdown {
  position: static;
  transform: none;
  bottom: auto;
  left: auto;
}
@media (pointer: coarse) {
  /* Touch devices: trigger always visible so users can discover reactions */
  .boost-msg-react-trigger { opacity: 0.85; }
}
@media (max-width: 480px) {
  .boost-msg-react-trigger {
    width: 24px;
    height: 24px;
    font-size: 0.72rem;
    top: -8px;
  }
  .boost-msg-reaction-chip { font-size: 0.72rem; padding: 2px 7px; }
}
@media (prefers-reduced-motion: reduce) {
  .boost-msg-react-trigger,
  .boost-msg-reaction-chip { transition: none; }
  .boost-msg-react-trigger:hover,
  .boost-msg-reaction-chip:hover { transform: none; }
}

/* ---- Messages: voice note player (bubble) ---- */
.boost-msg-voice {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 4px 0;
  min-width: 180px;
  max-width: 260px;
}
.boost-msg-voice-play {
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: none;
  background: var(--boost-accent);
  color: var(--boost-white);
  font-size: 0.85rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.2s;
  box-shadow: 0 2px 6px rgba(var(--boost-accent-rgb), 0.28);
  -webkit-tap-highlight-color: transparent;
}
.boost-msg-voice-play:hover {
  transform: scale(1.06);
  box-shadow: 0 4px 10px rgba(var(--boost-accent-rgb), 0.38);
}
.boost-msg-voice-play--playing {
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
}
.boost-msg-voice-track {
  flex: 1 1 auto;
  height: 6px;
  background: rgba(var(--boost-dark-rgb), 0.10);
  border-radius: 999px;
  overflow: hidden;
  position: relative;
}
.boost-msg-voice-track-bar {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg,
    rgba(var(--boost-accent-rgb), 0.5) 0%,
    rgba(var(--boost-accent-rgb), 0.5) 50%,
    rgba(var(--boost-dark-rgb), 0.10) 50%,
    rgba(var(--boost-dark-rgb), 0.10) 100%);
  background-size: 10px 100%;
  opacity: 0.75;
}
.boost-msg-voice-duration {
  font-size: 0.78rem;
  color: var(--boost-text-3);
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
}
/* Voice bubble inside user-side bubble (accent bg) → invert colors */
.boost-messages-conv-body .boost-msg-user .boost-msg-voice-play {
  background: var(--boost-white);
  color: var(--boost-accent);
  box-shadow: 0 2px 6px rgba(var(--boost-dark-rgb), 0.16);
}
.boost-messages-conv-body .boost-msg-user .boost-msg-voice-play:hover {
  background: var(--boost-white);
  box-shadow: 0 4px 10px rgba(var(--boost-dark-rgb), 0.22);
}
.boost-messages-conv-body .boost-msg-user .boost-msg-voice-track {
  background: rgba(var(--boost-white-rgb), 0.28);
}
.boost-messages-conv-body .boost-msg-user .boost-msg-voice-track-bar {
  background: linear-gradient(90deg,
    rgba(var(--boost-white-rgb), 0.85) 0%,
    rgba(var(--boost-white-rgb), 0.85) 50%,
    rgba(var(--boost-white-rgb), 0.25) 50%,
    rgba(var(--boost-white-rgb), 0.25) 100%);
  background-size: 10px 100%;
}
.boost-messages-conv-body .boost-msg-user .boost-msg-voice-duration {
  color: rgba(var(--boost-white-rgb), 0.82);
}

/* ---- Messages: voice recording overlay (replaces reply bar while recording) ---- */
.boost-msg-voice-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
  background: linear-gradient(180deg, var(--boost-card-bg), var(--boost-popover-bg));
  border-top: 1px solid var(--boost-border-soft);
  flex-shrink: 0;
  animation: boost-msg-in 0.25s var(--boost-t-smooth) both;
}
.boost-msg-voice-cancel {
  background: rgba(var(--boost-danger-rgb), 0.12);
  color: var(--boost-danger);
}
.boost-msg-voice-cancel:hover {
  background: var(--boost-danger);
  color: var(--boost-white);
}
.boost-msg-voice-rec-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--boost-danger);
  flex-shrink: 0;
  animation: boost-voice-pulse 1.2s ease-in-out infinite;
}
.boost-msg-voice-rec-label {
  font-size: 0.82rem;
  color: var(--boost-text-2);
  font-weight: 500;
  flex-shrink: 0;
}
.boost-msg-voice-rec-time {
  margin-left: auto;
  font-size: 0.88rem;
  color: var(--boost-text-1);
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  flex-shrink: 0;
}
.boost-msg-voice-stop {
  background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
  color: var(--boost-white);
  box-shadow: 0 2px 6px rgba(var(--boost-accent-rgb), 0.28);
}
.boost-msg-voice-stop:hover {
  background: linear-gradient(135deg, var(--boost-accent-hover), var(--boost-accent-end-hover));
  color: var(--boost-white);
  box-shadow: 0 4px 12px rgba(var(--boost-accent-rgb), 0.38);
}
@keyframes boost-voice-pulse {
  0%, 100% { transform: scale(1);   opacity: 0.9; }
  50%      { transform: scale(1.25); opacity: 0.55; }
}
@media (max-width: 480px) {
  .boost-msg-voice { min-width: 150px; max-width: 220px; gap: 8px; }
  .boost-msg-voice-play { width: 30px; height: 30px; font-size: 0.78rem; }
  .boost-msg-voice-duration { font-size: 0.72rem; }
  .boost-msg-voice-bar { gap: 8px; padding: 8px 10px; }
  .boost-msg-voice-rec-label { font-size: 0.76rem; }
  .boost-msg-voice-rec-time  { font-size: 0.82rem; }
}
@media (max-width: 360px) {
  .boost-msg-voice-rec-label { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .boost-msg-voice-rec-dot { animation: none; }
  .boost-msg-voice-bar     { animation: none; }
  .boost-msg-voice-play    { transition: none; }
  .boost-msg-voice-play:hover { transform: none; }
}

/* ---- Messages: online status ---- */
.boost-messages-status {
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--boost-text-3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex-shrink: 1;
  min-width: 0;
  max-width: 140px;
}
.boost-messages-online {
  color: var(--boost-success);
  font-weight: 600;
}
.boost-messages-online::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--boost-success);
  margin-right: 5px;
  vertical-align: middle;
  animation: boost-online-pulse 2.2s ease-out infinite;
}

/* ---- Conversation header actions dropdown ---- */
.boost-conv-actions {
  position: relative;
  margin-left: auto;
  flex-shrink: 0;
}
.boost-conv-actions-toggle {
  color: var(--boost-text-2);
  background: none;
  border: none;
  cursor: pointer;
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  border-radius: 50%;
  transition: background 0.15s, color 0.15s;
}
.boost-conv-actions-toggle:hover {
  background: var(--boost-content-bg-light);
  color: var(--boost-text-1);
}
.boost-conv-actions-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  min-width: 180px;
  background: var(--boost-popover-bg);
  border: 1px solid var(--boost-border);
  border-radius: 12px;
  box-shadow: var(--boost-popover-shadow);
  z-index: 60;
  padding: 6px 0;
  overflow: hidden;
}
.boost-conv-actions-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 8px 14px;
  background: none;
  border: none;
  color: var(--boost-text-1);
  font-size: 0.85rem;
  cursor: pointer;
  text-align: left;
  transition: background 0.15s;
}
.boost-conv-actions-item:hover {
  background: var(--boost-bg-3);
}
.boost-conv-actions-item .fa-ban {
  color: var(--boost-danger);
}
.boost-conv-actions-item .fa-flag {
  color: var(--boost-warning);
}

/* ---- Conversation context menu (long-press / right-click on list item) ---- */
.boost-conv-ctxmenu {
  position: fixed;
  left: var(--ctx-x, 0);
  top: var(--ctx-y, 0);
  min-width: 220px;
  background: var(--boost-popover-bg);
  border: 1px solid var(--boost-border);
  border-radius: 12px;
  box-shadow: var(--boost-popover-shadow);
  z-index: 10050;
  padding: 6px 0;
  overflow: hidden;
}
.boost-conv-ctxmenu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 14px;
  background: none;
  border: none;
  color: var(--boost-text-1);
  font-size: 0.9rem;
  cursor: pointer;
  text-align: left;
  transition: background 0.15s;
}
.boost-conv-ctxmenu-item:hover {
  background: var(--boost-bg-3);
}
.boost-conv-ctxmenu-item i {
  width: 16px;
  text-align: center;
  color: var(--boost-text-2);
}
.boost-conv-ctxmenu-item.boost-conv-ctxmenu-danger:hover i,
.boost-conv-ctxmenu-item.boost-conv-ctxmenu-danger:hover span {
  color: var(--boost-danger);
}
.boost-conv-ctxmenu-sep {
  height: 1px;
  background: var(--boost-border);
  margin: 4px 0;
}

/* ---- Mute duration picker modal ---- */
.boost-mute-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 16px 0;
}
.boost-mute-options .boost-btn {
  width: 100%;
  padding: 12px 8px;
  font-size: 0.88rem;
}

/* ---- Report modal: reasons ---- */
.boost-report-reasons {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.boost-report-reason {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border: 1px solid var(--boost-border);
  border-radius: 8px;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
  font-size: 0.88rem;
}
.boost-report-reason:hover {
  background: var(--boost-bg-3);
}
.boost-report-reason input[type="radio"] {
  accent-color: var(--boost-primary);
}
.boost-report-reason input[type="radio"]:checked + span {
  font-weight: 600;
}

/* ---- Report "also block" checkbox ---- */
.boost-report-also-block {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  margin-top: 12px;
  border: var(--boost-border-w) solid var(--boost-border);
  border-radius: var(--boost-radius);
  background: var(--boost-content-bg-light);
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.boost-report-also-block:hover {
  border-color: var(--boost-accent);
  background: var(--boost-accent-glow);
}
.boost-report-also-block input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 2px 0 0;
  cursor: pointer;
  accent-color: var(--boost-accent);
  flex-shrink: 0;
}
.boost-report-also-block-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 0.875rem;
}
.boost-report-also-block-text strong {
  color: var(--boost-text-1);
}
.boost-report-also-block-text small {
  color: var(--boost-text-3);
  font-size: 0.75rem;
  line-height: 1.35;
}

/* ---- Profile card modal (click avatar in chat) ---- */
.boost-profile-card-trigger {
  background: var(--boost-accent);
  border: 0;
  padding: 0;
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.boost-profile-card-trigger:hover {
  transform: scale(1.06);
  box-shadow: 0 2px 10px rgba(var(--boost-accent-rgb), 0.35);
}
.boost-profile-card-trigger:focus-visible {
  outline: 2px solid var(--boost-accent);
  outline-offset: 2px;
}
.boost-profile-card-box {
  position: relative;
  max-width: 360px;
  padding: 28px 22px 20px;
  text-align: center;
}
.boost-profile-card-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: transparent;
  border: 0;
  color: var(--boost-text-3);
  cursor: pointer;
  font-size: 0.95rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease, color 0.15s ease;
}
.boost-profile-card-close:hover {
  background: var(--boost-content-bg-light);
  color: var(--boost-text-1);
}
.boost-profile-card-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  min-height: 180px;
  justify-content: center;
}
.boost-profile-card-avatar {
  position: relative;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: var(--boost-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 4px 18px rgba(var(--boost-accent-rgb), 0.25);
  margin-bottom: 4px;
}
.boost-profile-card-avatar img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}
.boost-profile-card-avatar .boost-messages-conv-initials {
  font-size: 2rem;
  color: var(--boost-white);
  font-weight: 700;
}
.boost-profile-card-online-dot {
  position: absolute;
  bottom: 4px;
  right: 4px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--boost-success);
  border: 3px solid var(--boost-content-bg);
}
.boost-profile-card-name {
  margin: 4px 0 0;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--boost-text-1);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  justify-content: center;
}
.boost-profile-card-verified {
  color: var(--boost-accent);
  font-size: 0.9rem;
}
.boost-profile-card-status-row {
  display: flex;
  justify-content: center;
}
.boost-profile-card-status {
  font-size: 0.78rem;
  color: var(--boost-text-3);
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.boost-profile-card-status-online {
  color: var(--boost-success);
  font-weight: 600;
}
.boost-profile-card-status-online i {
  font-size: 0.55rem;
}
.boost-profile-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: center;
  margin-top: 2px;
}
.boost-profile-card-meta span {
  font-size: 0.72rem;
  padding: 4px 10px;
  background: var(--boost-content-bg-light);
  color: var(--boost-text-2);
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.boost-profile-card-meta i {
  color: var(--boost-accent);
  font-size: 0.7rem;
}
.boost-profile-card-bio {
  margin: 8px 0 0;
  font-size: 0.82rem;
  color: var(--boost-text-2);
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.boost-profile-card-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--boost-card-border);
}
.boost-profile-card-actions .boost-btn {
  width: 100%;
  justify-content: center;
}
.boost-profile-card-actions .boost-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

/* ---- Conversation actions + report: responsive ---- */
@media (max-width: 768px) {
  .boost-conv-actions-menu {
    min-width: 170px;
  }
  .boost-report-reason {
    padding: 9px 12px;
  }
}
@media (max-width: 480px) {
  .boost-messages-conv-header {
    gap: 6px;
    padding: 8px 10px;
  }
  .boost-messages-status { max-width: 72px; font-size: 0.65rem; }
  .boost-conv-actions-menu {
    min-width: 170px;
    right: 0;
  }
  .boost-conv-actions-item {
    padding: 10px 14px;
    font-size: 0.88rem;
  }
  .boost-report-reason {
    padding: 10px 12px;
  }
  .boost-profile-card-box { padding: 26px 16px 16px; max-width: 320px; }
  .boost-profile-card-avatar { width: 84px; height: 84px; }
  .boost-profile-card-avatar .boost-messages-conv-initials { font-size: 1.7rem; }
  .boost-profile-card-name { font-size: 1.05rem; }
  .boost-profile-card-bio { font-size: 0.78rem; }
}

/* ---- Nav badge ---- */
.boost-nav-badge:not(.boost-hidden) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  background: var(--boost-danger);
  color: var(--boost-white);
  font-size: 0.65rem;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 2px 6px rgba(var(--boost-danger-rgb), 0.32);
  animation: boost-badge-pop 0.35s var(--boost-t-smooth) both;
}
.boost-nav-badge.boost-nav-badge-warn:not(.boost-hidden) {
  background: var(--boost-warning-light);
  box-shadow: 0 2px 6px rgba(var(--boost-warning-light-rgb), 0.32);
}
@keyframes boost-badge-pop {
  0%   { transform: scale(0.4); opacity: 0; }
  60%  { transform: scale(1.15); opacity: 1; }
  100% { transform: scale(1);    opacity: 1; }
}

/* ---- Notification panel ---- */
.boost-notif-panel {
  position: fixed;
  z-index: 10000;
  width: min(340px, calc(100vw - 16px));
  max-height: min(420px, calc(100vh - 16px));
  background: var(--boost-white);
  border: 1px solid var(--boost-card-border);
  border-radius: var(--boost-radius);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.boost-notif-panel[hidden] { display: none; }
.boost-notif-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid var(--boost-border);
}
.boost-notif-header h4 {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--boost-text-1);
}
.boost-notif-mark-read {
  font-size: 0.72rem;
  color: var(--boost-accent);
  background: none;
  border: none;
  cursor: pointer;
  font-weight: 600;
}
.boost-notif-mark-read:hover { text-decoration: underline; }
.boost-notif-list {
  overflow-y: auto;
  flex: 1;
}
.boost-notif-item {
  display: flex;
  gap: 10px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--boost-border);
  transition: background 0.15s;
  cursor: pointer;
}
.boost-notif-item:hover { background: var(--boost-content-bg-light); }
.boost-notif-sender { font-weight: 600; color: var(--boost-text-1); }
.boost-notif-amount { font-weight: 700; color: var(--boost-accent); }
.boost-notif-item:last-child { border-bottom: none; }
.boost-notif-item.boost-notif-unread {
  background: color-mix(in srgb, var(--boost-accent) 6%, transparent);
  border-left: 3px solid var(--boost-accent);
}
.boost-notif-item.boost-notif-unread:hover {
  background: color-mix(in srgb, var(--boost-accent) 12%, transparent);
}
.boost-notif-icon {
  font-size: 1.3rem;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 2px;
}
.boost-notif-avatar {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  margin-top: 2px;
  background: var(--boost-content-bg-dark);
}
.boost-notif-item .boost-donor-badge {
  cursor: default;
  pointer-events: none;
}
.boost-notif-content {
  flex: 1;
  min-width: 0;
}
.boost-notif-title {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--boost-text-1);
  line-height: 1.3;
}
.boost-notif-body {
  font-size: 0.72rem;
  color: var(--boost-text-3);
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.boost-notif-time {
  font-size: 0.65rem;
  color: var(--boost-text-3);
  margin-top: 2px;
}
.boost-notif-empty {
  padding: 32px 16px;
  text-align: center;
  color: var(--boost-text-3);
  font-size: 0.85rem;
}

/* ---- Admin: photo moderation — grouped by user ---- */
.boost-creator-admin-user-group {
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-card-border);
  border-radius: 12px;
  overflow: hidden;
}
.boost-creator-admin-user-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--boost-card-border);
  flex-wrap: wrap;
}
.boost-creator-admin-user-info {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  min-width: 0;
}
.boost-creator-admin-user-info strong {
  font-size: 0.95rem;
}
.boost-creator-admin-photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 12px;
  padding: 16px;
}
.boost-creator-admin-photo-card {
  display: flex;
  flex-direction: column;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--boost-card-border);
  background: var(--boost-bg);
}
.boost-creator-admin-photo-img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  display: block;
}
.boost-creator-admin-photo-meta {
  padding: 6px 8px 0;
}
.boost-creator-admin-photo-meta .boost-badge {
  font-size: 0.65rem;
}
.boost-creator-admin-photo-card .boost-creator-admin-photo-actions {
  padding: 6px 8px 8px;
}
.boost-creator-admin-photo-actions {
  display: flex;
  gap: 6px;
}

/* ─── Videocall Button in Profile ───────────────────────────── */
.boost-btn.boost-btn-videocall {
  background: linear-gradient(135deg, var(--violet), var(--violet-dark));
  color: var(--boost-white);
  border-color: transparent;
}
.boost-btn.boost-btn-videocall:hover {
  background: linear-gradient(135deg, var(--violet-light), var(--violet));
  transform: translateY(-1px);
}
.boost-btn.boost-btn-videocall:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
}
.boost-btn-videocall .boost-btn-price {
  font-weight: 400;
  font-size: 0.8rem;
  opacity: 0.85;
}

/* ─── Availability Dot ──────────────────────────────────────── */
.boost-availability-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
  margin-right: 4px;
}
.boost-availability-dot--online {
  background: var(--boost-success);
  box-shadow: 0 0 4px var(--boost-success);
}
.boost-availability-dot--offline {
  background: var(--boost-text-3);
}
.boost-availability-status {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.8rem;
  color: var(--boost-text-3);
}
.boost-availability-status.online {
  color: var(--boost-success);
}

/* ─── Sidebar Availability Toggle ───────────────────────────── */
.boost-nav-availability {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 20px;
  font-size: 0.8rem;
  color: var(--boost-text-3);
}
.boost-nav-availability-label {
  flex: 1;
}

/* ─── Call Confirm Modal ────────────────────────────────────── */
.boost-call-confirm-info {
  font-size: 0.9rem;
  color: var(--boost-text-3);
  line-height: 1.5;
  margin: 12px 0 16px;
}
.boost-call-confirm-deposit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  background: var(--boost-bg);
  border-radius: 8px;
  font-size: 0.85rem;
  margin-bottom: 12px;
}
.boost-call-confirm-deposit span {
  font-weight: 600;
  color: var(--boost-accent);
}

/* ─── Incoming Call Overlay (used by boost_layout.php) ───────── */
.boost-incoming-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  background: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  animation: boostFadeIn 0.3s ease;
}
.boost-incoming-avatar {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid var(--boost-accent);
  animation: boostIncomingPulse 1.5s ease-in-out infinite;
}
.boost-incoming-avatar-initials {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: var(--boost-accent);
  color: var(--boost-white);
  font-size: 2rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: boostIncomingPulse 1.5s ease-in-out infinite;
}
@keyframes boostIncomingPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(var(--boost-accent-rgb), 0.4); }
  50% { box-shadow: 0 0 0 20px rgba(var(--boost-accent-rgb), 0); }
}
.boost-incoming-name {
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--boost-white);
}
.boost-incoming-label {
  font-size: 0.95rem;
  color: var(--boost-text-3);
}
.boost-incoming-price {
  font-size: 0.85rem;
  color: var(--boost-accent);
  font-weight: 500;
}
.boost-incoming-actions {
  display: flex;
  gap: 24px;
  margin-top: 16px;
}
.boost-incoming-btn {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  color: var(--boost-white);
  transition: transform 0.15s;
}
.boost-incoming-btn:hover {
  transform: scale(1.08);
}
.boost-incoming-btn--accept {
  background: var(--boost-success);
}
.boost-incoming-btn--reject {
  background: var(--boost-danger);
}
.boost-incoming-countdown {
  font-size: 0.8rem;
  color: var(--boost-text-3);
  margin-top: 8px;
}
@media (max-width: 768px) {
  .boost-incoming-avatar,
  .boost-incoming-avatar-initials {
    width: 80px;
    height: 80px;
  }
  .boost-incoming-btn {
    width: 56px;
    height: 56px;
    font-size: 1.2rem;
  }
}

@media (max-width: 768px) {
  .boost-creator-admin-user-header {
    padding: 12px;
  }
  .boost-creator-admin-photo-grid {
    gap: 10px;
    padding: 12px;
  }
}
@media (max-width: 480px) {
  .boost-creator-admin-user-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  .boost-creator-admin-photo-grid {
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    gap: 8px;
    padding: 10px;
  }
}
.boost-admin-profile-thumb {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
}
.boost-admin-profile-thumb-placeholder {
  font-size: 36px;
  color: var(--boost-text-3);
  opacity: 0.4;
}
.boost-admin-actions-group {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
}
.boost-admin-search-bar {
  margin-bottom: 16px;
}
.boost-admin-search-bar .boost-input-icon {
  max-width: 400px;
}
.boost-admin-empty-row td {
  text-align: center;
  color: var(--boost-text-3);
  padding: 32px 16px;
}

/* ---- Admin: tabs ---- */
.boost-admin-tabs {
  display: flex;
  gap: 4px;
  margin-bottom: 24px;
  border-bottom: 2px solid var(--boost-card-border);
  padding-bottom: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.boost-admin-tabs::-webkit-scrollbar { display: none; }
.boost-admin-tab {
  padding: 10px 20px;
  border: none;
  background: none;
  color: var(--boost-text-3);
  font-weight: 600;
  font-size: 0.9rem;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: color 0.2s, border-color 0.2s;
  white-space: nowrap;
  flex-shrink: 0;
}
.boost-admin-tab:hover { color: var(--boost-text-1); }
.boost-admin-tab.active {
  color: var(--boost-accent);
  border-bottom-color: var(--boost-accent);
}
.boost-admin-tab-content { display: none; }
.boost-admin-tab-content.active { display: block; }

/* ---- Admin reports: user chip + expandable details + conv viewer ---- */
.boost-report-user {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.boost-report-user-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--boost-card-bg-2);
  display: flex;
  align-items: center;
  justify-content: center;
}
.boost-report-user-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.boost-report-user-initials {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--boost-text-2);
  letter-spacing: 0.5px;
}
.boost-report-user-info {
  min-width: 0;
  overflow: hidden;
}
.boost-report-user-name {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--boost-text-1);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.boost-report-user-email {
  font-size: 0.75rem;
  color: var(--boost-text-3);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.boost-admin-report-toggle {
  background: none;
  border: none;
  color: var(--boost-accent);
  cursor: pointer;
  font-weight: 600;
  font-size: 0.85rem;
  padding: 4px 6px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: background 0.15s;
}
.boost-admin-report-toggle:hover {
  background: var(--boost-accent-glow);
}
.boost-admin-report-toggle i {
  font-size: 0.75rem;
  transition: transform 0.2s;
}

.boost-admin-report-details td {
  background: var(--boost-card-bg-2);
  padding: 16px 20px;
}
.boost-admin-report-details-wrap {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.boost-admin-report-details-label {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--boost-text-3);
  letter-spacing: 0.6px;
}
.boost-admin-report-details-text {
  font-size: 0.9rem;
  color: var(--boost-text-1);
  line-height: 1.5;
  white-space: normal;
  word-break: break-word;
}
.boost-admin-report-details-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.boost-admin-report-processed {
  border-top: 1px solid var(--boost-card-border);
  padding-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.boost-admin-report-processed-meta {
  font-size: 0.78rem;
  color: var(--boost-text-3);
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.boost-admin-report-processed-meta i {
  color: var(--boost-accent);
}
.boost-admin-report-processed-note {
  font-size: 0.85rem;
  color: var(--boost-text-2);
  padding: 10px 12px;
  background: var(--boost-card-bg-1);
  border-left: 3px solid var(--boost-warning);
  border-radius: 6px;
  line-height: 1.5;
}

/* Conversation viewer modal (admin, read-only) */
.boost-admin-conv-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  margin-bottom: 12px;
  border-bottom: 1px solid var(--boost-card-border);
  flex-wrap: wrap;
}
.boost-admin-conv-peer {
  flex: 1;
  min-width: 0;
}
.boost-admin-conv-peer-arrow {
  color: var(--boost-text-3);
  font-size: 1.1rem;
  flex-shrink: 0;
}
.boost-admin-conv-body {
  max-height: 60vh;
  overflow-y: auto;
  padding: 8px 4px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.boost-admin-conv-body .boost-spinner {
  margin: 32px auto;
}
.boost-admin-conv-empty {
  text-align: center;
  padding: 32px 16px;
}
.boost-admin-conv-msg {
  max-width: 80%;
  padding: 8px 12px;
  border-radius: 12px;
  background: var(--boost-card-bg-2);
  color: var(--boost-text-1);
  font-size: 0.88rem;
  display: flex;
  flex-direction: column;
  gap: 4px;
  word-break: break-word;
}
.boost-admin-conv-msg-left {
  align-self: flex-start;
  border-bottom-left-radius: 4px;
}
.boost-admin-conv-msg-right {
  align-self: flex-end;
  border-bottom-right-radius: 4px;
  background: var(--boost-accent-glow);
}
.boost-admin-conv-msg-gift {
  background: var(--boost-warning-bg);
  color: var(--boost-warning);
}
.boost-admin-conv-msg-text {
  line-height: 1.4;
  white-space: pre-wrap;
}
.boost-admin-conv-msg-time {
  font-size: 0.7rem;
  color: var(--boost-text-3);
  align-self: flex-end;
}
.boost-admin-conv-msg-media img {
  max-width: 240px;
  max-height: 240px;
  border-radius: 8px;
  display: block;
}
.boost-admin-conv-msg-donation {
  font-weight: 700;
  font-size: 0.95rem;
}

@media (max-width: 768px) {
  .boost-admin-conv-msg { max-width: 92%; }
  .boost-admin-conv-body { max-height: 55vh; }
  .boost-report-user-avatar { width: 32px; height: 32px; }
}
@media (max-width: 480px) {
  .boost-admin-conv-header { gap: 8px; }
  .boost-admin-conv-peer-arrow { display: none; }
  .boost-admin-report-details td { padding: 12px 14px; }
  .boost-report-user-name { font-size: 0.82rem; }
  .boost-report-user-email { font-size: 0.72rem; }
}

/* ---- Toggle small (admin tables) ---- */
.boost-toggle-sm { transform: scale(0.75); }

/* ---- Admin: seed messaging hub ---- */
.boost-admin-seed-filter {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  margin-bottom: 16px;
}
.boost-admin-seed-filter label {
  font-weight: 600;
  color: var(--boost-text-2);
  font-size: 0.85rem;
  white-space: nowrap;
}
.boost-admin-seed-filter select {
  max-width: 280px;
}
.boost-admin-seed-count {
  font-size: 0.8rem;
  color: var(--boost-text-3);
}
.boost-admin-seed-label {
  font-size: 0.72rem;
  color: var(--boost-accent);
  font-weight: 500;
  margin-top: 2px;
}
.boost-admin-seed-badge {
  font-size: 0.78rem;
  color: var(--boost-accent);
  background: var(--boost-accent-glow);
  padding: 4px 10px;
  border-radius: 20px;
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  flex-shrink: 0;
}
@media (max-width: 768px) {
  .boost-admin-seed-badge {
    font-size: 0.7rem;
    padding: 3px 8px;
  }
  .boost-admin-seed-filter {
    flex-wrap: wrap;
  }
  .boost-admin-seed-filter select {
    max-width: 100%;
    flex: 1;
  }
}
@media (max-width: 480px) {
  .boost-admin-seed-filter {
    gap: 8px;
  }
  .boost-admin-seed-filter select {
    min-width: 0;
    font-size: 0.85rem;
  }
  .boost-admin-seed-filter label {
    width: 100%;
  }
}

/* ============================================================================
   CREATOR DIRECTORY — RESPONSIVE
   ============================================================================ */

@media (max-width: 768px) {
  .boost-directory-hero { padding: 16px 16px 16px; }
  .boost-directory-hero-title { font-size: 1.5rem; margin-bottom: 6px; }
  .boost-directory-hero-stats { font-size: 0.8rem; gap: 12px; margin-top: 8px; }
  .boost-directory-search-wrap.expanded { max-width: none; }
  .boost-directory-grid {
    grid-template-columns: repeat(auto-fill, minmax(145px, 1fr));
    gap: 10px;
    padding: 0 10px;
  }
  .boost-directory-map-wrap {
    margin: 0 10px;
    width: calc(100% - 20px);
    height: 60vh;
    min-height: 300px;
  }
  .boost-directory-filters { padding: 0 12px 10px; margin-bottom: 6px; }
  .boost-directory-filter-panel {
    min-width: auto;
  }
  body > .boost-directory-filter-panel.boost-hidden {
    display: flex;
  }
  body > .boost-directory-filter-panel {
    position: fixed;
    top: 0;
    bottom: calc(52px + env(safe-area-inset-bottom, 0px));
    left: 0;
    right: 0;
    z-index: 500;
    max-height: none;
    overflow-y: auto;
    overscroll-behavior: contain;
    border-radius: 0 0 16px 16px;
    padding: 0;
    border: none;
    background: rgba(var(--boost-content-bg-rgb), 0.92);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    box-shadow: none;
    display: flex;
    flex-direction: column;
    transform: translateY(100%);
    opacity: 0;
    visibility: hidden;
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s ease, visibility 0s 0.3s;
    pointer-events: none;
  }
  body > .boost-directory-filter-panel:not(.boost-hidden) {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s ease, visibility 0s 0s;
  }
  /* Filter header — sticky top */
  body > .boost-directory-filter-panel .boost-filter-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    position: sticky;
    top: 0;
    z-index: 1;
    background: inherit;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-bottom: 1px solid rgba(var(--boost-accent-rgb), 0.08);
  }
  .boost-filter-header-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--boost-text-1);
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .boost-filter-header .boost-directory-filter-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
    color: var(--boost-white);
    font-size: 0.7rem;
    font-weight: 700;
    padding: 0 5px;
  }
  .boost-filter-header-actions {
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .boost-filter-close,
  .boost-filter-toggle-all,
  .boost-filter-reset {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: none;
    background: var(--boost-bg-muted);
    color: var(--boost-text-2);
    font-size: 1rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s, color 0.2s;
    -webkit-tap-highlight-color: transparent;
  }
  .boost-filter-close:hover,
  .boost-filter-toggle-all:hover,
  .boost-filter-reset:hover:not(:disabled) { background: var(--boost-bg-subtle); color: var(--boost-text-1); }
  /* Panel rows — card style on mobile */
  body > .boost-directory-filter-panel .boost-directory-filter-row {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    margin: 0 16px;
    padding: 0;
    background: var(--boost-card-bg);
    border-radius: var(--boost-radius-sm);
    border: 1px solid rgba(var(--boost-accent-rgb), 0.06);
    margin-bottom: 8px;
  }
  body > .boost-directory-filter-panel .boost-directory-filter-row:first-of-type {
    margin-top: 16px;
  }
  body > .boost-directory-filter-panel .boost-directory-filter-row:not(:last-child) {
    border-bottom: 1px solid rgba(var(--boost-accent-rgb), 0.06);
  }
  body > .boost-directory-filter-panel .boost-directory-filter-label {
    min-width: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 14px 16px;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    font-size: 0.85rem;
  }
  .boost-filter-chevron {
    display: inline-block;
    font-size: 0.65rem;
    color: var(--boost-text-3);
    transition: transform 0.25s ease;
    margin-left: auto;
  }
  .boost-directory-filter-row.expanded .boost-filter-chevron {
    transform: rotate(180deg);
  }
  /* Active value in collapsed row */
  body > .boost-directory-filter-panel .boost-filter-active-value {
    display: inline;
    font-size: 0.75rem;
    font-weight: 400;
    color: var(--boost-accent);
    margin-left: auto;
    margin-right: 8px;
    max-width: 140px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-transform: none;
    letter-spacing: 0;
  }
  .boost-directory-filter-row.expanded .boost-filter-active-value {
    display: none;
  }
  /* Accordion collapse */
  body > .boost-directory-filter-panel .boost-directory-filter-row > .boost-directory-filters {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, padding 0.3s ease;
    padding: 0 16px;
  }
  body > .boost-directory-filter-panel .boost-directory-filter-row.expanded > .boost-directory-filters {
    max-height: 300px;
    padding: 0 16px 12px;
  }
  /* Apply button — sticky bottom */
  body > .boost-directory-filter-panel .boost-filter-apply {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin: auto 16px 0;
    padding: 14px;
    border-radius: var(--boost-radius-sm);
    border: none;
    background: linear-gradient(135deg, var(--boost-accent), var(--boost-accent-end));
    color: var(--boost-white);
    font-size: 0.95rem;
    font-weight: 700;
    cursor: pointer;
    position: sticky;
    bottom: 0;
    z-index: 1;
    margin-bottom: 16px;
    -webkit-tap-highlight-color: transparent;
    transition: opacity 0.2s;
  }
  .boost-filter-apply:active { opacity: 0.85; }
  .boost-directory-landing-title { font-size: 1.6rem; }
  .boost-directory-landing-subtitle { font-size: 0.95rem; }
  .boost-directory-landing-features { grid-template-columns: repeat(2, 1fr); }
  .boost-directory-landing-steps { grid-template-columns: 1fr; max-width: 400px; }
  .boost-directory-landing-hero { padding: 32px 16px 24px; }

  .boost-creator-profile-cover { height: 180px; }
  .boost-creator-profile-info { padding: 14px 16px 20px; }
  .boost-creator-profile-avatar { width: 80px; height: 80px; margin-top: -48px; }
  .boost-creator-profile-username { font-size: 1.1rem; }
  .boost-creator-profile-headline { font-size: 0.88rem; }
  .boost-creator-profile-top { gap: 12px; }
  .boost-creator-profile-header-right { gap: 4px; }
  .boost-creator-profile-meta { gap: 8px; font-size: 0.8rem; }
  .boost-creator-profile-stats { gap: 8px; }
  .boost-creator-profile-stats span { font-size: 0.75rem; }
  .boost-creator-profile-bio { font-size: 0.9rem; }
  .boost-creator-profile-socials { gap: 6px; }
  .boost-creator-profile-social i { width: 38px; height: 38px; font-size: 1rem; }
  .boost-creator-profile-icon-btn { width: 36px; height: 36px; font-size: 14px; }
  .boost-creator-profile-avail { font-size: 0.68rem; }
  .boost-creator-gallery {
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  }

  /* Lightbox */
  .boost-creator-lightbox img,
  .boost-creator-lightbox video { max-width: 96vw; max-height: 92vh; border-radius: 6px; box-shadow: 0 4px 20px rgba(0,0,0,0.5); }
  .boost-creator-lightbox-close { top: 6px; right: 6px; width: 32px; height: 32px; font-size: 0.85rem; opacity: 1; }
  .boost-creator-lightbox-counter { font-size: 11px; padding: 3px 10px; opacity: 0.8; }

  /* Photo editor badges */
  .boost-creator-photo-star,
  .boost-creator-photo-cover { width: 26px; height: 26px; }
  .boost-creator-badge-featured { width: 24px; height: 24px; font-size: 0.55rem; top: 8px; left: 8px; }
  .boost-creator-badge-new { font-size: 0.55rem; }
  .boost-creator-badge-new { font-size: 0.6rem; padding: 2px 6px; }
  .boost-creator-card-avatar { width: 44px; height: 44px; bottom: 8px; left: 8px; border-width: 2.5px; }
  .boost-creator-card-avatar-initials { font-size: 0.65rem; }
  .boost-creator-card-avatar-dot { width: 10px; height: 10px; }

  /* Referral responsive */
  .boost-referral-input-group { flex-direction: column; }
  .boost-referral-stats { gap: 8px; }
  .boost-referral-stat { min-width: 80px; }
  .boost-referral-stat-value { font-size: 18px; }
  .boost-ref-hub-hero .boost-referral-stat-value { font-size: 24px; }

  /* Referral hub responsive */
  .boost-ref-hub-steps {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .boost-ref-hub-steps::before {
    top: 0;
    bottom: 0;
    left: 18px;
    right: auto;
    width: 2px;
    height: auto;
  }
  .boost-ref-hub-step {
    flex-direction: row;
    align-items: flex-start;
    gap: 14px;
    padding: 12px 0;
  }
  .boost-ref-hub-step-body {
    align-items: flex-start;
    text-align: left;
  }
  .boost-ref-hub-hero h1 { font-size: 20px; }
  .boost-ref-hub-value-amount { font-size: 32px; }
  .boost-ref-hub-hero,
  .boost-ref-hub-cta { padding: 24px 16px; }
  .boost-ref-hub-table th,
  .boost-ref-hub-table td { padding: 6px 8px; font-size: 12px; }
  .boost-ref-progress-markers { flex-wrap: wrap; gap: 6px; }
  .boost-ref-progress-marker { font-size: 10px; padding: 6px 8px; }
  .boost-ref-hub-tip { flex: 0 0 calc((100% - 12px) / 2); }
  .boost-ref-hub-levels { grid-template-columns: repeat(2, 1fr); }
  .boost-ref-hub-progress { padding: 14px; }

  /* Invite landing responsive */
  .boost-invite-grid,
  .boost-invite-steps,
  .boost-invite-steps-4 { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .boost-invite-income-grid { grid-template-columns: 1fr; }
  .boost-invite-stats-grid { grid-template-columns: repeat(2, 1fr); }
  .boost-invite-title { font-size: 22px; }
  .boost-invite-subtitle { font-size: 14px; }
  .boost-invite-social-proof { flex-direction: column; gap: 8px; }
  .boost-invite-stat-number { font-size: 22px; }
  .boost-invite-income-range { font-size: 22px; }
  .boost-invite-hero-value-amount { font-size: 40px; }
  .boost-invite-trust { gap: 12px; }
  .boost-invite-grid-6 { grid-template-columns: repeat(2, 1fr); }
  .boost-onboard-content { flex-direction: column; align-items: flex-start; text-align: left; }
  .boost-onboard-actions { width: 100%; }

  /* Monetization responsive */
  .boost-donate-amounts { justify-content: center; }
  .boost-earn-summary { gap: 8px; }
  .boost-earn-stat { padding: 10px; }
  .boost-earn-stat-value { font-size: 1.1rem; }
  .boost-creator-profile-actions { flex-wrap: wrap; gap: 8px; }
  .boost-creator-gallery-lock i { font-size: 1.2rem; }
  .boost-creator-gallery-lock span { font-size: 0.8rem; }
  .boost-photo-private-toggle { width: 24px; height: 24px; font-size: 0.65rem; bottom: 32px; }
  .boost-private-zone-cta { padding: 16px 12px; }
  .boost-private-zone-cta-icon { font-size: 1.6rem; width: 44px; height: 44px; }
  .boost-cross-sell-grid { grid-template-columns: repeat(2, 1fr); }
  .boost-cross-sell-card img { width: 60px; height: 60px; }
  .boost-creator-gallery-video-badge,
  .boost-creator-edit-video-badge { font-size: 0.65rem; padding: 2px 6px; }
  #lightboxVideo { max-width: 95vw; }

  /* Messages: single column on mobile */
  .boost-messages-layout {
    grid-template-columns: 1fr;
    max-height: none;
    border-radius: 12px;
  }
  .boost-messages-list { border-right: none; }
  .boost-messages-list-hidden { display: none; }
  /* Hide the whole sidebar (filters + list) when the conv detail is open on mobile */
  .boost-messages-sidebar:has(> .boost-messages-list-hidden) { display: none; }
  .boost-messages-conv { display: none; }
  .boost-messages-conv-visible { display: flex; }
  .boost-messages-back { display: block; }
  .boost-msg-media { max-width: 70vw; }

  /* Messages header: compact on mobile to avoid ellipsis on action buttons */
  .boost-messages-conv-header {
    gap: 8px;
    padding: 10px 12px;
    position: sticky;
    top: 0;
    z-index: 1;
  }
  .boost-messages-status { max-width: 100px; font-size: 0.68rem; }
  .boost-conv-actions-toggle { width: 34px; height: 34px; }
}

@media (max-width: 480px) {
  .boost-directory-grid {
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: 8px;
    padding: 0 8px;
  }
  .boost-directory-map-wrap {
    margin: 0 8px;
    width: calc(100% - 16px);
    height: 55vh;
    min-height: 250px;
  }
  .boost-map-popup {
    min-width: 150px;
    max-width: 180px;
  }
  .boost-map-popup-thumb {
    height: 60px;
  }
  .boost-map-count-badge {
    font-size: 11px;
    padding: 4px 10px;
    bottom: 8px;
    left: 8px;
  }
  .boost-map-control {
    width: 32px;
    height: 32px;
    font-size: 14px;
  }
  .boost-directory-map-wrap .leaflet-control-zoom a {
    width: 32px;
    height: 32px;
    line-height: 32px;
    font-size: 14px;
  }
  .boost-creator-card-info { padding: 6px 8px 8px; }
  .boost-creator-card-name-text { font-size: 0.75rem; }
  .boost-creator-card-row2 { font-size: 0.7rem; }
  .boost-creator-card-row3 { gap: 6px; padding: 4px 8px 8px; }
  .boost-creator-card-row3 .boost-creator-profile-icon-btn { width: 30px; height: 30px; font-size: 12px; }
  .boost-creator-card-avatar { width: 40px; height: 40px; }
  .boost-creator-card-overlay-stat { font-size: 0.6rem; padding: 2px 6px; }
  .boost-creator-card-flag { font-size: 0.85rem; padding: 2px 5px; }
  .boost-directory-landing-features { grid-template-columns: 1fr; }
  .boost-directory-landing-cta { padding: 12px 28px; font-size: 0.9rem; }
  .boost-directory-landing-section { padding: 0 12px; margin-bottom: 28px; }

  .boost-creator-gallery {
    grid-template-columns: repeat(2, 1fr);
    gap: 6px;
  }
  .boost-creator-edit-photos {
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
  }
  .boost-directory-filter-toggle-wrap { padding: 6px 10px; }
  .boost-directory-filter-toggle-wrap.search-active .boost-directory-search-toggle { display: none; }
  .boost-directory-filter-toggle-wrap .boost-filter-reset { display: none; }
  .boost-directory-filter-toggle-wrap.search-active .boost-directory-filter-toggle { display: none; }
  .boost-directory-filter-toggle-wrap.search-active .boost-directory-results-count { display: none; }
  .boost-directory-filter-toggle-wrap.search-active .boost-directory-map-toggle { display: none; }
  .boost-directory-filter-toggle-wrap.search-active .boost-directory-search-cancel { display: block; }
  .boost-directory-filter-toggle-wrap.search-active .boost-directory-search-wrap {
    max-width: none;
    opacity: 1;
    flex: 1;
    min-width: 0;
    overflow: visible;
  }
  .boost-directory-active-filters { padding: 0 10px; }
  body > .boost-directory-filter-panel .boost-directory-filter-row {
    margin: 0 12px 6px;
  }
  body > .boost-directory-filter-panel .boost-directory-filter-label {
    padding: 12px 14px;
  }
  .boost-creator-profile-cover { height: 140px; }
  .boost-cover-action-btn { width: 32px; height: 32px; font-size: 0.85rem; }
  .boost-cover-edit-hint { font-size: 0.8rem; padding: 8px 14px; }
  .boost-cover-pos-indicator { font-size: 0.78rem; padding: 5px 10px; top: 8px; left: 8px; }
  .boost-cover-edit-actions { gap: 6px; bottom: 8px; }
  .boost-creator-profile-info { padding: 12px 12px 16px; }
  .boost-creator-profile-top {
    display: grid;
    grid-template-columns: auto 1fr auto;
    grid-template-rows: auto auto auto;
    gap: 6px 0;
    align-items: center;
    margin-bottom: 10px;
  }
  .boost-creator-profile-avatar-col {
    grid-column: 1;
    grid-row: 1;
    flex-direction: row;
    align-items: center;
    gap: 6px;
  }
  .boost-creator-profile-avatar { width: 72px; height: 72px; margin-top: -24px; }
  .boost-creator-profile-avail { font-size: 0.7rem; }
  .boost-creator-profile-header-right {
    display: contents;
  }
  .boost-creator-profile-header-actions {
    grid-column: 3;
    grid-row: 1;
    gap: 6px;
  }
  .boost-creator-profile-stats {
    grid-column: 1 / -1;
    grid-row: 3;
    justify-content: center;
    gap: 12px;
  }
  .boost-creator-profile-stats span { font-size: 0.72rem; white-space: nowrap; }
  .boost-creator-profile-details {
    grid-column: 1 / -1;
    grid-row: 2;
    text-align: center;
    align-items: center;
  }
  .boost-creator-profile-identity { justify-content: center; }
  .boost-creator-profile-username { font-size: 1.05rem; }
  .boost-creator-profile-headline { font-size: 0.8rem; }
  .boost-creator-profile-meta { gap: 6px; font-size: 0.75rem; }
  .boost-creator-profile-icon-btn { width: 34px; height: 34px; font-size: 13px; }
  .boost-creator-profile-bio { font-size: 0.85rem; line-height: 1.5; }
  .boost-creator-profile-bio-wrap { margin-bottom: 12px; }
  .boost-creator-profile-bio-toggle { font-size: 0.78rem; }
  .boost-creator-profile-social i { width: 32px; height: 32px; font-size: 0.85rem; }
  .boost-profile-cta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }
  .boost-profile-cta .boost-btn { justify-content: center; padding: 11px 12px; font-size: 12px; flex: 1 1 calc(50% - 4px); min-width: 0; }
  .boost-profile-cta .boost-btn-donate {
    flex: 1 1 100%;
    width: auto;
    max-width: fit-content;
    margin: 0 auto;
    padding: 8px 28px;
  }
  .boost-profile-cta .boost-btn .boost-btn-price { display: none; }
  .boost-followers-list { gap: 6px; }
  .boost-follower-item { padding: 4px 8px; font-size: 0.8rem; }

  /* Lightbox */
  .boost-creator-lightbox img,
  .boost-creator-lightbox video { max-width: 98vw; max-height: 90vh; border-radius: 6px; box-shadow: 0 4px 20px rgba(0,0,0,0.5); }
  .boost-creator-lightbox-close { top: 4px; right: 4px; width: 30px; height: 30px; font-size: 0.8rem; }
  .boost-creator-lightbox-counter { bottom: -24px; font-size: 10px; padding: 2px 8px; }

  /* Photo editor */
  .boost-creator-photo-star,
  .boost-creator-photo-cover { width: 24px; height: 24px; font-size: 0.55rem; }
  .boost-creator-photo-star { top: -8px; left: -8px; }
  .boost-creator-photo-cover { bottom: -8px; left: -8px; }
  .boost-creator-photo-delete { top: -8px; right: -8px; width: 24px; height: 24px; font-size: 0.55rem; }
  .boost-creator-photo-profile-badge,
  .boost-creator-photo-cover-badge { font-size: 7px; padding: 2px 6px; }
  .boost-creator-photo-status { font-size: 0.55rem; padding: 2px 6px; }

  .boost-creator-badge-featured { width: 22px; height: 22px; font-size: 0.5rem; top: 6px; left: 6px; }
  .boost-creator-badge-new { font-size: 0.55rem; }
  .boost-creator-card-row2 { font-size: 0.65rem; }
  .boost-creator-card-row3 { gap: 5px; padding: 3px 6px 7px; }
  .boost-creator-card-row3 .boost-creator-profile-icon-btn { width: 28px; height: 28px; font-size: 11px; }
  .boost-creator-card-overlay-stat { font-size: 0.55rem; padding: 2px 5px; }
  .boost-creator-card-flag { font-size: 0.8rem; padding: 2px 4px; top: 6px; right: 6px; }
  .boost-creator-card-avatar { width: 38px; height: 38px; bottom: 6px; left: 6px; border-width: 2px; }
  .boost-creator-card-avatar-initials { font-size: 0.6rem; }
  .boost-creator-card-avatar-dot { width: 9px; height: 9px; border-width: 2px; }

  /* Wizard progress bar */
  .boost-wizard-progress { max-width: 280px; gap: 10px; }
  .boost-wizard-progress-label { font-size: 12px; }

  .boost-admin-search-bar .boost-input-icon { max-width: 100%; }

  /* Messages: compact on small screens */
  .boost-messages-conv-body { padding: 14px 12px 10px; gap: 8px; }
  .boost-msg-media { max-width: 60vw; }
  .boost-msg-attach-preview img { width: 40px; height: 40px; }
  .boost-messages-header-avatar { width: 34px; height: 34px; font-size: 0.68rem; }
  .boost-messages-conv .boost-conversation-reply {
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom, 0px));
    gap: 4px;
  }
  .boost-messages-conv .boost-conversation-reply textarea {
    min-height: 36px;
    padding: 8px 14px;
    border-radius: 20px;
  }
  .boost-messages-conv .boost-msg-action-btn { width: 34px; height: 34px; font-size: 0.85rem; }
  .boost-messages-conv-body .boost-msg { max-width: 82%; padding: 9px 13px 7px; border-radius: 16px; }
  .boost-messages-conv-body .boost-msg-user { border-bottom-right-radius: 5px; }
  .boost-messages-conv-body .boost-msg-admin { border-bottom-left-radius: 5px; }
  .boost-messages-conv-body .boost-msg-date-sep { font-size: 0.68rem; margin: 8px 0 2px; }
  .boost-messages-conv-avatar { width: 38px; height: 38px; }
  .boost-messages-conv-item { padding: 12px 12px; gap: 10px; }
  .boost-messages-filters { padding: 8px 10px; gap: 6px; }
  .boost-messages-filter-chip { padding: 5px 12px; font-size: 0.74rem; }

  /* Notification panel: fullwidth bottom sheet */
  .boost-notif-panel {
    width: 100%;
    max-height: 60vh;
    bottom: 0;
    left: 0;
    right: 0;
    top: auto;
    border-radius: 16px 16px 0 0;
  }

  /* Top fans: stack vertically */
  .boost-top-fans { flex-direction: column; align-items: center; }

  /* Modal overlay: centered, scroll if taller than viewport */
  .boost-modal-overlay { padding: 8px; }
  .boost-modal-overlay .boost-modal-box { margin: auto; }

  /* Donor levels modal: stack grid + compact */
  .boost-donor-modal-grid { grid-template-columns: 1fr; }
  .boost-modal-box-wide.boost-donor-modal { padding: 20px 16px 16px; }

  /* Gift overlay: smaller on mobile */
  .boost-gift-center { gap: 10px; padding: 0 12px; }
  .boost-gift-emoji { font-size: 6rem; }
  .boost-gift-label { font-size: 2rem; }
  .boost-gift-note  { font-size: 1.05rem; max-width: 280px; padding: 12px 16px; }
  .boost-gift-particle { font-size: 1.8rem; }
  .boost-gift-lottie { width: 240px; height: 240px; }
  .boost-gift-label .boost-donor-badge { font-size: 0.75rem; padding: 1px 5px; }

  /* Gift message bubble */
  .boost-msg-gift { padding: 16px 18px; gap: 8px; }
  .boost-msg-gift-emoji { font-size: 2.8rem; width: 66px; height: 66px; }
  .boost-msg-gift-amount { font-size: 1.5rem; }
  .boost-msg-gift-note { font-size: 0.88rem; max-width: 220px; padding: 8px 12px 8px 22px; }
}

/* ============================================================================
   AI IMAGE GENERATOR
   ============================================================================ */

/* ── Generator layout (2-col desktop) ── */

/* ── Preview overlay ── */

/* ── Mode pills (reusable radio selector) ── */

/* ── Tab bar (Prompt / Styles / Settings) ── */

/* ── Styles grid (tab Estilos) ── */

/* ── Style zoom (floating circular preview) ── */

/* ── Selected style chips (below tab bar) ── */


/* ── Sticky footer row + cost breakdown (shared by fixed bar) ── */

/* ── Batch stepper [−] 2 [+] ── */

/* ── Prompt textarea ── */

/* ── Dropzone (upload) ── */

/* ── Upload preview ── */

/* ── Canvas (inpaint) ── */

/* ── Seed row ── */

/* ── 2-column row (model+lora, resolution+seed) ── */

/* ── Generate button with inline cost ── */

/* ── Generate bar — fixed bottom, shared by Fotos / Video / Studio ── */
/* Hide bar when keyboard opens on touch devices */

/* ── AI panel alignment fix (neutralize sibling margin inside card) ── */

/* ── Info tooltips (model, lora, seed) ── */
/* Floating tooltip (positioned via JS, appended to body) */
/* Measuring state: layout-computed but hidden — used to get offsetHeight before positioning */

/* ── Result area ── */

/* ── Result actions ── */

/* ── Gallery grid ── */

/* ── Gallery infinite scroll ── */

/* ── Empty state ── */

/* ── Lightbox landing showcase (reutiliza .boost-creator-lightbox) ── */

/* ── Lightbox ── */

/* ── Landing page ── */

/* ── Pricing cards ── */

/* ── Features grid ── */

/* ── Hero badges ── */

/* ── Hero sticky CTA ── */

/* ── Gallery showcase ── */

/* ── Gallery page (/ai/galeria) ── */

/* ── Admin gallery ── */

/* Help modal gallery */

/* ── Landing sections ── */

/* ── No subscription badge ── */

/* ── Compare table ── */

/* ── Features grid v2 (with descriptions) ── */

/* ── Use cases grid ── */

/* ── Guide preview links ── */

/* ── Landing CTA ── */

/* ── AI header controls (mode toggle + NSFW) ── */

/* ── AI Generator responsive ── */
@media (max-width: 480px) {

  /* Footer: stepper centered above full-width button */

  /* Form and gallery */
}
/* ── AI Admin: resolution bar, prompt display, input suffix ── */
.boost-card-full { grid-column: 1 / -1; }
.boost-input-suffix {
  display: flex;
  align-items: center;
  gap: 6px;
}
.boost-input-suffix .boost-input {
  flex: 1;
  min-width: 0;
}
.boost-input-suffix span {
  font-size: 13px;
  font-weight: 600;
  color: var(--boost-text-2);
  white-space: nowrap;
}

/* ── Generate Profiles (admin AI tab) ── */
.boost-gen-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  align-items: start;
}
.boost-gen-col-info,
.boost-gen-col-action {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.boost-gen-distribution {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.boost-gen-dist-row {
  display: flex;
  align-items: center;
  gap: 12px;
}
.boost-gen-dist-label {
  min-width: 90px;
  font-size: 13px;
  font-weight: 600;
  color: var(--boost-text-1);
}
.boost-gen-dist-label i {
  width: 18px;
  text-align: center;
  margin-right: 4px;
}
.boost-gen-bar {
  flex: 1;
  height: 22px;
  background: var(--boost-bg-2);
  border-radius: 11px;
  overflow: hidden;
}
.boost-gen-bar-lg {
  height: 26px;
  margin: 8px 0;
}
.boost-gen-bar-fill {
  height: 100%;
  width: var(--pct, 0%);
  border-radius: 11px;
  transition: width 0.5s ease;
}
.boost-gen-bar-female { background: var(--boost-accent); }
.boost-gen-bar-male { background: var(--boost-info, #3b82f6); }
.boost-gen-bar-other { background: var(--boost-warning, #f59e0b); }
.boost-gen-bar-progress { background: var(--boost-accent); }
.boost-gen-dist-value {
  min-width: 80px;
  font-size: 13px;
  font-weight: 500;
  color: var(--boost-text-2);
  text-align: right;
}
.boost-gen-dist-total {
  font-size: 13px;
  color: var(--boost-text-2);
  margin-top: 4px;
  text-align: right;
  padding-top: 8px;
  border-top: 1px solid var(--boost-border);
}
.boost-gen-form-row {
  display: flex;
  gap: 20px;
  align-items: flex-end;
  flex-wrap: wrap;
}
.boost-gen-form-gender {
  flex: 1;
  min-width: 200px;
}
.boost-gen-form-count {
  width: 100px;
}
.boost-gen-form-country {
  min-width: 140px;
}
.boost-gen-form-attractiveness {
  min-width: 220px;
}
.boost-gen-radio-group {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}
.boost-gen-radio {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: var(--boost-text-1);
  cursor: pointer;
}
.boost-gen-form-hint {
  font-size: 13px;
  color: var(--boost-text-2);
  background: var(--boost-bg-subtle);
  border: 1px solid var(--boost-border);
  border-radius: 8px;
  padding: 8px 12px;
  margin-top: 12px;
}
.boost-label-help {
  display: inline-block;
  position: relative;
  color: var(--boost-text-2);
  font-size: 12px;
  margin-left: 4px;
  cursor: help;
  vertical-align: middle;
}
.boost-label-help:hover,
.boost-label-help:focus-visible,
.boost-label-help.is-open {
  color: var(--boost-accent);
  outline: none;
}
.boost-label-help-bubble {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  width: max-content;
  min-width: 200px;
  max-width: 280px;
  padding: 10px 12px;
  background: var(--boost-white);
  border: 1px solid var(--boost-form-border);
  border-radius: var(--boost-radius);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.18);
  font-family: inherit;
  font-size: 12px;
  font-weight: normal;
  line-height: 1.45;
  color: var(--boost-text-1);
  text-align: left;
  white-space: normal;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.15s ease, visibility 0.15s ease;
  z-index: 9999;
}
.boost-label-help-bubble::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 6px solid transparent;
  border-top-color: var(--boost-white);
}
.boost-label-help:hover > .boost-label-help-bubble,
.boost-label-help:focus-visible > .boost-label-help-bubble,
.boost-label-help.is-open > .boost-label-help-bubble {
  opacity: 1;
  visibility: visible;
}
@media (max-width: 480px) {
  .boost-label-help-bubble {
    left: 0;
    right: auto;
    transform: none;
    min-width: 160px;
    max-width: calc(100vw - 32px);
  }
  .boost-label-help-bubble::after {
    left: 10px;
    transform: none;
  }
}
.boost-gen-submit-btn {
  margin-top: 16px;
}
.boost-gen-progress-header {
  font-size: 14px;
  color: var(--boost-text-1);
  margin-bottom: 4px;
}
.boost-gen-progress-log {
  max-height: 240px;
  overflow-y: auto;
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.boost-gen-log-item {
  font-size: 13px;
  padding: 6px 10px;
  border-radius: 6px;
  background: var(--boost-bg-2);
  display: flex;
  align-items: center;
  gap: 8px;
}
.boost-gen-log-item a {
  color: var(--boost-accent);
  text-decoration: none;
  font-weight: 600;
}
.boost-gen-log-ok i { color: var(--boost-success, #22c55e); }
.boost-gen-log-fail i { color: var(--boost-error, #ef4444); }
.boost-gen-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  margin-right: 6px;
  vertical-align: middle;
}
.boost-gen-dot-active { background: var(--boost-success, #22c55e); }
.boost-gen-dot-inactive { background: var(--boost-error, #ef4444); }

/* ── Pool de nombres ── */
.boost-gen-pool-stats {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 16px;
}
.boost-gen-pool-row {
  display: flex;
  align-items: center;
  gap: 10px;
}
.boost-gen-pool-label {
  min-width: 100px;
  font-size: 13px;
  color: var(--boost-muted);
}
.boost-gen-pool-label i {
  width: 16px;
  text-align: center;
  margin-right: 4px;
}
.boost-gen-pool-value {
  font-weight: 600;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}
.boost-gen-pool-form {
  border-top: 1px solid var(--boost-border);
  padding-top: 12px;
}
.boost-gen-pool-form-row {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.boost-gen-pool-select {
  width: 110px;
  flex-shrink: 0;
}
.boost-gen-pool-count {
  width: 70px;
  flex-shrink: 0;
}
.boost-gen-pool-country {
  width: 60px;
  flex-shrink: 0;
}
.boost-gen-pool-btn {
  white-space: nowrap;
}
.boost-gen-pool-recent {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--boost-border);
}
.boost-gen-pool-recent-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.boost-gen-pool-recent-list small {
  opacity: 0.7;
}

/* ── Photos select ── */
.boost-gen-form-photos {
  min-width: 120px;
}

/* ── Preview grid ── */
.boost-gen-preview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 12px;
}
.boost-gen-preview-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 12px;
  border-radius: var(--boost-radius);
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-border);
  text-align: center;
}
.boost-gen-preview-img {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  object-fit: cover;
}
.boost-gen-preview-placeholder {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: var(--boost-surface);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  color: var(--boost-muted);
}
.boost-gen-preview-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.boost-gen-preview-info strong {
  font-size: 13px;
}
.boost-gen-preview-info span {
  font-size: 12px;
  color: var(--boost-muted);
}

@media (max-width: 768px) {
  .boost-gen-layout { grid-template-columns: 1fr; }
  .boost-gen-dist-label { min-width: 80px; font-size: 12px; }
  .boost-gen-dist-value { min-width: 60px; font-size: 12px; }
  .boost-gen-radio-group { gap: 10px; }
  .boost-gen-pool-form-row { flex-wrap: wrap; }
  .boost-gen-preview-grid { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
}
@media (max-width: 480px) {
  .boost-gen-dist-row { gap: 8px; }
  .boost-gen-dist-label { min-width: 60px; }
  .boost-gen-dist-value { min-width: 50px; }
  .boost-gen-form-row { flex-direction: column; gap: 12px; }
  .boost-gen-form-count { width: 100%; }
  .boost-gen-form-photos { width: 100%; }
  .boost-gen-form-country { width: 100%; min-width: 0; }
  .boost-gen-form-attractiveness { width: 100%; min-width: 0; }
  .boost-gen-pool-form-row { flex-direction: column; align-items: stretch; }
  .boost-gen-pool-select,
  .boost-gen-pool-count,
  .boost-gen-pool-country { width: 100%; }
  .boost-gen-preview-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .boost-gen-preview-img { width: 60px; height: 60px; }
  .boost-gen-preview-placeholder { width: 60px; height: 60px; font-size: 20px; }
}

/* ── AI Video Generator ── */

/* ── Drip humanize status (admin AI tab, daily cron health) ── */
.boost-drip-status {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.boost-drip-header {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.boost-drip-badge {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  border: 1px solid transparent;
}
.boost-drip-ok .boost-drip-badge {
  color: var(--boost-success);
  background: var(--boost-success-bg);
  border-color: rgba(var(--boost-success-rgb), 0.3);
}
.boost-drip-warn .boost-drip-badge {
  color: var(--boost-warning);
  background: var(--boost-warning-bg);
  border-color: rgba(var(--boost-warning-light-rgb), 0.3);
}
.boost-drip-bad .boost-drip-badge {
  color: var(--boost-danger);
  background: var(--boost-danger-bg);
  border-color: rgba(var(--boost-danger-rgb), 0.3);
}
.boost-drip-mode {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.5px;
  padding: 2px 8px;
  border-radius: 10px;
  background: var(--boost-bg-2);
  color: var(--boost-text-2);
}
.boost-drip-time {
  font-size: 12px;
  color: var(--boost-muted);
  font-variant-numeric: tabular-nums;
  margin-left: auto;
}
.boost-drip-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}
.boost-drip-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 4px;
  padding: 10px 6px;
  border-radius: var(--boost-radius);
  background: var(--boost-bg-2);
  border: 1px solid var(--boost-border);
}
.boost-drip-cell i {
  color: var(--boost-accent);
  font-size: 14px;
}
.boost-drip-cell-val {
  font-size: 16px;
  font-weight: 700;
  color: var(--boost-text-1);
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.boost-drip-cell-label {
  font-size: 11px;
  color: var(--boost-muted);
  line-height: 1.2;
}
@media (max-width: 768px) {
  .boost-drip-grid { grid-template-columns: repeat(2, 1fr); }
  .boost-drip-time { margin-left: 0; width: 100%; }
}
@media (max-width: 480px) {
  .boost-drip-cell { padding: 8px 4px; }
  .boost-drip-cell-val { font-size: 15px; }
}

@media (max-width: 360px) {
  .boost-directory-hero { padding: 12px 10px 12px; }
  .boost-directory-hero-title { font-size: 1.3rem; margin-bottom: 6px; }
  .boost-directory-hero-stats { font-size: 0.75rem; gap: 8px; margin-top: 6px; }
  .boost-directory-active-filters { padding: 0 6px; gap: 4px; }
  .boost-directory-active-pill { font-size: 0.72rem; padding: 3px 8px; }
  .boost-directory-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 6px;
    padding: 0 6px;
  }
  .boost-directory-landing-title { font-size: 1.2rem; }
  .boost-directory-landing-hero { padding: 24px 12px 20px; }
  .boost-directory-landing-section-title { font-size: 1.15rem; }
  .boost-creator-edit-photos {
    grid-template-columns: repeat(2, 1fr);
    gap: 6px;
  }
  .boost-creator-profile-cover { height: 120px; }
  .boost-creator-profile-avatar { width: 60px; height: 60px; margin-top: -36px; }
  .boost-creator-profile-username { font-size: 0.92rem; }
  .boost-creator-profile-meta { gap: 4px; }
  .boost-creator-profile-social i { width: 32px; height: 32px; font-size: 0.85rem; }
  .boost-creator-profile-icon-btn { width: 32px; height: 32px; font-size: 12px; }
  .boost-creator-gallery {
    grid-template-columns: repeat(2, 1fr);
    gap: 4px;
  }

  /* Photo editor */
  .boost-creator-photo-star,
  .boost-creator-photo-cover { width: 22px; height: 22px; font-size: 0.5rem; }
  .boost-creator-photo-delete { width: 22px; height: 22px; font-size: 0.5rem; }
  .boost-creator-photo-profile-badge,
  .boost-creator-photo-cover-badge { font-size: 6px; padding: 2px 5px; }

  .boost-creator-badge-featured { width: 20px; height: 20px; font-size: 0.45rem; }
  .boost-creator-badge-premium { width: 20px; height: 20px; font-size: 0.45rem; }
  .boost-creator-badge-featured ~ .boost-creator-badge-premium { right: 28px; }

  /* Wizard */
  .boost-wizard-progress { max-width: 240px; }

  /* Donor levels modal: compact on very small screens */
  .boost-modal-box-wide.boost-donor-modal { padding: 16px 12px 12px; }
  .boost-donor-modal-tier { padding: 8px; }
  .boost-donor-modal-grid { gap: 6px; }
  .boost-donor-modal-header { margin-bottom: 12px; }
  .boost-donor-modal-icon { font-size: 28px; }
  .boost-donor-modal-how { padding: 10px; }

  /* Referral hub 480px */
  .boost-ref-hub-hero,
  .boost-ref-hub-cta { padding: 20px 12px; }
  .boost-ref-hub-hero h1 { font-size: 18px; }
  .boost-ref-hub-value-amount { font-size: 28px; }
  .boost-ref-hub-hero .boost-referral-stat-value { font-size: 20px; }
  .boost-ref-hub-tip { flex: 0 0 100%; }
  .boost-ref-hub-levels { grid-template-columns: 1fr; }
  .boost-ref-hub-tip { padding: 14px 12px; }
  .boost-ref-hub-level-card { padding: 14px 10px; }
  .boost-ref-hub-level-icon { width: 40px; height: 40px; font-size: 18px; }
  .boost-ref-hub-progress { padding: 12px; }

  /* Invite landing 480px */
  .boost-invite-grid,
  .boost-invite-grid-6,
  .boost-invite-steps,
  .boost-invite-steps-4,
  .boost-invite-stats-grid { grid-template-columns: 1fr; }
  .boost-invite-hero { padding: 32px 12px 24px; margin-bottom: 32px; }
  .boost-invite-hero-value-amount { font-size: 36px; }
  .boost-invite-trust { flex-direction: column; gap: 8px; align-items: center; }
  .boost-invite-section { margin-bottom: 48px; }
  .boost-invite-stat-item { padding: 20px 12px; }
  .boost-invite-early-card { padding: 24px 16px; }
  .boost-invite-final-inner h2 { font-size: 20px; }
  .boost-onboard-actions { flex-direction: column; }
  .boost-onboard-actions .boost-btn { width: 100%; text-align: center; }

  /* Messages ultra-small (phones ≤360px): 88% bubbles, 28px avatar, 48px header */
  .boost-messages-conv-header { padding: 8px 10px; gap: 6px; min-height: 48px; }
  .boost-messages-conv-header #convHeaderName,
  .boost-messages-conv-header #seedConvHeaderName { font-size: 0.88rem; }
  .boost-messages-header-avatar { width: 28px; height: 28px; font-size: 0.6rem; }
  .boost-messages-status { max-width: 80px; font-size: 0.62rem; }
  .boost-conv-actions-toggle { width: 30px; height: 30px; }
  .boost-messages-conv-avatar { width: 34px; height: 34px; }
  .boost-messages-conv-name { font-size: 0.82rem; }
  .boost-messages-conv-preview { font-size: 0.72rem; }
  .boost-messages-conv-item { padding: 10px 10px; gap: 8px; }
  .boost-messages-conv-body { padding: 12px 10px 8px; gap: 7px; }
  .boost-messages-conv-body .boost-msg { max-width: 88%; padding: 8px 12px 6px; border-radius: 14px; }
  .boost-messages-conv-body .boost-msg-user { border-bottom-right-radius: 4px; }
  .boost-messages-conv-body .boost-msg-admin { border-bottom-left-radius: 4px; }
  .boost-messages-conv-body .boost-msg-user::after,
  .boost-messages-conv-body .boost-msg-admin::after { width: 10px; height: 12px; }
  .boost-messages-conv .boost-conversation-reply {
    padding: 6px 8px calc(6px + env(safe-area-inset-bottom, 0px));
    gap: 3px;
  }
  .boost-messages-conv .boost-conversation-reply textarea {
    min-height: 34px;
    padding: 7px 12px;
    border-radius: 18px;
    font-size: 0.88rem;
  }
  .boost-messages-conv .boost-msg-action-btn { width: 32px; height: 32px; font-size: 0.8rem; }
  .boost-msg-media { max-width: 70vw; }
  .boost-msg-attach-preview img { width: 36px; height: 36px; }
}

/* ================================================================== */
/*  AI Studio — additional classes                                      */
/* ================================================================== */

/* Saved faces horizontal scroll */

/* ── Studio: template header (title + search) ── */

/* Search toggle — reuses directory pattern (compact variant) */
/* Search wrap — collapsible (same pattern as directory) */
/* Cancel button — hidden by default, shown on mobile */

/* Category collapsible toggle — compact variant */

/* Template grid scroll wrapper */
/* Template grid */
/* Play overlay — centered, appears on hover */
/* Audio badge — bottom-left, same pattern as -duration */
/* Preview lightbox actions */
/* Audio filter pills — compact */

/* AI Studio header — centrado sobre las dos columnas */
/* Steps hint — right-aligned inside section title */
/* Studio result image */
#studioImageResult {
  width: 100%;
  max-height: 500px;
  object-fit: contain;
  border-radius: 8px;
}

/* Audio tabs — upload / record / TTS */
/* Dot indicator — audio loaded in this tab */
/* Record/TTS result — audio player row */
/* Recorder */
@keyframes pulse-rec {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.12); }
}
/* TTS */

/* Responsive adjustments for studio */

/* Solana / Bitcoin payment panels */
.boost-btc-icon { color: #f7931a; }
.boost-btc-icon-lg { font-size: 22px; }
.boost-solana-panel {
  max-width: 380px;
  margin: 8px auto 0;
  text-align: center;
}
.boost-solana-logo-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: 6px;
}
.boost-solana-logo-row img {
  height: 22px;
  width: auto;
}
.boost-solana-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--boost-text-1);
  margin: 0;
}
/* Prefijo .boost-body: mismo motivo que .boost-packages-title — sin él
   pierde frente al reset ".boost-body p { margin-bottom: 0 }". */
.boost-body .boost-solana-desc {
  font-size: 12px;
  color: var(--boost-text-3);
  margin: 8px 0 14px;
  line-height: 1.55;
}
.boost-solana-address-box {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--boost-input-bg);
  border: var(--boost-border-w) solid rgba(153,69,255,0.35);
  border-radius: var(--boost-radius-sm);
  padding: 11px 14px;
  margin-bottom: 10px;
  box-shadow: 0 0 0 3px rgba(153,69,255,0.07);
}
.boost-solana-address-box code {
  flex: 1;
  font-size: 10.5px;
  font-weight: 600;
  color: #7c3aed;
  word-break: break-all;
  text-align: left;
  font-family: monospace;
  letter-spacing: 0.2px;
}
.boost-solana-copy-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: linear-gradient(135deg, #9945ff, #7c3aed);
  border: none;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 7px 14px;
  border-radius: var(--boost-radius-xs);
  cursor: pointer;
  white-space: nowrap;
  transition: opacity var(--boost-t-smooth), transform var(--boost-t-smooth);
  box-shadow: 0 2px 8px rgba(153,69,255,0.3);
}
.boost-solana-copy-btn:hover {
  opacity: 0.88;
  transform: translateY(-1px);
}
.boost-solana-steps {
  list-style: none;
  padding: 0;
  margin: 0 0 12px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  text-align: left;
}
.boost-solana-steps li {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-size: 12px;
  color: var(--boost-text-2);
  line-height: 1.45;
}
.boost-solana-step-num {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: linear-gradient(135deg, #9945ff, #14f195);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
}
.boost-solana-note {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 11px;
  color: var(--boost-text-3);
  background: rgba(153,69,255,0.06);
  border: 1px solid rgba(153,69,255,0.15);
  border-radius: var(--boost-radius-xs);
  padding: 7px 12px;
  margin: 0;
}
.boost-solana-note i { color: #9945ff; font-size: 12px; }
/* Solana verify flow — nuevos elementos del panel interactivo */
.boost-solana-step-block {
  margin-bottom: 14px;
  text-align: left;
}
.boost-solana-step-block:last-child { margin-bottom: 0; }
.boost-solana-step-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  color: var(--boost-text-2);
  margin-bottom: 8px;
}
.boost-solana-hash-row {
  margin-bottom: 10px;
}
.boost-solana-hash-input {
  width: 100%;
  font-family: monospace;
  font-size: 11.5px;
  letter-spacing: 0.2px;
}
.boost-solana-verify-btn {
  width: 100%;
}
.boost-solana-status {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 10px 14px;
  border-radius: var(--boost-radius-xs);
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.5;
  margin-top: 10px;
  border: 1px solid;
}
.boost-solana-status--success {
  background: rgba(20,241,149,0.08);
  border-color: rgba(20,241,149,0.3);
  color: #14f195;
}
.boost-solana-status--error {
  background: rgba(239,68,68,0.07);
  border-color: rgba(239,68,68,0.25);
  color: #f87171;
}
.boost-solana-status--pending {
  background: rgba(251,191,36,0.08);
  border-color: rgba(251,191,36,0.3);
  color: #fbbf24;
}
/* Badge "Sin comisiones" en el botón de método de pago Solana */
.boost-payment-method-sol-badge {
  display: inline-block;
  background: linear-gradient(135deg, #14f195, #0ed880);
  color: #0a0a0a;
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  padding: 2px 6px;
  border-radius: 20px;
  margin-left: 4px;
  vertical-align: middle;
  line-height: 1.4;
  white-space: nowrap;
}
@media (max-width: 480px) {
  .boost-solana-panel { max-width: 100%; }
  .boost-solana-address-box { flex-wrap: wrap; }
  .boost-solana-address-box code { min-width: 0; }
}

/* ── SOL auto-pay: selección de importe ───────────────────────────────────── */
.boost-sol-amt-grid {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 14px 0;
}
.boost-sol-amt-btn {
  flex: 1;
  min-width: 56px;
  padding: 10px 6px;
  border-radius: 8px;
  border: 1.5px solid var(--boost-border);
  background: var(--boost-card-bg);
  color: var(--boost-text-1);
  cursor: pointer;
  font-weight: 700;
  font-size: 0.9rem;
  transition: border-color 0.15s, background 0.15s;
  text-align: center;
  line-height: 1.2;
}
.boost-sol-amt-btn:hover { border-color: var(--boost-accent); }
.boost-sol-amt-btn.active {
  border-color: var(--boost-accent);
  background: var(--boost-accent-glow);
  color: var(--boost-accent-mid);
}
.boost-sol-amt-btn.boost-sol-amt-popular { position: relative; }
.boost-sol-amt-star { font-size: 10px; color: var(--boost-accent); }

.boost-sol-init-cta {
  width: 100%;
  margin-top: 4px;
  justify-content: center;
  gap: 6px;
}

/* ── SOL auto-pay: fase intent ──────────────────────────────────────────────── */
.boost-sol-intent-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  font-weight: 700;
  font-size: 1rem;
  color: var(--boost-text-1);
}
.boost-sol-intent-header img { width: 24px; height: 24px; }

/* Importe destacado */
.boost-sol-amount-card {
  background: linear-gradient(135deg, rgba(var(--boost-accent-rgb,99,102,241),0.12), rgba(var(--boost-accent-rgb,99,102,241),0.04));
  border: 1px solid rgba(var(--boost-accent-rgb,99,102,241),0.3);
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 10px;
}
.boost-sol-wallet-card {
  background: var(--boost-bg-subtle);
  border: 1px solid var(--boost-border-soft);
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 12px;
}
.boost-sol-amount-label {
  font-size: 0.7rem;
  color: var(--boost-text-3);
  text-transform: uppercase;
  letter-spacing: 0.6px;
  margin-bottom: 6px;
}
.boost-sol-amount-row {
  display: flex;
  align-items: center;
  gap: 10px;
}
.boost-sol-amount-value {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--boost-accent);
  letter-spacing: -0.5px;
  flex: 1;
  min-width: 0;
}
.boost-sol-wallet-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.boost-sol-wallet-addr {
  font-size: 0.72rem;
  color: var(--boost-text-2);
  word-break: break-all;
  flex: 1;
  min-width: 0;
  line-height: 1.5;
}
.boost-sol-copy-btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  border: 1px solid var(--boost-border-soft);
  background: var(--boost-bg-card);
  color: var(--boost-text-2);
  cursor: pointer;
  font-size: 0.8rem;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.boost-sol-copy-btn:hover {
  background: var(--boost-accent);
  color: #fff;
  border-color: var(--boost-accent);
}
/* Prefijo .boost-body: mismo motivo que .boost-packages-title — sin él
   pierde frente al reset ".boost-body p { margin-bottom: 0 }". */
.boost-body .boost-sol-intent-warn {
  font-size: 0.8rem;
  color: var(--boost-warning-light);
  margin: 8px 0 12px;
  display: flex;
  align-items: flex-start;
  gap: 6px;
  line-height: 1.4;
}

/* Countdown */
.boost-sol-countdown-wrap { margin: 4px 0 12px; }
.boost-sol-countdown-bar {
  height: 6px;
  background: var(--boost-border);
  border-radius: 4px;
  overflow: hidden;
}
.boost-sol-countdown-fill {
  height: 100%;
  width: 100%;
  background: linear-gradient(90deg, var(--boost-accent), var(--boost-accent-end,var(--boost-accent)));
  border-radius: 4px;
  transition: width 1s linear;
}
.boost-sol-countdown-text {
  text-align: center;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--boost-text-2);
  margin-top: 6px;
  font-variant-numeric: tabular-nums;
}
.boost-sol-cancel-btn { margin-top: 4px; width: 100%; }

@media (max-width: 480px) {
  .boost-sol-amt-grid { gap: 6px; }
  .boost-sol-amt-btn { padding: 8px 4px; font-size: 0.85rem; }
  .boost-sol-amount-value { font-size: 1.1rem; }
}

/* Facturación Boost — toolbar de exportación + acciones Ver/Descargar */
.boost-invoices-toolbar { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }
.boost-invoices-actions { display: inline-flex; gap: 6px; flex-wrap: wrap; }
.boost-inv-neg { color: var(--danger, #ef4444); }
.boost-fiscal-card { margin-top: 20px; }

/* ============================================================================
   ADJUNTOS DE TICKETS — ver app/views/boost/support.php + app/Controllers/BoostController.php
   Clases .ticket-* propias de adjuntos (no confundir con .boost-msg-* del hilo,
   que ya existe). Mismos nombres de clase que dashboard.css (MitikLive) para
   no duplicar la lógica JS, pero con la paleta boost (--boost-accent).
   ============================================================================ */
/* Prefijo .boost-body: mismo motivo que .boost-packages-title — sin él
   pierde frente al reset ".boost-body p { margin-bottom: 0 }". */
.boost-body .boost-attach-hint {
  margin: 0 0 8px 0;
  font-size: 0.8rem;
  color: var(--boost-text-muted, var(--text-muted));
}
.ticket-attach-btn {
  display: inline-flex;
  cursor: pointer;
  margin-bottom: 8px;
}
.ticket-file-input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.ticket-attach-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
}
.ticket-attach-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.78rem;
  color: var(--boost-text-primary, var(--text-primary));
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-border);
  border-radius: var(--boost-radius-xs);
  padding: 4px 8px;
}
.ticket-attach-remove {
  background: transparent;
  border: none;
  color: var(--boost-danger, #ef4444);
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
  padding: 0 2px;
}
.ticket-msg-attachments {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}
.ticket-attachment-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.78rem;
  color: var(--boost-accent);
  background: var(--boost-card-bg);
  border: 1px solid var(--boost-border);
  border-radius: var(--boost-radius-xs);
  padding: 4px 8px;
  text-decoration: none;
}
.ticket-attachment-link:hover {
  border-color: var(--boost-accent);
}
