    /* ── Reset & tokens ─────────────────────────────────────── */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    .sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }

    /* ═══════════════════════════════════════════════════════════════
       v0.16.1 — DESIGN SYSTEM FOUNDATIONS
       Tokens semánticos completos. Los componentes legacy (2145 selectores)
       leen los aliases del final del bloque — cero ruptura. Migración panel
       a panel en v0.16.4-9. Light tema en [data-theme="light"]: solo redefine
       tokens semánticos (surfaces/text/borders/shadows); ~100 overrides
       legacy [data-theme="light"] .X seguirán activos abajo hasta que cada
       componente migre.
       Ratio surface-base/raised dark = 5.71:1 (rango Linear/Vercel).
       ═══════════════════════════════════════════════════════════════ */
    :root {
      /* ── PALETTE: gray (12 tonos, Stripe-like jerarquía fina) ── */
      --gray-25:  #fbfbfd;
      --gray-50:  #f7f8fa;
      --gray-100: #eef0f5;
      --gray-150: #e3e6ed;
      --gray-200: #d6dae3;
      --gray-300: #aab1c0;
      --gray-400: #8b92a5;
      --gray-500: #6b7283;
      --gray-600: #4b5161;
      --gray-700: #353a47;
      --gray-800: #262a36;
      --gray-850: #21242e;
      --gray-900: #1c1f29;

      /* ── PALETTE: brand (Signal blue — frío monocromo, espeja la isla .rs) ── */
      --brand-50:  #eef3ff;
      --brand-100: #dde6ff;
      --brand-200: #c2d2ff;
      --brand-300: #97b2ff;
      --brand-400: #6f93ff;
      --brand-500: #4f7cff;
      --brand-600: #3a63ec;
      --brand-700: #2f4fc8;
      --brand-800: #2941a0;
      --brand-900: #22357c;

      /* ── SEMÁNTICOS (3 niveles: base / -bg / -fg / -border) ── */
      --success:        #22c55e;
      --success-bg:     rgba(34,197,94,.10);
      --success-fg:     #4ade80;
      --success-border: rgba(34,197,94,.30);

      --danger:        #ef4444;
      --danger-bg:     rgba(239,68,68,.10);
      --danger-fg:     #f87171;
      --danger-border: rgba(239,68,68,.30);

      --warning:        #f59e0b;
      --warning-bg:     rgba(245,158,11,.10);
      --warning-fg:     #fbbf24;
      --warning-border: rgba(245,158,11,.30);

      --info:        #3b82f6;
      --info-bg:     rgba(59,130,246,.10);
      --info-fg:     #60a5fa;
      --info-border: rgba(59,130,246,.30);

      /* ── SURFACES (dark premium — v0.16.x restyle: near-black neutro tipo
         Linear/Vercel, jerarquía de elevación más marcada) ── */
      --surface-base:    #08090b;
      --surface-raised:  #121317;
      --surface-overlay: #1b1d22;
      --surface-sunken:  #050506;

      /* ── TEXTO (v0.16.x: blanco crisp + secundario más legible) ── */
      --text-primary:   #f6f7f9;
      --text-secondary: #9aa0ad;
      --text-tertiary:  #838a95;
      --text-disabled:  #474d59;
      --text-inverse:   #07080b;

      /* ── BORDES (v0.16.x: hairlines más finos, look premium) ── */
      --border-subtle:  rgba(255,255,255,.05);
      --border-default: rgba(255,255,255,.09);
      --border-strong:  rgba(255,255,255,.16);

      /* ── SPACING (escala base 4px) ── */
      --space-0:  0;
      --space-1:  4px;
      --space-2:  8px;
      --space-3:  12px;
      --space-4:  16px;
      --space-5:  20px;
      --space-6:  24px;
      --space-8:  32px;
      --space-10: 40px;
      --space-12: 48px;
      --space-16: 64px;
      --space-20: 80px;
      --space-24: 96px;
      --space-32: 128px;
      --space-40: 160px;
      --space-48: 192px;
      --space-64: 256px;

      /* ── RADII ── */
      --radius-xs:   4px;
      --radius-sm:   6px;
      --radius-md:   8px;
      --radius-lg:   12px;
      --radius-xl:   16px;
      --radius-2xl:  24px;
      --radius-full: 9999px;

      /* ── SHADOWS (v0.16.x premium: más profundidad sobre near-black) ── */
      --shadow-sm:   0 1px 2px rgba(0,0,0,.30);
      --shadow-md:   0 2px 6px rgba(0,0,0,.35), 0 6px 16px rgba(0,0,0,.25);
      --shadow-lg:   0 8px 24px rgba(0,0,0,.45), 0 16px 48px rgba(0,0,0,.30);
      --shadow-xl:   0 12px 32px rgba(0,0,0,.55), 0 28px 72px rgba(0,0,0,.40);
      --shadow-glow: 0 0 0 1px color-mix(in srgb, var(--brand-500) 50%, transparent), 0 0 32px rgba(79,124,255,.20);

      /* ── TIPOGRAFÍA ── */
      /* v2 "Editorial" — Instrument Serif (hero) · Space Grotesk (estructural) ·
         Hanken Grotesk (UI/cuerpo) · JetBrains Mono (datos/eyebrows). */
      --font-display: 'Instrument Serif', serif;
      --font-display-2: 'Space Grotesk', system-ui, sans-serif;
      --font-body:    'Hanken Grotesk', 'DM Sans', system-ui, -apple-system, sans-serif;
      --font-mono:    'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;

      /* v0.16.3: escala con más contraste H1↔body (Stripe-fingerprint). */
      /* T7 (IDI): escala en rem (base 16px) — respeta el tamaño de fuente del
         SO/navegador (accesibilidad). Valores visuales idénticos a los px previos. */
      --text-xs:   0.75rem;    /* 12px */
      --text-sm:   0.8125rem;  /* 13px */
      --text-base: 0.9375rem;  /* 15px */
      --text-lg:   1.0625rem;  /* 17px */
      --text-xl:   1.25rem;    /* 20px */
      --text-2xl:  1.625rem;   /* 26px */
      --text-3xl:  2rem;       /* 32px */
      --text-4xl:  2.625rem;   /* 42px */
      --text-5xl:  3.5rem;     /* 56px */

      --leading-tight:   1.2;
      --leading-snug:    1.35;
      --leading-normal:  1.5;
      --leading-relaxed: 1.65;

      --weight-regular: 400;
      --weight-medium:  500;
      --weight-bold:    700;

      /* ── Z-INDEX ── */
      --z-base:     0;
      --z-dropdown: 100;
      --z-sticky:   200;
      --z-modal:    1000;
      --z-toast:    2000;

      /* ── TRANSICIONES ── */
      --transition-fast: 150ms;
      --transition-base: 250ms;
      --transition-slow: 400ms;
      --ease-default:    cubic-bezier(.4, 0, .2, 1);
      --ease-bounce:     cubic-bezier(.34, 1.56, .64, 1);

      /* ═══════════════════════════════════════════════════════════
         ALIASES LEGACY (v0.14.x). NO BORRAR hasta migrar componentes
         en v0.16.4-9. Cada uno apunta a su token semántico nuevo o
         conserva valor literal cuando no encaja exacto en la escala.
         ═══════════════════════════════════════════════════════════ */

      /* Surfaces legacy */
      --bg:    var(--surface-base);
      --surf:  var(--surface-raised);
      --surf2: var(--surface-overlay);

      /* Texto legacy */
      --text:  var(--text-primary);
      --text2: var(--text-secondary);
      --text3: var(--text-tertiary);

      /* Borde legacy */
      --border: var(--border-default);

      /* Brand legacy */
      --brand:     var(--brand-500);
      --brand-cta: var(--brand-700);

      /* Acentos legacy (--pink renombrado de amarillo a azul claro, mantener nombre) */
      --pink:  #6f93ff;
      --green: var(--success);

      /* Gradientes legacy (rebrand a azul Signal monocromo) */
      --grad:  linear-gradient(135deg, #4f7cff 0%, #6f93ff 100%);
      --grad2: linear-gradient(135deg, #3a63ec 0%, #4f7cff 100%);

      /* Glow legacy (neutralizado a blanco en v0.14.35; NO usar --shadow-glow
         que es brand-acento — son glows distintos por diseño). */
      --glow: 0 0 0 3px rgba(255,255,255,.15), 0 0 24px rgba(255,255,255,.08);

      /* Radii legacy */
      --r:   14px;
      --rsm: var(--radius-md);

      /* Shadows legacy */
      --sh:    var(--shadow-lg);
      --sh-lg: var(--shadow-xl);

      /* Spacing legacy — xs/sm no encajan exactos en 4px-base, literales para
         evitar regresión visual; md/lg/xl/2xl apuntan a tokens nuevos. */
      --space-xs:  6px;
      --space-sm:  10px;
      --space-md:  var(--space-4);
      --space-lg:  var(--space-6);
      --space-xl:  var(--space-8);
      --space-2xl: var(--space-12);
    }

    /* ═══════════════════════════════════════════════════════════════
       LIGHT THEME — solo redefine variables semánticas. Los ~100
       overrides explícitos [data-theme="light"] .X { ... } más abajo
       (líneas ~226-330+) se mantienen activos: son deuda v0.16.4-9
       que se borrará panel a panel al migrar componentes a tokens.
       ═══════════════════════════════════════════════════════════════ */
    [data-theme="light"] {
      /* Surfaces */
      --surface-base:    #f0ede8;
      --surface-raised:  #f7f5f1;
      --surface-overlay: #ffffff;
      --surface-sunken:  #eae7e1;

      /* Texto */
      --text-primary:   #0a0a0a;
      --text-secondary: #555555;
      --text-tertiary:  #646464;
      --text-disabled:  #aaaaaa;
      --text-inverse:   #ffffff;

      /* Bordes */
      --border-subtle:  rgba(0,0,0,.04);
      --border-default: rgba(0,0,0,.08);
      --border-strong:  rgba(0,0,0,.15);

      /* Semánticos: fg más oscuro en light para contraste WCAG */
      --success-fg: #16a34a;
      --danger-fg:  #dc2626;
      --warning-fg: #d97706;
      --info-fg:    #2563eb;

      /* Shadows (más suaves en light) */
      --shadow-sm:   0 1px 2px rgba(0,0,0,.04);
      --shadow-md:   0 2px 4px rgba(0,0,0,.06), 0 4px 6px rgba(0,0,0,.04);
      --shadow-lg:   0 1px 3px rgba(0,0,0,.06), 0 8px 24px rgba(0,0,0,.08);
      --shadow-xl:   0 2px 8px rgba(0,0,0,.08), 0 16px 48px rgba(0,0,0,.12);
      --shadow-glow: 0 0 0 3px rgba(79,124,255,.20), 0 0 24px rgba(79,124,255,.12);

      /* Glow legacy en light (neutralizado a oscuro) */
      --glow: 0 0 0 3px rgba(0,0,0,.08), 0 0 20px rgba(0,0,0,.06);
    }

    /* ═══════════════════════════════════════════════════════════════
       v0.16.2 — PRIMITIVOS DEL DESIGN SYSTEM
       Componentes base reutilizables. Las clases legacy (.cta-btn,
       .comp-reel-card, etc.) siguen vivas en paralelo y se migran
       panel a panel en v0.16.4-9. Esto solo CREA los primitivos.
       Demo visual aislada: /static/design-system.html
       ═══════════════════════════════════════════════════════════════ */

    /* ── BUTTON ──────────────────────────────────────────────── */
    .btn {
      display: inline-flex; align-items: center; justify-content: center;
      gap: var(--space-2);
      border: 1px solid transparent;
      border-radius: var(--radius-md);
      font-family: var(--font-body);
      font-weight: var(--weight-medium);
      cursor: pointer;
      transition: all var(--transition-fast) var(--ease-default);
      white-space: nowrap;
      user-select: none;
    }
    .btn:disabled { cursor: not-allowed; pointer-events: none; }
    /* v0.16.3: focus ring estilo Stripe — outline gris discreto + halo brand sutil. */
    .btn:focus-visible {
      outline: 2px solid var(--border-strong);
      outline-offset: 2px;
      box-shadow: 0 0 0 5px rgba(79,124,255,.20);
    }

    .btn-sm { height: 32px; padding: 0 var(--space-3); font-size: var(--text-sm); }
    .btn-md { height: 40px; padding: 0 var(--space-4); font-size: var(--text-sm); }
    .btn-lg { height: 48px; padding: 0 var(--space-6); font-size: var(--text-base); }

    .btn-primary { background: var(--brand-600); color: #fff; border-color: var(--brand-600); }
    .btn-primary:hover { background: var(--brand-700); border-color: var(--brand-700); }
    .btn-primary:active { background: var(--brand-800); }
    .btn-primary:disabled {
      background: var(--surface-raised); color: var(--text-disabled); border-color: var(--border-subtle);
    }

    .btn-secondary {
      background: var(--surface-raised);
      color: var(--text-primary);
      border-color: var(--border-default);
    }
    .btn-secondary:hover { background: var(--surface-overlay); border-color: var(--border-strong); }
    .btn-secondary:disabled {
      background: var(--surface-raised); color: var(--text-disabled); border-color: var(--border-subtle);
    }

    .btn-ghost { background: transparent; color: var(--text-secondary); border-color: transparent; }
    .btn-ghost:hover {
      background: var(--surface-overlay); color: var(--text-primary); border-color: var(--border-default);
    }
    [data-theme="light"] .btn-ghost:hover { background: rgba(0,0,0,.06); border-color: var(--border-strong); }
    .btn-ghost:disabled { color: var(--text-disabled); }

    .btn-danger { background: var(--danger); color: #fff; border-color: var(--danger); }
    .btn-danger:hover { background: var(--danger-fg); }
    .btn-danger:disabled {
      background: var(--surface-raised); color: var(--text-disabled); border-color: var(--border-subtle);
    }

    .btn-block { width: 100%; }

    /* ── CARD ────────────────────────────────────────────────── */
    .card {
      background: var(--surface-raised);
      border: 1px solid var(--border-default);
      border-radius: var(--radius-lg);
      padding: var(--space-5);
      /* v0.16.3: sombra base sutil (Stripe cards siempre tienen mínima). */
      box-shadow: var(--shadow-sm);
      transition: border-color var(--transition-fast) var(--ease-default);
    }
    .card-interactive { cursor: pointer; }
    .card-interactive:hover { border-color: var(--border-strong); }

    .card-flat { box-shadow: none; }
    .card-elevated { box-shadow: var(--shadow-md); }
    .card-sunken { background: var(--surface-sunken); }

    .card-header {
      display: flex; align-items: center; justify-content: space-between;
      margin-bottom: var(--space-4);
    }
    .card-title { font-size: var(--text-lg); font-weight: var(--weight-bold); color: var(--text-primary); }
    .card-subtitle { font-size: var(--text-sm); color: var(--text-secondary); }
    .card-body { color: var(--text-primary); line-height: var(--leading-normal); }
    .card-footer { display: flex; gap: var(--space-2); margin-top: var(--space-4); }

    /* ── CHIP (interactivo: filtros, selecciones) ──────────────── */
    .chip {
      display: inline-flex; align-items: center; gap: var(--space-1);
      height: 28px; padding: 0 var(--space-3);
      border: 1px solid var(--border-default);
      background: transparent;
      border-radius: var(--radius-full);
      font-size: var(--text-sm); font-weight: var(--weight-medium);
      color: var(--text-secondary);
      cursor: pointer;
      transition: all var(--transition-fast) var(--ease-default);
    }
    .chip:hover { color: var(--text-primary); border-color: var(--border-strong); }
    .chip.is-active {
      background: var(--surface-overlay);
      color: var(--text-primary);
      border-color: var(--border-strong);
      box-shadow: inset 2px 0 0 var(--brand-500);
    }
    [data-theme="light"] .chip.is-active { background: rgba(0,0,0,.06); border-color: var(--border-default); }

    /* ── BADGE (informativo estático: status, contador) ────────── */
    .badge {
      display: inline-flex; align-items: center; gap: var(--space-1);
      height: 22px; padding: 0 var(--space-2);
      border-radius: var(--radius-sm);
      font-size: var(--text-xs); font-weight: var(--weight-medium);
      line-height: 1;
    }
    .badge-neutral { background: var(--surface-overlay); color: var(--text-secondary); }
    .badge-success { background: var(--success-bg); color: var(--success-fg); }
    .badge-danger  { background: var(--danger-bg);  color: var(--danger-fg); }
    .badge-warning { background: var(--warning-bg); color: var(--warning-fg); }
    .badge-info    { background: var(--info-bg);    color: var(--info-fg); }
    /* v0.16.3: badge brand sutil — crema sobre dark, palish sobre light. */
    .badge-brand   { background: var(--brand-100); color: var(--brand-700); }

    /* ── FIELD (input/textarea/select unificados) ──────────────── */
    .field { display: flex; flex-direction: column; gap: var(--space-2); }
    .field-label { font-size: var(--text-sm); font-weight: var(--weight-medium); color: var(--text-primary); }
    .field-helper { font-size: var(--text-xs); color: var(--text-tertiary); }
    .field-error { font-size: var(--text-xs); color: var(--danger-fg); }

    .field-input,
    .field-textarea,
    .field-select {
      width: 100%;
      background: var(--surface-base);
      border: 1px solid var(--border-default);
      border-radius: var(--radius-md);
      padding: var(--space-3);
      color: var(--text-primary);
      font-family: var(--font-body);
      font-size: var(--text-sm);
      transition: border-color var(--transition-fast) var(--ease-default);
    }
    .field-input:hover,
    .field-textarea:hover,
    .field-select:hover { border-color: var(--border-strong); }
    .field-input:focus,
    .field-textarea:focus,
    .field-select:focus {
      outline: none;
      border-color: var(--brand-500);
      /* v0.16.3: glow más sutil — alpha .10 (era .15). */
      box-shadow: 0 0 0 3px rgba(79,124,255,.10);
    }
    .field-select-inline { width: auto; }
    .field-textarea { min-height: 80px; resize: vertical; }
    .field.has-error .field-input,
    .field.has-error .field-textarea,
    .field.has-error .field-select { border-color: var(--danger); }

    /* ═══════════════════════════════════════════════════════════════
       v0.16.4 — UTILIDADES DE COMPOSICIÓN
       Clases para componer paneles con jerarquía y densidad correctas.
       Stripe-like: headings grandes, body fino, whitespace generoso.
       Migración a paneles ocurre en v0.16.6-9.
       ═══════════════════════════════════════════════════════════════ */

    /* ── TIPOGRAFÍA UTILITARIA ─────────────────────────────────── */
    .heading-display {
      font-family: var(--font-display);
      font-size: var(--text-5xl);
      line-height: var(--leading-tight);
      font-weight: var(--weight-regular);
      letter-spacing: -0.02em;
      color: var(--text-primary);
    }
    .heading-1 {
      font-family: var(--font-body);
      font-size: var(--text-4xl);
      line-height: var(--leading-tight);
      font-weight: var(--weight-bold);
      letter-spacing: -0.02em;
      color: var(--text-primary);
    }
    .heading-2 {
      font-family: var(--font-body);
      font-size: var(--text-3xl);
      line-height: var(--leading-snug);
      font-weight: var(--weight-bold);
      letter-spacing: -0.01em;
      color: var(--text-primary);
    }
    .heading-3 {
      font-family: var(--font-body);
      font-size: var(--text-2xl);
      line-height: var(--leading-snug);
      font-weight: var(--weight-bold);
      color: var(--text-primary);
    }
    .heading-4 {
      font-family: var(--font-body);
      font-size: var(--text-xl);
      line-height: var(--leading-snug);
      font-weight: var(--weight-medium);
      color: var(--text-primary);
    }

    .body-lg { font-size: var(--text-lg); line-height: var(--leading-relaxed); color: var(--text-primary); }
    .body    { font-size: var(--text-base); line-height: var(--leading-normal); color: var(--text-primary); }
    .body-sm { font-size: var(--text-sm); line-height: var(--leading-normal); color: var(--text-secondary); }
    .body-xs { font-size: var(--text-xs); line-height: var(--leading-normal); color: var(--text-tertiary); }

    .eyebrow {
      font-size: var(--text-xs);
      text-transform: uppercase;
      letter-spacing: 0.08em;
      font-weight: var(--weight-medium);
      color: var(--text-tertiary);
    }
    .muted  { color: var(--text-secondary); }
    .subtle { color: var(--text-tertiary); }

    /* ── SECCIONES Y LAYOUT ─────────────────────────────────────── */
    .section       { padding-top: var(--space-12); padding-bottom: var(--space-12); }
    .section-tight { padding-top: var(--space-8);  padding-bottom: var(--space-8); }
    .section-loose { padding-top: var(--space-16); padding-bottom: var(--space-16); }

    .stack-xs > * + * { margin-top: var(--space-1); }
    .stack-sm > * + * { margin-top: var(--space-2); }
    .stack    > * + * { margin-top: var(--space-4); }
    .stack-md > * + * { margin-top: var(--space-6); }
    .stack-lg > * + * { margin-top: var(--space-8); }

    .cluster    { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; }
    .cluster-sm { gap: var(--space-2); }
    .cluster-lg { gap: var(--space-6); }

    .divider {
      border: 0;
      border-top: 1px solid var(--border-subtle);
      margin: var(--space-8) 0;
    }
    .divider-tight { margin: var(--space-4) 0; }

    /* ── HEADER DE PANEL (patrón Stripe) ────────────────────────── */
    .panel-header {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: var(--space-6);
      margin-bottom: var(--space-10);
    }
    .panel-header-content { flex: 1; min-width: 0; }
    .panel-header-actions { flex-shrink: 0; }
    .panel-header .heading-1 { margin-bottom: var(--space-2); }
    .panel-header .body-sm   { max-width: 60ch; }

    /* ── METRIC (números grandes Stripe-style) ──────────────────── */
    .metric { display: flex; flex-direction: column; gap: var(--space-1); }
    .metric-label {
      font-size: var(--text-sm);
      color: var(--text-tertiary);
      letter-spacing: 0.02em;
    }
    .metric-value {
      font-size: var(--text-4xl);
      font-weight: var(--weight-bold);
      font-family: var(--font-body);
      letter-spacing: -0.02em;
      line-height: 1;
      color: var(--text-primary);
    }
    .metric-delta { font-size: var(--text-xs); font-weight: var(--weight-medium); }
    .metric-delta.up   { color: var(--success-fg); }
    .metric-delta.down { color: var(--danger-fg); }
    .metric-delta.flat { color: var(--text-tertiary); }

    /* ═══════════════════════════════════════════════════════════════
       v0.16.5 — CHROME (sidebar/header)
       Sidebar Stripe-like con Hooks marca arriba + iconos Tabler.
       Convive con .prof-sidebar legacy (wrapper se mantiene para que
       breakpoints mobile sigan funcionando). El CSS viejo de
       .prof-sidebar-identity/-nav/-footer queda como deuda v0.16.10.
       ═══════════════════════════════════════════════════════════════ */

    /* ── BRAND (Hooks + texto Reelscript arriba del sidebar) ──── */
    .chrome-brand {
      display: flex; align-items: center; gap: var(--space-2);
      padding: var(--space-6) var(--space-3) var(--space-5);
    }
    .chrome-brand-mark { width: 28px; height: 28px; flex-shrink: 0; }
    .chrome-brand-text {
      font-family: var(--font-body);
      font-size: var(--text-lg);
      font-weight: var(--weight-bold);
      letter-spacing: -0.01em;
      color: var(--text-primary);
    }

    /* ── DIVIDER del sidebar (más sutil que .divider general) ── */
    .chrome-divider {
      border: 0;
      border-top: 1px solid var(--border-subtle);
      margin: var(--space-3) var(--space-3);
    }

    /* ── NAV ITEMS ────────────────────────────────────────────── */
    .chrome-nav {
      display: flex; flex-direction: column;
      gap: 2px;
      padding: 0 var(--space-2);
    }
    .chrome-nav-item {
      display: flex; align-items: center; gap: var(--space-3);
      padding: var(--space-2) var(--space-3);
      border: 0;
      background: transparent;
      border-radius: var(--radius-md);
      color: var(--text-secondary);
      font-family: var(--font-body);
      font-size: var(--text-sm);
      font-weight: var(--weight-medium);
      text-align: left;
      cursor: pointer;
      transition: background var(--transition-fast) var(--ease-default),
                  color var(--transition-fast) var(--ease-default);
      width: 100%;
    }
    .chrome-nav-item:hover {
      background: var(--surface-overlay);
      color: var(--text-primary);
    }
    .chrome-nav-item.on {
      background: var(--surface-overlay);
      color: var(--text-primary);
    }
    [data-theme="light"] .chrome-nav-item.on { background: rgba(0,0,0,.06); }
    .chrome-nav-item .chrome-icon { color: var(--text-tertiary); flex-shrink: 0; }
    .chrome-nav-item:hover .chrome-icon { color: var(--text-secondary); }
    .chrome-nav-item.on .chrome-icon { color: var(--brand-500); }

    .chrome-icon {
      width: 18px; height: 18px;
      stroke-width: 1.5;
      transition: color var(--transition-fast) var(--ease-default);
    }

    /* ── BLOQUE INFERIOR (usage + user + theme) ───────────────── */
    .chrome-bottom {
      margin-top: auto;
      padding: var(--space-3);
      display: flex; flex-direction: column; gap: var(--space-4);
    }

    .chrome-usage {
      display: flex; flex-direction: column; gap: var(--space-2);
    }
    .chrome-usage-head {
      display: flex; justify-content: space-between; align-items: baseline;
    }
    .chrome-usage-bar {
      height: 4px;
      background: var(--surface-overlay);
      border-radius: var(--radius-full);
      overflow: hidden;
    }
    .chrome-usage-fill {
      height: 100%;
      background: var(--brand-500);
      border-radius: var(--radius-full);
      width: 0%;
      transition: width var(--transition-slow) var(--ease-default);
    }

    .chrome-user {
      display: flex; align-items: center; gap: var(--space-3);
      padding: var(--space-2);
      border-radius: var(--radius-md);
      cursor: pointer;
      transition: background var(--transition-fast) var(--ease-default);
    }
    .chrome-user:hover { background: var(--surface-overlay); }
    .chrome-user-av {
      width: 32px; height: 32px;
      border-radius: var(--radius-full);
      overflow: hidden;
      flex-shrink: 0;
      background: var(--surface-overlay);
      display: flex; align-items: center; justify-content: center;
    }
    .chrome-user-av img { width: 100%; height: 100%; object-fit: cover; }
    .chrome-user-info {
      flex: 1; min-width: 0;
      display: flex; flex-direction: column; gap: 2px;
    }
    .chrome-user-email {
      font-size: var(--text-sm);
      color: var(--text-primary);
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .chrome-user-plan { line-height: 1; }

    .chrome-theme {
      display: inline-flex; gap: 2px;
      padding: 3px;
      background: var(--surface-overlay);
      border: 1px solid var(--border-subtle);
      border-radius: var(--radius-full);
      align-self: stretch;
      justify-content: center;
    }
    .chrome-theme button {
      padding: 4px var(--space-3);
      background: transparent;
      color: var(--text-tertiary);
      border: none;
      border-radius: var(--radius-full);
      font-family: var(--font-body);
      font-size: var(--text-xs);
      cursor: pointer;
      transition: all var(--transition-fast) var(--ease-default);
    }
    .chrome-theme button:hover:not(.on) { color: var(--text-primary); }
    .chrome-theme button.on {
      background: var(--surface-raised);
      color: var(--text-primary);
      box-shadow: var(--shadow-sm);
    }

    [data-theme="light"] .hero-badge { color: #7c3a00; border-color: rgba(180,80,0,0.3); background: rgba(255,140,0,0.1); }
    [data-theme="light"] nav { background: rgba(240,237,232,.75); }
    [data-theme="light"] ::-webkit-scrollbar-track { background: var(--bg); }
    [data-theme="light"] ::-webkit-scrollbar-thumb { background: rgba(0,0,0,.12); }
    [data-theme="light"] ::selection { background: rgba(79,124,255,.15); color: var(--brand-700); }

    /* Light mode — surfaces, cards, profile */
    /* .profile-overlay light mode — moved to "Light mode — profile" block below */
    [data-theme="light"] .prof-sidebar { background: rgba(247,245,241,.85); border-color: rgba(0,0,0,.06); }
    [data-theme="light"] .prof-stat-card,
    [data-theme="light"] .prof-card,
    [data-theme="light"] .asst-card-v2,
    [data-theme="light"] .script-stripe-card { background: var(--surf); }
    [data-theme="light"] .prof-header { background: var(--surf); backdrop-filter: none; }
    [data-theme="light"] .ig-card { border: 1px solid rgba(0,0,0,.1); box-shadow: 0 1px 4px rgba(0,0,0,.06); }
    [data-theme="light"] .ig-card:hover { border-color: color-mix(in srgb, var(--brand-500) 35%, transparent); box-shadow: 0 2px 8px color-mix(in srgb, var(--brand-500) 10%, transparent); }
    [data-theme="light"] .ig-stat-card { background: #fff; border-color: rgba(0,0,0,.08); }
    [data-theme="light"] .ig-perf-badge { box-shadow: 0 1px 4px rgba(0,0,0,.15); }
    [data-theme="light"] .ig-chart-tab { background: #fff; }
    [data-theme="light"] .ig-card-overlay { background: linear-gradient(transparent 70%, rgba(0,0,0,.25)); }
    [data-theme="light"] .prof-tabs { background: rgba(79,124,255,.08); }
    [data-theme="light"] .avatar-picker { background: var(--surf); border-color: rgba(0,0,0,.1); }

    /* Light mode — sections, pricing, cards */
    [data-theme="light"] .price-card { background: var(--surf); }
    [data-theme="light"] .price-card.featured { background: rgba(79,124,255,.04); border-color: rgba(79,124,255,.25); }
    [data-theme="light"] .rs-card { background: var(--surf); }
    [data-theme="light"] .modal { background: var(--surf); border-color: rgba(0,0,0,.08); }
    [data-theme="light"] .overlay { background: rgba(240,237,232,.7); }
    [data-theme="light"] .drawer { background: var(--surf); }
    [data-theme="light"] .topup-opt { background: var(--surf); }
    [data-theme="light"] .flow-node { background: var(--surf); }
    [data-theme="light"] .tour-tooltip { background: var(--surf); border-color: rgba(79,124,255,.15); }

    /* Light mode — text contrast */
    [data-theme="light"] .grad-txt {
      color: var(--brand-700); -webkit-text-fill-color: var(--brand-700);
    }
    [data-theme="light"] .s-label { color: var(--brand-700); background: rgba(79,124,255,.08); border-color: rgba(79,124,255,.15); }
    [data-theme="light"] .counter-num { color: var(--text2); }
    [data-theme="light"] .badge-bal { color: var(--brand-700); background: rgba(79,124,255,.08); border-color: rgba(79,124,255,.2); }

    /* Light mode — inputs */
    [data-theme="light"] .input-glow-wrap input { background: var(--surf); border-color: rgba(79,124,255,.3); }
    [data-theme="light"] .input-glow-wrap input::placeholder { color: #999; }
    [data-theme="light"] .input-glow-wrap input:focus { background: #fefefe; }
    [data-theme="light"] .script-ta { background: var(--surf); }
    [data-theme="light"] .script-ta:focus { background: #fff; }
    [data-theme="light"] .style-search { background: var(--surf); }
    [data-theme="light"] .field input { background: var(--surf); }
    [data-theme="light"] .custom-row input { background: var(--surf); }

    /* Light mode — style pills */
    [data-theme="light"] .style-pill { background: var(--surf); }
    [data-theme="light"] .style-pill:hover { background: #fff; }
    [data-theme="light"] .style-pill .sp-hint { color: #777; }
    [data-theme="light"] .style-pill .sp-name { color: #333; }

    /* Light mode — preview card */
    [data-theme="light"] .preview-card { background: var(--surf); border-color: rgba(0,0,0,.08); }
    [data-theme="light"] .preview-content::after { background: linear-gradient(transparent, var(--surf)); }
    [data-theme="light"] .preview-text { color: #333; }
    [data-theme="light"] .hook-card { background: #f9fafb; border-color: #e5e7eb; }
    [data-theme="light"] .script-section.closing .script-section-content { color: #555; }

    /* Light mode — project detail */
    [data-theme="light"] .proj-detail-overlay { background: rgba(240,237,232,.97); }
    [data-theme="light"] .script-card { background: var(--surf); }
    [data-theme="light"] .script-card-perf input,
    [data-theme="light"] .script-card-perf textarea { background: var(--surf2); }

    /* Light mode — buttons */
    [data-theme="light"] .btn-sm:hover { color: var(--brand-700); }
    [data-theme="light"] .style-chip:hover,
    [data-theme="light"] .style-chip.act { color: var(--brand-700); }
    [data-theme="light"] .style-pill { box-shadow: 0 4px 0 rgba(0,0,0,.08); }
    [data-theme="light"] .style-pill:hover { box-shadow: 0 6px 0 rgba(0,0,0,.08), var(--sh); }
    [data-theme="light"] .style-chip { box-shadow: 0 3px 0 rgba(0,0,0,.1); }
    [data-theme="light"] .topup-opt { box-shadow: 0 4px 0 rgba(0,0,0,.1); }
    [data-theme="light"] .btn-google-auth { box-shadow: 0 4px 0 #d1d5db; }
    [data-theme="light"] .rs-card-act:hover { color: var(--brand-700); }

    /* Light mode — hover borders on cards */
    [data-theme="light"] .prof-stat-card:hover,
    [data-theme="light"] .rs-card:hover,
    [data-theme="light"] .script-stripe-card:hover,
    [data-theme="light"] .asst-card-v2:hover { border-color: rgba(0,0,0,.15); }

    /* Light mode — profile */
    [data-theme="light"] .profile-overlay {
      background: var(--bg);
      background-image:
        radial-gradient(ellipse at 15% -5%, rgba(79,124,255,.06) 0%, transparent 45%),
        radial-gradient(ellipse at 85% 95%, rgba(139,92,246,.04) 0%, transparent 45%);
    }
    [data-theme="light"] .prof-main::-webkit-scrollbar-thumb { background: rgba(0,0,0,.1); }

    /* Light mode — separators */
    [data-theme="light"] div[style*="linear-gradient(90deg,transparent,rgba(249"] {
      opacity: .5;
    }

    body {
      font-family: var(--font-body);
      background: var(--bg);
      color: var(--text);
      min-height: 100vh;
      overflow-x: hidden;
      font-size: 15px;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      display: flex;
      flex-direction: column;
    }
    /* Sticky footer pattern: main expands to fill, footer stays at bottom */
    main { flex: 1 0 auto; }
    body > footer { flex-shrink: 0; }

    h1, h2, h3, h4, .s-title, .hero-h1, .cta-h2, .price-title, .price-amount {
      font-family: var(--font-display);
    }

    /* v0.14.36 — Fade-in al cambiar de panel workspace. Aplica al panel cuando
       profTab() lo activa: opacity 0→1 + translateY(4px→0) en 200ms. */
    /* OJO: nada de transform aquí. Un transform en el contenedor del workspace
       (#profPanelIdeas.panel-fade-in) crea un containing-block que rompe el
       position:fixed del rail inferior → hueco negro bajo la barra en móvil. Solo opacidad. */
    @keyframes panelFadeIn {
      from { opacity: 0; }
      to   { opacity: 1; }
    }
    .panel-fade-in { animation: panelFadeIn 200ms ease-out; }

    /* v2 "SIGNAL" — consola fría monocromo con un solo acento (azure #4f7cff).
       Cero serif: titulares en Space Grotesk (--font-display-2). Cuerpo Hanken,
       datos JetBrains Mono. Tras el rebrand (2026-06-03) la escala brand-* es azul
       Signal de forma GLOBAL (:root); el isotipo naranja es la única ancla de marca.
       El bloque #profilePage de abajo quedó redundante con :root pero se conserva. */
    #profilePage {
      --font-display: var(--font-display-2);   /* Space Grotesk — sin serif */
      --font-editorial: var(--font-display-2);
      /* Acento azul Signal (remapea brand-* en el workspace) */
      --brand-50:  #eef3ff;
      --brand-100: #dde6ff;
      --brand-200: #c2d2ff;
      --brand-300: #97b2ff;
      --brand-400: #6f93ff;
      --brand-500: #4f7cff;   /* --accent del prototipo */
      --brand-600: #3a63ec;
      --brand-700: #2f4fc8;
      --brand-800: #2941a0;
      --brand-900: #22357c;
      --brand:     #4f7cff;
      --brand-cta: #3a63ec;
      /* Gradientes legacy → azul monocromo (Signal no usa naranja/fucsia) */
      --grad:  linear-gradient(135deg, #4f7cff 0%, #6f93ff 100%);
      --grad2: linear-gradient(135deg, #3a63ec 0%, #4f7cff 100%);
      --shadow-glow: 0 0 0 1px color-mix(in srgb, #4f7cff 50%, transparent), 0 0 32px rgba(79,124,255,.20);
    }
    /* Modales viven en <body>, no en #profilePage. Cuando el user está en workspace
       (body.workspace), los modales también pasan a sans para coherencia. */
    body.workspace .modal h2 { font-family: var(--font-body); }

    ::selection { background: rgba(79,124,255,.15); color: inherit; }
    :focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }

    /* ── Scrollbar ───────────────────────────────────────────── */
    ::-webkit-scrollbar { width: 6px; }
    ::-webkit-scrollbar-track { background: var(--bg); }
    ::-webkit-scrollbar-thumb { background: rgba(255,255,255,.12); border-radius: 3px; }
    ::-webkit-scrollbar-thumb:hover { background: var(--text3); }

    /* ── In-app browser banner ──────────────────────────────── */
    #rsInAppBanner {
      position: fixed; top: 0; left: 0; right: 0; z-index: 201;
      background: linear-gradient(90deg, var(--brand-600), #3a63ec);
      color: #fff; font-family: var(--font-body);
      box-shadow: 0 2px 8px rgba(0,0,0,.25);
    }
    .rs-iab-inner {
      display: flex; align-items: center; gap: 10px;
      padding: 9px 14px; max-width: 1200px; margin: 0 auto;
    }
    .rs-iab-icon { flex: 0 0 auto; font-size: .95rem; line-height: 1; }
    .rs-iab-text { flex: 1 1 auto; font-size: .82rem; line-height: 1.3; }
    .rs-iab-cta {
      flex: 0 0 auto; background: rgba(255,255,255,.2); color: #fff;
      border: 1px solid rgba(255,255,255,.4); border-radius: 8px;
      padding: 6px 12px; font-size: .78rem; font-weight: 600;
      cursor: pointer; transition: background .15s; font-family: inherit;
    }
    .rs-iab-cta:hover { background: rgba(255,255,255,.3); }
    .rs-iab-close {
      flex: 0 0 auto; background: transparent; color: #fff;
      border: none; font-size: 1rem; padding: 4px 8px;
      cursor: pointer; opacity: .85; line-height: 1;
    }
    .rs-iab-close:hover { opacity: 1; }
    .rs-iab-tip {
      padding: 7px 14px 9px; text-align: center;
      font-size: .76rem; color: rgba(255,255,255,.95);
      border-top: 1px solid rgba(255,255,255,.22);
      background: rgba(0,0,0,.08);
    }
    body.rs-iab-on { padding-top: 44px; }
    body.rs-iab-on nav { top: 44px; }
    body.rs-iab-on.rs-iab-tip-on { padding-top: 74px; }
    body.rs-iab-on.rs-iab-tip-on nav { top: 74px; }
    @media (max-width: 640px) {
      .rs-iab-text { font-size: .76rem; }
      .rs-iab-cta { font-size: .72rem; padding: 5px 10px; }
      .rs-iab-inner { padding: 8px 12px; gap: 8px; }
      body.rs-iab-on { padding-top: 46px; }
      body.rs-iab-on nav { top: 46px; }
      body.rs-iab-on.rs-iab-tip-on { padding-top: 78px; }
      body.rs-iab-on.rs-iab-tip-on nav { top: 78px; }
    }

    /* ── Nav ─────────────────────────────────────────────────── */
    nav {
      position: sticky; top: 0; z-index: 200;
      display: flex; align-items: center; justify-content: space-between;
      padding: 0 32px; height: 56px;
      background: rgba(10,11,15,.55);
      backdrop-filter: blur(14px) saturate(1.15);
      border-bottom: 1px solid transparent;
      transition: background .25s ease, backdrop-filter .25s ease, border-color .25s ease, box-shadow .25s ease;
    }
    nav.scrolled {
      background: rgba(10,11,15,.88);
      backdrop-filter: blur(24px) saturate(1.2);
      border-bottom-color: rgba(255,255,255,.06);
      box-shadow: 0 2px 16px rgba(0,0,0,.18);
    }
    [data-theme="light"] nav { background: rgba(255,250,243,.6); }
    [data-theme="light"] nav.scrolled { background: rgba(255,250,243,.92); border-bottom-color: rgba(0,0,0,.08); }

    /* Landing-only center nav */
    .nav-c-landing {
      display: flex; align-items: center; gap: 4px;
      flex: 1; justify-content: center;
    }
    .nav-c-link {
      display: inline-flex; align-items: center; gap: 6px;
      background: none; border: 0; cursor: pointer;
      color: var(--text2); font-family: var(--font-body); font-weight: 500; font-size: .85rem;
      padding: 8px 14px; border-radius: 10px;
      text-decoration: none; transition: color .15s, background .15s;
      white-space: nowrap;
    }
    .nav-c-link:hover { color: var(--text); background: rgba(255,255,255,.04); }
    [data-theme="light"] .nav-c-link:hover { background: rgba(0,0,0,.04); }
    .nav-c-link .chev {
      width: 10px; height: 10px; opacity: .6;
      transition: transform .2s;
    }
    .nav-c-dropdown { position: relative; }
    .nav-c-dropdown.open .nav-c-link .chev { transform: rotate(180deg); }
    .nav-c-menu {
      position: absolute; top: calc(100% + 6px); left: 50%; transform: translateX(-50%) translateY(-4px);
      min-width: 280px; padding: 8px;
      background: var(--surf); border: 1px solid var(--border); border-radius: 14px;
      box-shadow: 0 12px 40px rgba(0,0,0,.35);
      opacity: 0; pointer-events: none;
      transition: opacity .18s ease, transform .18s ease;
      display: flex; flex-direction: column; gap: 2px;
    }
    .nav-c-dropdown.open .nav-c-menu { opacity: 1; pointer-events: auto; transform: translateX(-50%) translateY(0); }
    .nav-c-menu-item {
      display: flex; align-items: center; gap: 10px;
      padding: 10px 12px; border-radius: 10px;
      color: var(--text2); font-size: .82rem; font-weight: 500; text-decoration: none;
      transition: background .15s, color .15s;
    }
    .nav-c-menu-item:hover { background: rgba(79,124,255,.08); color: var(--text); }
    .nav-c-menu-item .arr { margin-left: auto; opacity: 0; transition: opacity .15s, transform .15s; }
    .nav-c-menu-item:hover .arr { opacity: 1; transform: translateX(2px); color: var(--brand); }

    @media (max-width: 900px) {
      .nav-c-landing { display: none; }
    }

    .brand-link { display: inline-flex; align-items: center; gap: 6px; line-height: 1; color: inherit; }
    .brand-logo {
      height: 44px; width: 44px;
      display: block;
      flex-shrink: 0;
      transform: scale(1.25);
      transform-origin: center;
    }
    .brand-text {
      font-family: var(--font-display-2), 'Hanken Grotesk', -apple-system, BlinkMacSystemFont, sans-serif;
      font-weight: 700;
      font-size: 20px;
      letter-spacing: -0.01em;
      color: var(--text);
      line-height: 1;
    }
    @media (max-width: 640px) {
      .brand-logo { height: 36px; width: 36px; }
      .brand-text { font-size: 17px; }
    }

    .nav-r { display: flex; align-items: center; gap: 8px; }

    .badge-bal {
      display: none; align-items: center; gap: 6px;
      background: rgba(79,124,255,.08); border: 1px solid rgba(79,124,255,.2);
      color: var(--brand-300); font-size: .75rem; font-weight: 600;
      padding: 6px 14px; border-radius: 20px; cursor: pointer;
      transition: all .2s; font-family: var(--font-body);
    }
    .badge-bal:hover { background: rgba(79,124,255,.15); border-color: rgba(79,124,255,.35); }
    .badge-bal.on { display: flex; }

    .user-pill { display: none; align-items: center; gap: 7px; font-size: .82rem; color: var(--text2); }
    .user-pill.on { display: flex; }
    .avatar {
      width: 28px; height: 28px; border-radius: 50%;
      background: var(--grad); display: flex; align-items: center; justify-content: center;
      color: #fff; font-size: .7rem; font-weight: 800; overflow: hidden;
    }
    .btn-ghost {
      background: none; border: none; color: var(--text3);
      font-size: .75rem; cursor: pointer; transition: color .2s; padding: 3px;
    }
    .btn-ghost:hover { color: #f87171; }
    .user-menu-wrap { position: relative; }
    .user-menu-chevron { font-size: .6rem; color: var(--text3); transition: transform .15s; line-height: 1; }
    .user-pill.menu-open .user-menu-chevron { transform: rotate(180deg); }

    /* v0.14.9a — Avatar menu (popover desktop / sheet mobile) */
    .av-menu-overlay {
      display: none; position: fixed; inset: 0;
      background: rgba(0,0,0,.6); backdrop-filter: blur(2px);
      z-index: 1099;
      opacity: 0; transition: opacity .2s ease;
    }
    .av-menu-overlay.on { display: block; opacity: 1; }
    .av-menu {
      position: fixed;
      width: 320px; max-width: calc(100vw - 32px);
      background: var(--surf); border: 1px solid var(--border);
      border-radius: 14px; padding: 10px;
      box-shadow: 0 16px 48px rgba(0,0,0,.4), 0 4px 12px rgba(0,0,0,.25);
      z-index: 1100;
      opacity: 0; transform: translateY(8px) scale(.98);
      transition: opacity .18s ease, transform .18s ease;
      pointer-events: none;
      max-height: calc(100vh - 80px); overflow-y: auto;
    }
    .av-menu.on { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }
    [data-theme="light"] .av-menu {
      background: var(--surf);
      box-shadow: 0 16px 48px rgba(0,0,0,.18), 0 4px 12px rgba(0,0,0,.08);
    }
    .av-menu-handle { display: none; }

    .av-menu-header {
      display: flex; align-items: center; gap: 12px;
      padding: 8px 8px 12px;
    }
    .av-menu-av {
      width: 56px; height: 56px; border-radius: 14px;
      background: var(--surf2); border: 1px solid var(--border);
      flex-shrink: 0; overflow: hidden;
      background-size: cover; background-position: center;
    }
    .av-menu-info { flex: 1; min-width: 0; }
    .av-menu-email {
      font-family: var(--font-body); font-size: .92rem; color: var(--text);
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
      margin-bottom: 4px;
    }
    .av-menu-plan-row { display: flex; align-items: center; gap: 6px; }
    .av-menu-close {
      background: transparent; border: 0; color: var(--text3);
      font-size: 1rem; cursor: pointer; padding: 6px 8px;
      flex-shrink: 0; border-radius: 8px;
      transition: background .15s, color .15s;
    }
    .av-menu-close:hover { background: var(--surf2); color: var(--text); }

    .av-menu-usage {
      padding: 8px 10px; margin-bottom: 8px;
      background: var(--surf2); border-radius: 10px;
    }
    .av-menu-usage-row {
      display: flex; align-items: center; justify-content: space-between;
      font-size: .76rem; color: var(--text2); margin-bottom: 6px;
    }
    .av-menu-usage-num { font-family: var(--font-mono); color: var(--text); font-variant-numeric: tabular-nums; }
    .av-menu-usage-bar {
      height: 4px; border-radius: 2px;
      background: rgba(255,255,255,.06); overflow: hidden;
    }
    [data-theme="light"] .av-menu-usage-bar { background: rgba(0,0,0,.08); }
    .av-menu-usage-fill {
      height: 100%; width: 0;
      background: linear-gradient(90deg, var(--brand), var(--brand-300));
      transition: width .3s ease;
    }

    .av-menu-sep {
      height: 1px; background: var(--border); margin: 4px 0;
    }

    .av-menu-item {
      display: flex; align-items: center; gap: 12px;
      width: 100%; padding: 10px 10px;
      background: transparent; border: 0; cursor: pointer;
      color: var(--text2); font-family: var(--font-body);
      font-size: .9rem; font-weight: 500;
      text-align: left; text-decoration: none;
      border-radius: 8px;
      transition: background .15s, color .15s;
    }
    .av-menu-item:hover { background: var(--surf2); color: var(--text); }
    .av-menu-item.av-menu-logout { color: #f87171; }
    .av-menu-item.av-menu-logout:hover { background: rgba(220,38,38,.08); color: #fca5a5; }
    [data-theme="light"] .av-menu-item.av-menu-logout { color: #b91c1c; }
    .av-menu-icon {
      width: 28px; height: 28px; border-radius: 8px;
      background: rgba(255,255,255,.04);
      display: inline-flex; align-items: center; justify-content: center;
      color: var(--text3); flex-shrink: 0;
    }
    [data-theme="light"] .av-menu-icon { background: rgba(0,0,0,.04); }
    .av-menu-item:hover .av-menu-icon { color: var(--brand); }
    .av-menu-logout .av-menu-icon { color: #f87171; }
    .av-menu-logout:hover .av-menu-icon { color: #fca5a5; }

    .av-menu-row {
      display: flex; align-items: center; justify-content: space-between;
      gap: 12px; padding: 10px 10px;
    }
    .av-menu-row-toggle .av-menu-row-label {
      display: inline-flex; align-items: center; gap: 12px;
      color: var(--text2); font-size: .9rem; font-weight: 500;
    }
    .av-menu-row-toggle .theme-seg { padding: 2px; gap: 2px; }
    .av-menu-row-toggle .theme-seg-opt { font-size: .8rem; padding: 4px 10px; }

    /* Mobile bottom sheet */
    @media (max-width: 768px) {
      .av-menu {
        position: fixed; left: 0; right: 0; bottom: 0; top: auto;
        width: 100%; max-width: 100%;
        max-height: 90vh;
        border-radius: 18px 18px 0 0;
        padding: 6px 14px 24px;
        transform: translateY(100%);
        transition: transform .3s cubic-bezier(.4,0,.2,1);
      }
      .av-menu.on { transform: translateY(0); }
      .av-menu-handle {
        display: block;
        width: 40px; height: 4px; border-radius: 2px;
        background: var(--text3); opacity: .35;
        margin: 6px auto 8px;
      }
      .av-menu-header { padding: 4px 4px 12px; }
      .av-menu-av { width: 64px; height: 64px; }
      .av-menu-email { font-size: 1rem; }
    }

    .user-menu-dropdown {
      display: none; position: absolute; top: calc(100% + 8px); right: 0;
      background: var(--surf); border: 1px solid rgba(255,255,255,.08);
      border-radius: 10px; min-width: 200px; padding: 6px;
      box-shadow: 0 8px 24px rgba(0,0,0,.25); z-index: 999;
      animation: menuIn .15s ease;
    }
    [data-theme="light"] .user-menu-dropdown { border-color: rgba(0,0,0,.1); box-shadow: 0 8px 24px rgba(0,0,0,.12); }
    .user-menu-dropdown.on { display: block; }
    @keyframes menuIn { from { opacity:0; transform:translateY(-6px) } to { opacity:1; transform:translateY(0) } }
    .user-menu-item {
      display: flex; align-items: center; gap: 8px; width: 100%;
      padding: 8px 10px; border: none; background: none; color: var(--text2);
      font-size: .83rem; border-radius: 7px; cursor: pointer; text-align: left; transition: background .15s, color .15s;
    }
    .user-menu-item:hover { background: rgba(255,255,255,.06); color: var(--text1); }
    [data-theme="light"] .user-menu-item:hover { background: rgba(0,0,0,.05); }
    .user-menu-logout { color: #f87171; }
    .user-menu-logout:hover { background: rgba(248,113,113,.1) !important; color: #f87171 !important; }
    .user-menu-divider { height: 1px; background: rgba(255,255,255,.08); margin: 4px 0; }
    [data-theme="light"] .user-menu-divider { background: rgba(0,0,0,.08); }
    .user-menu-row {
      display: flex; align-items: center; gap: 10px;
      padding: 6px 10px; border-radius: 7px;
      color: var(--text2); font-size: .83rem;
    }
    .user-menu-row-label { flex: 1; }
    .theme-seg {
      display: inline-flex;
      padding: 3px;
      border: 1px solid rgba(255,255,255,.1);
      border-radius: 999px;
      background: rgba(255,255,255,.04);
      gap: 2px;
    }
    [data-theme="light"] .theme-seg {
      border-color: rgba(0,0,0,.1);
      background: rgba(0,0,0,.04);
    }
    .theme-seg-opt {
      display: inline-flex; align-items: center; justify-content: center;
      width: 28px; height: 22px;
      padding: 0;
      border: none;
      background: transparent;
      color: var(--text3);
      font-size: .8rem;
      border-radius: 999px;
      cursor: pointer;
      transition: background .18s, color .18s, transform .18s;
    }
    .theme-seg-opt:hover { color: var(--text); }
    .theme-seg-opt.on {
      background: rgba(79,124,255,.18);
      color: var(--text);
      box-shadow: inset 0 0 0 1px rgba(79,124,255,.3);
    }
    [data-theme="light"] .theme-seg-opt.on {
      background: rgba(79,124,255,.14);
      box-shadow: inset 0 0 0 1px rgba(79,124,255,.35);
    }
    .mob-theme-row {
      display: flex; align-items: center; justify-content: space-between;
      gap: 10px;
      padding: 8px 12px;
      margin-top: 8px;
      border: 1px solid var(--border);
      border-radius: 10px;
      background: var(--surf);
      font-size: .82rem; color: var(--text2);
    }
    .mob-theme-row .theme-seg-opt { width: 34px; height: 26px; font-size: .9rem; }
    .prof-theme-row {
      display: flex; align-items: center; justify-content: space-between;
      gap: 10px;
      padding: 6px 4px 10px;
      margin-bottom: 4px;
      border-bottom: 1px solid var(--border);
      font-size: .78rem; color: var(--text3);
    }
    .prof-theme-label { font-weight: 500; }

    .btn-nav {
      padding: 7px 14px; border-radius: var(--rsm);
      font-size: .82rem; font-weight: 600; cursor: pointer;
      border: 1px solid var(--border); background: var(--surf);
      color: var(--text2); transition: all .2s;
    }
    .btn-nav:hover { border-color: var(--brand); color: var(--text); }
    .btn-nav.hi {
      /* v0.14.35.a: consistencia CTA — antes var(--grad), ahora --brand-cta. */
      background: var(--brand-cta); color: #fff; border-color: transparent;
      box-shadow: 0 4px 0 #22357c; transform: translateY(0);
      transition: transform .12s, box-shadow .12s, opacity .2s;
    }
    .btn-nav.hi:hover { transform: translateY(-1px); box-shadow: 0 5px 0 #22357c; }
    .btn-nav.hi:active { transform: translateY(3px); box-shadow: 0 1px 0 #22357c; }

    /* ── Hero ─────────────────────────────────────────────────── */
    .hero {
      position: relative; overflow: hidden;
      display: flex; flex-direction: column;
      align-items: center; justify-content: center;
      padding: 64px 20px 48px;
      text-align: center;
    }
    .hero > * { position: relative; z-index: 1; }

    /* Global aurora canvas — single fixed layer behind everything */
    #globalAurora {
      position: fixed; inset: 0; width: 100vw; height: 100vh;
      pointer-events: none; z-index: 0;
    }
    /* light mode: canvas is transparent, body bg shows through */

    /* Badge */
    .hero-badge {
      display: inline-flex; align-items: center; gap: 6px;
      background: rgba(79,124,255,.08); border: 1px solid rgba(79,124,255,.2);
      color: var(--brand-200); font-size: .75rem; font-weight: 600;
      padding: 5px 14px; border-radius: 20px; margin-bottom: 24px;
      letter-spacing: .3px;
    }
    .badge-dot {
      width: 5px; height: 5px; border-radius: 50%; background: var(--brand-300);
    }
    @keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(.7)} }
    @keyframes badge-in { from{opacity:0;transform:translateY(-10px)} to{opacity:1;transform:translateY(0)} }

    /* H1 */
    .hero-h1 {
      font-size: clamp(2.8rem, 6.5vw, 4.8rem);
      font-weight: 400; line-height: 1.08; letter-spacing: -1.5px;
      margin-bottom: 20px; max-width: 820px;
      animation: fade-up .5s ease both;
    }
    .hero-h1 .grad-txt {
      color: var(--brand-300);
      -webkit-text-fill-color: var(--brand-300);
      font-style: italic;
    }
    [data-theme="light"] .hero-h1 .grad-txt {
      color: var(--brand-700);
      -webkit-text-fill-color: var(--brand-700);
    }

    .hero-sub {
      font-size: clamp(1rem, 2.5vw, 1.15rem);
      color: var(--text2); line-height: 1.6; max-width: 520px;
      margin-bottom: 32px;
      animation: fade-up .5s ease .1s both;
    }
    .hero-sub strong { color: var(--text); font-weight: 600; }

    @keyframes fade-up { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:translateY(0)} }

    /* ── Hero v2 (centered, v0.14.11a) ───────────────────────── */
    .hero-v2 {
      padding: 56px 24px 40px; text-align: center;
      max-width: 1240px; margin: 0 auto;
    }
    .hero-grid {
      display: flex; flex-direction: column;
      gap: 32px; align-items: center; width: 100%;
    }
    .hero-copy {
      display: flex; flex-direction: column; align-items: center;
      max-width: 760px; width: 100%;
    }
    @media (max-width: 980px) {
      .hero-grid { gap: 28px; }
      .hero-v2 { padding: 36px 20px 24px; }
    }
    @media (max-width: 640px) {
      .hero-v2 { padding: 24px 16px 16px; }
      .hero-grid { gap: 24px; }
      .hero-h1-v2 { font-size: clamp(2rem, 9vw, 2.8rem); line-height: 1.1; letter-spacing: -1px; }
      .hero-sub-v2 { font-size: .98rem; max-width: 100%; }
      .hero-ctas { flex-direction: column; align-items: stretch; gap: 10px; width: 100%; }
      .hero-cta-primary,
      .hero-cta-secondary { width: 100%; justify-content: center; padding: 14px; }
      .hero-cta-secondary { gap: 6px; }
    }

    /* Pill prueba social (v0.14.11a) — sustituye eyebrow */
    .hero-pill {
      display: inline-flex; align-items: center; gap: 8px;
      padding: 8px 16px; border-radius: 999px;
      background: rgba(31,26,34,.6);
      border: 1px solid rgba(241,234,217,.15);
      color: rgba(241,234,217,.85); font-family: var(--font-body);
      font-size: .82rem; font-weight: 500;
      margin-bottom: 24px;
      backdrop-filter: blur(6px);
    }
    [data-theme="light"] .hero-pill {
      background: rgba(255,255,255,.55);
      border-color: rgba(60,40,20,.18);
      color: var(--text2);
    }
    .hero-pill-pulse {
      /* v0.14.35: pulse dot a neutro (era naranja, decoración). */
      width: 7px; height: 7px; border-radius: 50%; background: var(--text3);
      box-shadow: 0 0 0 0 rgba(255,255,255,.15);
      animation: heroEyePulse 2s ease infinite;
      flex-shrink: 0;
    }
    @keyframes heroEyePulse {
      0%   { box-shadow: 0 0 0 0 rgba(255,255,255,.15); }
      70%  { box-shadow: 0 0 0 12px rgba(255,255,255,0); }
      100% { box-shadow: 0 0 0 0 rgba(255,255,255,0); }
    }

    .hero-h1-v2 {
      font-family: var(--font-display);
      font-size: clamp(2.4rem, 7vw, 4.5rem);
      font-weight: 400; line-height: 1.05; letter-spacing: -1.5px;
      color: var(--text); margin: 0 0 16px;
      text-wrap: balance;
    }
    .hero-h1-v2 em {
      font-style: italic; color: var(--brand-300); -webkit-text-fill-color: var(--brand-300);
    }
    [data-theme="light"] .hero-h1-v2 em { color: var(--brand-700); -webkit-text-fill-color: var(--brand-700); }
    .hero-sub-v2 {
      font-size: clamp(1rem, 1.4vw, 1.15rem); color: var(--text2); line-height: 1.5;
      max-width: 640px; margin: 0 auto 32px;
    }
    .hero-ctas {
      display: flex; gap: 12px; flex-wrap: wrap;
      align-items: center; justify-content: center;
      margin-bottom: 0;
    }
    .hero-cta-primary {
      /* v0.14.35: --brand-cta cumple WCAG AA con #fff (5.18:1). Hover sigue en var(--brand-600). */
      background: var(--brand-cta); color: #fff; border: 0;
      padding: 16px 32px; border-radius: 12px;
      font-family: var(--font-body); font-weight: 700; font-size: 1rem;
      cursor: pointer; transition: transform .12s, box-shadow .15s, opacity .15s, background .15s;
      box-shadow: 0 5px 0 #22357c, 0 8px 32px rgba(79,124,255,.4);
    }
    .hero-cta-primary:hover { transform: translateY(-1px); background: #3a63ec; box-shadow: 0 6px 0 #22357c, 0 10px 36px rgba(79,124,255,.18); }
    /* v0.14.36: :active modernizado a scale + opacity. */
    .hero-cta-primary:active { transform: scale(.98); opacity: .95; transition: transform .08s ease-out, opacity .08s ease-out; }
    .hero-cta-secondary {
      background: transparent; border: 1px solid var(--border); color: var(--text);
      padding: 16px 28px; border-radius: 12px; cursor: pointer;
      display: inline-flex; align-items: center; gap: 8px;
      font-family: var(--font-body); font-weight: 600; font-size: 1rem;
      transition: border-color .15s, background .15s, color .15s;
    }
    .hero-cta-secondary:hover { border-color: var(--brand); color: var(--brand); background: rgba(79,124,255,.06); }

    /* ── Hero rotator (v0.14.11b) — vídeo 16:9 + 3 pill tabs ─── */
    .hero-rotator {
      --rot-acc: 79,124,255;
      position: relative;
      width: 100%; max-width: 820px;
      margin: 0 auto;
    }
    .hero-rotator-video {
      position: relative;
      aspect-ratio: 8 / 5;
      width: 100%;
      border-radius: 18px; overflow: hidden;
      background: #0a0a0c;
      box-shadow:
        0 0 0 1px rgba(255,255,255,.06),
        0 24px 80px rgba(0,0,0,.55),
        0 0 80px rgba(var(--rot-acc), .18);
      transition: box-shadow .4s ease;
    }
    [data-theme="light"] .hero-rotator-video {
      box-shadow:
        0 0 0 1px rgba(0,0,0,.05),
        0 16px 48px rgba(60,40,20,.18),
        0 0 60px rgba(var(--rot-acc), .12);
    }
    .hr-video {
      position: absolute; inset: 0;
      width: 100%; height: 100%;
      object-fit: cover;
      opacity: 0; pointer-events: none;
      transition: opacity .2s ease;
      image-rendering: -webkit-optimize-contrast;
      image-rendering: crisp-edges;
    }
    .hr-video.on { opacity: 1; pointer-events: auto; }

    .hero-rotator-tabs {
      display: flex; gap: 12px;
      align-items: center; justify-content: center;
      flex-wrap: wrap;
      margin: 24px 0 0;
      list-style: none; padding: 0;
    }
    .hr-tab {
      padding: 12px 20px;
      border-radius: 999px;
      border: 1px solid rgba(241,234,217,.1);
      background: rgba(31,26,34,.6);
      color: rgba(241,234,217,.6);
      font-family: var(--font-body); font-weight: 600; font-size: .9rem;
      cursor: pointer;
      transition: opacity .15s, background .25s, border-color .18s, color .2s, box-shadow .25s;
      backdrop-filter: blur(6px);
    }
    [data-theme="light"] .hr-tab {
      background: rgba(255,255,255,.5);
      border-color: rgba(60,40,20,.14);
      color: var(--text3);
    }
    .hr-tab:hover {
      color: var(--text);
      border-color: rgba(var(--tab-acc, 79,124,255), .55);
      opacity: 1;
    }
    .hr-tab.on {
      background: rgb(var(--tab-acc, 79,124,255));
      border-color: rgb(var(--tab-acc, 79,124,255));
      color: #1a1217;
      box-shadow: 0 6px 24px rgba(var(--tab-acc, 79,124,255), .35);
    }
    [data-theme="light"] .hr-tab.on { color: #fff; }

    @media (max-width: 880px) {
      .hero-rotator { padding: 0 4px; }
      .hr-tab { padding: 10px 16px; font-size: .82rem; min-height: 44px; display: inline-flex; align-items: center; }
    }

    /* ── How it works (v0.14.11c) — 3 pasos con micro-vídeos ───── */
    .how-section {
      max-width: 1100px; margin: 0 auto;
      padding: 56px 24px 40px;
      position: relative; z-index: 1;
    }
    .how-head { text-align: center; margin-bottom: 48px; }
    .how-eyebrow {
      display: inline-flex; align-items: center; gap: 8px;
      color: var(--brand); font-size: .72rem; font-weight: 700;
      letter-spacing: .12em; text-transform: uppercase;
      margin-bottom: 14px;
    }
    .how-eyebrow::before {
      content: ""; width: 24px; height: 1px;
      background: var(--brand); display: inline-block;
    }
    .how-h2 {
      font-family: var(--font-display); font-weight: 400;
      font-size: clamp(1.8rem, 4vw, 2.6rem); line-height: 1.15; letter-spacing: -.5px;
      margin: 0 auto 12px; max-width: 640px;
      text-wrap: balance;
    }
    .how-h2 em { font-style: italic; color: var(--brand-300); -webkit-text-fill-color: var(--brand-300); }
    [data-theme="light"] .how-h2 em { color: var(--brand-700); -webkit-text-fill-color: var(--brand-700); }
    .how-sub {
      color: var(--text2); font-size: 1rem; line-height: 1.55;
      margin: 0 auto; max-width: 540px;
    }
    .how-grid {
      display: grid; grid-template-columns: repeat(3, 1fr);
      gap: 24px; align-items: stretch;
    }
    @media (max-width: 880px) {
      .how-section { padding: 40px 20px 24px; }
      .how-grid { grid-template-columns: 1fr; max-width: 420px; margin: 0 auto; }
      .how-head { margin-bottom: 32px; }
    }
    .how-step {
      display: flex; flex-direction: column; gap: 14px;
      padding: 24px 20px;
      background: linear-gradient(135deg, #1f1a22 0%, #171218 100%);
      border: 1px solid rgba(241,234,217,.06);
      border-left: 3px solid rgb(var(--step-acc, 79,124,255));
      border-radius: 16px;
      box-shadow: 0 8px 28px rgba(0,0,0,.25);
    }
    [data-theme="light"] .how-step {
      background: linear-gradient(135deg, #fffaf0 0%, #f6efe1 100%);
      border-color: rgba(60,40,20,.08);
      box-shadow: 0 6px 18px rgba(60,40,20,.08);
    }
    .how-step-num {
      font-family: var(--font-display); font-weight: 400;
      font-size: clamp(2.5rem, 6vw, 3.6rem); line-height: 1;
      color: rgb(var(--step-acc, 79,124,255));
      letter-spacing: -1px;
    }
    .how-step-video {
      position: relative;
      aspect-ratio: 16 / 9;
      width: 100%; max-width: 320px;
      border-radius: 12px; overflow: hidden;
      background: #0c0a10;
      box-shadow: 0 6px 18px rgba(0,0,0,.3);
    }
    .how-step-video video {
      position: absolute; inset: 0;
      width: 100%; height: 100%;
      object-fit: cover; display: block;
    }
    .how-step-title {
      font-family: var(--font-display); font-weight: 400;
      font-size: 1.35rem; line-height: 1.2; color: var(--text);
      margin: 4px 0 0;
    }
    .how-step-desc {
      font-family: var(--font-body); font-size: .9rem;
      line-height: 1.55; color: var(--text2); margin: 0;
    }

    /* ── Try Free (preview transcribe) ──────────────────────── */
    .try-free-section {
      max-width: 1100px; margin: 0 auto; padding: 64px 24px 48px;
      position: relative; z-index: 1;
    }
    .try-free-grid {
      display: grid; grid-template-columns: minmax(0,1fr) minmax(0,440px); gap: 56px;
      align-items: center;
    }
    .try-free-left { text-align: left; }
    .try-free-right { position: relative; }
    @media (max-width: 880px) {
      .try-free-section { padding: 40px 20px; }
      .try-free-grid { grid-template-columns: 1fr; gap: 32px; }
      .try-free-left { text-align: center; }
      .try-free-right { display: none; }
    }
    /* v0.14.8a: refuerzo mobile <640px */
    @media (max-width: 640px) {
      .try-free-section { padding: 32px 16px 24px; }
      .try-free-h2 { font-size: clamp(1.6rem, 7vw, 2.2rem); line-height: 1.15; }
      .try-free-sub { font-size: .95rem; }
      .try-form { padding: 12px; }
      .try-form-actions { flex-direction: column; gap: 10px; }
      .try-form-actions > * { width: 100%; }
      .try-btn { width: 100%; padding: 13px; justify-content: center; }
      .try-input { font-size: .9rem; }
    }
    .try-free-section .s-label { display: inline-block; }
    .try-free-h2 {
      font-family: var(--font-display); font-weight: 400;
      font-size: clamp(1.8rem, 4vw, 2.4rem);
      line-height: 1.1; letter-spacing: -.5px;
      margin: 12px 0 14px;
    }
    .try-free-h2 em { font-style: italic; color: var(--brand-300); -webkit-text-fill-color: var(--brand-300); }
    [data-theme="light"] .try-free-h2 em { color: var(--brand-700); -webkit-text-fill-color: var(--brand-700); }
    .try-free-sub {
      color: var(--text2); font-size: 1rem; line-height: 1.55;
      max-width: 540px; margin: 0 auto 8px;
    }
    .try-free-hooks-line {
      display: inline-flex; align-items: center; gap: 8px;
      font-size: .82rem; color: var(--text3); margin: 0 0 28px;
    }
    .try-free-hooks-line img { width: 22px; height: 22px; }
    .try-form {
      display: flex; flex-direction: column; gap: 10px;
      background: var(--surf); border: 1px solid var(--border); border-radius: 16px;
      padding: 16px; box-shadow: 0 4px 24px rgba(0,0,0,.12);
    }
    .try-form-row { display: flex; gap: 8px; align-items: stretch; }
    .try-input {
      flex: 1; min-width: 0;
      padding: 12px 14px; border-radius: 10px;
      background: var(--bg); border: 1px solid var(--border); color: var(--text);
      font-family: var(--font-body); font-size: .92rem; outline: none;
      transition: border-color .15s, box-shadow .15s;
    }
    .try-input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(79,124,255,.18); }
    .try-input::placeholder { color: var(--text3); }
    .try-form-actions { display: flex; gap: 8px; }
    .try-lang-select {
      flex: 1; padding: 11px 12px; border-radius: 10px;
      background: var(--bg); border: 1px solid var(--border); color: var(--text);
      font-family: var(--font-body); font-size: .85rem; outline: none;
    }
    .try-btn {
      flex: 0 0 auto; padding: 11px 22px; border-radius: 10px;
      background: var(--brand-cta); color: #fff; border: 0; cursor: pointer;
      font-family: var(--font-body); font-weight: 700; font-size: .88rem;
      box-shadow: 0 5px 0 #22357c; transition: transform .12s, box-shadow .15s, opacity .15s;
    }
    .try-btn:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 6px 0 #22357c, 0 4px 16px rgba(79,124,255,.3); }
    .try-btn:active:not(:disabled) { transform: scale(.98); opacity: .95; transition: transform .08s ease-out, opacity .08s ease-out; }
    .try-btn:disabled { opacity: .65; cursor: default; }
    .try-output {
      margin-top: 14px; opacity: 0; max-height: 0; overflow: hidden;
      transition: opacity .25s ease, max-height .35s ease;
    }
    .try-output.on { opacity: 1; max-height: 800px; }
    .try-loading {
      display: flex; gap: 6px; justify-content: center; padding: 24px;
    }
    .try-loading .dot {
      width: 7px; height: 7px; border-radius: 50%; background: var(--brand);
      animation: mockBounce .8s infinite alternate;
    }
    .try-loading .dot:nth-child(2) { animation-delay: .15s; }
    .try-loading .dot:nth-child(3) { animation-delay: .3s; }
    .try-error {
      padding: 18px;
      color: var(--text2); font-size: .92rem; line-height: 1.5;
      background: rgba(239,68,68,.06); border: 1px solid rgba(239,68,68,.2);
      border-radius: 12px; text-align: center;
    }
    .try-result {
      position: relative;
      background: var(--bg); border: 1px solid var(--border); border-radius: 12px;
      padding: 22px 22px 0; text-align: left;
      overflow: hidden;
    }
    .try-result-text {
      font-size: .98rem; line-height: 1.65; color: var(--text);
      min-height: 90px; padding-bottom: 60px;
      white-space: pre-wrap;
    }
    .try-result-mask {
      position: absolute; left: 0; right: 0; bottom: 116px; height: 70px;
      background: linear-gradient(to bottom, transparent, var(--bg) 80%);
      pointer-events: none;
    }
    .try-result-cta {
      position: relative; z-index: 1;
      margin: 0 -22px; padding: 18px 22px 22px;
      background: linear-gradient(135deg, rgba(79,124,255,.08), rgba(125,91,184,.06));
      border-top: 1px solid var(--border);
      text-align: center;
    }
    .try-result-cta p {
      margin: 0 0 12px; color: var(--text2); font-size: .88rem; line-height: 1.5;
    }

    /* v0.14.11f: bloque pilares editoriales eliminado (sustituidos por hero rotator + how-it-works). */

    /* Hooks mascot peek — overlay corner del hero rotator */
    .hero-mascot-peek {
      position: absolute; top: -32px; right: -24px;
      width: 96px; height: 96px;
      pointer-events: none; z-index: 3;
      filter: drop-shadow(0 8px 20px rgba(0,0,0,.35));
      animation: heroMascotFloat 3.4s ease-in-out infinite;
    }
    [data-theme="light"] .hero-mascot-peek {
      filter: drop-shadow(0 6px 16px rgba(60,40,20,.18));
    }
    @keyframes heroMascotFloat {
      0%, 100% { transform: translateY(0) rotate(-6deg); }
      50%      { transform: translateY(-6px) rotate(2deg); }
    }
    @media (max-width: 640px) {
      .hero-mascot-peek { width: 64px; height: 64px; top: -22px; right: -10px; }
    }

    /* ── Social proof (counter) ─────────────────────────────── */
    .social-proof-section {
      max-width: 880px; margin: 0 auto; padding: 56px 24px 80px; text-align: center;
      position: relative;
    }
    .social-proof-counter {
      font-family: var(--font-display); font-weight: 400;
      font-size: clamp(3.2rem, 11vw, 6rem);
      color: var(--brand); line-height: 1;
      letter-spacing: -2px;
      font-variant-numeric: tabular-nums;
      margin-bottom: 8px;
    }
    [data-theme="light"] .social-proof-counter { color: var(--brand-700); -webkit-text-fill-color: var(--brand-700); }
    .social-proof-label {
      font-family: var(--font-mono);
      font-size: .85rem; color: var(--text3); letter-spacing: .04em;
    }
    .social-proof-secondary {
      margin-top: 22px; padding-top: 18px;
      border-top: 1px solid var(--border);
      color: var(--text3); font-size: .82rem;
    }
    .social-proof-secondary b { color: var(--text2); font-variant-numeric: tabular-nums; }

    /* Phone frame (try-free side visual) */
    .phone-frame {
      position: relative; aspect-ratio: 9/18; max-width: 280px; margin: 0 auto;
      border-radius: 36px; padding: 10px;
      background: linear-gradient(160deg, #1a1a1f, #0a0a0f);
      box-shadow:
        0 30px 60px rgba(0,0,0,.4),
        0 12px 24px rgba(0,0,0,.25),
        inset 0 0 0 2px rgba(255,255,255,.04);
      transform: rotate(-3deg);
      transition: transform .3s ease;
    }
    .phone-frame:hover { transform: rotate(-1deg) translateY(-4px); }
    [data-theme="light"] .phone-frame {
      background: linear-gradient(160deg, #2a2a2f, #1a1a1f);
    }
    .phone-frame::before {
      content: ""; position: absolute; top: 18px; left: 50%; transform: translateX(-50%);
      width: 80px; height: 22px; border-radius: 12px;
      background: #050507;
    }
    .phone-screen {
      position: relative; width: 100%; height: 100%;
      border-radius: 28px; overflow: hidden;
      background: var(--bg);
      display: flex; flex-direction: column;
    }
    .phone-screen-header {
      flex-shrink: 0; padding: 36px 14px 10px;
      border-bottom: 1px solid var(--border);
      font-size: .68rem; color: var(--text3);
      display: flex; align-items: center; gap: 6px;
    }
    .phone-screen-header .ph-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--brand); }
    .phone-url-bar {
      margin: 8px 14px 12px; padding: 8px 10px;
      background: var(--surf); border: 1px solid var(--border); border-radius: 8px;
      font-size: .62rem; color: var(--text2);
      font-family: var(--font-mono);
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .phone-reel-card {
      margin: 0 14px 12px;
      aspect-ratio: 9/14; border-radius: 12px;
      background: linear-gradient(140deg, var(--brand-500) 0%, var(--brand-700) 35%, #7d5bb8 75%, #4c1d95 100%);
      position: relative; overflow: hidden;
      box-shadow: 0 8px 24px rgba(124,45,18,.35);
    }
    .phone-reel-card::before {
      content: ""; position: absolute; inset: 0;
      background:
        radial-gradient(ellipse at 30% 25%, rgba(255,255,255,.3) 0%, transparent 45%),
        radial-gradient(ellipse at 70% 80%, rgba(0,0,0,.45) 0%, transparent 55%);
    }
    .phone-reel-card::after {
      content: "▶"; position: absolute; inset: 0;
      display: flex; align-items: center; justify-content: center;
      color: #fff; font-size: 1.6rem;
      text-shadow: 0 4px 16px rgba(0,0,0,.5);
    }
    .phone-reel-meta {
      position: absolute; left: 8px; right: 8px; bottom: 8px;
      display: flex; align-items: center; gap: 6px;
      color: #fff; font-size: .58rem; font-weight: 600;
      text-shadow: 0 1px 4px rgba(0,0,0,.6);
    }
    .phone-reel-meta .av {
      width: 18px; height: 18px; border-radius: 50%;
      background: linear-gradient(135deg, var(--brand-300), var(--brand-700));
      border: 1.5px solid rgba(255,255,255,.5);
      flex-shrink: 0;
    }
    .phone-reel-meta .h { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .phone-reel-meta .t { font-family: var(--font-mono); opacity: .9; }
    .phone-transcript {
      flex: 1; padding: 10px 14px 14px; overflow: hidden; position: relative;
    }
    .phone-transcript-label {
      font-size: .58rem; color: var(--brand); font-weight: 700;
      letter-spacing: .08em; text-transform: uppercase; margin-bottom: 6px;
    }
    .phone-transcript-text {
      font-size: .68rem; color: var(--text); line-height: 1.55;
    }
    .phone-transcript::after {
      content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 40px;
      background: linear-gradient(to bottom, transparent, var(--bg) 80%);
      pointer-events: none;
    }
    .phone-mascot {
      position: absolute; right: -34px; bottom: -10px;
      width: 96px; height: 96px;
      transform: rotate(8deg);
      filter: drop-shadow(0 8px 18px rgba(0,0,0,.35));
      pointer-events: none; z-index: 4;
      animation: phoneMascotFloat 4s ease-in-out infinite;
    }
    @keyframes phoneMascotFloat {
      0%,100% { transform: rotate(8deg) translateY(0); }
      50%     { transform: rotate(8deg) translateY(-6px); }
    }

    /* Platform tabs */
    .plat-tabs {
      display: flex; gap: 8px; margin-bottom: 24px;
      animation: fade-up .5s ease .12s both;
    }
    .plat-tab {
      display: flex; align-items: center; gap: 5px;
      padding: 7px 16px; border-radius: 20px;
      font-size: .8rem; font-weight: 600; cursor: pointer;
      border: 1px solid var(--border); background: var(--surf);
      color: var(--text2); transition: all .2s;
    }
    .plat-tab.active { border-color: var(--brand); color: var(--brand-200); background: rgba(79,124,255,.12); }
    .plat-tab .check { color: var(--green); font-size: .7rem; }
    .plat-tab .soon  { font-size: .62rem; background: var(--surf2); padding: 1px 5px; border-radius: 4px; color: var(--text3); }

    /* Input area */
    .hero-input-wrap {
      width: 100%; max-width: 640px;
      animation: fade-up .5s ease .15s both;
    }
    .input-glow-wrap {
      position: relative; margin-bottom: 12px;
    }
    @keyframes input-pulse {
      0%,100% { box-shadow: 0 0 0 2px rgba(79,124,255,.25), 0 0 18px rgba(79,124,255,.12); border-color: rgba(79,124,255,.45); }
      50%      { box-shadow: 0 0 0 3px rgba(79,124,255,.4),  0 0 28px rgba(79,124,255,.22); border-color: rgba(79,124,255,.75); }
    }
    .input-glow-wrap input {
      width: 100%;
      padding: 18px 56px 18px 20px;
      background: var(--surf); border: 1.5px solid var(--border);
      border-radius: var(--r); font-size: 1rem; color: var(--text);
      font-family: var(--font-body);
      outline: none;
      transition: border-color .2s, box-shadow .2s;
    }
    [data-theme="light"] .input-glow-wrap input { background: var(--surf); }
    .input-glow-wrap input::placeholder { color: var(--text3); font-size: .92rem; }
    [data-theme="light"] .input-glow-wrap input::placeholder { color: #999; }
    .input-glow-wrap input:focus {
      border-color: var(--brand);
      box-shadow: 0 0 0 3px rgba(79,124,255,.15);
      background: var(--surf2);
    }
    .btn-queue-add {
      width: 52px; flex-shrink: 0;
      background: var(--surf); border: 1.5px solid var(--border);
      border-radius: var(--r); color: var(--brand);
      font-size: 1.5rem; font-weight: 700; cursor: pointer;
      transition: all .2s; display: flex; align-items: center; justify-content: center;
    }
    .btn-queue-add:hover { border-color: var(--brand); background: rgba(79,124,255,.1); }


    /* Style carousel dots (mobile only) */
    .style-dots {
      display: none; justify-content: center; gap: 6px;
      padding: 8px 0 4px;
    }
    .style-dot {
      width: 6px; height: 6px; border-radius: 50%;
      background: var(--border); transition: all .2s; cursor: pointer;
      border: none; padding: 0;
    }
    .style-dot.on { background: var(--brand); width: 16px; border-radius: 3px; }
    @media (max-width: 768px) {
      .style-dots { display: flex; }
    }

    @keyframes errBounce {
      0% { transform: scale(.8); }
      60% { transform: scale(1.05); }
      100% { transform: scale(1); }
    }

    .queue-list {
      display: flex; flex-direction: column; gap: 6px;
      margin-bottom: 12px; max-height: 160px; overflow-y: auto;
    }
    .queue-item {
      display: flex; align-items: center; gap: 8px;
      padding: 8px 12px; background: var(--surf);
      border: 1px solid var(--border); border-radius: var(--rsm);
      font-size: .82rem; color: var(--text2);
    }
    .queue-item-url { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .queue-item-status { font-size: .75rem; color: var(--text3); white-space: nowrap; }
    .queue-item-status.done { color: #22c55e; }
    .queue-item-status.err { color: #ef4444; }
    .queue-item-rm {
      background: none; border: none; color: var(--text3);
      cursor: pointer; font-size: .9rem; padding: 0 2px;
    }
    .queue-item-rm:hover { color: #ef4444; }
    [data-theme="light"] .input-glow-wrap input:focus { background: #fefefe; }
    .input-plat-icon {
      position: absolute; right: 18px; top: 50%; transform: translateY(-50%);
      font-size: 1.1rem; opacity: 0; transition: opacity .2s; pointer-events: none;
    }
    .input-plat-icon.on { opacity: 1; }

    /* Shimmer button */
    .btn-shimmer {
      width: 100%; padding: 16px;
      /* v0.14.35.b: CTA plano consistente. */
      background: var(--brand-cta);
      color: #fff; border: none; border-radius: var(--r);
      font-family: var(--font-body);
      font-size: .92rem; font-weight: 600; cursor: pointer;
      letter-spacing: .2px; transition: background .2s, box-shadow .2s, transform .1s;
      box-shadow: 0 1px 2px rgba(0,0,0,.2);
      transform: translateY(0);
    }
    .btn-shimmer:hover { background: var(--brand-600); box-shadow: 0 2px 8px rgba(79,124,255,.3); }
    .btn-shimmer:active { transform: translateY(1px); box-shadow: 0 0 0 rgba(0,0,0,0); }
    .btn-shimmer:disabled { background: var(--surf2); color: var(--text3); cursor: not-allowed; box-shadow: none; opacity: .6; }
    @keyframes shimmer { to { background-position: 250% center; } }

    /* Counter */
    .hero-demo-line {
      margin-top: 8px;
      display: flex; justify-content: center;
    }
    .hero-demo-link {
      display: inline-flex; align-items: center; gap: 8px;
      color: var(--text2);
      font-size: .78rem;
      font-weight: 500;
      text-decoration: none;
      padding: 4px 10px;
      border-radius: 999px;
      transition: color .15s, background .15s;
    }
    .hero-demo-link:hover { color: var(--brand); background: rgba(79,124,255,.08); }
    .hero-demo-play {
      width: 0; height: 0;
      border-left: 8px solid currentColor;
      border-top: 5px solid transparent;
      border-bottom: 5px solid transparent;
      margin-left: 1px;
    }
    .hero-demo-time { color: var(--text3); font-size: .72rem; }

    .hero-counter {
      margin-top: 20px; font-size: .78rem; color: var(--text3);
      display: flex; align-items: center; justify-content: center; gap: 6px;
      animation: fade-up .5s ease .2s both;
    }
    .counter-num { color: var(--text2); font-weight: 600; font-variant-numeric: tabular-nums; }
    .counter-dot { width: 4px; height: 4px; border-radius: 50%; background: var(--green); }

    /* Spinner */
    .spinner {
      display: none; align-items: center; justify-content: center; gap: 8px;
      /* v0.14.35: spinner text a neutro (era var(--brand-300) — distractivo durante carga). */
      padding: 18px 0 4px; color: var(--text2); font-size: .88rem; font-weight: 600;
    }
    .spinner.on { display: flex; }
    .dot-b { width: 7px; height: 7px; background: var(--brand); border-radius: 50%; animation: bounce .55s infinite alternate; }
    .dot-b:nth-child(2) { animation-delay: .18s; background: var(--pink); }
    .dot-b:nth-child(3) { animation-delay: .36s; background: var(--brand); }
    @keyframes bounce { to { opacity:.2; transform: translateY(-6px); } }

    /* Result box (legacy, hidden when feed is active) */
    .result-box { display: none; margin-top: 16px; text-align: left; }
    .result-box.on { display: block; }
    .result-text {
      padding: 18px; background: var(--surf); border: 1px solid var(--border);
      border-radius: var(--r); font-size: .92rem; line-height: 1.75;
      white-space: pre-wrap; word-break: break-word; color: var(--text);
      max-height: 280px; overflow-y: auto;
    }
    .result-text.err { background: rgba(239,68,68,.08); border-color: rgba(239,68,68,.25); color: #f87171; }
    .result-actions { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
    .btn-sm {
      padding: 7px 14px; border: 1px solid var(--border); border-radius: var(--rsm);
      background: var(--surf); color: var(--text2); font-size: .78rem; font-weight: 600;
      cursor: pointer; transition: all .2s;
    }
    .btn-sm:hover { border-color: var(--brand); color: var(--brand-200); }
    /* v0.14.36: añadido :active feedback que faltaba. */
    .btn-sm:active { transform: scale(.98); opacity: .95; transition: transform .08s ease-out, opacity .08s ease-out; }

    /* ── 3D raised buttons ─────────────────────────────── */
    .btn-3d {
      position: relative; transform: translateY(0);
      transition: transform .12s ease, box-shadow .12s ease, opacity .2s;
      box-shadow: 0 5px 0 rgba(255,255,255,.08);
      border-bottom: none;
    }
    .btn-3d:hover { transform: translateY(-1px); box-shadow: 0 6px 0 rgba(255,255,255,.08); }
    /* v0.14.36: :active modernizado scale + opacity. */
    .btn-3d:active { transform: scale(.98) !important; opacity: .95; transition: transform .08s ease-out, opacity .08s ease-out !important; }
    [data-theme="light"] .btn-3d { box-shadow: 0 5px 0 rgba(0,0,0,.15); }
    [data-theme="light"] .btn-3d:hover { box-shadow: 0 6px 0 rgba(0,0,0,.15); }
    [data-theme="light"] .btn-3d:active { /* v0.14.36: shadow press-down eliminada. */ }
    .btn-3d-primary { box-shadow: 0 5px 0 var(--brand-800); }
    .btn-3d-primary:hover { box-shadow: 0 6px 0 var(--brand-800); }
    .btn-3d-primary:active { box-shadow: 0 1px 0 var(--brand-800) !important; }
    .btn-3d-secondary { box-shadow: 0 5px 0 var(--border-subtle); }
    .btn-3d-secondary:hover { box-shadow: 0 6px 0 var(--border-subtle); }
    .btn-3d-secondary:active { box-shadow: 0 1px 0 var(--border-subtle) !important; }
    .btn-3d-danger { box-shadow: 0 5px 0 #991b1b; }
    .btn-3d-danger:hover { box-shadow: 0 6px 0 #991b1b; }
    .btn-3d-danger:active { box-shadow: 0 1px 0 #991b1b !important; }
    .btn-3d-circle { border-radius: 50%; }

    .cost-tag { margin-left: auto; font-size: .75rem; color: var(--text3); display: flex; align-items: center; }

    /* ── Result panel (appears beside input after transcription) ─ */
    .hero-input-wrap.has-result {
      max-width: 1100px;
      display: flex; gap: 24px; align-items: flex-start;
    }
    .hero-input-wrap.has-result .hero-input-left { flex: 0 0 480px; }

    .hero-result-panel {
      display: none; flex: 1; min-width: 0;
      flex-direction: column; gap: 14px;
    }
    .hero-input-wrap.has-result .hero-result-panel { display: flex; }

    /* Result card */
    .rs-card {
      background: var(--surf); border: 1px solid var(--border);
      border-radius: var(--r); overflow: hidden;
      animation: rs-in .3s ease both;
      transition: border-color .2s;
    }
    .rs-card:hover { border-color: rgba(255,255,255,.12); }
    @keyframes rs-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
    .rs-card-head {
      display: flex; align-items: center; gap: 10px;
      padding: 14px 16px 0;
    }
    .rs-card-plat {
      background: rgba(79,124,255,.1); color: var(--brand);
      font-size: .65rem; font-weight: 700; padding: 3px 9px;
      border-radius: 4px; text-transform: uppercase; flex-shrink: 0;
    }
    .rs-card-title {
      flex: 1; font-family: var(--font-display); font-size: .85rem; font-weight: 600; color: var(--text);
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .rs-card-copy {
      background: none; border: none; color: var(--text3);
      cursor: pointer; padding: 4px 6px; border-radius: var(--rsm);
      transition: all .2s; flex-shrink: 0; position: relative;
    }
    .rs-card-copy:hover { color: var(--brand); background: rgba(79,124,255,.08); }
    .rs-card-copy.ok { color: #22c55e; }
    .rs-card-copy .rs-tip {
      position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%);
      background: var(--surf2); color: var(--text); font-size: .68rem; font-weight: 600;
      padding: 3px 8px; border-radius: 4px; white-space: nowrap;
      opacity: 0; pointer-events: none; transition: opacity .15s;
    }
    .rs-card-copy:hover .rs-tip { opacity: 1; }
    .rs-card-body {
      padding: 12px 16px; font-size: .86rem; line-height: 1.7;
      color: var(--text); white-space: pre-wrap; word-break: break-word;
      max-height: 350px; overflow-y: auto;
    }
    .rs-card-body::-webkit-scrollbar { width: 3px; }
    .rs-card-body::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }
    .rs-card.collapsed .rs-card-body,
    .rs-card.collapsed .rs-card-actions { display: none; }
    .rs-card-head { cursor: pointer; }
    .rs-card-toggle {
      color: var(--text3); font-size: .7rem; transition: transform .2s; margin-right: 4px;
    }
    .rs-card.collapsed .rs-card-toggle { transform: rotate(-90deg); }
    .rs-card-actions {
      padding: 0 16px 14px; display: flex; gap: 8px;
    }
    .rs-card-act {
      padding: 6px 14px; border-radius: var(--rsm); font-size: .75rem; font-weight: 600;
      cursor: pointer; border: 1px solid var(--border); background: var(--surf);
      color: var(--text2); transition: all .2s;
    }
    .rs-card-act:hover { border-color: var(--brand); color: var(--brand-200); }

    /* Inline transform in result cards */
    .rs-card-transform {
      display: none; padding: 0 16px 14px;
      flex-direction: column; gap: 10px;
    }
    .rs-card-transform.on { display: flex; }
    .rs-card-transform-chips {
      display: flex; gap: 6px; flex-wrap: wrap;
    }
    .rs-card-chip {
      padding: 6px 12px; border-radius: 20px; font-size: .72rem; font-weight: 600;
      border: 1px solid var(--border); background: var(--surf);
      color: var(--text2); cursor: pointer; transition: all .15s;
      white-space: nowrap;
    }
    .rs-card-chip:hover { border-color: var(--brand); color: var(--text); }
    .rs-card-chip.loading { opacity: .5; pointer-events: none; }
    .rs-card-transform-result {
      padding: 12px; background: var(--surf2); border: 1px solid var(--border);
      border-radius: var(--rsm); font-size: .84rem; line-height: 1.6;
      color: var(--text); white-space: pre-wrap; word-break: break-word;
      max-height: 250px; overflow-y: auto; position: relative;
    }
    .rs-card-transform-result .rs-card-copy {
      position: absolute; top: 8px; right: 8px;
    }
    .rs-card.collapsed .rs-card-transform { display: none; }

    /* Loading card */
    .rs-card-loading {
      padding: 20px 16px; display: flex; align-items: center; gap: 12px;
    }
    .rs-card-loading .dot-b { width: 5px; height: 5px; }
    .rs-card-loading-msg { color: var(--text2); font-size: .84rem; }

    @media (max-width: 768px) {
      .hero-input-wrap.has-result { flex-direction: column; }
      .hero-input-wrap.has-result .hero-input-left { flex: none; width: 100%; }
    }

    /* Free bar */
    .free-bar {
      display: none; align-items: center; gap: 8px;
      background: rgba(245,158,11,.07); border: 1px solid rgba(245,158,11,.2);
      border-radius: var(--rsm); padding: 9px 14px;
      font-size: .8rem; color: var(--text2);
      margin-top: 10px;
    }
    .free-bar.on { display: flex; }
    .fdot { width: 7px; height: 7px; border-radius: 50%; background: var(--border); }
    .fdot.u { background: #f59e0b; box-shadow: 0 0 5px #f59e0b; }

    /* ── Section wrapper ─────────────────────────────────────── */
    .section { padding: 96px 24px; max-width: 1100px; margin: 0 auto; }
    .section-sm { padding: 64px 24px; max-width: 900px; margin: 0 auto; }
    .s-label {
      display: inline-flex; align-items: center; gap: 6px;
      background: rgba(79,124,255,.06); border: 1px solid rgba(79,124,255,.15);
      /* v0.14.35: eyebrow text a neutro (era var(--brand-300)). */
      color: var(--text2); font-size: .68rem; font-weight: 600; letter-spacing: 1.2px;
      text-transform: uppercase; padding: 5px 14px; border-radius: 20px;
      margin-bottom: 20px; font-family: var(--font-body);
    }
    .s-title {
      font-family: var(--font-display);
      font-size: clamp(1.8rem, 4vw, 2.8rem); font-weight: 800;
      letter-spacing: -1.5px; line-height: 1.08; margin-bottom: 16px;
    }
    .s-sub { color: var(--text2); font-size: 1.02rem; line-height: 1.6; max-width: 520px; font-weight: 300; }

    /* ── Hazlo tuyo — full viewport ────────────────────────────── */
    .adapt-section {
      /* v0.14.19: now inside #profPanelAdapt — full-screen styles removed */
      position: relative; overflow: hidden;
    }

    .adapt-inner {
      max-width: 1200px; width: 100%; margin: 0 auto;
      display: grid; grid-template-columns: 1fr 1fr;
      grid-template-rows: auto 1fr;
      gap: 0 64px; align-items: stretch;
      position: relative; z-index: 1;
    }

    /* Grid areas */
    .adapt-header { grid-column: 1; grid-row: 1; margin-bottom: 28px; }
    .preview-label-wrap { grid-column: 2; grid-row: 1; display: flex; align-items: flex-end; padding-bottom: 28px; }
    .adapt-left { grid-column: 1; grid-row: 2; }
    .adapt-right { grid-column: 2; grid-row: 2; }
    .adapt-header h2 { font-family: var(--font-display); font-size: clamp(1.8rem,3.5vw,2.6rem); font-weight: 400; letter-spacing: -.5px; margin-bottom: 10px; line-height: 1.1; }
    .adapt-header h2 span { font-style: italic; }
    .adapt-header p  { color: var(--text2); font-size: .92rem; line-height: 1.6; font-weight: 300; max-width: 420px; }

    .script-ta {
      width: 100%; max-width: 100%; min-height: 200px;
      padding: 16px; background: var(--surf2);
      border: 1px solid var(--border); border-radius: 12px;
      font-size: .9rem; color: var(--text); resize: vertical; outline: none;
      font-family: var(--font-body); line-height: 1.7;
      transition: border-color .2s; box-sizing: border-box;
    }
    .script-ta:focus { border-color: var(--brand); }
    .script-ta::placeholder { color: var(--text3); }

    /* Style grid */
    .style-grid {
      display: grid; grid-template-columns: repeat(3, 1fr);
      gap: 10px; margin-top: 20px;
    }
    .style-pill {
      display: flex; flex-direction: column; align-items: flex-start;
      gap: 10px; padding: 20px 18px;
      border-radius: var(--r); border: 1px solid var(--border);
      background: var(--surf); cursor: pointer;
      text-align: left; min-height: 110px;
      position: relative; overflow: hidden;
      box-shadow: 0 4px 0 rgba(255,255,255,.07); transform: translateY(0);
      transition: transform .12s, box-shadow .12s, border-color .18s, background .18s;
    }
    .style-pill[data-s="viral"]        { --sc: #ef4444; --scr: 239,68,68; }
    .style-pill[data-s="divertido"]    { --sc: #eab308; --scr: 234,179,8; }
    .style-pill[data-s="linkedin"]     { --sc: #3b82f6; --scr: 59,130,246; }
    .style-pill[data-s="storytelling"] { --sc: #a855f7; --scr: 168,85,247; }
    .style-pill[data-s="hooks"]        { --sc: var(--brand-500); --scr: 79,124,255; }
    .style-pill[data-s="custom"]       { --sc: #14b8a6; --scr: 20,184,166; }
    .style-pill:hover {
      border-color: rgba(var(--scr), .3);
      background: var(--surf2);
      transform: translateY(-2px); box-shadow: 0 6px 0 rgba(255,255,255,.07), var(--sh);
    }
    .style-pill:active { transform: translateY(3px); box-shadow: 0 1px 0 rgba(255,255,255,.07); }
    .style-pill.act {
      border-color: var(--sc);
      background: var(--surf2);
      box-shadow: 0 4px 0 rgba(var(--scr), .25), 0 0 20px rgba(var(--scr), .15);
    }
    .style-pill.act::after {
      content: ""; position: absolute; top: 0; right: 0;
      width: 60px; height: 60px;
      background: radial-gradient(circle at top right, rgba(var(--scr), .2), transparent 70%);
      pointer-events: none;
    }
    .style-pill .sp-emoji {
      width: 44px; height: 44px; border-radius: 10px;
      background: rgba(var(--scr), .1);
      display: flex; align-items: center; justify-content: center;
    }
    .style-pill .sp-emoji svg { flex-shrink: 0; }
    .style-pill .sp-name  { font-family: var(--font-display); font-size: .82rem; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; color: var(--text); transition: color .2s; }
    .style-pill .sp-hint  { font-size: .72rem; font-weight: 300; color: var(--text3); line-height: 1.4; transition: color .2s; }
    [data-theme="light"] .style-pill .sp-hint { color: #555; }
    .style-pill.act .sp-name { color: var(--sc); }
    .style-pill.act .sp-hint { color: var(--text2); }

    .custom-row { display: none; margin-top: 12px; gap: 8px; }
    .custom-row.on { display: flex; }
    .custom-row input {
      flex: 1; padding: 10px 14px; background: var(--bg);
      border: 1.5px solid var(--border); border-radius: var(--rsm);
      font-size: .88rem; color: var(--text); outline: none;
      transition: border-color .2s;
    }
    .custom-row input:focus { border-color: var(--sc); }

    .btn-grad {
      /* v0.14.35.a: consistencia CTA — antes var(--grad), ahora --brand-cta. */
      padding: 10px 20px; background: var(--brand-cta);
      color: #fff; border: none; border-radius: var(--rsm);
      font-size: .9rem; font-weight: 700; cursor: pointer;
      white-space: nowrap;
      box-shadow: 0 4px 0 #22357c; transform: translateY(0);
      transition: transform .12s, box-shadow .12s, opacity .2s;
    }
    .btn-grad:hover { opacity: .9; transform: translateY(-1px); box-shadow: 0 5px 0 #22357c; }
    .btn-grad:active { transform: translateY(3px); box-shadow: 0 1px 0 #22357c; }

    .adapt-run-btn {
      margin-top: 16px; width: 100%; padding: 16px;
      /* v0.14.35.a: consistencia CTA — antes var(--grad) brillante, ahora --brand-cta plano WCAG. */
      background: var(--brand-cta); color: #fff; border: none;
      border-radius: var(--r); font-size: 1rem; font-weight: 800;
      cursor: pointer; letter-spacing: .3px;
      box-shadow: 0 5px 0 #22357c; transform: translateY(0);
      transition: transform .12s, box-shadow .12s, opacity .2s;
    }
    .adapt-run-btn:hover { opacity: .9; transform: translateY(-1px); box-shadow: 0 6px 0 #22357c; }
    .adapt-run-btn:active { transform: scale(.98); opacity: .95; transition: transform .08s ease-out, opacity .08s ease-out; }
    /* Desktop: hide left button, show right. Mobile: opposite */
    .adapt-run-desktop { display: none !important; }
    @media (min-width: 769px) {
      #btnRunAdapt { display: none !important; }
      .adapt-run-desktop { display: block !important; }
    }
    .adapt-run-btn:disabled { opacity: .4; cursor: not-allowed; transform: none; box-shadow: none; }

    /* Mobile inline result */
    .mobile-adapt-result {
      margin-top: 12px; background: var(--surf);
      border: 1px solid var(--border); border-radius: var(--r);
      overflow: hidden;
    }
    .mobile-adapt-result-head {
      display: flex; align-items: center; justify-content: space-between;
      padding: 10px 14px 0;
    }
    .mobile-adapt-result-label {
      font-size: .72rem; font-weight: 600; color: var(--text3);
      text-transform: uppercase; letter-spacing: .5px;
    }
    .mobile-adapt-result-body {
      padding: 10px 14px 14px; font-size: .86rem; line-height: 1.65;
      color: var(--text); white-space: pre-wrap; word-break: break-word;
      max-height: 300px; overflow-y: auto;
    }

    .adapt-res { display: none; margin-top: 16px; }
    .adapt-res.on { display: block; }
    .adapt-res-txt {
      padding: 16px; background: var(--bg); border: 1px solid var(--border);
      border-radius: var(--rsm); font-size: .9rem; line-height: 1.8;
      white-space: pre-wrap; word-break: break-word; color: var(--text);
      max-height: 300px; overflow-y: auto;
    }
    .adapt-res-txt.err { background: rgba(239,68,68,.08); border-color: rgba(239,68,68,.25); color: #f87171; }

    /* Right column — live preview */
    .adapt-right { display: flex; flex-direction: column; }
    .preview-label {
      font-family: var(--font-body); font-size: .68rem; font-weight: 500; color: var(--text3);
      text-transform: uppercase; letter-spacing: .1em;
      margin-bottom: 0; display: flex; align-items: center; gap: 10px;
    }
    .preview-label::after { content: ""; flex: 1; height: 1px; background: var(--border); }

    .preview-card {
      background: var(--surf); border: 1px solid rgba(255,255,255,.08);
      border-radius: 16px; padding: 24px;
      transition: border-color .35s ease, box-shadow .35s ease;
      min-height: 0; flex: 0 1 auto; display: flex; flex-direction: column;
      position: relative; overflow: hidden;
    }
    .preview-top-bar {
      position: absolute; top: 0; left: 0; right: 0; height: 3px;
      background: var(--grad); border-radius: 20px 20px 0 0;
      transition: background .35s;
    }
    .preview-card[data-active="viral"]        .preview-top-bar { background: linear-gradient(90deg,#ef4444,var(--brand-500)); }
    .preview-card[data-active="divertido"]    .preview-top-bar { background: linear-gradient(90deg,#fbbf24,#f59e0b); }
    .preview-card[data-active="linkedin"]     .preview-top-bar { background: linear-gradient(90deg,#3b82f6,#6366f1); }
    .preview-card[data-active="storytelling"] .preview-top-bar { background: linear-gradient(90deg,#22c55e,#10b981); }
    .preview-card[data-active="hooks"]        .preview-top-bar { background: linear-gradient(90deg,#a78bfa,#8b5cf6); }
    .preview-card[data-active="custom"]       .preview-top-bar { background: linear-gradient(90deg,#94a3b8,#64748b); }

    .preview-card[data-active="viral"]        { border-color: rgba(239,68,68,.4);   box-shadow: 0 0 50px rgba(239,68,68,.1); }
    .preview-card[data-active="divertido"]    { border-color: rgba(251,191,36,.4);  box-shadow: 0 0 50px rgba(251,191,36,.1); }
    .preview-card[data-active="linkedin"]     { border-color: rgba(59,130,246,.4);  box-shadow: 0 0 50px rgba(59,130,246,.1); }
    .preview-card[data-active="storytelling"] { border-color: rgba(34,197,94,.4);   box-shadow: 0 0 50px rgba(34,197,94,.1); }
    .preview-card[data-active="hooks"]        { border-color: rgba(167,139,250,.4); box-shadow: 0 0 50px rgba(167,139,250,.1); }
    .preview-card[data-active="custom"]       { border-color: rgba(148,163,184,.4); box-shadow: 0 0 50px rgba(148,163,184,.1); }

    .preview-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 22px; }
    .pc-badge {
      display: inline-flex; align-items: center; gap: 5px;
      padding: 4px 12px; border-radius: 20px;
      font-family: var(--font-body); font-size: .68rem; font-weight: 600; text-transform: uppercase; letter-spacing: .5px;
      border: 1px solid var(--border); color: var(--text3);
      transition: all .3s;
    }
    .pc-badge[data-s="viral"]        { background: rgba(239,68,68,.15);   color: #f87171; border-color: rgba(239,68,68,.3); }
    .pc-badge[data-s="divertido"]    { background: rgba(251,191,36,.15);  color: #fbbf24; border-color: rgba(251,191,36,.3); }
    .pc-badge[data-s="linkedin"]     { background: rgba(59,130,246,.15);  color: #60a5fa; border-color: rgba(59,130,246,.3); }
    .pc-badge[data-s="storytelling"] { background: rgba(34,197,94,.15);   color: #4ade80; border-color: rgba(34,197,94,.3); }
    .pc-badge[data-s="hooks"]        { background: rgba(167,139,250,.15); color: #a78bfa; border-color: rgba(167,139,250,.3); }
    .pc-badge[data-s="custom"]       { background: rgba(148,163,184,.15); color: #94a3b8; border-color: rgba(148,163,184,.3); }

    .preview-content { position: relative; min-height: 180px; }
    .preview-content::after {
      content: ""; position: absolute; bottom: 0; left: 0; right: 0; height: 60px;
      background: linear-gradient(transparent, var(--surf));
      pointer-events: none; z-index: 2;
    }
    .preview-content:has(.preview-result-text.on)::after { display: none; }
    .preview-slide {
      position: absolute; inset: 0;
      opacity: 0; transform: translateY(10px);
      transition: opacity .3s, transform .3s;
      pointer-events: none;
    }
    .preview-slide.on {
      opacity: 1; transform: translateY(0);
      pointer-events: auto; position: relative;
    }
    .preview-text { font-family: var(--font-body); font-size: .92rem; line-height: 1.8; color: var(--text); white-space: pre-line; }
    .preview-text .ph { color: var(--text); font-weight: 600; }
    .preview-footer {
      margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--border);
      font-size: .72rem; color: var(--text3); display: flex; align-items: center; gap: 8px;
      font-weight: 300; position: relative; z-index: 3; flex-wrap: wrap;
    }
    .pf-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--green); box-shadow: 0 0 5px var(--green); animation: pulse 2s infinite; flex-shrink: 0; }
    .pf-copy {
      padding: 7px 14px;
      background: rgba(255,255,255,.04);
      border: 1px solid rgba(255,255,255,.08);
      border-radius: 999px;
      font-size: .72rem; font-weight: 600; letter-spacing: .2px;
      color: var(--text2); cursor: pointer;
      transition: background .2s, border-color .2s, color .2s, transform .08s;
      white-space: nowrap;
    }
    .pf-copy:first-of-type { margin-left: auto; }
    .pf-copy:hover {
      background: rgba(79,124,255,.12);
      border-color: rgba(79,124,255,.4);
      color: var(--brand-300);
    }
    .pf-copy:active { transform: translateY(1px); }
    [data-theme="light"] .pf-copy {
      background: rgba(0,0,0,.03);
      border-color: rgba(0,0,0,.08);
    }

    /* Preview card — loading & result states */
    .preview-card-spinner {
      display: none; flex-direction: column; align-items: center; justify-content: center;
      gap: 14px; position: absolute; inset: 0; border-radius: 20px;
      background: var(--bg); z-index: 2;
    }
    .preview-card-spinner.on { display: flex; }
    .preview-card-spinner .sq-loader { width: 44px; height: 44px; }
    .preview-card-spinner p { font-size: .82rem; color: var(--text2); font-weight: 600; }

    .preview-result-text {
      display: none; font-size: .93rem; line-height: 1.85;
      color: var(--text); word-break: break-word;
      animation: fadeSlideIn .35s ease;
    }
    .preview-result-text.on { display: block; }
    .preview-result-text.plain { white-space: pre-wrap; }

    /* Structured script sections */
    .script-section { margin-bottom: 16px; }
    .script-section:last-child { margin-bottom: 0; }
    .script-section-label {
      font-size: .65rem; font-weight: 700; letter-spacing: 1.2px;
      text-transform: uppercase; margin-bottom: 6px;
      display: flex; align-items: center; gap: 6px;
    }
    .script-section-label::before {
      content: ""; display: inline-block; width: 3px; height: 12px; border-radius: 2px;
    }
    .script-section.hook .script-section-label { color: var(--brand-500); }
    .script-section.hook .script-section-label::before { background: var(--brand-500); }
    .script-section.body .script-section-label { color: var(--text3); }
    .script-section.body .script-section-label::before { background: var(--text3); }
    .script-section.closing .script-section-label { color: #a78bfa; }
    .script-section.closing .script-section-label::before { background: #a78bfa; }
    .script-section-content {
      font-size: .9rem; line-height: 1.75; color: var(--text);
    }
    .script-section.hook .script-section-content {
      font-weight: 600; font-size: .95rem;
    }
    .script-section.closing .script-section-content {
      font-style: italic; color: var(--text2);
    }
    .script-section.body .script-section-content p {
      margin: 0 0 6px;
    }

    /* Hook cards (for hooks style) */
    .hook-card {
      background: var(--surf2); border: 1px solid var(--border);
      border-radius: 10px; padding: 12px 14px; margin-bottom: 8px;
      transition: border-color .2s;
    }
    .hook-card:last-child { margin-bottom: 0; }
    .hook-card:hover { border-color: rgba(79,124,255,.3); }
    .hook-card-type {
      font-size: .62rem; font-weight: 700; letter-spacing: 1px;
      text-transform: uppercase; color: var(--brand-500); margin-bottom: 4px;
    }
    .hook-card-text {
      font-size: .88rem; line-height: 1.6; color: var(--text);
    }
    .hook-card-copy {
      background: none; border: none; color: var(--text3); cursor: pointer;
      font-size: .72rem; padding: 2px 6px; float: right; margin-top: -2px;
      transition: color .2s;
    }
    .hook-card-copy:hover { color: var(--brand); }
    @keyframes fadeSlideIn {
      from { opacity: 0; transform: translateY(8px); }
      to   { opacity: 1; transform: translateY(0); }
    }

    @media (max-width: 900px) {
      .adapt-inner { grid-template-columns: 1fr; grid-template-rows: auto auto auto auto; gap: 24px; }
      .adapt-header { grid-column: 1; grid-row: 1; margin-bottom: 0; }
      .preview-label-wrap { grid-column: 1; grid-row: 3; padding-bottom: 0; }
      .adapt-left { grid-column: 1; grid-row: 2; }
      .adapt-right { grid-column: 1; grid-row: 4; display: block; }
      .preview-card { min-height: 0; flex: none; }
    }
    @media (max-width: 520px) {
      .style-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
      .style-pill { padding: 10px 12px; }
    }

    /* ── Language switcher ──────────────────────────────────────── */
    .lang-switch {
      display: flex; align-items: center; gap: 2px;
      background: var(--surf2); border: 1px solid var(--border);
      border-radius: 8px; padding: 3px;
    }
    /* ── Pillar SEO block ──────────────────────────────────────── */
    .pillar-seo {
      background: rgba(0,0,0,.35);
      border-top: 1px solid var(--border);
      padding: 72px 24px 80px;
    }
    .pillar-container {
      max-width: 780px;
      margin: 0 auto;
    }
    .pillar-container h2 {
      font-size: clamp(1.5rem, 3vw, 2rem);
      font-weight: 700;
      color: var(--text);
      margin-bottom: 28px;
      line-height: 1.25;
    }
    .pillar-container > p {
      color: var(--text2);
      font-size: .97rem;
      line-height: 1.75;
      margin-bottom: 18px;
    }
    .pillar-howto { margin: 40px 0; }
    .pillar-howto h3, .pillar-faq h3 {
      font-size: 1rem;
      font-weight: 700;
      color: var(--text);
      margin-bottom: 16px;
      text-transform: uppercase;
      letter-spacing: .06em;
      font-size: .78rem;
      color: var(--text3);
    }
    .pillar-steps {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 12px;
    }
    .pillar-steps li {
      display: flex;
      gap: 14px;
      align-items: flex-start;
      color: var(--text2);
      font-size: .93rem;
      line-height: 1.6;
    }
    .step-num {
      flex-shrink: 0;
      width: 24px; height: 24px;
      border-radius: 50%;
      background: linear-gradient(135deg, var(--brand), var(--amber, #fbbf24));
      color: #000;
      font-size: .72rem;
      font-weight: 800;
      display: flex; align-items: center; justify-content: center;
      margin-top: 2px;
    }
    .pillar-faq { margin: 40px 0; }
    .pillar-faq details {
      border-bottom: 1px solid var(--border);
      padding: 14px 0;
    }
    .pillar-faq summary {
      cursor: pointer;
      font-weight: 500;
      color: var(--text);
      font-size: .93rem;
      list-style: none;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 12px;
    }
    .pillar-faq summary::-webkit-details-marker { display: none; }
    .pillar-faq summary::after {
      content: '+';
      color: var(--text3);
      font-size: 1.1rem;
      flex-shrink: 0;
      transition: transform .2s;
    }
    .pillar-faq details[open] summary::after { transform: rotate(45deg); }
    .pillar-faq details p {
      margin-top: 10px;
      color: var(--text2);
      font-size: .88rem;
      line-height: 1.65;
    }
    .pillar-closing {
      margin-top: 40px;
      padding-top: 32px;
      border-top: 1px solid var(--border);
      display: flex;
      align-items: center;
      gap: 20px;
      flex-wrap: wrap;
    }
    .pillar-closing p {
      color: var(--text2);
      font-size: .95rem;
      flex: 1;
    }
    .pillar-cta {
      display: inline-block;
      padding: 10px 22px;
      background: linear-gradient(135deg, var(--brand), var(--amber, #fbbf24));
      color: #000;
      font-weight: 700;
      font-size: .85rem;
      border-radius: var(--rsm);
      text-decoration: none;
      white-space: nowrap;
      transition: opacity .15s;
    }
    .pillar-cta:hover { opacity: .85; }
    /* Footer use cases */
    .footer-usecases {
      margin-bottom: 24px;
      display: flex;
      gap: 48px;
      justify-content: center;
      flex-wrap: wrap;
      text-align: left;
    }
    .footer-usecases-col h4 {
      font-size: .68rem;
      font-weight: 700;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: var(--text3);
      margin-bottom: 10px;
    }
    .footer-usecases-col ul {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    .footer-usecases-col a {
      color: var(--text2);
      text-decoration: none;
      font-size: .78rem;
      transition: color .15s;
    }
    .footer-usecases-col a:hover { color: var(--brand); }
    .lang-btn {
      padding: 4px 10px; border: none; background: none; cursor: pointer;
      font-size: .7rem; font-weight: 800; color: var(--text3);
      border-radius: 5px; transition: all .2s; letter-spacing: .8px;
      text-transform: uppercase; text-decoration: none; display: inline-block;
    }
    .lang-btn.active { background: var(--brand); color: #fff; }

    /* ── Light mode orange blobs — sutiles ───────────────────────── */
    /* (old blob rules removed — aurora canvas handles both themes) */

    /* ── Flow diagram ───────────────────────────────────────────── */
    .flow-section {
      padding: 80px 24px;
      background: transparent;
      position: relative; overflow: hidden;
    }
    .flow-container { max-width: 980px; margin: 0 auto; }
    .flow-header { text-align: center; margin-bottom: 56px; }
    .flow-nodes {
      display: flex; align-items: center;
      justify-content: center; gap: 0;
    }
    .flow-node {
      flex: 1; max-width: 200px;
      background: var(--surf); border: 1.5px solid var(--border);
      border-radius: 18px; padding: 28px 18px 22px;
      text-align: center; position: relative;
      transition: border-color .3s, transform .3s, box-shadow .3s;
      z-index: 1;
    }
    .flow-node:hover {
      border-color: var(--brand);
      transform: translateY(-3px);
      box-shadow: var(--sh);
    }
    .flow-node.final {
      border-color: rgba(79,124,255,.4);
      background: rgba(79,124,255,.06);
    }
    .flow-node-step {
      position: absolute; top: -11px; left: 50%;
      transform: translateX(-50%);
      width: 22px; height: 22px; border-radius: 50%;
      background: var(--grad); color: #fff;
      font-size: .62rem; font-weight: 900;
      display: flex; align-items: center; justify-content: center;
      box-shadow: 0 0 12px rgba(79,124,255,.5);
    }
    .flow-node-icon { font-size: 2.2rem; margin-bottom: 12px; line-height: 1; }
    .flow-node-title { font-size: .92rem; font-weight: 800; margin-bottom: 6px; }
    .flow-node-desc { font-size: .76rem; color: var(--text2); line-height: 1.45; }

    .flow-arrow {
      flex-shrink: 0; width: 52px; position: relative;
      display: flex; align-items: center; z-index: 0;
    }
    .flow-arrow-track {
      width: 100%; height: 2px;
      background: var(--border); position: relative; overflow: visible;
    }
    .flow-arrow-pulse {
      position: absolute; inset: 0;
      background: linear-gradient(90deg, transparent 0%, var(--brand-500) 50%, #FBBF24 80%, transparent 100%);
      background-size: 200% 100%;
      animation: arrowFlow 2s ease-in-out infinite;
      border-radius: 2px;
    }
    .flow-arrow-head {
      position: absolute; right: -1px; top: 50%;
      transform: translateY(-50%);
      width: 0; height: 0;
      border-top: 5px solid transparent;
      border-bottom: 5px solid transparent;
      border-left: 8px solid var(--brand);
    }
    @keyframes arrowFlow {
      0%   { background-position: -200% 0; opacity: 0; }
      15%  { opacity: 1; }
      85%  { opacity: 1; }
      100% { background-position: 200% 0; opacity: 0; }
    }

    @media (max-width: 700px) {
      .flow-nodes { flex-direction: column; align-items: stretch; gap: 0; }
      .flow-node { max-width: 100%; }
      .flow-arrow { width: auto; height: 36px; justify-content: center; }
      .flow-arrow-track { width: 2px; height: 100%; }
    }

    /* ── Demo animado ─────────────────────────────────────────── */
    .demo-grid {
      display: grid; grid-template-columns: 1fr 1fr; gap: 24px;
      align-items: start;
    }
    .demo-card {
      background: var(--surf); border: 1px solid var(--border);
      border-radius: var(--r); padding: 24px; position: relative; overflow: hidden;
    }
    .demo-card::before {
      content: ""; position: absolute; inset: 0;
      background: linear-gradient(135deg, rgba(79,124,255,.05) 0%, transparent 60%);
      pointer-events: none;
    }
    .demo-card-label {
      display: flex; align-items: center; gap: 7px;
      font-size: .72rem; font-weight: 700; color: var(--text3);
      text-transform: uppercase; letter-spacing: .8px; margin-bottom: 14px;
    }
    .demo-card-label .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--green); box-shadow: 0 0 6px var(--green); animation: pulse 2s infinite; }
    .demo-transcript { font-size: .88rem; line-height: 1.75; color: var(--text2); min-height: 90px; }
    .cursor { display: inline-block; width: 2px; height: 1em; background: var(--brand); margin-left: 2px; vertical-align: middle; animation: blink .8s infinite; }
    @keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }

    .style-cards { display: flex; flex-direction: column; gap: 10px; }
    .style-card {
      padding: 14px 16px; border-radius: var(--rsm);
      border: 1px solid var(--border); background: var(--surf2);
      font-size: .82rem; line-height: 1.6; transition: all .4s ease;
      opacity: 0; transform: translateX(12px);
    }
    .style-card.reveal { opacity: 1; transform: translateX(0); }
    .style-card-tag {
      display: inline-flex; align-items: center; gap: 4px;
      font-size: .65rem; font-weight: 700; text-transform: uppercase;
      letter-spacing: .5px; padding: 2px 8px; border-radius: 4px;
      margin-bottom: 6px; color: #fff;
    }
    .style-card-tag.viral       { background: #dc2626; }
    .style-card-tag.linkedin    { background: #2563eb; }
    .style-card-tag.storytelling{ background: var(--brand-500); }
    .style-card-txt { color: var(--text2); }

    /* ── Pricing ──────────────────────────────────────────────── */
    .pricing-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 40px; padding-bottom: 6px; }
    .price-card {
      background: var(--surf); border: 1px solid var(--border);
      border-radius: 16px; padding: 28px 24px;
      transition: all .2s ease;
      display: flex; flex-direction: column; gap: 6px; position: relative;
    }
    .price-card:hover { border-color: rgba(255,255,255,.12); transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,0,0,.3); }
    .price-icon {
      width: 44px; height: 44px; border-radius: 12px;
      background: rgba(79,124,255,.1);
      display: flex; align-items: center; justify-content: center;
      font-size: 1.4rem; margin-bottom: 8px;
    }
    .price-icon svg { width: 22px; height: 22px; color: var(--brand-500, #2F5BFF); }
    .price-title { font-family: var(--font-display); font-size: 1.2rem; font-weight: 400; margin-bottom: 2px; }
    .price-desc  { font-size: .82rem; color: var(--text2); line-height: 1.6; font-weight: 300; }
    .price-features {
      list-style: none; padding: 0; margin: 10px 0 16px; text-align: left; font-size: .8rem;
      color: var(--text2); line-height: 1.7;
    }
    .price-features li::before { content: "✓ "; color: var(--brand); font-weight: 700; }
    .price-badge {
      font-size: .65rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em;
      background: var(--grad); color: #fff; padding: 4px 10px; border-radius: 20px;
      display: inline-block; margin-bottom: 8px;
    }
    .price-amount { font-family: var(--font-display); font-size: 2.1rem; font-weight: 400; margin-bottom: 4px; }
    .price-amount span { font-family: var(--font-body); }
    .btn-plan {
      margin-top: auto; width: 100%; padding: 12px; border: none; border-radius: var(--rsm);
      background: var(--brand-cta); color: #fff; font-family: var(--font-body);
      font-weight: 600; font-size: .84rem;
      box-shadow: 0 5px 0 #22357c; transform: translateY(0);
      cursor: pointer; transition: transform .12s, box-shadow .12s, opacity .2s;
    }
    .btn-plan:hover { transform: translateY(-1px); box-shadow: 0 6px 0 #22357c, 0 4px 16px rgba(79,124,255,.3); opacity: .95; }
    .btn-plan:active { transform: scale(.98); opacity: .95; transition: transform .08s ease-out, opacity .08s ease-out; }
    .btn-plan:disabled { cursor: default; background: transparent; border: 1px solid var(--border); color: var(--text3); box-shadow: none; }
    .btn-plan.active { background: transparent; border: 1px solid var(--brand); color: var(--brand); box-shadow: none; transform: none; }
    .btn-plan.active:disabled { background: transparent; border: 1px solid var(--brand); color: var(--brand); opacity: .9; box-shadow: none; }
    .price-card.featured {
      border-color: var(--brand);
      background: var(--surf2);
      box-shadow: 0 0 32px rgba(79,124,255,.12);
    }
    .price-card.featured::before {
      content: "MOST POPULAR";
      position: absolute; top: -11px; left: 50%; transform: translateX(-50%);
      background: var(--brand); color: #fff;
      font-family: var(--font-body); font-size: .65rem; font-weight: 600;
      padding: 4px 14px; border-radius: 20px; letter-spacing: .05em; white-space: nowrap;
    }
    /* En el modal de upgrade ya hay un badge i18n (.price-badge "Más elegido") → evita el doble. */
    .upgrade-modal .price-card.featured::before { display: none; }
    /* Badge «Más elegido» como LAZO sobre el borde de la card (no empuja el contenido). */
    .upgrade-modal .upgrade-card .price-badge {
      position: absolute; top: -11px; left: 50%; transform: translateX(-50%);
      margin: 0; white-space: nowrap; z-index: 3; box-shadow: 0 4px 14px rgba(79,124,255,.35);
    }
    .upgrade-modal .upgrade-card.featured { padding-top: 26px; }
    /* Billing toggle */
    .billing-toggle {
      display: inline-flex; align-items: center; gap: 4px;
      background: var(--surf); border: 1px solid var(--border); border-radius: 999px;
      padding: 4px; margin: 14px auto 4px;
    }
    .billing-toggle { display: flex; width: max-content; }
    .pricing-cards + .billing-toggle, #pricingSection .billing-toggle { margin-left: auto; margin-right: auto; }
    #pricingSection .billing-toggle { display: flex; justify-content: center; margin: 18px auto 0; }
    .billing-toggle-opt {
      background: transparent; border: 0; cursor: pointer;
      padding: 8px 16px; border-radius: 999px;
      font-family: var(--font-body); font-size: .82rem; color: var(--text2); font-weight: 600;
      display: inline-flex; align-items: center; gap: 8px;
      transition: background .18s, color .18s;
    }
    .billing-toggle-opt:hover { color: var(--text); }
    .billing-toggle-opt.on {
      background: var(--brand); color: #fff;
      box-shadow: 0 2px 8px rgba(79,124,255,.25);
    }
    .billing-toggle-save {
      font-size: .65rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
      background: rgba(34,197,94,.16); color: #22c55e;
      padding: 2px 7px; border-radius: 999px;
    }
    .billing-toggle-opt.on .billing-toggle-save { background: rgba(255,255,255,.22); color: #fff; }
    .price-billed { font-size: .72rem; color: var(--text3); margin-top: -2px; margin-bottom: 4px; }
    .price-ideal { font-size: .78rem; color: var(--text2); line-height: 1.5; font-style: italic; margin-bottom: 6px; min-height: 36px; }
    /* Nav Upgrade button */
    .nav-upgrade-btn {
      background: var(--grad);
      color: #fff; border: 0; cursor: pointer;
      padding: 8px 14px; border-radius: 999px;
      font-family: var(--font-body); font-weight: 700; font-size: .78rem;
      letter-spacing: .02em; white-space: nowrap;
      box-shadow: 0 2px 8px rgba(79,124,255,.25);
      transition: transform .12s, box-shadow .18s, opacity .18s;
    }
    .nav-upgrade-btn:hover { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(79,124,255,.35); }
    .nav-upgrade-btn:active { transform: translateY(0); }
    /* Upgrade modal — layout horizontal y compacto: planes lado a lado, features en 2 columnas */
    /* .modal.upgrade-modal (2 clases) para ganar a .modal{max-width:420px}, definido después en el fuente */
    .modal.upgrade-modal { max-width: 1000px; width: 96vw; max-height: calc(100vh - 40px); overflow-y: auto; }
    .upgrade-modal h2 { text-align: center; }
    .upgrade-modal > p { text-align: center; color: var(--text2); }
    /* Eslogan de marca unificado (Fathom 18/06) — mismo de la landing. */
    .upgrade-modal .upgrade-slogan { text-align: center; font-weight: 700; letter-spacing: .01em; color: var(--brand-500); margin: 2px 0 -2px; font-size: .92rem; }
    .upgrade-modal .billing-toggle { display: flex; justify-content: center; margin: 8px auto 18px; width: max-content; }
    /* #5 (feedback David): planes lado a lado en columnas según nº de planes (3 si free,
       2 si creator…), ordenados barato→caro. La clase cards-N la pone renderUpgradeCards. */
    .upgrade-cards-grid { display: grid; gap: 16px; align-items: stretch;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
    .upgrade-cards-grid.cards-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .upgrade-cards-grid.cards-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 680px; margin: 0 auto; }
    .upgrade-cards-grid.cards-1 { grid-template-columns: minmax(0, 380px); justify-content: center; }
    /* Tarjeta compacta dentro del modal (override solo aquí, no toca el landing) */
    .upgrade-card { padding: 22px 20px 20px; }
    .upgrade-card .price-icon { margin-bottom: 4px; }
    .upgrade-card .price-ideal { min-height: 0; margin-bottom: 8px; }
    /* Con 3 columnas las cards son estrechas → features en 1 columna (legibilidad). */
    .upgrade-card .price-features { margin: 6px 0 16px; columns: 1; }
    .upgrade-card .price-features li { break-inside: avoid; margin-bottom: 3px; }
    .upgrade-card.is-current { opacity: .7; filter: saturate(.7); }
    .upgrade-card.is-current .price-icon { background: var(--surf2); }
    .upgrade-card .btn-plan:disabled {
      background: transparent; border: 1px solid var(--brand); color: var(--brand);
      opacity: .9; box-shadow: none;
    }
    @media (max-width: 760px) {
      .upgrade-cards-grid, .upgrade-cards-grid.cards-3, .upgrade-cards-grid.cards-2,
      .upgrade-cards-grid.cards-1 { grid-template-columns: 1fr; max-width: 420px; margin: 0 auto; }
    }
    /* #5 oferta MÁS notoria: badge «2 meses gratis» destacado en verde + glow + pulso. */
    .billing-toggle-save { background: var(--success-fg, #3FE0A0); color: #06281c;
      font-weight: 800; padding: 3px 11px; border-radius: 999px; font-size: .76rem; margin-left: 8px;
      letter-spacing: .01em; box-shadow: 0 0 0 0 rgba(63,224,160,.5); animation: ucmpOfferPulse 2.2s ease-out infinite; }
    @keyframes ucmpOfferPulse { 0% { box-shadow: 0 0 0 0 rgba(63,224,160,.45); } 70% { box-shadow: 0 0 0 8px rgba(63,224,160,0); } 100% { box-shadow: 0 0 0 0 rgba(63,224,160,0); } }
    /* #5 comparativa en tabla vertical (features × planes) bajo las cards. */
    .upgrade-compare { margin-top: 22px; }
    .ucmp-title { font-weight: 700; font-size: 1rem; margin: 0 0 12px; color: var(--text); }
    .ucmp-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
    .ucmp-table th, .ucmp-table td { padding: 11px 12px; text-align: center; border-bottom: 1px solid var(--border); }
    .ucmp-table thead th { font-weight: 700; color: var(--text); font-size: .92rem; border-bottom: 2px solid var(--border); }
    .ucmp-table td.ucmp-feat, .ucmp-table th.ucmp-feat { text-align: left; color: var(--text2); font-weight: 500; }
    /* Columna destacada: tinte translúcido (var(--brand-50) resolvía a casi BLANCO en
       tema oscuro → tapaba los valores). Translúcido funciona en claro y oscuro. */
    .ucmp-table .ucmp-on { background: rgba(79,124,255,.12); }
    .ucmp-table thead th.ucmp-on { color: var(--brand-500, #4f7cff); border-bottom-color: var(--brand); }
    .ucmp-table tbody tr:last-child td { border-bottom: none; }
    .ucmp-yes { color: var(--success-fg, #3FE0A0); font-weight: 700; }
    .ucmp-no { color: var(--text3); }
    @media (max-width: 700px) { .ucmp-table th, .ucmp-table td { padding: 9px 6px; font-size: .82rem; } }
    /* Settings: billing card */
    .settings-billing-row {
      display: flex; align-items: center; justify-content: space-between; gap: 16px;
      flex-wrap: wrap;
    }
    .settings-billing-info { display: flex; flex-direction: column; gap: 4px; }
    .settings-billing-label { font-size: .72rem; color: var(--text3); text-transform: uppercase; letter-spacing: .05em; }
    .settings-billing-plan { display: flex; align-items: center; gap: 8px; }
    .settings-billing-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }

    /* v0.14.16 — Subscription detail */
    .sub-detail-grid {
      display: grid; grid-template-columns: 1fr 1fr; gap: 14px 24px;
      padding: 14px 16px; border-radius: var(--radius-md);
      background: var(--surface-sunken);
      border: 1px solid var(--border-subtle);
      margin-bottom: 4px;
    }
    @media (max-width: 540px) {
      .sub-detail-grid { grid-template-columns: 1fr; gap: 10px; }
    }
    .sub-detail-row { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
    .sub-detail-label {
      font-size: .68rem; color: var(--text3);
      letter-spacing: .06em; text-transform: uppercase;
    }
    .sub-detail-value {
      font-size: .92rem; color: var(--text); font-weight: 500;
      font-variant-numeric: tabular-nums;
    }
    .sub-detail-foot { font-size: .72rem; color: var(--text3); margin-top: 8px; }

    .sub-cancel-banner {
      display: flex; align-items: flex-start; gap: 8px;
      padding: 10px 14px; border-radius: var(--radius-md);
      background: var(--warning-bg); border: 1px solid color-mix(in srgb, var(--warning) 30%, transparent);
      color: var(--warning-fg); font-size: var(--text-sm); line-height: 1.4;
      margin-bottom: 14px;
    }
    [data-theme="light"] .sub-cancel-banner { color: var(--warning-fg); }

    .sub-free-state, .sub-comp-state {
      display: flex; align-items: center; justify-content: space-between; gap: 16px;
      flex-wrap: wrap;
    }
    .sub-free-info { display: flex; flex-direction: column; gap: 4px; }
    .sub-free-label { font-size: .68rem; color: var(--text3); text-transform: uppercase; letter-spacing: .06em; }
    .sub-free-plan { display: flex; align-items: center; gap: 8px; }
    .sub-free-msg, .sub-comp-msg { font-size: .85rem; color: var(--text2); }

    /* ── Marquee ─────────────────────────────────────────────── */
    .marquee-section { padding: 0 0 80px; overflow: hidden; }
    .marquee-wrap { position: relative; }
    .marquee-wrap::before,
    .marquee-wrap::after {
      content: ""; position: absolute; top: 0; bottom: 0; width: 120px; z-index: 2;
    }
    .marquee-wrap::before { left: 0;  background: linear-gradient(90deg, var(--bg), transparent); }
    .marquee-wrap::after  { right: 0; background: linear-gradient(-90deg, var(--bg), transparent); }

    .marquee-track { display: flex; gap: 16px; width: max-content; animation: marquee 30s linear infinite; }
    .marquee-track:hover { animation-play-state: paused; }
    @keyframes marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }
    .marquee-item {
      display: flex; align-items: center; gap: 8px; white-space: nowrap;
      background: var(--surf); border: 1px solid var(--border);
      border-radius: 20px; padding: 10px 20px;
      font-size: .82rem; color: var(--text2);
    }
    .marquee-item span { font-size: .9rem; }


    /* ── Testimonials ─────────────────────────────────────────── */
    .testi-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 40px; }
    .testi-card {
      background: var(--surf); border: 1px solid var(--border);
      border-radius: var(--r); padding: 24px;
      transition: border-color .25s, transform .25s;
      opacity: 0; transform: translateY(20px); transition: opacity .5s, transform .5s, border-color .25s;
    }
    .testi-card.reveal { opacity: 1; transform: translateY(0); }
    .testi-card:hover { border-color: rgba(79,124,255,.4); }
    .testi-stars { color: #fbbf24; font-size: .9rem; margin-bottom: 12px; }
    .testi-quote { font-size: .88rem; color: var(--text2); line-height: 1.7; margin-bottom: 16px; font-style: italic; }
    .testi-quote strong { color: var(--brand-200); font-style: normal; }
    .testi-user { display: flex; align-items: center; gap: 10px; }
    .testi-av {
      width: 36px; height: 36px; border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: .85rem; font-weight: 800; color: #fff; flex-shrink: 0;
    }
    .testi-name { font-size: .85rem; font-weight: 700; }
    .testi-role { font-size: .75rem; color: var(--text3); }

    /* ── CTA final ────────────────────────────────────────────── */
    .cta-section {
      padding: 64px 24px 48px;
      text-align: center;
      background: transparent;
      position: relative; overflow: hidden;
    }
    .cta-mascot {
      width: 120px; height: 120px; margin: 0 auto 18px; display: block;
      filter: drop-shadow(0 8px 24px rgba(0,0,0,.25));
      animation: ctaMascotFloat 3s ease-in-out infinite;
    }
    @keyframes ctaMascotFloat {
      0%,100% { transform: translateY(0); }
      50%     { transform: translateY(-8px); }
    }
    .cta-h2 {
      font-family: var(--font-display); font-weight: 400;
      font-size: clamp(2rem, 5vw, 3.2rem);
      line-height: 1.1; letter-spacing: -1px; margin-bottom: 14px;
    }
    .cta-h2 em { font-style: italic; color: var(--brand-300); -webkit-text-fill-color: var(--brand-300); }
    [data-theme="light"] .cta-h2 em { color: var(--brand-700); -webkit-text-fill-color: var(--brand-700); }
    .cta-sub { color: var(--text2); font-size: 1.05rem; margin-bottom: 28px; line-height: 1.5; max-width: 520px; margin-left: auto; margin-right: auto; }
    .cta-pills { display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; margin-bottom: 28px; }
    .cta-pill {
      display: flex; align-items: center; gap: 5px;
      font-size: .8rem; color: var(--text2); font-weight: 600;
    }
    .cta-pill .ck { color: var(--green); }
    .cta-btn-final {
      display: inline-block;
      background: var(--brand-cta); color: #fff; border: 0;
      padding: 16px 32px; border-radius: 14px; cursor: pointer;
      font-family: var(--font-body); font-weight: 700; font-size: 1rem;
      box-shadow: 0 6px 0 #22357c, 0 8px 32px rgba(79,124,255,.4);
      transition: transform .12s, box-shadow .15s, background .15s;
    }
    .cta-btn-final:hover { transform: translateY(-1px); background: #3a63ec; box-shadow: 0 7px 0 #22357c, 0 10px 36px rgba(79,124,255,.18); }
    .cta-btn-final:active { transform: scale(.98); opacity: .95; transition: transform .08s ease-out, opacity .08s ease-out; }

    /* ── FAQ section ──────────────────────────────────────────── */
    .faq-section-v2 {
      max-width: 720px; margin: 24px auto 32px; padding: 0 24px;
    }
    .faq-section-v2 .s-label { display: block; text-align: center; margin-bottom: 8px; }
    .faq-h2 {
      font-family: var(--font-display); font-weight: 400;
      font-size: clamp(1.8rem, 4vw, 2.4rem); line-height: 1.1; letter-spacing: -.5px;
      text-align: center; margin: 0 0 36px;
    }
    .faq-item {
      border-bottom: 1px solid var(--border);
      padding: 18px 0;
    }
    .faq-item summary {
      cursor: pointer; list-style: none;
      display: flex; align-items: center; justify-content: space-between; gap: 14px;
      font-weight: 500; color: var(--text); font-size: .98rem; line-height: 1.4;
    }
    .faq-item summary::-webkit-details-marker { display: none; }
    .faq-item summary::after {
      content: "+"; flex-shrink: 0;
      width: 28px; height: 28px; border-radius: 50%;
      border: 1px solid var(--border); color: var(--text3);
      display: inline-flex; align-items: center; justify-content: center;
      font-size: 1.1rem; font-weight: 400;
      transition: transform .2s, color .2s, border-color .2s;
    }
    .faq-item[open] summary::after {
      content: "−"; color: var(--brand); border-color: var(--brand);
    }
    .faq-item p {
      margin: 12px 0 0; padding-right: 42px;
      color: var(--text2); font-size: .9rem; line-height: 1.6;
    }

    /* ── History ──────────────────────────────────────────────── */
    .history-section { padding: 0 24px 80px; }
    .hist-inner { max-width: 720px; margin: 0 auto; background: var(--surf); border: 1px solid var(--border); border-radius: 20px; padding: 28px; }
    .hist-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
    .hist-header h2 { font-size: 1rem; font-weight: 800; }
    .count-badge { background: var(--brand); color: #fff; font-size: .68rem; font-weight: 800; padding: 2px 8px; border-radius: 10px; }
    .hist-list { list-style: none; }
    .hist-item { padding: 13px 0; border-bottom: 1px solid var(--border); }
    .hist-item:last-child { border-bottom: none; }
    .hist-meta { display: flex; align-items: center; gap: 7px; margin-bottom: 5px; }
    .ptag { font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .4px; padding: 2px 8px; border-radius: 4px; color: #fff; }
    .ptag.instagram { background: #e1306c; }
    .ptag.tiktok    { background: #010101; }
    .ptag.otro      { background: #6b7280; }
    .hist-date  { font-size: .72rem; color: var(--text3); }
    .hist-cost  { font-size: .7rem; color: var(--text3); margin-left: auto; }
    .hist-prev  { font-size: .83rem; color: var(--text2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .hist-acts  { display: flex; gap: 5px; margin-top: 7px; }
    .btn-ico {
      background: none; border: 1px solid var(--border); border-radius: 6px;
      padding: 3px 9px; font-size: .7rem; color: var(--text3); cursor: pointer; transition: all .2s;
    }
    .btn-ico:hover { border-color: var(--brand); color: var(--brand-200); }
    .btn-ico.del:hover { border-color: #f87171; color: #f87171; }
    .empty-state { text-align: center; color: var(--text3); padding: 28px 0; font-size: .88rem; }

    /* ── Modals ───────────────────────────────────────────────── */
    .overlay {
      display: none; position: fixed; inset: 0;
      background: rgba(0,0,0,.65); backdrop-filter: blur(6px);
      /* z-index 300→10050 (fix #235 «Ver más»): el confirmModal quedaba POR DEBAJO de los
         overlays de la isla, loaders de fondo y el tour-overlay (z 10000) → el clic no
         llegaba y parecía que «no funcionaba». Un modal debe estar por encima de todo. */
      z-index: 10050; align-items: center; justify-content: center; padding: 20px;
    }
    .overlay.on { display: flex; }
    .modal {
      background: var(--surf); border: 1px solid rgba(255,255,255,.06);
      border-radius: 20px; box-shadow: var(--sh-lg);
      width: 100%; max-width: 420px; padding: 36px; position: relative;
      animation: modal-in .25s ease;
    }
    @keyframes modal-in { from{opacity:0;transform:translateY(14px)scale(.97)} }
    .modal-x {
      position: absolute; top: 16px; right: 16px;
      background: none; border: none; color: var(--text3); font-size: 1.1rem;
      cursor: pointer; width: 28px; height: 28px; border-radius: 6px;
      display: flex; align-items: center; justify-content: center; transition: all .2s;
    }
    .modal-x:hover { background: var(--surf2); color: var(--text); }
    .modal h2 { font-family: var(--font-display); font-size: 1.15rem; font-weight: 700; margin-bottom: 5px; }
    .modal > p { color: var(--text2); font-size: .84rem; margin-bottom: 22px; line-height: 1.5; font-weight: 300; }

    .tabs { display: flex; gap: 3px; background: var(--surf2); border: 1px solid var(--border); border-radius: var(--rsm); padding: 3px; margin-bottom: 20px; }
    .tab { flex: 1; padding: 8px; border-radius: 6px; border: none; font-size: .83rem; font-weight: 700; cursor: pointer; background: none; color: var(--text3); transition: all .15s; }
    .tab.on { background: var(--surf); color: var(--text); box-shadow: 0 1px 4px rgba(0,0,0,.3); }
    .field { margin-bottom: 14px; }
    .field label { display: block; font-size: .75rem; font-weight: 700; color: var(--text3); margin-bottom: 5px; text-transform: uppercase; letter-spacing: .4px; }
    .field input {
      width: 100%; padding: 11px 14px; background: var(--surf2);
      border: 1.5px solid var(--border); border-radius: var(--rsm);
      font-size: .9rem; color: var(--text); outline: none; transition: border-color .2s, box-shadow .2s;
    }
    .field input:focus { border-color: var(--brand); box-shadow: var(--glow); }
    .btn-full {
      /* v0.14.35.a: consistencia CTA — antes var(--grad), ahora --brand-cta. */
      width: 100%; padding: 13px; background: var(--brand-cta);
      color: #fff; border: none; border-radius: var(--rsm);
      font-size: .95rem; font-weight: 800; cursor: pointer; margin-top: 4px;
      box-shadow: 0 5px 0 #22357c; transform: translateY(0);
      transition: transform .12s, box-shadow .12s, opacity .2s;
    }
    .btn-full:hover { transform: translateY(-1px); box-shadow: 0 6px 0 #22357c; opacity: .9; }
    .btn-full:active { transform: scale(.98); opacity: .95; transition: transform .08s ease-out, opacity .08s ease-out; }
    .btn-full:disabled { opacity: .4; cursor: not-allowed; box-shadow: none; transform: none; }
    .form-err { color: #f87171; font-size: .78rem; margin-top: 10px; display: none; }
    .form-err.on { display: block; }
    .btn-google-auth {
      width: 100%; padding: 12px 16px; background: var(--surf2); border: 1px solid var(--border);
      border-radius: 8px; cursor: pointer; display: flex; align-items: center;
      justify-content: center; gap: 12px; font-size: .9rem; color: var(--text);
      font-family: var(--font-body); margin-bottom: 4px;
      box-shadow: 0 4px 0 rgba(255,255,255,.06); transform: translateY(0);
      transition: transform .12s, box-shadow .12s;
    }
    .btn-google-auth:hover { transform: translateY(-1px); box-shadow: 0 5px 0 rgba(255,255,255,.06); border-color: var(--brand); }
    .btn-google-auth:active { transform: translateY(3px); box-shadow: 0 1px 0 rgba(255,255,255,.06); }
    [data-theme="light"] .btn-google-auth { background: #fff; border-color: #dadce0; color: #3c4043; box-shadow: 0 4px 0 #d1d5db; }
    [data-theme="light"] .btn-google-auth:hover { box-shadow: 0 5px 0 #d1d5db; border-color: #dadce0; }
    [data-theme="light"] .btn-google-auth:active { box-shadow: 0 1px 0 #d1d5db; }

    /* Topup */
    .topup-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; margin: 20px 0; }
    .topup-opt {
      border: 2px solid var(--border); border-radius: var(--rsm);
      padding: 16px 10px; text-align: center; cursor: pointer;
      background: var(--surf2); transition: transform .12s, box-shadow .12s, border-color .2s, background .2s;
      box-shadow: 0 4px 0 rgba(255,255,255,.07); transform: translateY(0);
    }
    .topup-opt:hover, .topup-opt.on { border-color: var(--brand); background: rgba(79,124,255,.1); }
    .topup-opt:active { transform: translateY(3px); box-shadow: 0 1px 0 rgba(255,255,255,.07); }
    .topup-amt { font-size: 1.4rem; font-weight: 900; }
    .topup-cred { font-size: .7rem; color: var(--text3); margin-top: 3px; }
    .topup-note { font-size: .77rem; color: var(--text3); text-align: center; margin-bottom: 14px; }
    /* #5 empuje a suscripción dentro del modal de packs */
    .topup-sub-nudge { display:flex; flex-direction:column; gap:9px; align-items:flex-start; margin:14px 0 4px; padding:12px 14px; border-radius:12px;
      border:1px solid rgba(79,124,255,.3); background:rgba(79,124,255,.08); font-size:.82rem; line-height:1.45; color:var(--text2); }
    .topup-sub-nudge b { color:var(--text); font-weight:700; }
    .topup-sub-nudge button { align-self:stretch; padding:9px 14px; border-radius:10px; border:none; cursor:pointer; font-weight:700; font-size:.82rem;
      background:var(--brand-cta); color:#fff; box-shadow:0 3px 0 #22357c; transition:transform .12s; }
    .topup-sub-nudge button:active { transform:translateY(2px); box-shadow:0 1px 0 #22357c; }

    /* ── Button active/inactive state ────────────────────────── */
    .btn-shimmer.inactive {
      animation: none;
      background: var(--surf2);
      color: var(--text3);
      cursor: not-allowed;
      pointer-events: none;
    }
    .btn-shimmer.wake {
      animation: btn-wake .4s ease, shimmer 4s linear infinite .4s;
    }
    @keyframes btn-wake {
      0%   { transform: scale(.97); opacity: .6; }
      60%  { transform: scale(1.03); }
      100% { transform: scale(1);   opacity: 1; }
    }

    /* ── Input valid micro-anim ───────────────────────────────── */
    @keyframes input-confirm {
      0%   { transform: scale(1); }
      30%  { transform: scale(1.012) translateX(2px); }
      60%  { transform: scale(1.012) translateX(-2px); }
      100% { transform: scale(1); }
    }
    .input-confirm { animation: input-confirm .35s ease !important; }

    /* ── Inline transform section ─────────────────────────────── */
    .transform-section {
      margin-top: 20px;
      border-top: 1px solid var(--border);
      padding-top: 18px;
      animation: fade-up .4s ease both;
    }
    .transform-divider {
      display: flex; align-items: center; gap: 10px;
      font-size: .82rem; font-weight: 700; color: var(--text3);
      margin-bottom: 14px; letter-spacing: .3px;
    }
    .transform-divider::before,
    .transform-divider::after {
      content: ""; flex: 1; height: 1px; background: var(--border);
    }
    .transform-divider span { white-space: nowrap; color: var(--brand-300); }

    .style-chips {
      display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px;
    }
    .style-chip {
      position: relative;
      padding: 8px 16px; border-radius: 20px;
      border: 1.5px solid var(--border); background: var(--surf2);
      color: var(--text2); font-size: .82rem; font-weight: 700;
      cursor: pointer; white-space: nowrap;
      box-shadow: 0 3px 0 rgba(255,255,255,.07); transform: translateY(0);
      transition: transform .12s, box-shadow .12s, border-color .2s, color .2s, background .2s;
    }
    .style-chip:hover {
      border-color: var(--brand); color: var(--brand-200);
      background: rgba(79,124,255,.1);
      transform: translateY(-1px); box-shadow: 0 4px 0 rgba(255,255,255,.07);
    }
    .style-chip:active { transform: translateY(2px); box-shadow: 0 1px 0 rgba(255,255,255,.07); }
    .style-chip.act {
      border-color: var(--brand); color: var(--brand-200);
      background: rgba(79,124,255,.15);
      box-shadow: 0 3px 0 rgba(79,124,255,.3);
    }

    /* Tooltip preview on hover */
    .style-chip::after {
      content: attr(data-preview);
      position: absolute; bottom: calc(100% + 8px); left: 50%;
      transform: translateX(-50%) translateY(4px);
      background: var(--surf); border: 1px solid var(--border);
      color: var(--text2); font-size: .72rem; font-weight: 500;
      padding: 5px 10px; border-radius: 6px;
      white-space: nowrap; pointer-events: none;
      opacity: 0; transition: opacity .15s, transform .15s;
      box-shadow: var(--sh);
    }
    .style-chip:hover::after {
      opacity: 1; transform: translateX(-50%) translateY(0);
    }

    .custom-chip-row {
      display: none; gap: 8px; margin-bottom: 12px;
    }
    .custom-chip-row.on { display: flex; }
    .custom-chip-row input {
      flex: 1; padding: 9px 14px; background: var(--surf2);
      border: 1.5px solid var(--border); border-radius: var(--rsm);
      font-size: .85rem; color: var(--text); outline: none;
      transition: border-color .2s;
    }
    .custom-chip-row input:focus { border-color: var(--brand); }

    .inline-spinner {
      display: none; align-items: center; gap: 7px;
      /* v0.14.35: spinner text a neutro. */
      padding: 10px 0; font-size: .82rem; color: var(--text2); font-weight: 600;
    }
    .inline-spinner.on { display: flex; }

    .transform-result {
      display: none;
      margin-top: 14px;
      border-radius: var(--rsm);
      overflow: hidden;
      animation: fade-up .4s ease both;
    }
    .transform-result.on { display: block; }
    .transform-result-label {
      display: flex; align-items: center; justify-content: space-between;
      padding: 8px 14px;
      background: linear-gradient(135deg, rgba(79,124,255,.2), rgba(251,191,36,.12));
      font-size: .75rem; font-weight: 800; color: var(--brand-200);
      letter-spacing: .3px;
    }
    .transform-result-body {
      padding: 16px 14px;
      background: rgba(79,124,255,.06);
      border: 1px solid rgba(79,124,255,.2);
      border-top: none; border-radius: 0 0 var(--rsm) var(--rsm);
      font-size: .9rem; line-height: 1.8; color: var(--text);
      white-space: pre-wrap; word-break: break-word;
      max-height: 300px; overflow-y: auto;
    }

    /* ── Scroll hint ──────────────────────────────────────────── */
    .scroll-hint {
      margin-top: 32px; display: flex; flex-direction: column;
      align-items: center; gap: 8px; cursor: pointer;
      opacity: .7; transition: opacity .2s;
    }
    .scroll-hint:hover { opacity: 1; }
    .scroll-hint-txt {
      /* v0.14.35: hint text a neutro. */
      font-size: .8rem; color: var(--text2); font-weight: 600;
      letter-spacing: .3px;
    }
    .scroll-arrow {
      font-size: 1.2rem; color: var(--text2);
      animation: bounce-arrow 1.4s ease-in-out infinite;
    }
    @keyframes bounce-arrow {
      0%,100% { transform: translateY(0); opacity: .7; }
      50%      { transform: translateY(7px); opacity: 1; }
    }

    /* ── Inline loading indicator (squeeze loader) ───────────────── */
    .inline-loading {
      display: none; align-items: center; gap: 14px;
      padding: 14px 18px; margin-top: 10px;
      background: var(--surf); border: 1px solid var(--border);
      border-radius: var(--r);
      animation: loading-slide-in .2s ease;
    }
    .inline-loading.on { display: flex; }
    @keyframes loading-slide-in {
      from { opacity: 0; transform: translateY(-6px); }
      to   { opacity: 1; transform: translateY(0); }
    }

    /* Squeeze animation */
    .sq-loader {
      width: 36px; height: 36px;
      position: relative; flex-shrink: 0;
      animation: sq-spin 10s infinite linear;
    }
    .sq-el { position: absolute; }
    .sq-el1 { background: var(--brand-500); animation: sq-squeeze 3s infinite; }
    .sq-el2 { background: #FBBF24; border-radius: 50%; animation: sq-squeeze 3s infinite; animation-delay: -1.25s; }
    @keyframes sq-squeeze {
      0%    { inset: 0 2em 2em 0; }
      12.5% { inset: 0 2em 0    0; }
      25%   { inset: 2em 2em 0  0; }
      37.5% { inset: 2em 0    0  0; }
      50%   { inset: 2em 0    0  2em; }
      62.5% { inset: 0   0    0  2em; }
      75%   { inset: 0   0    2em 2em; }
      87.5% { inset: 0   0    2em 0; }
      100%  { inset: 0 2em 2em 0; }
    }
    @keyframes sq-spin { to { transform: rotate(-360deg); } }

    .loading-msg {
      font-size: .88rem; font-weight: 600; color: var(--text2);
      transition: opacity .3s ease; line-height: 1.4;
    }
    .loading-msg.fade { opacity: 0; }
    /* v0.14.22 BUG 6: helper para inyectar fade en spans existentes
       (transcribe inline status) sin pisar tipografía del padre. */
    .loading-msg-rot { transition: opacity .3s ease; }
    .loading-msg-rot.fade { opacity: 0; }
    /* Reutilizado por previewSpinner p y resultBlock para fade entre frases. */
    .preview-card-spinner p { transition: opacity .3s ease; }
    .preview-card-spinner p.fade { opacity: 0; }

    .loading-progress-wrap {
      flex: 1; height: 3px;
      background: var(--border); border-radius: 4px; overflow: hidden;
    }
    .loading-progress-bar {
      height: 100%; width: 0%; border-radius: 4px;
      background: linear-gradient(90deg, var(--brand-500), #FBBF24, var(--brand-500));
      background-size: 200% auto;
      animation: shimmer 2s linear infinite;
      transition: width .4s ease;
    }
    .loading-pct { font-size: .75rem; color: var(--text3); font-weight: 700; }

    /* ── Global input/select hover ───────────────────────────── */
    input:not([type="submit"]):hover,
    select:hover,
    textarea:hover {
      border-color: var(--text3) !important;
    }
    input:not([type="submit"]):focus,
    select:focus,
    textarea:focus {
      border-color: var(--brand) !important;
      box-shadow: var(--glow) !important;
    }
    .btn-sm:hover, .btn-ico:hover, .btn-nav:hover {
      background: rgba(79,124,255,.08);
    }

    /* ── View full modal ──────────────────────────────────────── */
    .view-overlay {
      display: none; position: fixed; inset: 0;
      background: rgba(0,0,0,.6); backdrop-filter: blur(5px);
      z-index: 350; align-items: center; justify-content: center; padding: 20px;
    }
    .view-overlay.on { display: flex; }
    .view-modal {
      background: var(--surf); border: 1px solid var(--border);
      border-radius: 20px; box-shadow: var(--sh-lg);
      width: 100%; max-width: 600px; max-height: 80vh;
      display: flex; flex-direction: column;
      animation: modal-in .2s ease;
    }
    .view-modal-head {
      padding: 20px 24px; border-bottom: 1px solid var(--border);
      display: flex; align-items: center; justify-content: space-between; gap: 12px;
    }
    .view-modal-head h3 { font-size: 1rem; font-weight: 800; }
    .view-modal-body {
      padding: 20px 24px; overflow-y: auto; flex: 1;
      font-size: .92rem; line-height: 1.8; color: var(--text);
      white-space: pre-wrap; word-break: break-word;
    }
    .view-modal-foot {
      padding: 14px 24px; border-top: 1px solid var(--border);
      display: flex; gap: 8px;
    }

    /* ── Theme toggle ─────────────────────────────────────────── */
    .theme-btn {
      width: 34px; height: 34px; border-radius: var(--rsm);
      border: 1px solid var(--border); background: var(--surf);
      cursor: pointer; font-size: .95rem;
      display: flex; align-items: center; justify-content: center;
      transition: border-color .2s, background .2s;
      flex-shrink: 0;
    }
    .theme-btn:hover { border-color: var(--brand); }

    /* ── Profile drawer ───────────────────────────────────────── */
    .drawer-overlay {
      display: none; position: fixed; inset: 0;
      background: rgba(0,0,0,.5); backdrop-filter: blur(4px);
      z-index: 250;
    }
    .drawer-overlay.on { display: block; }
    .drawer {
      position: fixed; top: 0; right: 0; bottom: 0;
      width: 380px; max-width: 100vw;
      background: var(--surf); border-left: 1px solid var(--border);
      box-shadow: -8px 0 40px rgba(0,0,0,.4);
      display: flex; flex-direction: column;
      transform: translateX(100%);
      transition: transform .3s cubic-bezier(.4,0,.2,1);
      z-index: 251;
    }
    .drawer.on { transform: translateX(0); }

    .drawer-head {
      padding: 24px; border-bottom: 1px solid var(--border);
      display: flex; align-items: center; gap: 14px;
    }
    .drawer-av {
      width: 52px; height: 52px; border-radius: 50%;
      background: var(--grad); display: flex; align-items: center; justify-content: center;
      font-size: 1.3rem; font-weight: 900; color: #fff; flex-shrink: 0; overflow: hidden;
    }
    .drawer-user-info { flex: 1; min-width: 0; }
    .drawer-email { font-size: .88rem; font-weight: 700; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .drawer-since { font-size: .75rem; color: var(--text3); margin-top: 2px; }
    .drawer-close {
      background: none; border: none; color: var(--text3);
      font-size: 1.1rem; cursor: pointer; padding: 4px; border-radius: 6px;
      transition: background .2s;
    }
    .drawer-close:hover { background: var(--surf2); }

    .drawer-balance {
      margin: 16px; padding: 16px;
      background: linear-gradient(135deg, rgba(79,124,255,.12), rgba(251,191,36,.08));
      border: 1px solid rgba(79,124,255,.25);
      border-radius: var(--r); display: flex; align-items: center; gap: 12px;
    }
    .drawer-balance-amt { font-size: 1.6rem; font-weight: 900; color: var(--text); }
    .drawer-balance-lbl { font-size: .75rem; color: var(--text3); margin-top: 2px; }
    .btn-topup-sm {
      margin-left: auto; padding: 8px 16px;
      /* v0.14.35.a: consistencia CTA — antes var(--grad), ahora --brand-cta. */
      background: var(--brand-cta); color: #fff; border: none;
      border-radius: var(--rsm); font-size: .8rem; font-weight: 700;
      cursor: pointer; white-space: nowrap;
      box-shadow: 0 4px 0 #22357c; transform: translateY(0);
      transition: transform .12s, box-shadow .12s, opacity .2s;
    }
    .btn-topup-sm:hover { opacity: .9; transform: translateY(-1px); box-shadow: 0 5px 0 #22357c; }
    .btn-topup-sm:active { transform: translateY(3px); box-shadow: 0 1px 0 #22357c; }

    .drawer-stats {
      margin: 0 16px 16px; display: grid; grid-template-columns: 1fr 1fr;
      gap: 10px;
    }
    .stat-card {
      padding: 12px; background: var(--surf2); border: 1px solid var(--border);
      border-radius: var(--rsm); text-align: center;
    }
    .stat-num { font-size: 1.3rem; font-weight: 900; color: var(--text); }
    .stat-lbl { font-size: .7rem; color: var(--text3); margin-top: 2px; }

    .drawer-hist-title {
      padding: 0 16px 10px; font-size: .78rem; font-weight: 700;
      color: var(--text3); text-transform: uppercase; letter-spacing: .5px;
      display: flex; align-items: center; justify-content: space-between;
    }
    .drawer-hist-list { flex: 1; overflow-y: auto; padding: 0 16px 16px; }
    .d-hist-item {
      padding: 12px 0; border-bottom: 1px solid var(--border);
    }
    .d-hist-item:last-child { border-bottom: none; }
    .d-hist-meta { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
    .d-hist-prev { font-size: .82rem; color: var(--text2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .d-hist-acts { display: flex; gap: 5px; margin-top: 6px; }

    .drawer-logout {
      margin: 0 16px 20px; padding: 11px;
      background: none; border: 1px solid var(--border);
      border-radius: var(--rsm); color: var(--text3);
      font-size: .85rem; font-weight: 600; cursor: pointer;
      transition: border-color .2s, color .2s; width: calc(100% - 32px);
    }
    .drawer-logout:hover { border-color: #f87171; color: #f87171; }

    /* ── Profile Hub — full width sidebar + content ───────────── */
    .profile-overlay {
      display: none; position: fixed; inset: 0;
      background: #0a0b0f; z-index: 300;
      overflow: hidden;
      background-image:
        radial-gradient(ellipse at 15% -5%, rgba(79,124,255,.1) 0%, transparent 45%),
        radial-gradient(ellipse at 85% 95%, rgba(139,92,246,.07) 0%, transparent 45%),
        radial-gradient(ellipse at 60% 30%, rgba(79,124,255,.04) 0%, transparent 50%),
        radial-gradient(ellipse at 30% 70%, rgba(139,92,246,.03) 0%, transparent 50%);
    }
    .profile-overlay.on { display: block; }

    /* ── ADMIN PANEL (v0.20) ─────────────────────────────────────────────
       Superficie admin separada (#adminPage). Vive en <body>, full-screen
       overlay como #profilePage. Estética Signal reutilizando los tokens
       del :root (azul #4f7cff, Space Grotesk / Hanken / JetBrains Mono).
       Todo el CSS está scopeado bajo #adminPage para no colisionar con las
       clases globales (.card, .btn, .tab, .panel). NO toca el gating JS. */
    #adminPage {
      display: none; position: fixed; inset: 0;
      background: var(--surface-base); color: var(--text-primary);
      z-index: 400; overflow-y: auto;
      font-family: var(--font-body);
      background-image:
        radial-gradient(ellipse at 15% -5%, rgba(79,124,255,.08) 0%, transparent 45%),
        radial-gradient(ellipse at 85% 100%, rgba(79,124,255,.05) 0%, transparent 45%);
    }
    #adminPage.on { display: block; }
    #adminPage .adm-wrap { max-width: 1200px; margin: 0 auto; padding: 40px 24px 96px; }

    #adminPage .adm-header {
      display: flex; align-items: flex-start; justify-content: space-between;
      gap: 16px; margin-bottom: 28px; flex-wrap: wrap;
    }
    #adminPage .adm-header h1 {
      font-family: var(--font-display-2);
      font-size: var(--text-3xl); font-weight: 700; letter-spacing: -0.5px;
      color: var(--text-primary); line-height: 1.1;
    }
    #adminPage .adm-header .adm-sub {
      font-size: var(--text-sm); color: var(--text-secondary); margin-top: 6px;
    }
    #adminPage .adm-header-actions { display: flex; gap: 8px; align-items: center; }

    #adminPage .adm-tabs {
      display: flex; gap: 4px;
      border-bottom: 1px solid var(--border-subtle);
      margin-bottom: 28px; overflow-x: auto; -webkit-overflow-scrolling: touch;
    }
    #adminPage .adm-tab {
      padding: 12px 16px; background: transparent; border: none;
      color: var(--text-secondary); cursor: pointer;
      font-family: var(--font-body); font-size: var(--text-sm); font-weight: 500;
      border-bottom: 2px solid transparent;
      transition: color .2s, border-color .2s; white-space: nowrap;
    }
    #adminPage .adm-tab:hover { color: var(--text-primary); }
    #adminPage .adm-tab.on { color: var(--brand-500); border-bottom-color: var(--brand-500); }

    #adminPage .adm-panel { display: none; animation: panelFadeIn 200ms ease-out; }
    #adminPage .adm-panel.on { display: block; }

    #adminPage .adm-card {
      background: var(--surface-raised);
      border: 1px solid var(--border-default);
      border-radius: var(--radius-lg);
      padding: 20px; box-shadow: var(--shadow-sm);
    }
    #adminPage .adm-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
      gap: 16px;
    }
    #adminPage .adm-stat-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
      gap: 16px; margin-bottom: 28px;
    }
    #adminPage .adm-stat-num {
      font-family: var(--font-display-2);
      font-size: var(--text-3xl); font-weight: 700; line-height: 1.1;
      color: var(--text-primary); margin-top: 4px;
    }
    #adminPage .adm-stat-num.accent { color: var(--brand-500); }

    #adminPage .adm-field { margin-bottom: 16px; }
    #adminPage .adm-label {
      display: block; font-size: 11px; font-weight: 600;
      color: var(--text-tertiary); text-transform: uppercase;
      letter-spacing: 0.06em; margin-bottom: 7px;
    }
    #adminPage .adm-input {
      width: 100%; padding: 10px 12px;
      background: var(--surface-base);
      border: 1px solid var(--border-default);
      border-radius: var(--radius-md);
      color: var(--text-primary);
      font-family: var(--font-mono); font-size: var(--text-sm);
      transition: border-color .15s, box-shadow .15s;
    }
    #adminPage .adm-input:focus {
      outline: none; border-color: var(--brand-500);
      box-shadow: 0 0 0 2px rgba(79,124,255,.2);
    }
    #adminPage .adm-check {
      display: flex; align-items: center; gap: 8px; cursor: pointer;
      font-size: var(--text-sm); color: var(--text-secondary);
    }
    #adminPage .adm-check input { width: 16px; height: 16px; accent-color: var(--brand-500); }

    #adminPage .adm-btn {
      padding: 10px 16px; background: var(--brand-600); color: #fff;
      border: none; border-radius: var(--radius-md); cursor: pointer;
      font-family: var(--font-body); font-size: var(--text-sm); font-weight: 600;
      transition: background .15s; white-space: nowrap;
    }
    #adminPage .adm-btn:hover { background: var(--brand-500); }
    #adminPage .adm-btn:disabled { background: var(--text-disabled); cursor: not-allowed; opacity: .6; }
    #adminPage .adm-btn-secondary {
      background: transparent; color: var(--text-secondary);
      border: 1px solid var(--border-default);
    }
    #adminPage .adm-btn-secondary:hover { background: var(--surface-overlay); color: var(--text-primary); }

    #adminPage .adm-table {
      width: 100%; border-collapse: collapse;
      background: var(--surface-raised);
      border: 1px solid var(--border-default);
      border-radius: var(--radius-lg); overflow: hidden;
      box-shadow: var(--shadow-sm);
    }
    #adminPage .adm-table thead th {
      padding: 12px 14px; background: var(--surface-overlay);
      font-size: 11px; font-weight: 600; color: var(--text-tertiary);
      text-align: left; text-transform: uppercase; letter-spacing: 0.06em;
      border-bottom: 1px solid var(--border-default);
    }
    #adminPage .adm-table td {
      padding: 11px 14px; font-size: var(--text-sm);
      color: var(--text-primary);
      border-bottom: 1px solid var(--border-subtle);
      font-family: var(--font-mono); vertical-align: middle;
    }
    #adminPage .adm-table tbody tr:last-child td { border-bottom: none; }
    #adminPage .adm-table tbody tr:hover td { background: rgba(255,255,255,.02); }
    #adminPage .adm-table-wrap { overflow-x: auto; border-radius: var(--radius-lg); }

    /* Feedback: filtro + texto truncado + modal de detalle */
    #adminPage .adm-fb-filter { display: flex; gap: 10px; align-items: center; margin-bottom: 16px; }
    #adminPage .adm-fb-txt { max-width: 360px; color: var(--text-secondary);
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    #adminPage .adm-fb-modal {
      position: fixed; inset: 0; z-index: 70; display: none;
      align-items: center; justify-content: center; padding: 24px;
      background: rgba(0,0,0,.72); backdrop-filter: blur(2px);
    }
    #adminPage .adm-fb-modal.on { display: flex; }
    #adminPage .adm-fb-modal-card {
      background: var(--surface-raised); border: 1px solid var(--border-subtle);
      border-radius: var(--radius-lg); max-width: 560px; width: 100%;
      max-height: 86vh; overflow-y: auto; padding: 24px;
    }
    #adminPage .adm-fb-modal-card img {
      max-width: 100%; margin-top: 14px; border-radius: var(--radius-md);
      border: 1px solid var(--border-subtle); display: block;
    }

    #adminPage .adm-pill {
      display: inline-block; padding: 2px 9px; border-radius: var(--radius-full);
      font-size: 11px; font-weight: 600; font-family: var(--font-body);
      background: rgba(79,124,255,.14); color: var(--brand-300);
    }
    #adminPage .adm-pill.muted { background: rgba(255,255,255,.06); color: var(--text-tertiary); }

    #adminPage .adm-source {
      font-size: var(--text-xs); color: var(--text-secondary);
      margin-bottom: 16px; display: flex; align-items: center; gap: 8px;
    }
    #adminPage .adm-source .adm-src-tag {
      font-family: var(--font-mono); font-weight: 600; color: var(--text-primary);
      padding: 2px 8px; border-radius: var(--radius-sm);
      background: var(--surface-overlay); border: 1px solid var(--border-default);
    }

    #adminPage .adm-msg { padding: 11px 14px; border-radius: var(--radius-md); font-size: var(--text-sm); margin-bottom: 16px; }
    #adminPage .adm-msg.error { background: rgba(239,68,68,.14); color: #f87171; }
    #adminPage .adm-msg.ok { background: rgba(34,197,94,.14); color: #4ade80; }
    #adminPage .adm-msg.info { background: rgba(79,124,255,.14); color: var(--brand-300); }

    #adminPage .adm-loading { text-align: center; padding: 48px 0; color: var(--text-secondary); }
    #adminPage .adm-spinner {
      display: inline-block; width: 18px; height: 18px;
      border: 2px solid var(--brand-500); border-right-color: transparent;
      border-radius: 50%; animation: spin .8s linear infinite;
    }
    @keyframes spin { to { transform: rotate(360deg); } }
    #adminPage .adm-toast {
      position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%) translateY(20px);
      background: var(--surface-overlay); color: var(--text-primary);
      border: 1px solid var(--border-default); border-radius: var(--radius-md);
      padding: 12px 20px; font-size: var(--text-sm); font-weight: 500;
      box-shadow: var(--shadow-lg); z-index: 410;
      opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s;
    }
    #adminPage .adm-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
    #adminPage .adm-toast.error { border-color: rgba(239,68,68,.5); }
    #adminPage .adm-toast.ok { border-color: rgba(34,197,94,.5); }

    /* Floating entry chip (solo visible para admins, lo activa el boot JS) */
    #adminEntry {
      display: none; position: fixed; right: 16px; bottom: 16px; z-index: 350;
      padding: 9px 14px; border-radius: var(--radius-full);
      background: var(--surface-overlay); color: var(--text-primary);
      border: 1px solid var(--border-default); box-shadow: var(--shadow-md);
      font-family: var(--font-body); font-size: var(--text-sm); font-weight: 600;
      cursor: pointer; gap: 7px; align-items: center;
      transition: border-color .15s, background .15s;
    }
    #adminEntry.on { display: inline-flex; }
    #adminEntry:hover { border-color: var(--brand-500); background: var(--surface-raised); }
    #adminEntry .adm-entry-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--brand-500); }

    @media (max-width: 640px) {
      #adminPage .adm-wrap { padding: 24px 14px 80px; }
      #adminPage .adm-header h1 { font-size: var(--text-2xl); }
    }

    /* v0.14.31.d: .prof-mob-hamburger eliminada. Mobile usa bottom-bar 5 items. */

    .prof-layout {
      display: grid; grid-template-columns: 260px 1fr;
      height: 100vh; overflow: hidden;
    }

    /* Sidebar */
    .prof-sidebar {
      background: var(--surf); border-right: 1px solid var(--border);
      display: flex; flex-direction: column;
      height: 100vh; overflow-y: auto;
    }

    /* Main content area */
    .prof-main {
      overflow-y: auto; padding: var(--space-xl) calc(var(--space-xl) + 8px) 60px;
    }
    .prof-main::-webkit-scrollbar { width: 4px; }
    .prof-main::-webkit-scrollbar-thumb { background: rgba(255,255,255,.08); border-radius: 3px; }

    .panel-back-btn {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 6px 10px 6px 6px;
      margin: 0 0 14px -6px;
      font-family: var(--font-mono, ui-monospace, monospace);
      font-size: 12px;
      font-weight: 500;
      text-transform: uppercase;
      letter-spacing: 0.1em;
      color: var(--ink-muted, var(--text2));
      text-decoration: none;
      background: transparent;
      border: none;
      border-radius: 8px;
      cursor: pointer;
      transition: color .18s ease, background .18s ease;
    }
    .panel-back-btn:hover {
      color: var(--brand-500);
      background: rgba(79, 124, 255, 0.06);
    }
    .panel-back-arrow {
      display: inline-block;
      font-size: 14px;
      line-height: 1;
      transition: transform .18s ease;
    }
    .panel-back-btn:hover .panel-back-arrow { transform: translateX(-2px); }
    [data-theme="light"] .panel-back-btn:hover { background: rgba(79, 124, 255, 0.08); }
    @media (max-width: 768px) {
      .panel-back-btn { font-size: 11.5px; margin-bottom: 10px; }
    }
    /* The adapt-section back button only makes sense inside /app */
    .panel-back-btn-adapt { display: none; }
    body.workspace .panel-back-btn-adapt { display: inline-flex; }

    /* v0.14.32: Overview hero decorativo eliminado (eyebrow, waves, greeting mascot, glow). */

    /* v0.14.5b — Overview rich widgets */
    /* v0.14.40: tras eliminar cards F2/F3, .ov-grid solo contiene el hero F1
       (transcribir). Mantenemos grid 1col por simplicidad. */
    .ov-grid {
      display: grid; grid-template-columns: 1fr;
      gap: 14px; margin: var(--space-md) 0 var(--space-xl);
    }
    .ov-card-f1 { grid-column: 1 / -1; }
    @media (max-width: 640px) {
      .ov-grid { gap: 12px; }
      .ov-spark-wrap { overflow: hidden; }
    }
    /* F1: input row dentro de la card */
    .ov-hero-input-row { display: flex; gap: 8px; align-items: center; margin: 12px 0 8px; flex-wrap: wrap; }
    .ov-hero-input-wrap { flex: 1; min-width: 180px; position: relative; }
    /* v0.14.23: agrupador select+btn — alineación correcta en mobile (orden 2). */
    .ov-hero-controls-wrapper { display: flex; gap: 8px; align-items: center; flex-shrink: 0; }
    .ov-hero-input-icon { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); font-size: .9rem; pointer-events: none; }
    .ov-hero-input {
      width: 100%; padding: 8px 10px 8px 32px; border-radius: 8px;
      background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12);
      color: var(--text); font-size: .84rem; outline: none;
    }
    .ov-hero-input:focus { border-color: rgba(79,124,255,.6); }
    /* v0.14.40.b: hero F1 (acción principal) — sobrecarga tamaños para destacar.
       Override sobre .ov-card, .ov-hero-input, .ov-empty-lang, .ov-empty-btn. */
    .ov-card-f1 { padding: var(--space-xl); }
    .ov-card-f1 .ov-card-label { font-size: 1.6rem; }
    .ov-card-f1 .ov-hero-input-row { gap: 12px; margin: var(--space-md) 0 var(--space-sm); }
    .ov-card-f1 .ov-hero-input {
      padding: 16px 18px 16px 40px;
      font-size: 1.05rem;
      border-radius: 12px;
      /* v0.14.40.c: borde marcado permanente (no solo en focus) para señalizar input principal. */
      border: 2px solid var(--brand);
      background: var(--surf);
    }
    .ov-card-f1 .ov-hero-input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-500) 18%, transparent); }
    .ov-card-f1 .ov-hero-input-icon { left: 14px; font-size: 1rem; }
    .ov-card-f1 .ov-empty-lang {
      padding: 14px 16px;
      font-size: .95rem;
      border-radius: 10px;
    }
    .ov-card-f1 .ov-empty-btn {
      padding: 16px 28px;
      font-size: 1rem;
      font-weight: 700;
      border-radius: 12px;
    }
    @media (max-width: 640px) {
      .ov-card-f1 { padding: var(--space-lg); }
      .ov-card-f1 .ov-card-label { font-size: 1.3rem; }
      .ov-card-f1 .ov-hero-input { padding: 13px 14px 13px 36px; font-size: .95rem; }
      .ov-card-f1 .ov-empty-lang { padding: 11px 13px; font-size: .85rem; }
      .ov-card-f1 .ov-empty-btn { padding: 13px 22px; font-size: .9rem; }
    }
    .ov-hero-status { font-size: var(--text-xs); color: var(--text3); margin-top: 4px; }
    [data-theme="light"] .ov-hero-input {
      background: rgba(0,0,0,.04); border-color: rgba(0,0,0,.12); color: var(--text);
    }
    .ov-card {
      position: relative;
      display: flex; flex-direction: column;
      gap: var(--space-4);
      min-height: 160px; padding: var(--space-6);
      background: var(--surface-raised);
      border: 1px solid var(--border-subtle);
      border-radius: var(--radius-xl);
      color: var(--text); text-align: left; cursor: pointer;
      font-family: inherit;
      box-shadow: 0 2px 8px rgba(0,0,0,.08);
      transition: transform .2s ease-out, box-shadow .2s, border-color .2s;
    }
    .ov-card:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(0,0,0,.12);
      border-color: var(--border-strong);
    }
    [data-theme="light"] .ov-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.08); }
    .ov-card:active { transform: translateY(0); }
    .ov-card:focus-visible { outline: 2px solid rgba(var(--ov-acc), .6); outline-offset: 2px; }
    .ov-card-head { display: flex; align-items: center; gap: 10px; }
    .ov-card-hooks {
      width: 24px; height: 24px; flex-shrink: 0;
      transition: transform .2s;
    }
    .ov-card:hover .ov-card-hooks { transform: translateY(-1px); }
    .ov-card-meta { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: var(--space-xs); }
    .ov-card-label {
      font-family: var(--font-display); font-size: var(--text-2xl);
      color: var(--text); line-height: 1.15; letter-spacing: -.015em;
    }
    .ov-card-sub {
      font-family: var(--font-mono);
      font-size: .76rem; color: var(--text3); letter-spacing: .02em;
      font-variant-numeric: tabular-nums;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .ov-card-body { flex: 1; display: flex; flex-direction: column; justify-content: flex-end; min-height: 0; }
    .ov-empty { font-size: .78rem; color: var(--text3); line-height: 1.45; }
    .ov-card-count {
      margin-top: 10px; padding-top: 8px;
      border-top: 1px solid var(--border-subtle);
      font-family: var(--font-mono);
      font-size: var(--text-xs); color: var(--text3); letter-spacing: .02em;
      font-variant-numeric: tabular-nums;
    }
    /* v0.14.20 — clickable count link en F1 (transcripciones) */
    .ov-count-link {
      display: inline-block; margin-top: 10px; padding-top: 8px;
      border: none; background: none; cursor: pointer;
      border-top: 1px solid rgba(255,255,255,.05);
      width: 100%; text-align: left;
      font-family: var(--font-mono);
      font-size: .68rem; color: rgb(var(--ov-acc, 79,124,255));
      letter-spacing: .02em; font-variant-numeric: tabular-nums;
      transition: color .15s, opacity .15s;
    }
    .ov-count-link:hover { opacity: .8; }
    [data-theme="light"] .ov-count-link { border-top-color: rgba(0,0,0,.05); }

    /* ── v0.14.40 — Dashboard rediseño visual ───────────────────
       Sustituye cards F2/F3 por módulos focales (Últimas transcripciones,
       Métricas, Apunta una idea). Hero F1 (transcribir) sigue usando .ov-card. */
    .dash-row-2col {
      display: grid;
      /* v0.14.40.c: minmax(0, 1fr) garantiza 50/50 real (contenido largo no
         empuja la columna porque min-width default es auto). */
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
      gap: var(--space-lg);
      margin-top: var(--space-xl);
    }
    @media (max-width: 820px) {
      .dash-row-2col { grid-template-columns: 1fr; }
    }
    .dash-module {
      background: var(--surf);
      border: 1px solid var(--border);
      border-left: 3px solid var(--border);
      border-radius: var(--radius-xl);
      padding: var(--space-lg);
      display: flex; flex-direction: column;
      gap: var(--space-md);
      min-height: 200px;
    }
    #dashModUltTransc { border-left-color: var(--brand); }
    #dashModMetrics   { border-left-color: var(--success); }
    .dash-module-head {
      display: flex; justify-content: space-between; align-items: center;
    }
    .dash-module-head-left {
      display: flex; align-items: center; gap: 10px;
      min-width: 0;
    }
    .dash-module-mascot {
      width: 24px; height: 24px; flex-shrink: 0;
    }
    .dash-module-title {
      font-family: var(--font-display);
      font-size: var(--text-lg);
      color: var(--text);
    }
    .dash-module-link {
      font-size: .82rem;
      color: var(--brand);
      cursor: pointer;
      text-decoration: none;
    }
    .dash-module-link:hover { text-decoration: underline; }
    .dash-module-body { flex: 1; }
    .dash-mini-row {
      display: flex; gap: 12px; align-items: center;
      padding: 10px 0;
      border-bottom: 1px solid var(--border);
      cursor: pointer;
      transition: opacity .15s;
    }
    .dash-mini-row:last-child { border-bottom: 0; }
    .dash-mini-row:hover { opacity: .8; }
    .dash-mini-row.dash-mini-skel { cursor: default; }
    .dash-mini-row.dash-mini-skel:hover { opacity: 1; }
    .dash-mini-row-thumb {
      width: 44px; height: 44px;
      border-radius: var(--radius-sm);
      object-fit: cover;
      flex-shrink: 0;
      background: var(--surf2);
    }
    .dash-mini-row-body { flex: 1; min-width: 0; }
    .dash-mini-row-title {
      font-size: var(--text-sm);
      color: var(--text);
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
      min-width: 0;
      margin-bottom: 2px;
    }
    .dash-mini-row-meta {
      font-size: var(--text-xs);
      color: var(--text3);
    }
    .dash-metrics-value {
      font-family: var(--font-display);
      font-size: var(--text-3xl);
      font-weight: var(--weight-bold);
      color: var(--text-primary);
      line-height: 1.1;
      letter-spacing: -0.02em;
    }
    .dash-metrics-label {
      font-size: .78rem;
      color: var(--text3);
      margin-bottom: var(--space-md);
    }
    .dash-metrics-sparkline { width: 100%; height: 50px; display: block; }
    .dash-metrics-sparkline .ov-spark { height: 50px; }
    .dash-metrics-toprell {
      font-size: .76rem;
      color: var(--text2);
      margin-top: var(--space-sm);
      line-height: 1.4;
    }
    .dash-module-empty {
      display: flex; flex-direction: column;
      align-items: center; justify-content: center;
      text-align: center;
      padding: var(--space-lg) 0;
      gap: var(--space-sm);
      height: 100%;
    }
    .dash-module-empty-msg {
      font-size: .88rem;
      color: var(--text2);
      line-height: 1.4;
    }
    .dash-module-empty-hint {
      font-size: .76rem;
      color: var(--text3);
    }
    .dash-module-empty-cta {
      background: var(--brand-cta);
      color: #fff;
      border: 0;
      padding: 8px 16px;
      border-radius: 8px;
      font-size: .82rem;
      font-weight: 600;
      cursor: pointer;
      margin-top: 4px;
    }
    .dash-module-empty-cta:hover { background: var(--brand-800); }
    .dash-idea-card {
      display: flex; align-items: center;
      gap: var(--space-md);
      background: var(--surf);
      border: 1px solid var(--border);
      border-left: 3px solid var(--warning);
      border-radius: var(--radius-lg);
      padding: var(--space-lg);
      margin-top: var(--space-lg);
      cursor: pointer;
      transition: transform .15s ease-out, box-shadow .15s ease-out;
    }
    .dash-idea-card:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(0,0,0,.12);
    }
    [data-theme="light"] .dash-idea-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.08); }
    .dash-idea-card:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
    .dash-idea-icon {
      width: 56px; height: 56px;
      border-radius: 50%;
      background: color-mix(in srgb, var(--brand-500) 12%, transparent);
      color: var(--brand);
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
    }
    .dash-idea-text { flex: 1; min-width: 0; }
    .dash-idea-title {
      font-family: var(--font-display);
      font-size: var(--text-sm);
      color: var(--text-primary);
      margin-bottom: 4px;
    }
    .dash-idea-sub {
      font-size: .88rem;
      color: var(--text2);
      line-height: 1.4;
    }
    .dash-idea-cta {
      background: var(--brand-cta);
      color: #fff;
      padding: 10px 18px;
      border-radius: 10px;
      font-size: .88rem;
      font-weight: 600;
      flex-shrink: 0;
    }
    @media (max-width: 560px) {
      .dash-idea-card { flex-wrap: wrap; }
      .dash-idea-cta { width: 100%; text-align: center; }
    }

    /* ── v0.14.44 — Onboarding gamificado en Dashboard ─────────
       Card debajo del hero F1. Visible solo si scripts.total === 0. */
    .ob-card {
      background: var(--surface-raised);
      border: 1px solid var(--border-default);
      border-left: 3px solid var(--brand-500);
      border-radius: var(--radius-xl);
      padding: var(--space-8);
      margin-top: var(--space-6);
      display: flex; flex-direction: column;
      gap: var(--space-6);
    }
    .ob-header { display: flex; flex-direction: column; gap: var(--space-sm); }
    .ob-title-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
    .ob-title {
      font-family: var(--font-display);
      font-size: var(--text-xl);
      color: var(--text-primary);
      line-height: 1.2;
      letter-spacing: -.015em;
    }
    .ob-progress-count {
      font-size: var(--text-sm);
      font-weight: 700;
      color: var(--brand-500);
      background: color-mix(in srgb, var(--brand-500) 10%, transparent);
      padding: 4px 12px;
      border-radius: 20px;
      font-variant-numeric: tabular-nums;
      flex-shrink: 0;
    }
    .ob-sub {
      font-size: var(--text-sm);
      color: var(--text-secondary);
      line-height: 1.4;
    }
    .ob-progress-bar {
      height: 6px;
      background: var(--border-default);
      border-radius: 3px;
      overflow: hidden;
      margin-top: var(--space-sm);
    }
    .ob-progress-fill {
      height: 100%;
      background: linear-gradient(90deg, var(--brand-500) 0%, var(--warning-fg) 100%);
      border-radius: 3px;
      transition: width .6s ease-out;
    }
    .ob-steps { display: flex; flex-direction: column; gap: var(--space-md); }
    .ob-step {
      display: flex; align-items: center;
      gap: var(--space-4);
      padding: var(--space-4);
      background: var(--surface-raised);
      border: 1px solid var(--border-default);
      border-radius: var(--radius-lg);
      transition: opacity .15s, border-color .15s;
    }
    .ob-step-icon {
      width: 28px; height: 28px;
      border-radius: 50%;
      border: 2px solid var(--text-tertiary);
      flex-shrink: 0;
      position: relative;
    }
    .ob-step--active .ob-step-icon {
      border-color: var(--brand-500);
      background: color-mix(in srgb, var(--brand-500) 8%, transparent);
    }
    .ob-step--done .ob-step-icon {
      border-color: var(--success);
      background: var(--success);
    }
    .ob-step--done .ob-step-icon::after {
      content: "";
      position: absolute;
      top: 50%; left: 50%;
      transform: translate(-50%, -55%) rotate(45deg);
      width: 7px; height: 12px;
      border-right: 2.5px solid #fff;
      border-bottom: 2.5px solid #fff;
    }
    .ob-step-body { flex: 1; min-width: 0; }
    .ob-step-title {
      font-size: var(--text-sm);
      font-weight: 600;
      color: var(--text-primary);
      line-height: 1.3;
    }
    .ob-step-sub {
      font-size: var(--text-xs);
      color: var(--text-secondary);
      margin-top: 2px;
      line-height: 1.4;
    }
    .ob-step--future { opacity: .55; }
    .ob-step--future .ob-step-title { color: var(--text-tertiary); }
    .ob-step--active { border-left: 3px solid var(--brand-500); }
    .ob-step--done .ob-step-title {
      color: var(--text-secondary);
      text-decoration: line-through;
      text-decoration-color: var(--border-strong);
    }
    .ob-step-btn {
      background: var(--brand-cta);
      color: #fff;
      border: 0;
      padding: 8px 16px;
      border-radius: 8px;
      font-size: .85rem;
      font-weight: 600;
      cursor: pointer;
      flex-shrink: 0;
      font-family: var(--font-body);
      transition: background .15s, transform .12s;
    }
    .ob-step-btn:hover { background: var(--brand-800); }
    .ob-step-btn:active { transform: scale(.98); }
    .ob-step--future .ob-step-btn,
    .ob-step--done .ob-step-btn { display: none; }
    @media (max-width: 640px) {
      .ob-card { padding: var(--space-6); }
      .ob-step { flex-direction: column; align-items: flex-start; gap: var(--space-3); }
      .ob-step-btn { width: 100%; }
    }

    /* ── v0.14.15 — Empty state Resumen ──────────────────────── */
    #ovEmptyState { display: flex; flex-direction: column; gap: 16px; }
    .ov-empty-card {
      background: linear-gradient(180deg, color-mix(in srgb, var(--brand-500) 6%, transparent), color-mix(in srgb, var(--brand-500) 2%, transparent));
      border: 1px solid color-mix(in srgb, var(--brand-500) 18%, transparent);
      border-left: 3px solid var(--brand-500);
      border-radius: var(--radius-xl);
      padding: var(--space-7) var(--space-7) var(--space-6);
      box-shadow: 0 6px 22px rgba(0,0,0,.18);
    }
    .ov-empty-h2 {
      font-family: var(--font-display);
      font-size: clamp(1.3rem, 2.3vw, 1.7rem); font-weight: 400;
      line-height: 1.25; letter-spacing: -.3px;
      margin: 0 0 18px;
      color: var(--text); text-wrap: balance;
    }
    /* v0.14.17 — input row split en 2 wrappers para mobile responsive */
    .ov-empty-input-row {
      display: flex; align-items: stretch; gap: 8px;
      background: var(--bg); border: 1px solid var(--border);
      border-radius: 12px; padding: 4px 4px 4px 14px;
      transition: border-color .15s, box-shadow .15s;
    }
    .ov-empty-input-row:focus-within { border-color: var(--brand-500); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-500) 18%, transparent); }
    .ov-empty-input-wrap {
      flex: 1; min-width: 0;
      display: flex; align-items: center; gap: 8px;
    }
    .ov-empty-controls-wrapper {
      flex: 0 0 auto;
      display: flex; align-items: stretch; gap: 8px;
    }
    .ov-empty-input-icon { font-size: .9rem; opacity: .7; flex-shrink: 0; }
    .ov-empty-input {
      flex: 1; min-width: 0;
      background: transparent; border: 0; outline: 0;
      color: var(--text); font-family: var(--font-body); font-size: .95rem;
      padding: 12px 0;
    }
    .ov-empty-input::placeholder { color: var(--text3); font-family: var(--font-mono); font-size: .82rem; }
    .ov-empty-lang {
      flex: 0 0 auto;
      background: var(--surf); border: 1px solid var(--border); border-radius: 8px;
      color: var(--text); font-family: var(--font-body); font-size: .8rem;
      padding: 8px 10px; outline: none;
    }
    .ov-empty-btn {
      flex: 0 0 auto; padding: 12px 22px; border-radius: 10px;
      background: var(--brand-cta); color: #fff; border: 0; cursor: pointer;
      font-family: var(--font-body); font-weight: 700; font-size: .9rem;
      box-shadow: 0 4px 0 var(--brand-800), 0 6px 20px color-mix(in srgb, var(--brand-500) 30%, transparent);
      transition: transform .12s, box-shadow .15s, background .15s, opacity .15s;
    }
    .ov-empty-btn:hover:not(:disabled) { transform: translateY(-1px); background: var(--brand-800); box-shadow: 0 5px 0 var(--brand-800), 0 8px 26px color-mix(in srgb, var(--brand-500) 18%, transparent); }
    .ov-empty-btn:active:not(:disabled) { transform: scale(.98); opacity: .95; transition: transform .08s ease-out, opacity .08s ease-out; }
    .ov-empty-btn:disabled { opacity: .65; cursor: default; }
    .ov-empty-status {
      display: flex; align-items: center; gap: 10px;
      padding: 10px 12px; border-radius: 8px; margin-top: 12px;
      background: color-mix(in srgb, var(--brand-500) 6%, transparent); border: 1px solid color-mix(in srgb, var(--brand-500) 20%, transparent);
      font-size: .85rem; color: var(--text-secondary);
    }
    .ov-empty-status.is-error { background: var(--danger-bg); border-color: color-mix(in srgb, var(--danger) 25%, transparent); color: var(--danger-fg); }
    .ov-empty-status.is-ok { background: var(--success-bg); border-color: color-mix(in srgb, var(--success) 25%, transparent); color: var(--success-fg); }
    .ov-empty-status .panel-transc-spinner {
      width: 14px; height: 14px; border-radius: 50%;
      border: 2px solid color-mix(in srgb, var(--brand-500) 30%, transparent); border-top-color: var(--brand-500);
      animation: ovSpin .7s linear infinite; flex-shrink: 0;
    }
    @keyframes ovSpin { to { transform: rotate(360deg); } }
    .ov-empty-example {
      display: inline-block; margin-top: 14px;
      background: none; border: 0; padding: 0;
      color: color-mix(in srgb, var(--brand-500) 85%, transparent);
      font-family: var(--font-body); font-size: var(--text-xs);
      cursor: pointer; transition: color .15s;
    }
    .ov-empty-example:hover { color: var(--brand-500); text-decoration: underline; }

    /* v0.14.17 — mobile: input fila completa arriba, controls debajo */
    @media (max-width: 640px) {
      .ov-empty-input-row {
        flex-direction: column; gap: 12px;
        padding: 12px;
        align-items: stretch;
      }
      .ov-empty-input-wrap { width: 100%; order: 1; }
      .ov-empty-controls-wrapper { width: 100%; order: 2; }
      .ov-empty-input-row .ov-empty-input { padding: 6px 0; font-size: 1rem; }
      .ov-empty-input-row .ov-empty-lang { flex: 0 0 auto; min-width: 110px; }
      .ov-empty-input-row .ov-empty-btn { flex: 1; min-height: 48px; }
    }

    /* v0.14.23 BUG 1 — hero F1 Estado 1 mobile: input fila 1 / select+btn fila 2 */
    @media (max-width: 640px) {
      .ov-hero-input-row { flex-direction: column; gap: 10px; align-items: stretch; flex-wrap: nowrap; }
      .ov-hero-input-wrap { width: 100%; min-width: 0; order: 1; }
      .ov-hero-controls-wrapper { width: 100%; order: 2; }
      .ov-hero-input-row .ov-empty-lang { flex: 0 0 auto; min-width: 110px; }
      .ov-hero-input-row .ov-empty-btn { flex: 1; min-height: 48px; }
    }

    /* v0.14.40: reglas .ov-card-f2/.ov-card-f3 eliminadas (cards retiradas). */

    /* Locked rows */
    .ov-empty-row2, .ov-empty-row6 { display: grid; gap: 12px; }
    .ov-empty-row2 { grid-template-columns: 1fr 1fr; }
    .ov-empty-row6 { grid-template-columns: repeat(6, 1fr); }
    @media (max-width: 880px) {
      .ov-empty-row2 { grid-template-columns: 1fr; }
      .ov-empty-row6 { grid-template-columns: repeat(3, 1fr); gap: 8px; }
    }
    @media (max-width: 480px) {
      .ov-empty-row6 { grid-template-columns: repeat(2, 1fr); }
    }

    .ov-empty-locked {
      position: relative; display: flex; flex-direction: column; gap: 6px;
      padding: 16px; border-radius: var(--radius-lg);
      background: color-mix(in srgb, var(--text-primary) 2%, transparent);
      border: 1px solid var(--border-subtle);
      cursor: not-allowed;
      text-align: left; font-family: var(--font-body);
      transition: opacity .2s, border-color .2s;
    }
    .ov-locked-md { opacity: .42; min-height: 110px; padding: 18px 18px 16px; }
    .ov-locked-sm { opacity: .32; align-items: center; flex-direction: column; min-height: 80px; padding: 14px 8px 12px; gap: 6px; font-size: .78rem; color: var(--text2); }
    .ov-empty-locked:hover { opacity: .55; border-color: rgba(var(--ov-acc, 79,124,255), .25); }

    .ov-locked-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
    .ov-locked-badge {
      font-size: .62rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
      color: var(--text-secondary);
      background: var(--border-subtle);
      border: 1px solid var(--border-default);
      padding: 3px 8px; border-radius: 999px;
    }
    .ov-locked-hooks { width: 36px; height: 36px; opacity: .85; flex-shrink: 0; }
    .ov-locked-hooks-sm { width: 26px; height: 26px; opacity: .7; }
    .ov-locked-label {
      font-family: var(--font-display); font-size: 1.1rem; font-weight: 400; color: var(--text-primary);
    }
    .ov-locked-sub { font-size: var(--text-xs); color: var(--text-tertiary); }

    /* v0.14.16 — mockups internos en cards locked Hazlo tuyo + Métricas */
    .ov-mock-adapt, .ov-mock-metrics {
      margin-top: 12px; padding: 10px 12px;
      background: var(--surface-sunken);
      border: 1px solid var(--border-subtle);
      border-radius: var(--radius-md);
    }

    /* Hazlo tuyo mockup */
    .ov-mock-adapt { display: flex; flex-direction: column; gap: 6px; }
    .ov-mock-box {
      background: color-mix(in srgb, var(--text-primary) 4%, transparent); border: 1px solid var(--border-subtle);
      border-radius: var(--radius-sm); padding: 8px 10px;
    }
    [data-theme="light"] .ov-mock-box { background: rgba(255,255,255,.7); }
    .ov-mock-box-orig { border-left: 2px solid var(--border-strong); }
    .ov-mock-box-out  { border-left: 2px solid rgba(var(--ov-acc, 192,132,252), .65); }
    .ov-mock-box-label {
      font-family: var(--font-mono);
      font-size: .58rem; letter-spacing: .08em; color: var(--text3);
      text-transform: uppercase; margin-bottom: 3px;
    }
    .ov-mock-box-text {
      font-size: .72rem; line-height: 1.4; color: var(--text2);
      font-style: italic;
      display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
      overflow: hidden;
    }
    .ov-mock-arrow {
      align-self: center;
      display: inline-flex; align-items: center; gap: 4px;
      font-size: .58rem; letter-spacing: .06em; text-transform: uppercase;
      color: var(--text3); padding: 2px 8px;
      border: 1px dashed rgba(var(--ov-acc, 192,132,252), .35);
      border-radius: 999px;
    }
    .ov-mock-pills {
      display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px;
    }
    .ov-mock-pill {
      font-family: var(--font-body); font-size: .58rem; font-weight: 600;
      letter-spacing: .04em;
      padding: 2px 7px; border-radius: 999px;
      background: rgba(var(--ov-acc, 192,132,252), .12);
      color: rgba(var(--ov-acc, 192,132,252), 1);
      border: 1px solid rgba(var(--ov-acc, 192,132,252), .22);
    }

    /* Métricas mockup */
    .ov-mock-metrics { display: flex; flex-direction: column; gap: 6px; }
    .ov-mock-metrics-row { display: flex; align-items: baseline; gap: 10px; }
    .ov-mock-metrics-num {
      font-family: var(--font-display); font-size: 1.6rem; font-weight: 400;
      line-height: 1; color: var(--text); letter-spacing: -.5px;
      font-variant-numeric: tabular-nums;
    }
    .ov-mock-metrics-meta { display: flex; flex-direction: column; gap: 2px; }
    .ov-mock-metrics-lbl { font-size: .58rem; color: var(--text3); letter-spacing: .04em; text-transform: uppercase; }
    .ov-mock-metrics-up {
      font-size: .68rem; font-weight: 700; color: var(--success-fg);
      font-variant-numeric: tabular-nums;
    }
    .ov-mock-spark { width: 100%; height: 36px; display: block; }
    .ov-mock-metrics-foot {
      font-size: .62rem; color: var(--text3); line-height: 1.3;
      font-family: var(--font-mono);
    }

    /* Mobile: ocultar mockup interno (caben mal en cards <540px) */
    @media (max-width: 540px) {
      .ov-mock-adapt, .ov-mock-metrics { display: none; }
    }

    /* First-success modal */
    .first-success-icon {
      width: 56px; height: 56px; border-radius: 50%;
      background: color-mix(in srgb, var(--success) 15%, transparent); border: 1px solid color-mix(in srgb, var(--success) 40%, transparent);
      color: #4ade80; font-size: 1.6rem; font-weight: 800;
      display: flex; align-items: center; justify-content: center;
      margin: 0 auto 18px;
    }
    .first-success-title {
      font-family: var(--font-display); font-weight: 400; font-size: 1.4rem;
      line-height: 1.25; text-align: center; margin: 0 0 14px; color: var(--text);
    }
    .first-success-preview {
      background: var(--surf2); border: 1px solid var(--border); border-radius: 10px;
      padding: 14px 16px; margin-bottom: 18px;
      font-family: var(--font-body); font-size: .88rem; line-height: 1.55;
      color: var(--text2); font-style: italic;
      max-height: 110px; overflow: hidden;
    }
    .first-success-cta-row { display: flex; gap: 10px; flex-wrap: wrap; }
    .first-success-cta-primary {
      flex: 1 1 auto; padding: 13px 18px; border-radius: 12px;
      background: var(--brand-cta); color: #fff; border: 0; cursor: pointer;
      font-family: var(--font-body); font-weight: 700; font-size: .92rem;
      box-shadow: 0 4px 0 var(--brand-800), 0 6px 20px rgba(79,124,255,.3);
      transition: transform .12s, box-shadow .15s, background .15s;
    }
    .first-success-cta-primary:hover { transform: translateY(-1px); background: var(--brand-800); }
    .first-success-cta-secondary {
      flex: 0 1 auto; padding: 13px 18px; border-radius: 12px;
      background: transparent; color: var(--text); border: 1px solid var(--border);
      cursor: pointer; font-family: var(--font-body); font-weight: 600; font-size: .9rem;
      transition: border-color .15s, color .15s;
    }
    .first-success-cta-secondary:hover { border-color: var(--brand-500); color: var(--brand-500); }

    /* v0.14.37: skeleton loaders unificados (pulse). Aplicados a listados workspace. */
    @keyframes skelPulse {
      0%, 100% { opacity: 1; }
      50%      { opacity: .55; }
    }
    .skel {
      background: rgba(255,255,255,.04);
      border-radius: 6px;
      animation: skelPulse 1.4s ease-in-out infinite;
    }
    [data-theme="light"] .skel { background: rgba(0,0,0,.04); }
    .skel-line   { height: 12px; }
    .skel-circle { border-radius: 50%; }
    .skel-thumb  { aspect-ratio: 9 / 16; }
    .skel-button { height: 36px; border-radius: 8px; }
    @media (prefers-reduced-motion: reduce) {
      .skel { animation: none; opacity: .7; }
    }

    /* v0.14.37: .ov-skel refactorizado a pulse uniforme (era shimmer ovSkelShine). */
    .ov-skel {
      height: 12px; border-radius: 4px;
      background: rgba(255,255,255,.04);
      animation: skelPulse 1.4s ease-in-out infinite;
    }
    [data-theme="light"] .ov-skel { background: rgba(0,0,0,.04); }
    @media (prefers-reduced-motion: reduce) {
      .ov-skel { animation: none; opacity: .7; }
    }

    /* v0.14.37: skeleton cards específicas por panel (match estructura real, evita layout shift). */
    .trans-skel-card {
      display: flex; gap: 16px;
      padding: 22px 24px;
      background: var(--surf); border: 1px solid var(--border);
      border-radius: 14px;
      margin-bottom: var(--space-md);
    }
    .trans-skel-body { flex: 1; min-width: 0; }

    .scr-skel-card {
      padding: 22px 24px 20px;
      background: var(--surf); border: 1px solid var(--border);
      border-radius: 16px;
      margin-bottom: var(--space-md);
    }
    .scr-skel-card .skel-meta-row { display: flex; gap: 12px; margin-top: 10px; }

    .ideas-skel-card {
      padding: var(--space-5);
      background: var(--surf); border: 1px solid var(--border);
      border-radius: var(--radius-xl);
      margin-bottom: var(--space-md);
    }

    .proj-skel-card {
      padding: 22px 22px 20px;
      background: var(--surf); border: 1px solid var(--border);
      border-radius: 16px;
    }
    .proj-skel-card .skel-stats-row { display: flex; gap: 10px; margin-top: 20px; }

    .asst-skel-card {
      padding: 20px;
      background: var(--surf); border: 1px solid var(--border);
      border-radius: 14px;
    }
    .asst-skel-card .asst-skel-header { display: flex; gap: 12px; align-items: center; }
    .asst-skel-card .asst-skel-name { flex: 1; }

    /* Widget specific bits */
    .ov-thumb-row { display: flex; gap: 10px; align-items: flex-start; }
    .ov-thumb-img {
      width: 60px; height: 60px; border-radius: 8px;
      object-fit: cover; flex-shrink: 0;
      background: var(--surf2);
      border: 1px solid var(--border);
    }
    .ov-thumb-text { flex: 1; min-width: 0; }
    .ov-thumb-title {
      font-size: .82rem; color: var(--text); line-height: 1.35;
      display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
      overflow: hidden;
    }
    .ov-thumb-time {
      font-family: var(--font-mono);
      font-size: .66rem; color: var(--text3); margin-top: 4px;
    }
    .ov-line {
      font-size: .82rem; color: var(--text); line-height: 1.4;
      display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
      overflow: hidden;
    }
    .ov-line.italic { font-style: italic; font-family: var(--font-display); font-size: .92rem; }
    .ov-mini-prefix { font-family: var(--font-mono); font-size: .64rem; color: var(--text3); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 4px; }
    .ov-status {
      display: inline-block; margin-top: 6px;
      font-size: .58rem; font-weight: 700; letter-spacing: .06em;
      padding: 2px 8px; border-radius: 999px;
    }
    .ov-status.s-draft     { background: rgba(148,163,184,.15); color: #cbd5e1; border: 1px solid rgba(148,163,184,.3); }
    .ov-status.s-developed { background: rgba(34,197,94,.14);   color: #4ade80; border: 1px solid rgba(34,197,94,.3); }
    .ov-status.s-scripted  { background: rgba(125,91,184,.14);  color: #a78bfa; border: 1px solid rgba(125,91,184,.3); }

    .ov-proj-list { display: flex; flex-direction: column; gap: 6px; }
    .ov-proj-row { display: flex; align-items: center; gap: 8px; font-size: .82rem; color: var(--text); }
    .ov-proj-dot {
      width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0;
      box-shadow: 0 0 0 2px rgba(0,0,0,.25);
    }
    .ov-proj-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .ov-proj-more { font-size: .7rem; color: var(--text3); margin-top: 4px; }

    .ov-spark-wrap { display: flex; flex-direction: column; gap: 6px; }
    .ov-spark { width: 100%; height: 40px; }
    .ov-spark polyline { stroke: rgb(var(--ov-acc)); stroke-width: 2; fill: none; stroke-linecap: round; stroke-linejoin: round; }
    .ov-spark-fill { fill: rgba(var(--ov-acc), .12); }
    .ov-spark-meta { display: flex; align-items: baseline; gap: 6px; }
    .ov-spark-num {
      font-family: var(--font-display); font-size: 1.4rem; color: var(--text);
      font-variant-numeric: tabular-nums; line-height: 1;
    }
    .ov-spark-lbl { font-size: .72rem; color: var(--text3); }

    .ov-cta-inline {
      display: inline-flex; align-items: center; gap: 4px;
      font-size: .78rem; color: rgb(var(--ov-acc)); font-weight: 600;
      margin-top: 4px;
    }

    .ov-team-stack { display: flex; align-items: center; gap: 0; margin-bottom: 4px; }
    .ov-team-av {
      width: 32px; height: 32px; border-radius: 50%;
      background: linear-gradient(135deg, #a78bfa, var(--brand-500));
      border: 2px solid var(--surf);
      margin-left: -8px;
    }
    .ov-team-av:first-child { margin-left: 0; }
    .ov-team-more {
      width: 32px; height: 32px; border-radius: 50%;
      background: var(--surf2); border: 2px solid var(--surf);
      display: inline-flex; align-items: center; justify-content: center;
      font-size: .68rem; font-weight: 700; color: var(--text2);
      margin-left: -8px;
    }
    .ov-pending-pill {
      display: inline-block; margin-top: 2px;
      font-size: .62rem; font-weight: 700;
      padding: 1px 7px; border-radius: 999px;
      background: rgba(79,124,255,.14); color: var(--brand-300); border: 1px solid rgba(79,124,255,.3);
    }

    /* Stats cards */
    .prof-stats-row {
      display: grid; grid-template-columns: repeat(3, 1fr);
      gap: 14px; margin-bottom: 28px;
    }
    .prof-stat-card {
      background: var(--surf); position: relative;
      border: 1px solid var(--border);
      border-radius: 14px; padding: 20px; display: flex;
      align-items: flex-start; gap: 14px; transition: all .2s;
      overflow: hidden;
      box-shadow: 0 4px 0 rgba(255,255,255,.04);
      transform: translateY(0);
    }
    .prof-stat-card::before {
      content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
      background: var(--stat-accent, var(--brand)); opacity: .7;
    }
    .prof-stat-card:hover {
      border-color: var(--stat-accent, var(--brand));
      transform: translateY(-2px);
      box-shadow: 0 6px 0 rgba(255,255,255,.04), 0 8px 24px rgba(0,0,0,.15);
    }
    [data-theme="light"] .prof-stat-card { box-shadow: 0 4px 0 rgba(0,0,0,.04); }
    [data-theme="light"] .prof-stat-card:hover { box-shadow: 0 6px 0 rgba(0,0,0,.04), 0 8px 24px rgba(0,0,0,.06); }
    .prof-stat-icon {
      width: 40px; height: 40px; border-radius: 10px;
      display: flex; align-items: center; justify-content: center;
      font-size: 1.1rem; flex-shrink: 0;
    }
    .prof-stat-icon.orange { background: rgba(79,124,255,.1); color: var(--brand-500); }
    .prof-stat-icon.purple { background: rgba(167,139,250,.1); color: #a78bfa; }
    .prof-stat-icon.green  { background: rgba(34,197,94,.1);  color: #22c55e; }
    .prof-stat-val {
      font-family: var(--font-display); font-size: 1.8rem; font-weight: 400;
      line-height: 1; margin-bottom: 4px;
    }
    .prof-stat-label {
      font-size: .68rem; color: var(--text3); text-transform: uppercase;
      letter-spacing: .05em; font-weight: 500;
    }

    /* Script cards with color stripe */
    .script-stripe-card {
      background: var(--surf); border: 1px solid var(--border);
      border-radius: 12px; overflow: hidden; display: flex;
      transition: all .2s; margin-bottom: 10px;
      box-shadow: 0 3px 0 rgba(255,255,255,.04);
      transform: translateY(0);
    }
    .script-stripe-card:hover {
      border-color: rgba(79,124,255,.15);
      transform: translateY(-1px);
      box-shadow: 0 5px 0 rgba(255,255,255,.04);
    }
    [data-theme="light"] .script-stripe-card { box-shadow: 0 3px 0 rgba(0,0,0,.04); }
    [data-theme="light"] .script-stripe-card:hover { box-shadow: 0 5px 0 rgba(0,0,0,.04); }
    .script-stripe { width: 4px; flex-shrink: 0; }
    .script-stripe-body { padding: 14px 18px; flex: 1; min-width: 0; }
    .script-stripe-head {
      display: flex; justify-content: space-between; align-items: center;
      margin-bottom: 6px;
    }
    .script-stripe-title {
      font-family: var(--font-display); font-size: .92rem; font-weight: 400;
    }
    .script-stripe-preview {
      font-size: .82rem; color: var(--text2); line-height: 1.5;
      display: -webkit-box; -webkit-line-clamp: 2;
      -webkit-box-orient: vertical; overflow: hidden;
    }
    .script-stripe-footer {
      display: flex; gap: 8px; margin-top: 10px; align-items: center;
    }
    .script-stripe-badge {
      font-size: .65rem; text-transform: uppercase; letter-spacing: .05em;
      padding: 2px 8px; border-radius: 4px; font-weight: 600;
    }

    /* Project cards grid */
    .proj-cards-grid {
      display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
      gap: 14px;
    }

    /* Assistant cards in profile */
    .asst-cards-grid {
      display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
      gap: var(--space-4);
    }
    .asst-card-v2 {
      background: var(--surface-raised);
      border: 1px solid var(--border-default);
      border-radius: var(--radius-xl); padding: 20px; position: relative;
      transition: all .18s;
      box-shadow: 0 4px 0 var(--border-subtle);
      transform: translateY(0);
    }
    .asst-card-v2:hover {
      border-color: color-mix(in srgb, var(--brand-500) 20%, transparent);
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(0,0,0,.12);
    }
    [data-theme="light"] .asst-card-v2 { box-shadow: 0 4px 0 rgba(0,0,0,.04); }
    [data-theme="light"] .asst-card-v2:hover { box-shadow: 0 8px 24px rgba(0,0,0,.08); }
    .asst-card-v2.is-default {
      border-color: var(--brand);
      box-shadow: 0 0 20px color-mix(in srgb, var(--brand-500) 10%, transparent);
    }
    .asst-card-v2-default-badge {
      position: absolute; top: -9px; left: 16px;
      background: var(--brand); color: #fff; font-size: .6rem;
      font-weight: 700; padding: 2px 10px; border-radius: 20px;
      letter-spacing: .05em;
    }
    .asst-card-v2-head {
      display: flex; align-items: center; gap: 12px; margin-bottom: 12px;
    }
    .asst-card-v2-head img {
      width: 38px; height: 38px; border-radius: 10px;
      border: 1px solid var(--border);
    }
    .asst-card-v2-name { font-family: var(--font-display); font-size: .92rem; }
    .asst-card-v2-sub { font-size: .68rem; color: var(--text-tertiary); }
    .asst-card-v2-preview {
      font-size: .78rem; color: var(--text2); font-style: italic;
      line-height: 1.5; margin-bottom: 14px;
      display: -webkit-box; -webkit-line-clamp: 3;
      -webkit-box-orient: vertical; overflow: hidden;
    }
    .asst-card-v2-acts {
      display: flex; gap: 6px;
    }

    /* Section headers in main content */
    .prof-section-head {
      display: flex; justify-content: space-between; align-items: center;
      margin-bottom: var(--space-xl);
    }
    .prof-section-title {
      font-family: var(--font-display); font-size: 1.3rem; font-weight: 400;
    }
    .prof-section-sub {
      font-size: .82rem; color: var(--text3); margin-top: 2px;
    }
    /* v0.14.33.a: tagline neutra bajo el H1 de cada panel. Clase NUEVA para no chocar
       con .prof-section-sub que ya usaba #profAsstCount (count pequeño/muted). */
    .prof-section-tagline {
      font-family: var(--font-body);
      font-size: 0.92rem;
      color: var(--text2);
      margin-top: 6px;
      font-weight: 400;
    }
    /* v0.14.41: mascota Hooks junto al título de panel (Scripts, Ideas, ...). */
    .prof-section-head-left {
      display: flex; align-items: center; gap: 14px;
      min-width: 0;
    }
    .prof-section-mascot {
      width: 32px; height: 32px;
      flex-shrink: 0;
    }
    /* v0.14.43: título + count pill (Asistentes). */
    .prof-section-title-row {
      display: flex; align-items: center; gap: 10px;
      flex-wrap: wrap;
    }
    .prof-section-count {
      font-size: .72rem;
      font-weight: 600;
      color: var(--text3);
      background: var(--surf2);
      padding: 2px 10px;
      border-radius: 20px;
      font-variant-numeric: tabular-nums;
    }
    /* v0.14.43: empty state genérico (mascota + título + sub + cta). Comparte .empty-cta. */
    .prof-empty-mascot {
      width: 80px; height: 80px;
      image-rendering: pixelated;
      margin: 0 auto 16px;
      display: block;
      filter: drop-shadow(0 0 18px rgba(79, 124, 255, 0.22));
    }

    /* Enhanced empty states */
    .prof-empty {
      text-align: center; padding: 48px 24px; color: var(--text3);
      font-size: .88rem;
    }
    .prof-empty-icon { margin-bottom: 14px; opacity: .4; }
    /* v0.14.43: empty title/sub alineados con patrón v0.14.42 (Métricas empty). */
    .prof-empty-title { font-family: var(--font-display); font-size: 1.5rem; color: var(--text); margin-bottom: 8px; line-height: 1.2; letter-spacing: -.015em; }
    .prof-empty-sub { font-size: .92rem; color: var(--text2); line-height: 1.5; margin-bottom: 16px; max-width: 420px; margin-left: auto; margin-right: auto; }
    .prof-empty-cta {
      display: inline-flex; align-items: center; gap: 6px;
      padding: 8px 20px; background: var(--brand-cta); color: #fff;
      border: none; border-radius: var(--rsm); font-size: .82rem;
      font-weight: 600; cursor: pointer; transition: all .2s;
      box-shadow: 0 4px 0 #22357c; transform: translateY(0);
    }
    .prof-empty-cta:hover { transform: translateY(-1px); box-shadow: 0 5px 0 #22357c; }
    .prof-empty-cta:active { transform: translateY(3px); box-shadow: 0 1px 0 #22357c; }

    /* DiceBear avatar in profile */
    .prof-av {
      width: 72px; height: 72px; border-radius: 50%;
      background: var(--surf2); border: 2px solid rgba(79,124,255,.25);
      display: flex; align-items: center; justify-content: center;
      font-size: 1.4rem; font-weight: 900; color: #fff; flex-shrink: 0;
      cursor: pointer; transition: border-color .2s, box-shadow .2s; overflow: hidden;
      position: relative;
      box-shadow: 0 0 20px rgba(79,124,255,.1), 0 0 40px rgba(79,124,255,.05);
    }
    .prof-av:hover { border-color: var(--brand); box-shadow: 0 0 24px rgba(79,124,255,.2), 0 0 48px rgba(79,124,255,.1); }
    .prof-av img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
    .prof-av-edit {
      position: absolute; inset: 0; border-radius: 50%;
      background: rgba(0,0,0,.5); display: flex; align-items: center; justify-content: center;
      opacity: 0; transition: opacity .2s; font-size: .7rem; color: #fff; font-weight: 700;
      pointer-events: none;
    }
    .prof-av:hover .prof-av-edit { opacity: 1; }

    /* Avatar picker grid */
    .avatar-picker {
      display: none; position: absolute; top: calc(100% + 10px); left: 0;
      background: var(--surf); border: 1px solid rgba(79,124,255,.15);
      border-radius: 14px; padding: 14px; z-index: 10;
      box-shadow: var(--sh-lg); animation: modal-in .15s ease;
      backdrop-filter: blur(16px);
    }
    .avatar-picker.on { display: block; }
    .avatar-picker-title {
      font-size: .72rem; font-weight: 700; color: var(--text3);
      text-transform: uppercase; letter-spacing: .5px; margin-bottom: 10px;
    }
    .avatar-picker-grid {
      display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px;
    }
    .avatar-option {
      width: 52px; height: 52px; border-radius: 50%;
      border: 2px solid var(--border); cursor: pointer;
      transition: border-color .2s, transform .2s; overflow: hidden;
      background: var(--surf2);
    }
    .avatar-option img { width: 100%; height: 100%; object-fit: cover; }
    .avatar-option:hover { border-color: var(--brand); transform: scale(1.1); }
    .avatar-option.selected { border-color: var(--brand); box-shadow: 0 0 0 2px rgba(79,124,255,.3); }

    /* Plan badge */
    .plan-badge {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 3px 10px; border-radius: 20px;
      font-family: var(--font-body); font-size: .65rem; font-weight: 600; text-transform: uppercase; letter-spacing: .6px;
    }
    .plan-badge.free     { background: rgba(148,163,184,.15); color: var(--text3); border: 1px solid var(--border); }
    .plan-badge.pro      { background: rgba(59,130,246,.15);  color: #60a5fa; border: 1px solid rgba(59,130,246,.3); }
    .plan-badge.creator  { background: rgba(79,124,255,.15);  color: var(--brand-200); border: 1px solid rgba(79,124,255,.3); }
    .plan-badge.agency   { background: rgba(167,139,250,.15); color: #a78bfa; border: 1px solid rgba(167,139,250,.3); }

    /* Usage bar */
    .usage-bar-wrap { margin-top: 10px; }
    .usage-bar-label {
      font-size: .75rem; color: var(--text3); margin-bottom: 5px;
      display: flex; justify-content: space-between;
    }
    .usage-bar-track { height: 4px; background: var(--border); border-radius: 3px; overflow: hidden; }
    .usage-bar-fill {
      height: 100%; border-radius: 3px;
      background: linear-gradient(90deg, var(--brand), var(--pink));
      transition: width .4s ease;
    }

    .prof-list { display: flex; flex-direction: column; gap: 8px; }
    .prof-card {
      padding: 16px 18px; background: var(--surface-raised);
      border: 1px solid var(--border-default); border-radius: 14px;
      transition: all .2s; min-width: 0; box-sizing: border-box;
      box-shadow: 0 3px 0 var(--border-subtle);
      transform: translateY(0);
    }
    .prof-card:hover {
      border-color: color-mix(in srgb, var(--brand-500) 20%, transparent);
      transform: translateY(-1px);
      box-shadow: 0 5px 0 var(--border-subtle), 0 0 16px color-mix(in srgb, var(--brand-500) 5%, transparent);
    }
    [data-theme="light"] .prof-card { box-shadow: 0 3px 0 rgba(0,0,0,.04); }
    [data-theme="light"] .prof-card:hover { box-shadow: 0 5px 0 rgba(0,0,0,.04), 0 0 16px color-mix(in srgb, var(--brand-500) 4%, transparent); }
    .prof-card-top { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
    .prof-card-badge {
      font-size: .68rem; font-weight: 800; text-transform: uppercase;
      letter-spacing: .4px; padding: 3px 8px;
      border-radius: 6px; background: color-mix(in srgb, var(--brand-500) 15%, transparent); color: var(--brand);
    }
    .prof-card-date { font-size: .72rem; color: var(--text3); margin-left: auto; }
    .prof-card-text {
      font-size: .88rem; line-height: 1.6; color: var(--text2);
      display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
      overflow: hidden; cursor: pointer;
      white-space: pre-wrap; word-break: break-word; overflow-wrap: anywhere;
    }
    .prof-card-text:hover { color: var(--text); }
    .prof-card-acts { display: flex; gap: 6px; margin-top: 10px; flex-wrap: wrap; }
    .prof-card-acts button {
      padding: 5px 12px; border: 1px solid var(--border); background: none;
      border-radius: 7px; font-size: .72rem; font-weight: 600;
      color: var(--text3); cursor: pointer; transition: all .2s;
      font-family: var(--font-body);
    }
    .prof-card-acts button {
      box-shadow: 0 2px 0 var(--border-subtle); transform: translateY(0);
      transition: transform .1s, box-shadow .1s, border-color .2s, color .2s;
    }
    .prof-card-acts button:active { transform: translateY(2px); box-shadow: 0 0 0 var(--border-subtle); }
    [data-theme="light"] .prof-card-acts button { box-shadow: 0 2px 0 rgba(0,0,0,.1); }
    [data-theme="light"] .prof-card-acts button:active { box-shadow: 0 0 0 rgba(0,0,0,.1); }
    .prof-card-acts button:hover { border-color: var(--text2); color: var(--text2); }
    .prof-card-acts button.del:hover { border-color: var(--danger-fg); color: var(--danger-fg); }
    @media (max-width: 640px) {
      .prof-card-acts button.mob-hide { display: none; }
      .prof-card-acts .btn-more-acts { display: inline-flex; }
    }
    @media (min-width: 641px) {
      .prof-card-acts .btn-more-acts { display: none; }
    }
    /* Card actions bottom sheet */
    #cardActionsSheet {
      position: fixed; inset: 0; z-index: 600; display: none;
    }
    #cardActionsSheet.on { display: flex; flex-direction: column; justify-content: flex-end; }
    .cas-backdrop {
      position: absolute; inset: 0; background: rgba(0,0,0,.5);
    }
    .cas-panel {
      position: relative; z-index: 1; background: var(--bg);
      border-radius: 20px 20px 0 0; padding: 12px 16px 24px;
      padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px));
      transform: translateY(100%); transition: transform .22s ease-out;
      max-height: 70vh; overflow-y: auto;
    }
    #cardActionsSheet.on .cas-panel { transform: translateY(0); }
    .cas-handle {
      width: 40px; height: 4px; border-radius: 2px; background: var(--border);
      margin: 0 auto 12px;
    }
    .cas-btn {
      display: flex; align-items: center; gap: 12px; width: 100%;
      padding: 14px 16px; background: none; border: none; border-radius: 12px;
      font-size: .9rem; font-weight: 500; color: var(--text); cursor: pointer;
      font-family: var(--font-body); transition: background .12s;
    }
    .cas-btn:hover, .cas-btn:active { background: rgba(255,255,255,.06); }
    .cas-btn.danger { color: #f87171; }
    .prof-empty { text-align: center; padding: 40px 20px; color: var(--text3); font-size: .9rem; }
    .prof-empty-icon { font-size: 2rem; margin-bottom: 8px; }

    /* ── Project detail view ───────────────────────────── */
    .proj-detail-overlay {
      position: fixed; inset: 0; background: #0a0b0f; z-index: 310;
      overflow-y: auto; display: none;
      background-image:
        radial-gradient(ellipse at 15% -5%, rgba(79,124,255,.09) 0%, transparent 45%),
        radial-gradient(ellipse at 85% 95%, rgba(139,92,246,.06) 0%, transparent 45%),
        radial-gradient(ellipse at 50% 40%, rgba(79,124,255,.03) 0%, transparent 50%);
    }
    .proj-detail-overlay.on { display: block; }
    .proj-detail-inner {
      max-width: 900px; margin: 0 auto; padding: 24px 20px 60px;
    }
    .proj-detail-top {
      display: flex; align-items: center; gap: 12px; margin-bottom: 24px;
    }
    .proj-detail-back {
      background: none; border: 1px solid var(--border); color: var(--text2);
      padding: 6px 12px; border-radius: var(--rsm); cursor: pointer; font-size: .85rem;
    }
    .proj-detail-back:hover { border-color: var(--brand); color: var(--text); }
    .proj-detail-name {
      font-size: 1.3rem; font-weight: 900; color: var(--text);
      background: none; border: none; border-bottom: 2px solid transparent;
      outline: none; flex: 1; min-width: 0;
    }
    .proj-detail-name:focus { border-bottom-color: var(--brand); }
    .proj-detail-del {
      background: none; border: 1px solid rgba(239,68,68,.3); color: #f87171;
      padding: 6px 14px; border-radius: var(--rsm); cursor: pointer; font-size: .8rem;
    }
    .proj-detail-del:hover { background: rgba(239,68,68,.1); }
    .proj-detail-style {
      margin-bottom: 20px;
    }
    .proj-detail-style label {
      font-size: .78rem; color: var(--text3); font-weight: 600; display: block; margin-bottom: 6px;
    }
    .proj-detail-style textarea {
      width: 100%; padding: 10px 14px; background: var(--surf); border: 1px solid var(--border);
      border-radius: var(--rsm); color: var(--text); font-size: .85rem; resize: vertical;
      min-height: 60px; outline: none;
    }
    .proj-detail-style textarea:focus { border-color: var(--brand); }
    .proj-detail-toolbar {
      display: flex; align-items: center; gap: 10px; margin-bottom: 16px; flex-wrap: wrap;
    }
    .proj-detail-toolbar select {
      padding: 7px 12px; background: var(--surf); border: 1px solid var(--border);
      border-radius: var(--rsm); color: var(--text); font-size: .8rem; outline: none;
    }
    .proj-detail-toolbar .count { font-size: .8rem; color: var(--text3); margin-left: auto; }

    /* Script cards in project */
    .script-grid { display: flex; flex-direction: column; gap: 12px; }
    .script-card {
      background: var(--surf);
      border: 1px solid var(--border);
      border-radius: var(--r); overflow: hidden; transition: border-color .2s;
    }
    .script-card:hover { border-color: rgba(79,124,255,.3); }
    .script-card-head {
      display: flex; align-items: center; gap: 10px; padding: 14px 16px;
      cursor: pointer;
    }
    .script-card-title { flex: 1; font-weight: 700; font-size: .9rem; color: var(--text); }
    .script-card-date { font-size: .72rem; color: var(--text3); }
    .script-card-toggle { color: var(--text3); font-size: .7rem; transition: transform .2s; }
    .script-card.collapsed .script-card-toggle { transform: rotate(-90deg); }
    .script-card-preview {
      padding: 0 16px 12px; font-size: .82rem; color: var(--text2);
      line-height: 1.5; white-space: pre-wrap;
    }
    .script-card.collapsed .script-card-preview,
    .script-card.collapsed .script-card-perf,
    .script-card.collapsed .script-card-acts { display: none; }
    .script-card-perf {
      padding: 0 16px 12px; display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end;
    }
    .script-card-perf .perf-field { display: flex; flex-direction: column; gap: 3px; }
    .script-card-perf .perf-field label { font-size: .68rem; color: var(--text3); font-weight: 600; }
    .script-card-perf .perf-field input,
    .script-card-perf .perf-field textarea {
      padding: 6px 10px; background: var(--surf2); border: 1px solid var(--border);
      border-radius: 4px; color: var(--text); font-size: .8rem; outline: none;
    }
    .script-card-perf .perf-field input { width: 90px; }
    .script-card-perf .perf-field textarea { width: 220px; min-height: 40px; resize: vertical; }
    .script-card-perf .perf-field input:focus,
    .script-card-perf .perf-field textarea:focus { border-color: var(--brand); }
    .perf-save {
      padding: 5px 12px; background: var(--grad); border: none; color: #fff;
      border-radius: 4px; font-size: .75rem; font-weight: 700; cursor: pointer;
    }
    .script-card-acts {
      padding: 0 16px 14px; display: flex; gap: 6px;
    }

    /* Inline title editing */
    .script-card-title-edit {
      font-family: var(--font-display); font-size: .9rem; font-weight: 400;
      background: none; border: none; border-bottom: 1px solid transparent;
      color: var(--text); outline: none; flex: 1; min-width: 0;
      padding: 2px 0; transition: border-color .2s;
    }
    .script-card-title-edit:focus { border-bottom-color: var(--brand); }

    /* Script editor textarea */
    .script-editor-ta {
      width: 100%; min-height: 200px; padding: 14px;
      background: var(--bg); border: 1px solid var(--border);
      border-radius: var(--rsm); color: var(--text);
      font-family: var(--font-body); font-size: .88rem; line-height: 1.7;
      resize: vertical; outline: none; transition: border-color .2s;
    }
    .script-editor-ta:focus { border-color: var(--brand); }
    .script-card-editor { padding: 0 16px 12px; }
    .script-editor-bar {
      display: flex; gap: 8px; margin-top: 8px; align-items: center;
    }
    .script-editor-status {
      font-size: .75rem; color: var(--green); margin-left: auto;
    }

    /* Script metrics */
    .script-card-text {
      padding: 0 16px 12px; font-size: .84rem; color: var(--text2);
      line-height: 1.6; white-space: pre-wrap; word-break: break-word;
      display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden;
      cursor: pointer; transition: all .2s;
    }
    .script-card-text:hover { color: var(--text); }
    .script-card-text.expanded {
      -webkit-line-clamp: unset !important; max-height: none;
    }
    .script-metrics-chips {
      padding: 0 16px 10px; display: flex; gap: 8px; flex-wrap: wrap; cursor: pointer;
    }
    .metric-chip {
      font-size: .72rem; padding: 3px 8px; border-radius: 6px;
      background: var(--surf2); color: var(--text2); border: 1px solid var(--border);
    }
    .script-metrics-panel {
      padding: 0 16px 14px;
    }
    .metrics-fields {
      display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px;
    }
    .metric-field label {
      display: block; font-size: .65rem; font-weight: 600; color: var(--text3);
      text-transform: uppercase; letter-spacing: .4px; margin-bottom: 4px;
    }
    .metric-field input, .metric-field textarea {
      width: 100%; padding: 7px 10px; background: var(--surf2);
      border: 1px solid var(--border); border-radius: 6px;
      color: var(--text); font-size: .82rem; outline: none;
      font-family: var(--font-body);
    }
    .metric-field input:focus, .metric-field textarea:focus { border-color: var(--brand); }
    .metric-field textarea { resize: vertical; min-height: 40px; }

    /* v0.14.42: ig-link-box rediseñado con mascota + microcopy cálido. */
    .ig-link-box {
      max-width: 480px;
      margin: var(--space-2xl) auto;
      background: var(--surface-raised);
      border: 1px solid var(--border-default);
      border-radius: var(--radius-xl);
      padding: var(--space-12) var(--space-8);
      text-align: center;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: var(--space-4);
    }
    .ig-link-mascot {
      width: 80px; height: 80px;
      image-rendering: pixelated;
      filter: drop-shadow(0 0 18px color-mix(in srgb, var(--success) 20%, transparent));
    }
    .ig-link-title {
      font-family: var(--font-display);
      font-size: 1.6rem;
      color: var(--text);
      line-height: 1.2;
      letter-spacing: -.015em;
    }
    .ig-link-desc {
      font-size: .95rem;
      color: var(--text2);
      line-height: 1.5;
      max-width: 380px;
    }
    .ig-link-box input {
      width: 100%; max-width: 320px;
      padding: 14px 16px;
      background: var(--surf2);
      border: 1px solid var(--border);
      border-radius: 12px;
      color: var(--text); font-size: 1rem; font-family: var(--font-body);
      outline: none; box-sizing: border-box;
      transition: border-color .15s, box-shadow .15s;
    }
    .ig-link-box input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-500) 16%, transparent); }
    .ig-link-cta {
      background: var(--brand-cta);
      color: #fff;
      border: 0;
      padding: 14px 28px;
      border-radius: 12px;
      font-size: 1rem;
      font-weight: 700;
      font-family: var(--font-body);
      cursor: pointer;
      transition: background .15s, transform .12s;
    }
    .ig-link-cta:hover:not(:disabled) { background: var(--brand-800); transform: translateY(-1px); }
    .ig-link-cta:active:not(:disabled) { transform: scale(.98); }
    .ig-link-cta:disabled { opacity: .65; cursor: default; }
    .ig-link-disclaimer {
      font-size: .78rem;
      color: var(--text3);
      margin-top: var(--space-sm);
    }
    /* v0.14.42: skeleton específicos del panel Métricas. Heredan animación de .skel. */
    .ig-skel-stat { height: 80px; border-radius: 12px; }
    .ig-skel-chart { height: 260px; border-radius: 12px; }
    .ig-skel-card { height: 200px; border-radius: 12px; }
    @media (max-width: 640px) {
      .ig-skel-chart { height: 180px; }
    }
    .ig-linked-header {
      display: flex; align-items: center; gap: 12px; margin-bottom: 20px; flex-wrap: wrap;
    }
    .ig-linked-user {
      font-family: var(--font-display); font-size: 1.1rem;
    }
    .ig-linked-actions { display: flex; gap: 8px; margin-left: auto; }
    .ig-stats-row {
      display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-bottom: 14px;
      transition: grid-template-columns .2s;
    }
    .ig-stat-card {
      background: var(--surface-raised); border: 1px solid var(--border-default); border-radius: 12px;
      padding: 14px; text-align: center; position: relative; overflow: hidden;
    }
    .ig-stat-card::before {
      content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
      background: var(--stat-accent, var(--brand)); border-radius: 12px 12px 0 0;
    }
    .ig-stat-val {
      font-family: var(--font-display); font-size: 1.3rem; font-weight: 700; margin-bottom: 2px;
      color: var(--text);
    }
    .ig-stat-label {
      font-size: .7rem; color: var(--text3); text-transform: uppercase; letter-spacing: .5px;
    }
    .ig-best-reel {
      font-size: .78rem; color: var(--text2); margin-bottom: 18px; padding: 10px 14px;
      background: var(--surface-raised); border: 1px solid var(--border-default); border-radius: 10px;
      display: flex; align-items: center; gap: 8px;
    }
    .ig-best-reel a { color: var(--brand); text-decoration: none; }
    .ig-best-reel a:hover { text-decoration: underline; }
    .ig-sort-bar {
      display: flex; align-items: center; gap: 8px; margin-bottom: 14px; flex-wrap: wrap;
    }
    .ig-sort-btn {
      padding: 5px 12px; border-radius: 8px; border: 1px solid var(--border);
      background: var(--surf); color: var(--text2); font-size: .75rem;
      cursor: pointer; transition: all .15s; font-family: var(--font-body);
    }
    .ig-sort-btn.on { background: var(--brand); color: #fff; border-color: var(--brand); }
    .ig-grid {
      display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px;
    }
    .ig-card {
      background: var(--surface-raised); border: 1px solid var(--border-default); border-radius: 12px;
      overflow: hidden; transition: border-color .2s;
    }
    .ig-card:hover { border-color: color-mix(in srgb, var(--brand-500) 30%, transparent); }
    .ig-card-thumb {
      width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block;
      background: var(--surf2); max-height: 200px;
      border-radius: 12px 12px 0 0;
    }
    .ig-thumb-placeholder {
      width: 100%; aspect-ratio: 4/5; max-height: 200px;
      background: linear-gradient(135deg, color-mix(in srgb, var(--brand-500) 15%, transparent), color-mix(in srgb, var(--brand-500) 5%, transparent));
      display: flex; align-items: center; justify-content: center;
      font-size: 2rem; color: var(--text3); opacity: .5;
      border-radius: 12px 12px 0 0;
    }
    .ig-card-overlay {
      position: absolute; inset: 0; border-radius: 12px 12px 0 0;
      background: linear-gradient(transparent 70%, rgba(0,0,0,.3));
      pointer-events: none;
    }
    .ig-card-body { padding: 12px 14px; }
    .ig-card-caption {
      font-size: .78rem; color: var(--text); line-height: 1.4; font-weight: 500;
      display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
      overflow: hidden; margin-bottom: 10px; min-height: 2.1em;
    }
    .ig-card-stats {
      display: flex; gap: 12px; font-size: .72rem; color: var(--text3); margin-bottom: 10px;
    }
    .ig-card-stats span { display: flex; align-items: center; gap: 3px; }
    .ig-card-actions { display: flex; gap: 6px; }
    .ig-card-btn {
      flex: 1; padding: 7px 0; border-radius: 8px; border: 1px solid var(--border);
      background: var(--surf); color: var(--text2); font-size: .74rem; cursor: pointer;
      transition: all .15s; font-family: var(--font-body);
    }
    .ig-card-btn:hover { border-color: var(--brand); color: var(--brand); }
    .ig-card-btn.primary { background: var(--brand-cta); color: #fff; border-color: var(--brand-cta); }
    .ig-card-btn.primary:hover { opacity: .85; }
    .ig-card-transcript {
      margin-top: 10px; padding: 10px 12px; background: var(--surf2); border-radius: 8px;
      font-size: .78rem; color: var(--text2); line-height: 1.5; max-height: 120px;
      overflow-y: auto; white-space: pre-wrap;
    }
    .ig-tag-btn {
      height: 24px; border-radius: 6px; border: none;
      background: var(--surf2); color: var(--text2); font-size: .65rem;
      cursor: pointer; padding: 0 8px;
      display: inline-flex; align-items: center; gap: 3px;
      transition: all .15s;
    }
    .ig-tag-btn:hover { border-color: var(--brand); }
    .ig-delete-btn {
      width: 26px; height: 26px; border-radius: 6px; border: none;
      background: rgba(0,0,0,.4); backdrop-filter: blur(4px);
      color: #fff; font-size: .7rem; cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      opacity: 0; transition: opacity .2s, transform .15s; z-index: 2;
    }
    .ig-card:hover .ig-delete-btn { opacity: 1; }
    .ig-delete-btn:hover { background: color-mix(in srgb, var(--danger) 80%, transparent); transform: scale(1.1); }
    .ig-tag-picker {
      position: absolute; top: 100%; left: 0; z-index: 10;
      background: var(--surf); border: 1px solid var(--border); border-radius: 12px;
      padding: 8px; display: flex; flex-wrap: wrap; gap: 4px; width: 240px;
      box-shadow: 0 6px 24px rgba(0,0,0,.22); margin-top: 4px;
    }
    .ig-tag-opt {
      padding: 7px 12px; border-radius: 8px; border: 1.5px solid transparent;
      background: var(--surf2); font-size: .75rem; cursor: pointer;
      display: flex; align-items: center; gap: 5px;
      transition: all .15s; color: var(--text2);
      box-shadow: 0 1px 3px rgba(0,0,0,.06);
    }
    .ig-tag-opt:hover { border-color: var(--brand); transform: translateY(-1px); box-shadow: 0 2px 6px rgba(0,0,0,.1); }
    .ig-tag-opt:active { transform: translateY(0); }
    .ig-tag-opt.on { border-color: var(--brand); background: rgba(168,85,247,.1); box-shadow: 0 1px 4px rgba(168,85,247,.2); }
    .ig-perf-badge {
      border-radius: 4px; font-size: .6rem; font-weight: 700;
      padding: 2px 8px; letter-spacing: .03em; text-transform: uppercase;
      display: inline-block;
    }
    .ig-badges-row {
      display: flex; gap: 4px; flex-wrap: wrap; margin-bottom: 6px;
    }
    .ig-chart-tabs {
      display: flex; gap: 4px; margin-bottom: 12px; flex-wrap: wrap;
    }
    .ig-chart-tab {
      padding: 6px 14px; border-radius: 8px; border: 1px solid var(--border);
      background: var(--surf); color: var(--text2); font-size: .72rem;
      cursor: pointer; transition: all .15s; font-family: var(--font-body);
    }
    .ig-chart-tab.on { background: var(--brand); color: #fff; border-color: var(--brand); }
    .ig-filter-bar {
      display: flex; gap: 4px; margin-bottom: 12px; flex-wrap: wrap; align-items: center;
    }
    .ig-filter-chip {
      padding: 4px 10px; border-radius: 20px; border: 1px solid var(--border);
      background: var(--surf); color: var(--text3); font-size: .68rem;
      cursor: pointer; transition: all .15s; display: flex; align-items: center; gap: 3px;
    }
    .ig-filter-chip:hover { border-color: var(--brand); }
    .ig-filter-chip.on { border-color: var(--brand); color: var(--brand); background: rgba(168,85,247,.08); }
    .ig-detail-overlay {
      position: fixed; inset: 0; z-index: 9999; background: rgba(0,0,0,.6);
      backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center;
      animation: fadeIn .2s ease;
    }
    .ig-detail-modal {
      background: var(--surf); border: 1px solid var(--border); border-radius: 16px;
      max-width: 520px; width: 92vw; max-height: 85vh; overflow-y: auto;
      box-shadow: 0 8px 40px rgba(0,0,0,.25); animation: slideUp .25s ease;
    }
    @keyframes slideUp { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
    @keyframes spin { to { transform: rotate(360deg); } }
    .ig-detail-header {
      position: relative; overflow: hidden; border-radius: 16px 16px 0 0;
    }
    .ig-detail-header img {
      width: 100%; max-height: 280px; object-fit: cover; display: block;
    }
    .ig-detail-close {
      position: absolute; top: 10px; right: 10px; width: 32px; height: 32px;
      border-radius: 50%; border: none; background: rgba(0,0,0,.5); color: #fff;
      font-size: 1.1rem; cursor: pointer; display: flex; align-items: center; justify-content: center;
      backdrop-filter: blur(4px);
    }
    .ig-detail-close:hover { background: rgba(0,0,0,.7); }
    .ig-detail-body { padding: 20px; }
    .ig-detail-caption {
      font-size: .88rem; color: var(--text); line-height: 1.5; margin-bottom: 16px;
      white-space: pre-wrap;
    }
    .ig-detail-metrics {
      display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 16px;
    }
    .ig-detail-metric {
      background: var(--surf2); border-radius: 10px; padding: 12px; text-align: center;
    }
    .ig-detail-metric-val {
      font-family: var(--font-display); font-size: 1.2rem; font-weight: 600;
    }
    .ig-detail-metric-label {
      font-size: .65rem; color: var(--text3); text-transform: uppercase; letter-spacing: .03em;
    }
    .ig-detail-transcript {
      background: var(--surf2); border-radius: 10px; padding: 14px;
      font-size: .82rem; color: var(--text2); line-height: 1.6;
      max-height: 200px; overflow-y: auto; white-space: pre-wrap;
    }
    .ig-detail-actions { display: flex; gap: 8px; margin-top: 14px; }
    .ig-detail-actions .ig-card-btn { flex: 1; padding: 12px 16px; font-size: .85rem; font-weight: 600; border-radius: 10px; }
    .ig-save-btn {
      width: 100%; padding: 14px 20px; border-radius: 12px; border: none;
      background: linear-gradient(135deg, var(--brand), #7c3aed); color: #fff;
      font-size: .9rem; font-weight: 700; font-family: var(--font-display);
      cursor: pointer; transition: all .2s; letter-spacing: .02em;
      box-shadow: 0 4px 12px rgba(168,85,247,.3), 0 2px 4px rgba(0,0,0,.1);
      display: flex; align-items: center; justify-content: center; gap: 8px;
    }
    .ig-save-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(168,85,247,.4), 0 3px 6px rgba(0,0,0,.12); }
    .ig-save-btn:active { transform: translateY(1px); box-shadow: 0 2px 6px rgba(168,85,247,.2); }
    .ig-save-btn.saved { background: linear-gradient(135deg, var(--success), #16a34a); box-shadow: 0 4px 12px rgba(34,197,94,.3); }
    .ig-save-btn:disabled { opacity: .6; cursor: default; transform: none; }
    .ig-manual-section {
      border-top: 1px dashed var(--border); margin-top: 14px; padding-top: 12px;
    }
    .ig-manual-label {
      font-size: .68rem; font-weight: 700; color: var(--text3); text-transform: uppercase;
      letter-spacing: .04em; margin-bottom: 10px;
    }
    .ig-manual-row {
      display: flex; gap: 10px; margin-bottom: 8px; flex-wrap: wrap;
    }
    .ig-manual-field {
      display: flex; align-items: center; gap: 5px; font-size: .78rem; color: var(--text2);
    }
    .ig-manual-field label { font-size: .7rem; color: var(--text3); white-space: nowrap; }
    .ig-manual-input {
      width: 70px; padding: 8px 10px; background: var(--surf2); border: 1px solid var(--border);
      border-radius: 8px; color: var(--text); font-size: .85rem; font-family: var(--font-display);
      outline: none; text-align: center; transition: border-color .15s, box-shadow .15s;
    }
    .ig-manual-input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(168,85,247,.1); }
    .ig-manual-input.wide { width: 90px; }
    .ig-retention-widget {
      display: flex; flex-direction: column; gap: 8px; width: 100%;
    }
    .ig-ret-display {
      display: flex; align-items: center; gap: 10px;
    }
    .ig-ret-val {
      font-family: var(--font-display); font-size: 1.6rem; font-weight: 700;
      color: var(--text); min-width: 50px; text-align: center; line-height: 1;
    }
    .ig-ret-val small { font-size: .65rem; font-weight: 400; color: var(--text3); }
    .ig-ret-slider {
      flex: 1; -webkit-appearance: none; appearance: none; height: 6px;
      background: var(--surf2); border-radius: 3px; outline: none;
      cursor: pointer;
    }
    .ig-ret-slider::-webkit-slider-thumb {
      -webkit-appearance: none; width: 20px; height: 20px; border-radius: 50%;
      background: var(--brand); cursor: grab; border: 2px solid var(--surf);
      box-shadow: 0 1px 4px rgba(0,0,0,.25);
    }
    .ig-ret-slider::-moz-range-thumb {
      width: 20px; height: 20px; border-radius: 50%;
      background: var(--brand); cursor: grab; border: 2px solid var(--surf);
      box-shadow: 0 1px 4px rgba(0,0,0,.25);
    }
    .ig-ret-presets {
      display: flex; gap: 4px; flex-wrap: wrap;
    }
    .ig-ret-preset {
      padding: 6px 12px; border-radius: 8px; border: 1px solid var(--border);
      background: var(--surf); color: var(--text2); font-size: .75rem;
      cursor: pointer; transition: all .15s; font-family: var(--font-display);
      box-shadow: 0 1px 3px rgba(0,0,0,.06);
    }
    .ig-ret-preset:hover { border-color: var(--brand); color: var(--brand); transform: translateY(-1px); }
    .ig-ret-preset:active { transform: translateY(0); }
    .ig-ret-preset.on { background: var(--brand); color: #fff; border-color: var(--brand); box-shadow: 0 2px 6px rgba(168,85,247,.25); }
    .ig-manual-check {
      color: var(--success); font-size: .7rem; opacity: 0; transition: opacity .3s;
    }
    .ig-manual-check.show { opacity: 1; }
    .ig-manual-note {
      width: 100%; padding: 8px 10px; background: var(--surf2); border: 1px solid var(--border);
      border-radius: 8px; color: var(--text); font-family: var(--font-body); font-size: .78rem;
      line-height: 1.4; resize: none; outline: none; min-height: 28px; max-height: 100px;
      transition: min-height .2s, border-color .15s; box-sizing: border-box;
    }
    .ig-manual-note:focus { border-color: var(--brand); min-height: 60px; }
    .ig-manual-hint {
      font-size: .65rem; color: var(--text3); margin-top: 8px; padding: 8px 10px;
      background: var(--surf2); border-radius: 6px; display: flex; align-items: start; gap: 6px;
      line-height: 1.4;
    }
    .ig-manual-hint-x {
      background: none; border: none; color: var(--text3); cursor: pointer; font-size: .7rem;
      padding: 0; margin-left: auto; flex-shrink: 0;
    }

    @media (max-width: 768px) {
      /* Prevent overflow on metrics panel */
      #profPanelMetrics { max-width: 100%; overflow-x: hidden; box-sizing: border-box; }
      /* 1. Stats header — 3×2 grid, ultra-compact */
      .ig-stats-row { grid-template-columns: repeat(3, 1fr) !important; gap: 6px; }
      .ig-stat-card { padding: 8px 6px; border-radius: 8px; }
      .ig-stat-val { font-size: .95rem; }
      .ig-stat-label { font-size: .55rem; }
      /* 2. Chart — scrollable container */
      .ig-chart-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
      /* 3. Scale tabs — second row */
      .ig-chart-toolbar { flex-direction: column !important; align-items: flex-start !important; gap: 4px !important; }
      .ig-chart-toolbar .ig-chart-tabs { margin-bottom: 0; }
      .ig-chart-toolbar .ig-chart-tab { padding: 4px 10px; font-size: .65rem; }
      .ig-chart-toolbar .ig-scale-group { margin-left: 0 !important; }
      .ig-chart-toolbar .ig-scale-group .ig-chart-tab { font-size: .6rem; padding: 3px 8px; }
      /* v0.14.22: 2-col en mobile, alineado con Dashboard */
      .ig-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
      .ig-card { border-radius: 10px; }
      .ig-card-thumb { max-height: 220px; border-radius: 10px 10px 0 0; }
      .ig-thumb-placeholder { max-height: 220px; border-radius: 10px 10px 0 0; }
      .ig-card-overlay { border-radius: 10px 10px 0 0; }
      .ig-card-body { padding: 10px 12px; }
      .ig-card-caption { font-size: .78rem; -webkit-line-clamp: 2; min-height: 1em; margin-bottom: 6px; }
      .ig-card-stats { gap: 8px; font-size: .7rem; flex-wrap: wrap; margin-bottom: 6px; }
      .ig-card-actions { flex-direction: row; gap: 6px; }
      .ig-card-btn { font-size: .75rem; padding: 7px 10px; border-radius: 8px; }
      .ig-card .ig-badges-row { gap: 4px; margin-bottom: 6px; }
      /* 5. Filters — horizontal scroll */
      .ig-filter-bar { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 4px; gap: 6px; scrollbar-width: none; }
      .ig-filter-bar::-webkit-scrollbar { display: none; }
      .ig-filter-chip { white-space: nowrap; flex-shrink: 0; font-size: .7rem; padding: 4px 10px; }
      /* 6. Top reel — truncate */
      .ig-best-reel { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: .7rem; padding: 8px 10px; margin-bottom: 12px; }
      .ig-best-reel .ig-best-full { display: none; }
      .ig-best-reel .ig-best-short { display: inline; }
      /* Sort bar — horizontal scroll so "Ordenar por…" no se corta */
      .ig-sort-bar {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        gap: 6px;
        margin-bottom: 10px;
        padding-bottom: 4px;
        scrollbar-width: none;
      }
      .ig-sort-bar::-webkit-scrollbar { display: none; }
      .ig-sort-btn { padding: 4px 10px; font-size: .7rem; white-space: nowrap; flex-shrink: 0; }
      /* Other */
      .ig-linked-header { gap: 6px; margin-bottom: 12px; }
      .ig-linked-user { font-size: .9rem; }
      .ig-linked-actions { margin-left: 0; width: 100%; }
      .ig-linked-actions .ig-card-btn { flex: 1; text-align: center; font-size: .65rem; }
      .ig-link-box { padding: 20px 14px; margin: 16px auto; }
      #igAnalyzeBar { flex-direction: column; align-items: stretch; gap: 6px; }
      #igAnalyzeBar .ig-card-btn { width: 100%; font-size: .7rem; }
      #igAnalyzeBar select { width: 100%; font-size: .7rem; }
      .ig-delete-btn { opacity: 1; }
      .ig-detail-metrics { grid-template-columns: repeat(2, 1fr); gap: 8px; }
      .ig-detail-modal { max-width: 95vw; }
    }
    @media (min-width: 769px) {
      .ig-best-reel .ig-best-short { display: none; }
      .ig-best-reel .ig-best-full { display: inline; }
    }
    @media (max-width: 420px) {
      .ig-card-caption { -webkit-line-clamp: 2; min-height: 2em; }
      .ig-detail-metrics { grid-template-columns: repeat(2, 1fr); }
    }

    /* Idea cards */
    .idea-card {
      background: var(--surf); border: 1px solid var(--border);
      border-radius: 14px; padding: 18px; margin-bottom: 10px;
      transition: border-color .2s;
    }
    .idea-card:hover { border-color: rgba(255,255,255,.12); }
    .idea-card-head {
      display: flex; align-items: center; gap: 10px; margin-bottom: 10px;
    }
    .idea-card-cat {
      font-size: .65rem; font-weight: 600; text-transform: uppercase;
      letter-spacing: .05em; padding: 2px 8px; border-radius: 4px;
      background: rgba(79,124,255,.1); color: var(--brand);
    }
    .idea-card-title {
      font-family: var(--font-display); font-size: .95rem; flex: 1;
    }
    .idea-card-date { font-size: .72rem; color: var(--text3); }
    .idea-card-draft {
      font-size: .84rem; color: var(--text2); line-height: 1.6; margin-bottom: 12px;
    }
    .idea-card-draft strong {
      color: var(--text); font-weight: 600; display: block; margin-bottom: 2px;
      font-size: .72rem; text-transform: uppercase; letter-spacing: .04em;
    }
    .idea-card-acts { display: flex; gap: 6px; flex-wrap: wrap; }
    .idea-card-loading {
      text-align: center; padding: 24px; color: var(--text2); font-size: .85rem;
    }

    /* ── Ideas panel redesign (v0.14.0) ─────────────────────────── */
    :root {
      --ideas-accent: #ff6b3d;
      --ideas-dev: #5dcaa5;
      --ideas-dev-soft: rgba(93, 202, 165, 0.12);
      --ideas-dev-border: rgba(93, 202, 165, 0.25);
      --ink-editorial: #f1ead9;
      --ink-muted: #8a7e72;
      --ink-cream: #c4b896;
      --ink-ghost: #6a6258;
      --ink-body: #d4c9a9;
      /* v0.14.44.d: subidos para superar --surf #1c1f29 (L=0.01388). Promedio
         del gradient L=0.01601 (+15% sobre --surf). Hue púrpura ~286-290°
         conservado. Restaura jerarquía: cards 'ricas' > cards planas. */
      --ideas-card-top: #2d2532;
      --ideas-card-bot: #1e1923;
      /* v0.16.2: Fraunces y JetBrains Mono ya no se cargan (v0.16.1).
         --font-editorial cae a Instrument Serif vía --font-display.
         --font-mono usa la del design system base (ui-monospace fallback). */
      --font-editorial: var(--font-display);
    }

    #profPanelIdeas { position: relative; }

    /* v0.14.32: Ideas hero decorativo eliminado (eyebrow, waves, h1 poético, sub, mascota, counter). */

    /* Input card ──────────────────────────────────────────── */
    .ideas-input-card {
      position: relative;
      background: var(--surface-raised);
      border: 1px solid rgba(255, 107, 61, 0.18);
      border-radius: 18px;
      padding: 22px 24px 20px;
      margin-bottom: 28px;
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.04),
        inset 0 -1px 0 rgba(0, 0, 0, 0.3),
        0 8px 32px rgba(0, 0, 0, 0.4),
        0 0 60px color-mix(in srgb, var(--brand-500) 6%, transparent);
    }
    .ideas-input-label {
      display: block;
      font-family: var(--font-mono);
      font-size: 10px; font-weight: 500;
      text-transform: uppercase;
      letter-spacing: 0.18em;
      color: var(--ink-cream);
      margin-bottom: 10px;
    }
    .ideas-input-body {
      display: flex; gap: 18px; align-items: stretch;
    }
    .ideas-input-col { flex: 1; min-width: 0; }
    .ideas-textarea {
      width: 100%;
      background: transparent;
      border: none; outline: none;
      color: var(--ink-editorial);
      font-family: var(--font-body);
      font-size: 16px; line-height: 1.5;
      min-height: 72px; max-height: 200px;
      resize: vertical;
      padding: 0;
    }
    .ideas-textarea::placeholder {
      color: rgba(138, 126, 114, 0.75);
      font-style: italic;
    }
    .ideas-input-col-right {
      display: flex; align-items: flex-end;
    }
    .ideas-btn-develop {
      display: inline-flex; align-items: center; gap: 9px;
      padding: 12px 22px;
      border-radius: 11px;
      border: none;
      font-family: var(--font-body);
      font-size: 14px; font-weight: 600;
      color: #fff;
      /* v0.14.35.b: CTA plano consistente. Antes gradient #ff6b3d→var(--brand-500) brillante. */
      background: var(--brand-cta);
      cursor: pointer;
      transition: transform .16s, box-shadow .16s, background .16s;
      box-shadow: 0 4px 16px color-mix(in srgb, var(--brand-500) 18%, transparent);
      letter-spacing: -0.005em;
    }
    .ideas-btn-develop:hover {
      transform: translateY(-1px);
      background: var(--brand-800);
      box-shadow: 0 6px 18px color-mix(in srgb, var(--brand-500) 18%, transparent);
    }
    .ideas-btn-develop:active { transform: scale(.98); opacity: .95; background: var(--brand-800); transition: transform .08s ease-out, opacity .08s ease-out; }
    .ideas-btn-develop:disabled { opacity: .65; cursor: wait; transform: none; }
    .ideas-btn-develop svg { flex-shrink: 0; }
    .ideas-input-col-right { display: flex; align-items: flex-end; gap: 10px; }
    .ideas-btn-add {
      display: inline-flex; align-items: center; gap: 7px;
      padding: 12px 18px;
      border-radius: 11px;
      font-family: var(--font-body);
      font-size: 14px; font-weight: 500;
      color: var(--ink-cream);
      background: transparent;
      border: 1px solid rgba(255, 255, 255, 0.1);
      cursor: pointer;
      transition: background .15s, border-color .15s, color .15s, transform .15s;
    }
    .ideas-btn-add:hover {
      background: rgba(255, 255, 255, 0.04);
      border-color: rgba(255, 255, 255, 0.22);
      color: var(--ink-editorial);
      transform: translateY(-1px);
    }
    .ideas-btn-add:disabled { opacity: .5; cursor: wait; transform: none; }
    [data-theme="light"] .ideas-btn-add { border-color: rgba(0, 0, 0, 0.1); }
    [data-theme="light"] .ideas-btn-add:hover { background: rgba(0, 0, 0, 0.04); border-color: rgba(0, 0, 0, 0.22); }

    /* Recorded chip (per idea card) */
    .ideas-rec {
      display: inline-flex; align-items: center; gap: 5px;
      font-family: var(--font-mono);
      font-size: 10px; font-weight: 500;
      text-transform: uppercase;
      letter-spacing: 0.12em;
      padding: 3px 9px;
      border-radius: 5px;
      cursor: pointer;
      background: transparent;
      border: 1px solid rgba(255, 255, 255, 0.1);
      color: var(--ink-ghost);
      transition: color .15s, background .15s, border-color .15s;
    }
    .ideas-rec:hover {
      color: var(--ink-editorial);
      border-color: rgba(255, 255, 255, 0.2);
    }
    .ideas-rec.is-recorded {
      color: #5dcaa5;
      background: rgba(93, 202, 165, 0.1);
      border-color: rgba(93, 202, 165, 0.28);
    }
    .ideas-rec.is-recorded:hover {
      background: rgba(93, 202, 165, 0.16);
      border-color: rgba(93, 202, 165, 0.4);
    }
    .ideas-rec svg { flex-shrink: 0; }
    [data-theme="light"] .ideas-rec { border-color: rgba(0, 0, 0, 0.1); }
    [data-theme="light"] .ideas-rec:hover { border-color: rgba(0, 0, 0, 0.22); }

    /* v0.14.26 — Suggest Ideas Phase 1 ─────────────────────── */
    .ideas-tabs {
      display: flex; gap: 4px; margin: 0 0 18px;
      border-bottom: 1px solid var(--border);
    }
    .ideas-tab {
      background: none; border: none; cursor: pointer;
      padding: 10px 16px; font-size: .82rem; font-weight: 600;
      color: var(--text3); font-family: var(--font-body);
      border-bottom: 2px solid transparent;
      margin-bottom: -1px;
      transition: color .15s, border-color .15s;
    }
    .ideas-tab:hover { color: var(--text2); }
    .ideas-tab.on { color: var(--text); border-bottom-color: var(--brand-500); }
    [data-theme="light"] .ideas-tab.on { border-bottom-color: var(--brand-700); }

    /* v0.14.39: tabs nuevas reusables (Scripts + Settings) — replican patrón .ideas-tabs. */
    .scripts-tabs, .settings-tabs {
      display: flex; gap: 4px; margin: 0 0 var(--space-lg);
      border-bottom: 1px solid var(--border);
      flex-wrap: wrap;   /* FIX3: que las 5 tabs no se recorten nunca por ancho */
    }
    .scripts-tab, .settings-tab {
      background: none; border: none; cursor: pointer;
      padding: 10px 16px; font-size: .82rem; font-weight: 600;
      color: var(--text3); font-family: var(--font-body);
      border-bottom: 2px solid transparent;
      margin-bottom: -1px;
      transition: color .15s, border-color .15s;
    }
    .scripts-tab:hover, .settings-tab:hover { color: var(--text2); }
    .scripts-tab.on, .settings-tab.on { color: var(--text); border-bottom-color: var(--brand); }
    [data-theme="light"] .scripts-tab.on,
    [data-theme="light"] .settings-tab.on { border-bottom-color: var(--brand-700); }

    /* v0.14.39: filtro de proyectos como chips dentro de Scripts. */
    .scripts-proj-filter {
      display: flex; gap: 8px; flex-wrap: wrap;
      margin-bottom: var(--space-md);
    }
    .proj-chip {
      display: inline-flex; align-items: center; gap: 6px;
      padding: 6px 12px; border-radius: 20px;
      background: var(--surf2); border: 1px solid var(--border);
      color: var(--text2); font-size: .8rem; font-weight: 500;
      font-family: var(--font-body); cursor: pointer;
      transition: background .12s, border-color .12s, color .12s;
    }
    .proj-chip:hover { border-color: var(--brand); color: var(--text); }
    .proj-chip.on { background: var(--brand-cta); color: #fff; border-color: var(--brand-cta); }
    .proj-chip-new {
      background: transparent; border: 1px dashed var(--border);
      color: var(--text3);
    }
    .proj-chip-new:hover { color: var(--brand); border-color: var(--brand); }

    .ideas-suggest-empty {
      background: var(--surf); border: 1px solid var(--border);
      border-radius: var(--radius-xl); padding: var(--space-8) var(--space-6); text-align: center;
      max-width: 540px; margin: 0 auto;
    }
    .ideas-suggest-empty-title {
      font-family: var(--font-display); font-size: var(--text-2xl);
      letter-spacing: -.015em; line-height: 1.15; margin-bottom: 6px;
    }
    .ideas-suggest-empty-sub {
      font-size: var(--text-sm); color: var(--text3); margin-bottom: var(--space-4); line-height: 1.5;
    }
    .ideas-suggest-context {
      width: 100%; padding: 10px 12px; border-radius: var(--radius-md);
      background: var(--surf2); border: 1px solid var(--border);
      color: var(--text); font-family: inherit; font-size: var(--text-sm);
      resize: vertical; min-height: 56px; outline: none;
      margin-bottom: var(--space-4);
    }
    .ideas-suggest-context:focus { border-color: color-mix(in srgb, var(--brand-500) 60%, transparent); }
    .ideas-suggest-btn {
      padding: 12px 24px; border-radius: var(--radius-lg); border: 1px solid var(--brand-800);
      background: var(--brand-cta); color: #fff; font-weight: 700; font-size: .92rem;
      cursor: pointer; box-shadow: 0 4px 0 var(--brand-800);
      transition: transform .15s, box-shadow .15s, background .15s, opacity .15s;
    }
    .ideas-suggest-btn:hover:not(:disabled) {
      transform: translateY(-1px); background: var(--brand-800);
      box-shadow: 0 5px 0 var(--brand-800), 0 6px 18px color-mix(in srgb, var(--brand-500) 15%, transparent);
    }
    .ideas-suggest-btn:active:not(:disabled) {
      transform: scale(.98); opacity: .95; transition: transform .08s ease-out, opacity .08s ease-out;
    }
    .ideas-suggest-btn:disabled { opacity: .65; cursor: default; }
    .ideas-suggest-err {
      margin-top: 10px; font-size: var(--text-xs); color: var(--danger-fg); min-height: 0;
    }
    .ideas-suggest-err.on { min-height: 1.4em; }

    .ideas-suggest-head {
      display: flex; align-items: center; justify-content: space-between;
      margin-bottom: var(--space-4); gap: var(--space-3); flex-wrap: wrap;
    }
    .ideas-suggest-head-title {
      font-family: var(--font-display); font-size: var(--text-xl); letter-spacing: -.015em;
    }
    .ideas-suggest-more-btn {
      padding: 8px 14px; border-radius: var(--radius-md);
      background: color-mix(in srgb, var(--brand-500) 12%, transparent);
      border: 1px solid color-mix(in srgb, var(--brand-500) 30%, transparent);
      color: var(--brand-500); font-weight: 600; font-size: var(--text-xs); cursor: pointer;
      font-family: var(--font-body); transition: background .15s;
    }
    .ideas-suggest-more-btn:hover:not(:disabled) { background: color-mix(in srgb, var(--brand-500) 20%, transparent); }
    .ideas-suggest-more-btn:disabled { opacity: .55; cursor: default; }

    .ideas-suggest-grid {
      display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-4);
    }
    @media (max-width: 640px) {
      .ideas-suggest-grid { grid-template-columns: 1fr; gap: 10px; }
    }

    .idea-suggest-card {
      background: var(--surf); border: 1px solid var(--border);
      border-radius: var(--radius-xl); padding: var(--space-4);
      display: flex; gap: var(--space-4); align-items: flex-start;
      transition: border-color .15s, transform .25s ease, opacity .25s ease;
    }
    .idea-suggest-card:hover { border-color: color-mix(in srgb, var(--brand-500) 35%, transparent); }
    .idea-suggest-card.fading { opacity: 0; transform: translateY(-6px); }

    .idea-suggest-thumb {
      width: 72px; height: 72px; flex-shrink: 0;
      border-radius: 10px; overflow: hidden;
      background: var(--surf2); border: 1px solid var(--border);
      display: flex; align-items: center; justify-content: center;
    }
    .idea-suggest-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .idea-suggest-thumb-placeholder {
      color: var(--text3); opacity: .5;
    }

    .idea-suggest-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
    .idea-suggest-title {
      font-family: var(--font-display); font-size: 1.05rem;
      line-height: 1.2; letter-spacing: -.01em; color: var(--text);
    }
    .idea-suggest-hook {
      font-size: .82rem; color: var(--text2); line-height: 1.4;
      font-style: italic;
    }
    .idea-suggest-meta {
      display: flex; gap: 10px; flex-wrap: wrap;
      font-size: .68rem; color: var(--text3); letter-spacing: .02em;
      font-family: var(--font-mono);
      text-transform: uppercase; margin-top: 2px;
    }
    .idea-suggest-meta-style {
      padding: 2px 6px; border-radius: var(--radius-xs);
      background: color-mix(in srgb, var(--brand-500) 12%, transparent); color: var(--brand-500);
    }
    .idea-suggest-source { font-size: .7rem; color: var(--text3); }
    .idea-suggest-actions {
      display: flex; gap: 6px; margin-top: 8px;
    }
    .idea-suggest-act {
      flex: 1; padding: 7px 10px; border-radius: 8px;
      font-size: .76rem; font-weight: 600; cursor: pointer;
      font-family: var(--font-body); transition: background .15s;
    }
    .idea-suggest-act-save {
      background: var(--brand-cta); color: #fff; border: 1px solid var(--brand-800);
    }
    .idea-suggest-act-save:hover:not(:disabled) { background: var(--brand-800); }
    .idea-suggest-act-save:disabled { opacity: .55; cursor: default; }
    .idea-suggest-act-discard {
      background: transparent; color: var(--text3);
      border: 1px solid var(--border);
    }
    .idea-suggest-act-discard:hover { color: var(--text2); border-color: rgba(255,255,255,.18); }

    /* Ideas list ─────────────────────────────────────────── */
    .ideas-list { display: flex; flex-direction: column; gap: 16px; }
    .ideas-card {
      position: relative;
      background: var(--surface-raised);
      border: 1px solid var(--border-subtle);
      border-radius: 16px;
      padding: var(--space-5) var(--space-6);
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.04),
        0 4px 16px rgba(0, 0, 0, 0.3);
      transition: transform .22s, box-shadow .22s, border-color .22s;
    }
    .ideas-card:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(0,0,0,.12);
      border-color: var(--border-strong);
    }
    [data-theme="light"] .ideas-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.08); }
    .ideas-card.is-draft { border-left: 3px solid var(--brand-500); }
    .ideas-card.is-draft:hover {
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        0 10px 28px rgba(0, 0, 0, 0.42),
        0 0 40px color-mix(in srgb, var(--brand-500) 8%, transparent);
    }
    .ideas-card.is-developed { border: 1px solid rgba(93, 202, 165, 0.18); }
    .ideas-card.is-scripted { opacity: 0.72; }
    .ideas-card.is-scripted:hover { opacity: 0.88; }

    .ideas-card-head {
      display: flex; align-items: center; gap: 10px;
      flex-wrap: wrap;
      margin-bottom: 10px;
    }
    .ideas-badge {
      display: inline-flex; align-items: center; gap: 5px;
      font-family: var(--font-mono);
      font-size: 10px; font-weight: 500;
      text-transform: uppercase;
      letter-spacing: 0.12em;
      padding: 3px 9px;
      border-radius: 5px;
      flex-shrink: 0;
    }
    .ideas-badge.b-draft { color: var(--brand-500); background: color-mix(in srgb, var(--brand-500) 10%, transparent); }
    .ideas-badge.b-developed { color: var(--ideas-dev); background: rgba(93, 202, 165, 0.1); }
    .ideas-badge.b-scripted { color: var(--ink-muted); background: rgba(138, 126, 114, 0.1); }
    .ideas-badge svg { flex-shrink: 0; }

    .ideas-cat {
      display: inline-flex; align-items: center;
      font-family: var(--font-mono);
      font-size: 10px; font-weight: 500;
      text-transform: uppercase;
      letter-spacing: 0.1em;
      padding: 3px 9px;
      border-radius: 5px;
    }
    .ideas-cat.cat-motivation   { color: var(--brand-500); background: rgba(79, 124, 255, 0.1); }
    .ideas-cat.cat-humor        { color: #f0997b; background: rgba(240, 153, 123, 0.1); }
    .ideas-cat.cat-educational  { color: #85b7eb; background: rgba(133, 183, 235, 0.1); }
    .ideas-cat.cat-tutorial     { color: #85b7eb; background: rgba(133, 183, 235, 0.1); }
    .ideas-cat.cat-storytelling { color: #c89968; background: rgba(200, 153, 104, 0.1); }
    .ideas-cat.cat-opinion      { color: #b5a0ec; background: rgba(181, 160, 236, 0.1); }
    .ideas-cat.cat-case_study   { color: #b5a0ec; background: rgba(181, 160, 236, 0.1); }
    .ideas-cat.cat-trend        { color: #ff6b3d; background: rgba(255, 107, 61, 0.1); }
    .ideas-cat.cat-behind_scenes{ color: #c4b896; background: rgba(196, 184, 150, 0.08); }
    .ideas-cat.cat-list         { color: #5dcaa5; background: rgba(93, 202, 165, 0.08); }
    .ideas-cat.cat-default      { color: var(--ink-cream); background: rgba(196, 184, 150, 0.08); }

    .ideas-card-title {
      font-family: var(--font-editorial);
      font-size: var(--text-xl); font-weight: 500;
      line-height: 1.22;
      letter-spacing: -0.01em;
      color: var(--ink-editorial);
      flex: 1; min-width: 0;
    }
    .ideas-card.is-scripted .ideas-card-title { color: #b8ad9c; }
    .ideas-card-date {
      font-family: var(--font-mono);
      font-size: 11px;
      color: var(--ink-ghost);
      letter-spacing: 0.05em;
      margin-left: auto;
      flex-shrink: 0;
    }
    .ideas-card-raw {
      font-family: var(--font-body);
      font-size: 14px; line-height: 1.55;
      color: var(--ink-muted);
      margin-bottom: var(--space-4);
    }
    .ideas-card.is-scripted .ideas-card-raw {
      font-size: 13px;
      color: var(--ink-ghost);
      margin-bottom: 12px;
    }
    .ideas-develop-block {
      margin: 12px 0 14px;
      padding: 14px 16px 14px 18px;
      background: rgba(0, 0, 0, 0.22);
      border-radius: 10px;
      border-left: 2px solid rgba(93, 202, 165, 0.3);
      display: flex; flex-direction: column; gap: 12px;
    }
    .ideas-develop-lbl {
      font-family: var(--font-mono);
      font-size: 10px; font-weight: 500;
      text-transform: uppercase;
      letter-spacing: 0.14em;
      color: var(--ideas-dev);
      margin-bottom: 6px;
      display: block;
    }
    .ideas-develop-text {
      font-family: var(--font-editorial);
      font-size: 14.5px;
      line-height: 1.55;
      color: var(--ink-body);
      font-weight: 400;
    }
    .ideas-develop-text.italic {
      font-style: italic;
      color: var(--ink-cream);
    }
    .ideas-card-acts {
      display: flex; flex-wrap: wrap; gap: 8px;
      margin-top: 4px;
    }
    .ideas-act {
      display: inline-flex; align-items: center; gap: 6px;
      padding: 7px 14px;
      border-radius: 8px;
      font-family: var(--font-body);
      font-size: 13px; font-weight: 500;
      cursor: pointer;
      transition: background .15s, border-color .15s, color .15s, transform .15s;
      border: 1px solid transparent;
      background: transparent;
      color: var(--ink-muted);
    }
    /* v0.14.28: selector de asistente al lado del botón Guionizar */
    .ideas-guionizar-asst {
      padding: 6px 10px; border-radius: 8px;
      background: var(--surf2); border: 1px solid var(--border);
      color: var(--text); font-family: var(--font-body);
      font-size: 12.5px; cursor: pointer; outline: none;
      transition: border-color .15s;
    }
    .ideas-guionizar-asst:hover { border-color: rgba(255,255,255,.18); }
    .ideas-guionizar-asst:focus { border-color: color-mix(in srgb, var(--brand-500) 60%, transparent); }
    .ideas-act:hover { transform: translateY(-1px); }
    .ideas-act.primary-orange {
      background: color-mix(in srgb, var(--brand-500) 12%, transparent);
      color: var(--brand-500);
      border-color: color-mix(in srgb, var(--brand-500) 25%, transparent);
    }
    .ideas-act.primary-orange:hover {
      background: color-mix(in srgb, var(--brand-500) 18%, transparent);
      border-color: color-mix(in srgb, var(--brand-500) 40%, transparent);
    }
    .ideas-act.primary-green {
      background: var(--ideas-dev-soft);
      color: var(--ideas-dev);
      border-color: var(--ideas-dev-border);
    }
    .ideas-act.primary-green:hover {
      background: rgba(93, 202, 165, 0.18);
      border-color: rgba(93, 202, 165, 0.4);
    }
    .ideas-act.ghost { border-color: rgba(255, 255, 255, 0.08); }
    .ideas-act.ghost:hover {
      border-color: rgba(255, 255, 255, 0.18);
      color: var(--ink-editorial);
    }
    .ideas-act.danger:hover { color: var(--danger-fg); border-color: var(--danger-border); }
    .ideas-act svg { flex-shrink: 0; }

    .ideas-scripted-pointer {
      display: inline-flex; align-items: center; gap: 8px;
      font-family: var(--font-mono);
      font-size: 10.5px; font-weight: 500;
      text-transform: uppercase;
      letter-spacing: 0.14em;
      color: var(--ideas-dev);
      background: none; border: none;
      padding: 2px 0;
      cursor: pointer;
      transition: gap .2s, color .15s;
    }
    .ideas-scripted-pointer:hover { gap: 12px; color: var(--ideas-dev); }

    /* ── v0.15.3: tab Competidores ──────────────────────────── */
    .comp-toolbar {
      display: flex; align-items: center; gap: var(--space-md);
      flex-wrap: wrap; margin-bottom: var(--space-md);
    }
    .comp-chips {
      display: flex; gap: 6px; flex-wrap: wrap; flex: 1; min-width: 0;
    }
    .comp-chip {
      position: relative;
      display: inline-flex; align-items: center; gap: 6px;
      padding: 6px 12px;
      border-radius: var(--radius-md);
      border: 1px solid var(--border);
      background: var(--surf);
      color: var(--text2);
      font-size: var(--text-xs);
      font-family: var(--font-body);
      cursor: pointer;
      transition: border-color .15s, color .15s, background .15s;
    }
    .comp-chip:hover { border-color: color-mix(in srgb, var(--brand-500) 40%, transparent); color: var(--text); }
    .comp-chip.on {
      border-color: var(--brand);
      color: var(--brand);
      background: color-mix(in srgb, var(--brand-500) 8%, transparent);
    }
    .comp-chip-username { font-weight: 500; }
    .comp-chip-badge {
      font-size: .62rem; font-weight: 700;
      padding: 2px 6px;
      border-radius: 4px;
      text-transform: uppercase;
      letter-spacing: .04em;
    }
    .comp-chip-badge.is-scraping { background: color-mix(in srgb, var(--brand-500) 18%, transparent); color: var(--brand); }
    .comp-chip-badge.is-private,
    .comp-chip-badge.is-not_found { background: color-mix(in srgb, var(--danger) 15%, transparent); color: var(--danger-fg); }
    .comp-chip-badge.is-failed { background: var(--surf2); color: var(--text3); }
    .comp-chip-remove {
      width: 14px; height: 14px;
      border: 0; background: transparent;
      color: var(--text3); cursor: pointer;
      font-size: 1rem; line-height: 1;
      padding: 0; margin-left: 2px;
      opacity: 0; transition: opacity .15s, color .15s;
    }
    .comp-chip:hover .comp-chip-remove { opacity: 1; }
    .comp-chip-remove:hover { color: var(--danger-fg); }
    .comp-chip.is-all .comp-chip-remove { display: none; }
    /* v0.16.x Radar — barra de estado FOMO sobre el feed de competidores. */
    .radar-stats {
      display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px;
      padding: 12px 16px;
      margin-bottom: var(--space-md);
      border: 1px solid var(--border);
      border-radius: var(--radius-lg);
      background: var(--surf);
      background: linear-gradient(135deg, color-mix(in srgb, var(--brand) 8%, var(--surf)), var(--surf));
      font-size: var(--text-sm);
      color: var(--text2);
    }
    .radar-stat { display: inline-flex; align-items: baseline; gap: 5px; }
    .radar-stat-num { font-weight: 700; font-size: 1.05rem; color: var(--text); font-family: var(--font-display, var(--font-body)); }
    .radar-stat.is-hot .radar-stat-num { color: var(--brand); }
    .radar-stat-cta { margin-left: auto; font-weight: 600; color: var(--brand); }
    /* Badge de explosión sobre el thumbnail del reel. */
    .comp-reel-explosion {
      position: absolute; top: 8px; left: 8px; z-index: 2;
      display: inline-flex; align-items: center; gap: 3px;
      padding: 3px 8px; border-radius: 999px;
      background: rgba(0,0,0,.72); color: #fff;
      font-size: .72rem; font-weight: 700; line-height: 1;
      backdrop-filter: blur(4px);
      box-shadow: 0 1px 4px rgba(0,0,0,.3);
    }
    .comp-reel-explosion.is-mega { background: linear-gradient(135deg, #ff5e3a, #ff2d55); }
    .comp-sort-bar {
      display: flex; gap: 4px;
      margin-bottom: var(--space-md);
      flex-wrap: wrap;
    }
    .comp-sort-btn {
      padding: 5px 12px;
      border-radius: var(--radius-md);
      border: 1px solid var(--border);
      background: var(--surf);
      color: var(--text2);
      font-size: var(--text-xs);
      cursor: pointer;
      font-family: var(--font-body);
      transition: all .15s;
    }
    .comp-sort-btn:hover { color: var(--text); }
    .comp-sort-btn.on {
      background: var(--brand); color: #fff;
      border-color: var(--brand);
    }
    /* v0.16.x Radar: CTA "Llena mi semana" — empujado a la derecha de la barra. */
    .comp-fillweek-btn {
      margin-left: auto;
      padding: 6px 14px;
      border-radius: var(--radius-md);
      border: 1px solid color-mix(in srgb, var(--brand) 45%, transparent);
      background: color-mix(in srgb, var(--brand) 12%, var(--surf));
      color: var(--brand);
      font-weight: 700;
      font-size: var(--text-xs);
      cursor: pointer;
      font-family: var(--font-body);
      white-space: nowrap;
      transition: all .15s;
    }
    .comp-fillweek-btn:hover { background: var(--brand); color: #fff; border-color: var(--brand); }
    .comp-fillweek-btn:disabled { opacity: .6; cursor: default; }

    /* ════════════════════════════════════════════════════════════════
       v0.16.x RESTYLE PREMIUM — dark SaaS moderno (Linear/Vercel).
       Bloque aditivo: realza el Radar sin reescribir las reglas base.
       ════════════════════════════════════════════════════════════════ */
    /* Profundidad del workspace: glow de marca arriba sobre near-black. */
    #profilePage {
      background:
        radial-gradient(1100px 520px at 50% -8%, color-mix(in srgb, var(--brand-500) 11%, transparent), transparent 62%),
        var(--surface-base);
    }
    /* Barra FOMO — borde con glow sutil + hairline interior. */
    .radar-stats {
      border-color: color-mix(in srgb, var(--brand-500) 22%, transparent);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
    }
    /* Tarjetas del feed — superficie elevada + hover con glow de marca. */
    .comp-reel-card {
      background: linear-gradient(180deg, color-mix(in srgb, #fff 3%, var(--surface-raised)), var(--surface-raised));
      border-color: var(--border-subtle);
      box-shadow: var(--shadow-md);
    }
    .comp-reel-card:hover {
      transform: translateY(-3px);
      border-color: color-mix(in srgb, var(--brand-500) 45%, transparent);
      box-shadow: var(--shadow-lg), 0 0 0 1px color-mix(in srgb, var(--brand-500) 22%, transparent),
                  0 14px 44px color-mix(in srgb, var(--brand-500) 13%, transparent);
    }
    /* "Hazlo mío" = acción estrella → relleno degradado, que destaque. */
    .comp-reel-genscript-btn {
      background: var(--grad2); color: #fff; border-color: transparent;
      box-shadow: 0 2px 14px color-mix(in srgb, var(--brand-500) 32%, transparent);
    }
    .comp-reel-genscript-btn:hover:not(:disabled) {
      background: var(--grad2); border-color: transparent; filter: brightness(1.08);
    }
    .comp-reel-genscript-caret {
      background: color-mix(in srgb, var(--brand-700) 92%, #000); color: #fff; border-color: transparent;
    }
    /* Badge explosión mega — glow rojo neón. */
    .comp-reel-explosion.is-mega { box-shadow: 0 0 18px rgba(255,45,85,.55), 0 1px 4px rgba(0,0,0,.45); }
    /* Sort pill activa — glow de marca. */
    .comp-sort-btn.on { box-shadow: 0 0 16px color-mix(in srgb, var(--brand-500) 35%, transparent); }
    /* "Llena mi semana" — degradado de marca a juego con "Hazlo mío". */
    .comp-fillweek-btn {
      background: var(--grad2); color: #fff; border-color: transparent;
      box-shadow: 0 2px 12px color-mix(in srgb, var(--brand-500) 28%, transparent);
    }
    .comp-fillweek-btn:hover { background: var(--grad2); color: #fff; border-color: transparent; filter: brightness(1.08); }
    /* Nav lateral — item activo con acento lateral premium. */
    .chrome-nav-item.on { box-shadow: inset 2px 0 0 var(--brand-500); }

    .comp-feed {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
      gap: var(--space-md);
    }
    .comp-reel-card {
      position: relative;
      background: var(--surf);
      border: 1px solid var(--border);
      border-radius: var(--radius-lg);
      overflow: hidden;
      transition: transform .15s ease-out, box-shadow .15s, border-color .15s;
      cursor: default;
    }
    .comp-reel-card:hover {
      transform: translateY(-2px);
      border-color: color-mix(in srgb, var(--brand-500) 30%, transparent);
      box-shadow: 0 8px 24px rgba(0,0,0,.12);
    }
    .comp-reel-thumb {
      width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block;
      background: var(--surf2);
    }
    .comp-reel-thumb-empty {
      width: 100%; aspect-ratio: 4/5;
      background: linear-gradient(135deg,
        color-mix(in srgb, var(--brand-500) 12%, transparent),
        color-mix(in srgb, var(--brand-500) 4%, transparent));
      display: flex; align-items: center; justify-content: center;
      color: var(--text3); font-size: 2rem;
    }
    .comp-reel-body { padding: var(--space-md); }
    .comp-reel-owner {
      font-size: .72rem; color: var(--text3);
      margin-bottom: 6px; font-weight: 600;
      text-transform: lowercase; letter-spacing: .02em;
    }
    .comp-reel-caption {
      font-size: .85rem; color: var(--text);
      line-height: 1.4;
      display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
      overflow: hidden;
      min-height: 3.6em;
      margin-bottom: 10px;
    }
    .comp-reel-meta {
      display: flex; gap: 12px;
      font-size: .72rem; color: var(--text3);
      font-variant-numeric: tabular-nums;
    }
    .comp-reel-meta span { display: inline-flex; align-items: center; gap: 3px; }
    .comp-reel-meta-date { margin-left: auto; }
    /* v0.15.5: botón generar guion desde reel competidor.
       v0.15.7: split button (label + caret) con <select> nativo oculto. */
    .comp-reel-genscript-split {
      position: relative;
      display: flex;
      margin-top: 10px;
      width: 100%;
    }
    .comp-reel-genscript-btn {
      flex: 1;
      padding: 8px 12px;
      background: color-mix(in srgb, var(--brand-500) 8%, transparent);
      color: var(--brand);
      border: 1px solid color-mix(in srgb, var(--brand-500) 25%, transparent);
      border-radius: var(--radius-md) 0 0 var(--radius-md);
      border-right: none;
      font-size: var(--text-xs);
      font-weight: 600;
      font-family: var(--font-body);
      cursor: pointer;
      transition: background .15s, border-color .15s;
    }
    .comp-reel-genscript-btn:hover:not(:disabled) {
      background: color-mix(in srgb, var(--brand-500) 16%, transparent);
      border-color: var(--brand);
    }
    .comp-reel-genscript-btn:disabled { opacity: .7; cursor: default; }
    .comp-reel-genscript-caret {
      width: 32px;
      padding: 0;
      background: color-mix(in srgb, var(--brand-500) 8%, transparent);
      color: var(--brand);
      border: 1px solid color-mix(in srgb, var(--brand-500) 25%, transparent);
      border-radius: 0 var(--radius-md) var(--radius-md) 0;
      font-size: .7rem;
      font-weight: 700;
      font-family: var(--font-body);
      cursor: pointer;
      transition: background .15s, border-color .15s;
      display: inline-flex; align-items: center; justify-content: center;
    }
    .comp-reel-genscript-caret:hover:not(:disabled) {
      background: color-mix(in srgb, var(--brand-500) 16%, transparent);
      border-color: var(--brand);
    }
    .comp-reel-genscript-caret:disabled { opacity: .7; cursor: default; }
    /* v0.15.7: select nativo invisible — el caret invoca showPicker(). */
    .comp-reel-asst-picker {
      position: absolute;
      inset: 0;
      width: 100%; height: 100%;
      opacity: 0;
      pointer-events: none;
      border: 0;
    }
    @media (max-width: 480px) {
      .comp-reel-genscript-caret { width: 36px; }
    }
    /* v0.15.9: botón secundario "guardar como idea" — link discreto bajo el split. */
    .comp-reel-saveidea-btn {
      width: 100%;
      margin-top: 6px;
      padding: 6px 0;
      background: transparent;
      color: var(--text2);
      border: none;
      font-size: .72rem;
      font-family: var(--font-body);
      cursor: pointer;
      text-align: center;
      transition: color .15s;
    }
    .comp-reel-saveidea-btn:hover:not(:disabled) {
      color: var(--brand);
      text-decoration: underline;
    }
    .comp-reel-saveidea-btn:disabled { opacity: .6; cursor: default; }
    .comp-reel-saveidea-btn.is-done { color: var(--success); }
    /* v0.15.6: botón favorito flotante sobre el thumb. */
    .comp-reel-fav-btn {
      position: absolute;
      top: 8px; right: 8px;
      width: 32px; height: 32px;
      display: inline-flex; align-items: center; justify-content: center;
      background: rgba(0,0,0,.45);
      color: rgba(255,255,255,.85);
      border: none;
      border-radius: 50%;
      font-size: 1rem;
      cursor: pointer;
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
      transition: background .15s, color .15s, transform .15s;
      z-index: 2;
    }
    .comp-reel-fav-btn:hover { background: rgba(0,0,0,.65); transform: scale(1.08); }
    .comp-reel-fav-btn.is-fav { color: #f9b023; background: rgba(0,0,0,.55); }
    .comp-reel-fav-btn:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
    [data-theme="light"] .comp-reel-fav-btn { background: rgba(255,255,255,.85); color: rgba(0,0,0,.6); }
    [data-theme="light"] .comp-reel-fav-btn:hover { background: rgba(255,255,255,.95); }
    [data-theme="light"] .comp-reel-fav-btn.is-fav { color: #d97706; }
    /* v0.15.6: chip "★ Favoritos" en toolbar (excluyente con chips de creator). */
    .comp-chip.is-favs.on { background: color-mix(in srgb, var(--brand-500) 18%, transparent); border-color: var(--brand); color: var(--brand); }
    .comp-reel-genscript-btn.is-done {
      background: var(--success-bg);
      color: var(--success);
      border-color: var(--success-border);
    }
    .comp-empty {
      grid-column: 1 / -1;
      text-align: center;
      padding: 56px var(--space-6);
      border: 1px dashed color-mix(in srgb, var(--brand-500) 18%, transparent);
      border-radius: 18px;
      background: color-mix(in srgb, var(--brand-500) 3%, transparent);
    }
    .comp-empty img {
      width: 80px; height: 80px;
      image-rendering: pixelated;
      margin: 0 auto var(--space-4);
      display: block;
      filter: drop-shadow(0 0 18px color-mix(in srgb, var(--brand-500) 22%, transparent));
    }
    .comp-empty-title {
      font-family: var(--font-display);
      font-size: var(--text-2xl); color: var(--text);
      margin-bottom: var(--space-2); line-height: 1.2;
      letter-spacing: -.015em;
    }
    .comp-empty-sub {
      font-size: var(--text-base); color: var(--text2);
      line-height: 1.5; max-width: 420px;
      margin: 0 auto var(--space-4);
    }
    /* Skeleton para feed mientras carga. */
    .comp-skel-card {
      background: var(--surf); border: 1px solid var(--border);
      border-radius: var(--radius-lg); overflow: hidden;
    }
    .comp-skel-thumb {
      width: 100%; aspect-ratio: 4/5;
      background: rgba(255,255,255,.04);
      animation: skelPulse 1.4s ease-in-out infinite;
    }
    [data-theme="light"] .comp-skel-thumb { background: rgba(0,0,0,.04); }
    @media (max-width: 640px) {
      .comp-feed { grid-template-columns: repeat(2, 1fr); gap: var(--space-sm); }
      .comp-reel-body { padding: var(--space-sm); }
      .comp-reel-caption { font-size: .78rem; min-height: 2.5em; -webkit-line-clamp: 2; }
    }

    /* Empty state */
    .ideas-empty-editorial {
      text-align: center;
      padding: var(--space-12) 28px;
      border: 1px dashed color-mix(in srgb, var(--brand-500) 18%, transparent);
      border-radius: 18px;
      background: color-mix(in srgb, var(--brand-500) 3%, transparent);
    }
    /* v0.14.41: mascota Hooks 80×80 en empty state Ideas. */
    .ideas-empty-mascot {
      width: 80px; height: 80px;
      image-rendering: pixelated;
      margin: 0 auto 16px;
      display: block;
      filter: drop-shadow(0 0 18px color-mix(in srgb, var(--brand-500) 22%, transparent));
    }
    .ideas-empty-editorial h3 {
      font-family: var(--font-editorial);
      font-size: 24px;
      font-weight: 500;
      font-style: italic;
      color: var(--ink-editorial);
      margin-bottom: 10px;
      letter-spacing: -0.01em;
    }
    .ideas-empty-editorial p {
      font-family: var(--font-body);
      font-size: 14px; line-height: 1.55;
      color: var(--ink-muted);
      max-width: 48ch;
      margin: 0 auto;
    }


    /* Responsive ─────────────────────────────────────── */
    @media (max-width: 820px) {
      .ideas-input-body { flex-direction: column; gap: 14px; }
      .ideas-input-col-right { width: 100%; }
      .ideas-btn-develop { width: 100%; justify-content: center; }
      .ideas-card { padding: 18px 18px; }
      .ideas-card-title { font-size: 18px; flex-basis: 100%; order: 1; }
      .ideas-card-date { margin-left: 0; order: 2; }
    }
    @media (max-width: 480px) {
      .ideas-input-card { padding: 18px 16px; }
      .ideas-develop-block { padding: 12px 14px; }
      .ideas-act { font-size: 12.5px; padding: 6px 12px; }
      /* Mobile: softer glow so the orange halo doesn't bleed into the next card */
      .ideas-btn-develop {
        box-shadow: 0 3px 12px rgba(79, 124, 255, 0.22),
                    0 1px 0 rgba(255, 255, 255, 0.2) inset;
      }
      .ideas-btn-develop:hover {
        box-shadow: 0 4px 16px rgba(79, 124, 255, 0.3),
                    0 1px 0 rgba(255, 255, 255, 0.2) inset;
      }
    }

    /* Light theme — invert paper ───────────────────────── */
    [data-theme="light"] #profPanelIdeas {
      --ink-editorial: #1a140f;
      --ink-muted: #6b5f52;
      --ink-cream: #5a4f42;
      --ink-ghost: #8a7e72;
      --ink-body: #2a2319;
    }
    [data-theme="light"] .ideas-input-card,
    [data-theme="light"] .ideas-card {
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.6),
        0 4px 16px rgba(180, 150, 100, 0.12);
    }
    [data-theme="light"] .ideas-develop-block { background: rgba(255, 255, 255, 0.5); }
    /* Hardcoded light-beige text was invisible on cream bg. Dark text for light theme. */
    [data-theme="light"] .ideas-card.is-scripted .ideas-card-title { color: #6b5f52; }
    [data-theme="light"] .ideas-develop-text.italic { color: #2a2319; }
    [data-theme="light"] .ideas-cat.cat-behind_scenes {
      color: #5a4f42;
      background: rgba(90, 79, 66, 0.08);
    }

    /* ── Transcriptions panel redesign (v0.13.4) ───────────────── */

    #profPanelTransc { position: relative; }

    /* v0.14.32: Transcribir hero decorativo eliminado. */

    .trans-plat-pill {
      background: var(--surf2);
      padding: 2px 8px;
      border-radius: 6px;
      font-weight: 600;
      color: var(--text2);
    }
    .trans-input-status {
      display: flex; align-items: center; gap: 10px;
      padding: 10px 12px; border-radius: 8px;
      background: rgba(79,124,255,.06); border: 1px solid rgba(79,124,255,.2);
      font-size: .82rem; color: var(--text2);
    }
    .trans-input-status.is-error { background: rgba(239,68,68,.07); border-color: rgba(239,68,68,.25); color: #fca5a5; }
    .trans-input-status.is-ok { background: rgba(34,197,94,.07); border-color: rgba(34,197,94,.25); color: #86efac; }
    .panel-transc-spinner {
      width: 14px; height: 14px; border-radius: 50%;
      border: 2px solid rgba(79,124,255,.25);
      border-top-color: var(--brand-500);
      animation: ptSpin .8s linear infinite;
      flex-shrink: 0;
    }
    @keyframes ptSpin { to { transform: rotate(360deg); } }

    /* Card metrics chips */
    .trans-metrics {
      display: flex; gap: 8px; flex-wrap: wrap; align-items: center;
      margin: 6px 0 10px;
      position: relative;
    }
    .trans-metric {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 4px 10px; border-radius: 999px;
      background: var(--surf); border: 1px solid var(--border);
      font-size: .76rem; color: var(--text2);
      font-variant-numeric: tabular-nums;
    }
    .trans-metric svg { width: 12px; height: 12px; opacity: .7; }
    .trans-metric.muted { color: var(--text3); opacity: .65; }
    .trans-metric.muted .trans-metric-num { font-family: var(--font-mono); }
    .trans-metric-num { font-weight: 600; color: var(--text); }
    .trans-metric.muted .trans-metric-num { color: var(--text3); font-weight: 400; }
    .trans-metrics-time {
      font-family: var(--font-mono); font-size: .68rem; color: var(--text3);
      margin-left: auto;
    }
    .trans-refresh {
      display: inline-flex; align-items: center; justify-content: center;
      width: 26px; height: 26px; border-radius: 8px;
      background: transparent; border: 1px solid var(--border); cursor: pointer;
      color: var(--text3); flex-shrink: 0;
      transition: color .15s, border-color .15s, background .15s;
    }
    .trans-refresh:hover { color: var(--brand-300); border-color: rgba(79,124,255,.4); background: rgba(79,124,255,.06); }
    .trans-refresh.is-busy svg { animation: ptSpin 1s linear infinite; }
    .trans-refresh:disabled { opacity: .5; cursor: default; }

    /* Paywall blur for free plan */
    .trans-metrics.is-locked .trans-metric { filter: blur(5px); user-select: none; pointer-events: none; }
    .trans-metrics-paywall {
      position: absolute; inset: 0; z-index: 2;
      display: flex; align-items: center; justify-content: center; gap: 6px;
      background: linear-gradient(90deg, rgba(0,0,0,.35), rgba(0,0,0,.15));
      backdrop-filter: blur(2px);
      border-radius: 8px; cursor: pointer;
      color: var(--text); font-size: .76rem; font-weight: 600;
      border: 0; font-family: var(--font-body);
    }
    .trans-metrics-paywall:hover { color: var(--brand-300); }
    [data-theme="light"] .trans-metrics-paywall {
      background: linear-gradient(90deg, rgba(255,255,255,.65), rgba(255,255,255,.4));
    }

    /* TikTok no-metrics state */
    .trans-metrics.is-tiktok-empty {
      font-size: .72rem; color: var(--text3); font-style: italic;
      padding: 4px 0;
    }


    /* Cards */
    .trans-list { display: flex; flex-direction: column; gap: var(--space-6); }
    .trans-card {
      position: relative;
      background: var(--surface-raised);
      border: 1px solid var(--border-default);
      border-radius: var(--radius-lg);
      padding: 20px 24px;
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.04),
        0 4px 16px rgba(0, 0, 0, 0.3);
      transition: transform .22s, box-shadow .22s, border-color .22s;
    }
    .trans-card:hover {
      transform: translateY(-2px);
      border-color: var(--border-strong);
      box-shadow: 0 8px 24px rgba(0,0,0,.12);
    }
    [data-theme="light"] .trans-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.08); }
    .trans-card.trans-card-highlight {
      border-color: rgba(79, 124, 255, 0.5);
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        0 0 0 3px rgba(79, 124, 255, 0.25),
        0 12px 36px rgba(0, 0, 0, 0.45),
        0 0 60px rgba(79, 124, 255, 0.2);
      transition: border-color .2s ease-in, box-shadow .2s ease-in;
    }
    .trans-card-top {
      display: flex;
      align-items: flex-start;
      gap: 16px;
      margin-bottom: 14px;
    }
    .trans-card-content { flex: 1; min-width: 0; }
    .trans-card-content .trans-card-head { margin-bottom: 0; }

    .trans-thumb {
      width: 80px;
      height: calc(80px * 16 / 9);
      border-radius: 10px;
      object-fit: cover;
      border: 1px solid rgba(255, 255, 255, 0.08);
      flex-shrink: 0;
      overflow: hidden;
      background: rgba(0, 0, 0, 0.22);
      display: block;
    }
    .trans-thumb-empty {
      display: flex;
      align-items: center;
      justify-content: center;
      background:
        linear-gradient(135deg,
          rgba(79, 124, 255, 0.16) 0%,
          rgba(79, 124, 255, 0.04) 100%);
      color: var(--ink-ghost);
    }
    .trans-thumb-empty svg { opacity: .7; }
    [data-theme="light"] .trans-thumb-empty {
      background:
        linear-gradient(135deg,
          rgba(79, 124, 255, 0.18) 0%,
          rgba(79, 124, 255, 0.05) 100%);
    }

    .trans-card-header {
      display: flex; align-items: baseline; gap: 14px;
      margin-bottom: 10px;
    }
    .trans-title {
      flex: 1; min-width: 0;
      font-family: var(--font-editorial);
      font-size: 20px; font-weight: 500;
      line-height: 1.25;
      letter-spacing: -0.01em;
      color: var(--ink-editorial);
      margin: 0;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }
    .trans-title-meta {
      font-family: var(--font-mono);
      font-size: 11px; color: var(--ink-ghost);
      letter-spacing: 0.04em;
      white-space: nowrap;
      flex-shrink: 0;
    }
    .trans-card-head {
      display: flex; align-items: center; gap: 10px;
      flex-wrap: wrap;
      margin-bottom: 14px;
    }
    .trans-plat {
      display: inline-flex; align-items: center; gap: 6px;
      font-family: var(--font-mono);
      font-size: 10px; font-weight: 500;
      text-transform: uppercase;
      letter-spacing: 0.12em;
      padding: 3px 9px;
      border-radius: 5px;
      flex-shrink: 0;
    }
    .trans-plat.p-instagram {
      color: var(--brand-500);
      background: color-mix(in srgb, var(--brand-500) 8%, transparent);
      border: 1px solid rgba(79, 124, 255, 0.18);
    }
    .trans-plat.p-tiktok {
      color: var(--ink-cream);
      background: rgba(255, 255, 255, 0.04);
      border: 1px solid rgba(255, 255, 255, 0.1);
    }
    .trans-plat svg { flex-shrink: 0; }
    .trans-url {
      display: inline-flex; align-items: center; gap: 5px;
      font-family: var(--font-mono);
      font-size: 11px; font-weight: 400;
      color: var(--ink-muted);
      text-decoration: none;
      max-width: 240px;
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
      transition: color .15s, gap .2s;
    }
    .trans-url:hover { color: var(--brand-500); gap: 7px; }
    .trans-url svg { flex-shrink: 0; opacity: .7; }
    /* T3 (isla-v2): autor del reel analizado, junto a la plataforma. */
    .trans-author {
      display: inline-flex; align-items: center;
      font-family: var(--font-mono);
      font-size: 11px; font-weight: 500;
      color: var(--ink-cream);
      padding: 2px 8px; border-radius: 5px;
      background: rgba(255, 255, 255, 0.05);
      border: 1px solid rgba(255, 255, 255, 0.08);
      flex-shrink: 0;
    }
    [data-theme="light"] .trans-author { background: rgba(0,0,0,.04); border-color: rgba(0,0,0,.08); }
    .trans-meta {
      display: inline-flex; align-items: center; gap: 8px;
      font-family: var(--font-mono);
      font-size: 11px; color: var(--ink-ghost);
      letter-spacing: 0.04em;
      margin-left: auto;
      flex-shrink: 0;
    }
    .trans-meta-sep { opacity: .5; }

    .trans-preview-wrap {
      position: relative;
      margin-bottom: 12px;
      cursor: pointer;
    }
    .trans-preview {
      font-family: var(--font-body);
      font-size: 14px; line-height: 1.6;
      color: var(--ink-body);
      font-weight: 300;
      display: -webkit-box;
      -webkit-line-clamp: 3;
      -webkit-box-orient: vertical;
      overflow: hidden;
      -webkit-mask-image: linear-gradient(180deg, #000 60%, rgba(0,0,0,0.3) 100%);
              mask-image: linear-gradient(180deg, #000 60%, rgba(0,0,0,0.3) 100%);
      transition: color .15s;
    }
    .trans-preview-wrap:hover .trans-preview { color: var(--ink-editorial); }
    .trans-expand {
      display: inline-flex; align-items: center; gap: 6px;
      margin-top: 8px;
      font-family: var(--font-mono);
      font-size: 10.5px; font-weight: 500;
      text-transform: uppercase;
      letter-spacing: 0.14em;
      color: var(--brand-500);
      background: none; border: none; padding: 0;
      cursor: pointer;
      transition: gap .2s, color .15s;
    }
    .trans-expand:hover { gap: 10px; color: #ff8a57; }
    .trans-card.expanded .trans-expand-label-collapsed { display: none; }
    .trans-card:not(.expanded) .trans-expand-label-expanded { display: none; }
    .trans-expand svg { transition: transform .3s ease; }
    .trans-card.expanded .trans-expand svg { transform: rotate(-90deg); }

    .trans-full {
      display: grid;
      grid-template-rows: 0fr;
      transition: grid-template-rows .3s ease, margin-top .3s ease, margin-bottom .3s ease;
      margin-top: 0;
    }
    .trans-full > div { overflow: hidden; }
    .trans-card.expanded .trans-full {
      grid-template-rows: 1fr;
      margin-top: 14px;
      margin-bottom: 2px;
    }
    .trans-full-sep {
      height: 1px;
      background: rgba(255, 255, 255, 0.06);
      margin-bottom: 14px;
    }
    [data-theme="light"] .trans-full-sep { background: rgba(0,0,0,0.08); }
    .trans-full-text {
      background: rgba(0, 0, 0, 0.2);
      border-radius: 10px;
      padding: 16px 20px;
      border-left: 2px solid rgba(79, 124, 255, 0.3);
      font-family: var(--font-editorial);
      font-size: 15px;
      font-weight: 400;
      line-height: 1.7;
      color: var(--ink-body);
      white-space: pre-wrap;
      word-break: break-word;
    }
    [data-theme="light"] .trans-full-text { background: rgba(0,0,0,0.03); }

    .trans-acts {
      display: flex; flex-wrap: wrap; gap: 8px;
      margin-top: 4px;
    }
    /* v0.14.30: selector de asistente al lado del botón Guionizar */
    .trans-guionizar-asst {
      padding: 6px 10px; border-radius: 8px;
      background: var(--surf2); border: 1px solid var(--border);
      color: var(--text); font-family: var(--font-body);
      font-size: 12.5px; cursor: pointer; outline: none;
      transition: border-color .15s;
    }
    .trans-guionizar-asst:hover { border-color: rgba(255,255,255,.18); }
    .trans-guionizar-asst:focus { border-color: rgba(79,124,255,.6); }
    .trans-act {
      display: inline-flex; align-items: center; gap: 6px;
      padding: 7px 14px;
      border-radius: 8px;
      font-family: var(--font-body);
      font-size: 13px; font-weight: 500;
      cursor: pointer;
      transition: background .15s, border-color .15s, color .15s, transform .15s;
      border: 1px solid rgba(255, 255, 255, 0.08);
      background: transparent;
      color: var(--ink-muted);
    }
    .trans-act:hover { transform: translateY(-1px); border-color: rgba(255, 255, 255, 0.18); color: var(--ink-editorial); }
    .trans-act.primary {
      background: color-mix(in srgb, var(--brand-500) 12%, transparent);
      color: var(--brand-500);
      border-color: color-mix(in srgb, var(--brand-500) 25%, transparent);
    }
    .trans-act.primary:hover {
      background: rgba(79, 124, 255, 0.2);
      border-color: rgba(79, 124, 255, 0.4);
      color: #ff8a57;
    }
    .trans-act.danger { color: var(--ink-ghost); }
    .trans-act.danger:hover { color: #f09595; border-color: rgba(240,149,149,0.3); }
    .trans-act svg { flex-shrink: 0; }

    .trans-more {
      display: none;
      width: 32px; height: 32px;
      border: 1px solid rgba(255, 255, 255, 0.08);
      border-radius: 8px;
      background: transparent;
      color: var(--ink-muted);
      cursor: pointer;
      font-size: 16px;
      line-height: 1;
      padding: 0;
      align-items: center; justify-content: center;
    }

    /* Empty state */
    .trans-empty {
      text-align: center;
      padding: 56px 28px;
      border: 1px dashed rgba(79, 124, 255, 0.18);
      border-radius: 18px;
      background: rgba(79, 124, 255, 0.025);
    }
    .trans-empty img {
      width: 120px; height: 120px;
      image-rendering: pixelated;
      margin: 0 auto 18px;
      display: block;
      filter: drop-shadow(0 0 18px rgba(79, 124, 255, 0.22));
    }
    .trans-empty h3 {
      font-family: var(--font-editorial);
      font-size: 28px; font-weight: 500;
      font-style: italic;
      color: var(--ink-editorial);
      margin-bottom: 10px;
      letter-spacing: -0.01em;
    }
    .trans-empty p {
      font-family: var(--font-body);
      font-size: 14px; line-height: 1.55;
      color: var(--ink-muted);
      max-width: 48ch;
      margin: 0 auto 18px;
    }
    .trans-empty-cta {
      display: inline-flex; align-items: center; gap: 9px;
      padding: 12px 22px;
      border-radius: 11px;
      border: none;
      font-family: var(--font-body);
      font-size: 14px; font-weight: 600;
      color: #fff;
      /* v0.14.35.b: CTA plano consistente. Antes gradient #ff6b3d→var(--brand-500). */
      background: var(--brand-cta);
      cursor: pointer;
      text-decoration: none;
      box-shadow: 0 4px 16px rgba(79, 124, 255, 0.18);
      transition: transform .16s, box-shadow .16s, background .16s;
    }
    .trans-empty-cta:hover {
      transform: translateY(-1px);
      background: #3a63ec;
      box-shadow: 0 6px 18px rgba(79, 124, 255, 0.18);
    }


    /* Responsive */
    @media (max-width: 820px) {
      .trans-card { padding: 18px; }
      .trans-card-top { gap: 14px; }
      .trans-thumb { width: 68px; height: calc(68px * 16 / 9); }
      .trans-card-header { flex-wrap: wrap; gap: 6px 12px; }
      .trans-title { font-size: 18px; flex-basis: 100%; }
      .trans-title-meta { font-size: 10.5px; }
      .trans-card-head { gap: 8px; }
      .trans-url { max-width: 160px; }
      .trans-meta { margin-left: 0; }
      .trans-full-text { padding: 14px 16px; font-size: 14.5px; }
    }
    @media (max-width: 620px) {
      .trans-acts .trans-act.mob-hide { display: none; }
      .trans-more { display: inline-flex; }
    }
    @media (max-width: 480px) {
      .trans-act { font-size: 12.5px; padding: 6px 12px; }
      .trans-thumb { width: 60px; height: calc(60px * 16 / 9); }
      .trans-card-top { gap: 12px; }
    }

    [data-theme="light"] #profPanelTransc {
      --ink-editorial: #1a140f;
      --ink-muted: #6b5f52;
      --ink-cream: #5a4f42;
      --ink-ghost: #8a7e72;
      --ink-body: #2a2319;
    }
    [data-theme="light"] .trans-card {
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.6),
        0 4px 16px rgba(180, 150, 100, 0.12);
    }

    /* ── Projects panel redesign (v0.13.7) ───────────────────────── */

    #profPanelProjects { position: relative; }

    /* v0.14.32: Projects hero decorativo eliminado. */

    /* Toolbar (new project button) */
    .proj-toolbar {
      display: flex; justify-content: flex-end; margin-bottom: 20px;
    }
    .proj-new-btn {
      display: inline-flex; align-items: center; gap: 9px;
      padding: 11px 20px;
      border-radius: 11px;
      border: none;
      font-family: var(--font-body);
      font-size: 14px; font-weight: 600;
      color: #fff;
      /* v0.14.35.b: CTA plano consistente. Antes gradient #ff6b3d→var(--brand-500). */
      background: var(--brand-cta);
      cursor: pointer;
      box-shadow: 0 4px 16px rgba(79, 124, 255, 0.18);
      transition: transform .16s, box-shadow .16s, background .16s;
    }
    .proj-new-btn:hover { transform: translateY(-1px); background: #3a63ec; box-shadow: 0 6px 18px rgba(79, 124, 255, 0.18); }
    .proj-new-btn:active { transform: scale(.98); opacity: .95; transition: transform .08s ease-out, opacity .08s ease-out; }

    /* Grid + cards */
    .proj-grid-v3 {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
      gap: 20px;
    }
    .proj-card-v3 {
      position: relative;
      background: var(--surface-raised);
      border: 1px solid rgba(255, 255, 255, 0.06);
      border-radius: 16px;
      padding: 22px 22px 18px;
      cursor: pointer;
      overflow: hidden;
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.04),
        0 4px 16px rgba(0, 0, 0, 0.3);
      transition: transform .22s, box-shadow .22s, border-color .22s;
    }
    .proj-card-v3::before {
      content: "";
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 4px;
      background: var(--pc, #8a7e72);
      border-radius: 16px 16px 0 0;
    }
    .proj-card-v3:hover {
      /* v0.14.36: hover unificado neutro (eliminado glow --pc 40px). */
      transform: translateY(-2px);
      border-color: var(--pc, rgba(79, 124, 255, 0.25));
      box-shadow: 0 8px 24px rgba(0,0,0,.12);
    }
    [data-theme="light"] .proj-card-v3:hover { box-shadow: 0 8px 24px rgba(0,0,0,.08); }

    .proj-card-v3-head {
      display: flex; align-items: flex-start; gap: 12px;
      margin-top: 4px;
      margin-bottom: 12px;
    }
    .proj-card-v3-icon {
      width: 32px; height: 32px;
      border-radius: 8px;
      background: color-mix(in srgb, var(--pc, #8a7e72) 14%, transparent);
      border: 1px solid color-mix(in srgb, var(--pc, #8a7e72) 30%, transparent);
      color: var(--pc, #8a7e72);
      display: inline-flex; align-items: center; justify-content: center;
      flex-shrink: 0;
    }
    .proj-card-v3-title-wrap { flex: 1; min-width: 0; }
    .proj-card-v3-title {
      font-family: var(--font-editorial);
      font-size: 20px; font-weight: 500;
      line-height: 1.2;
      letter-spacing: -0.01em;
      color: var(--ink-editorial);
      margin: 0;
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .proj-card-v3-date {
      font-family: var(--font-mono);
      font-size: 11px;
      color: var(--ink-ghost);
      letter-spacing: 0.04em;
      margin-top: 3px;
    }

    .proj-card-v3-stats {
      font-family: var(--font-mono);
      font-size: 12px;
      color: var(--ink-muted);
      letter-spacing: 0.02em;
      margin-bottom: 10px;
    }
    .proj-card-v3-stats b { color: var(--pc, var(--ink-cream)); font-weight: 500; }
    .proj-card-v3-stats.empty { color: var(--ink-ghost); font-style: italic; }
    .proj-card-v3-chips {
      display: flex; flex-wrap: wrap; gap: 6px;
      margin-bottom: 14px;
      min-height: 0;
    }
    .proj-card-v3-chip {
      display: inline-flex; align-items: center; gap: 5px;
      font-family: var(--font-mono);
      font-size: 10px; font-weight: 500;
      text-transform: uppercase;
      letter-spacing: 0.1em;
      padding: 3px 8px;
      border-radius: 4px;
      color: var(--ink-muted);
      background: rgba(255, 255, 255, 0.04);
      border: 1px solid rgba(255, 255, 255, 0.08);
    }
    .proj-card-v3-chip.asst {
      color: #b5a0ec;
      background: rgba(125, 91, 184, 0.1);
      border-color: rgba(125, 91, 184, 0.22);
    }
    .proj-card-v3-chip.style {
      color: var(--ink-cream);
      background: rgba(196, 184, 150, 0.08);
      border-color: rgba(196, 184, 150, 0.18);
    }

    .proj-card-v3-foot {
      display: flex; align-items: center; gap: 8px;
      padding-top: 10px;
      border-top: 1px solid rgba(255, 255, 255, 0.05);
    }
    .proj-card-v3-go {
      flex: 1;
      display: inline-flex; align-items: center; gap: 7px;
      padding: 7px 14px;
      border-radius: 8px;
      font-family: var(--font-body);
      font-size: 13px; font-weight: 500;
      cursor: pointer;
      border: 1px solid color-mix(in srgb, var(--pc, var(--brand-500)) 35%, transparent);
      background: color-mix(in srgb, var(--pc, var(--brand-500)) 14%, transparent);
      color: var(--pc, var(--brand-500));
      transition: gap .2s, background .15s;
    }
    .proj-card-v3-go:hover { gap: 11px; background: color-mix(in srgb, var(--pc, var(--brand-500)) 22%, transparent); }
    .proj-card-v3-icn {
      width: 30px; height: 30px;
      border: 1px solid rgba(255, 255, 255, 0.08);
      border-radius: 8px;
      background: transparent;
      color: var(--ink-muted);
      cursor: pointer;
      display: inline-flex; align-items: center; justify-content: center;
      transition: color .15s, border-color .15s;
      padding: 0;
    }
    .proj-card-v3-icn:hover { color: var(--ink-editorial); border-color: rgba(255, 255, 255, 0.18); }
    .proj-card-v3-icn.danger:hover { color: #f09595; border-color: rgba(240, 149, 149, 0.3); }

    /* Empty state */
    .proj-empty-v3 {
      text-align: center;
      padding: 56px 28px;
      border: 1px dashed rgba(79, 124, 255, 0.18);
      border-radius: 18px;
      background: rgba(79, 124, 255, 0.025);
    }
    .proj-empty-v3 img {
      width: 120px; height: 120px;
      image-rendering: pixelated;
      margin: 0 auto 18px;
      display: block;
      filter: drop-shadow(0 0 18px rgba(79, 124, 255, 0.22));
    }
    .proj-empty-v3 h3 {
      font-family: var(--font-editorial);
      font-size: 28px; font-weight: 500;
      font-style: italic;
      color: var(--ink-editorial);
      margin-bottom: 10px;
      letter-spacing: -0.01em;
    }
    .proj-empty-v3 p {
      font-family: var(--font-body);
      font-size: 14px; line-height: 1.55;
      color: var(--ink-muted);
      max-width: 48ch;
      margin: 0 auto 18px;
    }


    /* Color palette (modal) */
    .proj-color-palette {
      display: flex; flex-wrap: wrap; gap: 10px;
      align-items: center;
    }
    /* Picker de nicho/subnichos del proyecto (modal de marca) */
    .proj-niche-hint { font-size: .78rem; color: var(--text3); margin-top: 8px; line-height: 1.4; }
    .proj-subniche-suggs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 8px; }
    .proj-subniche-lbl { font-size: .76rem; color: var(--text3); margin-right: 2px; }
    .proj-subniche-chip { font-size: .78rem; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--border); background: transparent; color: var(--text2); cursor: pointer; }
    .proj-subniche-chip:hover { border-color: var(--brand-500); color: var(--text); }
    .proj-color-swatch {
      width: 28px; height: 28px;
      border-radius: 50%;
      cursor: pointer;
      border: 2px solid rgba(255,255,255,0.06);
      padding: 0;
      transition: transform .15s, box-shadow .15s, border-color .15s;
      position: relative;
    }
    .proj-color-swatch:hover { transform: scale(1.08); }
    .proj-color-swatch.on {
      border-color: #fff;
      box-shadow: 0 0 0 2px rgba(255,255,255,0.15), 0 4px 14px color-mix(in srgb, var(--sw, #8a7e72) 40%, transparent);
    }
    [data-theme="light"] .proj-color-swatch.on {
      border-color: #111;
      box-shadow: 0 0 0 2px rgba(0,0,0,0.1), 0 4px 14px color-mix(in srgb, var(--sw, #8a7e72) 40%, transparent);
    }
    .proj-color-swatch.custom {
      background: conic-gradient(from 0deg, #ef6a29, #f0997b, #d4a858, #5dcaa5, #85b7eb, #b5a0ec, #ef6a29);
      position: relative;
    }
    .proj-color-swatch.custom::after {
      content: "+";
      position: absolute; inset: 0;
      display: flex; align-items: center; justify-content: center;
      color: #fff;
      font-weight: 600;
      font-size: 14px;
      text-shadow: 0 1px 2px rgba(0,0,0,0.4);
    }
    .proj-color-swatch input[type="color"] {
      position: absolute; inset: 0;
      width: 100%; height: 100%;
      opacity: 0; cursor: pointer;
      border: 0; padding: 0;
    }

    /* Responsive */
    @media (max-width: 640px) {
      .proj-grid-v3 { grid-template-columns: 1fr; gap: 14px; }
    }

    /* Light theme */
    [data-theme="light"] #profPanelProjects {
      --ink-editorial: #1a140f;
      --ink-muted: #6b5f52;
      --ink-cream: #5a4f42;
      --ink-ghost: #8a7e72;
      --ink-body: #2a2319;
    }
    [data-theme="light"] .proj-card-v3 {
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.6),
        0 4px 16px rgba(180, 150, 100, 0.12);
    }

    /* ── Scripts panel redesign (v0.13.9) ────────────────────────── */

    #profPanelScripts { position: relative; }

    /* v0.14.32: Scripts hero decorativo eliminado. */

    /* Filter banner */
    .scr-filter-banner {
      display: flex; align-items: center; justify-content: space-between;
      gap: 12px;
      padding: 10px 16px;
      background: color-mix(in srgb, var(--fc, var(--brand-500)) 10%, transparent);
      border: 1px solid color-mix(in srgb, var(--fc, var(--brand-500)) 25%, transparent);
      border-radius: 10px;
      margin-bottom: 20px;
      font-size: 13px;
      color: var(--ink-cream);
      font-family: var(--font-body);
    }
    .scr-filter-banner b {
      font-family: var(--font-editorial);
      font-style: italic;
      font-weight: 500;
      color: var(--fc, var(--brand-500));
    }
    .scr-filter-clear {
      background: transparent;
      border: 1px solid rgba(255,255,255,0.12);
      border-radius: 6px;
      color: var(--ink-muted);
      padding: 4px 10px;
      font-family: var(--font-mono);
      font-size: 10.5px;
      font-weight: 500;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      cursor: pointer;
      transition: color .15s, border-color .15s;
    }
    .scr-filter-clear:hover { color: var(--ink-editorial); border-color: rgba(255,255,255,0.22); }

    /* Script cards */
    .scr-list { display: flex; flex-direction: column; gap: var(--space-md); }
    .scr-card {
      position: relative;
      background: var(--surface-raised);
      border: 1px solid rgba(255, 255, 255, 0.06);
      border-radius: 16px;
      padding: var(--space-5) var(--space-6);
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.04),
        0 4px 16px rgba(0, 0, 0, 0.3);
      transition: transform .22s, box-shadow .22s, border-color .22s;
    }
    .scr-card.has-proj { border-left: 3px solid var(--pc, #8a7e72); }
    /* v0.14.28: highlight transitorio al navegar desde idea scripted → script */
    .scr-card.scr-card-highlight {
      animation: scrCardFlash 2s ease-out;
    }
    @keyframes scrCardFlash {
      0%   { box-shadow: 0 0 0 2px rgba(79,124,255,.55), 0 6px 20px rgba(79,124,255,.25); }
      80%  { box-shadow: 0 0 0 2px rgba(79,124,255,.18), 0 6px 20px rgba(79,124,255,.05); }
      100% { box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 4px 16px rgba(0,0,0,.3); }
    }
    .scr-card:hover {
      /* v0.14.36: hover unificado neutro (eliminado glow --pc 40px). */
      transform: translateY(-2px);
      border-color: color-mix(in srgb, var(--pc, var(--brand-500)) 25%, transparent);
      box-shadow: 0 8px 24px rgba(0,0,0,.12);
    }
    [data-theme="light"] .scr-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.08); }

    .scr-card-meta {
      display: flex; align-items: center; gap: 10px;
      flex-wrap: wrap;
      margin-bottom: 10px;
    }
    .scr-proj-badge {
      display: inline-flex; align-items: center; gap: 6px;
      font-family: var(--font-mono);
      font-size: 10px; font-weight: 500;
      text-transform: uppercase;
      letter-spacing: 0.12em;
      padding: 3px 9px;
      border-radius: 5px;
      cursor: pointer;
      transition: background .15s;
      color: var(--pc, var(--ink-muted));
      background: color-mix(in srgb, var(--pc, #8a7e72) 12%, transparent);
      border: 1px solid color-mix(in srgb, var(--pc, #8a7e72) 25%, transparent);
      border: none;
    }
    .scr-proj-badge:hover { background: color-mix(in srgb, var(--pc, #8a7e72) 20%, transparent); }
    .scr-proj-badge.no-proj {
      color: var(--ink-ghost);
      background: rgba(255, 255, 255, 0.04);
    }
    .scr-card-date, .scr-card-words {
      font-family: var(--font-mono);
      font-size: 11px;
      color: var(--ink-ghost);
      letter-spacing: 0.04em;
    }
    .scr-card-sep { color: var(--ink-ghost); opacity: .4; }

    .scr-card-title {
      font-family: var(--font-editorial);
      font-size: var(--text-xl); font-weight: 500;
      line-height: 1.22;
      letter-spacing: -0.01em;
      color: var(--ink-editorial);
      margin: 0 0 var(--space-3);
    }

    .scr-preview-wrap {
      position: relative;
      cursor: pointer;
      margin-bottom: 2px;
    }
    .scr-preview {
      font-family: var(--font-body);
      font-size: 14px; line-height: 1.6;
      color: var(--ink-body);
      font-weight: 300;
      display: -webkit-box;
      -webkit-line-clamp: 3;
      -webkit-box-orient: vertical;
      overflow: hidden;
      -webkit-mask-image: linear-gradient(180deg, #000 60%, rgba(0,0,0,0.3) 100%);
              mask-image: linear-gradient(180deg, #000 60%, rgba(0,0,0,0.3) 100%);
    }

    .scr-expand {
      display: inline-flex; align-items: center; gap: 6px;
      margin-top: 8px;
      font-family: var(--font-mono);
      font-size: 10.5px; font-weight: 500;
      text-transform: uppercase;
      letter-spacing: 0.14em;
      color: var(--brand-500);
      background: none; border: none; padding: 0;
      cursor: pointer;
      transition: gap .2s, color .15s;
    }
    .scr-expand:hover { gap: 10px; color: var(--brand-500); }
    .scr-expand svg { transition: transform .3s ease; }
    .scr-card.expanded .scr-expand svg { transform: rotate(-90deg); }
    .scr-card.expanded .scr-expand-label-collapsed { display: none; }
    .scr-card:not(.expanded) .scr-expand-label-expanded { display: none; }

    .scr-full {
      display: grid;
      grid-template-rows: 0fr;
      transition: grid-template-rows .3s ease, margin-top .3s ease;
      margin-top: 0;
    }
    .scr-full > div { overflow: hidden; }
    .scr-card.expanded .scr-full {
      grid-template-rows: 1fr;
      margin-top: 14px;
    }
    .scr-full-sep {
      height: 1px;
      background: rgba(255, 255, 255, 0.06);
      margin-bottom: 14px;
    }
    [data-theme="light"] .scr-full-sep { background: rgba(0, 0, 0, 0.08); }
    .scr-full-text {
      background: rgba(0, 0, 0, 0.2);
      border-radius: 10px;
      padding: 16px 20px;
      border-left: 2px solid color-mix(in srgb, var(--brand-500) 30%, transparent);
      font-family: var(--font-editorial);
      font-size: 15px;
      font-weight: 400;
      line-height: 1.7;
      color: var(--ink-body);
      white-space: pre-wrap;
      word-break: break-word;
    }
    [data-theme="light"] .scr-full-text { background: rgba(0, 0, 0, 0.03); }

    /* Inline edit form (desktop) */
    .scr-inline-edit {
      display: flex; flex-direction: column; gap: 10px;
      background: color-mix(in srgb, var(--brand-500) 4%, transparent);
      border: 1px solid color-mix(in srgb, var(--brand-500) 25%, transparent);
      border-radius: 12px;
      padding: 16px 18px;
    }
    [data-theme="light"] .scr-inline-edit { background: rgba(79, 124, 255, 0.05); }
    .scr-card.editing .scr-expand,
    .scr-card.editing .scr-preview-wrap { opacity: .45; pointer-events: none; }
    .scr-inline-lbl {
      font-family: var(--font-mono);
      font-size: 10px; font-weight: 500;
      text-transform: uppercase;
      letter-spacing: 0.14em;
      color: var(--ink-cream);
    }
    .scr-inline-input, .scr-inline-select, .scr-inline-textarea {
      width: 100%;
      background: rgba(0, 0, 0, 0.2);
      border: 1px solid rgba(255, 255, 255, 0.08);
      border-radius: 8px;
      padding: 10px 12px;
      color: var(--ink-editorial);
      font-family: var(--font-body);
      font-size: 14px;
      outline: none;
      transition: border-color .15s;
    }
    .scr-inline-input:focus, .scr-inline-select:focus, .scr-inline-textarea:focus {
      border-color: color-mix(in srgb, var(--brand-500) 50%, transparent);
    }
    [data-theme="light"] .scr-inline-input,
    [data-theme="light"] .scr-inline-select,
    [data-theme="light"] .scr-inline-textarea {
      background: #fff;
      border-color: rgba(0, 0, 0, 0.1);
    }
    .scr-inline-textarea {
      font-family: var(--font-editorial);
      font-size: 15px;
      line-height: 1.6;
      min-height: 180px;
      resize: vertical;
    }
    .scr-inline-err {
      font-family: var(--font-body);
      font-size: 12.5px;
      color: var(--danger-fg);
      padding: 4px 0;
    }
    .scr-inline-acts {
      display: flex; gap: 8px; justify-content: flex-end;
      margin-top: 2px;
    }

    .scr-acts {
      display: flex; flex-wrap: wrap; gap: 8px;
      margin-top: 14px;
      padding-top: var(--space-3);
      border-top: 1px solid rgba(255, 255, 255, 0.05);
    }
    [data-theme="light"] .scr-acts { border-top-color: rgba(0, 0, 0, 0.08); }
    .scr-act {
      display: inline-flex; align-items: center; gap: 6px;
      padding: 7px 14px;
      border-radius: 8px;
      font-family: var(--font-body);
      font-size: var(--text-sm); font-weight: 500;
      cursor: pointer;
      border: 1px solid rgba(255, 255, 255, 0.08);
      background: transparent;
      color: var(--ink-muted);
      transition: background .15s, border-color .15s, color .15s, transform .15s;
    }
    .scr-act:hover { transform: translateY(-1px); border-color: rgba(255, 255, 255, 0.18); color: var(--ink-editorial); }
    .scr-act.primary {
      background: color-mix(in srgb, var(--brand-500) 12%, transparent);
      color: var(--brand-500);
      border-color: color-mix(in srgb, var(--brand-500) 25%, transparent);
    }
    .scr-act.primary:hover {
      background: color-mix(in srgb, var(--brand-500) 20%, transparent);
      border-color: color-mix(in srgb, var(--brand-500) 40%, transparent);
      color: var(--brand-500);
    }
    .scr-act.danger { color: var(--ink-ghost); }
    .scr-act.danger:hover { color: var(--danger-fg); border-color: color-mix(in srgb, var(--danger-fg) 30%, transparent); }

    /* B7: banco de hooks alternativos en la scr-card de PRODUCCIÓN.
       Réplica visual del patrón gui-hooks de la isla .rs, pero con tokens
       Signal de producción (la isla está fuera de alcance). */
    .scr-hooks-toggle {
      display: inline-flex; align-items: center; gap: 6px;
      margin-top: 12px;
      padding: 4px 10px 4px 8px;
      border: 1px solid rgba(255, 255, 255, 0.08);
      border-radius: 99px;
      background: transparent;
      color: var(--ink-muted);
      font-family: var(--font-body);
      font-size: 11.5px; font-weight: 600;
      cursor: pointer;
      transition: color .15s, border-color .15s;
    }
    .scr-hooks-toggle:hover { color: var(--brand-500); border-color: color-mix(in srgb, var(--brand-500) 35%, transparent); }
    .scr-hooks-toggle .scr-hk-fish { width: 13px; height: 13px; flex-shrink: 0; }
    .scr-hooks-toggle .scr-hk-caret { width: 14px; height: 14px; flex-shrink: 0; transition: transform .18s ease; }
    .scr-card.hooks-open .scr-hooks-toggle .scr-hk-caret { transform: rotate(180deg); }

    .scr-hooks {
      display: grid;
      grid-template-rows: 0fr;
      transition: grid-template-rows .3s ease, margin-top .3s ease;
      margin-top: 0;
    }
    .scr-hooks > .scr-hooks-inner { overflow: hidden; }
    .scr-card.hooks-open .scr-hooks {
      grid-template-rows: 1fr;
      margin-top: 10px;
    }
    .scr-hooks-inner {
      display: flex; flex-direction: column; gap: 8px;
      padding: 14px 16px;
      border: 1px solid rgba(255, 255, 255, 0.06);
      border-radius: 12px;
      background: rgba(0, 0, 0, 0.18);
    }
    [data-theme="light"] .scr-hooks-inner { background: rgba(0, 0, 0, 0.03); }
    .scr-hook {
      display: flex; align-items: center; gap: 10px;
      font-family: var(--font-body);
      font-size: 13.5px; line-height: 1.35;
      color: var(--ink-body);
    }
    .scr-hook .scr-hk-n { font-family: var(--font-mono); font-size: 11px; color: var(--brand-500); flex-shrink: 0; }
    .scr-hook-t { flex: 1; min-width: 0; }
    .scr-hook-use {
      flex-shrink: 0;
      font-family: var(--font-body);
      font-size: 11px; font-weight: 600;
      color: var(--ink-muted);
      background: transparent;
      border: 1px solid rgba(255, 255, 255, 0.08);
      border-radius: 7px;
      padding: 4px 10px;
      cursor: pointer;
      transition: color .15s, border-color .15s;
    }
    .scr-hook-use:hover { color: var(--brand-500); border-color: color-mix(in srgb, var(--brand-500) 35%, transparent); }
    .scr-hook-del {
      flex-shrink: 0;
      width: 26px; height: 26px;
      border-radius: 7px;
      border: 1px solid rgba(255, 255, 255, 0.08);
      background: transparent;
      color: var(--ink-ghost);
      display: flex; align-items: center; justify-content: center;
      cursor: pointer;
      transition: color .15s, border-color .15s;
    }
    .scr-hook-del svg { width: 13px; height: 13px; }
    .scr-hook-del:hover { color: var(--danger-fg); border-color: color-mix(in srgb, var(--danger-fg) 30%, transparent); }
    .scr-hook-add {
      display: inline-flex; align-items: center; gap: 6px;
      align-self: flex-start;
      margin-top: 2px;
      font-family: var(--font-mono);
      font-size: 10.5px; font-weight: 500;
      text-transform: uppercase; letter-spacing: 0.1em;
      color: var(--brand-500);
      background: none; border: none; padding: 0;
      cursor: pointer;
    }
    .scr-hook-add:hover { text-decoration: underline; }
    .scr-hooks-empty { font-family: var(--font-body); font-size: 12.5px; color: var(--ink-ghost); }

    /* Recording status badge */
    .scr-status-badge {
      display: inline-flex; align-items: center; gap: var(--space-1);
      padding: var(--space-1) var(--space-2);
      border-radius: var(--radius-md);
      background: var(--surface-overlay); color: var(--text-secondary);
      border: 1px solid var(--border-subtle);
      cursor: pointer;
      font-family: var(--font-body); font-size: var(--text-xs); font-weight: 500;
      transition: background .15s, color .15s, border-color .15s;
    }
    .scr-status-badge:hover { background: var(--surface-raised); color: var(--text-primary); border-color: var(--border-strong); }
    .scr-status-badge.is-recorded { color: var(--success-fg); background: var(--success-bg); border-color: var(--success-border); }
    .scr-status-badge.is-discarded { color: var(--text-tertiary); opacity: .7; }

    #scrStatusMenu {
      position: fixed; z-index: 510;
      background: var(--surface-raised);
      border: 1px solid var(--border-default);
      border-radius: var(--radius-lg);
      box-shadow: var(--shadow-xl);
      padding: var(--space-1);
      min-width: 180px;
      display: none; flex-direction: column; gap: 2px;
    }
    #scrStatusMenu button {
      background: transparent; color: var(--text-primary); border: 0;
      padding: var(--space-2) var(--space-3);
      border-radius: var(--radius-sm);
      font-family: var(--font-body); font-size: var(--text-sm);
      display: flex; align-items: center; gap: var(--space-2);
      width: 100%; text-align: left; cursor: pointer;
    }
    #scrStatusMenu button:hover { background: var(--surface-overlay); }
    #scrStatusMenu .chk { opacity: 0; margin-left: auto; }
    #scrStatusMenu button.is-active .chk { opacity: 1; }

    #scrProjectMenu {
      position: fixed; z-index: 510;
      background: var(--surface-raised);
      border: 1px solid var(--border-default);
      border-radius: var(--radius-lg);
      box-shadow: var(--shadow-xl);
      padding: var(--space-1);
      min-width: 240px;
      display: none; flex-direction: column; gap: 2px;
    }
    #scrProjectMenu button {
      background: transparent; color: var(--text-primary); border: 0;
      padding: var(--space-2) var(--space-3);
      border-radius: var(--radius-sm);
      font-family: var(--font-body); font-size: var(--text-sm);
      display: flex; align-items: center; gap: var(--space-2);
      width: 100%; text-align: left; cursor: pointer;
    }
    #scrProjectMenu button:hover { background: var(--surface-overlay); }
    #scrProjectMenu .chk { opacity: 0; margin-left: auto; }
    #scrProjectMenu button.is-active .chk { opacity: 1; }
    #scrProjectMenu .proj-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
    #scrProjectMenu .proj-menu-empty { padding: var(--space-2) var(--space-3); font-size: var(--text-sm); color: var(--text-tertiary); }

    /* v0.16.16: Ideas project dropdown — CSS idéntico a #scrProjectMenu */
    #ideaProjectMenu {
      position: fixed; z-index: 510;
      background: var(--surface-raised);
      border: 1px solid var(--border-default);
      border-radius: var(--radius-lg);
      box-shadow: var(--shadow-xl);
      padding: var(--space-1);
      min-width: 240px;
      display: none; flex-direction: column; gap: 2px;
    }
    #ideaProjectMenu button {
      background: transparent; color: var(--text-primary); border: 0;
      padding: var(--space-2) var(--space-3);
      border-radius: var(--radius-sm);
      font-family: var(--font-body); font-size: var(--text-sm);
      display: flex; align-items: center; gap: var(--space-2);
      width: 100%; text-align: left; cursor: pointer;
    }
    #ideaProjectMenu button:hover { background: var(--surface-overlay); }
    #ideaProjectMenu .chk { opacity: 0; margin-left: auto; }
    #ideaProjectMenu button.is-active .chk { opacity: 1; }
    #ideaProjectMenu .proj-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
    #ideaProjectMenu .proj-menu-empty { padding: var(--space-2) var(--space-3); font-size: var(--text-sm); color: var(--text-tertiary); }

    .ideas-card.has-proj { border-left: 3px solid var(--pc, #8a7e72); }
    .idea-proj-badge {
      display: inline-flex; align-items: center; gap: 6px;
      font-family: var(--font-mono);
      font-size: 10px; font-weight: 500;
      text-transform: uppercase; letter-spacing: 0.12em;
      padding: 3px 9px; border-radius: 5px;
      cursor: pointer; transition: background .15s;
      color: var(--pc, var(--ink-muted));
      background: color-mix(in srgb, var(--pc, #8a7e72) 12%, transparent);
      border: none;
    }
    .idea-proj-badge:hover { background: color-mix(in srgb, var(--pc, #8a7e72) 20%, transparent); }
    .idea-proj-badge.no-proj { color: var(--ink-ghost); background: rgba(255,255,255,.04); }

    /* Assistant snapshot badge (informativo, no interactivo) */
    .scr-assistant-badge {
      display: inline-flex; align-items: center; gap: var(--space-1);
      padding: var(--space-1) var(--space-2);
      background: var(--surface-overlay);
      border: 1px solid var(--border-subtle);
      border-radius: var(--radius-md);
      color: var(--text-secondary);
      font-family: var(--font-body); font-size: var(--text-xs); font-weight: 500;
      white-space: nowrap; user-select: none;
    }
    .scr-assistant-badge svg { width: 14px; height: 14px; stroke-width: 1.5; flex-shrink: 0; }

    /* Empty state */
    .scr-empty {
      text-align: center;
      padding: 56px 28px;
      border: 1px dashed color-mix(in srgb, var(--brand-500) 18%, transparent);
      border-radius: 18px;
      background: color-mix(in srgb, var(--brand-500) 3%, transparent);
    }
    .scr-empty img {
      /* v0.14.41: mascota reducida 120 → 80 para coherencia con Ideas empty. */
      width: 80px; height: 80px;
      image-rendering: pixelated;
      margin: 0 auto 18px;
      display: block;
      filter: drop-shadow(0 0 18px rgba(79, 124, 255, 0.22));
    }
    .scr-empty h3 {
      font-family: var(--font-editorial);
      font-size: 28px; font-weight: 500;
      font-style: italic;
      color: var(--ink-editorial);
      margin-bottom: 10px;
      letter-spacing: -0.01em;
    }
    .scr-empty p {
      font-family: var(--font-body);
      font-size: 14px; line-height: 1.55;
      color: var(--ink-muted);
      max-width: 52ch;
      margin: 0 auto;
    }
    /* v0.14.41: CTA grande dentro del empty state (solo si no hay filtro activo). */
    .empty-cta {
      display: inline-block;
      background: var(--brand-cta);
      color: #fff;
      border: 0;
      padding: 12px 24px;
      border-radius: 10px;
      font-size: .95rem;
      font-weight: 700;
      font-family: var(--font-body);
      cursor: pointer;
      margin-top: 18px;
      transition: background .15s, transform .12s;
    }
    .empty-cta:hover { background: var(--brand-800); }
    .empty-cta:active { transform: scale(.98); }

    /* v0.14.43: zona de peligro en Privacidad y datos. */
    .danger-zone-header {
      font-size: var(--text-xs);
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .08em;
      color: var(--danger);
      margin-bottom: var(--space-3);
      margin-top: var(--space-12);
    }
    .prof-card.is-danger {
      border-color: color-mix(in srgb, var(--danger) 30%, transparent);
    }
    .prof-card.is-danger:hover {
      border-color: color-mix(in srgb, var(--danger) 45%, transparent);
      box-shadow: 0 5px 0 color-mix(in srgb, var(--danger) 6%, transparent);
    }
    .prof-card .danger-title {
      font-family: var(--font-display);
      font-size: var(--text-sm);
      margin-bottom: 4px;
      color: var(--danger-fg);
    }


    /* Responsive */
    @media (max-width: 820px) {
      .scr-card { padding: 18px; }
      .scr-card-title { font-size: 18px; }
      .scr-full-text { padding: 14px 16px; font-size: 14.5px; }
    }
    @media (max-width: 480px) {
      .scr-act { font-size: 12.5px; padding: 6px 12px; }
    }

    /* Light theme */
    [data-theme="light"] #profPanelScripts {
      --ink-editorial: #1a140f;
      --ink-muted: #6b5f52;
      --ink-cream: #5a4f42;
      --ink-ghost: #8a7e72;
      --ink-body: #2a2319;
    }
    [data-theme="light"] .scr-card {
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6), 0 4px 16px rgba(180, 150, 100, 0.12);
    }

    /* ── Settings panel ──────────────────────────────────────────── */
    #profPanelSettings { position: relative; }
    /* v0.14.32: Settings hero decorativo eliminado. */

    .settings-card {
      display: flex; align-items: center; justify-content: space-between;
      gap: 20px;
      background: var(--surface-raised);
      border: 1px solid var(--border-subtle);
      border-radius: var(--radius-xl);
      padding: 18px 22px;
      margin-bottom: 14px;
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.04),
        0 4px 16px rgba(0, 0, 0, 0.3);
    }
    .settings-card-head { min-width: 0; }
    .settings-card-title {
      font-family: var(--font-body);
      font-size: var(--text-lg); font-weight: 600;
      color: var(--text-primary);
      letter-spacing: -0.005em;
    }
    .settings-card-sub {
      font-family: var(--font-body);
      font-size: var(--text-sm);
      color: var(--text-secondary);
      margin-top: 3px;
    }
    .settings-seg { flex-shrink: 0; }
    .settings-seg .theme-seg-opt { width: 44px; height: 30px; font-size: .85rem; font-weight: 600; }
    .settings-lang-opt {
      font-family: var(--font-mono);
      letter-spacing: 0.08em;
      font-weight: 600;
    }

    [data-theme="light"] .settings-card {
      box-shadow: inset 0 1px 0 rgba(255,255,255,.6), 0 4px 16px rgba(180,150,100,.12);
    }


    @media (max-width: 640px) {
      .settings-card { flex-direction: column; align-items: flex-start; gap: 14px; }
      .settings-seg { align-self: flex-end; }
      /* v0.14.22 BUG 2+3: gated por body.workspace para que la barra solo
         aparezca en /profile/* — nunca en landing/login/signup. */
      body.workspace .prof-bottom-bar { display: block; }
    }

    /* Team members list */
    .team-list { display: flex; flex-direction: column; gap: 8px; }
    .team-member {
      display: flex; align-items: center; gap: 12px;
      padding: 14px 16px; background: var(--surf);
      border: 1px solid var(--border); border-radius: var(--r);
    }
    .team-member-av {
      width: 40px; height: 40px; border-radius: 50%;
      background: var(--surf2); border: 1px solid var(--border);
      overflow: hidden; flex-shrink: 0;
    }
    .team-member-av img { width: 100%; height: 100%; object-fit: cover; }
    .team-member-info { flex: 1; min-width: 0; }
    .team-member-email { font-size: .88rem; font-weight: 700; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .team-member-meta { font-size: .72rem; color: var(--text3); display: flex; gap: 10px; align-items: center; margin-top: 2px; }
    .status-badge {
      display: inline-flex; align-items: center; gap: 3px;
      padding: 2px 8px; border-radius: 10px; font-size: .65rem; font-weight: 700;
    }
    .status-badge.active  { background: var(--success-bg); color: var(--success-fg); }
    .status-badge.pending { background: var(--warning-bg); color: var(--warning-fg); }
    .status-badge.owner   { background: color-mix(in srgb, var(--brand-500) 15%, transparent); color: var(--brand-500); }


    /* Mobile bottom tab bar for profile */
    .prof-bottom-bar {
      display: none; position: fixed; bottom: 0; left: 0; right: 0;
      background: var(--surf); backdrop-filter: blur(20px);
      border-top: 1px solid var(--border); z-index: 1000;
      padding: 8px 0 calc(8px + env(safe-area-inset-bottom, 0px));
    }
    .prof-bottom-bar-inner {
      display: grid; grid-template-columns: repeat(5, 1fr);
    }
    .prof-bottom-tab {
      display: flex; flex-direction: column; align-items: center; gap: 3px;
      background: none; border: none; color: var(--text3); cursor: pointer;
      font-size: .6rem; font-family: var(--font-body); padding: 4px 0;
      min-height: 48px; justify-content: center;
      transition: color .15s, background .15s;
    }
    .prof-bottom-tab.on { color: var(--brand); }
    .prof-bottom-tab-icon { width: 20px; height: 20px; }
    /* v0.14.31.d: Dashboard como item central destacado — pill sutil cuando activo. */
    .prof-bottom-tab--featured {
      border-radius: 12px;
      margin: 0 4px;
    }
    .prof-bottom-tab--featured.on {
      background: rgba(79,124,255,.12);
      color: var(--brand-500);
    }

    /* v0.14.31.d — Bottom sheet "Más" (reemplaza drawer mobile lateral) */
    .prof-more-sheet {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 1099;
    }
    .prof-more-sheet.on { display: block; }
    .prof-more-backdrop {
      position: absolute;
      inset: 0;
      background: rgba(10,11,15,.55);
      backdrop-filter: blur(4px);
    }
    .prof-more-panel {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      max-height: 75vh;
      background: var(--surf);
      border-radius: 18px 18px 0 0;
      display: flex;
      flex-direction: column;
      z-index: 1100;
      transform: translateY(100%);
      transition: transform .25s ease-out;
      padding-bottom: env(safe-area-inset-bottom, 0);
    }
    .prof-more-sheet.on .prof-more-panel { transform: translateY(0); }
    .prof-more-handle {
      width: 40px;
      height: 4px;
      background: var(--border);
      border-radius: 2px;
      margin: 10px auto 6px auto;
      flex-shrink: 0;
    }
    .prof-more-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 8px 18px 12px 18px;
      border-bottom: 1px solid var(--border);
      flex-shrink: 0;
    }
    .prof-more-title {
      font-weight: 600;
      font-size: 16px;
      color: var(--text);
    }
    .prof-more-close {
      background: none;
      border: 1px solid var(--border);
      border-radius: 8px;
      width: 32px;
      height: 32px;
      color: var(--text2);
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      transition: border-color .15s;
    }
    .prof-more-close:hover { border-color: var(--brand); }
    .prof-more-body {
      overflow-y: auto;
      padding-bottom: 20px;
    }
    .prof-more-section {
      display: flex;
      flex-direction: column;
    }
    .prof-more-section-hdr {
      text-transform: uppercase;
      font-size: 11px;
      letter-spacing: 0.06em;
      font-weight: 600;
      color: var(--text3);
      padding: 14px 18px 6px 18px;
      user-select: none;
    }
    .prof-more-section button {
      display: flex;
      align-items: center;
      gap: 14px;
      height: 50px;
      padding: 0 18px;
      background: none;
      border: none;
      border-bottom: 1px solid var(--border);
      color: var(--text);
      font-size: 15px;
      font-family: var(--font-body);
      text-align: left;
      cursor: pointer;
      transition: background .12s;
      width: 100%;
    }
    .prof-more-section button:active { background: rgba(255,255,255,.06); }
    .prof-more-section button svg { flex-shrink: 0; }

    /* v0.14.31.d: drawer mobile (#profMobDrawer, .pmob-*) eliminado.
       Reemplazado por bottom sheet "Más" (#profMoreSheet, .prof-more-*). */

    /* Mobile responsive — Profile Hub */
    @media (max-width: 768px) {
      .profile-overlay {
        overflow-y: auto; overflow-x: hidden;
        -webkit-overflow-scrolling: touch; overscroll-behavior: contain;
      }
      /* Force the whole profile tree to stay inside the viewport.
         Without these caps, iOS Safari can let a wide child (chart SVG,
         wide flex row, etc.) push the layout past 100vw, which shows
         up as buttons and cards "cortados por la derecha". */
      .prof-layout {
        grid-template-columns: 1fr;
        height: auto;
        overflow-x: hidden;
        max-width: 100vw;
      }
      .prof-sidebar, .prof-main {
        max-width: 100vw; overflow-x: hidden; box-sizing: border-box;
        min-width: 0;
      }
      .prof-sidebar {
        height: auto; border-right: none; border-bottom: 1px solid var(--border);
      }
      .ig-stats-row, .ig-grid, .ig-sort-bar, .ig-filter-bar, .ig-chart-scroll, .ig-best-reel,
      .ig-linked-header, #igAnalyzeBar {
        max-width: 100%; box-sizing: border-box;
      }
      .prof-main { padding: var(--space-lg) var(--space-md) 100px; overflow-y: visible; }
      .prof-stats-row { grid-template-columns: repeat(3, 1fr); gap: 8px; }
      .prof-stat-card { padding: 14px 10px; flex-direction: column; gap: 6px; text-align: center; }
      .prof-stat-icon { margin: 0 auto; }
      .prof-stat-val { font-size: 1.2rem; }
      .prof-stat-label { font-size: .6rem; }
      .proj-cards-grid { grid-template-columns: 1fr; }
      .asst-cards-grid { grid-template-columns: 1fr; }
      /* View modal on mobile */
      .view-overlay { align-items: flex-end; padding: 0; }
      .view-modal {
        max-width: 100%; max-height: 85vh;
        border-radius: 20px 20px 0 0;
        animation: sheet-up .25s ease;
      }
      .view-modal-head { padding: 16px; }
      .view-modal-body { padding: 16px; font-size: .88rem; overflow-wrap: anywhere; }
      .view-modal-foot { padding: 12px 16px; flex-wrap: wrap; }
      .view-modal-foot .btn-sm { font-size: .75rem; }

      /* Project detail mobile */
      .proj-detail-inner { padding: 16px 16px 60px; }
      .proj-detail-top { flex-wrap: wrap; gap: 8px; }
      .proj-detail-name { font-size: 1rem; width: 100%; }
      .proj-detail-top > div { width: 100%; justify-content: flex-start; }

      /* Script card text overflow fix */
      .script-card-text { overflow-wrap: anywhere; }
      .script-editor-ta { font-size: 14px; }
      .metrics-fields { grid-template-columns: repeat(2, 1fr); }
    }

    /* ── Toast system (v0.14.38: tipos + stack queue) ─────────── */
    .toast-container {
      position: fixed;
      bottom: 28px; right: 28px;
      z-index: 9999;
      display: flex; flex-direction: column-reverse;
      gap: 8px;
      pointer-events: none;
    }
    @media (max-width: 640px) {
      .toast-container {
        bottom: 84px; /* sobre la bottom-bar workspace */
        right: 12px; left: 12px;
        align-items: center;
      }
    }
    .toast {
      pointer-events: auto;
      min-width: 280px; max-width: 380px;
      padding: 12px 16px;
      border-radius: 10px;
      background: var(--surf2);
      border: 1px solid var(--border);
      color: var(--text);
      font-size: .88rem;
      font-family: var(--font-body);
      box-shadow: 0 8px 24px rgba(0,0,0,.18);
      display: flex; align-items: flex-start; gap: 10px;
      animation: toastSlideIn 200ms ease-out;
      cursor: pointer;
    }
    .toast--success { border-left: 3px solid #22c55e; }
    .toast--error   { border-left: 3px solid #ef4444; }
    .toast--warning { border-left: 3px solid #f59e0b; }
    .toast--info    { border-left: 3px solid var(--text2); }
    .toast-icon { flex-shrink: 0; width: 18px; height: 18px; margin-top: 1px; }
    .toast--success .toast-icon { color: #22c55e; }
    .toast--error   .toast-icon { color: #ef4444; }
    .toast--warning .toast-icon { color: #f59e0b; }
    .toast--info    .toast-icon { color: var(--text2); }
    .toast-body { flex: 1; min-width: 0; line-height: 1.4; }
    .toast-action {
      background: none; border: 0; color: var(--brand);
      cursor: pointer; font-weight: 600; font-size: .82rem;
      padding: 0; margin-left: 8px; flex-shrink: 0;
    }
    .toast-action:hover { text-decoration: underline; }
    .toast--out { animation: toastSlideOut 200ms ease-in forwards; }
    @keyframes toastSlideIn {
      from { opacity: 0; transform: translateY(8px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    @keyframes toastSlideOut {
      from { opacity: 1; transform: translateY(0); }
      to   { opacity: 0; transform: translateY(8px); }
    }
    @media (prefers-reduced-motion: reduce) {
      .toast { animation: none; }
      .toast--out { opacity: 0; transition: opacity .15s; animation: none; }
    }

    /* ── Entrance animations ──────────────────────────────────── */
    .fade-in { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
    .fade-in.in { opacity: 1; transform: translateY(0); }

    /* ── Responsive — Mobile first ────────────────────────────── */

    /* iOS zoom prevention */
    @media (max-width: 640px) {
      input, select, textarea { font-size: 16px !important; }
    }

    /* Safe area */
    @supports (padding-bottom: env(safe-area-inset-bottom)) {
      .tour-tooltip, .modal, .drawer { padding-bottom: calc(16px + env(safe-area-inset-bottom)); }
    }

    /* Tablet + mobile */
    @media (max-width: 1024px) {
      .pricing-cards { grid-template-columns: repeat(2,1fr) !important; }
    }

    /* Nav hamburger (mobile) */
    .nav-hamburger {
      display: none; background: none; border: 1px solid var(--border); border-radius: 8px;
      color: var(--text2); font-size: 1.2rem; width: 36px; height: 36px; cursor: pointer;
      align-items: center; justify-content: center; transition: border-color .2s;
    }
    .nav-hamburger:hover { border-color: var(--brand); }
    /* v0.14.10 — mobile auth CTAs en nav top (sustituyen hamburguesa en landing) */
    .nav-mob-cta {
      display: none;
      padding: 0 12px; height: 34px;
      border-radius: 8px;
      font-family: var(--font-body); font-weight: 700; font-size: .78rem;
      background: transparent; border: 1px solid var(--border); color: var(--text2);
      cursor: pointer; text-decoration: none;
      align-items: center; justify-content: center;
      white-space: nowrap;
      transition: border-color .15s, background .15s, color .15s;
    }
    .nav-mob-cta:hover { border-color: var(--brand); }
    .nav-mob-cta-primary {
      /* v0.14.35.b: CTA plano consistente. */
      background: var(--brand-cta); border-color: var(--brand-cta); color: #fff;
    }
    .nav-mob-cta-primary:hover { background: #3a63ec; border-color: #3a63ec; color: #fff; }
    /* Mobile slide-out menu */
    .nav-mob-menu {
      display: none; position: fixed; inset: 0; z-index: 250;
    }
    .nav-mob-menu.on { display: block; }
    .nav-mob-backdrop {
      position: absolute; inset: 0; background: rgba(0,0,0,.5);
      opacity: 0; transition: opacity .22s ease-out;
    }
    .nav-mob-menu.on .nav-mob-backdrop { opacity: 1; }
    .nav-mob-panel {
      position: absolute; top: 0; right: 0; bottom: 0; z-index: 1;
      width: 75%; max-width: 320px; height: 100dvh;
      background: var(--surf); border-left: 1px solid var(--border);
      box-shadow: -12px 0 32px rgba(0,0,0,.5);
      backdrop-filter: blur(12px);
      padding: 0; display: flex; flex-direction: column;
      padding-top: env(safe-area-inset-top, 0px);
      padding-right: env(safe-area-inset-right, 0px);
      transform: translateX(100%); transition: transform .22s ease-out;
      overflow-y: auto;
    }
    .nav-mob-menu.on .nav-mob-panel { transform: translateX(0); }
    /* Hamburger header */
    .nav-mob-header {
      display: flex; align-items: center; gap: 10px; padding: 16px 18px 12px;
      border-bottom: 1px solid var(--border);
    }
    .nav-mob-header .avatar { width: 36px; height: 36px; flex-shrink: 0; }
    .nav-mob-header-info { flex: 1; min-width: 0; }
    .nav-mob-header-email { font-size: .82rem; color: var(--text); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .nav-mob-header-plan { font-size: .7rem; color: var(--text3); margin-top: 2px; }
    .nav-mob-header-plan b { color: var(--brand); text-transform: uppercase; font-weight: 800; letter-spacing: .3px; }
    .nav-mob-close {
      background: none; border: 1px solid var(--border); border-radius: 8px;
      color: var(--text2); width: 36px; height: 36px; font-size: 1rem; flex-shrink: 0;
      cursor: pointer; display: flex; align-items: center; justify-content: center;
      transition: border-color .15s;
    }
    .nav-mob-close:hover { border-color: var(--brand); }
    /* Section labels */
    .nav-mob-section {
      font-size: .68rem; font-weight: 700; text-transform: uppercase;
      letter-spacing: .08em; color: var(--text3); padding: 18px 18px 8px;
    }
    /* Items */
    .nav-mob-items { display: flex; flex-direction: column; padding: 0; }
    .nav-mob-items a, .nav-mob-items button {
      display: flex; align-items: center; gap: 14px; height: 52px;
      padding: 0 18px; background: none; border: none;
      border-bottom: 1px solid var(--border);
      color: var(--text2); font-size: .88rem; font-weight: 500;
      font-family: var(--font-body); cursor: pointer; text-decoration: none;
      transition: background .12s; width: 100%; text-align: left;
    }
    .nav-mob-items a:last-child, .nav-mob-items button:last-child { border-bottom: none; }
    .nav-mob-items a:active, .nav-mob-items button:active { background: rgba(255,255,255,.06); }
    .nav-mob-items .mob-active {
      background: rgba(79,124,255,.08); border-left: 3px solid var(--brand); color: var(--brand);
    }
    .nav-mob-items .mob-logout { color: #dc2626; }
    .nav-mob-items .mob-logout:active { background: rgba(220,38,38,.08); }
    .nav-mob-auth {
      display: flex; gap: 10px; padding: 16px 18px;
      border-bottom: 1px solid var(--border);
    }
    .nav-mob-auth-btn {
      flex: 1; display: flex; align-items: center; justify-content: center; gap: 8px;
      padding: 12px; border-radius: 10px; font-size: .88rem; font-weight: 600;
      font-family: var(--font-body); cursor: pointer; transition: background .15s;
      background: var(--surf2); border: 1px solid var(--border); color: var(--text2);
    }
    .nav-mob-auth-btn:active { background: rgba(255,255,255,.06); }
    .nav-mob-auth-primary {
      /* v0.14.35.b: CTA plano consistente. */
      background: var(--brand-cta); border-color: var(--brand-cta); color: #fff;
    }
    .nav-mob-auth-primary:active { background: #3a63ec; }
    [data-theme="light"] .nav-mob-auth-btn { background: var(--surf2); }
    [data-theme="light"] .nav-mob-auth-primary { background: var(--brand-cta); color: #fff; }
    .nav-mob-items svg { flex-shrink: 0; opacity: .7; }
    /* Lang row */
    .nav-mob-items .mob-lang-row {
      display: flex; gap: 8px; padding: 10px 18px; height: auto;
      border-bottom: 1px solid var(--border);
    }
    .nav-mob-items .mob-lang-btn {
      flex: 1; text-align: center; padding: 10px; border-radius: 10px;
      border: 1px solid var(--border); background: none;
      color: var(--text2); font-weight: 600; font-size: .85rem; cursor: pointer;
      transition: all .15s; font-family: var(--font-body); text-decoration: none;
    }
    .nav-mob-items .mob-lang-btn.active {
      background: rgba(79,124,255,.15); border-color: var(--brand); color: var(--brand);
    }

    @media (max-width: 640px) {
      .nav-r { gap: 8px; }
      .nav-r .lang-switch { display: none; }
      .nav-r #navAffiliate { display: none !important; }
      .nav-r .btn-nav { display: none; }
      .nav-r .user-menu-chevron { display: none; }
      .nav-r #userEmail { display: none; }
      .nav-r #balBadge { display: none; }
      .nav-r #themeBtn { display: none; }
      /* v0.14.11g — landing mobile: theme toggle visible (en workspace vive dentro del menú avatar) */
      body:not(.workspace) .nav-r #themeBtn { display: inline-flex !important; }
      .nav-upgrade-btn { padding: 6px 12px; font-size: .72rem; }
      .user-menu-dropdown { display: none !important; }
      .bal-unit { display: none; }
      .nav-hamburger { display: flex; }
      /* v0.14.10 — fuera del workspace ocultamos hamburguesa; landing usa nav-mob-cta */
      body:not(.workspace) .nav-hamburger { display: none !important; }
      /* v0.14.31.d — en workspace mobile la bottom-bar + sheet "Más" reemplazan la nav;
         escondemos también la hamburguesa original (queda tapada por overlay y sin función). */
      body.workspace .nav-hamburger { display: none !important; }
      .nav-mob-cta { display: inline-flex; }
      /* Hero input row — select + button stacked full-width so nothing is cut off */
      .hero-lang-row { flex-direction: column; gap: 10px; }
      .hero-lang-row > select,
      .hero-lang-row > button { width: 100%; flex: none; }
    }
    @media (max-width: 360px) {
      .nav-r { gap: 6px; }
    }

    /* Tablet + mobile */
    @media (max-width: 768px) {
      /* Nav */
      nav { padding: 0 12px; height: 52px; }
      .user-pill span { display: none; }
      .badge-bal { padding: 4px 10px; font-size: .72rem; }

      /* Hero */
      .hero { padding: 48px 16px 32px; }
      .hero-h1 { font-size: clamp(2rem, 9vw, 4.8rem); }
      .hero-input-wrap { max-width: 100%; }
      .hero-input-wrap.has-result { flex-direction: column; }
      .hero-input-wrap.has-result .hero-input-left { flex: none; width: 100%; }
      .btn-queue-add { width: 44px; }

      /* Adapt — mobile compact layout */
      .adapt-section { overflow: visible; }
      .adapt-inner { grid-template-columns: 1fr; gap: 16px; min-width: 0; }
      .adapt-left { min-width: 0; }
      .adapt-header h2 { font-size: 1.6rem; }
      .adapt-header p { display: none; }

      /* Textarea compact with transform button */
      .script-ta { min-height: 100px; font-size: 14px; }
      .adapt-run-btn { margin-top: 10px; padding: 14px; font-size: .9rem; }

      /* Style grid → horizontal carousel */
      .style-grid {
        display: flex !important; flex-wrap: nowrap;
        overflow-x: auto; overflow-y: visible;
        -webkit-overflow-scrolling: touch;
        gap: 8px; padding: 8px 0 12px;
        scroll-snap-type: x mandatory;
      }
      .style-grid::-webkit-scrollbar { height: 3px; }
      .style-grid::-webkit-scrollbar-thumb { background: rgba(255,255,255,.1); border-radius: 3px; }
      .style-pill {
        flex: 0 0 140px; min-height: 80px; padding: 12px;
        scroll-snap-align: start;
      }
      .style-pill:hover, .style-pill.act { transform: none; }
      .style-pill .sp-emoji { width: 30px; height: 30px; }
      .style-pill .sp-emoji svg { width: 20px; height: 24px; }
      .style-pill .sp-name { font-size: .68rem; }
      .style-pill .sp-hint { display: none; }

      /* "+" assistant card in carousel */
      .style-pill-add { flex: 0 0 100px; min-height: 80px; }

      /* Search bar compact */
      .style-search { font-size: 14px; padding: 8px 12px; }

      /* Preview card hidden on mobile — result shows inline after transform */
      .adapt-right { display: none; }

      /* Custom row compact */
      .custom-row input { font-size: 14px; }

      /* Mobile result inline */
      .mobile-adapt-result { display: none !important; }
      .mobile-adapt-result.on { display: block !important; }

      /* Flow */
      .flow-nodes { flex-direction: column; gap: 16px; }
      .flow-node { max-width: 100%; }
      .flow-arrow { display: none; }

      /* Pricing */
      .section, .section-sm { padding: 64px 16px; }

      /* Project detail */
      .proj-detail-inner { padding: 16px 16px 60px; }
      .proj-detail-name { font-size: 1.1rem; }
      .script-card-perf { flex-direction: column; }
      .script-card-perf .perf-field input { width: 100%; }
      .script-card-perf .perf-field textarea { width: 100%; }

      /* Modals → bottom sheet */
      .overlay { align-items: flex-end; padding: 0; }
      .modal {
        border-radius: 20px 20px 0 0; max-width: 100%;
        padding: 28px 20px 40px;
        animation: sheet-up .25s ease;
      }
      @keyframes sheet-up { from { transform: translateY(100%); } to { transform: translateY(0); } }

      /* Drawer */
      .drawer { width: 100%; }

      /* Misc */
      .demo-grid { grid-template-columns: 1fr; }
      .testi-grid { grid-template-columns: 1fr; }
      .hist-inner { padding: 20px 16px; }
      .btn-shimmer { min-height: 48px; font-size: .9rem; }
      .btn-plan { min-height: 44px; }
      .toast { font-size: .78rem; bottom: 20px; }
    }

    /* Small mobile */
    @media (max-width: 480px) {
      .pricing-cards { grid-template-columns: 1fr !important; }
      .hero-badge { font-size: .68rem; }
      .hero-sub { font-size: .9rem; }
    }

    /* ── Onboarding Tour ─────────────────────────────────────── */
    .tour-overlay {
      position: fixed; inset: 0; background: transparent;
      z-index: 10000; transition: opacity .25s;
    }
    .tour-highlight { position: relative; z-index: 10001; border-radius: var(--rsm); pointer-events: none; }   /* solo visual: no clicable; únicos botones funcionales = los del tutorial */
    .tour-highlight.tour-clickable { pointer-events: auto; }   /* paso interactivo (hold): el botón resaltado SÍ recibe el clic (ej. «Roba la idea») */
    /* Spotlight: oscurece TODO menos el hueco del elemento (box-shadow gigante).
       Vive a nivel de body → inmune al stacking context del island, así lo de
       dentro queda a brillo real, no atenuado por la capa del tour. */
    .tour-spotlight {
      position: fixed; z-index: 10001; pointer-events: none;
      border-radius: var(--rsm); display: none;
      animation: tourPulse 1.7s ease-in-out infinite;
    }
    @keyframes tourPulse {
      0%,100% { box-shadow: 0 0 0 3px rgba(79,124,255,.85), 0 0 26px 3px rgba(79,124,255,.5), 0 0 0 9999px rgba(0,0,0,.62); }
      50%     { box-shadow: 0 0 0 5px rgba(79,124,255,1),   0 0 40px 6px rgba(79,124,255,.7), 0 0 0 9999px rgba(0,0,0,.62); }
    }
    @media (prefers-reduced-motion: reduce) {
      .tour-spotlight { animation: none; box-shadow: 0 0 0 4px rgba(79,124,255,.9), 0 0 30px 4px rgba(79,124,255,.55), 0 0 0 9999px rgba(0,0,0,.62); }
    }
    /* Mobile-first: fixed bottom sheet */
    .tour-tooltip {
      position: fixed; z-index: 10002;
      bottom: 0; left: 0; right: 0;
      background: var(--surf); border-top: 1px solid rgba(79,124,255,.2);
      border-radius: 20px 20px 0 0; padding: 24px 20px 28px;
      box-shadow: 0 -8px 32px rgba(0,0,0,.4);
      font-size: .92rem; color: var(--text); line-height: 1.55;
      transform: translateY(100%); transition: transform .3s ease;
    }
    .tour-tooltip.on { transform: translateY(0); }
    .tour-tooltip::before { display: none; }
    .tour-handle {
      width: 36px; height: 4px; border-radius: 2px; background: var(--border);
      margin: 0 auto 16px;
    }
    .tour-step-count { font-size: .72rem; color: var(--text3); margin-bottom: 6px; font-weight: 500; letter-spacing: .3px; }
    .tour-text { margin-bottom: 18px; font-weight: 300; }
    .tour-btns { display: flex; align-items: center; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
    .tour-btn-skip { margin-right: auto; }   /* «Saltar» a la izquierda; Atrás/Siguiente a la derecha */
    .tour-btn {
      padding: 10px 16px; border-radius: var(--rsm); font-size: .85rem;
      font-weight: 600; cursor: pointer; border: none; transition: all .2s;
      -webkit-tap-highlight-color: transparent;
    }
    .tour-btn-skip { background: transparent; color: var(--text3); padding: 10px 12px; }
    .tour-btn-prev { background: var(--surf2); color: var(--text); border: 1px solid var(--border); }
    .tour-btn-next {
      /* v0.14.35.a: consistencia CTA — antes var(--grad), ahora --brand-cta. */
      background: var(--brand-cta); color: #fff;
      box-shadow: 0 4px 0 #22357c, 0 2px 10px rgba(79,124,255,.25);
      transform: translateY(0); transition: transform .12s, box-shadow .12s;
    }
    .tour-btn-next:hover { transform: translateY(-1px); box-shadow: 0 5px 0 #22357c, 0 2px 10px rgba(79,124,255,.3); }
    .tour-btn-next:active { transform: translateY(3px); box-shadow: 0 1px 0 #22357c; }
    .tour-progress { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
    .tour-dot {
      width: 8px; height: 8px; border-radius: 50%;
      background: rgba(255,255,255,.1); transition: all .2s;
    }
    .tour-dot.active { background: var(--brand); width: 20px; border-radius: 4px; }

    /* Desktop: positioned tooltip */
    @media (min-width: 768px) {
      .tour-tooltip {
        position: absolute; bottom: auto; left: auto; right: auto;
        max-width: 420px; width: max-content;
        border-radius: var(--r); border: 1px solid rgba(79,124,255,.15);
        padding: 20px 22px 16px;
        box-shadow: 0 12px 40px rgba(0,0,0,.35);
        transform: none;
      }
      .tour-tooltip.on { transform: none; }
      .tour-handle { display: none; }
      .tour-btn { padding: 8px 16px; font-size: .82rem; }
    }

    /* Tutorial button */
    /* Idea FAB — pill on desktop, circle on mobile */
    .idea-fab {
      position: fixed; bottom: 24px; right: 24px; z-index: 200;
      height: 48px; border-radius: 9999px;
      background: linear-gradient(135deg, var(--brand-500), #FBBF24);
      border: none; cursor: pointer; display: none;
      align-items: center; justify-content: center; gap: 8px;
      padding: 0 20px;
      box-shadow: 0 4px 16px rgba(79,124,255,.4), 0 4px 0 #3a63ec;
      transition: transform .2s, box-shadow .2s;
      animation: fabIn .4s cubic-bezier(.34,1.56,.64,1) 1s both;
      font-family: var(--font-body); font-size: .85rem; font-weight: 600;
      color: #fff; white-space: nowrap;
    }
    .idea-fab.on { display: flex; }
    .idea-fab:hover { transform: scale(1.03); box-shadow: 0 6px 24px rgba(79,124,255,.5), 0 4px 0 #3a63ec; }
    .idea-fab:active { transform: translateY(3px) scale(1); box-shadow: 0 2px 8px rgba(79,124,255,.3), 0 1px 0 #3a63ec; }
    .idea-fab svg { width: 20px; height: 20px; flex-shrink: 0; }
    .idea-fab-label { }
    @keyframes fabIn { from { transform: scale(0); } to { transform: scale(1); } }
    @keyframes fabPulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.04); } }
    .idea-fab:not(:hover) { animation: fabIn .4s cubic-bezier(.34,1.56,.64,1) 1s both, fabPulse .6s ease 10s infinite; }

    /* Onboarding tooltip */
    .idea-fab-onboard {
      position: fixed; bottom: 80px; right: 24px; z-index: 201;
      max-width: 260px; padding: 14px 16px;
      background: var(--surf); border: 1px solid var(--border);
      border-radius: 12px; box-shadow: var(--sh-lg);
      font-size: .82rem; color: var(--text2); line-height: 1.5;
      display: none;
      animation: onboardIn .25s ease;
    }
    .idea-fab-onboard.on { display: block; }
    .idea-fab-onboard::after {
      content: ""; position: absolute; bottom: -6px; right: 28px;
      width: 12px; height: 12px; background: var(--surf);
      border-right: 1px solid var(--border); border-bottom: 1px solid var(--border);
      transform: rotate(45deg);
    }
    .idea-fab-onboard-x {
      position: absolute; top: 6px; right: 8px;
      background: none; border: none; color: var(--text3); cursor: pointer;
      font-size: .8rem; padding: 2px 4px;
    }
    @keyframes onboardIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

    @media (max-width: 768px) {
      .idea-fab { width: 52px; height: 52px; padding: 0; bottom: 90px; right: 16px; }
      .idea-fab-label { display: none; }
      .idea-fab svg { width: 24px; height: 24px; }
      .idea-fab-onboard { bottom: 150px; right: 16px; }
      .idea-fab-onboard::after { right: 20px; }
    }


    /* Assistant cards in style grid */
    .style-pill.assistant-card .sp-emoji img {
      width: 28px; height: 28px; border-radius: 6px; object-fit: cover;
    }
    .style-pill .sp-badge {
      position: absolute; top: 6px; right: 6px;
      font-size: .55rem; font-weight: 600; text-transform: uppercase;
      letter-spacing: .5px; padding: 2px 6px; border-radius: 4px;
      background: rgba(20,184,166,.15); color: #14b8a6;
    }
    .style-pill .sp-actions {
      position: absolute; top: 6px; right: 6px;
      display: none; gap: 4px;
    }
    .style-pill.assistant-card:hover .sp-actions { display: flex; }
    .style-pill.assistant-card:hover .sp-badge { display: none; }
    .sp-act-btn {
      background: var(--surf2); border: 1px solid var(--border);
      color: var(--text3); width: 24px; height: 24px; border-radius: 4px;
      cursor: pointer; font-size: .65rem; display: flex; align-items: center;
      justify-content: center; transition: all .15s;
    }
    .sp-act-btn:hover { color: var(--text); border-color: var(--text3); }
    .sp-act-btn.del:hover { color: #f87171; border-color: #f87171; }

    /* New assistant button (+ card) */
    .style-pill-add {
      border: 1px dashed var(--border);
      border-radius: var(--r); min-height: 110px;
      display: flex; flex-direction: column; align-items: center;
      justify-content: center; gap: 8px; cursor: pointer;
      color: var(--text3); transition: all .18s;
      background: transparent; padding: 0;
    }
    .style-pill-add:hover { border-color: var(--brand); color: var(--text2); }
    .style-pill-add.disabled { opacity: .4; cursor: not-allowed; }
    .style-pill-add .add-icon { font-size: 1.2rem; }
    .style-pill-add .add-label { font-size: .72rem; }

    /* Search bar above grid */
    .style-search {
      width: 100%; padding: 10px 14px; margin-bottom: 12px;
      background: var(--surf2); border: 1px solid var(--border);
      border-radius: var(--rsm); color: var(--text); font-size: .85rem;
      font-family: var(--font-body); outline: none; transition: border-color .2s;
    }
    .style-search:focus { border-color: var(--brand); }

    /* ── Teleprompter ──────────────────────────────── */
    #tpOverlay {
      position: fixed; inset: 0; z-index: 500;
      background: #0a0a0a; display: none;
      flex-direction: column; overflow: hidden;
    }
    #tpOverlay.on { display: flex; }
    #tpHeader {
      position: absolute; top: 0; left: 0; right: 0; z-index: 10;
      display: flex; justify-content: space-between; align-items: center;
      padding: 16px 20px; padding-top: calc(16px + env(safe-area-inset-top, 0px));
      min-height: 64px; transition: opacity .3s;
      background: linear-gradient(rgba(0,0,0,.75) 0%, rgba(0,0,0,.4) 60%, transparent 100%);
    }
    #tpHeader.hide { opacity: 0; pointer-events: none; }
    #tpControls {
      position: absolute; bottom: 0; left: 0; right: 0; z-index: 10;
      display: flex; align-items: center; justify-content: center; gap: 16px;
      padding: 20px 20px; padding-bottom: calc(20px + env(safe-area-inset-bottom, 0px));
      min-height: 96px; transition: opacity .3s;
      background: linear-gradient(transparent 0%, rgba(0,0,0,.4) 30%, rgba(0,0,0,.75) 100%);
    }
    #tpControls.hide { opacity: 0; pointer-events: none; }
    .tp-btn {
      background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.15);
      color: #fff; width: 44px; height: 44px; border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      cursor: pointer; font-size: 1.1rem;
      box-shadow: 0 3px 0 rgba(255,255,255,.1);
      transform: translateY(0); transition: all .2s, transform .1s, box-shadow .1s;
    }
    .tp-btn:hover { background: rgba(255,255,255,.2); }
    .tp-btn:active { transform: translateY(2px); box-shadow: 0 1px 0 rgba(255,255,255,.1); }
    .tp-btn-play { width: 56px; height: 56px; font-size: 1.3rem; background: rgba(79,124,255,.3); border-color: rgba(79,124,255,.5); box-shadow: 0 4px 0 #3a63ec; }
    .tp-btn-play:hover { background: rgba(79,124,255,.5); }
    .tp-btn-play:active { box-shadow: 0 1px 0 #3a63ec; }
    .tp-countdown {
      position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
      font-size: 120px; font-family: var(--font-display); color: #fff; z-index: 3;
      animation: tpCountFade 1s ease both;
    }
    @keyframes tpCountFade { 0% { transform: scale(.8); opacity: 0; } 20% { transform: scale(1.05); opacity: 1; } 80% { opacity: 1; } 100% { transform: scale(.9); opacity: 0; } }
    #tpEnd {
      position: absolute; inset: 0; display: none; flex-direction: column;
      align-items: center; justify-content: center; gap: 16px; z-index: 3;
      background: rgba(0,0,0,.8);
    }
    #tpEnd.on { display: flex; }
    #tpEnd h2 { font-family: var(--font-display); font-size: 2rem; color: #fff; }
    /* Settings panel — desktop: floating card, mobile: bottom sheet */
    #tpSettings {
      position: absolute; z-index: 60; overflow-y: auto; overflow-x: hidden;
      background: rgba(10,10,10,.78); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
      border: 1px solid rgba(255,255,255,.15); box-shadow: 0 12px 48px rgba(0,0,0,.55);
      padding: 20px; opacity: 0; pointer-events: none;
      transition: opacity .2s ease, transform .2s ease;
      scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.15) transparent;
    }
    #tpSettings.on { opacity: 1; pointer-events: auto; }
    /* Desktop */
    @media (min-width: 769px) {
      #tpSettings {
        top: 16px; right: 16px; width: 320px; max-height: 70vh;
        border-radius: 14px; transform: translateX(20px);
      }
      #tpSettings.on { transform: translateX(0); }
    }
    /* Mobile — bottom sheet */
    @media (max-width: 768px) {
      #tpSettings {
        bottom: 0; left: 0; right: 0; width: 100%; max-height: 70vh;
        border-radius: 20px 20px 0 0; border-bottom: none;
        background: rgba(10,10,10,.88); transform: translateY(100%);
      }
      #tpSettings.on { transform: translateY(0); }
    }
    .tp-sheet-handle {
      width: 40px; height: 4px; border-radius: 2px; background: rgba(255,255,255,.25);
      margin: 0 auto 14px; display: none;
    }
    @media (max-width: 768px) { .tp-sheet-handle { display: block; } }
    .tp-s-header {
      display: flex; align-items: center; justify-content: space-between;
      padding-bottom: 14px; border-bottom: 1px solid rgba(255,255,255,.08); margin-bottom: 16px;
    }
    .tp-s-header span { font-size: .94rem; font-weight: 600; color: #fff; }
    .tp-s-close {
      width: 32px; height: 32px; border-radius: 50%; border: none;
      background: rgba(255,255,255,.08); color: rgba(255,255,255,.5);
      cursor: pointer; font-size: .8rem; display: flex; align-items: center; justify-content: center;
      transition: background .15s;
    }
    .tp-s-close:hover { background: rgba(255,255,255,.15); }
    .tp-s-label {
      font-size: .69rem; text-transform: uppercase; letter-spacing: .08em;
      color: rgba(255,255,255,.45); margin-bottom: 10px; margin-top: 2px;
    }
    .tp-s-sep { height: 1px; background: rgba(255,255,255,.06); margin: 14px 0; }
    .tp-s-row {
      display: flex; align-items: center; justify-content: space-between; gap: 12px;
      margin-bottom: 12px;
    }
    .tp-s-row label { font-size: .82rem; color: rgba(255,255,255,.7); margin: 0; white-space: nowrap; }
    .tp-s-tip {
      font-size: .72rem; color: rgba(255,255,255,.35); line-height: 1.4; margin: -6px 0 12px;
    }
    /* Range slider */
    .tp-s-slider-wrap {
      display: flex; align-items: center; gap: 8px; margin-bottom: 4px;
    }
    .tp-s-slider-wrap input[type="range"] {
      flex: 1; -webkit-appearance: none; appearance: none;
      height: 4px; border-radius: 2px; background: rgba(255,255,255,.15); outline: none;
    }
    .tp-s-slider-wrap input[type="range"]::-webkit-slider-thumb {
      -webkit-appearance: none; width: 18px; height: 18px; border-radius: 50%;
      background: var(--brand-500); cursor: pointer; border: none;
      box-shadow: 0 0 0 3px rgba(79,124,255,.2);
      transition: transform .12s, box-shadow .12s;
    }
    .tp-s-slider-wrap input[type="range"]::-webkit-slider-thumb:active {
      transform: scale(1.2); box-shadow: 0 0 0 5px rgba(79,124,255,.3);
    }
    .tp-s-slider-wrap input[type="range"]::-moz-range-thumb {
      width: 18px; height: 18px; border-radius: 50%;
      background: var(--brand-500); cursor: pointer; border: none;
      box-shadow: 0 0 0 3px rgba(79,124,255,.2);
    }
    .tp-s-slider-wrap input[type="range"]:focus-visible {
      outline: 2px solid rgba(79,124,255,.6); outline-offset: 2px;
    }
    .tp-s-val {
      font-size: .72rem; color: rgba(255,255,255,.4); text-align: center;
      min-width: 36px; font-variant-numeric: tabular-nums;
    }
    .tp-s-slider-btn {
      width: 32px; height: 32px; border-radius: 8px; border: 1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.06); color: rgba(255,255,255,.5);
      cursor: pointer; font-size: .9rem; display: flex; align-items: center; justify-content: center;
      transition: background .12s; flex-shrink: 0;
    }
    .tp-s-slider-btn:hover { background: rgba(255,255,255,.12); }
    .tp-s-slider-btn:active { background: rgba(79,124,255,.2); }
    /* Toggle */
    .tp-toggle {
      width: 50px; height: 28px; border-radius: 14px; background: rgba(255,255,255,.15);
      border: none; cursor: pointer; position: relative; transition: background .18s ease;
      flex-shrink: 0;
    }
    .tp-toggle.on { background: var(--brand-500); }
    .tp-toggle::after {
      content: ""; position: absolute; top: 2px; left: 2px; width: 24px; height: 24px;
      border-radius: 50%; background: #fff; transition: transform .18s ease;
    }
    .tp-toggle.on::after { transform: translateX(22px); }
    .tp-toggle:focus-visible { outline: 2px solid rgba(79,124,255,.6); outline-offset: 2px; }
    /* Color buttons */
    .tp-color-btn {
      width: 32px; height: 32px; border-radius: 50%; border: 2px solid rgba(255,255,255,.2);
      cursor: pointer; transition: all .15s; flex-shrink: 0;
    }
    .tp-color-btn.on { border: 3px solid var(--brand-500); box-shadow: 0 0 0 2px rgba(79,124,255,.3); }
    .tp-color-btn:hover { transform: scale(1.08); }
    .tp-color-btn:focus-visible { outline: 2px solid rgba(79,124,255,.6); outline-offset: 2px; }
    /* Countdown pills */
    .tp-cd-pills { display: flex; gap: 6px; }
    .tp-cd-pill {
      padding: 6px 14px; border-radius: 8px; border: 1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.06); color: rgba(255,255,255,.5);
      cursor: pointer; font-size: .78rem; font-weight: 600; transition: all .15s;
    }
    .tp-cd-pill.on { background: rgba(79,124,255,.25); border-color: rgba(79,124,255,.5); color: var(--brand-500); }
    .tp-cd-pill:hover { background: rgba(255,255,255,.1); }
    .tp-cd-pill:focus-visible { outline: 2px solid rgba(79,124,255,.6); outline-offset: 2px; }
    .tp-cd-pills.disabled { opacity: .35; pointer-events: none; }
    /* Action buttons */
    .tp-s-action {
      width: 100%; padding: 10px 0; border-radius: 10px; border: 1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.04); color: rgba(255,255,255,.55);
      cursor: pointer; font-size: .82rem; font-weight: 500; transition: all .15s;
      font-family: var(--font-body); margin-bottom: 8px;
    }
    .tp-s-action:hover { background: rgba(255,255,255,.08); color: rgba(255,255,255,.7); }
    .tp-s-action.danger { color: rgba(239,68,68,.6); border-color: rgba(239,68,68,.12); }
    .tp-s-action.danger:hover { background: rgba(239,68,68,.08); color: rgba(239,68,68,.8); }

    /* Teleprompter recording */
    #tpRecBtn {
      display: flex; align-items: center; gap: 8px;
      background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.15);
      color: #fff; padding: 8px 16px; border-radius: 9999px;
      cursor: pointer; font-size: .82rem; font-weight: 500;
      transition: all .2s; font-family: var(--font-body);
    }
    #tpRecBtn:hover { background: rgba(255,255,255,.2); }
    #tpRecBtn.recording { background: rgba(239,68,68,.2); border-color: rgba(239,68,68,.5); }
    .tp-rec-dot {
      width: 10px; height: 10px; border-radius: 50%; background: #ef4444;
      flex-shrink: 0;
    }
    .tp-rec-dot.blink { animation: tpBlink 1s infinite; }
    @keyframes tpBlink { 0%,100% { opacity: 1; } 50% { opacity: .3; } }
    #tpRecTimer { font-variant-numeric: tabular-nums; }
    /* Recording result modal */
    #tpRecResult {
      position: absolute; inset: 0; z-index: 6; background: rgba(0,0,0,.9);
      display: none; flex-direction: column; align-items: center; justify-content: center;
      gap: 16px; padding: 24px;
    }
    #tpRecResult.on { display: flex; }
    #tpRecResult video { max-width: 480px; width: 100%; border-radius: 12px; background: #000; }
    .tp-rec-info { color: rgba(255,255,255,.5); font-size: .78rem; display: flex; gap: 16px; }
    /* Privacy modal */
    #tpPrivacy {
      position: absolute; inset: 0; z-index: 7; background: rgba(0,0,0,.85);
      display: none; align-items: center; justify-content: center; padding: 24px;
    }
    #tpPrivacy.on { display: flex; }
    .tp-privacy-card {
      background: #111; border: 1px solid rgba(255,255,255,.1); border-radius: 16px;
      padding: 32px 28px; max-width: 400px; text-align: center;
    }
    .tp-privacy-card h3 { font-family: var(--font-display); font-size: 1.2rem; color: #fff; margin-bottom: 8px; }
    .tp-privacy-card p { color: rgba(255,255,255,.5); font-size: .85rem; line-height: 1.5; margin-bottom: 20px; }
    /* Save hint tooltip */
    #tpSaveHint {
      position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%);
      background: rgba(0,0,0,.85); border: 1px solid rgba(255,255,255,.15);
      color: rgba(255,255,255,.8); font-size: .75rem; line-height: 1.45;
      padding: 8px 12px; border-radius: 8px; white-space: nowrap; max-width: 260px;
      white-space: normal; text-align: center; z-index: 10; pointer-events: none;
    }
    #tpSaveHint::after {
      content: ''; position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
      border: 5px solid transparent; border-top-color: rgba(0,0,0,.85);
    }
    .tp-save-wrap { position: relative; display: inline-block; }

    /* ── Fullcam layout mode ────────────────────────────────── */
    #tpOverlay.tp-fullcam .tp-cam-box {
      position: absolute !important; inset: 0 !important;
      width: 100% !important; height: 100% !important;
      border: none !important; border-radius: 0 !important;
      box-shadow: none !important; z-index: 0 !important;
      background: #000 !important;
    }
    #tpOverlay.tp-fullcam .tp-cam-box .tp-box-bar,
    #tpOverlay.tp-fullcam .tp-cam-box .tp-resize-handle { display: none !important; }
    #tpOverlay.tp-fullcam .tp-cam-box .tp-box-content { border-radius: 0; }
    #tpOverlay.tp-fullcam .tp-text-box {
      left: 0 !important; width: 100% !important;
      background: rgba(0,0,0,.48) !important;
      border: none !important; border-radius: 0 !important;
      box-shadow: none !important; backdrop-filter: none !important;
      -webkit-backdrop-filter: none !important;
      z-index: 2 !important;
    }
    #tpOverlay.tp-fullcam .tp-text-box .tp-box-bar,
    #tpOverlay.tp-fullcam .tp-text-box .tp-resize-handle { display: none !important; }
    #tpOverlay.tp-fullcam .tp-text-box .tp-box-content {
      text-align: center; padding: 20px 24px;
    }
    #tpOverlay.tp-fullcam #tpTextInner {
      max-width: 800px; margin: 0 auto;
      text-shadow: 0 2px 8px rgba(0,0,0,.7);
    }
    /* Layout pills in settings */
    .tp-layout-pills { display: flex; gap: 6px; margin-bottom: 14px; }
    .tp-layout-pill {
      flex: 1; padding: 8px 4px; border-radius: 8px;
      border: 1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.06); color: rgba(255,255,255,.5);
      cursor: pointer; font-size: .78rem; font-weight: 600;
      text-align: center; transition: all .15s;
    }
    .tp-layout-pill.on {
      background: rgba(79,124,255,.25); border-color: rgba(79,124,255,.5); color: var(--brand-500);
    }
    .tp-layout-pill:hover { background: rgba(255,255,255,.1); }
    .tp-fullcam-only { display: none; }
    #tpSettings.tp-mode-fullcam .tp-fullcam-only { display: block; }
    .tp-free-only { display: block; }
    #tpSettings.tp-mode-fullcam .tp-free-only { display: none; }

    /* ── Draggable boxes ──────────────────────────────────────── */
    .tp-text-box,
    .tp-cam-box {
      position: absolute;
      background: rgba(10,10,10,0.72);
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
      border: 2px solid rgba(255,255,255,0.18);
      border-radius: 14px;
      box-shadow: 0 12px 48px rgba(0,0,0,0.55);
      display: flex;
      flex-direction: column;
      overflow: hidden;
      z-index: 50;
      touch-action: none;
    }
    .tp-text-box.tp-dragging,
    .tp-cam-box.tp-dragging {
      border-color: var(--brand-500);
      box-shadow: 0 16px 64px rgba(79,124,255,0.45);
    }
    .tp-box-bar {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 10px 14px;
      background: rgba(0,0,0,0.35);
      border-bottom: 1px solid rgba(255,255,255,0.08);
      cursor: grab;
      user-select: none;
      flex-shrink: 0;
    }
    .tp-box-bar:active { cursor: grabbing; }
    .tp-box-grabber {
      width: 24px; height: 4px;
      background: repeating-linear-gradient(
        to bottom,
        rgba(255,255,255,0.35) 0px, rgba(255,255,255,0.35) 2px,
        transparent 2px, transparent 5px
      );
      background-size: 100% 15px;
      height: 12px;
      border-radius: 2px;
      flex-shrink: 0;
    }
    .tp-box-title {
      font-size: 13px; font-weight: 600;
      color: rgba(255,255,255,0.85);
      letter-spacing: 0.02em; flex: 1;
    }
    .tp-box-close {
      background: none; border: none;
      color: rgba(255,255,255,0.6);
      font-size: 18px; cursor: pointer;
      padding: 4px 8px; border-radius: 6px;
      transition: background 0.15s;
    }
    .tp-box-close:hover { background: rgba(255,255,255,0.1); color: #fff; }
    .tp-box-content {
      flex: 1; overflow: auto;
      padding: 16px;
      color: rgba(255,255,255,0.92);
      font-size: 18px; line-height: 1.5;
    }
    .tp-box-placeholder { opacity: 0.4; font-style: italic; }
    .tp-box-placeholder-cam {
      display: flex; align-items: center; justify-content: center;
      height: 100%; font-size: 48px; opacity: 0.3;
    }
    #tpTextInner {
      white-space: pre-wrap;
      word-break: break-word;
    }
    .tp-cam-content {
      padding: 0 !important;
      position: relative;
      background: #000;
    }
    #tpCamBoxVideo {
      width: 100%; height: 100%;
      object-fit: cover;
      transform: scaleX(-1);
      display: block;
    }
    /* bug1: botón para activar la cámara cuando aún no hay stream (respeta la privacidad) */
    .tp-cam-enable {
      position: absolute; inset: 0; margin: auto;
      display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
      width: 100%; height: 100%;
      background: #000; border: none; color: rgba(255,255,255,.82);
      font-size: 15px; font-weight: 600; cursor: pointer;
    }
    .tp-cam-enable svg { opacity: .85; }
    .tp-cam-enable:hover { background: #0a0a0a; color: #fff; }
    .tp-resize-handle {
      position: absolute; width: 16px; height: 16px;
      background: transparent; z-index: 51; touch-action: none;
    }
    .tp-resize-br {
      bottom: 0; right: 0; cursor: nwse-resize;
      background: linear-gradient(
        135deg,
        transparent 50%,
        rgba(255,255,255,0.35) 50%,
        rgba(255,255,255,0.35) 60%,
        transparent 60%,
        transparent 70%,
        rgba(255,255,255,0.35) 70%,
        rgba(255,255,255,0.35) 80%,
        transparent 80%
      );
      border-bottom-right-radius: 14px;
    }
    @media (max-width: 768px) {
      .tp-resize-handle { width: 24px; height: 24px; }
      .tp-box-bar { padding: 14px 16px; }
      .tp-box-grabber { width: 32px; height: 16px; }
    }

    /* v0.14.11a: tut-bubble widget + YouTube modal CSS removed */

    /* ═══════════════════════════════════════════════════════════════
       v0.16.x RADAR LOOP — isla .rs autocontenida (diseño "Loop").
       Scopeada bajo .rs con sus PROPIOS tokens → no choca con el resto
       de la app. Solo vive dentro de #radarRoot en el panel Radar.
       Portado de Reelscript.zip/ds.css (tokens + componentes).
       ═══════════════════════════════════════════════════════════════ */
    .rs[data-theme="dark"] {
      --gray-25:#fbfbfd; --gray-50:#f7f8fa; --gray-100:#eef0f5; --gray-150:#e3e6ed;
      --gray-200:#d6dae3; --gray-300:#aab1c0; --gray-400:#8b92a5; --gray-500:#6b7283;
      --gray-600:#4b5161; --gray-700:#353a47; --gray-800:#262a36; --gray-850:#21242e; --gray-900:#1c1f29;
      --brand-50:#eef3ff; --brand-100:#dde6ff; --brand-200:#c2d2ff; --brand-300:#97b2ff;
      --brand-400:#6f93ff; --brand-500:#4f7cff; --brand-600:#3a63ec; --brand-700:#2f4fc8;
      --brand-800:#2941a0; --brand-900:#22357c;
      --success:#22c55e; --success-bg:rgba(34,197,94,.10); --success-fg:#4ade80; --success-border:rgba(34,197,94,.30);
      --danger:#ef4444; --danger-bg:rgba(239,68,68,.10); --danger-fg:#f87171; --danger-border:rgba(239,68,68,.30);
      --warning:#f59e0b; --warning-bg:rgba(245,158,11,.10); --warning-fg:#fbbf24;
      --info:#3b82f6; --info-bg:rgba(59,130,246,.10); --info-fg:#60a5fa;
      --surface-base:#0a0a0c; --surface-raised:#1a1a1f; --surface-overlay:#24242a; --surface-sunken:#050507;
      --text-primary:#f1f3f7; --text-secondary:#8b92a5; --text-tertiary:#9298a6; --text-disabled:#4b5161; --text-inverse:#07080b;
      --border-subtle:rgba(255,255,255,.06); --border-default:rgba(255,255,255,.10); --border-strong:rgba(255,255,255,.18);
      --thumb-a:rgba(255,255,255,.05); --thumb-b:rgba(255,255,255,.02);
      --shadow-md:0 1px 3px rgba(0,0,0,.4), 0 10px 30px rgba(0,0,0,.35);
      --shadow-lg:0 8px 24px rgba(0,0,0,.45), 0 28px 70px rgba(0,0,0,.5);
      --glow:0 0 0 1px rgba(79,124,255,.35), 0 8px 30px rgba(79,124,255,.25);
    }
    .rs[data-theme="light"] {
      --gray-25:#fbfbfd; --gray-50:#f7f8fa; --gray-100:#eef0f5; --gray-150:#e3e6ed;
      --gray-200:#d6dae3; --gray-300:#aab1c0; --gray-400:#8b92a5; --gray-500:#6b7283;
      --gray-600:#4b5161; --gray-700:#353a47; --gray-800:#262a36; --gray-850:#21242e; --gray-900:#1c1f29;
      --brand-50:#eef3ff; --brand-100:#dde6ff; --brand-200:#c2d2ff; --brand-300:#97b2ff;
      --brand-400:#6f93ff; --brand-500:#4f7cff; --brand-600:#3a63ec; --brand-700:#2f4fc8;
      --brand-800:#2941a0; --brand-900:#22357c;
      --success:#16a34a; --success-bg:rgba(22,163,74,.10); --success-fg:#117033; --success-border:rgba(22,163,74,.25);
      --danger:#dc2626; --danger-bg:rgba(220,38,38,.08); --danger-fg:#dc2626;
      --warning:#d97706; --warning-bg:rgba(217,119,6,.10); --warning-fg:#b45309;
      --info:#2563eb; --info-bg:rgba(37,99,235,.08); --info-fg:#2563eb;
      --surface-base:#f0ede8; --surface-raised:#f7f5f1; --surface-overlay:#ffffff; --surface-sunken:#eae7e1;
      --text-primary:#0a0a0a; --text-secondary:#5a5a5a; --text-tertiary:#6a665e; --text-disabled:#aaa; --text-inverse:#fff;
      --border-subtle:rgba(0,0,0,.05); --border-default:rgba(0,0,0,.09); --border-strong:rgba(0,0,0,.16);
      --thumb-a:rgba(0,0,0,.06); --thumb-b:rgba(0,0,0,.02);
      --shadow-md:0 1px 3px rgba(0,0,0,.06), 0 8px 24px rgba(0,0,0,.08);
      --shadow-lg:0 8px 24px rgba(0,0,0,.10), 0 24px 64px rgba(0,0,0,.12);
      --glow:0 0 0 1px rgba(79,124,255,.30), 0 8px 30px rgba(79,124,255,.18);
    }
    /* Auditoría contraste — tema CLARO: solo acentos ILEGIBLES (<4.5:1). No se
       toca el oscuro ni la identidad de marca pura (eyebrows brand-500, números
       Nivel/×). --success-fg oscurecido arriba (#15803d→#117033) para los estados
       verdes ("Sigue a 1 competidor", "Guardado en Guiones"). */
    .rs[data-theme="light"] .tone-chip.on { color: var(--brand-700); }          /* chip de tono seleccionado: 1.29→ */
    .rs[data-theme="light"] .ava { background: linear-gradient(135deg, var(--brand-600), var(--brand-800)); } /* avatares: blanco legible */
    .rs[data-theme="light"] .bar-line.media,
    .rs[data-theme="light"] .bar-line.media span { color: var(--brand-700); border-color: var(--brand-700); }  /* eje Media: 2.64→ */
    .rs[data-theme="light"] .bar-line.mediana,
    .rs[data-theme="light"] .bar-line.mediana span { color: #946100; border-color: #946100; }                 /* eje Mediana: 1.53→ */
    .rs[data-theme="light"] .brow-attn,
    .rs[data-theme="light"] .stat-d.warn,
    .rs[data-theme="light"] .brow-sig .hot,
    .rs[data-theme="light"] .momentum .line .hot,
    .rs[data-theme="light"] .awaken-line .hot,
    .rs[data-theme="light"] .gui-pub.hot { color: var(--brand-700); }            /* estados: ⚠ Atención, 🔥 explosivos, revísalas */
    /* Texto INFORMATIVO brand-tinted que era ilegible (<2.5:1) — NO son eyebrows
       ni números de identidad: el usuario lo lee. Se oscurece la tinta solo aquí. */
    .rs[data-theme="light"] .brain-tag,        /* "de tus métricas" brand-300 1.78 */
    .rs[data-theme="light"] .met-acct-info,    /* "1/1 análisis restantes" 2.47 */
    .rs[data-theme="light"] .ns-eyebrow,       /* "Tu próxima serie" 2.47 */
    .rs[data-theme="light"] .pub-link,
    .rs[data-theme="light"] .pub-link b { color: var(--brand-700); }   /* "de tu guion «…»" 2.64 */
    .rs {
      --font-display:'Space Grotesk', system-ui, sans-serif;
      --font-display-2:'Space Grotesk', system-ui, sans-serif;
      --font-body:'Hanken Grotesk', 'DM Sans', system-ui, sans-serif;
      --font-mono:'JetBrains Mono', ui-monospace,'SF Mono', Menlo, monospace;
      --ease:cubic-bezier(.4,0,.2,1);
      --ease-out:cubic-bezier(.16,1,.3,1);
      font-family: var(--font-body);
      color: var(--text-primary);
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
      position: relative;
    }
    .rs *, .rs *::before, .rs *::after { box-sizing: border-box; }
    .rs ::selection { background: rgba(79,124,255,.25); }
    .rs .serif { font-family: var(--font-display); font-weight: 400; letter-spacing: .01em; }
    .rs .eyebrow { font-size: 11px; text-transform: uppercase; letter-spacing: .12em; font-weight: 600; color: var(--text-tertiary); }
    .rs .muted { color: var(--text-secondary); }
    .rs .subtle { color: var(--text-tertiary); }
    /* buttons */
    .rs .btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; border:1px solid transparent; border-radius:12px; font-family:var(--font-body); font-weight:600; cursor:pointer; white-space:nowrap; user-select:none; transition: transform .12s var(--ease), background .18s var(--ease), border-color .18s var(--ease), box-shadow .18s var(--ease), color .18s var(--ease); }
    .rs .btn:active { transform: scale(.975); }
    .rs .btn-sm { height:36px; padding:0 14px; font-size:13px; }
    .rs .btn-md { height:44px; padding:0 18px; font-size:14px; }
    .rs .btn-lg { height:54px; padding:0 24px; font-size:16px; border-radius:14px; }
    .rs .btn-primary { background:var(--brand-600); color:#fff; box-shadow:var(--glow); }
    .rs .btn-primary:hover { background:var(--brand-500); }
    .rs .btn-secondary { background:var(--surface-overlay); color:var(--text-primary); border-color:var(--border-default); }
    .rs .btn-secondary:hover { border-color:var(--border-strong); }
    .rs .btn-ghost { background:transparent; color:var(--text-secondary); }
    .rs .btn-ghost:hover { background:var(--surface-overlay); color:var(--text-primary); }
    .rs .btn-block { width:100%; }
    /* spark */
    .rs .spark { display:inline-flex; align-items:center; gap:6px; height:32px; padding:0 12px 0 10px; border-radius:99px; background:var(--surface-overlay); border:1px solid var(--border-subtle); font-size:13px; font-weight:600; color:var(--text-secondary); position:relative; transition: color .2s var(--ease); }
    .rs .spark svg { width:14px; height:14px; }
    .rs .spark b { color:var(--text-primary); font-variant-numeric:tabular-nums; }
    .rs .spark.flash { color:var(--brand-400); }
    /* reverse-trial: badge "Pro · Nd" en la command bar (clicable → Cerebro) */
    .rs .spark.trial { cursor:pointer; color:var(--brand-300); border-color:color-mix(in srgb, var(--brand-500) 45%, transparent); background:color-mix(in srgb, var(--brand-500) 14%, var(--surface-overlay)); }
    .rs .spark.trial .num { color:var(--brand-300); font-weight:700; }
    .rs .spark.trial:hover, .rs .spark.trial:focus-visible { color:var(--brand-200); outline:none; box-shadow:0 0 0 2px color-mix(in srgb, var(--brand-500) 40%, transparent); }
    .rs .spark-fly { position:absolute; right:10px; top:50%; font-size:12px; font-weight:700; color:var(--brand-400); pointer-events:none; animation: rsSparkFly 1s var(--ease-out) forwards; }
    @keyframes rsSparkFly { 0%{opacity:0; transform:translateY(-50%);} 15%{opacity:1;} 100%{opacity:0; transform:translateY(-160%);} }
    /* badges */
    .rs .badge { display:inline-flex; align-items:center; gap:4px; height:24px; padding:0 9px; border-radius:7px; font-size:12px; font-weight:600; line-height:1; }
    .rs .badge-explode { background:linear-gradient(135deg,#4f7cff,#6f93ff); color:#fff; box-shadow:0 2px 10px rgba(79,124,255,.35); }
    .rs .badge-explode.mega { box-shadow:0 0 0 1px rgba(255,255,255,.15), 0 4px 18px rgba(79,124,255,.55); }
    .rs .badge-soft { background:var(--surface-overlay); color:var(--text-secondary); border:1px solid var(--border-subtle); }
    .rs .badge-fav { background:var(--warning-bg); color:var(--warning-fg); }
    .rs .badge-new { background:var(--brand-100); color:var(--brand-700); }
    .rs[data-theme="dark"] .badge-new { background:rgba(79,124,255,.14); color:var(--brand-300); }
    /* thumbnail */
    .rs .thumb { position:relative; border-radius:14px; overflow:hidden; flex-shrink:0; background: repeating-linear-gradient(135deg, var(--thumb-a) 0 10px, var(--thumb-b) 10px 20px), var(--surface-sunken); border:1px solid var(--border-subtle); display:flex; align-items:flex-end; justify-content:flex-start; }
    .rs .thumb img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
    .rs .thumb .thumb-tag { font-family:var(--font-mono); font-size:10px; color:var(--text-tertiary); padding:6px 8px; position:relative; z-index:1; }
    .rs .thumb .play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:34px; height:34px; border-radius:99px; background:rgba(0,0,0,.4); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; z-index:1; }
    .rs .thumb .play::after { content:""; border-left:11px solid rgba(255,255,255,.92); border-top:7px solid transparent; border-bottom:7px solid transparent; margin-left:3px; }
    .rs .thumb .dur { position:absolute; right:6px; bottom:6px; font-family:var(--font-mono); font-size:10px; color:#fff; background:rgba(0,0,0,.55); padding:2px 5px; border-radius:5px; z-index:1; }
    /* avatar */
    .rs .ava { width:30px; height:30px; border-radius:99px; flex-shrink:0; background:linear-gradient(135deg,var(--brand-400),var(--brand-700)); display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; font-size:12px; }
    /* Avatar con foto real (unavatar): la img cubre las iniciales; si falla (onerror) se elimina y quedan las iniciales. */
    .rs .ava--photo { position:relative; overflow:hidden; }
    .rs .ava--photo .ava-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border-radius:inherit; }
    /* app shell (isla) */
    .rs.app { display:flex; flex-direction:column; position:relative; overflow:hidden; background:var(--surface-base); border-radius:18px; border:1px solid var(--border-subtle); min-height:560px; }
    .rs .topbar { display:flex; align-items:center; gap:12px; padding:14px 18px; border-bottom:1px solid var(--border-subtle); background:var(--surface-base); position:relative; z-index:6; }
    .rs .topbar .brand { font-family:var(--font-display); font-size:22px; letter-spacing:.01em; }
    .rs .topbar .brand b { color:var(--brand-500); font-weight:400; }
    .rs .topbar .grow { flex:1; }
    .rs .navchip { display:inline-flex; align-items:center; gap:6px; height:30px; padding:0 12px; border-radius:99px; font-size:12.5px; font-weight:600; color:var(--text-tertiary); cursor:pointer; }
    .rs .navchip.on { background:var(--surface-overlay); color:var(--text-primary); }
    .rs .scroll { flex:1; overflow-y:auto; overflow-x:hidden; scroll-behavior:smooth; position:relative; }
    .rs .pad { padding:20px 18px 40px; }
    .rs--desktop .pad { padding:30px 40px 60px; max-width:1080px; margin:0 auto; }
    /* momentum */
    .rs .momentum { margin-bottom:18px; }
    .rs .momentum .greet { font-family:var(--font-display); font-size:30px; line-height:1.1; margin:0 0 8px; }
    .rs--desktop .momentum .greet { font-size:42px; }
    .rs .momentum .line { font-size:15px; color:var(--text-secondary); line-height:1.5; max-width:62ch; }
    .rs .momentum .line .hot { color:var(--brand-500); font-weight:600; }
    .rs .momentum .line .nudge { color:var(--text-primary); font-weight:600; }
    /* whale */
    /* v3 mockup David — «Llena mi semana»: fila degradada, icono azul + chispa naranja,
       título Clash, píldora EN LOTE y CTA azul a la derecha. */
    .rs .whale { position:relative; overflow:hidden; border-radius:20px; padding:22px 24px; margin:18px 0 22px; min-height:116px; background:linear-gradient(100deg, var(--surface-raised), var(--surface-sunken)); border:1px solid var(--border-default); display:flex; align-items:center; justify-content:space-between; gap:18px; }
    .rs .whale .whale-l { display:flex; align-items:center; gap:18px; min-width:0; }
    .rs .whale .whale-ic { width:54px; height:54px; border-radius:15px; background:linear-gradient(140deg, var(--brand-600,#1B3FD6), var(--brand-500,#2F5BFF)); flex-shrink:0; display:flex; align-items:center; justify-content:center; }
    .rs .whale .whale-ic svg { width:24px; height:24px; color:#FF8A3D; fill:#FF8A3D; }
    .rs .whale .whale-tx { min-width:0; }
    .rs .whale .whale-h { display:flex; align-items:center; gap:10px; margin-bottom:5px; flex-wrap:wrap; }
    .rs .whale .whale-title { font-family:var(--font-display); font-weight:700; font-size:21px; color:var(--text-primary); }
    .rs .whale .whale-pill { font-family:var(--font-mono); font-size:10px; letter-spacing:.08em; color:var(--brand-500,#2F5BFF); background:var(--brand-50, rgba(47,91,255,.14)); padding:3px 8px; border-radius:999px; }
    .rs .whale .whale-sub { margin:0; font-size:14.5px; line-height:1.45; color:var(--text-secondary); max-width:560px; }
    .rs .whale .whale-sub b { color:var(--text-primary); font-weight:600; }
    .rs .whale > .btn { flex:none; }
    /* v3 mockup David — fila «progreso / cerebro» */
    /* Pantalla de espera tras el onboarding (descubriendo reels del nicho). */
    /* v=137: overlay a PANTALLA COMPLETA para la carga post-onboarding y «¿quieres robar
       este?» — tapa rail + barra superior, centrado vertical y horizontal. */
    .rs .onb-fs { position:fixed; inset:0; z-index:55; overflow-y:auto; display:flex; flex-direction:column;
      background:radial-gradient(120% 90% at 50% 30%, color-mix(in srgb, var(--brand-500) 9%, transparent), transparent 62%), var(--surface-base); }
    .rs .onb-fs > .scroll { flex:1; display:flex; flex-direction:column; }
    .rs .onb-fs .canvas { margin:auto; max-width:560px; width:100%; min-height:100%; padding:32px 22px 48px; display:flex; flex-direction:column; align-items:center; justify-content:center; }
    /* Boot full-screen limpio (sin chrome) — centra el orbe de carga en el lienzo .onb-fs. */
    .rs .rs-boot-fs { align-items:center; justify-content:center; }
    .rs .rs-boot-fs .rs-boot { min-height:auto; }
    /* ── COFRE de reels (Claude Design 26-jun): avalancha → 3 cartas → roba una ── */
    .rs .cofre { position:absolute; inset:0; display:grid; place-items:center; background:var(--surface-base); overflow:hidden; }
    .rs .cofre-glow { position:absolute; inset:0; pointer-events:none; background:radial-gradient(120% 90% at 50% 38%, rgba(79,124,255,.10), rgba(8,9,11,0) 55%), radial-gradient(80% 60% at 50% 120%, rgba(79,124,255,.07), rgba(8,9,11,0) 60%); }
    .rs .cofre-canvas { position:absolute; inset:0; width:100%; height:100%; filter:blur(.5px); }
    .rs .cofre-vignette { position:absolute; inset:0; pointer-events:none; background:radial-gradient(70% 50% at 50% 50%, rgba(8,9,11,0) 35%, rgba(8,9,11,.55) 100%); }
    .rs .cofre-av { position:relative; z-index:3; display:flex; flex-direction:column; align-items:center; text-align:center; gap:22px; padding:24px; }
    .rs .cofre-eyebrow { font-family:var(--font-mono); font-size:12px; letter-spacing:.28em; color:var(--brand-300); text-transform:uppercase; display:inline-flex; align-items:center; gap:9px; }
    .rs .cofre-eyebrow--ok { letter-spacing:.26em; }
    .rs .cofre-pip { width:7px; height:7px; border-radius:50%; background:#34d399; box-shadow:0 0 10px #34d399; flex:none; }
    .rs .cofre-pip--b { width:9px; height:9px; background:var(--brand-400); box-shadow:0 0 10px var(--brand-400); }
    .rs .cofre-count { font-family:var(--font-display-2); font-weight:700; font-size:clamp(64px,13vw,150px); letter-spacing:-.03em; color:var(--text-primary); line-height:.9; text-shadow:0 0 50px rgba(79,124,255,.45); }
    .rs .cofre-av-t { font-family:var(--font-display); font-size:clamp(24px,4vw,38px); line-height:1.1; color:var(--text-primary); max-width:520px; }
    .rs .cofre-bar { width:min(360px,72vw); height:4px; border-radius:99px; background:rgba(255,255,255,.08); overflow:hidden; }
    .rs .cofre-bar-fill { height:100%; width:0%; border-radius:99px; background:linear-gradient(90deg,var(--brand-600),var(--brand-300)); box-shadow:0 0 16px rgba(79,124,255,.6); }
    .rs .cofre-choose { position:relative; z-index:3; width:100%; max-width:1120px; padding:32px 24px; display:flex; flex-direction:column; align-items:center; gap:clamp(20px,4vh,40px); max-height:100%; overflow:auto; }
    .rs .cofre-head { text-align:center; display:flex; flex-direction:column; align-items:center; gap:12px; }
    .rs .cofre-h1 { margin:0; font-family:var(--font-display); font-weight:400; font-size:clamp(34px,6vw,62px); line-height:1.04; letter-spacing:-.01em; color:var(--text-primary); max-width:16ch; }
    .rs .cofre-h1 em { font-style:italic; color:var(--brand-300); }
    .rs .cofre-sub { margin:0; font-size:clamp(15px,2.2vw,19px); color:var(--text-secondary); max-width:46ch; }
    .rs .cofre-sub b { color:var(--text-primary); font-weight:600; }
    .rs .cofre-cards { display:flex; flex-wrap:wrap; justify-content:center; gap:clamp(14px,2vw,24px); width:100%; }
    .rs .cofre-card { flex:1 1 250px; max-width:300px; min-width:210px; cursor:pointer; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:20px; padding:12px; box-shadow:0 20px 55px -30px rgba(0,0,0,.85); opacity:0; transform:translateY(30px) scale(.96); animation:cofre-cardin .6s cubic-bezier(.2,.9,.25,1) both; transition:box-shadow .35s ease, border-color .35s ease, opacity .3s, transform .3s; }
    @keyframes cofre-cardin { to { opacity:1; transform:none; } }
    .rs .cofre-card.sel { border-color:var(--brand-500); box-shadow:0 0 0 1.5px var(--brand-400), 0 26px 70px -22px rgba(79,124,255,.6); transform:scale(1.035); }
    .rs .cofre-card.dim { opacity:.38; }
    .rs .cofre-card.shown { animation:none; opacity:1; transform:none; }
    .rs .cofre-card.shown.sel { transform:scale(1.035); }
    .rs .cofre-card-thumb { position:relative; aspect-ratio:9/16; border-radius:14px; overflow:hidden; background:var(--surface-overlay); }
    .rs .cofre-card-img { width:100%; height:100%; object-fit:cover; display:block; }
    .rs .cofre-card-916 { position:absolute; top:10px; left:10px; font-family:var(--font-mono); font-size:10px; letter-spacing:.12em; color:rgba(255,255,255,.55); background:rgba(0,0,0,.28); padding:3px 7px; border-radius:6px; }
    .rs .cofre-card-ratio { position:absolute; top:9px; right:9px; display:flex; flex-direction:column; align-items:flex-end; padding:7px 11px 6px; border-radius:11px; background:linear-gradient(180deg,rgba(79,124,255,.95),rgba(59,99,224,.95)); box-shadow:0 6px 20px -6px rgba(79,124,255,.8); font-family:var(--font-display-2); font-weight:700; font-size:24px; line-height:.9; color:#fff; }
    .rs .cofre-card-ratio small { font-family:var(--font-mono); font-size:8.5px; letter-spacing:.1em; color:rgba(255,255,255,.82); text-transform:uppercase; font-weight:400; }
    .rs .cofre-card-play { position:absolute; left:50%; top:46%; transform:translate(-50%,-50%); width:54px; height:54px; border-radius:50%; background:rgba(8,9,11,.42); border:1px solid rgba(255,255,255,.25); }
    .rs .cofre-card-play::after { content:""; position:absolute; left:54%; top:50%; transform:translate(-50%,-50%); width:0; height:0; border-style:solid; border-width:9px 0 9px 15px; border-color:transparent transparent transparent rgba(255,255,255,.92); }
    .rs .cofre-card-cap { position:absolute; left:0; right:0; bottom:0; padding:34px 12px 12px; background:linear-gradient(180deg,rgba(8,9,11,0) 0%, rgba(8,9,11,.82) 70%); display:flex; flex-direction:column; gap:3px; }
    .rs .cofre-card-cap b { font-family:var(--font-display-2); font-weight:600; font-size:13px; color:#fff; }
    .rs .cofre-card-cap span { font-size:12px; color:rgba(255,255,255,.72); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .rs .cofre-card-views { margin-top:13px; padding:0 2px; font-family:var(--font-mono); font-size:10px; color:var(--text-tertiary); text-transform:uppercase; letter-spacing:.06em; }
    .rs .cofre-card-views b { font-family:var(--font-display-2); font-weight:700; font-size:18px; color:#34d399; letter-spacing:0; }
    .rs .cofre-card-btn { width:100%; margin-top:12px; padding:13px; border-radius:13px; cursor:pointer; font-family:var(--font-display-2); font-weight:600; font-size:15px; border:none; color:#fff; background:linear-gradient(180deg,var(--brand-500),var(--brand-600)); box-shadow:0 10px 26px -10px rgba(79,124,255,.7); transition:filter .2s; }
    .rs .cofre-card-btn:hover { filter:brightness(1.06); }
    .rs .cofre-card-btn.sel { color:var(--brand-300); background:rgba(79,124,255,.14); box-shadow:none; }
    .rs .cofre-foot { display:flex; flex-direction:column; align-items:center; gap:16px; }
    .rs .cofre-robbing { display:inline-flex; align-items:center; gap:11px; padding:11px 18px; border-radius:99px; background:var(--surface-raised); border:1px solid var(--border-default); font-size:14px; color:var(--text-secondary); }
    .rs .cofre-robbing b { color:var(--text-primary); font-weight:600; }
    .rs .cofre-secondary { background:none; border:none; cursor:pointer; font-size:14px; color:var(--text-tertiary); text-decoration:underline; text-underline-offset:3px; padding:4px; }
    @media (prefers-reduced-motion: reduce){ .rs .cofre-card { animation:none; opacity:1; transform:none; } }
    /* ── COFRE en MÓVIL: las 3 cartas apiladas eran ~1700px de scroll vertical (solo se
       veía la 1ª, sin pista de que había 3). Ahora = carrusel horizontal con snap y
       "peek" de la siguiente (mismo patrón que .opp-track del radar). ── */
    .rs--mobile .cofre-choose { padding:20px 0 24px; gap:16px; }
    .rs--mobile .cofre-head { padding:0 20px; }
    .rs--mobile .cofre-h1 { font-size:clamp(26px,7.5vw,34px); }
    .rs--mobile .cofre-cards { flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding:6px 13vw 16px; gap:14px; scrollbar-width:none; }
    .rs--mobile .cofre-cards::-webkit-scrollbar { display:none; }
    .rs--mobile .cofre-card { flex:0 0 64vw; max-width:64vw; min-width:0; scroll-snap-align:center; }
    .rs--mobile .cofre-foot { padding:0 20px; }
    .rs .onbwait { display:flex; flex-direction:column; align-items:center; text-align:center; padding:64px 24px; max-width:520px; margin:40px auto; }
    .rs .onbwait-orb { position:relative; width:84px; height:84px; border-radius:24px; display:flex; align-items:center; justify-content:center; margin-bottom:26px;
      background:linear-gradient(140deg, var(--brand-600,#1B3FD6), var(--brand-500,#2F5BFF)); box-shadow:0 12px 40px rgba(47,91,255,.4); }
    .rs .onbwait-orb svg { width:38px; height:38px; color:#fff; }
    .rs .onbwait-ring { position:absolute; inset:-8px; border-radius:30px; border:3px solid rgba(79,124,255,.45); border-top-color:transparent; animation:rsSpin 1s linear infinite; }
    .rs .onbwait-t { font-family:var(--font-display); font-weight:700; font-size:26px; color:var(--text-primary); }
    .rs .onbwait-d { font-size:15px; color:var(--text-secondary); margin-top:12px; line-height:1.55; }
    .rs .onbwait-sub { display:inline-flex; align-items:center; gap:8px; font-size:13px; color:var(--text-tertiary); margin-top:22px; }
    @keyframes rsSpin { to { transform:rotate(360deg); } }
    /* Animación «radar escaneando» (onboarding wait) — rediseño Claude design:
       barrido cónico + blips de creadores + core flotante + tarjetas «encontrado»
       + pasos rotando + barra de progreso. Colores vía variables (claro/oscuro). */
    /* «Analizando tu perfil» (David/Bernat) — chip con tu foto de IG arriba de la carga */
    .rs .onbw-me { display:inline-flex; align-items:center; gap:13px; padding:11px 16px 11px 11px; margin:0 auto 24px; border-radius:999px; background:var(--surface-raised); border:1px solid var(--border-default); box-shadow:0 8px 26px rgba(0,0,0,.22); animation:rsFadeIn .4s ease-out; }
    .rs .onbw-me-ava { position:relative; width:42px; height:42px; flex:none; }
    .rs .onbw-me-fb { position:absolute; inset:0; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-weight:700; font-size:14px; color:#fff; background:linear-gradient(135deg,var(--brand-500,#2F5BFF),#6f93ff); }
    .rs .onbw-me-img { position:absolute; inset:0; width:42px; height:42px; border-radius:50%; object-fit:cover; opacity:0; transition:opacity .35s; }
    .rs .onbw-me-img.on { opacity:1; }
    .rs .onbw-me-pulse { position:absolute; inset:-4px; border-radius:50%; border:2px solid var(--brand-500,#2F5BFF); opacity:0; animation:onbwMePulse 1.8s ease-out infinite; }
    @keyframes onbwMePulse { 0%{ transform:scale(.85); opacity:.7; } 100%{ transform:scale(1.25); opacity:0; } }
    .rs .onbw-me-txt { font-size:13.5px; color:var(--text-primary); text-align:left; line-height:1.3; } .rs .onbw-me-txt b { font-weight:700; }
    .rs .onbw-me-sub { display:block; font-size:12px; color:var(--text-tertiary); }
    @media (prefers-reduced-motion: reduce){ .rs .onbw-me-pulse { animation:none; } }
    .rs .onbw-radar { position:relative; width:248px; height:248px; margin-bottom:34px; display:flex; align-items:center; justify-content:center; }
    .rs .onbw-grid1 { position:absolute; inset:0; border-radius:50%; border:1px solid rgba(79,124,255,.14); }
    .rs .onbw-grid2 { position:absolute; top:50%; left:50%; width:66%; height:66%; transform:translate(-50%,-50%); border-radius:50%; border:1px solid rgba(79,124,255,.12); }
    .rs .onbw-grid3 { position:absolute; top:50%; left:50%; width:34%; height:34%; transform:translate(-50%,-50%); border-radius:50%; border:1px solid rgba(79,124,255,.1); }
    .rs .onbw-sweep { position:absolute; inset:0; border-radius:50%; transform-origin:50% 50%; animation:radarSweep 2.4s linear infinite;
      -webkit-mask:radial-gradient(circle, transparent 17%, #000 18%); mask:radial-gradient(circle, transparent 17%, #000 18%); }
    .rs .onbw-fan { position:absolute; inset:0; border-radius:50%; background:conic-gradient(from 0deg, rgba(111,147,255,.45) 0deg, rgba(79,124,255,.16) 38deg, transparent 80deg); }
    .rs .onbw-arm { position:absolute; top:50%; left:50%; width:50%; height:2px; transform-origin:0 50%; transform:translateY(-50%);
      background:linear-gradient(90deg, rgba(111,147,255,.25), #8aa6ff); box-shadow:0 0 8px rgba(111,147,255,.7); }
    .rs .onbw-blip { position:absolute; border-radius:99px; background:var(--brand-400); box-shadow:0 0 9px rgba(111,147,255,.9); animation:blipPop 2.6s ease-out infinite; }
    .rs .onbw-core-wrap { position:relative; z-index:3; animation:coreFloat 3.2s ease-in-out infinite; }
    .rs .onbw-core { width:76px; height:76px; border-radius:24px; display:flex; align-items:center; justify-content:center;
      background:linear-gradient(140deg,var(--brand-600),var(--brand-500)); animation:coreGlow 2.6s ease-in-out infinite; }
    .rs .onbw-core svg { width:36px; height:36px; color:#fff; }
    .rs .onbw-cards { position:relative; height:30px; width:100%; margin-bottom:6px; }
    .rs .onbw-card { position:absolute; left:50%; transform:translateX(-50%); display:inline-flex; align-items:center; gap:7px; padding:5px 11px 5px 6px;
      border-radius:99px; background:var(--surface-overlay); border:1px solid var(--border-default); font-size:12px; color:var(--text-secondary); white-space:nowrap; animation:cardIn 4.8s ease-in-out infinite; }
    .rs .onbw-card.c2 { animation-delay:2.4s; }
    .rs .onbw-card-ava { width:18px; height:18px; border-radius:99px; background:linear-gradient(135deg,var(--brand-400),var(--brand-600)); }
    .rs .onbw-title { font-family:var(--font-display); font-weight:700; font-size:27px; color:var(--text-primary); letter-spacing:-.01em; }
    .rs .onbw-steps { position:relative; height:24px; width:100%; margin-top:14px; }
    .rs .onbw-step { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; gap:9px; font-size:14px; color:var(--text-secondary); opacity:0; animation:stepFade 15s ease-in-out infinite both; }
    .rs .onbw-step.s2 { animation-delay:3s; }
    .rs .onbw-step.s3 { animation-delay:6s; }
    .rs .onbw-step.s4 { animation-delay:9s; }
    .rs .onbw-step.s5 { animation-delay:12s; }
    .rs .onbw-step i { width:6px; height:6px; border-radius:99px; background:var(--brand-500); flex:0 0 auto; }
    .rs .onbw-step b { color:var(--text-primary); font-weight:600; }
    .rs .onbw-prog { width:230px; height:5px; border-radius:99px; background:var(--border-default); overflow:hidden; margin-top:18px; }
    .rs .onbw-prog-fill { height:100%; border-radius:99px; background:linear-gradient(90deg,var(--brand-600),var(--brand-400)); animation:barFill 55s linear forwards; }
    .rs .onbw-hint { font-size:12.5px; color:var(--text-tertiary); margin-top:12px; }
    /* #6 «¿quieres robar este?» (tras la carga, antes del tour) */
    .rs .onbst-canvas { max-width:560px; }
    .rs .onbst { display:flex; flex-direction:column; align-items:center; text-align:center; padding:40px 22px; margin:24px auto; animation:rsFadeIn .4s ease-out; }
    .rs .onbst-eyebrow { font-family:var(--font-mono); font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--brand-500); display:flex; align-items:center; gap:8px; }
    .rs .onbst-eyebrow .pip { width:6px; height:6px; border-radius:50%; background:var(--brand-500); box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-500) 22%, transparent); }
    .rs .onbst-h { font-family:var(--font-display-2); font-weight:700; font-size:clamp(26px,5vw,36px); letter-spacing:-.02em; margin:12px 0 0; color:var(--text-primary); }
    .rs .onbst-sub { font-size:15px; color:var(--text-secondary); margin:10px 0 0; max-width:46ch; line-height:1.5; }
    .rs .onbst-card { display:flex; gap:16px; align-items:stretch; width:100%; max-width:460px; margin:24px 0 4px; padding:14px; border-radius:18px;
      background:var(--surface-raised); border:1px solid var(--border-default); text-align:left; box-shadow:0 14px 40px rgba(0,0,0,.28); }
    .rs .onbst-thumb { width:104px; height:138px; flex:none; border-radius:12px; object-fit:cover; background:var(--surface-sunken); }
    .rs .onbst-ph { display:flex; align-items:center; justify-content:center; color:var(--brand-500); }
    .rs .onbst-ph svg { width:34px; height:34px; }
    .rs .onbst-meta { display:flex; flex-direction:column; min-width:0; gap:8px; padding:4px 2px; }
    .rs .onbst-handle { font-weight:700; font-size:16px; color:var(--text-primary); }
    .rs .onbst-stats { display:flex; flex-wrap:wrap; gap:12px; font-size:13.5px; color:var(--text-secondary); }
    .rs .onbst-stats span { display:inline-flex; align-items:center; gap:5px; } .rs .onbst-stats svg { width:14px; height:14px; }
    .rs .onbst-exp { color:var(--brand-500); font-weight:700; }
    .rs .onbst-views { font-weight:700; font-size:15px; }
    .rs .num-hi { color:var(--success-fg,#3FE0A0); font-weight:800; }
    .rs .onbst-cap { font-size:13px; color:var(--text-tertiary); line-height:1.45; overflow:hidden; }
    .rs .onbst-actions { display:flex; flex-direction:column; gap:10px; width:100%; max-width:460px; margin-top:18px; }
    .rs .onbst-actions .btn { width:100%; }
    @keyframes radarSweep { to { transform:rotate(360deg); } }
    @keyframes blipPop { 0%{transform:scale(0);opacity:0;} 12%{transform:scale(1.35);opacity:1;} 30%{transform:scale(1);opacity:1;} 82%{opacity:1;} 100%{transform:scale(1);opacity:0;} }
    @keyframes coreFloat { 0%,100%{transform:translateY(0);} 50%{transform:translateY(-5px);} }
    @keyframes coreGlow { 0%,100%{box-shadow:0 14px 40px rgba(79,124,255,.35),0 0 0 0 rgba(79,124,255,.45);} 50%{box-shadow:0 18px 52px rgba(79,124,255,.55),0 0 0 14px rgba(79,124,255,0);} }
    @keyframes cardIn { 0%{transform:translate(-50%,10px) scale(.9);opacity:0;} 6%{transform:translate(-50%,0) scale(1);opacity:1;} 40%{opacity:1;} 46%{transform:translate(-50%,-8px) scale(.96);opacity:0;} 100%{opacity:0;} }
    @keyframes barFill { 0%{width:8%;} 100%{width:92%;} }
    @keyframes stepFade { 0%{opacity:0;transform:translateY(6px);} 3%,17%{opacity:1;transform:translateY(0);} 20%,100%{opacity:0;transform:translateY(-6px);} }
    @media (prefers-reduced-motion: reduce) { .rs .onbw-sweep, .rs .onbw-blip, .rs .onbw-core-wrap, .rs .onbw-core, .rs .onbw-card, .rs .onbw-step, .rs .onbw-prog-fill { animation:none; } .rs .onbw-step.s1 { opacity:1; } }
    /* #8 PROACTIVIDAD — «Tu siguiente paso» (HAZ ESTO AHORA): tarjeta destacada con
       acento de marca, para que el usuario perdido sepa QUÉ hacer ya. */
    .rs .dns { display:flex; align-items:center; gap:14px; padding:12px 16px; margin:10px 0 12px; border-radius:16px;
      background:linear-gradient(120deg, rgba(47,91,255,.16), rgba(47,91,255,.05) 60%), var(--surface-raised);
      border:1px solid rgba(79,124,255,.42); box-shadow:0 8px 30px rgba(47,91,255,.14); }
    .rs .dns-ic { width:40px; height:40px; border-radius:12px; flex-shrink:0; display:flex; align-items:center; justify-content:center;
      background:linear-gradient(140deg, var(--brand-600,#1B3FD6), var(--brand-500,#2F5BFF)); box-shadow:0 0 0 6px rgba(47,91,255,.12); }
    .rs .dns-ic svg { width:24px; height:24px; color:#fff; }
    .rs .dns-body { flex:1; min-width:0; }
    .rs .dns-eyebrow { display:inline-block; font-family:var(--font-mono); font-size:10px; letter-spacing:.14em; font-weight:700; color:var(--brand-300,#6E92FF); margin-bottom:3px; }
    .rs .dns-t { font-family:var(--font-display); font-weight:700; font-size:17px; color:var(--text-primary); line-height:1.15; }
    .rs .dns-b { font-size:13.5px; color:var(--text-secondary); margin-top:2px; line-height:1.4; }
    .rs .dns-cta { flex-shrink:0; }
    .rs--mobile .dns { flex-wrap:wrap; }
    .rs--mobile .dns-body { flex:1 1 calc(100% - 70px); }
    .rs--mobile .dns-cta { flex:1 1 100%; margin-top:4px; }
    .rs .rcb { display:flex; align-items:center; gap:18px; padding:22px 24px; margin:18px 0 22px; min-height:116px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:20px; }
    .rs .rcb .rcb-ic { width:54px; height:54px; border-radius:15px; background:linear-gradient(140deg, var(--brand-600,#1B3FD6), var(--brand-500,#2F5BFF)); flex-shrink:0; display:flex; align-items:center; justify-content:center; }
    .rs .rcb .rcb-ic svg { width:24px; height:24px; color:#fff; }
    .rs .rcb .rcb-body { flex:1; min-width:0; display:flex; flex-direction:column; gap:8px; }
    .rs .rcb .rcb-top { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
    .rs .rcb .rcb-lvl { font-size:12px; font-weight:600; color:var(--text-tertiary); }
    .rs .rcb .rcb-prog { font-family:var(--font-mono); font-size:11px; color:var(--brand-500,#2F5BFF); }
    .rs .rcb .rcb-desc { font-size:14.5px; line-height:1.45; color:var(--text-secondary); max-width:560px; }
    .rs .rcb .rcb-desc b { color:var(--text-primary); font-weight:600; }
    .rs .rcb .rcb-bars { display:flex; gap:6px; margin-top:1px; }
    .rs .rcb .rcb-seg { width:48px; height:6px; border-radius:999px; background:var(--surface-sunken); }
    .rs .rcb .rcb-seg.on { background:linear-gradient(90deg, var(--brand-500,#2F5BFF), var(--success-fg,#3FE0A0)); }
    /* Barra de XP continua del nivel (hitos + ejercicio diario) */
    .rs .rcb .rcb-xp { height:8px; border-radius:999px; background:var(--surface-sunken); overflow:hidden; margin-top:3px; }
    .rs .rcb .rcb-xp-fill { height:100%; border-radius:999px; background:linear-gradient(90deg, var(--brand-500,#2F5BFF), var(--success-fg,#3FE0A0)); transition:width .6s cubic-bezier(.2,.8,.2,1); }
    .rs .rcb > .btn { flex:none; }
    /* móvil: el bloque «Tu cerebro · nivel» apila — el texto deja de apretarse y el
       botón «Crear guion» pasa a ancho completo abajo. */
    .rs--mobile .rcb { flex-wrap:wrap; row-gap:14px; }
    .rs--mobile .rcb .rcb-body { flex:1 1 calc(100% - 72px); }
    .rs--mobile .rcb > .btn { flex:1 1 100%; justify-content:center; }
    .rs--mobile .whale { flex-direction:column; align-items:flex-start; }
    /* v3 mockup David — «Más señales · N» */
    .rs .signals { margin:22px 0 8px; }
    .rs .signals .signals-head { display:flex; align-items:center; justify-content:space-between; margin:0 0 10px; }
    .rs .signals .signals-t { font-size:13px; font-weight:600; color:var(--text-tertiary); }
    .rs .signals .signals-list { display:flex; flex-direction:column; }
    .rs .signals .signals-more { display:flex; justify-content:center; padding:18px 0 4px; }
    .rs--mobile .whale { flex-direction:column; align-items:flex-start; }
    .rs--mobile .whale .btn { width:100%; }
    /* filters */
    .rs .filters { display:flex; gap:8px; margin-bottom:18px; flex-wrap:wrap; }
    .rs .radar-addbar { display:flex; gap:8px; margin-bottom:14px; flex-wrap:wrap; align-items:center; }
    /* CTA prominente "Añadir competidor" (ítem 4) + contador X/límite + refresh visible */
    .rs .addbar-cta { display:inline-flex; align-items:center; gap:7px; height:40px; padding:0 18px; border-radius:99px; border:none; background:var(--brand-500,#2F5BFF); color:#fff; font-size:14px; font-weight:700; cursor:pointer; box-shadow:0 2px 0 var(--brand-700,#1B3FD6),0 8px 20px -8px color-mix(in srgb,var(--brand-500) 60%,transparent); transition:transform .14s var(--ease),box-shadow .14s; }
    .rs .addbar-cta:hover { transform:translateY(-1px); }
    .rs .addbar-cta:active { transform:translateY(2px); box-shadow:0 0 0 var(--brand-700,#1B3FD6); }
    .rs .addbar-cta.on { background:var(--brand-600,#244fe0); }
    .rs .addbar-cta svg { width:16px; height:16px; }
    .rs .addbar-count { font-family:var(--font-mono); font-size:12.5px; font-weight:600; color:var(--text-secondary); background:var(--surface-overlay); border:1px solid var(--border-default); border-radius:99px; padding:5px 11px; }
    .rs .addbar-count.full { color:var(--warn-fg,#FF8A3D); border-color:color-mix(in srgb,var(--warn-fg,#FF8A3D) 45%,transparent); }
    .rs .addbar-refresh { border-style:solid; color:var(--text-secondary); }
    .rs .addbar-refresh:hover { color:var(--brand-400); border-color:var(--brand-500); }
    /* móvil: rejilla 2×2 limpia (el spacer flex:1 empujaba «Actualizar radar» a la derecha) */
    .rs--mobile .radar-addbar { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
    .rs--mobile .radar-addbar > span { display:none; }
    .rs--mobile .radar-addbar .fchip { width:100%; justify-content:center; }
    .rs .fchip { display:inline-flex; align-items:center; gap:6px; height:34px; padding:0 14px; border-radius:99px; border:1px solid var(--border-default); background:transparent; font-size:13px; font-weight:600; color:var(--text-secondary); cursor:pointer; transition: all .15s var(--ease); }
    .rs .fchip:hover { color:var(--text-primary); border-color:var(--border-strong); }
    .rs .fchip.on { background:var(--surface-overlay); color:var(--text-primary); border-color:var(--border-strong); box-shadow:inset 2px 0 0 var(--brand-500); }
    /* feed */
    .rs .feed { display:grid; gap:14px; }
    .rs--desktop .feed { grid-template-columns:1fr 1fr; gap:18px; }
    .rs .reel { background:var(--surface-raised); border:1px solid var(--border-default); border-radius:18px; padding:14px; display:flex; gap:14px; box-shadow:var(--shadow-md); transition: border-color .18s var(--ease), transform .18s var(--ease); }
    .rs .reel:hover { border-color:var(--border-strong); }
    .rs .reel .thumb { width:84px; height:128px; }
    .rs--desktop .reel .thumb { width:96px; height:142px; }
    .rs .reel .body { flex:1; min-width:0; display:flex; flex-direction:column; }
    .rs .reel .crow { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
    .rs .reel .crow .who { font-size:13px; font-weight:600; }
    .rs .reel .crow .when { font-size:12px; color:var(--text-tertiary); }
    .rs .reel .cap { font-size:15px; font-weight:600; line-height:1.32; margin:0 0 6px; letter-spacing:-.01em; }
    .rs--desktop .reel .cap { font-size:16px; }
    .rs .reel .sum { font-size:13px; color:var(--text-secondary); line-height:1.45; margin:0 0 10px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
    .rs .reel .metrics { display:flex; gap:14px; font-size:12px; color:var(--text-tertiary); margin-bottom:12px; align-items:center; flex-wrap:wrap; }
    .rs .reel .metrics span { display:inline-flex; align-items:center; gap:5px; font-variant-numeric:tabular-nums; }
    .rs .reel .actions { margin-top:auto; display:flex; align-items:center; gap:8px; }
    .rs .reel .actions .btn-primary { flex:1; }
    .rs .reel .iconbtn { width:44px; height:44px; border-radius:12px; border:1px solid var(--border-default); background:transparent; color:var(--text-secondary); display:flex; align-items:center; justify-content:center; cursor:pointer; transition: all .15s var(--ease); }
    .rs .reel .iconbtn:hover { border-color:var(--border-strong); color:var(--text-primary); }
    .rs .reel .iconbtn.on { color:var(--warning-fg); border-color:var(--warning-fg); }
    .rs .cost-whisper { font-size:11px; color:var(--text-tertiary); opacity:.7; }
    /* overlays — B2: NO cubren el rail (inset left:64px, como #rs-legacy) → la barra
       lateral sigue clicable con un overlay abierto (gen/guion) dentro de un proyecto;
       al pulsar el rail, switchTab cierra el overlay. */
    .rs .overlay { position:absolute; inset:0 0 0 64px; z-index:30; background:var(--surface-base); display:flex; flex-direction:column; align-items:stretch; animation: rsSheetUp .42s var(--ease-out); }
    @keyframes rsSheetUp { from{ transform:translateY(24px); opacity:0; } to{ transform:translateY(0); opacity:1; } }
    .rs .overlay .obar { display:flex; align-items:center; gap:12px; padding:14px 18px; border-bottom:1px solid var(--border-subtle); flex-shrink:0; }
    .rs .overlay .obar .back { width:38px; height:38px; border-radius:99px; border:1px solid var(--border-default); background:transparent; color:var(--text-primary); display:flex; align-items:center; justify-content:center; cursor:pointer; }
    .rs .overlay .obar .otitle { font-size:14px; font-weight:600; }
    .rs .overlay .oscroll { flex:1; overflow-y:auto; }
    /* T2 (IDI): sheet de entrada (sustituto de window.prompt) — overlay + primitivos .field */
    .rs .sheet-body { width:100%; max-width:560px; margin:4vh auto 0; padding:26px 22px; display:flex; flex-direction:column; gap:16px; }
    .rs .sheet-body .field { margin:0; display:flex; flex-direction:column; gap:7px; }
    .rs .sheet-body .field-label { display:block; text-transform:none; letter-spacing:0; font-size:13.5px; font-weight:600; color:var(--text-primary); margin:0; }
    .rs .sheet-body .field-input, .rs .sheet-body .field-textarea { width:100%; }
    .rs .sheet-actions { display:flex; gap:10px; justify-content:flex-end; }
    /* «Analizar un reel»: caja de transcripción (solo lectura, scrollable) */
    .rs .analyze-tx { max-height:46vh; overflow-y:auto; white-space:pre-wrap; line-height:1.55;
      font-size:14px; color:var(--text-secondary); background:var(--surface-overlay);
      border:1px solid var(--border-subtle); border-radius:var(--radius-md); padding:14px; }
    /* ── Página «Analizar reel» (nativa isla) ── */
    .rs .anz-canvas { max-width:880px; }
    .rs .anz-head { margin-bottom:18px; }
    .rs .anz-form { display:flex; gap:10px; margin-bottom:10px; }
    .rs .anz-input { flex:1; min-width:0; height:46px; padding:0 14px; font-size:14px; color:var(--text-primary);
      background:var(--surface-overlay); border:1px solid var(--border-subtle); border-radius:var(--radius-md); outline:none; }
    .rs .anz-input:focus { border-color:var(--accent); }
    .rs .anz-input:disabled { opacity:.6; }
    .rs .anz-go { white-space:nowrap; height:46px; }
    .rs .anz-err { color:var(--danger); font-size:13px; margin:2px 2px 8px; }
    .rs .anz-hint { color:var(--text-tertiary); font-size:12.5px; margin:0 2px 22px; }
    .rs .anz-count { color:var(--text-tertiary); font-size:11px; text-transform:uppercase; letter-spacing:.05em; margin:0 2px 12px; }
    .rs .anz-loading, .rs .anz-empty { display:flex; flex-direction:column; align-items:center; justify-content:center;
      gap:8px; padding:54px 16px; color:var(--text-tertiary); text-align:center; }
    .rs .anz-empty-h { color:var(--text-secondary); font-weight:600; font-size:15px; }
    .rs .anz-empty-s { font-size:13px; }
    .rs .anz-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
    .rs .anz-card { display:flex; gap:14px; padding:14px; background:var(--surface-overlay);
      border:1px solid var(--border-subtle); border-radius:var(--radius-lg); }
    .rs .anz-thumb { position:relative; flex:0 0 86px; width:86px; height:110px; border-radius:10px; overflow:hidden;
      background:var(--surface-sunken); display:flex; align-items:center; justify-content:center; }
    .rs .anz-thumb-img { width:100%; height:100%; object-fit:cover; }
    .rs .anz-thumb-ph { color:var(--text-tertiary); opacity:.5; }
    .rs .anz-plat { position:absolute; left:6px; bottom:6px; font-size:9px; text-transform:uppercase; letter-spacing:.04em;
      background:rgba(0,0,0,.6); color:#fff; padding:2px 5px; border-radius:5px; }
    .rs .anz-body { flex:1; min-width:0; display:flex; flex-direction:column; }
    .rs .anz-top { display:flex; align-items:baseline; justify-content:space-between; gap:8px; }
    .rs .anz-author { font-weight:600; font-size:14px; color:var(--text-primary); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .rs .anz-date { font-size:11px; color:var(--text-tertiary); flex:0 0 auto; }
    .rs .anz-mets { display:flex; gap:12px; margin:5px 0 6px; color:var(--text-tertiary); font-size:12px; }
    .rs .anz-mets span { display:inline-flex; align-items:center; gap:4px; }
    .rs .anz-prev { flex:1; margin:0 0 10px; font-size:12.5px; line-height:1.5; color:var(--text-secondary);
      display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
    .rs .anz-acts { display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
    .rs .anz-del { margin-left:auto; color:var(--text-tertiary); }
    .rs .anz-del:hover { color:var(--danger); }
    .rs--mobile .anz-grid { grid-template-columns:1fr; }
    .rs--mobile .anz-form { flex-direction:column; }
    .rs--mobile .anz-go { width:100%; }
    /* ── Ficha de detalle de un análisis (portada + métricas + transcripción + robar) ── */
    /* ════ Ficha «Reel analizado» (detalle) — rediseño Claude design ════ */
    .rs .anzd-canvas { max-width:1180px; position:relative; }
    .rs .anzd-glow { position:absolute; top:-40px; right:120px; width:420px; height:420px; pointer-events:none; z-index:0;
      background:radial-gradient(circle, rgba(79,124,255,.16), transparent 70%); filter:blur(20px); animation:floatglow 9s ease-in-out infinite; }
    @keyframes floatglow { 0%,100%{transform:translate(0,0);} 50%{transform:translate(0,-14px);} }
    .rs .anzd-head { position:relative; z-index:1; display:flex; align-items:center; gap:14px; margin-bottom:26px; }
    .rs .anzd-back { width:42px; height:42px; flex:0 0 42px; border-radius:50%; cursor:pointer; border:1px solid var(--border-default);
      background:var(--surface-raised); color:var(--text-secondary); display:flex; align-items:center; justify-content:center; transition:all .15s ease; }
    .rs .anzd-back:hover { color:var(--text-primary); border-color:var(--brand-400); transform:translateX(-2px); }
    .rs .anzd-head-tt { display:flex; flex-direction:column; gap:2px; }
    .rs .anzd-head-t { font-family:var(--font-display); font-weight:700; font-size:19px; color:var(--text-primary); letter-spacing:-.01em; }
    .rs .anzd-head-sub { font-size:12px; color:var(--text-tertiary); }
    .rs .anzd-grid { position:relative; z-index:1; display:grid; grid-template-columns:340px 1fr; gap:32px; align-items:start; }
    .rs .anzd-side { position:sticky; top:16px; }
    .rs .anzd-thumb { position:relative; width:100%; aspect-ratio:9/13; max-height:540px; border-radius:18px; overflow:hidden;
      background:var(--surface-sunken); margin-bottom:16px; box-shadow:0 24px 60px rgba(0,0,0,.55); border:1px solid var(--border-subtle); }
    .rs .anzd-thumb-img { width:100%; height:100%; object-fit:cover; }
    .rs .anzd-thumb-ph { width:100%; height:100%; background:linear-gradient(150deg,#26356f,#0b1024 62%); }
    .rs .anzd-thumb-shade { position:absolute; inset:0; background:linear-gradient(to top, rgba(5,5,7,.85), transparent 45%); }
    .rs .anzd-plat { position:absolute; left:12px; top:12px; display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:600;
      background:rgba(0,0,0,.5); backdrop-filter:blur(8px); color:#fff; padding:5px 10px; border-radius:9px; border:1px solid rgba(255,255,255,.12); text-transform:capitalize; }
    .rs .anzd-thumb-meta { position:absolute; left:0; right:0; bottom:0; padding:16px; }
    .rs .anzd-thumb-author { font-family:var(--font-display); font-weight:700; font-size:18px; color:#fff; }
    .rs .anzd-thumb-date { font-size:12px; color:rgba(255,255,255,.6); margin-top:2px; }
    .rs .anzd-stats { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:16px; }
    .rs .anzd-stat { display:flex; flex-direction:column; gap:6px; padding:14px; background:var(--surface-raised); border:1px solid var(--border-subtle); border-radius:14px; }
    .rs .anzd-stat-ic { display:flex; }
    .rs .anzd-stat.v-views .anzd-stat-ic { color:#6f93ff; }
    .rs .anzd-stat.v-likes .anzd-stat-ic { color:#ff6f8b; }
    .rs .anzd-stat.v-comments .anzd-stat-ic { color:#5fd0a8; }
    .rs .anzd-stat.v-shares .anzd-stat-ic { color:#e0a85f; }
    .rs .anzd-stat-v { font-family:var(--font-display); font-size:21px; font-weight:700; color:var(--text-primary); line-height:1; }
    .rs .anzd-stat-l { font-size:10.5px; color:var(--text-tertiary); text-transform:uppercase; letter-spacing:.05em; }
    .rs .anzd-nostat { font-size:12px; color:var(--text-tertiary); margin-bottom:16px; padding:14px; background:var(--surface-raised); border:1px solid var(--border-subtle); border-radius:14px; }
    .rs .anzd-refresh { display:inline-flex; align-items:center; gap:6px; margin:-6px 0 14px; padding:6px 10px; font-size:12px; font-weight:600; cursor:pointer; color:var(--text-tertiary); background:transparent; border:none; border-radius:8px; }
    .rs .anzd-refresh:hover { color:var(--brand-400); background:var(--surface-overlay); }
    .rs .anzd-refresh[disabled] { opacity:.6; cursor:default; }
    .rs .anzd-orig { display:flex; align-items:center; justify-content:center; gap:8px; height:42px; border-radius:12px; font-size:13.5px; font-weight:600;
      color:#9aaeff; text-decoration:none; background:rgba(79,124,255,.08); border:1px solid rgba(79,124,255,.2); transition:all .15s ease; }
    .rs .anzd-orig:hover { background:rgba(79,124,255,.14); border-color:rgba(79,124,255,.4); }
    .rs .anzd-main { min-width:0; display:flex; flex-direction:column; }
    .rs .anzd-acts { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:22px; }
    .rs .anzd-btn { display:inline-flex; align-items:center; gap:8px; height:46px; padding:0 20px; border:none; border-radius:13px;
      font-family:var(--font-body); font-weight:600; font-size:14.5px; cursor:pointer; transition:all .15s ease; }
    .rs .anzd-btn[disabled] { opacity:.7; cursor:default; }
    .rs .anzd-btn-steal { padding:0 22px; color:#fff; background:linear-gradient(135deg,#5f86ff,#3a63ec); box-shadow:0 8px 24px rgba(79,124,255,.35); }
    .rs .anzd-btn-steal:hover { transform:translateY(-1px); box-shadow:0 12px 30px rgba(79,124,255,.5); }
    .rs .anzd-btn-follow { border:1px solid var(--border-default); color:var(--text-primary); background:var(--surface-overlay); }
    .rs .anzd-btn-follow:hover { border-color:var(--border-strong); }
    .rs .anzd-btn-ghost { padding:0 18px; color:var(--text-secondary); background:transparent; }
    .rs .anzd-btn-ghost:hover { background:var(--surface-overlay); color:var(--text-primary); }
    .rs .anzd-btn-del { padding:0 18px; margin-left:auto; color:var(--text-tertiary); background:transparent; }
    .rs .anzd-btn-del:hover { background:rgba(255,90,90,.1); color:#ff6f6f; }
    .rs .anzd-txhead { display:flex; align-items:center; gap:12px; margin-bottom:14px; }
    .rs .anzd-txlabel { font-family:var(--font-display); font-size:12px; text-transform:uppercase; letter-spacing:.1em; color:var(--text-tertiary); font-weight:600; }
    .rs .anzd-txrule { flex:1; height:1px; background:linear-gradient(to right, var(--border-default), transparent); }
    .rs .anzd-txwc { font-size:11.5px; color:var(--text-tertiary); }
    .rs .anzd-tx { position:relative; flex:1; min-height:46vh; background:var(--surface-raised); border:1px solid var(--border-subtle); border-radius:18px; padding:28px 30px; overflow:hidden; }
    .rs .anzd-tx-bar { position:absolute; left:0; top:28px; bottom:28px; width:3px; border-radius:3px; background:linear-gradient(to bottom,#6f93ff,#3a63ec); opacity:.7; }
    .rs .anzd-tx p { margin:0; white-space:pre-wrap; line-height:1.85; font-size:16px; color:var(--text-secondary); }
    @media (prefers-reduced-motion: reduce) { .rs .anzd-glow { animation:none; } }
    .rs--mobile .anzd-grid { grid-template-columns:1fr; }
    .rs--mobile .anzd-side { position:static; }
    .rs--mobile .anzd-thumb { max-width:260px; margin-left:auto; margin-right:auto; }
    .rs--mobile .anzd-glow { display:none; }
    .rs--mobile .sheet-body { padding:20px 16px; max-width:100%; }
    /* móvil: los botones de acción (nowrap) forzaban el ancho del sheet > viewport y lo
       descuadraban (anclado a la derecha, cortado por la izquierda). Que envuelvan. */
    .rs--mobile .sheet-actions { flex-wrap:wrap; }
    .rs .overlay .oscroll { overflow-x:hidden; }
    /* generating */
    .rs .gen { height:100%; min-height:460px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px; padding:40px; text-align:center; }
    .rs .gen .orb { width:74px; height:74px; border-radius:99px; background:conic-gradient(from 0deg, var(--brand-500), #6f93ff, var(--brand-400), var(--brand-500)); animation: rsSpin 1.1s linear infinite; position:relative; }
    .rs .gen .orb::after { content:""; position:absolute; inset:7px; border-radius:99px; background:var(--surface-base); }
    .rs .gen .orb::before { content:""; position:absolute; inset:0; border-radius:99px; filter:blur(14px); background:conic-gradient(from 0deg, var(--brand-500), #6f93ff, var(--brand-400)); opacity:.5; }
    @keyframes rsSpin { to { transform:rotate(360deg); } }
    .rs .gen .gtitle { font-family:var(--font-display); font-size:26px; }
    .rs .gen .gstep { font-size:14px; color:var(--text-secondary); min-height:20px; transition:opacity .3s; }
    /* T6 (IDI): espera honesta — hint + «seguir navegando» cuando el robo va lento */
    .rs .gen .gen-bg { margin-top:16px; display:flex; flex-direction:column; gap:10px; align-items:center; }
    .rs .gen .gen-bg-hint { font-size:12.5px; color:var(--text-tertiary); max-width:340px; line-height:1.45; }
    /* script reveal */
    .rs .script-wrap { padding:24px 22px 28px; }
    /* ── reveal en 2 columnas (desktop): guion · sidebar (FORMATO SUGERIDO + ¿Y ahora?) ── */
    .rs .script-side { display:flex; flex-direction:column; gap:22px; margin-top:28px; }
    .rs .script-side .recfmt, .rs .script-side .belt { margin-top:0; }   /* el gap del contenedor manda el espaciado */
    .rs--desktop .script-wrap { max-width:1160px; margin:0 auto; padding:36px 32px;
      display:grid; grid-template-columns:minmax(0,1fr) 372px; gap:44px; align-items:start; }
    .rs--desktop .script-main { min-width:0; }
    .rs--desktop .script-side { margin-top:0; position:sticky; top:20px; }
    .rs--desktop .script-side .recfmt-row { flex-direction:column; gap:14px; }   /* receta arriba, 2 vídeos grandes debajo */
    .rs--desktop .script-side .recfmt-left { width:100%; }
    .rs--desktop .script-side .recfmt-right { width:100%; }
    .rs--desktop .script-side .recfmt-ex-lbl { text-align:left; }
    .rs--desktop .script-side .recfmt-ex-row { gap:12px; }
    .rs--desktop .script-side .recfmt-ex { flex:1 1 0; min-width:0; }
    .rs--desktop .script-side .recfmt-ex-thumb { width:100%; }
    .rs--desktop .script-side .recfmt-ex-h { max-width:none; }
    .rs--desktop .script-side .recfmt-ex-empty { max-width:none; }
    .rs--desktop .script-side .belt-grid { grid-template-columns:1fr; }   /* el sidebar es estrecho → ¿Y ahora? en 1 columna */
    .rs .script-src { display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--text-tertiary); margin-bottom:16px; flex-wrap:wrap; }
    .rs .script-src .ava { width:22px; height:22px; font-size:10px; }
    .rs .voice-tag { display:inline-flex; align-items:center; gap:5px; padding:3px 9px; border-radius:99px; background:var(--brand-100); color:var(--brand-700); font-size:11.5px; font-weight:600; }
    .rs[data-theme="dark"] .voice-tag { background:rgba(79,124,255,.14); color:var(--brand-300); }
    .rs .script-hook { font-family:var(--font-display); font-size:30px; line-height:1.15; letter-spacing:.005em; margin:0 0 20px; }
    .rs--desktop .script-hook { font-size:38px; }
    .rs .script-body { font-size:16px; line-height:1.62; color:var(--text-primary); }
    .rs .script-body p { margin:0 0 14px; }
    .rs .script-body .beat { display:flex; gap:12px; margin:0 0 13px; }
    .rs .script-body .beat .n { font-family:var(--font-mono); font-size:12px; color:var(--brand-500); padding-top:3px; flex-shrink:0; }
    .rs .script-close { margin-top:18px; padding-top:16px; border-top:1px solid var(--border-subtle); font-size:16px; line-height:1.55; font-weight:600; }
    /* ítem 10: tarjeta "cómo grabarlo" (formato de grabación sugerido) */
    /* ── opciones de guion (2) + selector de hooks (2-3) ── */
    .rs .opt-tabs { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:6px 0 14px; }
    .rs .opt-tab { height:34px; padding:0 16px; border-radius:99px; border:1px solid var(--border-default); background:var(--surface-raised); color:var(--text-secondary); font:inherit; font-size:13.5px; font-weight:700; cursor:pointer; transition:all .14s var(--ease); }
    .rs .opt-tab.on { background:var(--brand-500,#2F5BFF); border-color:var(--brand-500,#2F5BFF); color:#fff; }
    .rs .opt-tab:not(.on):hover { border-color:var(--brand-400,#6E92FF); color:var(--text-primary); }
    .rs .opt-tabs-hint { font-size:12.5px; color:var(--text-tertiary); }
    .rs .hook-pick { display:flex; flex-direction:column; gap:8px; margin-bottom:18px; padding:14px; border-radius:14px; background:var(--surface-raised); border:1px solid var(--border-default); }
    .rs .hook-pick-lbl { font-size:11.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--text-tertiary); }
    .rs .hook-opt { display:flex; align-items:center; gap:11px; text-align:left; padding:11px 13px; border-radius:11px; border:1px solid var(--border-default); background:var(--surface-overlay); color:var(--text-primary); font:inherit; cursor:pointer; transition:all .14s var(--ease); }
    .rs .hook-opt:hover { border-color:var(--brand-400,#6E92FF); }
    .rs .hook-opt.on { border-color:var(--brand-500,#2F5BFF); background:color-mix(in srgb,var(--brand-500) 12%,var(--surface-overlay)); box-shadow:inset 0 0 0 1px var(--brand-500,#2F5BFF); }
    .rs .hook-opt-n { flex:none; width:22px; height:22px; border-radius:7px; background:var(--surface-sunken); color:var(--text-secondary); font-family:var(--font-mono); font-size:11px; display:flex; align-items:center; justify-content:center; }
    .rs .hook-opt.on .hook-opt-n { background:var(--brand-500,#2F5BFF); color:#fff; }
    .rs .hook-opt-t { flex:1; font-size:14.5px; line-height:1.35; }
    .rs .hook-opt-on { flex:none; color:var(--brand-400,#6E92FF); display:inline-flex; }
    .rs .hook-opt-on svg { width:17px; height:17px; }
    /* ── FORMATO SUGERIDO (left = formato/cómo · right = 2 vídeos «grábalo así») ── */
    .rs .recfmt { margin-top:22px; padding:16px; border-radius:14px;
      background:linear-gradient(120deg, color-mix(in srgb,var(--brand-500) 12%,var(--surface-raised)), var(--surface-raised));
      border:1px solid color-mix(in srgb,var(--brand-500) 30%,var(--border-default)); }
    .rs .recfmt-k { font-size:11.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--brand-300,#8AA8FF); margin-bottom:12px; }
    .rs .recfmt-row { display:flex; gap:18px; align-items:flex-start; }
    .rs .recfmt-left { flex:1; min-width:0; display:flex; gap:13px; }
    .rs .recfmt-ic { flex:none; width:46px; height:46px; border-radius:12px; display:flex; align-items:center; justify-content:center; background:var(--surface-overlay); color:var(--brand-400,#6E92FF); }
    .rs .recfmt-ic svg { width:24px; height:24px; }
    .rs .recfmt-tx { min-width:0; }
    .rs .recfmt-name { font-family:var(--font-display); font-weight:700; font-size:19px; color:var(--text-primary); line-height:1.1; }
    .rs .recfmt-d { font-size:13.5px; line-height:1.4; color:var(--text-secondary); margin-top:4px; }
    .rs .recfmt-right { flex:none; }
    .rs .recfmt-ex-lbl { font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--text-tertiary); margin-bottom:7px; text-align:right; }
    .rs .recfmt-ex-row { display:flex; gap:10px; }
    .rs .recfmt-ex { flex:0 0 84px; text-decoration:none; color:inherit; }
    .rs .recfmt-ex-thumb { position:relative; width:84px; aspect-ratio:9/16; border-radius:11px; overflow:hidden; background:var(--surface-overlay); border:1px solid var(--border-default); }
    .rs .recfmt-ex-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
    .rs .recfmt-ex-ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:var(--text-tertiary); }
    .rs .recfmt-ex-play { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.92); opacity:.85; pointer-events:none; }
    .rs .recfmt-ex-play svg { width:24px; height:24px; filter:drop-shadow(0 1px 4px rgba(0,0,0,.5)); }
    .rs .recfmt-ex:hover .recfmt-ex-thumb { border-color:var(--brand-500,#2F5BFF); transform:translateY(-2px); transition:transform .14s var(--ease); }
    .rs .recfmt-ex-mult { position:absolute; left:5px; bottom:5px; z-index:1; display:inline-flex; align-items:center; gap:3px; font-family:var(--font-mono); font-size:10px; font-weight:700; color:#fff; background:color-mix(in srgb, var(--success-fg,#2FD18A) 86%, #000); border-radius:6px; padding:2px 5px; }
    .rs .recfmt-ex-mult svg { width:11px; height:11px; }
    .rs .recfmt-ex-h { font-size:11px; color:var(--text-secondary); margin-top:5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:84px; }
    .rs .recfmt-ex-wait { display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--text-tertiary); }
    .rs .recfmt-ex-empty { font-size:12.5px; line-height:1.4; color:var(--text-tertiary); max-width:190px; }
    /* POV: texto en pantalla (overlay) */
    .rs .recfmt-pov { margin-top:14px; padding-top:13px; border-top:1px solid color-mix(in srgb,var(--brand-500) 18%,var(--border-default)); }
    .rs .recfmt-pov-lbl { font-size:10.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--text-tertiary); }
    .rs .recfmt-pov-tx { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
    .rs .recfmt-pov-tx span { font-family:var(--font-display); font-weight:600; font-size:14.5px; color:var(--text-primary); background:var(--surface-overlay); border:1px dashed var(--brand-400,#6E92FF); border-radius:9px; padding:5px 11px; }
    .rs--mobile .recfmt-row { flex-direction:column; } .rs--mobile .recfmt-ex-lbl { text-align:left; }
    /* conveyor belt */
    .rs .belt { margin-top:30px; }
    .rs .belt .belt-h { display:flex; align-items:baseline; gap:8px; margin-bottom:4px; }
    .rs .belt .belt-h h4 { margin:0; font-size:17px; font-weight:700; }
    .rs .belt .belt-sub { font-size:13px; color:var(--text-secondary); margin:0 0 16px; }
    .rs .belt-grid { display:grid; gap:10px; grid-template-columns:1fr 1fr; }
    /* prod: con un solo formato real (Grábalo ahora) la parrilla pasa a 1 columna */
    .rs .belt-grid.solo { grid-template-columns:1fr; }
    .rs--mobile .belt-grid { grid-template-columns:1fr; }
    .rs .chain { text-align:left; display:flex; align-items:center; gap:13px; padding:14px; border-radius:14px; border:1px solid var(--border-default); background:var(--surface-raised); color:var(--text-primary); cursor:pointer; transition: border-color .15s var(--ease), transform .12s var(--ease), background .15s var(--ease); }
    .rs .chain:hover { border-color:var(--border-strong); transform:translateY(-1px); }
    /* formatos aún no reales: visibles pero deshabilitados («Próximamente») */
    .rs .chain.chain-soon { opacity:.55; cursor:default; }
    .rs .chain.chain-soon:hover { border-color:var(--border-default); transform:none; }
    .rs .chain-soon-tag { flex:none; font-family:var(--font-mono); font-size:10px; letter-spacing:.05em; text-transform:uppercase; padding:4px 8px; border-radius:999px; border:1px solid var(--border-strong); color:var(--text-tertiary); }
    .rs .chain:active { transform:scale(.99); }
    .rs .chain .cic { width:40px; height:40px; border-radius:11px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:19px; background:var(--surface-overlay); }
    .rs .chain.chain-feature { background:linear-gradient(120deg, rgba(79,124,255,.12), transparent); border-color:rgba(79,124,255,.35); }
    .rs .chain.chain-feature .cic { background:var(--brand-600); color:#fff; }
    .rs .chain .ctext { flex:1; min-width:0; }
    .rs .chain .ctext .ct { font-size:14.5px; font-weight:600; margin-bottom:1px; }
    .rs .chain .ctext .cd { font-size:12px; color:var(--text-tertiary); line-height:1.35; }
    .rs .chain .arr { color:var(--text-tertiary); flex-shrink:0; }
    .rs .chain.done { opacity:.55; cursor:default; }
    .rs .chain.done .cic { background:var(--success-bg); color:var(--success-fg); }
    /* format result */
    .rs .result-head { font-family:var(--font-display); font-size:24px; margin:0 0 4px; }
    .rs .result-sub { font-size:13px; color:var(--text-secondary); margin:0 0 20px; }
    .rs .hook-item { display:flex; gap:12px; padding:15px 16px; border-radius:14px; background:var(--surface-raised); border:1px solid var(--border-default); margin-bottom:10px; transition:border-color .15s var(--ease); }
    .rs .hook-item:hover { border-color:var(--border-strong); }
    .rs .hook-item .hn { font-family:var(--font-mono); font-size:12px; color:var(--brand-500); flex-shrink:0; padding-top:2px; }
    .rs .hook-item .htext { flex:1; font-size:15.5px; line-height:1.4; font-weight:500; }
    .rs .hook-item .copy { font-size:11px; font-weight:700; color:var(--text-tertiary); cursor:pointer; align-self:center; padding:6px 10px; border-radius:8px; border:1px solid var(--border-default); }
    .rs .hook-item .copy:hover { color:var(--text-primary); }
    .rs .slides { display:flex; gap:12px; overflow-x:auto; padding-bottom:8px; margin-bottom:6px; }
    .rs .slide { flex-shrink:0; width:170px; aspect-ratio:4/5; border-radius:16px; padding:16px; background:var(--surface-raised); border:1px solid var(--border-default); display:flex; flex-direction:column; }
    .rs .slide .sidx { font-family:var(--font-mono); font-size:11px; color:var(--brand-500); margin-bottom:10px; }
    .rs .slide .stext { font-size:14px; font-weight:600; line-height:1.3; }
    .rs .slide.cover { background:linear-gradient(150deg, var(--brand-600), #6f93ff); border:none; color:#fff; }
    .rs .slide.cover .sidx { color:rgba(255,255,255,.7); }
    .rs .slide.cover .stext { font-family:var(--font-display); font-size:21px; font-weight:400; }
    .rs .serie-item { display:flex; gap:13px; padding:15px; border-radius:14px; background:var(--surface-raised); border:1px solid var(--border-default); margin-bottom:10px; align-items:flex-start; }
    .rs .serie-item .sday { width:54px; flex-shrink:0; }
    .rs .serie-item .sday .dnum { font-family:var(--font-display); font-size:26px; line-height:1; color:var(--brand-500); }
    .rs .serie-item .sday .dlbl { font-size:11px; color:var(--text-tertiary); }
    .rs .serie-item .sinfo .stitle { font-size:14.5px; font-weight:600; margin-bottom:3px; }
    .rs .serie-item .sinfo .sdesc { font-size:12.5px; color:var(--text-secondary); line-height:1.4; }
    .rs .cluster { display:flex; align-items:center; flex-wrap:wrap; }
    /* teleprompter */
    /* ── v3 mockup David · Teleprónter ─────────────────────────────────── */
    .rs .prompter { background:#05070D; color:#fff; display:flex; flex-direction:column; padding:0; }
    .rs .tp-top { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:16px 24px; border-bottom:1px solid rgba(255,255,255,.08); flex:none; }
    .rs .tp-top-l { display:flex; align-items:center; gap:12px; min-width:0; }
    .rs .tp-editback { display:inline-flex; align-items:center; gap:7px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); border-radius:10px; padding:8px 13px; color:rgba(255,255,255,.75); font-family:inherit; font-weight:600; font-size:13.5px; cursor:pointer; }
    .rs .tp-title { font-size:14.5px; color:#fff; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:420px; }
    .rs .tp-top-r { display:flex; align-items:center; gap:14px; flex:none; }
    .rs .tp-pill { display:inline-flex; align-items:center; gap:8px; padding:6px 12px; border-radius:999px; font-family:var(--font-mono); font-size:12px; font-weight:600; background:rgba(255,255,255,.07); color:rgba(255,255,255,.5); border:1px solid rgba(255,255,255,.1); }
    .rs .tp-pill-dot { width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.4); }
    .rs .tp-pill.rec { background:rgba(255,92,114,.14); color:#FF5C72; border-color:#FF5C72; }
    .rs .tp-pill.rec .tp-pill-dot { background:#FF5C72; animation:tpRec 1s ease-in-out infinite; }
    @keyframes tpRec { 0%,100%{opacity:1} 50%{opacity:.3} }
    .rs .tp-timer { font-family:var(--font-mono); font-size:18px; font-weight:600; color:#fff; font-variant-numeric:tabular-nums; }
    /* stage */
    .rs .tp-stage { position:relative; flex:1; min-height:0; overflow:hidden; background:#05070D; }
    .rs .tp-band { position:absolute; top:50%; left:0; right:0; height:118px; transform:translateY(-50%); background:linear-gradient(90deg, rgba(47,91,255,.05), rgba(47,91,255,.12), rgba(47,91,255,.05)); border-top:1px solid rgba(47,91,255,.25); border-bottom:1px solid rgba(47,91,255,.25); z-index:2; pointer-events:none; }
    .rs .tp-marker { position:absolute; left:18px; top:50%; transform:translateY(-50%); z-index:3; color:var(--brand-300,#6E92FF); pointer-events:none; }
    .rs .tp-marker svg { width:20px; height:20px; }
    .rs .tp-fade { position:absolute; left:0; right:0; height:150px; z-index:4; pointer-events:none; }
    .rs .tp-fade.top { top:0; background:linear-gradient(#05070D, rgba(5,7,13,0)); }
    .rs .tp-fade.bot { bottom:0; background:linear-gradient(rgba(5,7,13,0), #05070D); }
    .rs .tp-scroll { position:absolute; inset:0; overflow-y:auto; scroll-behavior:auto; z-index:1; }
    .rs .tp-text { padding:42vh 64px; max-width:840px; margin:0 auto; display:flex; flex-direction:column; gap:30px; }
    .rs .tp-text.mirror { transform:scaleX(-1); }
    .rs .tp-block { display:flex; flex-direction:column; gap:12px; }
    .rs .tp-block-k { font-family:var(--font-mono); font-size:14px; letter-spacing:.08em; color:var(--brand-300,#6E92FF); }
    .rs .tp-p { margin:0; font-family:var(--font-display); font-weight:600; line-height:1.32; color:#F3F6FC; }
    /* controls */
    .rs .tp-controls { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 24px; border-top:1px solid rgba(255,255,255,.08); flex-wrap:wrap; flex:none; }
    .rs .tp-c-l { display:flex; align-items:center; gap:10px; }
    .rs .tp-c-mid { display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
    .rs .tp-c-r { display:flex; align-items:center; gap:10px; }
    .rs .tp-mirror { display:inline-flex; align-items:center; gap:8px; padding:10px 15px; border-radius:12px; cursor:pointer; font-family:inherit; font-weight:600; font-size:13.5px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); color:#fff; }
    .rs .tp-mirror.on { background:var(--brand-soft, rgba(47,91,255,.16)); border-color:var(--brand-500,#2F5BFF); color:var(--brand-300,#6E92FF); }
    .rs .tp-recbtn { display:inline-flex; align-items:center; gap:10px; background:#FF5C72; border:none; border-bottom:4px solid #b3263a; border-radius:14px; padding:13px 24px; color:#fff; font-family:inherit; font-weight:600; font-size:16px; cursor:pointer; }
    .rs .tp-recbtn:active { transform:translateY(2px); border-bottom-width:2px; }
    .rs .tp-recbtn.on { background:rgba(255,92,114,.14); border:1px solid #FF5C72; border-bottom:1px solid #FF5C72; color:#FF5C72; }
    .rs .tp-recbtn-ci { width:14px; height:14px; border-radius:50%; background:#fff; }
    .rs .tp-recbtn-sq { width:14px; height:14px; border-radius:3px; background:#FF5C72; }
    .rs .tp-done { background:rgba(255,255,255,.1); color:#fff; border:none; }
    .rs .tp-foot { position:absolute; left:0; right:0; bottom:0; padding:18px 22px; background:linear-gradient(transparent, #000 40%); display:flex; gap:10px; }
    .rs .tp-foot .btn-primary { flex:1; }
    /* fill week batch */
    .rs .batch { padding:24px 22px; }
    .rs--desktop .batch { max-width:760px; margin:0 auto; }
    .rs .batch-row { display:flex; align-items:center; gap:13px; padding:14px 16px; border-radius:14px; background:var(--surface-raised); border:1px solid var(--border-default); margin-bottom:10px; transition: border-color .3s var(--ease); }
    .rs .batch-row .bava { flex-shrink:0; }
    .rs .batch-row .binfo { flex:1; min-width:0; }
    .rs .batch-row .binfo .bt { font-size:14px; font-weight:600; line-height:1.3; }
    .rs .batch-row .binfo .bw { font-size:12px; color:var(--text-tertiary); }
    .rs .batch-row .bstat { font-size:12px; font-weight:700; flex-shrink:0; display:flex; align-items:center; gap:6px; }
    .rs .batch-row .bstat.wait { color:var(--text-tertiary); }
    .rs .batch-row .bstat.run { color:var(--brand-500); }
    .rs .batch-row .bstat.done { color:var(--success-fg); }
    .rs .batch-row.is-done { border-color:var(--success-border); }
    .rs .mini-spin { width:14px; height:14px; border-radius:99px; border:2px solid var(--border-default); border-top-color:var(--brand-500); animation:rsSpin .7s linear infinite; }
    /* toast */
    .rs .rs-toast { position:absolute; left:50%; bottom:26px; transform:translateX(-50%) translateY(20px); z-index:80; background:var(--text-primary); color:var(--surface-base); padding:13px 18px; border-radius:13px; font-size:13.5px; font-weight:600; box-shadow:var(--shadow-lg); opacity:0; pointer-events:none; transition: all .4s var(--ease-out); display:flex; align-items:center; gap:10px; max-width:90%; }
    .rs .rs-toast.show { opacity:1; transform:translateX(-50%) translateY(0); pointer-events:auto; }
    /* Aviso «guion listo» del aha — a nivel BODY (fuera de .rs) para pintar POR ENCIMA del
       house tour (z:10002). Arriba centrado → no choca con el tooltip del tour (abajo).
       Colores LITERALES: las --brand-* solo existen dentro de .rs. */
    .rs-aha-ready { position:fixed; top:calc(16px + env(safe-area-inset-top,0px)); left:50%;
      transform:translateX(-50%) translateY(-16px); z-index:10003; display:inline-flex; align-items:center; gap:9px;
      padding:12px 18px; border-radius:99px; background:linear-gradient(120deg,#3a63ec,#4f7cff); color:#fff;
      font-weight:700; font-size:13.5px; line-height:1.25; box-shadow:0 12px 34px rgba(79,124,255,.45);
      opacity:0; pointer-events:none; max-width:92vw; text-align:left;
      transition:opacity .35s ease, transform .35s cubic-bezier(.2,.9,.2,1); }
    .rs-aha-ready.on { opacity:1; transform:translateX(-50%) translateY(0); }
    .rs-aha-ready svg { width:16px; height:16px; flex:none; }
    @media (prefers-reduced-motion: reduce){ .rs-aha-ready { transition:opacity .2s ease; } }
    .rs .rs-toast .tdot { width:8px; height:8px; border-radius:99px; background:var(--success); flex-shrink:0; }
    /* Fix review (T4/a11y): #rsView envuelve la vista re-renderizable sin afectar al
       layout (display:contents) — así #rsToast/#rsErr quedan FUERA del subárbol que
       se reescribe y las regiones aria-live son estables (se anuncian al mutar). */
    .rs .rs-view { display:contents; }
    /* T9 (IDI): acción inline del toast («Deshacer») */
    .rs .rs-toast .rs-toast-act { margin-left:6px; border:none; flex-shrink:0; background:color-mix(in srgb, var(--surface-base) 16%, transparent); color:var(--surface-base); font-weight:700; font-size:12.5px; font-family:var(--font-body); padding:5px 11px; border-radius:8px; cursor:pointer; }
    .rs .rs-toast .rs-toast-act:hover { background:color-mix(in srgb, var(--surface-base) 28%, transparent); }
    /* T4 (IDI): error persistente — más arriba que el toast (pueden convivir), punto
       rojo y botón de cerrar. No se va solo: lo cierra el usuario. */
    .rs .rs-err { bottom:84px; z-index:81; }
    .rs .rs-err .tdot.err { background:var(--danger, #e0556b); }
    .rs .rs-err .rs-err-x { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; margin-left:4px; border:none; border-radius:7px; background:transparent; color:var(--surface-base); opacity:.7; cursor:pointer; flex-shrink:0; }
    .rs .rs-err .rs-err-x:hover { opacity:1; background:color-mix(in srgb, var(--surface-base) 14%, transparent); }
    .rs .rs-err .rs-err-x svg { width:14px; height:14px; }
    /* enter anims */
    .rs .fade-in { animation: rsFadeIn .5s var(--ease-out) both; }
    @keyframes rsFadeIn { from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:translateY(0); } }
    .rs .stagger > * { animation: rsFadeIn .5s var(--ease-out) both; }
    .rs .stagger > *:nth-child(1){ animation-delay:.04s; }
    .rs .stagger > *:nth-child(2){ animation-delay:.10s; }
    .rs .stagger > *:nth-child(3){ animation-delay:.16s; }
    .rs .stagger > *:nth-child(4){ animation-delay:.22s; }
    .rs .stagger > *:nth-child(5){ animation-delay:.28s; }
    .rs .stagger > *:nth-child(6){ animation-delay:.34s; }
    /* empty / loading states de la isla */
    .rs .rs-empty { grid-column:1/-1; padding:48px 24px; text-align:center; color:var(--text-tertiary); }
    /* ══════ growth-2 · ONBOARDING DE ACTIVACIÓN (empty-state del Radar) ══════ */
    .rs .onb { max-width:620px; margin:8px auto 40px; }
    .rs .onb-step { border:1px solid var(--border-strong); border-radius:22px; background:linear-gradient(160deg, color-mix(in srgb, var(--brand-500) 8%, var(--surface-raised)), var(--surface-raised)); padding:34px 32px; box-shadow:var(--shadow-lg); }
    .rs--mobile .onb-step { padding:26px 20px; border-radius:18px; }
    /* v3 (mockup David): mono azul, minúscula con «› », sin MAYÚS. */
    .rs .onb-eyebrow { display:inline-flex; align-items:center; gap:7px; font-family:var(--font-mono); font-size:12px; letter-spacing:.06em; color:var(--brand-500); margin-bottom:14px; }
    .rs .onb-eyebrow svg { width:14px; height:14px; }
    /* ════ RADAR HERO v3 (mockup David «RADAR exploración») ════ */
    /* T1 fold: hero compactado (paddings/gaps/tipos) para que la Oportunidad #1
       («Roba la idea») entre sobre el fold en 900px de alto. Misma jerarquía. */
    .rs .rdr-hero { display:flex; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:24px; overflow:hidden; margin-bottom:18px; }
    .rs .rdr-hero-l { flex:1; min-width:0; padding:22px 28px; display:flex; flex-direction:column; gap:12px; }
    .rs .rdr-eyebrow { display:inline-flex; align-items:center; gap:9px; font-family:var(--font-mono); font-size:12px; letter-spacing:.06em; color:var(--text-tertiary); }
    .rs .rdr-eye-dot { width:8px; height:8px; border-radius:9999px; background:var(--success-fg); box-shadow:0 0 8px var(--success-fg); flex:none; }
    .rs .rdr-title { font-family:var(--font-display); font-weight:700; font-size:38px; line-height:1; letter-spacing:-.02em; color:var(--text-primary); margin:0; }
    .rs .rdr-sub { font-size:16px; line-height:1.45; color:var(--text-secondary); margin:0; max-width:520px; }
    .rs .rdr-sub b { color:var(--text-primary); font-weight:600; }
    .rs .rdr-stats { display:flex; align-items:flex-end; gap:28px; margin-top:2px; flex-wrap:wrap; }
    /* Refresco manual VISIBLE en el hero (antes enterrado en la addbar al fondo) */
    .rs .rdr-refresh-row { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:6px; }
    .rs .rdr-refresh-cta { display:inline-flex; align-items:center; gap:7px; font-size:.86rem; font-weight:600; padding:9px 15px; border-radius:11px; border:1px solid var(--brand-500); background:color-mix(in srgb, var(--brand-500) 10%, transparent); color:var(--brand-500); cursor:pointer; transition:background .15s; }
    .rs .rdr-refresh-cta:hover { background:color-mix(in srgb, var(--brand-500) 18%, transparent); }
    /* «↻ otras» GRATIS: estilo SECUNDARIO/ghost, bien diferenciado del de pago (brand) */
    .rs .rdr-reshuffle-cta { display:inline-flex; align-items:center; gap:7px; font-size:.86rem; font-weight:600; padding:9px 15px; border-radius:11px; border:1px solid var(--border-default); background:transparent; color:var(--text-secondary); cursor:pointer; transition:background .15s; }
    .rs .rdr-reshuffle-cta:hover { color:var(--text); border-color:var(--text-tertiary); background:var(--surface-raised); }
    .rs .rdr-refresh-cta svg { width:15px; height:15px; }
    .rs .rdr-stat { display:flex; flex-direction:column; gap:5px; }
    .rs .rdr-stat-v { font-family:var(--font-display); font-weight:800; font-size:28px; line-height:1; font-variant-numeric:tabular-nums; }
    .rs .rdr-stat-l { font-size:13.5px; color:var(--text-secondary); display:inline-flex; align-items:center; gap:7px; }
    .rs .rdr-livedot { width:6px; height:6px; border-radius:50%; background:var(--success-fg); box-shadow:0 0 7px var(--success-fg); animation:esPulse 1.3s ease-in-out infinite; flex:none; }
    .rs .rdr-hero-r { width:300px; flex:none; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; padding:18px 20px; background:radial-gradient(circle at 50% 42%, var(--surface-overlay), var(--surface-raised)); border-left:1px solid var(--border-default); }
    .rs .rdr-scope { position:relative; width:176px; height:176px; }
    .rs .rdr-face { position:absolute; inset:0; border-radius:50%; overflow:hidden; background:radial-gradient(circle at 50% 50%, var(--surface-raised), var(--surface-overlay)); border:1px solid var(--border-strong); }
    .rs .rdr-ring { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); border-radius:50%; border:1px solid var(--border-default); }
    .rs .rdr-ring.r1 { width:74%; height:74%; } .rs .rdr-ring.r2 { width:48%; height:48%; } .rs .rdr-ring.r3 { width:22%; height:22%; border-color:var(--border-strong); }
    .rs .rdr-axis { position:absolute; background:var(--border-default); }
    .rs .rdr-axis.x { top:50%; left:0; width:100%; height:1px; } .rs .rdr-axis.y { left:50%; top:0; height:100%; width:1px; }
    .rs .rdr-sweep { position:absolute; inset:0; border-radius:50%; background:conic-gradient(from 0deg, transparent 0deg 280deg, color-mix(in srgb,var(--brand-500) 14%, transparent) 340deg, color-mix(in srgb,var(--brand-500) 55%, transparent) 360deg); animation:esSpin 4s linear infinite; }
    .rs .rdr-blip { position:absolute; border-radius:50%; transform:translate(-50%,-50%); }
    .rs .rdr-blip.g { width:10px; height:10px; background:var(--success-fg); box-shadow:0 0 10px var(--success-fg); animation:esBlip 2.4s ease-in-out infinite; }
    .rs .rdr-blip.o { width:8px; height:8px; background:#FF8A3D; box-shadow:0 0 8px #FF8A3D; animation:esBlip 2.8s ease-in-out .6s infinite; }
    .rs .rdr-blip.b { width:7px; height:7px; background:var(--brand-500); box-shadow:0 0 8px var(--brand-500); animation:esBlip 3.1s ease-in-out .3s infinite; }
    .rs .rdr-blip.n { width:6px; height:6px; background:var(--text-tertiary); animation:esBlip 2.6s ease-in-out 1s infinite; }
    .rs .rdr-ping { position:absolute; width:10px; height:10px; border-radius:50%; border:2px solid var(--success-fg); transform:translate(-50%,-50%); animation:esPing 2.4s ease-out infinite; }
    .rs .rdr-core { position:absolute; top:50%; left:50%; width:8px; height:8px; border-radius:50%; background:var(--brand-500); transform:translate(-50%,-50%); box-shadow:0 0 0 4px color-mix(in srgb,var(--brand-500) 16%, transparent); }
    .rs .rdr-cap { display:inline-flex; align-items:center; gap:9px; padding:8px 15px; border-radius:9999px; background:var(--surface-raised); border:1px solid var(--border-default); }
    .rs .rdr-cap-dot { width:7px; height:7px; border-radius:50%; background:var(--brand-500); animation:esPulse 1.4s ease-in-out infinite; flex:none; }
    .rs .rdr-cap-t { font-family:var(--font-mono); font-size:12px; letter-spacing:.03em; color:var(--text-secondary); }
    @keyframes esSpin { to { transform:rotate(360deg); } }
    @keyframes esBlip { 0%,100%{ opacity:.35; transform:translate(-50%,-50%) scale(.8); } 50%{ opacity:1; transform:translate(-50%,-50%) scale(1.2); } }
    @keyframes esPing { 0%{ opacity:.7; transform:translate(-50%,-50%) scale(.6); } 100%{ opacity:0; transform:translate(-50%,-50%) scale(2.4); } }
    @keyframes esPulse { 0%,100%{ opacity:.35; } 50%{ opacity:1; } }
    @media (prefers-reduced-motion: reduce){ .rs .rdr-sweep, .rs .rdr-blip, .rs .rdr-ping, .rs .rdr-cap-dot, .rs .rdr-livedot { animation:none; } }
    @media (max-width:860px){ .rs .rdr-hero { flex-direction:column; } .rs .rdr-hero-r { width:100%; border-left:none; border-top:1px solid var(--border-default); } .rs .rdr-title { font-size:34px; } }
    .rs .onb-h { font-family:var(--font-display); font-size:30px; line-height:1.05; letter-spacing:-.02em; margin:0 0 8px; color:var(--text-primary); }
    .rs--mobile .onb-h { font-size:25px; }
    .rs .onb-sub { font-size:14.5px; color:var(--text-secondary); margin:0 0 22px; line-height:1.5; }
    .rs .onb-pform { display:flex; gap:10px; align-items:stretch; }
    .rs--mobile .onb-pform { flex-direction:column; }
    .rs .onb-handle { flex:1; display:flex; align-items:center; gap:4px; background:var(--surface-base); border:1.5px solid var(--border-strong); border-radius:13px; padding:0 14px; transition:border-color .15s ease; }
    .rs .onb-handle:focus-within { border-color:var(--brand-500); }
    .rs .onb-at { color:var(--text-tertiary); font-size:18px; font-weight:600; }
    .rs .onb-input { flex:1; border:none; background:transparent; outline:none; color:var(--text-primary); font-size:17px; padding:15px 4px; min-width:0; }
    /* v3 (mockup David): chip verde de validación de handle, oculto hasta formato válido. */
    .rs .onb-handle-ok { display:none; align-items:center; gap:6px; flex:none; padding:8px 12px; border-radius:10px; background:var(--success-bg, rgba(47,209,138,.12)); color:var(--success-fg, #3FE0A0); font-size:12.5px; font-weight:600; white-space:nowrap; }
    .rs .onb-handle-ok.on { display:inline-flex; }
    .rs .onb-handle-ok svg { width:14px; height:14px; }
    .rs .onb-go { flex:0 0 auto; white-space:nowrap; }
    .rs--mobile .onb-go { width:100%; justify-content:center; }
    /* «Este eres tú» — avatar de IG (unavatar) con fallback a iniciales */
    .rs .onb-confirm { text-align:center; }
    .rs .onbc-ava-wrap { position:relative; width:108px; height:108px; margin:6px auto 22px; border-radius:50%; box-shadow:0 0 0 4px color-mix(in srgb,var(--brand-500) 18%, transparent); }
    .rs .onbc-ava-fb { position:absolute; inset:0; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-weight:700; font-size:34px; color:#fff;
      background:linear-gradient(135deg, var(--brand-500,#2F5BFF), #6f93ff); }
    .rs .onbc-ava { position:absolute; inset:0; width:108px; height:108px; border-radius:50%; object-fit:cover; opacity:0; transition:opacity .35s ease; }
    .rs .onbc-ava.on { opacity:1; }
    .rs .onbc-ava-wrap.loading::after { content:""; position:absolute; inset:-5px; border-radius:50%; border:3px solid color-mix(in srgb,var(--brand-500) 25%, transparent); border-top-color:var(--brand-500,#2F5BFF); animation:rsSpin .9s linear infinite; }
    .rs .onbc-badge { position:absolute; right:-2px; bottom:-2px; width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#fff; color:#E1306C; border:3px solid var(--surface-base); box-shadow:0 4px 12px rgba(0,0,0,.2); }
    .rs .onbc-badge svg { width:18px; height:18px; }
    /* «Tus vídeos» — 3 reels + alimentar el Cerebro */
    .rs .onb-myreels { text-align:center; }
    .rs .onbmr-eyebrow { font-family:var(--font-mono); font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--brand-500); display:flex; align-items:center; justify-content:center; gap:8px; margin-bottom:10px; }
    .rs .onbmr-eyebrow .pip { width:6px; height:6px; border-radius:50%; background:var(--brand-500); box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-500) 22%, transparent); }
    .rs .onbmr-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:22px 0 6px; }
    .rs .onbmr-card { position:relative; aspect-ratio:9/14; border-radius:14px; overflow:hidden; background:var(--surface-sunken); border:1px solid var(--border-default); }
    .rs .onbmr-thumb { width:100%; height:100%; object-fit:cover; display:block; }
    .rs .onbmr-ph { display:flex; align-items:center; justify-content:center; color:var(--brand-500); }
    .rs .onbmr-ph svg { width:30px; height:30px; opacity:.5; }
    .rs .onbmr-views { position:absolute; left:0; right:0; bottom:0; padding:8px; font-size:12px; font-weight:700; color:#fff; display:flex; align-items:center; gap:5px; background:linear-gradient(transparent, rgba(0,0,0,.72)); }
    .rs .onbmr-views svg { width:13px; height:13px; }
    .rs .onbmr-skel { background:linear-gradient(100deg, var(--surface-sunken) 30%, var(--surface-raised) 50%, var(--surface-sunken) 70%); background-size:200% 100%; animation:rsShimmer 1.3s linear infinite; }
    @keyframes rsShimmer { 0%{ background-position:200% 0; } 100%{ background-position:-200% 0; } }
    @media (prefers-reduced-motion: reduce){ .rs .onbmr-skel { animation:none; } }
    .rs .onb-skip { display:block; margin:18px auto 0; background:none; border:none; color:var(--text-tertiary); font-size:13px; cursor:pointer; text-decoration:underline; text-underline-offset:3px; padding:8px; min-height:44px; }
    .rs .onb-skip:hover { color:var(--text-secondary); }
    /* Vía «Descríbete con un prompt de IA» del paso Cerebro. SECUNDARIA (onb-ctx--sub) =
       disclosure colapsable para no competir con «Alimentar el Cerebro»; PRIMARIA
       (onb-ctx--solo, usuario sin Instagram) = card sólida abierta. */
    .rs .onb-ctx { margin-top:16px; text-align:left; }
    .rs .onb-ctx--sub { border-top:1px solid var(--border-subtle); }
    .rs .onb-ctx-toggle { width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px; background:none; border:none; padding:14px 2px; cursor:pointer; color:var(--text-secondary); font:inherit; font-size:13.5px; font-weight:600; text-align:left; min-height:44px; }
    .rs .onb-ctx-toggle:hover { color:var(--text-primary); }
    .rs .onb-ctx-chev { display:flex; color:var(--text-tertiary); transition:transform .2s ease; }
    .rs .onb-ctx--sub.open .onb-ctx-chev { transform:rotate(180deg); }
    .rs .onb-ctx--solo { border:1px solid var(--border-default); border-radius:16px; background:var(--surface-base); padding:18px; }
    .rs .onb-ctx-t { font-family:var(--font-mono); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--brand-500); margin-bottom:12px; }
    .rs .onb-ctx-body { padding-top:2px; }
    .rs .onb-ctx-lead { font-size:13px; color:var(--text-secondary); line-height:1.5; margin:0 0 12px; }
    .rs .onb-ctx-prompt { border:1px solid var(--border-default); border-radius:12px; background:var(--surface-sunken); overflow:hidden; margin-bottom:12px; }
    .rs .onb-ctx-prompt-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:7px 8px 7px 12px; border-bottom:1px solid var(--border-subtle); background:color-mix(in srgb, var(--surface-raised) 55%, transparent); }
    .rs .onb-ctx-prompt-lbl { font-family:var(--font-mono); font-size:10.5px; letter-spacing:.16em; color:var(--text-tertiary); }
    .rs .onb-ctx-copy { display:inline-flex; align-items:center; gap:6px; background:var(--surface-base); border:1px solid var(--border-default); border-radius:8px; padding:6px 11px; font:inherit; font-size:12px; font-weight:600; color:var(--text-secondary); cursor:pointer; min-height:34px; }
    .rs .onb-ctx-copy:hover { border-color:var(--brand-500); color:var(--brand-500); }
    .rs .onb-ctx-copy svg { width:13px; height:13px; }
    .rs .onb-ctx-code { display:block; padding:13px 14px; font-family:var(--font-mono); font-size:12.5px; line-height:1.55; color:var(--text-primary); white-space:pre-wrap; word-break:break-word; }
    .rs .onb-ctx-ta { display:block; width:100%; box-sizing:border-box; min-height:96px; resize:vertical; padding:12px 14px; border:1px solid var(--border-default); border-radius:12px; background:var(--surface-base); color:var(--text-primary); font:inherit; font-family:var(--font-body); font-size:14px; outline:none; margin:0 0 12px; }
    .rs .onb-ctx-ta:focus { border-color:color-mix(in srgb, var(--brand-500) 50%, transparent); }
    .rs .onb-ctx-save { width:100%; justify-content:center; margin:0; }
    /* Paso 3 «Descríbete con un prompt de IA» — el bloque prompt/textarea SIEMPRE oscuro
       (código para copiar/pegar), no sigue el tema claro (se veía blanco y feo). David 09/07. */
    .rs .onb-ctx--solo { background:#0c0e13; border-color:rgba(255,255,255,.09); }
    .rs .onb-ctx-t { color:var(--brand-400,#7aa2ff); }
    .rs .onb-ctx-lead { color:#aab2be; }
    .rs .onb-ctx-prompt { background:#0a0c11; border-color:rgba(255,255,255,.1); }
    .rs .onb-ctx-prompt-head { background:#14171e; border-bottom-color:rgba(255,255,255,.07); }
    .rs .onb-ctx-prompt-lbl { color:#8a92a0; }
    .rs .onb-ctx-code { color:#e7eaf0; }
    .rs .onb-ctx-copy { background:#1b1f28; border-color:rgba(255,255,255,.13); color:#c7cdd6; }
    .rs .onb-ctx-copy:hover { border-color:var(--brand-500); color:var(--brand-400,#7aa2ff); }
    .rs .onb-ctx-ta { background:#0a0c11; border-color:rgba(255,255,255,.1); color:#f2f4f7; }
    .rs .onb-ctx-ta::placeholder { color:#6b7280; }
    .rs .onb-ctx-ta:focus { border-color:color-mix(in srgb, var(--brand-500) 55%, transparent); }
    .rs .onb-ctx-toggle { color:#aab2be; }
    .rs .onb-ctx-toggle:hover { color:#f2f4f7; }
    .rs .onb-err { margin-top:14px; padding:11px 14px; border-radius:11px; background:color-mix(in srgb, var(--danger-fg, #ef4444) 12%, transparent); border:1px solid color-mix(in srgb, var(--danger-fg, #ef4444) 35%, transparent); color:var(--danger-fg, #ef4444); font-size:13.5px; }
    .rs .onb-cards { display:flex; flex-direction:column; gap:10px; margin-bottom:22px; }
    .rs .onb-card { display:flex; align-items:center; gap:13px; width:100%; text-align:left; padding:13px 15px; border:1.5px solid var(--border-default); border-radius:14px; background:var(--surface-base); cursor:pointer; transition:border-color .15s ease, background .15s ease; }
    .rs .onb-card:hover { border-color:var(--border-strong); }
    .rs .onb-card.on { border-color:var(--brand-500); background:color-mix(in srgb, var(--brand-500) 8%, var(--surface-base)); }
    .rs .onb-card-check { flex:0 0 22px; width:22px; height:22px; border-radius:7px; border:1.5px solid var(--border-strong); display:flex; align-items:center; justify-content:center; color:#fff; }
    .rs .onb-card.on .onb-card-check { background:var(--brand-500); border-color:var(--brand-500); }
    .rs .onb-card-check svg { width:14px; height:14px; }
    .rs .onb-card .ava { flex:0 0 auto; }
    .rs .onb-card-body { display:flex; flex-direction:column; min-width:0; }
    .rs .onb-card-h { font-weight:600; font-size:15px; color:var(--text-primary); }
    .rs .onb-card-r { font-size:12.5px; color:var(--text-tertiary); overflow:hidden; text-overflow:ellipsis; }
    .rs .onb-step .btn-primary { width:100%; justify-content:center; }
    .rs .onb-done { text-align:center; }
    .rs .onb-spin { margin-top:20px; display:flex; justify-content:center; }

    /* ══ Onboarding v2 — pantalla dedicada (oculta el radar vacío) ══ */
    .rs .onb-screen { position:fixed; inset:0; z-index:50; display:flex; flex-direction:column; align-items:center; overflow-y:auto; padding:0 20px 60px; }
    /* ══ v=136 · SPLIT-SCREEN ONBOARDING + CEREBRO (Claude Design) ══
       El cerebro (canvas) vive en #rsBrainHost (panel izquierdo, fijo, persistente).
       El wizard (.onb-screen--split) se empuja a la mitad derecha en desktop; en móvil
       el cerebro pasa a banda superior y el wizard va debajo. */
    .rs .onb-brain-host { position:fixed; left:0; top:0; bottom:0; width:48vw; z-index:60; overflow:hidden;
      background:radial-gradient(120% 80% at 50% 40%, color-mix(in srgb, var(--brand-500) 14%, transparent), transparent 60%), #050506;
      border-right:1px solid var(--border-subtle); }
    .rs .onb-brain-host canvas { position:absolute; inset:0; width:100%; height:100%; display:block; }
    .rs .onb-bh-logo { position:absolute; left:26px; top:24px; z-index:2; display:inline-flex; align-items:center; gap:7px; font-family:var(--font-display); font-weight:700; font-size:15px; color:var(--text-primary); }
    .rs .onb-bh-logo svg { color:var(--brand-500); }
    .rs .onb-bh-cap { position:absolute; left:30px; bottom:32px; z-index:2; pointer-events:none; max-width:74%; }
    .rs .onb-bh-tag { font-family:var(--font-mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--brand-400); margin-bottom:10px; }
    .rs .onb-bh-title { font-family:var(--font-accent); font-weight:800; font-size:clamp(22px,2.6vw,34px); letter-spacing:-.01em; color:var(--text-primary); line-height:1.04; max-width:13ch; }
    .rs--desktop .onb-screen--split { padding-left:48vw; }
    .rs .onb-screen--split .onb-top { display:none; }   /* el logo ya vive en el panel del cerebro (evita logo duplicado en móvil) */
    .rs--mobile .onb-brain-host { width:100%; right:0; bottom:auto; height:200px; border-right:none; border-bottom:1px solid var(--border-subtle); }
    .rs--mobile .onb-bh-logo { left:18px; top:16px; font-size:14px; }
    .rs--mobile .onb-bh-cap { left:18px; bottom:14px; }
    .rs--mobile .onb-bh-title { font-size:19px; }
    .rs--mobile .onb-screen--split { padding-top:212px; }
    @media (prefers-reduced-motion: reduce){ .rs .onb-brain-host canvas { opacity:.92; } }
    .rs .onb-screen-bg { position:fixed; inset:0; z-index:0; pointer-events:none;
      background:radial-gradient(120% 60% at 50% -10%, color-mix(in srgb, var(--brand-500) 16%, transparent), transparent 60%), var(--surface-base); }
    .rs .onb-screen-inner { position:relative; z-index:1; width:100%; max-width:560px; margin:0 auto; padding-top:34px; display:flex; flex-direction:column; }
    .rs .onb-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:26px; }
    .rs .onb-logo { display:inline-flex; align-items:center; gap:7px; font-family:var(--font-display); font-weight:700; font-size:16px; color:var(--text-primary); }
    .rs .onb-logo svg { color:var(--brand-500); }
    .rs .onb-skip-top { background:none; border:none; color:var(--text-tertiary); font-size:13px; cursor:pointer; padding:8px; min-height:44px; }
    .rs .onb-skip-top:hover { color:var(--text-secondary); }
    .rs .onb-prog { display:flex; align-items:center; gap:12px; margin-bottom:22px; }
    .rs .onbp-dots { display:flex; gap:6px; flex:1; }
    .rs .onbp-dot { height:5px; flex:1; border-radius:99px; background:var(--border-default); transition:background .25s ease; }
    .rs .onbp-dot.on { background:var(--brand-500); }
    .rs .onbp-lbl { font-family:var(--font-mono); font-size:11px; letter-spacing:.06em; color:var(--text-tertiary); white-space:nowrap; }
    .rs .onb-box { display:block; border:1px solid var(--border-strong); border-radius:22px;
      background:linear-gradient(160deg, color-mix(in srgb, var(--brand-500) 7%, var(--surface-raised)), var(--surface-raised));
      padding:32px 30px; box-shadow:var(--shadow-lg); }
    .rs .onb-box--wide { max-width:560px; }
    /* todos los pasos al MISMO ancho (560): si el paso 4 ensancha el shell, la barra de
       progreso crecía y se descentraba respecto a los demás pasos. */
    .rs .onb-box .btn-primary, .rs .onb-cta { width:100%; justify-content:center; margin-top:16px; }
    .rs .onb-row { display:flex; gap:10px; align-items:center; margin-top:18px; }
    .rs .onb-row .onb-cta { flex:1; margin-top:0; }
    .rs .onb-back-btn { flex:0 0 auto; display:inline-flex; align-items:center; gap:5px; min-height:48px; padding:0 16px; border-radius:12px; border:1px solid var(--border-default); background:transparent; color:var(--text-secondary); font:inherit; font-family:var(--font-body); font-weight:600; font-size:14px; cursor:pointer; }
    .rs .onb-back-btn:hover { border-color:var(--border-strong); color:var(--text-primary); }
    /* nicho: chips + texto libre */
    .rs .onb-chips { display:flex; flex-wrap:wrap; gap:9px; margin-bottom:14px; }
    .rs .onb-chip { min-height:44px; padding:0 16px; border-radius:99px; border:1px solid var(--border-default); background:var(--surface-base); color:var(--text-secondary); font:inherit; font-family:var(--font-body); font-weight:600; font-size:14px; cursor:pointer; transition:all .14s ease; }
    /* v3 (mockup David): nicho como grid de icon-cards (inicial en caja). */
    .rs .onb-niche-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px; margin-bottom:14px; }
    .rs .onb-ncard { display:flex; flex-direction:column; align-items:flex-start; gap:12px; padding:16px; border-radius:15px; cursor:pointer; text-align:left; background:var(--surface-base); border:1px solid var(--border-default); color:var(--text-primary); font-family:var(--font-body); transition:border-color .18s var(--ease), background .18s var(--ease); }
    .rs .onb-ncard:hover { border-color:var(--brand-400); }
    .rs .onb-ncard.on { background:color-mix(in srgb, var(--brand-500) 12%, transparent); border-color:var(--brand-500); }
    .rs .onb-ncard-ic { display:flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:10px; background:var(--surface-overlay); color:var(--text-secondary); font-family:var(--font-display); font-weight:600; font-size:17px; }
    .rs .onb-ncard.on .onb-ncard-ic { background:var(--brand-500); color:#fff; }
    .rs .onb-ncard-l { font-weight:600; font-size:14.5px; }
    .rs .onb-ncard-ic--em { font-size:21px; line-height:1; }
    .rs .onb-ncard.on .onb-ncard-ic--em { background:color-mix(in srgb, var(--brand-500) 20%, var(--surface-overlay)); }
    @media (max-width:560px){ .rs .onb-niche-grid { grid-template-columns:1fr 1fr; } }
    .rs .onb-chip:hover { border-color:var(--brand-400); color:var(--text-primary); }
    .rs .onb-chip.on { background:color-mix(in srgb, var(--brand-500) 16%, transparent); border-color:var(--brand-500); color:var(--brand-200); }
    .rs[data-theme="light"] .onb-chip.on { color:var(--brand-700); }
    .rs .onb-text { width:100%; box-sizing:border-box; border:1.5px solid var(--border-strong); border-radius:13px; background:var(--surface-base); color:var(--text-primary); font-size:16px; padding:14px 15px; outline:none; }
    .rs .onb-text:focus { border-color:var(--brand-500); }
    .rs .onb-text::placeholder { color:var(--text-tertiary); }
    /* subnicho: tags */
    .rs .onb-tags { display:flex; flex-wrap:wrap; gap:8px; min-height:46px; padding:10px; border:1.5px dashed var(--border-strong); border-radius:13px; margin-bottom:12px; align-content:flex-start; }
    .rs .onb-tags--sugg { border:none; padding:0; min-height:0; }
    .rs .onb-tags-ph { color:var(--text-tertiary); font-size:13.5px; align-self:center; }
    .rs .onb-tag { display:inline-flex; align-items:center; gap:5px; min-height:36px; padding:0 13px; border-radius:99px; border:1px solid var(--border-default); background:var(--surface-base); color:var(--text-secondary); font:inherit; font-family:var(--font-body); font-weight:600; font-size:13px; cursor:pointer; }
    .rs .onb-tag:hover { border-color:var(--brand-400); color:var(--text-primary); }
    .rs .onb-tag.on { background:var(--brand-500); border-color:var(--brand-500); color:#fff; }
    .rs[data-theme="light"] .onb-tag.on { background:var(--brand-500); border-color:var(--brand-500); color:#fff; }
    .rs .onb-tag.on:hover { color:#fff; border-color:var(--brand-500); }
    .rs .onb-tag b { font-weight:700; opacity:.7; }
    .rs .onb-tag.on b { opacity:.85; color:#fff; }
    .rs .onb-tagadd { display:flex; align-items:center; gap:0; border:1.5px solid var(--border-strong); border-radius:13px; background:var(--surface-base); padding:0 6px 0 12px; margin-bottom:14px; }
    .rs .onb-tagadd:focus-within { border-color:var(--brand-500); }
    .rs .onb-hash { color:var(--text-tertiary); font-size:16px; font-weight:600; }
    .rs .onb-text--tag { border:none; background:transparent; padding:13px 8px; }
    .rs .onb-tagadd-btn { flex:0 0 auto; width:38px; height:38px; border-radius:10px; border:none; background:var(--brand-600); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; }
    .rs .onb-sugg-lbl { font-size:12px; color:var(--text-tertiary); margin:4px 0 8px; }
    /* valor: reels que petan */
    .rs .onb-value-load { display:flex; align-items:center; gap:10px; color:var(--text-secondary); font-size:14px; margin-bottom:16px; }
    .rs .onb-value-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:20px; }
    .rs .onb-vcard { border:1px solid var(--border-default); border-radius:14px; background:var(--surface-base); padding:14px; display:flex; flex-direction:column; gap:8px; }
    .rs .onb-vcard--skel { height:120px; background:linear-gradient(100deg, var(--surface-base), var(--surface-raised), var(--surface-base)); opacity:.5; }
    .rs .onb-vcard-top { display:flex; align-items:center; gap:8px; }
    .rs .onb-vcard-h { font-size:13px; font-weight:600; color:var(--text-secondary); flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .rs .onb-vcard-x { display:inline-flex; align-items:center; gap:3px; font-family:var(--font-mono); font-size:12px; font-weight:700; color:var(--brand-500); }
    .rs[data-theme="light"] .onb-vcard-x { color:var(--brand-700); }
    .rs .onb-vcard-cap { font-size:13.5px; line-height:1.4; color:var(--text-primary); }
    .rs .onb-vcard-meta { display:flex; align-items:center; gap:5px; font-size:11.5px; color:var(--text-tertiary); margin-top:auto; }
    /* Miniatura del reel en la 1ª sugerencia del onboarding (imagen real del subnicho
       o gradiente+play de fallback) + badge de multiplicador superpuesto. */
    .rs .onb-vcard-thumb { position:relative; width:100%; height:104px; border-radius:10px; overflow:hidden; background:var(--surface-raised); }
    .rs .onb-vcard-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
    .rs .onb-vcard-ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.9); }
    .rs .onb-vcard-thumb .onb-vcard-x { position:absolute; top:7px; right:7px; padding:3px 8px; border-radius:999px; background:rgba(8,10,20,.78); color:#fff; backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); font-size:11.5px; }
    .rs .onb-vcard-thumb .onb-vcard-x svg { color:#ffd24a; }
    /* competidores: filas */
    .rs .onb-card-row { display:flex; align-items:center; gap:13px; width:100%; text-align:left; padding:13px 15px; border:1.5px solid var(--border-default); border-radius:14px; background:var(--surface-base); cursor:pointer; transition:border-color .15s ease, background .15s ease; min-height:64px; }
    .rs .onb-card-row:hover { border-color:var(--border-strong); }
    .rs .onb-card-row.on { border-color:var(--brand-500); background:color-mix(in srgb, var(--brand-500) 8%, var(--surface-base)); }
    .rs .onb-cards { display:flex; flex-direction:column; gap:10px; margin-bottom:14px; }
    /* objetivo: 4 cards */
    .rs .onb-goals { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:18px; }
    .rs .onb-goal { display:flex; flex-direction:column; align-items:flex-start; gap:4px; text-align:left; padding:16px; border:1.5px solid var(--border-default); border-radius:16px; background:var(--surface-base); cursor:pointer; transition:all .14s ease; min-height:96px; }
    .rs .onb-goal:hover { border-color:var(--border-strong); }
    .rs .onb-goal.on { border-color:var(--brand-500); background:color-mix(in srgb, var(--brand-500) 9%, var(--surface-base)); }
    .rs .onb-goal-ic { color:var(--brand-500); margin-bottom:4px; }
    .rs[data-theme="light"] .onb-goal-ic { color:var(--brand-700); }
    .rs .onb-goal-l { font-weight:700; font-size:16px; color:var(--text-primary); }
    .rs .onb-goal-d { font-size:12.5px; color:var(--text-tertiary); line-height:1.35; }
    /* cierre: cerebro 50% + checklist */
    .rs .onb-brain { margin-bottom:18px; }
    .rs .onb-brain-bar { height:9px; border-radius:99px; background:var(--surface-base); overflow:hidden; border:1px solid var(--border-default); }
    .rs .onb-brain-fill { height:100%; border-radius:99px; background:linear-gradient(90deg, var(--brand-600), var(--brand-400)); }
    .rs .onb-brain-row { display:flex; align-items:center; justify-content:space-between; margin-top:8px; }
    .rs .onb-brain-k { display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:600; color:var(--text-secondary); }
    .rs .onb-brain-v { font-family:var(--font-mono); font-size:15px; font-weight:700; color:var(--brand-500); }
    /* v3: anillo del Cerebro en el cierre (reusa .brain-ring del Cerebro, tamaño 150). */
    .rs .onb-brain-ring { display:flex; justify-content:center; margin:6px 0 22px; }
    .rs .onb-brain-ring .brain-ring { width:150px; height:150px; }
    .rs .onb-ring-pct { font-family:var(--font-display); font-size:34px; font-weight:600; line-height:1; letter-spacing:-.02em; color:var(--text-primary); }
    /* Cierre centrado (mockup David): anillo + acento Syne + título + sub + CTA. */
    .rs .onb-box--center { text-align:center; display:flex; flex-direction:column; align-items:center; }
    .rs .onb-box--center .onb-h { max-width:460px; }
    .rs .onb-box--center .onb-sub { max-width:440px; margin-bottom:4px; }
    .rs .onb-box--center .onb-cta { margin-top:18px; max-width:340px; }
    .rs .onb-close-ring { display:flex; justify-content:center; margin-bottom:18px; }
    .rs .onb-close-ring .brain-ring { width:150px; height:150px; }
    .rs .onb-close-accent { font-family:var(--font-accent); font-weight:700; font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:var(--brand-500); margin-bottom:13px; }
    .rs[data-theme="light"] .onb-brain-v { color:var(--brand-700); }
    .rs .onb-checklist { list-style:none; margin:0 0 16px; padding:0; display:flex; flex-direction:column; gap:9px; }
    .rs .onb-checklist li { display:flex; align-items:flex-start; gap:9px; font-size:14px; color:var(--text-secondary); }
    .rs .onb-checklist li svg { color:var(--success-fg); flex-shrink:0; margin-top:1px; }
    .rs .onb-path { font-size:13.5px; line-height:1.5; color:var(--text-tertiary); margin:0 0 20px; padding:12px 14px; border-radius:12px; background:var(--surface-base); border:1px solid var(--border-default); }
    /* móvil */
    .rs--mobile .onb-box { padding:26px 20px; border-radius:18px; }
    .rs--mobile .onb-value-grid, .rs--mobile .onb-goals { grid-template-columns:1fr; }
    .rs--mobile .onb-screen-inner { max-width:100%; }

    /* F: muro borroso — el panel se rellena pero free lo ve blurred + CTA Pro */
    .rs .rs-lock { position:relative; border-radius:16px; overflow:hidden; }
    .rs .rs-lock-inner { filter:blur(8px); pointer-events:none; user-select:none; opacity:.55; }
    .rs .rs-lock-over { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding:24px;
      background:linear-gradient(180deg, color-mix(in srgb, var(--surface-base) 40%, transparent), color-mix(in srgb, var(--surface-base) 78%, transparent)); }
    .rs .rs-lock-card { max-width:340px; text-align:center; padding:24px 22px; border-radius:18px; border:1px solid var(--border-strong);
      background:var(--surface-overlay); box-shadow:var(--shadow-lg); }
    .rs .rs-lock-card > svg { color:var(--brand-500); margin-bottom:8px; }
    .rs[data-theme="light"] .rs-lock-card > svg { color:var(--brand-700); }
    .rs .rs-lock-h { font-family:var(--font-display); font-size:18px; font-weight:700; color:var(--text-primary); margin-bottom:6px; }
    .rs .rs-lock-sub { font-size:13.5px; line-height:1.5; color:var(--text-secondary); margin-bottom:16px; }
    .rs .rs-lock-card .btn { width:100%; justify-content:center; }
    /* Variante compacta del muro (datos del competidor en el detalle de reel). */
    .rs .rs-lock--sm .rs-lock-inner { filter:blur(6px); }
    .rs .rs-lock--sm .rs-lock-over { padding:6px; }
    .rs .rs-lock--sm .rs-lock-over .btn { width:auto; }
    .rs .rs-skel { background:var(--surface-raised); border:1px solid var(--border-default); border-radius:18px; height:160px; animation: rsPulse 1.3s ease-in-out infinite; }
    @keyframes rsPulse { 0%,100%{opacity:.5;} 50%{opacity:.8;} }
    /* Carga inicial (boot) — orbe + anillo dibujándose + 3 puntos (rediseño Claude design). */
    .rs .rs-boot { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:26px; min-height:62vh; padding:40px 0; }
    .rs .rs-boot-orb { position:relative; width:64px; height:64px; }
    .rs .rs-boot-core { position:absolute; inset:0; border-radius:20px; display:flex; align-items:center; justify-content:center;
      background:linear-gradient(140deg,var(--brand-600),var(--brand-500)); box-shadow:0 12px 38px rgba(79,124,255,.4); animation:bootGlow 1.8s ease-in-out infinite; }
    .rs .rs-boot-core svg { width:28px; height:28px; color:#fff; }
    .rs .rs-boot-ring { position:absolute; inset:-12px; width:88px; height:88px; transform-origin:50% 50%; animation:bootDash 1.4s cubic-bezier(.5,0,.5,1) infinite; }
    .rs .rs-boot-tt { display:flex; flex-direction:column; align-items:center; gap:12px; }
    .rs .rs-boot-label { font-family:var(--font-display); font-weight:500; font-size:15px; color:var(--text-primary); letter-spacing:.01em; }
    .rs .rs-boot-dots { display:flex; gap:5px; }
    .rs .rs-boot-dots span { width:6px; height:6px; border-radius:99px; background:var(--brand-500); animation:dotPulse 1.2s ease-in-out infinite; }
    .rs .rs-boot-dots span:nth-child(2){ animation-delay:.15s; }
    .rs .rs-boot-dots span:nth-child(3){ animation-delay:.3s; }
    @keyframes bootGlow { 0%,100%{opacity:.55;} 50%{opacity:1;} }
    @keyframes bootDash { 0%{stroke-dashoffset:289;} 50%{stroke-dashoffset:75;transform:rotate(135deg);} 100%{stroke-dashoffset:289;transform:rotate(450deg);} }
    @keyframes dotPulse { 0%,80%,100%{opacity:.25;transform:translateY(0);} 40%{opacity:1;transform:translateY(-4px);} }

    /* ══ v0.18.x "el despertar" — titular + oportunidad del día ══ */
    .rs .awaken { margin-bottom:22px; }
    .rs .awaken-h { font-family:var(--font-display); font-size:34px; line-height:1.05; margin:0 0 10px; }
    .rs--desktop .awaken-h { font-size:46px; }
    .rs .awaken-line { font-size:18px; line-height:1.4; margin:0 0 6px; font-weight:500; max-width:60ch; }
    .rs--desktop .awaken-line { font-size:21px; }
    .rs .awaken-line .hot { color:var(--brand-500); font-weight:700; }
    .rs .awaken-sub { font-size:14px; color:var(--text-secondary); line-height:1.5; margin:0; max-width:56ch; }
    .rs .oppty-label { font-size:11px; text-transform:uppercase; letter-spacing:.14em; font-weight:700; color:var(--text-tertiary); margin:0 0 10px; }
    .rs .oppty { display:flex; gap:20px; padding:18px; border-radius:20px; border:1px solid var(--border-default); background:linear-gradient(135deg, color-mix(in srgb, var(--brand-500) 9%, var(--surface-raised)), var(--surface-raised)); box-shadow:var(--shadow-lg); margin-bottom:22px; position:relative; overflow:hidden; }
    .rs .oppty::before { content:""; position:absolute; top:-40%; right:-10%; width:340px; height:340px; border-radius:50%; background:radial-gradient(circle, rgba(79,124,255,.10), transparent 70%); pointer-events:none; }
    .rs .oppty-thumb { width:120px; height:178px; flex-shrink:0; }
    .rs--mobile .oppty { flex-direction:column; }
    .rs--mobile .oppty-thumb { width:100%; height:200px; }
    .rs .oppty-body { flex:1; min-width:0; display:flex; flex-direction:column; position:relative; z-index:1; }
    .rs .oppty-tag { display:flex; align-items:center; gap:10px; margin-bottom:9px; flex-wrap:wrap; }
    .rs .oppty-when { font-size:12.5px; color:var(--text-tertiary); }
    .rs .oppty-cap { font-family:var(--font-display); font-size:25px; line-height:1.12; letter-spacing:.005em; margin:0 0 8px; }
    .rs--desktop .oppty-cap { font-size:29px; }
    .rs .oppty-sum { font-size:14px; color:var(--text-secondary); line-height:1.45; margin:0 0 8px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
    .rs .oppty-why { font-size:13px; color:var(--text-tertiary); line-height:1.45; margin:0 0 16px; }
    .rs .oppty-actions { margin-top:auto; display:flex; align-items:center; gap:10px; }
    .rs .oppty-actions .btn-primary { flex:0 1 auto; padding:0 28px; }
    .rs .dash-jugadas { display:grid; gap:12px; margin-bottom:16px; }
    .rs--desktop .dash-jugadas { grid-template-columns:1fr 1fr; align-items:stretch; }
    .rs--desktop .dash-jugadas .idea-launch, .rs--desktop .dash-jugadas .whale { margin:0; }
    .rs .more-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:6px 0 14px; flex-wrap:wrap; }
    .rs .more-title { font-size:17px; font-weight:700; }
    .rs .more-head .filters { margin:0; }
    .rs .see-all { display:inline-flex; align-items:center; gap:6px; margin-top:16px; padding:10px 16px; border-radius:12px; border:1px solid var(--border-default); background:transparent; color:var(--text-secondary); font-size:13.5px; font-weight:600; cursor:pointer; font-family:var(--font-body); transition:all .15s var(--ease); }
    .rs .see-all:hover { color:var(--text-primary); border-color:var(--border-strong); }

    /* ══ v0.17.x: nav interna + selector de marca ══ */
    .rs .rs-nav { display:flex; gap:4px; margin-left:6px; }
    .rs .topbar .brand-switch { display:inline-flex; align-items:center; gap:8px; height:34px; padding:0 12px; border-radius:99px; border:1px solid var(--border-default); background:var(--surface-overlay); color:var(--text-primary); font-weight:700; font-size:13px; cursor:pointer; font-family:var(--font-body); }
    .rs .topbar .brand-switch:hover { border-color:var(--border-strong); }
    .rs .brand-dot { width:9px; height:9px; border-radius:99px; flex-shrink:0; }
    .rs .brand-chev { display:flex; color:var(--text-tertiary); }
    .rs .brand-name { max-width:140px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .rs .brand-backdrop { position:fixed; inset:0; z-index:95; background:transparent; }
    .rs .brand-menu { position:absolute; top:54px; left:16px; z-index:96; min-width:230px; background:var(--surface-overlay); border:1px solid var(--border-default); border-radius:14px; box-shadow:var(--shadow-lg); padding:6px; }
    .rs .brand-opt { display:flex; align-items:center; gap:9px; width:100%; padding:10px 12px; border:none; background:transparent; color:var(--text-primary); font-size:13.5px; font-weight:600; cursor:pointer; border-radius:9px; font-family:var(--font-body); text-align:left; }
    .rs .brand-opt:hover { background:var(--surface-raised); }
    .rs .brand-opt .brand-lvl { margin-left:auto; font-size:11px; font-weight:700; color:var(--text-tertiary); }
    .rs .brand-opt.add { color:var(--brand-500); border-top:1px solid var(--border-subtle); margin-top:4px; }
    /* Ola Agencia B1: fila de marca con controles inline (renombrar/borrar) */
    .rs .brand-opt-row { display:flex; align-items:center; }
    .rs .brand-opt-row .brand-opt { flex:1; min-width:0; }
    .rs .brand-opt-act { flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:8px; color:var(--text-tertiary); cursor:pointer; opacity:0; transition:opacity .12s ease, background .12s ease; }
    .rs .brand-opt-act svg { width:15px; height:15px; }
    .rs .brand-opt-row:hover .brand-opt-act { opacity:1; }
    .rs .brand-opt-act:hover { background:var(--surface-raised); color:var(--text-primary); }

    /* ══ ecosistema (coste hundido / contexto creciente) ══ */
    .rs .eco { border:1px solid var(--border-default); border-radius:16px; padding:16px 18px; margin-bottom:16px; background:linear-gradient(135deg, color-mix(in srgb, var(--brand-500) 7%, var(--surface-raised)), var(--surface-raised)); }
    .rs .eco-top { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; flex-wrap:wrap; }
    .rs .eco-lvl { display:flex; align-items:baseline; gap:8px; }
    .rs .eco-lvl-n { font-family:var(--font-display); font-size:22px; color:var(--brand-500); }
    .rs .eco-lvl-name { font-size:13px; font-weight:600; color:var(--text-secondary); }
    .rs .eco-stats { display:flex; gap:16px; font-size:12.5px; color:var(--text-tertiary); }
    .rs .eco-stats b { color:var(--text-primary); }
    .rs .eco-bar { height:7px; border-radius:99px; background:var(--surface-sunken); overflow:hidden; }
    .rs .eco-fill { height:100%; border-radius:99px; background:linear-gradient(90deg, var(--brand-600), #4f7cff); transition:width .6s var(--ease-out); }
    .rs .eco-foot { font-size:12.5px; color:var(--text-secondary); margin-top:9px; }
    .rs .eco-foot b { color:var(--brand-400); }

    /* ══ idea launcher ══ */
    .rs .idea-launch { display:flex; align-items:center; gap:10px; padding:8px 8px 8px 14px; border:1px solid var(--border-default); border-radius:14px; background:var(--surface-raised); margin-bottom:18px; }
    .rs .idea-launch:focus-within { border-color:color-mix(in srgb, var(--brand-500) 50%, transparent); }
    .rs .idea-launch-ic { color:var(--brand-500); display:flex; flex-shrink:0; }
    .rs .idea-launch-input { flex:1; min-width:0; background:transparent; border:none; outline:none; color:var(--text-primary); font-size:14.5px; font-family:var(--font-body); }
    .rs .idea-launch-input::placeholder { color:var(--text-tertiary); }
    .rs--mobile .idea-launch { flex-wrap:wrap; }

    /* ══ B1: "tu próxima serie" — card hero sugerida por el Cerebro ══ */
    .rs .next-series { position:relative; overflow:hidden; border:1px solid color-mix(in srgb, var(--brand-500) 30%, transparent); border-radius:18px; padding:20px 22px; margin-bottom:18px; background:linear-gradient(135deg, color-mix(in srgb, var(--brand-500) 12%, var(--surface-raised)), var(--surface-raised)); }
    .rs .next-series::before { content:""; position:absolute; top:0; left:0; bottom:0; width:3px; background:linear-gradient(180deg, var(--brand-400), var(--brand-600)); }
    .rs .ns-eyebrow { display:flex; align-items:center; gap:8px; font-size:12px; text-transform:uppercase; letter-spacing:.09em; font-weight:700; color:var(--brand-400); margin-bottom:9px; }
    .rs .ns-eyebrow svg { width:15px; height:15px; flex-shrink:0; }
    .rs .ns-views { display:inline-flex; align-items:center; gap:4px; margin-left:auto; font-family:var(--font-mono); font-size:11.5px; letter-spacing:0; text-transform:none; color:var(--text-tertiary); }
    .rs .ns-views svg { width:13px; height:13px; }
    .rs .ns-title { margin:0 0 6px; font-family:var(--font-display); font-size:21px; line-height:1.2; color:var(--text-primary); }
    .rs .ns-msg { margin:0 0 14px; font-size:14px; line-height:1.5; color:var(--text-secondary); }
    .rs .ns-actions { display:flex; flex-wrap:wrap; gap:10px; }

    /* ══ fábrica de ideas ══ */
    .rs .ideas-pad { padding:30px 40px 20px; }
    .rs--mobile .ideas-pad { padding:20px 18px 12px; }
    .rs--desktop .ideas-pad, .rs--desktop .ideas-list, .rs--desktop .gui-list { max-width:840px; margin-left:auto; margin-right:auto; }
    .rs .explosion-btn { display:flex; flex-direction:column; align-items:flex-start; gap:2px; width:100%; padding:14px 18px; margin-bottom:6px; border:1px solid rgba(79,124,255,.4); border-radius:14px; background:linear-gradient(120deg, rgba(79,124,255,.16), rgba(79,124,255,.10)); color:var(--text-primary); font-size:16px; font-weight:800; cursor:pointer; font-family:var(--font-body); transition:transform .12s var(--ease), box-shadow .18s var(--ease); }
    .rs .explosion-btn:hover { transform:translateY(-1px); box-shadow:0 8px 28px rgba(79,124,255,.28); }
    .rs .explosion-btn span { font-size:12px; font-weight:600; color:var(--text-secondary); }
    .rs .ideas-list { padding:0 40px 40px; display:flex; flex-direction:column; gap:14px; margin-top:18px; }
    .rs--mobile .ideas-list { padding:0 18px 30px; }
    /* T1: Fábrica de ideas embebida en Radar — dentro del .canvas (que ya pone su
       propio padding), así que la lista no necesita el padding lateral de la página suelta. */
    .rs .ideas-zone { margin-top:8px; }
    .rs .ideas-zone .ideas-list { padding:0; }
    .rs .ideas-zone-sub { color:var(--text-secondary); font-size:13.5px; margin:12px 0 16px; }
    .rs .idea-block { border:1px solid var(--border-default); border-radius:16px; background:var(--surface-raised); overflow:hidden; }
    .rs .idea-block-head { display:flex; align-items:center; gap:12px; padding:15px 16px; }
    .rs .idea-ic { width:34px; height:34px; border-radius:10px; flex-shrink:0; display:flex; align-items:center; justify-content:center; background:color-mix(in srgb, var(--brand-500) 14%, transparent); color:var(--brand-400); }
    .rs .idea-text { flex:1; min-width:0; font-size:15px; font-weight:600; line-height:1.3; }
    .rs .idea-scripts { padding:0 16px 14px; display:flex; flex-direction:column; gap:10px; }
    .rs .sc-block { border:1px solid var(--border-subtle); border-radius:12px; padding:13px 14px; background:var(--surface-base); }
    .rs .sc-hook-line { display:flex; align-items:flex-start; gap:10px; font-size:14.5px; font-weight:600; line-height:1.35; margin-bottom:10px; cursor:pointer; }
    .rs .sc-hook-line .sc-hook-t { flex:1; min-width:0; }
    /* Acordeón del guión: texto completo (cuerpo + cierre) reusando .script-body/.script-close. */
    .rs .sc-full { margin:-2px 0 12px; padding-top:12px; border-top:1px solid var(--border-subtle); }
    .rs .sc-full .script-body { font-size:14.5px; line-height:1.55; }
    .rs .sc-full .script-close { font-size:14.5px; margin-top:13px; padding-top:13px; }
    .rs .sc-actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
    .rs .sc-saved { display:inline-flex; align-items:center; gap:5px; font-size:12.5px; font-weight:700; color:var(--success-fg); }
    .rs .sc-hooks { margin-top:12px; display:flex; flex-direction:column; gap:7px; border-top:1px solid var(--border-subtle); padding-top:11px; }
    .rs .sc-hook { display:flex; align-items:center; gap:10px; font-size:13.5px; line-height:1.35; }
    .rs .sc-hook .hn { font-family:var(--font-mono); font-size:11px; color:var(--brand-500); flex-shrink:0; }
    .rs .sc-hook span:nth-child(2) { flex:1; min-width:0; }
    .rs .sc-hook-save { flex-shrink:0; font-size:11px; font-weight:700; color:var(--text-tertiary); background:transparent; border:1px solid var(--border-default); border-radius:7px; padding:4px 9px; cursor:pointer; }
    .rs .sc-hook-save:hover { color:var(--text-primary); border-color:var(--border-strong); }

    /* ══ guiones validados ══ */
    /* ── v3 mockup David · Guiones ─────────────────────────────────────── */
    .rs .guic-canvas { display:flex; flex-direction:column; gap:30px; }
    .rs .guic-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; }
    .rs .guic-head-l { min-width:0; }
    .rs .guic-h1 { font-family:var(--font-display); font-weight:700; font-size:44px; line-height:1; letter-spacing:-.02em; color:var(--text-primary); margin:0 0 12px; }
    .rs .guic-sub { font-size:18px; line-height:1.5; color:var(--text-secondary); margin:0; max-width:540px; }
    .rs .guic-sub b { color:var(--text-primary); font-weight:600; }
    .rs .guic-tabs { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
    .rs .guic-tab { display:inline-flex; align-items:center; gap:8px; padding:10px 16px; border-radius:12px; font-weight:600; font-size:14px; cursor:pointer; line-height:1; background:transparent; border:1px solid var(--border-default); color:var(--text-secondary); transition:all .2s cubic-bezier(.16,1,.3,1); font-family:inherit; }
    .rs .guic-tab.on { background:var(--surface-overlay); border-color:var(--border-strong); border-bottom:3px solid var(--border-strong); color:var(--text-primary); }
    .rs .guic-tab-c { font-family:var(--font-mono); font-size:12px; opacity:.7; }
    /* sin desarrollar */
    .rs .guiu { display:flex; flex-direction:column; gap:14px; }
    .rs .guiu-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
    .rs .guiu-ic { color:#FF8A3D; display:inline-flex; }
    .rs .guiu-t { font-weight:700; font-size:16px; color:var(--text-primary); }
    .rs .guiu-c { font-size:14px; color:var(--text-tertiary); }
    .rs .guiu-cards { display:flex; gap:14px; flex-wrap:wrap; }
    .rs .guiu-card { flex:1; min-width:280px; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:16px 18px; background:var(--surface-raised); border:1px dashed var(--border-strong); border-radius:14px; }
    .rs .guiu-text { font-size:15px; color:var(--text-secondary); line-height:1.4; }
    .rs .guiu-saving { display:inline-flex; align-items:center; gap:7px; font-size:13px; color:var(--text-tertiary); flex:none; }
    /* grupo + rejilla */
    .rs .guic-group { display:flex; flex-direction:column; gap:16px; }
    .rs .guic-group-t { font-weight:700; font-size:16px; color:var(--text-primary); }
    .rs .guic-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
    /* card */
    .rs .guic-wrap { display:flex; }
    .rs .guic { display:flex; flex-direction:column; gap:14px; padding:22px; width:100%; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:18px; transition:transform .2s cubic-bezier(.16,1,.3,1), box-shadow .2s; }
    .rs .guic:hover { transform:translateY(-2px); box-shadow:0 16px 40px -18px rgba(8,12,20,.5); }
    .rs .guic-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
    .rs .guic-badge { display:inline-flex; align-items:center; gap:7px; padding:6px 12px; border-radius:999px; font-weight:600; font-size:12.5px; }
    .rs .guic-badge.todo { background:var(--brand-50, rgba(47,91,255,.16)); color:var(--brand-500,#2F5BFF); }
    .rs .guic-badge.cook { background:rgba(255,138,61,.14); color:#FF8A3D; }
    .rs .guic-badge.done { background:var(--success-bg); color:var(--success-fg); }
    /* aha del onboarding: el guion REAL aún se cocina en 2º plano — pulso sutil */
    .rs .guic-badge.aha { background:rgba(79,124,255,.14); color:var(--brand-300,#97b2ff); animation:ahaPulse 1.6s ease-in-out infinite; }
    .rs .guic-badge.aha svg { width:13px; height:13px; }
    @keyframes ahaPulse { 0%,100%{ opacity:1; } 50%{ opacity:.55; } }
    @media (prefers-reduced-motion: reduce){ .rs .guic-badge.aha { animation:none; } }
    .rs .guic-metaR { display:inline-flex; align-items:center; gap:8px; font-size:13px; color:var(--text-secondary); }
    .rs .guic-mult { font-family:var(--font-display); font-weight:700; color:var(--success-fg,#3FE0A0); }
    .rs .guic-src { font-family:var(--font-mono); font-size:11px; color:var(--text-tertiary); }
    .rs .guic-hook { font-family:var(--font-display); font-weight:600; font-size:21px; line-height:1.15; color:var(--text-primary); margin:0; }
    .rs .guic-gancho { display:flex; flex-direction:column; gap:5px; }
    .rs .guic-gancho-l { font-family:var(--font-mono); font-size:10.5px; letter-spacing:.06em; color:var(--text-tertiary); }
    .rs .guic-gancho p { font-size:14.5px; line-height:1.5; color:var(--text-secondary); margin:0; }
    .rs .guic-acts { display:flex; align-items:center; gap:10px; margin-top:2px; flex-wrap:wrap; }
    .rs .guic-more { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding-top:10px; border-top:1px solid var(--border-subtle); margin-top:2px; }
    .rs .guic-more .guic-discard { color:var(--text-tertiary); }
    /* «Alimentar el cerebro» (opt-in de voz por marca) */
    .rs .brain-feed-btn { color:var(--accent, #7c5cff); border-color:color-mix(in srgb, var(--accent, #7c5cff) 40%, transparent); }
    .rs .brain-feed-btn:hover { background:color-mix(in srgb, var(--accent, #7c5cff) 12%, transparent); }
    .rs .brain-feed-btn.fed { color:var(--success-fg, #1a7f4b); border-color:color-mix(in srgb, var(--success-fg, #1a7f4b) 40%, transparent); opacity:.85; cursor:default; }
    /* #8 · métricas + transcripción del original en el workspace de la idea */
    .rs .ws-src-mets { display:flex; gap:8px; flex-wrap:wrap; margin:10px 0 4px; }
    .rs .ws-src-mets .ws-met { display:inline-flex; align-items:baseline; gap:5px; padding:5px 11px; border-radius:999px; background:var(--surface-2, rgba(255,255,255,.05)); border:1px solid var(--border-subtle); font-variant-numeric:tabular-nums; }
    .rs .ws-src-mets .ws-met svg { width:15px; height:15px; opacity:.75; align-self:center; }
    .rs .ws-src-mets .ws-met b { font-size:15px; font-weight:700; color:var(--text-primary); }
    .rs .ws-src-mets .ws-met em { font-size:12px; font-style:normal; color:var(--text-tertiary); }
    .rs .ws-transcript { margin:2px 0 14px; border:1px solid var(--border-subtle); border-radius:12px; background:var(--surface-2, rgba(255,255,255,.03)); overflow:hidden; }
    .rs .ws-transcript > summary { cursor:pointer; list-style:none; padding:11px 14px; font-size:13px; font-weight:600; color:var(--text-secondary); display:flex; align-items:center; gap:7px; }
    .rs .ws-transcript > summary::-webkit-details-marker { display:none; }
    .rs .ws-transcript > summary svg { width:15px; height:15px; opacity:.7; }
    .rs .ws-transcript[open] > summary { border-bottom:1px solid var(--border-subtle); }
    .rs .ws-transcript-tx { padding:12px 14px; font-size:14px; line-height:1.6; color:var(--text-primary); white-space:pre-wrap; max-height:320px; overflow:auto; }
    /* cocinando */
    .rs .guic-skel { display:flex; flex-direction:column; gap:11px; }
    .rs .gsk { height:14px; border-radius:6px; background:linear-gradient(90deg, var(--surface-overlay) 25%, var(--surface-sunken) 37%, var(--surface-overlay) 63%); background-size:200% 100%; animation:gShimmer 1.4s linear infinite; }
    .rs .gsk.h20 { height:20px; }
    .rs .guic-cooking { display:inline-flex; align-items:center; gap:9px; margin-top:4px; font-family:var(--font-mono); font-size:13px; color:#FF8A3D; }
    .rs .guic-cooking .gdots { display:inline-flex; gap:3px; }
    .rs .guic-cooking .gdots i { width:4px; height:4px; border-radius:50%; background:#FF8A3D; animation:gBlink 1.2s infinite; }
    .rs .guic-cooking .gdots i:nth-child(2){ animation-delay:.2s; } .rs .guic-cooking .gdots i:nth-child(3){ animation-delay:.4s; }
    @keyframes gShimmer { 0%{background-position:-200% 0} 100%{background-position:200% 0} }
    @keyframes gBlink { 0%,80%,100%{opacity:.25} 40%{opacity:1} }
    /* empty */
    .rs .guic-empty { display:flex; flex-direction:column; align-items:center; gap:10px; padding:56px; background:var(--surface-raised); border:1px dashed var(--border-strong); border-radius:18px; text-align:center; }
    .rs .guic-empty-h { font-family:var(--font-accent); font-weight:700; font-size:22px; color:var(--text-primary); }
    .rs .guic-empty-s { font-size:15px; color:var(--text-secondary); }
    /* explosión creativa */
    .rs .guix { display:flex; flex-direction:column; gap:16px; padding:26px; background:linear-gradient(100deg, var(--surface-raised), var(--surface-sunken)); border:1px solid var(--border-default); border-radius:20px; }
    .rs .guix-head { display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; }
    .rs .guix-head-l { display:flex; align-items:center; gap:14px; }
    .rs .guix-ic { width:48px; height:48px; border-radius:14px; background:linear-gradient(140deg, var(--brand-600,#1B3FD6), var(--brand-500,#2F5BFF)); display:flex; align-items:center; justify-content:center; flex:none; }
    .rs .guix-ic svg { width:24px; height:24px; color:#FF8A3D; fill:#FF8A3D; }
    .rs .guix-h { font-family:var(--font-display); font-weight:600; font-size:22px; color:var(--text-primary); }
    .rs .guix-sub { font-size:14.5px; color:var(--text-secondary); }
    .rs .guix-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px; }
    .rs .guix-card { display:flex; flex-direction:column; gap:11px; padding:18px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:14px; }
    .rs .guix-idea { font-family:var(--font-display); font-weight:600; font-size:16.5px; line-height:1.2; color:var(--text-primary); }
    .rs .guix-hooks { display:flex; flex-direction:column; gap:7px; }
    .rs .guix-hook { display:flex; align-items:flex-start; gap:8px; font-size:13.5px; line-height:1.4; color:var(--text-secondary); }
    .rs .guix-hook svg { width:14px; height:14px; color:var(--brand-500,#2F5BFF); flex:none; margin-top:2px; }
    .rs--mobile .guic-grid, .rs--mobile .guix-grid { grid-template-columns:1fr; }
    /* ── Ideas robadas · card de grupo (reel origen + N guiones) ───────── */
    .rs .igc-row { display:flex; align-items:flex-start; gap:14px; }
    .rs .igc-thumb { width:64px; height:86px; border-radius:12px; overflow:hidden; flex:none; background:var(--surface-sunken); }
    .rs .igc-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
    .rs .igc-ph { width:100%; height:100%; }
    .rs .igc-main { display:flex; flex-direction:column; gap:7px; min-width:0; }
    .rs .igc-meta { font-size:13.5px; color:var(--text-tertiary); }
    /* ── Ideas robadas · workspace de una idea ─────────────────────────── */
    .rs .ws-canvas { gap:18px; }
    .rs .ws-head { display:flex; align-items:center; }
    .rs .ws-src { display:flex; align-items:flex-start; gap:18px; padding:20px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:18px; }
    .rs .ws-src-thumb { position:relative; width:92px; height:124px; border-radius:14px; overflow:hidden; flex:none; background:var(--surface-sunken); }
    .rs .ws-src-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
    .rs .ws-src-info { display:flex; flex-direction:column; gap:9px; min-width:0; }
    .rs .ws-src-k { font-family:var(--font-mono); font-size:11px; letter-spacing:.06em; color:var(--text-tertiary); }
    .rs .ws-src-k b { color:var(--text-secondary); }
    .rs .ws-title { font-size:24px; }
    .rs .ws-src-acts { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:2px; }
    .rs .ws-notes-block { display:flex; flex-direction:column; gap:8px; padding:16px 18px; background:var(--surface-raised); border:1px dashed var(--border-strong); border-radius:16px; }
    .rs .ws-notes-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
    .rs .ws-notes-k { font-family:var(--font-mono); font-size:11px; letter-spacing:.06em; color:var(--text-tertiary); }
    .rs .ws-notes-save { font-family:var(--font-mono); font-size:11.5px; color:var(--text-tertiary); }
    .rs .ws-notes { width:100%; min-height:76px; resize:vertical; padding:10px 12px; background:var(--surface-sunken); color:var(--text-primary); border:1px solid var(--border-subtle); border-radius:10px; font:inherit; font-size:14.5px; line-height:1.5; }
    .rs .ws-notes:focus { outline:none; border-color:var(--brand-500,#2F5BFF); }
    .rs .ws-scripts-h { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
    .rs--mobile .ws-src { flex-direction:column; }
    .rs--mobile .ws-title { font-size:20px; }
    /* ── v3 mockup David · Cerebro ─────────────────────────────────────── */
    @keyframes ceGlow { 0%,100%{opacity:.5} 50%{opacity:1} }
    @keyframes ceBreathe { 0%,100%{transform:scale(1)} 50%{transform:scale(1.04)} }
    @keyframes ceNode { 0%,100%{opacity:.4;transform:scale(.8)} 50%{opacity:1;transform:scale(1.25)} }
    .rs .ce-canvas { display:flex; flex-direction:column; gap:24px; }
    .rs .ce-head { display:flex; flex-direction:column; }
    .rs .ce-eyebrow { display:inline-flex; align-items:center; gap:9px; font-family:var(--font-mono); font-size:12px; letter-spacing:.06em; color:var(--brand-500,#2F5BFF); margin-bottom:12px; }
    .rs .ce-eye-dot { width:8px; height:8px; border-radius:99px; background:var(--brand-500,#2F5BFF); animation:ceGlow 1.6s ease-in-out infinite; }
    .rs .ce-h1 { font-family:var(--font-display); font-weight:700; font-size:44px; line-height:1; letter-spacing:-.02em; color:var(--text-primary); margin:0 0 12px; }
    .rs .ce-sub { font-size:18px; line-height:1.5; color:var(--text-secondary); margin:0; max-width:560px; }
    /* hero row */
    .rs .ce-hero-row { display:flex; gap:24px; align-items:stretch; flex-wrap:wrap; }
    .rs .ce-hero { flex:1; min-width:360px; display:flex; align-items:center; gap:30px; padding:28px 32px; background:linear-gradient(120deg, var(--brand-50, rgba(47,91,255,.16)), var(--surface-raised)); border:1px solid var(--border-default); border-radius:20px; }
    .rs .ce-ring { flex:none; display:flex; flex-direction:column; align-items:center; gap:12px; }
    .rs .ce-ring-circle { position:relative; width:172px; height:172px; }
    .rs .ce-ring-svg { transform:rotate(-90deg); display:block; }
    .rs .ce-ring-prog { transition:stroke-dashoffset .6s cubic-bezier(.16,1,.3,1); filter:drop-shadow(0 0 7px var(--brand-50, rgba(47,91,255,.4))); }
    .rs .ce-ring-c { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
    .rs .ce-brain-svg { overflow:visible; display:block; }
    .rs .ce-breathe { transform-box:fill-box; transform-origin:center; animation:ceBreathe 4s ease-in-out infinite; }
    .rs .ceN { transform-box:fill-box; transform-origin:center; animation:ceNode 2.6s ease-in-out infinite; }
    .rs .ce-ring-lvl { display:inline-flex; align-items:baseline; gap:7px; font-family:var(--font-mono); font-size:13px; letter-spacing:.08em; color:var(--text-tertiary); }
    .rs .ce-ring-lvl b { font-family:var(--font-display); font-weight:700; font-size:24px; color:var(--text-primary); }
    .rs .ce-hero-body { flex:1; min-width:0; display:flex; flex-direction:column; gap:10px; }
    .rs .ce-kicker { font-family:var(--font-accent); font-weight:700; font-size:14px; letter-spacing:.05em; color:var(--brand-500,#2F5BFF); text-transform:uppercase; }
    .rs .ce-hero-title { font-family:var(--font-display); font-weight:600; font-size:24px; line-height:1.2; color:var(--text-primary); }
    .rs .ce-prog-row { display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:13px; color:var(--text-secondary); margin-top:2px; }
    .rs .ce-prog-pct { font-family:var(--font-mono); color:var(--text-primary); }
    .rs .ce-prog-bar { height:9px; border-radius:99px; background:var(--surface-overlay); overflow:hidden; }
    .rs .ce-prog-fill { height:100%; border-radius:99px; background:linear-gradient(90deg, var(--brand-500,#2F5BFF), var(--brand-300,#6E92FF)); transition:width .6s cubic-bezier(.16,1,.3,1); }
    /* stats column */
    .rs .ce-stats { width:300px; flex:none; display:flex; flex-direction:column; gap:12px; }
    .rs .ce-stat { flex:1; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 18px; min-height:54px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:14px; }
    .rs .ce-stat-l { font-size:13.5px; color:var(--text-secondary); }
    .rs .ce-stat-v { font-family:var(--font-display); font-weight:700; font-size:22px; font-variant-numeric:tabular-nums; }
    /* grid know | levels */
    .rs .ce-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
    .rs .ce-card { padding:24px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:18px; display:flex; flex-direction:column; gap:16px; }
    .rs .ce-card-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
    .rs .ce-card-t { font-family:var(--font-display); font-weight:600; font-size:19px; color:var(--text-primary); }
    .rs .ce-card-meta { font-family:var(--font-mono); font-size:11px; color:var(--text-tertiary); }
    .rs .ce-know-block { display:flex; flex-direction:column; gap:7px; }
    .rs .ce-know-k { font-size:13px; font-weight:600; color:var(--text-tertiary); }
    .rs .ce-tonos { display:flex; flex-wrap:wrap; gap:8px; }
    .rs .ce-tono { padding:8px 13px; border-radius:99px; background:var(--brand-50, rgba(47,91,255,.16)); color:var(--brand-500,#2F5BFF); font-weight:600; font-size:13px; }
    /* Muletillas como chips (antes era un run de texto con comas y comillas dobles) */
    .rs .ce-mulet { display:flex; flex-wrap:wrap; gap:8px; margin:0; }
    .rs .ce-mulet-chip { display:inline-flex; align-items:center; padding:7px 13px; border-radius:99px; background:var(--surface-overlay); border:1px solid var(--border-default); color:var(--text-secondary); font-size:13.5px; line-height:1.3; }
    .rs .ce-mulet-empty { color:var(--text-tertiary); }
    .rs .ce-know-foot { display:flex; gap:18px; padding-top:14px; border-top:1px solid var(--border-subtle); }
    .rs .ce-foot-k { font-family:var(--font-mono); font-size:10.5px; color:var(--text-tertiary); margin-bottom:3px; }
    .rs .ce-foot-v { font-family:var(--font-display); font-weight:700; font-size:18px; color:var(--text-primary); }
    /* levels roadmap */
    .rs .ce-levels { gap:14px; }
    .rs .ce-lvl-list { display:flex; flex-direction:column; gap:9px; }
    .rs .ce-lvl { display:flex; align-items:center; gap:13px; padding:11px 13px; border-radius:13px; background:transparent; border:1px solid var(--border-default); }
    .rs .ce-lvl.cur { background:var(--brand-50, rgba(47,91,255,.16)); border-color:var(--brand-500,#2F5BFF); }
    .rs .ce-lvl-n { width:34px; height:34px; flex:none; border-radius:10px; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:700; font-size:15px; background:var(--surface-overlay); color:var(--text-tertiary); }
    .rs .ce-lvl.cur .ce-lvl-n { background:var(--brand-500,#2F5BFF); color:#fff; }
    .rs .ce-lvl.past .ce-lvl-n { background:var(--success-bg); color:var(--success-fg); }
    .rs .ce-lvl-body { flex:1; min-width:0; }
    .rs .ce-lvl-name { font-weight:600; font-size:14.5px; color:var(--text-secondary); }
    .rs .ce-lvl.cur .ce-lvl-name, .rs .ce-lvl.past .ce-lvl-name { color:var(--text-primary); }
    .rs .ce-lvl-unlock { font-size:12.5px; color:var(--text-tertiary); }
    .rs .ce-lvl-tag { font-size:12px; font-weight:600; color:var(--text-tertiary); display:inline-flex; align-items:center; }
    .rs .ce-lvl.cur .ce-lvl-tag { color:var(--brand-500,#2F5BFF); }
    .rs .ce-lvl.past .ce-lvl-tag { color:var(--success-fg); }
    /* misiones */
    .rs .ce-missions { gap:16px; }
    .rs .ce-missions-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
    .rs .ce-missions-sub { font-size:13.5px; color:var(--text-secondary); margin-top:3px; }
    .rs .ce-missions-count { font-family:var(--font-mono); font-size:12.5px; color:var(--text-tertiary); flex:none; }
    .rs .ce-missions-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
    .rs .ce-mission { display:flex; align-items:center; gap:14px; padding:16px; background:var(--surface-overlay); border:1px solid var(--border-default); border-radius:14px; }
    .rs .ce-mission.done { background:var(--success-bg); border-color:var(--success); }
    .rs .ce-mission-ic { width:42px; height:42px; flex:none; border-radius:12px; display:flex; align-items:center; justify-content:center; background:var(--surface-sunken); color:var(--brand-300,#6E92FF); }
    .rs .ce-mission.done .ce-mission-ic { background:var(--success-bg); color:var(--success-fg); }
    .rs .ce-mission-body { flex:1; min-width:0; }
    .rs .ce-mission-l { font-weight:600; font-size:14.5px; color:var(--text-primary); }
    .rs .ce-mission-r { font-size:12.5px; color:var(--text-tertiary); }
    .rs .ce-mission-done { opacity:.85; }
    .rs--mobile .ce-stats { width:100%; } .rs--mobile .ce-grid, .rs--mobile .ce-missions-grid { grid-template-columns:1fr; }
    /* ── v4 · Cerebro inmersivo (BrainNet, canvas 2D) ── */
    .rs .ce2-hero { display:flex; gap:16px; align-items:stretch; }
    .rs--mobile .ce2-hero { flex-direction:column; }
    .rs .ce2-stage { position:relative; flex:1.15 1 0; min-width:0; height:470px; border-radius:20px; overflow:hidden; border:1px solid var(--border-default); box-shadow:0 18px 50px -22px rgba(20,28,80,.7); background:radial-gradient(120% 120% at 35% 22%, #16204c 0%, #0c1030 50%, #07091c 100%); }
    .rs--mobile .ce2-stage { flex:none; width:100%; height:250px; }
    .rs .ce2-stage canvas { position:absolute; inset:0; width:100%; height:100%; display:block; }
    .rs .ce2-ov { position:absolute; pointer-events:none; z-index:2; }
    .rs .ce2-net { left:18px; top:16px; display:inline-flex; align-items:center; gap:8px; font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--brand-300); }
    .rs .ce2-net i { width:6px; height:6px; border-radius:99px; background:var(--brand-400); box-shadow:0 0 8px var(--brand-400); display:inline-block; }
    .rs .ce2-lvlw { left:18px; bottom:16px; }
    .rs .ce2-lvlw-k { font-family:var(--font-mono); font-size:11px; letter-spacing:.08em; color:var(--text-tertiary); }
    .rs .ce2-lvlw-n { font-family:var(--font-display); font-size:30px; line-height:1; color:var(--text-primary); }
    .rs .ce2-voz { right:18px; bottom:16px; text-align:right; }
    .rs .ce2-voz-v { font-family:var(--font-display); font-size:26px; line-height:1; color:var(--brand-300); }
    .rs .ce2-voz-k { font-family:var(--font-mono); font-size:10px; letter-spacing:.06em; color:var(--text-tertiary); text-transform:uppercase; }
    .rs .ce2-side { flex:0 0 360px; width:360px; display:flex; flex-direction:column; gap:14px; justify-content:center; }
    .rs--mobile .ce2-side { flex:none; width:100%; }
    .rs .ce2-kicker { font-family:var(--font-display-2); font-weight:700; font-size:13px; letter-spacing:.05em; color:var(--brand-500); text-transform:uppercase; }
    .rs .ce2-htitle { font-family:var(--font-display); font-size:25px; line-height:1.15; color:var(--text-primary); }
    .rs .ce2-prog-row { display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:13px; color:var(--text-secondary); margin-bottom:8px; }
    .rs .ce2-prog-row b { font-family:var(--font-mono); color:var(--text-primary); font-weight:400; }
    .rs .ce2-prog-bar { height:10px; border-radius:99px; background:var(--surface-overlay); overflow:hidden; border:1px solid var(--border-subtle); }
    .rs .ce2-prog-fill { height:100%; border-radius:99px; background:linear-gradient(90deg,var(--brand-600),var(--brand-300)); box-shadow:0 0 14px rgba(79,124,255,.5); transition:width .7s var(--ease-out); }
    .rs .ce2-stats { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:6px; }
    .rs .ce2-stat { padding:13px 15px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:14px; }
    .rs .ce2-stat-v { font-family:var(--font-display); font-size:26px; line-height:1; color:var(--text-primary); font-variant-numeric:tabular-nums; }
    .rs .ce2-stat-l { font-size:12.5px; color:var(--text-secondary); margin-top:4px; }
    /* dots de color en los chips de alimentar + reward animado */
    .rs .feed-chip .fc-dot { width:8px; height:8px; border-radius:99px; flex:none; display:inline-block; }
    .rs .ce2-reward { display:inline-flex; align-items:center; gap:7px; font-family:var(--font-mono); font-size:13px; font-weight:700; color:var(--brand-300); animation:rsRewardIn .5s var(--ease-out) both; }
    @keyframes rsRewardIn { 0%{opacity:0;transform:translateY(9px) scale(.92)} 16%{opacity:1;transform:none} 100%{opacity:1;transform:none} }
    @media (prefers-reduced-motion: reduce){ .rs .ce2-reward { animation:none; } }
    /* ── v3 mockup David · Editor de guion ─────────────────────────────── */
    @keyframes edShim { 0%{background-position:-200% 0} 100%{background-position:200% 0} }
    .rs .ed-overlay { position:fixed; top:0; right:0; bottom:0; left:64px; z-index:60; display:flex; flex-direction:column; padding:0; background:var(--surface-base, var(--bg, #090C15)); }
    .rs--mobile .ed-overlay { left:0; }
    .rs .ed-bar { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:16px 26px; border-bottom:1px solid var(--border-default); flex:none; }
    .rs .ed-bar-l { display:flex; align-items:center; gap:12px; min-width:0; flex-wrap:wrap; }
    .rs .ed-back { display:inline-flex; align-items:center; gap:7px; background:var(--surface-overlay); border:1px solid var(--border-default); border-radius:10px; padding:8px 13px; color:var(--text-secondary); font-family:inherit; font-weight:600; font-size:13.5px; cursor:pointer; }
    .rs .ed-crumb { font-family:var(--font-mono); font-size:12px; letter-spacing:.06em; color:var(--text-tertiary); }
    .rs .ed-save { display:inline-flex; align-items:center; gap:7px; font-family:var(--font-mono); font-size:11.5px; color:var(--text-tertiary); }
    .rs .ed-save-dot { width:6px; height:6px; border-radius:50%; background:var(--success-fg,#3FE0A0); }
    .rs .ed-bar-r { display:flex; align-items:center; gap:10px; flex:none; }
    .rs .ed-rec-on { background:var(--success-bg); border:1px solid var(--success); color:var(--success-fg); }
    .rs .ed-body { flex:1; min-height:0; display:flex; align-items:stretch; overflow:hidden; }
    .rs .ed-doc { flex:1; min-width:0; padding:34px 40px; display:flex; flex-direction:column; gap:22px; border-right:1px solid var(--border-default); overflow-y:auto; }
    .rs .ed-meta { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
    .rs .ed-badge { display:inline-flex; align-items:center; gap:7px; padding:6px 12px; border-radius:999px; background:var(--brand-50, rgba(47,91,255,.16)); color:var(--brand-500,#2F5BFF); font-weight:600; font-size:12.5px; }
    .rs .ed-badge.done { background:var(--success-bg); color:var(--success-fg); }
    .rs .ed-from { display:inline-flex; align-items:center; gap:7px; font-size:13px; color:var(--text-secondary); }
    .rs .ed-from b { color:var(--text-primary); font-weight:600; }
    .rs .ed-mult { font-family:var(--font-display); font-weight:700; color:var(--success-fg,#3FE0A0); font-size:14px; }
    .rs .ed-hook { font-family:var(--font-display); font-weight:700; font-size:30px; line-height:1.12; letter-spacing:-.01em; color:var(--text-primary); margin:0; outline:none; border-radius:8px; }
    .rs .ed-hook:focus, .rs .ed-block-body:focus { box-shadow:0 0 0 3px var(--brand-50, rgba(47,91,255,.3)); }
    .rs .ed-aitools { display:flex; gap:9px; flex-wrap:wrap; }
    .rs .ed-ai { display:inline-flex; align-items:center; gap:7px; padding:9px 14px; border-radius:10px; background:var(--surface-overlay); border:1px solid var(--border-strong); border-bottom:3px solid var(--border-strong); color:var(--text-primary); font-family:inherit; font-weight:600; font-size:13px; cursor:pointer; }
    .rs .ed-ai:active { transform:translateY(1px); }
    .rs .ed-ai svg { width:14px; height:14px; }
    .rs .ed-block { display:flex; flex-direction:column; gap:9px; padding:18px 20px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:14px; }
    .rs .ed-block-head { display:flex; align-items:center; justify-content:space-between; }
    .rs .ed-block-k { font-family:var(--font-mono); font-size:11px; letter-spacing:.04em; color:var(--text-tertiary); }
    .rs .ed-rewrite { display:inline-flex; align-items:center; gap:6px; background:none; border:none; color:var(--text-tertiary); font-family:inherit; font-size:12.5px; font-weight:600; cursor:pointer; }
    .rs .ed-rewrite svg { width:13px; height:13px; }
    .rs .ed-block-body { font-size:16px; line-height:1.65; color:var(--text-secondary); margin:0; outline:none; border-radius:8px; white-space:pre-wrap; }
    .rs .ed-doc-foot { display:flex; align-items:center; justify-content:space-between; gap:14px; padding-top:4px; flex-wrap:wrap; }
    /* Editor · «Enseñar mi versión al Cerebro» — la corrección del usuario = señal de voz más fuerte. David 09/07. */
    .rs .ed-voice-feed { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin:20px 0 4px; padding:14px 16px; border:1px solid color-mix(in srgb, var(--brand-500) 32%, transparent); border-radius:14px; background:color-mix(in srgb, var(--brand-500) 8%, transparent); }
    .rs .ed-voice-feed.fed { border-color:var(--border-default); background:var(--surface-raised); opacity:.72; }
    .rs .ed-voice-feed-txt { display:flex; flex-direction:column; gap:3px; flex:1 1 240px; min-width:200px; }
    .rs .ed-voice-feed-t { font-weight:700; font-size:14px; color:var(--text-primary); display:inline-flex; align-items:center; gap:7px; }
    .rs .ed-voice-feed-t svg { width:15px; height:15px; color:var(--brand-400,#7aa2ff); }
    .rs .ed-voice-feed-d { font-size:12.5px; color:var(--text-secondary); line-height:1.45; }
    .rs .ed-voice-feed-btn { flex:0 0 auto; white-space:nowrap; }
    .rs .ed-count { font-family:var(--font-mono); font-size:12px; color:var(--text-tertiary); }
    /* rail */
    .rs .ed-rail { width:420px; flex:none; padding:26px 24px; display:flex; flex-direction:column; gap:22px; overflow-y:auto; }
    .rs .ed-rail-block { display:flex; flex-direction:column; gap:11px; }
    .rs .ed-rail-k { font-family:var(--font-mono); font-size:11px; letter-spacing:.06em; color:var(--text-tertiary); }
    .rs .ed-rail-head { display:flex; align-items:center; justify-content:space-between; }
    .rs .ed-rail-title { font-weight:700; font-size:14.5px; color:var(--text-primary); }
    .rs .ed-rail-tag { font-family:var(--font-mono); font-size:11px; color:var(--text-tertiary); }
    .rs .ed-src { display:flex; gap:14px; }
    .rs .ed-src-thumb { position:relative; width:124px; height:166px; flex:none; border-radius:11px; overflow:hidden; background:linear-gradient(160deg, var(--surface-sunken), var(--surface-overlay)); border:1px solid var(--border-default); }
    .rs .ed-src-thumb img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
    .rs .ed-src-ph { position:absolute; inset:0; }
    .rs .ed-src-mult { position:absolute; top:7px; left:7px; display:inline-flex; align-items:center; gap:4px; padding:3px 6px; border-radius:7px; background:rgba(0,0,0,.55); font-family:var(--font-display); font-weight:700; font-size:11px; color:#5BE0A8; }
    .rs .ed-src-mult svg { width:10px; height:10px; color:#FF8A3D; fill:#FF8A3D; }
    .rs .ed-src-play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:34px; height:34px; border-radius:99px; background:rgba(0,0,0,.4); display:flex; align-items:center; justify-content:center; }
    .rs .ed-src-play svg { width:12px; height:12px; color:#fff; fill:#fff; }
    .rs .ed-src-dur { position:absolute; right:6px; bottom:6px; padding:1px 5px; border-radius:5px; background:rgba(0,0,0,.6); color:#fff; font-family:var(--font-mono); font-size:9px; }
    .rs .ed-src-info { flex:1; min-width:0; display:flex; flex-direction:column; gap:8px; }
    .rs .ed-src-meta { font-size:13.5px; color:var(--text-secondary); line-height:1.4; }
    .rs .ed-src-stats { display:flex; gap:14px; }
    .rs .ed-src-v { font-family:var(--font-display); font-weight:700; font-size:15px; color:var(--text-primary); }
    .rs .ed-src-l { font-size:10.5px; color:var(--text-tertiary); }
    .rs .ed-tx { font-size:13.5px; line-height:1.55; color:var(--text-secondary); background:var(--surface-raised); border:1px solid var(--border-default); border-radius:12px; padding:13px; max-height:280px; overflow-y:auto; }
    .rs .ed-var { display:flex; align-items:flex-start; gap:10px; width:100%; padding:13px 14px; border-radius:12px; cursor:pointer; font-family:inherit; font-size:13.5px; font-weight:500; text-align:left; background:var(--surface-raised); border:1px solid var(--border-default); color:var(--text-secondary); transition:all .2s ease; }
    .rs .ed-var.on { background:var(--brand-50, rgba(47,91,255,.16)); border-color:var(--brand-500,#2F5BFF); color:var(--text-primary); }
    .rs .ed-var-dot { flex:none; margin-top:4px; width:9px; height:9px; border-radius:99px; background:var(--surface-sunken); border:1px solid var(--border-strong); }
    .rs .ed-var.on .ed-var-dot { background:var(--brand-500,#2F5BFF); border-color:var(--brand-500,#2F5BFF); }
    .rs .ed-var-t { flex:1; line-height:1.4; }
    .rs .ed-rail-cta { margin-top:auto; display:flex; flex-direction:column; gap:10px; }
    .rs .ed-rail-cta .btn { width:100%; justify-content:center; }
    /* móvil: el editor scrollea como un bloque (antes .ed-body era overflow:hidden y el
       rail/variantes de abajo quedaba cortado sin poder hacer scroll). */
    .rs--mobile .ed-body { flex-direction:column; overflow-y:auto; }
    .rs--mobile .ed-doc { border-right:none; border-bottom:1px solid var(--border-default); overflow:visible; flex:none; }
    .rs--mobile .ed-rail { width:100%; flex:none; }
    /* ── v3 mockup David · Ajustes ─────────────────────────────────────── */
    .rs .aj-canvas { display:flex; flex-direction:column; gap:26px; }
    .rs .aj-head { display:flex; flex-direction:column; gap:18px; }
    .rs .aj-h1 { font-family:var(--font-display); font-weight:700; font-size:44px; line-height:1; letter-spacing:-.02em; color:var(--text-primary); margin:0; }
    .rs .aj-tabs { display:flex; align-items:center; gap:9px; border-bottom:1px solid var(--border-default); padding-bottom:2px; }
    .rs .aj-tab { padding:10px 18px; border-radius:10px 10px 0 0; border:none; background:transparent; cursor:pointer; font-family:inherit; font-weight:600; font-size:14.5px; color:var(--text-tertiary); border-bottom:2px solid transparent; margin-bottom:-2px; transition:all .2s ease; }
    .rs .aj-tab.on { color:var(--brand-500,#2F5BFF); border-bottom-color:var(--brand-500,#2F5BFF); }
    .rs .aj-stack { display:flex; flex-direction:column; gap:18px; }
    .rs .aj-card { padding:24px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:18px; }
    .rs .aj-card-t { font-family:var(--font-display); font-weight:600; font-size:20px; color:var(--text-primary); }
    .rs .aj-card-s { font-size:14.5px; color:var(--text-secondary); max-width:560px; margin-top:5px; }
    .rs .aj-card-s b { color:var(--text-primary); font-weight:600; }
    /* identity */
    .rs .aj-identity { display:flex; align-items:center; gap:20px; }
    .rs .aj-avatar { width:72px; height:72px; flex:none; border-radius:99px; background:linear-gradient(140deg, var(--brand-600,#1B3FD6), var(--brand-500,#2F5BFF)); display:flex; align-items:center; justify-content:center; color:#fff; font-family:var(--font-display); font-weight:700; font-size:28px; }
    .rs .aj-id { flex:1; min-width:0; }
    .rs .aj-id-name { font-family:var(--font-display); font-weight:600; font-size:22px; color:var(--text-primary); }
    .rs .aj-id-handle { font-family:var(--font-mono); font-size:13px; color:var(--text-tertiary); }
    .rs .aj-lvl { display:inline-flex; align-items:center; gap:7px; padding:8px 14px; border-radius:99px; background:var(--brand-50, rgba(47,91,255,.16)); color:var(--brand-500,#2F5BFF); font-weight:600; font-size:13px; }
    .rs .aj-lvl svg { width:15px; height:15px; }
    /* voice */
    .rs .aj-voice { display:flex; flex-direction:column; gap:18px; }
    .rs .aj-voice-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
    .rs .aj-derived { font-family:var(--font-mono); font-size:11.5px; color:var(--text-tertiary); white-space:nowrap; margin-top:4px; }
    .rs .aj-tonos { display:flex; flex-wrap:wrap; gap:9px; }
    .rs .aj-tono { display:inline-flex; align-items:center; gap:7px; padding:10px 16px; border-radius:99px; cursor:pointer; font-family:inherit; font-weight:600; font-size:14px; background:var(--surface-overlay); border:1px solid var(--border-default); color:var(--text-secondary); transition:all .2s ease; }
    .rs .aj-tono.on { background:var(--brand-50, rgba(47,91,255,.16)); border-color:var(--brand-500,#2F5BFF); color:var(--brand-500,#2F5BFF); }
    .rs .aj-tono svg { width:14px; height:14px; }
    .rs .aj-mulet-wrap { display:flex; flex-direction:column; gap:8px; }
    .rs .aj-mulet-k { font-size:13px; font-weight:600; color:var(--text-tertiary); }
    .rs .aj-mulet { padding:16px; background:var(--surface-overlay); border:1px solid var(--border-default); border-radius:13px; font-size:15px; line-height:1.6; color:var(--text-secondary); }
    .rs .aj-voice-foot { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:4px; flex-wrap:wrap; }
    /* móvil: tarjeta de identidad — el badge «Cerebro · Nivel» solapaba el nombre en
       pantallas estrechas → fuera en móvil; la fila puede envolver. */
    .rs--mobile .aj-identity { flex-wrap:wrap; row-gap:14px; }
    .rs--mobile .aj-identity .aj-lvl { display:none; }
    .rs--mobile .aj-identity .btn { flex:1 1 100%; justify-content:center; }   /* botón a su propia fila → el nombre no se corta */
    /* móvil: bloque «Tu voz» — la cabecera apilaba mal (la descripción quedaba apretada
       en media columna por la «derivada de N reels» a la derecha). Apilar. */
    .rs--mobile .aj-voice-head { flex-direction:column; gap:6px; }
    .rs--mobile .aj-derived { margin-top:0; }
    .rs .aj-slider-row { display:flex; align-items:center; gap:12px; font-size:14.5px; color:var(--text-primary); }
    .rs .aj-slider { position:relative; width:200px; height:8px; border-radius:99px; background:var(--surface-overlay); }
    .rs .aj-slider-fill { position:absolute; left:0; top:0; height:100%; border-radius:99px; background:linear-gradient(90deg, var(--brand-500,#2F5BFF), var(--brand-300,#6E92FF)); }
    .rs .aj-slider-knob { position:absolute; top:50%; transform:translate(-50%,-50%); width:18px; height:18px; border-radius:99px; background:#fff; border:3px solid var(--brand-500,#2F5BFF); }
    /* prefs */
    .rs .aj-prefs { padding:8px 24px; }
    .rs .aj-pref { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 0; }
    .rs .aj-pref.bt { border-top:1px solid var(--border-default); }
    .rs .aj-pref-l { font-size:15.5px; font-weight:600; color:var(--text-primary); }
    .rs .aj-pref-s { font-size:13.5px; color:var(--text-tertiary); }
    .rs .aj-toggle { width:48px; height:28px; border-radius:99px; border:none; cursor:pointer; padding:3px; display:flex; background:var(--surface-sunken); justify-content:flex-start; transition:all .2s ease; flex:none; }
    .rs .aj-toggle.on { background:var(--brand-500,#2F5BFF); justify-content:flex-end; }
    .rs .aj-knob { width:22px; height:22px; border-radius:99px; background:#fff; display:block; }
    /* plan */
    .rs .aj-plan-grid { display:grid; grid-template-columns:1.3fr 1fr; gap:16px; }
    .rs .aj-plancard { background:linear-gradient(120deg, var(--brand-50, rgba(47,91,255,.16)), var(--surface-raised)); display:flex; flex-direction:column; gap:16px; }
    .rs .aj-plan-top { display:flex; align-items:center; justify-content:space-between; }
    .rs .aj-plan-badge { display:inline-flex; align-items:center; gap:8px; font-family:var(--font-mono); font-size:12px; color:var(--brand-500,#2F5BFF); }
    .rs .aj-plan-badge svg { width:15px; height:15px; }
    .rs .aj-plan-renew { font-family:var(--font-mono); font-size:12px; color:var(--text-tertiary); }
    .rs .aj-plan-price { display:flex; align-items:baseline; gap:8px; }
    .rs .aj-plan-n { font-family:var(--font-display); font-weight:700; font-size:40px; color:var(--text-primary); line-height:1; }
    .rs .aj-plan-per { font-size:15px; color:var(--text-secondary); }
    .rs .aj-plan-cred { display:flex; flex-direction:column; gap:9px; }
    .rs .aj-plan-cred-row { display:flex; align-items:center; justify-content:space-between; font-size:13.5px; color:var(--text-secondary); }
    .rs .aj-mono { font-family:var(--font-mono); color:var(--text-primary); }
    .rs .aj-cred-bar { height:9px; border-radius:99px; background:var(--surface-overlay); overflow:hidden; }
    .rs .aj-cred-fill { height:100%; border-radius:99px; background:linear-gradient(90deg, var(--brand-500,#2F5BFF), var(--brand-300,#6E92FF)); }
    .rs .aj-cred-note { font-size:12.5px; color:var(--text-tertiary); }
    .rs .aj-plan-cta { display:flex; gap:10px; margin-top:4px; flex-wrap:wrap; }
    .rs .aj-usage { display:flex; flex-direction:column; gap:6px; }
    .rs .aj-usage-row { display:flex; align-items:center; justify-content:space-between; padding:12px 0; border-top:1px solid var(--border-default); font-size:14px; color:var(--text-secondary); }
    .rs .aj-usage-row:first-of-type { border-top:none; }
    .rs .aj-usage-v { font-family:var(--font-mono); color:var(--text-primary); }
    .rs .aj-invoices { padding:8px 24px; }
    .rs .aj-inv { display:flex; align-items:center; gap:16px; padding:16px 0; }
    .rs .aj-inv.bt { border-top:1px solid var(--border-default); }
    .rs .aj-inv-l { display:flex; align-items:center; gap:12px; font-size:14.5px; color:var(--text-primary); flex:1; }
    .rs .aj-inv-l svg { width:18px; height:18px; color:var(--text-tertiary); }
    .rs .aj-inv-amt { font-family:var(--font-mono); font-size:14px; color:var(--text-secondary); }
    .rs .aj-inv-paid { display:inline-flex; align-items:center; gap:6px; font-size:13px; color:var(--success-fg,#3FE0A0); }
    .rs .aj-inv-paid svg { width:14px; height:14px; }
    .rs .aj-inv-dl { background:none; border:none; color:var(--brand-500,#2F5BFF); font-family:inherit; font-weight:600; font-size:13.5px; cursor:pointer; }
    /* cambiar de plan — tarjetas clicables (subir/bajar) v3 con profundidad 3D */
    .rs .aj-tiers-head { display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; margin-bottom:16px; }
    .rs .aj-tiers-sub { font-size:13px; color:var(--text-tertiary); }
    .rs .aj-tiers { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; }
    .rs .aj-tier { display:flex; flex-direction:column; gap:8px; text-align:left; padding:18px 16px; border-radius:16px;
      background:var(--surface-raised); border:1px solid var(--border-default); cursor:pointer; font-family:inherit;
      box-shadow:0 1px 0 var(--border-default); transition:transform .14s cubic-bezier(.16,1,.3,1), box-shadow .14s, border-color .14s; }
    .rs .aj-tier:not([disabled]):hover, .rs .aj-tier:not([disabled]):focus-visible {
      transform:translateY(-3px); border-color:var(--brand-400,#6E92FF); outline:none;
      box-shadow:0 10px 24px -10px color-mix(in srgb, var(--brand-500) 55%, transparent), 0 2px 0 var(--brand-500,#2F5BFF); }
    .rs .aj-tier.featured { border-color:color-mix(in srgb, var(--brand-500) 45%, var(--border-default)); background:linear-gradient(150deg, var(--brand-50, rgba(47,91,255,.12)), var(--surface-raised)); }
    .rs .aj-tier.is-current { cursor:default; border-color:var(--brand-500,#2F5BFF); box-shadow:inset 0 0 0 1px var(--brand-500,#2F5BFF); }
    .rs .aj-tier-name { font-family:var(--font-display); font-weight:700; font-size:16px; color:var(--text-primary); display:flex; align-items:center; gap:6px; }
    .rs .aj-tier-star { color:var(--brand-400,#6E92FF); display:inline-flex; }
    .rs .aj-tier-price { font-family:var(--font-display); font-weight:700; font-size:24px; color:var(--text-primary); line-height:1; }
    .rs .aj-tier-price small { font-family:var(--font-body); font-weight:500; font-size:12px; color:var(--text-tertiary); }
    .rs .aj-tier-feat { font-size:12.5px; line-height:1.4; color:var(--text-secondary); flex:1; }
    .rs .aj-tier-cur { display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:600; color:var(--brand-400,#6E92FF); }
    .rs .aj-tier-cur svg { width:15px; height:15px; }
    .rs .aj-tier-cta { display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:600; color:var(--brand-500,#2F5BFF); }
    .rs .aj-tier-cta.down { color:var(--text-tertiary); }
    .rs .aj-tier-cta svg { width:15px; height:15px; }
    .rs--mobile .aj-tiers { grid-template-columns:1fr 1fr; }
    /* afiliados */
    .rs .aj-kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
    .rs .aj-kpi { display:flex; flex-direction:column; gap:8px; }
    .rs .aj-kpi-l { font-size:13px; font-weight:600; color:var(--text-tertiary); }
    .rs .aj-kpi-v { font-family:var(--font-display); font-weight:700; font-size:32px; line-height:1; }
    .rs .aj-kpi-s { font-size:12.5px; color:var(--text-secondary); }
    .rs .aj-afflink { background:linear-gradient(120deg, var(--brand-50, rgba(47,91,255,.16)), var(--surface-raised)); display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; }
    .rs .aj-afflink-r { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
    .rs .aj-afflink-url { font-family:var(--font-mono); font-size:14px; color:var(--text-primary); background:var(--surface-raised); border:1px solid var(--border-strong); border-radius:11px; padding:12px 16px; }
    .rs .aj-refs { padding:8px 24px; }
    .rs .aj-ref { display:flex; align-items:center; gap:16px; padding:16px 0; }
    .rs .aj-ref.bt { border-top:1px solid var(--border-default); }
    .rs .aj-ref-l { display:flex; align-items:center; gap:12px; flex:1; min-width:0; }
    .rs .aj-ref-av { width:34px; height:34px; flex:none; border-radius:99px; background:var(--surface-overlay); border:1px solid var(--border-default); display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-size:11px; color:var(--text-secondary); }
    .rs .aj-ref-n { font-size:14.5px; color:var(--text-primary); font-weight:600; }
    .rs .aj-ref-d { font-size:12.5px; color:var(--text-tertiary); }
    .rs .aj-ref-st { font-size:13px; }
    .rs .aj-ref-amt { font-family:var(--font-display); font-weight:700; font-size:16px; color:var(--success-fg,#3FE0A0); width:70px; text-align:right; }
    .rs--mobile .aj-plan-grid, .rs--mobile .aj-kpis { grid-template-columns:1fr; }
    /* ── v3 mockup David · Métricas ────────────────────────────────────── */
    @keyframes mGrow { from{transform:scaleY(.15);opacity:.4} to{transform:scaleY(1);opacity:1} }
    .rs .mt-canvas { display:flex; flex-direction:column; gap:24px; }
    .rs .mt-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; }
    .rs .mt-h1 { font-family:var(--font-display); font-weight:700; font-size:44px; line-height:1; letter-spacing:-.02em; color:var(--text-primary); margin:0 0 12px; }
    .rs .mt-sub { font-size:18px; line-height:1.5; color:var(--text-secondary); margin:0; max-width:520px; }
    .rs .mt-sync { display:inline-flex; align-items:center; gap:8px; padding:8px 14px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:99px; font-family:var(--font-mono); font-size:12px; color:var(--text-secondary); }
    .rs .mt-sync-dot { width:7px; height:7px; border-radius:50%; background:var(--brand-500,#2F5BFF); }
    .rs .mt-vtabs { display:flex; align-items:center; gap:9px; border-bottom:1px solid var(--border-default); padding-bottom:2px; }
    .rs .mt-vtab { padding:10px 18px; border-radius:10px 10px 0 0; border:none; background:transparent; cursor:pointer; font-family:inherit; font-weight:600; font-size:14.5px; color:var(--text-tertiary); border-bottom:2px solid transparent; margin-bottom:-2px; transition:all .2s ease; }
    .rs .mt-vtab.on { color:var(--brand-500,#2F5BFF); border-bottom-color:var(--brand-500,#2F5BFF); }
    .rs .mt-area { position:relative; }
    .rs .mt-charts { display:flex; flex-direction:column; gap:20px; transition:filter .3s ease; }
    .rs .mt-charts.locked { filter:blur(9px); pointer-events:none; }
    .rs .mt-stack { display:flex; flex-direction:column; gap:20px; }
    .rs .mt-card { padding:22px 24px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:18px; display:flex; flex-direction:column; gap:16px; }
    /* Métricas · estados honestos (datos reales o "próximamente", nunca inventados) */
    .rs .mt-pronto { display:flex; flex-direction:column; align-items:flex-start; gap:9px; padding:18px 4px 6px; }
    .rs .mt-pronto-pill { display:inline-flex; align-items:center; gap:6px; padding:5px 11px; border-radius:99px; background:var(--surface-overlay); border:1px solid var(--border-default); font-family:var(--font-mono); font-size:11px; letter-spacing:.04em; color:var(--text-tertiary); text-transform:uppercase; }
    .rs .mt-pronto-pill svg { width:13px; height:13px; color:var(--brand-500); }
    .rs .mt-pronto-p { margin:0; font-size:13.5px; line-height:1.5; color:var(--text-secondary); max-width:46ch; }
    .rs .mt-empty { display:flex; flex-direction:column; align-items:center; text-align:center; gap:12px; padding:28px 18px; }
    .rs .mt-empty-ic { width:52px; height:52px; border-radius:15px; background:var(--surface-overlay); display:flex; align-items:center; justify-content:center; color:var(--brand-500); }
    .rs .mt-empty-ic svg { width:26px; height:26px; }
    .rs .mt-empty-h { margin:0; font-family:var(--font-display); font-weight:700; font-size:21px; color:var(--text-primary); }
    .rs .mt-empty-p { margin:0; font-size:14px; line-height:1.5; color:var(--text-secondary); max-width:48ch; }
    .rs .mt-aud-hero { display:flex; align-items:flex-start; gap:14px; padding:20px 22px; border-radius:16px; background:color-mix(in srgb, var(--brand-500) 7%, var(--surface-raised)); border:1px solid color-mix(in srgb, var(--brand-500) 26%, transparent); }
    .rs .mt-aud-hero-ic { flex:none; width:40px; height:40px; border-radius:11px; background:var(--surface-raised); display:flex; align-items:center; justify-content:center; color:var(--brand-500); }
    .rs .mt-aud-hero-ic svg { width:20px; height:20px; }
    .rs .mt-aud-hero-h { margin:0 0 4px; font-family:var(--font-display); font-weight:700; font-size:17px; color:var(--text-primary); }
    .rs .mt-aud-hero-p { margin:0; font-size:13.5px; line-height:1.5; color:var(--text-secondary); }
    .rs .mt-card-head { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
    .rs .mt-card-tt { display:flex; align-items:baseline; gap:12px; }
    .rs .mt-card-t { font-weight:700; font-size:16px; color:var(--text-primary); }
    .rs .mt-card-meta { font-family:var(--font-mono); font-size:11px; color:var(--text-tertiary); }
    .rs .mt-mono { font-family:var(--font-mono); color:var(--text-primary); }
    .rs .mt-mult { font-family:var(--font-display); font-weight:700; color:var(--success-fg,#3FE0A0); }
    /* KPIs */
    .rs .mt-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
    .rs .mt-kpi { padding:18px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:16px; display:flex; flex-direction:column; gap:9px; }
    .rs .mt-kpi-l { font-size:12.5px; font-weight:600; color:var(--text-tertiary); }
    .rs .mt-kpi-row { display:flex; align-items:flex-end; justify-content:space-between; gap:8px; }
    .rs .mt-kpi-v { font-family:var(--font-display); font-weight:700; font-size:26px; line-height:1; color:var(--text-primary); font-variant-numeric:tabular-nums; }
    .rs .mt-kpi-spark { flex:none; }
    .rs .mt-kpi-d { display:inline-flex; align-items:center; gap:5px; font-size:12.5px; font-weight:600; color:var(--success-fg,#3FE0A0); }
    /* trend */
    .rs .mt-trend { display:flex; align-items:flex-end; gap:8px; height:190px; }
    .rs .mt-tb { flex:1; display:flex; flex-direction:column; align-items:center; height:100%; }
    .rs .mt-tb-col { width:100%; flex:1; min-height:0; display:flex; align-items:flex-end; }   /* línea base común: las barras se apoyan abajo, los números van debajo */
    .rs .mt-tb-fill { width:100%; border-radius:5px 5px 0 0; background:linear-gradient(180deg, var(--brand-300,#6E92FF), var(--brand-500,#2F5BFF)); transform-origin:bottom; animation:mGrow .5s cubic-bezier(.16,1,.3,1); }
    .rs .mt-tb-l { height:16px; line-height:16px; margin-top:8px; font-size:10px; color:var(--text-tertiary); font-family:var(--font-mono); }
    /* bars (engagement/hooks/temas/share/edad/ubic) */
    .rs .mt-grid2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:stretch; }
    /* 4 bloques iguales: 2×2 con filas a la misma altura (arregla el desajuste). */
    .rs .mt-grid4 { grid-auto-rows:1fr; }
    .rs .mt-grid4 .mt-card { height:100%; }
    .rs--mobile .mt-grid2 { grid-template-columns:1fr; }
    .rs .mt-grid3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; align-items:start; }
    .rs .mt-bars { display:flex; flex-direction:column; gap:13px; }
    .rs .mt-br { display:flex; flex-direction:column; gap:6px; }
    .rs .mt-br-top { display:flex; align-items:center; justify-content:space-between; font-size:13.5px; color:var(--text-secondary); gap:10px; }
    .rs .mt-br-track { height:9px; border-radius:99px; background:var(--surface-overlay); overflow:hidden; }
    .rs .mt-br-track i { display:block; height:100%; border-radius:99px; background:linear-gradient(90deg, var(--brand-500,#2F5BFF), var(--brand-300,#6E92FF)); }
    .rs .mt-br-track i.alt { background:var(--brand-300,#6E92FF); opacity:.7; }
    .rs .mt-br-track i.dim { background:var(--surface-sunken); }
    /* duración */
    .rs .mt-durs { display:flex; align-items:flex-end; gap:11px; height:150px; }
    .rs .mt-dur { flex:1; display:flex; flex-direction:column; align-items:center; gap:9px; height:100%; justify-content:flex-end; }
    .rs .mt-dur-v { font-family:var(--font-mono); font-size:10.5px; color:var(--text-secondary); }
    .rs .mt-dur-bar { width:100%; border-radius:7px 7px 3px 3px; background:var(--surface-sunken); transform-origin:bottom; animation:mGrow .5s cubic-bezier(.16,1,.3,1); }
    .rs .mt-dur-bar.top { background:var(--brand-500,#2F5BFF); }
    .rs .mt-dur-l { font-size:11px; color:var(--text-tertiary); }
    /* ganchos reales (aperturas de tus top reels) */
    .rs .mt-hooks { display:flex; flex-direction:column; gap:10px; }
    .rs .mt-hook { display:flex; align-items:center; gap:11px; }
    .rs .mt-hook-rank { flex:none; width:22px; height:22px; border-radius:7px; background:var(--surface-sunken); color:var(--text-secondary); font-family:var(--font-mono); font-size:11px; display:flex; align-items:center; justify-content:center; }
    .rs .mt-hook-tx { flex:1; font-size:13.5px; line-height:1.35; color:var(--text-primary); }
    .rs .mt-hook-v { flex:none; font-size:11px; color:var(--text-tertiary); }
    /* mejor momento real (franja + día ponderados por repros) */
    .rs .mt-besttime { display:flex; flex-direction:column; gap:13px; }
    .rs .mt-bt-line { font-size:13px; line-height:1.4; color:var(--text-secondary); margin:0; }
    .rs .mt-bt-line b { color:var(--text-primary); }
    /* heatmap */
    .rs .mt-hm { display:flex; gap:10px; }
    .rs .mt-hm-rowl { display:flex; flex-direction:column; gap:6px; padding-top:24px; }
    .rs .mt-hm-rowl span { height:30px; display:flex; align-items:center; font-family:var(--font-mono); font-size:10.5px; color:var(--text-tertiary); white-space:nowrap; }
    .rs .mt-hm-grid { flex:1; display:flex; flex-direction:column; gap:6px; }
    .rs .mt-hm-cols { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
    .rs .mt-hm-cols span { text-align:center; font-family:var(--font-mono); font-size:11px; color:var(--text-tertiary); }
    .rs .mt-hm-row { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
    .rs .mt-hm-cell { height:30px; border-radius:7px; display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-size:10px; color:#fff; }
    .rs .mt-hm-cell.peak { border:1px solid var(--brand-500,#2F5BFF); }
    /* top reels */
    .rs .mt-top-row { display:flex; align-items:center; gap:16px; padding:12px 4px; border-top:1px solid var(--border-default); }
    .rs .mt-top-rank { width:22px; flex:none; font-family:var(--font-display); font-weight:700; font-size:16px; color:var(--text-tertiary); }
    .rs .mt-top-thumb { position:relative; width:38px; height:52px; flex:none; border-radius:7px; overflow:hidden; background:linear-gradient(155deg, var(--surface-sunken), var(--surface-overlay)); border:1px solid var(--border-default); }
    .rs .mt-top-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
    .rs .mt-top-dur { position:absolute; right:2px; bottom:2px; padding:1px 3px; border-radius:4px; background:rgba(0,0,0,.6); color:#fff; font-family:var(--font-mono); font-size:8px; }
    .rs .mt-top-title { flex:1; min-width:0; font-size:14px; color:var(--text-primary); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .rs .mt-top-stat { text-align:right; flex:none; }
    .rs .mt-top-stat .mt-mono { font-size:14px; }
    .rs .mt-top-k { font-size:10.5px; color:var(--text-tertiary); }
    .rs .mt-top-mult { width:54px; }
    .rs .mt-top-mult .mt-mult { font-size:15px; }
    /* audiencia */
    .rs .mt-grid-audtop { display:grid; grid-template-columns:1.6fr 1fr; gap:16px; align-items:start; }
    .rs .mt-up { display:inline-flex; align-items:center; gap:5px; font-size:13px; font-weight:600; color:var(--success-fg,#3FE0A0); }
    .rs .mt-fgrowth { display:flex; align-items:flex-end; gap:7px; height:150px; }
    .rs .mt-fb { flex:1; height:100%; display:flex; align-items:flex-end; }
    .rs .mt-fb-fill { width:100%; border-radius:5px 5px 0 0; background:linear-gradient(180deg, var(--brand-300,#6E92FF), var(--brand-500,#2F5BFF)); transform-origin:bottom; animation:mGrow .5s cubic-bezier(.16,1,.3,1); }
    .rs .mt-note { font-size:13px; color:var(--text-secondary); line-height:1.5; margin-top:4px; }
    .rs .mt-note b { color:var(--text-primary); }
    .rs .mt-gender { display:flex; height:12px; border-radius:99px; overflow:hidden; }
    .rs .mt-gender div { background:var(--brand-500,#2F5BFF); }
    .rs .mt-gender div.alt { background:var(--brand-300,#6E92FF); opacity:.55; }
    .rs .mt-gender-leg { display:flex; justify-content:space-between; font-size:13.5px; color:var(--text-secondary); }
    .rs .mt-gender-leg span { display:inline-flex; align-items:center; gap:7px; }
    .rs .mt-gender-leg i { width:9px; height:9px; border-radius:3px; background:var(--brand-500,#2F5BFF); }
    .rs .mt-gender-leg i.alt { background:var(--brand-300,#6E92FF); opacity:.55; }
    /* competidores */
    .rs .mt-comp { padding:8px; }
    .rs .mt-comp-table { display:flex; flex-direction:column; }
    .rs .mt-comp-head { display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr 1fr; padding:12px 16px; font-family:var(--font-mono); font-size:11px; color:var(--text-tertiary); }
    .rs .mt-comp-head span:not(:first-child) { text-align:right; }
    .rs .mt-comp-row { display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr 1fr; align-items:center; padding:16px; border-radius:14px; border:1px solid var(--border-default); margin-top:6px; }
    .rs .mt-comp-row.me { background:var(--brand-50, rgba(47,91,255,.16)); border-color:var(--brand-500,#2F5BFF); }
    .rs .mt-comp-acct { display:flex; align-items:center; gap:11px; min-width:0; }
    .rs .mt-comp-av { width:34px; height:34px; flex:none; border-radius:99px; background:var(--surface-overlay); border:1px solid var(--border-default); display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-size:11px; color:var(--text-secondary); }
    .rs .mt-comp-n { font-weight:600; font-size:14px; color:var(--text-primary); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .rs .mt-comp-tag { font-size:11.5px; color:var(--text-tertiary); }
    .rs .mt-comp-tag.me { color:var(--brand-500,#2F5BFF); }
    .rs .mt-comp-c { text-align:right; font-family:var(--font-mono); font-size:14px; color:var(--text-primary); }
    .rs .mt-comp-c.mt-mult { font-size:15px; }
    .rs .mt-opp { background:linear-gradient(120deg, var(--brand-50, rgba(47,91,255,.16)), var(--surface-raised)); gap:12px; justify-content:center; }
    .rs .mt-opp-eye { font-family:var(--font-mono); font-size:11px; color:var(--brand-500,#2F5BFF); }
    .rs .mt-opp-h { font-family:var(--font-display); font-weight:700; font-size:23px; line-height:1.15; color:var(--text-primary); margin:0; }
    .rs .mt-opp-p { font-size:14.5px; color:var(--text-secondary); margin:0; line-height:1.5; }
    .rs .mt-opp .btn { align-self:flex-start; }
    /* paywall */
    .rs .mt-wall { position:absolute; inset:0; display:flex; align-items:flex-start; justify-content:center; padding:60px 24px; }
    .rs .mt-wall-card { position:sticky; top:90px; max-width:430px; text-align:center; background:var(--surface-raised); border:1px solid var(--border-strong); border-radius:22px; padding:36px 34px; box-shadow:0 24px 60px rgba(0,0,0,.4); display:flex; flex-direction:column; align-items:center; gap:14px; }
    .rs .mt-wall-ic { width:54px; height:54px; border-radius:16px; background:var(--brand-50, rgba(47,91,255,.16)); display:flex; align-items:center; justify-content:center; color:var(--brand-500,#2F5BFF); }
    .rs .mt-wall-h { font-family:var(--font-display); font-weight:700; font-size:27px; line-height:1.1; color:var(--text-primary); margin:0; }
    .rs .mt-wall-p { font-size:16px; color:var(--text-secondary); margin:0; line-height:1.5; }
    .rs .mt-wall-note { font-family:var(--font-mono); font-size:11.5px; color:var(--text-tertiary); }
    /* conecta IG */
    .rs .mt-ig { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 24px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:18px; flex-wrap:wrap; }
    .rs .mt-ig-l { display:flex; align-items:center; gap:16px; }
    .rs .mt-ig-ic { width:46px; height:46px; border-radius:13px; background:var(--surface-overlay); border:1px solid var(--border-default); display:flex; align-items:center; justify-content:center; color:var(--text-secondary); }
    .rs .mt-ig-t { font-family:var(--font-display); font-weight:600; font-size:18px; color:var(--text-primary); }
    .rs .mt-ig-s { font-size:14px; color:var(--text-secondary); }
    .rs--mobile .mt-kpis { grid-template-columns:1fr 1fr; } .rs--mobile .mt-grid2, .rs--mobile .mt-grid3, .rs--mobile .mt-grid-audtop { grid-template-columns:1fr; }
    /* móvil: la tabla de competidores (5 col) scrollea en horizontal en vez de apretarse */
    .rs--mobile .mt-comp { overflow-x:auto; -webkit-overflow-scrolling:touch; }
    .rs--mobile .mt-comp-table { min-width:560px; }
    .rs--mobile .mt-top-row { gap:10px; } .rs--mobile .mt-top-title { font-size:13px; }
    /* ── v3 · Ranking (leaderboard) ────────────────────────────────────── */
    .rs .rk-canvas { display:flex; flex-direction:column; gap:22px; }
    .rs .rk-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; }
    .rs .rk-eyebrow { display:inline-flex; align-items:center; gap:9px; font-family:var(--font-mono); font-size:12px; letter-spacing:.06em; color:var(--brand-500,#2F5BFF); margin-bottom:12px; }
    .rs .rk-eye-dot { width:8px; height:8px; border-radius:99px; background:var(--brand-500,#2F5BFF); }
    .rs .rk-h1 { font-family:var(--font-display); font-weight:700; font-size:44px; line-height:1; letter-spacing:-.02em; color:var(--text-primary); margin:0 0 12px; }
    .rs .rk-sub { font-size:18px; line-height:1.5; color:var(--text-secondary); margin:0; max-width:520px; }
    .rs .rk-sync { display:inline-flex; align-items:center; gap:8px; padding:8px 14px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:99px; font-family:var(--font-mono); font-size:12px; color:var(--text-secondary); }
    .rs .rk-sync-dot { width:7px; height:7px; border-radius:50%; background:var(--brand-500,#2F5BFF); }
    .rs .rk-hero { display:flex; align-items:center; gap:28px; padding:26px 30px; background:linear-gradient(120deg, var(--brand-50, rgba(47,91,255,.16)), var(--surface-raised)); border:1px solid var(--border-default); border-radius:20px; flex-wrap:wrap; }
    .rs .rk-rank { flex:none; display:flex; align-items:baseline; gap:4px; color:var(--text-primary); }
    .rs .rk-rank-hash { font-family:var(--font-display); font-weight:700; font-size:30px; color:var(--brand-500,#2F5BFF); }
    .rs .rk-rank-n { font-family:var(--font-display); font-weight:700; font-size:64px; line-height:1; letter-spacing:-.02em; }
    .rs .rk-rank-of { font-family:var(--font-mono); font-size:13px; color:var(--text-tertiary); }
    .rs .rk-hero-body { flex:1; min-width:240px; display:flex; flex-direction:column; gap:10px; }
    .rs .rk-hero-val { font-family:var(--font-display); font-weight:700; font-size:26px; color:var(--text-primary); }
    .rs .rk-hero-unit { font-family:var(--font-body); font-weight:500; font-size:14px; color:var(--text-tertiary); }
    .rs .rk-hero .lb-goal, .rs .rk-hero .lb-momentum { display:inline-flex; align-items:center; gap:8px; font-size:14px; color:var(--text-secondary); margin:0; }
    .rs .rk-hero .lb-goal b, .rs .rk-hero .lb-momentum b { color:var(--text-primary); }
    .rs .rk-hero .lb-goal svg, .rs .rk-hero .lb-momentum svg { width:15px; height:15px; color:var(--brand-400,#6E92FF); flex:none; }
    .rs .rk-list { display:flex; flex-direction:column; gap:6px; }
    .rs .rk-row { display:flex; align-items:center; gap:14px; padding:13px 16px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:14px; }
    .rs .rk-row.me { background:color-mix(in srgb, var(--lc,#2F5BFF) 14%, transparent); border-color:var(--lc,#2F5BFF); }
    /* Insignia y avatar de nivel del Cerebro (David 24-jun): TÚ con color por nivel,
       competidores (no usan la app) en gris. */
    .rs .rk-ava-lvl { border-color:var(--lc,#2F5BFF) !important; color:var(--lc,#2F5BFF) !important; box-shadow:0 0 0 2px color-mix(in srgb,var(--lc) 30%, transparent); }
    .rs .rk-ava-guest { opacity:.85; }
    .rs .rk-lvl { display:inline-flex; align-items:center; margin-left:8px; padding:2px 9px; border-radius:999px; font-family:var(--font-mono); font-size:10.5px; font-weight:700; letter-spacing:.02em; text-transform:uppercase;
      color:var(--lc,#2F5BFF); background:color-mix(in srgb,var(--lc) 16%, transparent); border:1px solid color-mix(in srgb,var(--lc) 45%, transparent); }
    .rs .rk-pos { width:30px; flex:none; text-align:center; font-family:var(--font-display); font-weight:700; font-size:16px; color:var(--text-tertiary); }
    .rs .rk-pos.top { color:#0c0f17; border-radius:8px; padding:3px 0; }
    .rs .rk-pos.t1 { background:linear-gradient(140deg,#FFD66B,#E8B53C); } .rs .rk-pos.t2 { background:linear-gradient(140deg,#D9E1EE,#AEB9CC); } .rs .rk-pos.t3 { background:linear-gradient(140deg,#E7B07E,#C98A52); }
    .rs .rk-ava { width:34px; height:34px; flex:none; border-radius:99px; background:var(--surface-overlay); border:1px solid var(--border-default); display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-size:11px; color:var(--text-secondary); }
    .rs .rk-h { flex:1; min-width:0; font-weight:600; font-size:14.5px; color:var(--text-primary); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .rs .rk-you { font-family:var(--font-mono); font-size:11px; color:var(--brand-500,#2F5BFF); margin-left:6px; }
    .rs .rk-val { flex:none; font-family:var(--font-display); font-weight:700; font-size:16px; color:var(--text-primary); }
    .rs .rk-unit { font-family:var(--font-body); font-weight:500; font-size:11px; color:var(--text-tertiary); }
    .rs .rk-g { flex:none; width:54px; text-align:right; font-family:var(--font-mono); font-size:12.5px; font-weight:600; }
    .rs .rk-g.up { color:var(--success-fg,#3FE0A0); } .rs .rk-g.down { color:var(--danger-fg,#FF6B6B); }
    .rs .rk-beat { flex:none; } .rs .rk-beat-sp { flex:none; width:96px; }
    .rs .rk-cta { display:flex; gap:10px; flex-wrap:wrap; margin-top:4px; }
    .rs .rk-note { font-size:12.5px; line-height:1.5; color:var(--text-tertiary); margin:6px 0 0; }
    .rs .rk-note b { color:var(--text-secondary); }
    .rs--mobile .rk-beat-sp { display:none; } .rs--mobile .rk-row { flex-wrap:wrap; } .rs--mobile .rk-h { flex-basis:55%; }
    /* aviso de recompensa del feedback (sheet) */
    .rs .fb-reward { display:flex; align-items:flex-start; gap:9px; padding:12px 14px; border-radius:12px; background:var(--success-bg, rgba(63,224,160,.12)); border:1px solid var(--success, #2FD18A); color:var(--text-secondary); font-size:13.5px; line-height:1.45; margin:2px 0 4px; }
    .rs .fb-reward svg { width:16px; height:16px; flex:none; margin-top:1px; color:var(--success-fg, #3FE0A0); }
    .rs .fb-reward b { color:var(--text-primary); font-weight:600; }
    .rs .fb-reward + .field { margin-top:14px; }
    .rs .fb-attach { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
    .rs .fb-attach-btn { display:inline-flex; align-items:center; gap:7px; padding:9px 14px; border-radius:10px; background:var(--surface-overlay); border:1px solid var(--border-strong); color:var(--text-primary); font-weight:600; font-size:13.5px; cursor:pointer; }
    .rs .fb-attach-btn svg { width:14px; height:14px; }
    .rs .fb-attach-name { font-size:13px; color:var(--text-tertiary); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .rs .fb-attach-prev { margin-top:10px; position:relative; display:inline-block; }
    .rs .fb-attach-prev:empty { display:none; }
    .rs .fb-attach-prev img { max-width:160px; max-height:120px; border-radius:10px; border:1px solid var(--border-default); display:block; }
    .rs .fb-attach-x { position:absolute; top:-8px; right:-8px; width:24px; height:24px; border-radius:99px; background:var(--surface-raised); border:1px solid var(--border-strong); color:var(--text-secondary); font-size:15px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
    .rs .gui-list { padding:0 0 40px; display:flex; flex-direction:column; gap:10px; }
    .rs .gui-card { display:flex; align-items:center; gap:12px; padding:15px 16px; border:1px solid var(--border-default); border-radius:14px; background:var(--surface-raised); }
    .rs .gui-main { flex:1; min-width:0; }
    .rs .gui-title { font-size:14.5px; font-weight:600; line-height:1.3; margin-bottom:3px; }
    .rs .gui-meta { font-size:12px; color:var(--text-tertiary); }
    .rs .gui-pill { font-size:11.5px; font-weight:700; padding:4px 10px; border-radius:99px; background:var(--surface-overlay); color:var(--text-secondary); flex-shrink:0; }
    .rs .gui-pill.done { background:var(--success-bg); color:var(--success-fg); display:inline-flex; align-items:center; gap:4px; }
    /* B3: badges de aprobación (agencia/estudio) */
    .rs .gui-pill.appr { background:var(--success-bg); color:var(--success-fg); display:inline-flex; align-items:center; gap:4px; }
    .rs .gui-pill.appr-pend { background:color-mix(in srgb, #f59e0b 16%, transparent); color:#f59e0b; }
    .rs .fchip.ghost { border-style:dashed; color:var(--text-tertiary); }
    .rs .fchip.ghost:hover { color:var(--brand-400); border-color:var(--brand-500); }
    /* guiones: acciones múltiples + tag guardado */
    .rs .gui-acts { display:flex; gap:6px; flex-shrink:0; }
    .rs .gui-acts .iconbtn { width:38px; height:38px; border-radius:10px; border:1px solid var(--border-default); background:transparent; color:var(--text-secondary); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all .15s var(--ease); }
    .rs .gui-acts .iconbtn:hover { color:var(--text-primary); border-color:var(--border-strong); }
    .rs .gui-acts .iconbtn.on { color:var(--success-fg); border-color:var(--success-fg); }
    .rs .gui-acts .iconbtn.danger:hover { color:var(--danger-fg); border-color:var(--danger-fg); }
    .rs .gui-card.is-rec { opacity:.75; }
    .rs .saved-tag { display:inline-flex; align-items:center; gap:4px; color:var(--success-fg); font-weight:600; }
    .rs .saved-tag svg { width:12px; height:12px; }
    .rs .saved-tag--pending { color:var(--brand-500); }
    /* Guardar la opción/gancho/formato elegidos */
    .rs .script-save-row { margin:18px 0 4px; display:flex; align-items:center; }
    .rs .script-save-btn { display:inline-flex; align-items:center; gap:7px; }
    .rs .script-save-btn svg { width:16px; height:16px; }
    .rs .script-saved-ok { display:inline-flex; align-items:center; gap:6px; font-size:.9rem; font-weight:600; color:var(--success-fg); }
    .rs .script-saved-ok svg { width:15px; height:15px; }

    /* ── Ideas: contador + plegar bloque + estado guardado ── */
    .rs .idea-count { flex-shrink:0; font-size:12px; font-weight:600; color:var(--text-tertiary); font-family:var(--font-mono); margin-right:2px; }
    .rs .idea-caret { flex-shrink:0; width:30px; height:30px; border-radius:8px; border:1px solid var(--border-default); background:transparent; color:var(--text-secondary); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:transform .18s var(--ease), color .15s var(--ease); }
    .rs .idea-caret svg { width:16px; height:16px; }
    .rs .idea-caret.open { transform:rotate(180deg); }
    .rs .idea-caret:hover { color:var(--text-primary); border-color:var(--border-strong); }
    .rs .sc-block.is-saved { border-color:color-mix(in srgb, var(--success-fg) 35%, transparent); }
    .rs .sc-hook-done { flex-shrink:0; display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:700; color:var(--success-fg); }
    .rs .sc-hook-done svg { width:13px; height:13px; }
    .rs .sc-hook-save { display:inline-flex; align-items:center; gap:4px; }
    .rs .sc-hook-save svg { width:12px; height:12px; }

    /* ── Guiones: hooks alternativos anidados en la tarjeta ── */
    .rs .gui-list .gui-card-wrap { display:flex; flex-direction:column; }
    .rs .gui-list { gap:10px; }
    .rs .gui-hooks-toggle { display:inline-flex; align-items:center; gap:6px; margin-top:7px; padding:3px 9px 3px 7px; border:1px solid var(--border-default); border-radius:99px; background:transparent; color:var(--text-secondary); font-size:11.5px; font-weight:700; font-family:var(--font-body); cursor:pointer; transition:color .15s var(--ease), border-color .15s var(--ease); }
    .rs .gui-hooks-toggle:hover { color:var(--brand-400); border-color:var(--brand-500); }
    .rs .gui-hooks-toggle svg:first-child { width:13px; height:13px; }
    .rs .gui-hooks-toggle svg:last-child { width:14px; height:14px; transition:transform .18s var(--ease); }
    .rs .gui-hooks-toggle.open svg:last-child { transform:rotate(180deg); }
    .rs .gui-hooks { margin:-4px 0 2px; padding:12px 16px 14px 60px; border:1px solid var(--border-subtle); border-top:none; border-radius:0 0 14px 14px; background:var(--surface-base); display:flex; flex-direction:column; gap:8px; }
    .rs--mobile .gui-hooks { padding-left:16px; }
    /* P0 (4): cuerpo del guión desplegado bajo la card (mismo contenedor que .gui-hooks). */
    .rs .gui-body { margin:-4px 0 2px; padding:14px 16px 16px 60px; border:1px solid var(--border-subtle); border-top:none; border-radius:0 0 14px 14px; background:var(--surface-base); }
    .rs--mobile .gui-body { padding-left:16px; }
    .rs .gui-body-hook { font-size:15px; font-weight:700; line-height:1.4; margin-bottom:10px; }
    .rs .gui-hook { display:flex; align-items:center; gap:10px; font-size:13.5px; line-height:1.35; }
    .rs .gui-hook .hn { font-family:var(--font-mono); font-size:11px; color:var(--brand-500); flex-shrink:0; }
    .rs .gui-hook-t { flex:1; min-width:0; }
    .rs .gui-hook-use { flex-shrink:0; font-size:11px; font-weight:700; color:var(--text-secondary); background:transparent; border:1px solid var(--border-default); border-radius:7px; padding:4px 10px; cursor:pointer; }
    .rs .gui-hook-use:hover { color:var(--brand-400); border-color:var(--brand-500); }
    .rs .gui-hook-del { flex-shrink:0; width:26px; height:26px; border-radius:7px; border:1px solid var(--border-default); background:transparent; color:var(--text-tertiary); display:flex; align-items:center; justify-content:center; cursor:pointer; }
    .rs .gui-hook-del svg { width:13px; height:13px; }
    .rs .gui-hook-del:hover { color:var(--danger-fg); border-color:var(--danger-fg); }

    /* ══ v0.18.x MÉTRICAS — IG connect + círculo de aprendizaje ══ */
    .rs .ig-connect { max-width:560px; margin:40px auto; text-align:center; padding:32px 24px; border:1px solid var(--border-default); border-radius:20px; background:var(--surface-raised); }
    .rs .ig-connect-ic { width:62px; height:62px; margin:0 auto 18px; border-radius:16px; display:flex; align-items:center; justify-content:center; color:#fff; background:linear-gradient(135deg,#4f7cff,#6f93ff,#9a3412); }
    .rs .ig-connect-ic svg { width:30px; height:30px; }
    .rs .ig-connect-h { font-size:28px; margin:0 0 12px; }
    .rs .ig-connect-p { font-size:15px; line-height:1.55; color:var(--text-secondary); margin:0 0 22px; }
    .rs .ig-connect-note { font-size:12px; color:var(--text-tertiary); margin:14px 0 0; }
    /* cuenta + acciones */
    .rs .met-acct { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:18px; }
    .rs .met-acct-ig { display:inline-flex; align-items:center; gap:7px; font-weight:700; font-size:14px; }
    .rs .met-acct-info { font-size:12.5px; color:var(--brand-400); font-weight:600; }
    /* 5 stat cards con borde de color arriba */
    .rs .met-cards { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-bottom:18px; }
    .rs--mobile .met-cards { grid-template-columns:repeat(2,1fr); }
    .rs .met-card { position:relative; padding:18px 14px 14px; border:1px solid var(--border-default); border-radius:14px; background:var(--surface-raised); text-align:center; overflow:hidden; }
    .rs .met-card::before { content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--c); }
    .rs .met-card-n { font-family:var(--font-display); font-size:30px; line-height:1; margin-bottom:3px; }
    .rs .met-card-sub { font-size:11px; color:var(--text-tertiary); margin-bottom:5px; }
    .rs .met-card-l { font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-tertiary); font-weight:600; }
    /* aprendizaje IA */
    .rs .learn { padding:18px 20px; border:1px solid color-mix(in srgb, var(--brand-500) 28%, transparent); border-radius:16px; background:linear-gradient(135deg, color-mix(in srgb, var(--brand-500) 8%, var(--surface-raised)), var(--surface-raised)); margin-bottom:18px; }
    .rs .learn-head { display:flex; align-items:center; gap:8px; font-size:14px; font-weight:700; margin-bottom:12px; }
    .rs .learn-head svg { color:var(--brand-400); }
    .rs .learn-list { display:flex; flex-direction:column; gap:9px; }
    .rs .learn-item { display:flex; gap:9px; align-items:flex-start; font-size:13.5px; line-height:1.45; color:var(--text-primary); }
    .rs .learn-item svg { color:var(--success-fg); flex-shrink:0; margin-top:2px; width:16px; height:16px; }
    .rs .learn-foot { margin-top:14px; padding-top:12px; border-top:1px solid var(--border-subtle); font-size:12.5px; color:var(--text-secondary); }
    /* top banner */
    .rs .met-top { padding:13px 16px; border:1px solid var(--border-default); border-radius:12px; background:var(--surface-raised); font-size:13.5px; margin-bottom:18px; }
    .rs .met-top b { color:var(--brand-500); }
    /* gráfico de barras */
    .rs .met-chart { padding:18px; border:1px solid var(--border-default); border-radius:16px; background:var(--surface-raised); margin-bottom:22px; }
    .rs .met-chart-head { margin-bottom:14px; }
    .rs .chips-sm { display:inline-flex; gap:6px; }
    .rs .chip-sm { padding:5px 13px; border-radius:99px; border:1px solid var(--border-default); background:transparent; color:var(--text-secondary); font-size:12.5px; font-weight:600; cursor:pointer; font-family:var(--font-body); }
    .rs .chip-sm.on { background:var(--brand-600); color:#fff; border-color:var(--brand-600); }
    .rs .bars { position:relative; display:flex; flex-direction:column; gap:7px; padding-top:6px; }
    .rs .bar-row { display:flex; align-items:center; gap:10px; position:relative; z-index:1; }
    .rs .bar-lbl { width:170px; flex-shrink:0; font-size:11.5px; color:var(--text-tertiary); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .rs--mobile .bar-lbl { width:90px; }
    .rs .bar-track { flex:1; height:22px; background:var(--surface-sunken); border-radius:6px; overflow:hidden; }
    .rs .bar-fill { height:100%; border-radius:6px; background:linear-gradient(90deg, var(--brand-700), var(--brand-500)); min-width:4px; }
    .rs .bar-fill.is-top { background:linear-gradient(90deg, #4f7cff, #6f93ff); }
    .rs .bar-val { width:50px; flex-shrink:0; font-size:12px; font-weight:600; font-variant-numeric:tabular-nums; }
    .rs .bar-line { position:absolute; top:0; bottom:0; width:0; border-left:1px dashed; z-index:2; pointer-events:none; }
    .rs .bar-line.media { border-color:var(--brand-400); left:calc(180px + (100% - 230px) * 0); }
    .rs .bar-line.mediana { border-color:#fbbf24; }
    .rs .bar-line span { position:absolute; top:-4px; left:4px; font-size:9px; white-space:nowrap; color:inherit; opacity:.85; }
    .rs .bar-line.media span { color:var(--brand-400); }
    .rs .bar-line.mediana span { color:#fbbf24; }
    /* grid de reels publicados */
    .rs .vid-grid { display:grid; gap:14px; grid-template-columns:repeat(2,1fr); }
    .rs--desktop .vid-grid { grid-template-columns:repeat(4,1fr); }
    .rs--mobile .vid-grid { grid-template-columns:1fr; }
    .rs .vid-card { border:1px solid var(--border-default); border-radius:14px; background:var(--surface-raised); overflow:hidden; display:flex; flex-direction:column; }
    .rs .vid-thumb { width:100%; aspect-ratio:1/1; border-radius:0; border:none; }
    .rs .vid-badges { position:absolute; top:8px; left:8px; display:flex; gap:5px; z-index:2; }
    .rs .vid-badge { font-size:9.5px; font-weight:800; letter-spacing:.05em; padding:3px 7px; border-radius:6px; }
    .rs .vid-badge.top { background:var(--brand-600); color:#fff; }
    .rs .vid-badge.viral { background:#4567e0; color:#fff; }
    .rs .vid-body { padding:12px; display:flex; flex-direction:column; flex:1; }
    .rs .vid-cap { font-size:13px; font-weight:600; line-height:1.32; margin-bottom:8px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
    .rs .vid-metrics { display:flex; gap:10px; font-size:12px; color:var(--text-tertiary); align-items:center; flex-wrap:wrap; margin-bottom:5px; }
    .rs .vid-metrics span { display:inline-flex; align-items:center; gap:4px; font-variant-numeric:tabular-nums; }
    .rs .vid-date { font-size:11px; color:var(--text-tertiary); margin-bottom:6px; }
    .rs .pub-link { margin-top:auto; font-size:11px; color:var(--brand-400); display:inline-flex; align-items:center; gap:5px; }
    .rs .pub-link svg { width:13px; height:13px; }
    .rs .pub-link.organic { color:var(--text-tertiary); } .rs .pub-link b { color:var(--brand-500); }
    /* badge de publicación en la card de guion (qué guion se convirtió en reel y cómo rindió) */
    .rs .gui-pub { display:inline-flex; align-items:center; gap:6px; margin-top:7px; font-family:var(--font-mono); font-size:11.5px; color:var(--text-secondary); }
    .rs .gui-pub svg { width:13px; height:13px; }
    .rs .gui-pub.hot { color:var(--brand-500); font-weight:600; }
    .rs button.gui-pub { background:transparent; border:none; cursor:pointer; padding:0; } .rs button.gui-pub:hover { color:var(--brand-500); }
    .rs .gui-pub.pending { color:var(--text-tertiary); }
    .rs .gui-link { display:inline-flex; align-items:center; gap:6px; margin-top:7px; padding:4px 11px; border:1px dashed var(--border-strong); border-radius:99px; background:transparent; color:var(--text-secondary); font-family:var(--font-body); font-size:11.5px; font-weight:600; cursor:pointer; }
    .rs .gui-link:hover { color:var(--brand-500); border-color:var(--brand-500); } .rs .gui-link svg { width:13px; height:13px; }
    /* panel "Rendimiento del guion" (retención) */
    .rs .perf { max-width:640px; margin:0 auto; }
    .rs .perf-eyebrow { font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--brand-500); display:flex; align-items:center; gap:8px; } .rs .perf-eyebrow svg { width:14px; height:14px; }
    .rs .perf-title { font-family:var(--font-display-2); font-weight:600; font-size:24px; line-height:1.15; letter-spacing:-.02em; margin:10px 0 18px; color:var(--text-primary); }
    .rs .perf-metrics { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--border-default); border-radius:12px; overflow:hidden; background:var(--surface-raised); margin-bottom:18px; }
    .rs .perf-metrics .pm { padding:14px 16px; border-right:1px solid var(--border-default); } .rs .perf-metrics .pm:last-child { border-right:none; }
    .rs .pm-k { font-family:var(--font-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-tertiary); }
    .rs .pm-v { font-family:var(--font-mono); font-size:22px; font-weight:500; color:var(--text-primary); margin-top:5px; }
    .rs .perf-ret { border:1px solid var(--border-default); border-radius:14px; background:var(--surface-raised); padding:16px 18px; }
    .rs .perf-ret-h { font-size:13px; color:var(--text-secondary); margin-bottom:12px; } .rs .perf-ret-h .muted { color:var(--text-tertiary); }
    .rs .perf-sample { float:right; font-family:var(--font-mono); font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--text-tertiary); border:1px solid var(--border-default); border-radius:5px; padding:1px 6px; }
    .rs .ret-svg { width:100%; height:150px; display:block; }
    .rs .ret-area { fill:color-mix(in srgb, var(--brand-500) 16%, transparent); }
    .rs .ret-line { fill:none; stroke:var(--brand-500); stroke-width:2.5; vector-effect:non-scaling-stroke; }
    .rs .ret-svg circle { fill:var(--brand-500); }
    .rs .perf-ret-x { display:flex; justify-content:space-between; font-family:var(--font-mono); font-size:10.5px; color:var(--text-tertiary); margin-top:6px; }
    .rs .perf-foot { display:flex; gap:9px; align-items:flex-start; margin-top:16px; padding:14px 16px; border-radius:12px; background:color-mix(in srgb, var(--brand-500) 9%, var(--surface-raised)); border:1px solid color-mix(in srgb,var(--brand-500) 28%,transparent); font-size:13px; line-height:1.5; color:var(--text-secondary); }
    .rs .perf-foot svg { width:16px; height:16px; flex-shrink:0; color:var(--brand-500); margin-top:1px; } .rs .perf-foot b { color:var(--text-primary); }

    /* ══ v0.18.x CEREBRO — base de conocimiento de la marca ══ */
    .rs .brain-section-t { font-size:12px; text-transform:uppercase; letter-spacing:.1em; font-weight:700; color:var(--text-tertiary); margin:24px 0 12px; }
    /* A1: selector de tono preset */
    .rs .tone-pick { margin-bottom:6px; }
    .rs .tone-chips { display:flex; flex-wrap:wrap; gap:8px; }
    .rs .tone-chip { font-size:13px; font-weight:600; padding:8px 14px; border-radius:99px; border:1px solid var(--border-default); background:var(--surface-raised); color:var(--text-secondary); cursor:pointer; transition:all .15s ease; min-height:38px; }
    .rs .tone-chip:hover { border-color:var(--brand-400); color:var(--text-primary); }
    .rs .tone-chip.on { background:color-mix(in srgb, var(--brand-500) 16%, transparent); border-color:var(--brand-500); color:var(--brand-200); }
    .rs .tone-note { font-size:12.5px; color:var(--text-tertiary); margin-top:10px; }
    .rs .brain-tag { font-size:10px; background:color-mix(in srgb, var(--brand-500) 16%, transparent); color:var(--brand-300); padding:2px 7px; border-radius:6px; letter-spacing:.04em; margin-left:6px; }
    .rs .brain-hero { display:flex; gap:18px; align-items:center; padding:22px; border:1px solid color-mix(in srgb, var(--brand-500) 28%, transparent); border-radius:20px; background:linear-gradient(135deg, color-mix(in srgb, var(--brand-500) 11%, var(--surface-raised)), var(--surface-raised)); }
    .rs--mobile .brain-hero { flex-direction:column; align-items:flex-start; }
    .rs .brain-orb { width:64px; height:64px; flex-shrink:0; border-radius:18px; display:flex; align-items:center; justify-content:center; color:#fff; background:linear-gradient(135deg, var(--brand-500), #6f93ff); box-shadow:0 8px 26px rgba(79,124,255,.32); }
    .rs .brain-orb svg { width:32px; height:32px; }
    /* Cerebro 3D (WebGL): panel oscuro; el canvas (lazy) lo cubre. Si no carga, queda el orb. */
    .rs .brain3d-stage { position:relative; flex:0 0 300px; height:210px; border-radius:18px; overflow:hidden; background:radial-gradient(120% 120% at 30% 25%, #1a2150 0%, #0e1230 48%, #080a1c 100%); box-shadow:0 14px 40px -20px rgba(20,28,80,.6); }
    .rs--mobile .brain3d-stage { flex:1 1 auto; width:100%; height:200px; }
    .rs .brain3d-stage canvas { display:block; position:absolute; inset:0; width:100%!important; height:100%!important; }
    .rs .brain3d-fallback { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); }
    .rs .brain3d-stage:has(canvas) .brain3d-fallback { display:none; }   /* 3D montado → fuera el orb */
    /* Capa "alimentar al cerebro": toast flotante "+1 [tipo]" cuando una señal real aterriza */
    .rs .brain-feed-pop { position:absolute; left:50%; bottom:16px; transform:translateX(-50%); z-index:3; pointer-events:none;
      font-family:var(--font-mono); font-size:12px; font-weight:700; letter-spacing:.02em; color:#fff; white-space:nowrap;
      padding:5px 11px; border-radius:99px; background:rgba(79,124,255,.92); box-shadow:0 6px 18px -6px rgba(79,124,255,.7);
      animation:rsFeedPop 1.4s var(--ease-out) forwards; }
    .rs .brain-feed-pop.bf-comp { background:rgba(166,140,250,.92); box-shadow:0 6px 18px -6px rgba(166,140,250,.7); }
    .rs .brain-feed-pop.bf-guio { background:rgba(245,168,61,.95); box-shadow:0 6px 18px -6px rgba(245,168,61,.7); }
    .rs .brain-feed-pop.bf-metr { background:rgba(51,212,153,.95); box-shadow:0 6px 18px -6px rgba(51,212,153,.7); }
    @keyframes rsFeedPop {
      0% { opacity:0; transform:translateX(-50%) translateY(10px) scale(.85); }
      18% { opacity:1; transform:translateX(-50%) translateY(0) scale(1); }
      70% { opacity:1; transform:translateX(-50%) translateY(-6px) scale(1); }
      100% { opacity:0; transform:translateX(-50%) translateY(-26px) scale(.96); }
    }
    /* bump del contador de la fuente al recibir su señal */
    .rs .brain-src-n.bump { animation:rsCountBump .6s var(--ease-out); }
    @keyframes rsCountBump {
      0% { transform:scale(1); }
      40% { transform:scale(1.28); color:var(--brand-500); }
      100% { transform:scale(1); }
    }
    @media (prefers-reduced-motion: reduce){
      .rs .brain-feed-pop { animation:none; opacity:1; }
      .rs .brain-src-n.bump { animation:none; }
    }
    /* Brain «Entrenar» (inversión): valora hooks 👍/👎. */
    .rs .bt-wrap { margin:4px 0 20px; }
    /* Fathom 17/06: toggle hooks/guiones + flujo "¿cómo lo dirías?" */
    .rs .bt-modes { display:inline-flex; gap:4px; padding:3px; border-radius:10px; background:var(--surface-raised); border:1px solid var(--border-default); margin:2px 0 10px; }
    .rs .bt-mode { display:inline-flex; align-items:center; gap:6px; padding:6px 13px; border-radius:7px; border:none; background:transparent; color:var(--text-tertiary); font:inherit; font-size:12.5px; font-weight:600; cursor:pointer; transition:background .15s, color .15s; }
    .rs .bt-mode svg { width:14px; height:14px; }
    .rs .bt-mode.on { background:var(--brand-500); color:#fff; }
    .rs .bt-improve { display:flex; flex-direction:column; gap:9px; }
    .rs .bt-suggest { width:100%; resize:vertical; min-height:46px; padding:10px 12px; border-radius:11px; border:1px solid var(--border-strong); background:var(--surface-base); color:var(--text-primary); font:inherit; font-size:14px; }
    .rs .bt-suggest:focus { outline:none; border-color:var(--brand-500); }
    .rs .bt-skip { flex:0 0 auto; min-width:90px; }
    .rs .bt-skip:hover { border-color:var(--border-strong); color:var(--text-secondary); }
    .rs .bt-load, .rs .bt-done { font-size:13.5px; color:var(--text-secondary); padding:14px 16px; border:1px solid var(--border-default); border-radius:14px; background:var(--surface-raised); display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
    .rs .bt-done.bt-locked { color:var(--success-fg, #22c55e); border-color:color-mix(in srgb, var(--success-fg, #22c55e) 35%, transparent); background:color-mix(in srgb, var(--success-fg, #22c55e) 8%, transparent); }
    .rs .bt-done.bt-locked b { color:var(--text-primary); }
    .rs .bt-card { border:1px solid color-mix(in srgb, var(--brand-500) 24%, transparent); border-radius:16px; padding:18px; background:linear-gradient(135deg, color-mix(in srgb, var(--brand-500) 8%, var(--surface-raised)), var(--surface-raised)); }
    .rs .bt-kind { font-family:var(--font-mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--brand-400); font-weight:600; }
    .rs .bt-text { font-size:18px; font-weight:600; line-height:1.35; margin:8px 0 16px; color:var(--text-primary); }
    .rs .bt-row { display:flex; gap:10px; }
    .rs .bt-btn { flex:1; display:flex; align-items:center; justify-content:center; gap:7px; padding:12px; border-radius:12px; font-weight:600; font-size:14px; cursor:pointer; border:1px solid var(--border-strong); background:var(--surface-base); color:var(--text-primary); transition:transform .12s, border-color .15s, color .15s; }
    .rs .bt-btn:active { transform:scale(.97); }
    .rs .bt-no:hover { border-color:#ef4444; color:#ef4444; }
    .rs .bt-yes { background:linear-gradient(90deg, var(--brand-500), #6f93ff); color:#fff; border-color:transparent; }
    .rs .bt-yes:hover { filter:brightness(1.06); }
    .rs .bt-prog { font-family:var(--font-mono); font-size:11px; color:var(--text-tertiary); margin-top:12px; }
    /* Tinder de guiones (Fathom 18/06): reusa .bt-card; intro + 2ª línea del guion. */
    .rs .gt-intro { border:1px dashed color-mix(in srgb, var(--brand-500) 32%, transparent); border-radius:16px; padding:16px 18px; background:color-mix(in srgb, var(--brand-500) 5%, var(--surface-raised)); }
    .rs .gt-intro-t { font-size:14px; line-height:1.45; color:var(--text-secondary); margin:0 0 12px; }
    .rs .gt-intro-t b { color:var(--text-primary); }
    .rs .gt-beat { font-size:13.5px; line-height:1.4; color:var(--text-secondary); margin:-6px 0 16px; padding-left:10px; border-left:2px solid var(--border-strong); }
    /* Seed del radar (SPEC #3): aviso «esto petó en tu nicho» mientras no hay competidores. */
    .rs .seed-banner { display:flex; align-items:center; gap:12px; margin:0 0 14px; padding:12px 16px; border-radius:14px; border:1px dashed color-mix(in srgb, var(--brand-500) 34%, transparent); background:color-mix(in srgb, var(--brand-500) 6%, var(--surface-raised)); font-size:13.5px; line-height:1.4; color:var(--text-secondary); }
    .rs .seed-banner > svg { flex-shrink:0; color:var(--brand-500); }
    .rs .seed-banner b { color:var(--text-primary); }
    .rs .seed-banner > span { flex:1; }
    .rs .seed-banner .btn { flex-shrink:0; }
    /* FIX2 · añadir competidor inline desde el Radar + estado "analizando" */
    .rs .comp-add { display:flex; align-items:center; gap:8px; margin:0 0 14px; padding:8px 10px 8px 14px; border-radius:13px; border:1px solid var(--brand-500); background:var(--surface-raised); }
    .rs .comp-add.hidden { display:none; }
    .rs .comp-add-at { font-family:var(--font-mono); color:var(--text-tertiary); font-size:15px; }
    .rs .comp-add-input { flex:1; min-width:0; height:34px; border:none; background:transparent; color:var(--text-primary); font:inherit; font-size:14px; outline:none; }
    .rs .comp-add-input::placeholder { color:var(--text-tertiary); }
    .rs .comp-add-x { flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border:none; background:transparent; color:var(--text-tertiary); cursor:pointer; border-radius:8px; }
    .rs .comp-add-x:hover { color:var(--text-primary); background:var(--surface-overlay); }
    .rs .analyzing-banner { display:flex; align-items:center; gap:11px; margin:0 0 14px; padding:11px 16px; border-radius:14px; border:1px solid color-mix(in srgb, var(--brand-500) 30%, transparent); background:color-mix(in srgb, var(--brand-500) 7%, var(--surface-raised)); font-size:13px; line-height:1.4; color:var(--text-secondary); }
    .rs .analyzing-banner b { color:var(--text-primary); }
    .rs .analyzing-spin { flex-shrink:0; width:15px; height:15px; border-radius:99px; border:2px solid color-mix(in srgb, var(--brand-500) 30%, transparent); border-top-color:var(--brand-500); animation:rsSpin .8s linear infinite; }
    @keyframes rsSpin { to { transform:rotate(360deg); } }
    .rs .brain-hero-body { flex:1; min-width:0; }
    .rs .brain-lvl { font-size:12px; text-transform:uppercase; letter-spacing:.08em; font-weight:700; color:var(--brand-400); margin-bottom:4px; }
    .rs .brain-voiceline { font-family:var(--font-display); font-size:30px; line-height:1; }
    .rs .brain-voiceline b { color:var(--brand-500); }
    .rs .brain-next { font-size:13px; color:var(--text-secondary); }
    .rs .brain-next b { color:var(--text-primary); }
    /* B2 (cerebro-addreel): checklist visible del siguiente nivel + por qué importa */
    .rs .brain-reqs { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
    .rs .brain-req { display:inline-flex; align-items:center; gap:6px; font-size:12.5px; padding:5px 11px; border-radius:99px; border:1px solid var(--border-default); color:var(--text-secondary); background:var(--surface-raised); }
    .rs .brain-req svg { width:13px; height:13px; }
    .rs .brain-req.ok { border-color:color-mix(in srgb, var(--success-fg) 38%, transparent); color:var(--success-fg); background:color-mix(in srgb, var(--success-fg) 9%, transparent); }
    .rs .brain-req-o { font-size:11px; opacity:.7; }
    .rs .brain-why { font-size:12px; color:var(--text-tertiary); margin-top:10px; }
    /* Fathom 18/06: insignia Pro (nivel 4+) + nota de auto-análisis 2×/semana */
    .rs .brain-pro { display:inline-flex; align-items:center; gap:3px; margin-left:6px; padding:2px 9px; border-radius:99px; font-size:11px; font-weight:800; letter-spacing:.02em;
      color:#7a5b00; background:linear-gradient(120deg,#ffd75e,#f2a900); border:1px solid #e0980a; box-shadow:0 1px 6px rgba(240,169,0,.35); }
    .rs .brain-autonote { display:flex; align-items:flex-start; gap:7px; margin-top:11px; font-size:12.5px; line-height:1.5; color:var(--text-secondary);
      border:1px solid color-mix(in srgb, var(--brand-500) 26%, transparent); background:color-mix(in srgb, var(--brand-500) 8%, transparent); border-radius:10px; padding:9px 12px; }
    .rs .brain-autonote svg { width:15px; height:15px; flex-shrink:0; margin-top:1px; color:var(--brand-500); }
    .rs .brain-autonote b { color:var(--text-primary); }
    /* B3: pulso del orbe al subir de nivel (recompensa que SE SIENTE) */
    .rs .brain-orb.lvlup { animation:rsLvlUp 1.4s var(--ease-out); }
    @keyframes rsLvlUp {
      0% { transform:scale(1); box-shadow:0 8px 26px rgba(79,124,255,.32); }
      35% { transform:scale(1.18); box-shadow:0 0 0 14px rgba(79,124,255,.18), 0 8px 32px rgba(79,124,255,.5); }
      100% { transform:scale(1); box-shadow:0 8px 26px rgba(79,124,255,.32); }
    }
    @media (prefers-reduced-motion: reduce){ .rs .brain-orb.lvlup { animation:none; } }
    /* #2/#7: pulso de «festín» al alimentar el Cerebro (crece + vibra). */
    .rs .brain-orb.feast { animation:rsFeast 1.15s var(--ease-out); }
    @keyframes rsFeast {
      0%{transform:scale(1)} 12%{transform:scale(1.22) rotate(-3deg)} 24%{transform:scale(1.14) rotate(3deg)}
      40%{transform:scale(1.26) rotate(-2deg)} 60%{transform:scale(1.16) rotate(2deg)}
      80%{transform:scale(1.22)} 100%{transform:scale(1)}
    }
    @media (prefers-reduced-motion: reduce){ .rs .brain-orb.feast { animation:none; } }
    /* #2/#7: card «Alimenta tu Cerebro» — input + botón grande, acento de marca. */
    .rs .feedme { margin:18px 0 22px; padding:22px 24px; border-radius:20px;
      background:linear-gradient(135deg, rgba(47,91,255,.18), rgba(111,147,255,.06) 65%), var(--surface-raised);
      border:1px solid rgba(79,124,255,.4); box-shadow:0 10px 34px rgba(47,91,255,.16); }
    .rs .feedme-eyebrow { display:inline-flex; align-items:center; gap:6px; font-family:var(--font-mono); font-size:10px; letter-spacing:.14em; font-weight:700; color:var(--brand-300,#6E92FF); }
    .rs .feedme-eyebrow svg { width:13px; height:13px; }
    .rs .feedme-t { font-family:var(--font-display); font-weight:700; font-size:21px; color:var(--text-primary); margin-top:7px; line-height:1.15; }
    .rs .feedme-d { font-size:14px; color:var(--text-secondary); margin-top:5px; line-height:1.5; }
    .rs .feedme-input { width:100%; margin-top:14px; padding:13px 15px; border-radius:13px; resize:vertical; min-height:54px;
      background:var(--surface-sunken); border:1px solid var(--border-default); color:var(--text-primary); font-size:15px; font-family:inherit; line-height:1.45; }
    .rs .feedme-input:focus { outline:none; border-color:var(--brand-500,#2F5BFF); box-shadow:0 0 0 3px rgba(47,91,255,.18); }
    .rs .feedme-cta { width:100%; margin-top:13px; }
    /* Chips de las formas de alimentar (cada una su % y CD) */
    .rs .feed-chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
    .rs .feed-chip { display:inline-flex; align-items:center; gap:6px; padding:8px 12px; border-radius:999px; cursor:pointer; font-size:13px; font-family:inherit;
      background:var(--surface-sunken); border:1px solid var(--border-default); color:var(--text-secondary); transition:border-color .15s, background .15s, color .15s; }
    .rs .feed-chip:hover { border-color:var(--brand-500,#2F5BFF); color:var(--text-primary); }
    .rs .feed-chip b { color:var(--brand-600,#2F5BFF); font-weight:800; font-family:var(--font-mono); }
    .rs .feed-chip.on { border-color:var(--brand-500,#2F5BFF); background:color-mix(in srgb,var(--brand-500) 12%, transparent); color:var(--text-primary); }
    .rs .feed-chip.done { opacity:.55; }
    .rs .feed-chip.done b { color:var(--success-fg,#3FE0A0); }
    .rs .feed-chip svg { width:13px; height:13px; color:var(--success-fg,#3FE0A0); }
    .rs .brain-sources { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
    .rs--mobile .brain-sources { grid-template-columns:repeat(2,1fr); }
    .rs .brain-src { position:relative; padding:16px 14px; border:1px solid var(--border-default); border-radius:14px; background:var(--surface-raised); overflow:hidden; }
    .rs .brain-src::before { content:""; position:absolute; top:0; left:0; bottom:0; width:3px; background:var(--c); }
    .rs .brain-src-n { font-family:var(--font-display); font-size:30px; line-height:1; margin-bottom:4px; }
    .rs .brain-src-t { font-size:13px; font-weight:600; margin-bottom:3px; }
    .rs .brain-src-d { font-size:11.5px; color:var(--text-tertiary); line-height:1.35; }
    .rs .brain-voice { border:1px solid var(--border-default); border-radius:16px; background:var(--surface-raised); overflow:hidden; }
    .rs .voice-row { display:flex; gap:14px; padding:14px 16px; border-bottom:1px solid var(--border-subtle); }
    .rs .voice-row:last-child { border-bottom:none; }
    .rs .voice-k { width:90px; flex-shrink:0; font-size:12px; text-transform:uppercase; letter-spacing:.05em; font-weight:700; color:var(--text-tertiary); padding-top:2px; }
    .rs .voice-val { flex:1; min-width:0; font-size:14px; line-height:1.5; color:var(--text-primary); display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
    .rs .voice-chip { display:inline-block; padding:3px 10px; border-radius:99px; background:color-mix(in srgb, var(--brand-500) 12%, transparent); color:var(--brand-300); font-size:13px; font-family:var(--font-mono); }
    .rs[data-theme="light"] .voice-chip { color:var(--brand-700); }
    /* captura del moat (Cerebro) */
    .rs .voice-capture { border:1px solid color-mix(in srgb, var(--brand-500) 30%, transparent); border-radius:16px; padding:18px 20px; background:linear-gradient(135deg, color-mix(in srgb, var(--brand-500) 9%, var(--surface-raised)), var(--surface-raised)); margin-bottom:18px; }
    /* Voz AUTO: vía destacada cuando hay reels publicados de los que derivar. */
    .rs .voice-auto { display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:13px 15px; margin-bottom:14px; border:1px solid color-mix(in srgb, var(--brand-500) 45%, transparent); border-radius:13px; background:color-mix(in srgb, var(--brand-500) 12%, var(--surface-base)); }
    .rs .voice-auto .va-text { flex:1; min-width:200px; font-size:13.5px; line-height:1.45; color:var(--text-secondary); }
    .rs .voice-auto .va-text b { color:var(--text-primary); }
    .rs .voice-capture .vc-lead { margin:0 0 12px; font-size:14px; line-height:1.5; color:var(--text-secondary); } .rs .voice-capture .vc-lead b { color:var(--text-primary); }
    .rs .voice-capture .vc-ta { width:100%; min-height:110px; resize:vertical; padding:12px 14px; border:1px solid var(--border-default); border-radius:12px; background:var(--surface-base); color:var(--text-primary); font:inherit; font-family:var(--font-body); font-size:14px; outline:none; margin-bottom:12px; }
    .rs .voice-capture .vc-ta:focus { border-color:color-mix(in srgb, var(--brand-500) 50%, transparent); }
    .rs .voice-capture .vc-hint { margin:10px 0 0; font-size:12px; color:var(--text-tertiary); }
    /* B6+T1 (IDI): onboarding de voz en el Dashboard como BANNER delgado (no card):
       una línea + CTA secundario que lleva al Cerebro. No empuja la Oportunidad #1. */
    .rs .voice-banner { display:flex; align-items:center; gap:12px; padding:10px 14px; margin-bottom:18px; border:1px solid color-mix(in srgb, var(--brand-500) 28%, transparent); border-radius:14px; background:linear-gradient(135deg, color-mix(in srgb, var(--brand-500) 8%, var(--surface-raised)), var(--surface-raised)); }
    .rs .voice-banner .vb-ic { width:30px; height:30px; flex-shrink:0; border-radius:9px; display:flex; align-items:center; justify-content:center; color:#fff; background:linear-gradient(135deg, var(--brand-500), #6f93ff); }
    .rs .voice-banner .vb-ic svg { width:16px; height:16px; }
    .rs .voice-banner .vb-text { flex:1; min-width:0; font-size:13.5px; line-height:1.4; color:var(--text-secondary); }
    .rs .voice-banner .vb-text b { color:var(--text-primary); }
    .rs .voice-banner .btn { flex-shrink:0; }
    .rs--mobile .voice-banner { flex-wrap:wrap; }
    .rs--mobile .voice-banner .btn { width:100%; }
    .rs .brain-comps { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
    .rs--mobile .brain-comps { grid-template-columns:1fr; }
    .rs .brain-comp { display:flex; align-items:center; flex-wrap:wrap; gap:11px; padding:12px 14px; border:1px solid var(--border-default); border-radius:12px; background:var(--surface-raised); }
    .rs .brain-comp-h { font-size:13.5px; font-weight:600; }
    .rs .brain-comp-n { margin-left:auto; font-size:12px; color:var(--text-tertiary); }
    /* Fathom 17/06: miniaturas de vídeos del competidor (segunda línea) */
    .rs .comp-thumbs { display:flex; gap:7px; width:100%; margin-top:2px; }
    .rs .comp-thumb { position:relative; flex:1 1 0; max-width:84px; aspect-ratio:9/14; border-radius:8px; overflow:hidden; background:var(--surface-overlay); border:1px solid var(--border-subtle); }
    .rs .comp-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
    .rs .comp-thumb .ct-dur { position:absolute; bottom:3px; right:3px; font-family:var(--font-mono); font-size:9px; font-weight:600; color:#fff; background:rgba(0,0,0,.6); padding:1px 4px; border-radius:4px; }
    .rs .comp-thumb .ct-ph { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:16px; color:rgba(255,255,255,.85); }
    /* T3: dejar de seguir competidor. */
    .rs .brain-comp-x { flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:8px; border:1px solid transparent; background:transparent; color:var(--text-tertiary); cursor:pointer; transition:color .15s, border-color .15s, background .15s; }
    .rs .brain-comp-x:hover { color:#e0556b; border-color:color-mix(in srgb, #e0556b 45%, transparent); background:color-mix(in srgb, #e0556b 8%, transparent); }
    .rs .brain-comp-x svg { width:15px; height:15px; }
    /* Gestión de competidores plegada en el Radar (borrar reusa untrack). */
    .rs .comp-manage { margin:4px 0 14px; border:1px solid var(--border-default); border-radius:12px; background:var(--surface-raised); overflow:hidden; }
    .rs .comp-manage > summary { list-style:none; cursor:pointer; padding:11px 14px; font-size:13px; font-weight:600; color:var(--text-secondary); display:flex; align-items:center; gap:8px; user-select:none; }
    .rs .comp-manage > summary::-webkit-details-marker { display:none; }
    .rs .comp-manage > summary::before { content:"\203A"; display:inline-block; transition:transform .15s ease; color:var(--text-tertiary); font-size:15px; }
    .rs .comp-manage[open] > summary::before { transform:rotate(90deg); }
    .rs .comp-manage-list { display:flex; flex-direction:column; gap:8px; padding:2px 12px 12px; }
    /* Reorganización 04/07: secciones plegadas genéricas (reusan .comp-manage) + fusión
       «Gestiona competidores». El sub del summary va a la derecha (summary es flex). */
    .rs .rs-fold-sub { margin-left:auto; font-weight:500; font-size:12px; color:var(--text-tertiary); }
    .rs .rs-fold-body { padding:2px 12px 12px; }
    .rs .rs-fold-body .rcb, .rs .rs-fold-body .plays, .rs .rs-fold-body .whale, .rs .rs-fold-body .ig-connect { margin:0; }
    .rs .mc-addwrap { padding:2px 12px 8px; }
    .rs .mc-addrow { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
    .rs--mobile .brain-comp-x { width:44px; height:44px; }
    /* T2: lista inline de asistentes en Cerebro. */
    .rs .brain-asst-list { display:flex; flex-direction:column; gap:10px; }
    .rs .brain-asst-item { display:flex; align-items:center; gap:12px; padding:12px 14px; border:1px solid var(--border-default); border-radius:12px; background:var(--surface-raised); }
    .rs .brain-asst-meta { flex:1; min-width:0; }
    .rs .brain-asst-name { font-size:13.5px; font-weight:600; display:flex; align-items:center; gap:8px; }
    .rs .brain-asst-prev { font-size:12px; color:var(--text-tertiary); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin-top:2px; }
    .rs .brain-asst-act { flex-shrink:0; height:32px; padding:0 12px; border-radius:8px; border:1px solid var(--border-default); background:transparent; color:var(--text-secondary); font-size:12.5px; font-family:var(--font-body); cursor:pointer; transition:border-color .15s, color .15s; }
    .rs .brain-asst-act:hover { border-color:color-mix(in srgb, var(--brand-500) 50%, transparent); color:var(--text-primary); }
    .rs .brain-asst-act.del:hover { border-color:color-mix(in srgb, #e0556b 55%, transparent); color:#e0556b; }
    .rs--mobile .brain-asst-act { height:40px; }

    /* ════════════════════════════════════════════════════════════════
       v2 "SIGNAL" — layout consola: rail 64px + command bar + statbar +
       feature 3-col + feed tipo tabla. Sobrescribe el layout flex viejo
       de la isla. Acento azul vía --brand-500. Cero serif, datos en mono.
       ════════════════════════════════════════════════════════════════ */
    .rs.app { display:grid; grid-template-columns:64px 1fr; overflow:hidden; position:relative; }
    /* ── RAIL lateral ── */
    .rs .rail { position:relative; display:flex; flex-direction:column; align-items:center; gap:9px; padding:16px 0; background:var(--surface-base); border-right:1px solid var(--border-subtle); z-index:8; height:100%; }
    .rs .rail-logo { width:32px; height:32px; margin-bottom:10px; display:block; background:url("/static/img/branding/isotipo-white-128.png") center/contain no-repeat; }
    .rs[data-theme="light"] .rail-logo { background-image:url("/static/img/branding/isotipo-color-128.png"); }
    .rs .rail-btn { position:relative; width:44px; height:44px; border-radius:13px; display:flex; align-items:center; justify-content:center; background:transparent; border:none; color:var(--text-tertiary); cursor:pointer; transition:color .14s var(--ease), background .14s var(--ease); }
    .rs .rail-btn:hover { color:var(--text-secondary); background:var(--surface-raised); }
    .rs .rail-btn.on { color:var(--text-primary); background:var(--surface-overlay); }
    .rs .rail-btn.on::before { content:""; position:absolute; left:-16px; top:15px; bottom:15px; width:3px; border-radius:0 3px 3px 0; background:var(--brand-500); opacity:.9; }
    .rs .rail-btn svg { width:20px; height:20px; }
    .rs .rail-btn .tip { position:absolute; left:54px; top:50%; transform:translateY(-50%) translateX(-4px); padding:5px 9px; border-radius:6px; background:var(--surface-overlay); border:1px solid var(--border-strong); color:var(--text-primary); font-size:12px; font-weight:500; white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .14s var(--ease), transform .14s var(--ease); box-shadow:var(--shadow-md); z-index:20; font-family:var(--font-body); }
    .rs .rail-btn:hover .tip { opacity:1; transform:translateY(-50%) translateX(0); }
    .rs .rail-spacer { flex:1; }
    .rs .rail-ava { width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--surface-overlay); border:1px solid var(--border-strong); color:var(--text-primary); font-weight:600; font-size:12px; font-family:var(--font-mono); }
    /* Cuenta: botón avatar (abajo del rail) + menú (email · plan · Configuración · Cerrar sesión) */
    .rs .rail-acct { width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--surface-overlay); border:1px solid var(--border-strong); color:var(--text-primary); font-weight:600; font-size:12px; font-family:var(--font-mono); cursor:pointer; transition:border-color .14s var(--ease), background .14s var(--ease); }
    .rs .rail-acct:hover, .rs .rail-acct.on { border-color:var(--brand-500); background:var(--surface-raised); }
    .rs .rs-acct-backdrop { position:fixed; inset:0; z-index:95; background:transparent; }
    .rs .rs-acct-menu { position:absolute; left:72px; bottom:12px; z-index:100; min-width:240px; background:var(--surface-overlay); border:1px solid var(--border-default); border-radius:14px; box-shadow:var(--shadow-lg); padding:6px; }
    .rs .rs-acct-head { display:flex; align-items:center; gap:10px; padding:10px 12px 12px; border-bottom:1px solid var(--border-subtle); margin-bottom:4px; }
    .rs .rs-acct-av { width:34px; height:34px; flex:0 0 34px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--surface-raised); border:1px solid var(--border-strong); color:var(--text-primary); font-weight:600; font-size:12px; font-family:var(--font-mono); }
    .rs .rs-acct-id { min-width:0; display:flex; flex-direction:column; gap:3px; }
    .rs .rs-acct-email { font-size:13px; font-weight:600; color:var(--text-primary); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:170px; }
    .rs .rs-acct-menu .brand-opt svg { width:16px; height:16px; flex:0 0 16px; }
    .rs .rs-acct-logout { color:#f87171; }
    .rs .rs-acct-logout:hover { background:color-mix(in srgb, #f87171 12%, transparent); }
    /* ── WORK column ── */
    .rs .work { min-width:0; min-height:0; display:flex; flex-direction:column; height:100%; }
    /* ── Host de sección legacy (Analizar/Configuración) reparentada: overlay sobre
       la columna de trabajo dejando visible el rail (64px). Es un nodo estable, no
       lo toca el re-render de #rsView. ── */
    .rs .rs-legacy { position:absolute; inset:0 0 0 64px; overflow-y:auto; background:var(--surface-base); z-index:9; }
    .rs .rs-legacy-bar { position:sticky; top:0; z-index:2; padding:12px 16px; background:color-mix(in srgb, var(--surface-base) 92%, transparent); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border-bottom:1px solid var(--border-subtle); }
    /* ── COMMAND BAR ── */
    .rs .cmd { position:sticky; top:0; z-index:7; display:flex; align-items:center; gap:14px; height:58px; padding:0 26px; background:color-mix(in srgb, var(--surface-base) 84%, transparent); backdrop-filter:saturate(1.3) blur(14px); -webkit-backdrop-filter:saturate(1.3) blur(14px); border-bottom:1px solid var(--border-subtle); }
    /* Overlay de nivel del Cerebro: centrado en la barra (no a un lado) */
    .rs .cmd-brain-center { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:1; pointer-events:none; }
    .rs .cmd-brain-center .brain-badge, .rs .cmd-brain-center .brain-cmd { pointer-events:auto; }
    /* Topbar a anchos medios (≤1360): el HUD del Cerebro (centrado absoluto) chocaba
       con "Apunta una idea" + switcher de planes + pill. Lo pasamos a FLUJO, colapsamos
       el label de idea a solo icono y permitimos wrap → nunca se solapan (1024–1280). */
    @media (max-width:1360px){
      .rs .cmd { flex-wrap:wrap; height:auto; min-height:58px; padding-top:9px; padding-bottom:9px; row-gap:9px; }
      .rs .cmd-brain-center { position:static; left:auto; top:auto; transform:none; pointer-events:auto; }
      .rs .cmd-idea .cmd-idea-t { display:none; }
      .rs .cmd-idea { padding:0 11px; }
    }
    .rs--mobile .cmd-brain-center { position:static; transform:none; }
    .rs .cmd .brand-switch { display:inline-flex; align-items:center; gap:10px; height:36px; padding:0 12px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:8px; color:var(--text-primary); font:inherit; font-family:var(--font-body); font-weight:600; font-size:14px; cursor:pointer; transition:border-color .14s var(--ease); }
    .rs .cmd .brand-switch:hover { border-color:var(--border-strong); }
    .rs .cmd .brand-static { display:inline-flex; align-items:center; gap:10px; height:36px; padding:0 12px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:8px; color:var(--text-primary); font-family:var(--font-body); font-weight:600; font-size:14px; }
    .rs .cmd .brand-dot { width:8px; height:8px; border-radius:2px; flex-shrink:0; }
    .rs .cmd .brand-chev { color:var(--text-tertiary); display:flex; } .rs .cmd .brand-chev svg { width:15px; height:15px; }
    .rs .cmd .brand-menu { position:absolute; top:50px; left:26px; min-width:220px; background:var(--surface-overlay); border:1px solid var(--border-strong); border-radius:10px; box-shadow:var(--shadow-lg); padding:6px; z-index:30; }
    .rs .cmd .brand-opt { display:flex; align-items:center; gap:10px; width:100%; padding:9px 11px; border:none; background:transparent; color:var(--text-primary); font:inherit; font-family:var(--font-body); font-size:13.5px; border-radius:7px; cursor:pointer; text-align:left; }
    .rs .cmd .brand-opt:hover { background:var(--surface-raised); }
    .rs .cmd .brand-opt .brand-lvl { margin-left:auto; font-family:var(--font-mono); font-size:11px; color:var(--text-tertiary); }
    .rs .cmd .brand-opt.add { color:var(--text-secondary); }
    .rs .crumb { font-family:var(--font-mono); font-size:12px; letter-spacing:.04em; text-transform:uppercase; color:var(--text-tertiary); }
    .rs .cmd .grow { flex:1; }
    .rs .searchbox { display:flex; align-items:center; gap:9px; height:36px; padding:0 13px; min-width:230px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:8px; color:var(--text-tertiary); font-size:13.5px; }
    .rs .searchbox svg { width:16px; height:16px; }
    .rs .searchbox span:first-of-type { white-space:nowrap; }
    .rs .searchbox .kbd { margin-left:auto; font-family:var(--font-mono); font-size:11px; padding:1px 6px; border-radius:4px; border:1px solid var(--border-strong); color:var(--text-tertiary); }
    .rs .cmd-streak { display:inline-flex; align-items:center; gap:6px; font-size:13px; color:var(--text-secondary); white-space:nowrap; } .rs .cmd-streak svg { color:var(--brand-500); width:15px; height:15px; }
    /* T1: captura global de ideas en la command bar. */
    .rs .cmd-idea { display:inline-flex; align-items:center; gap:7px; height:36px; padding:0 13px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:8px; color:var(--text-secondary); font-size:13.5px; font-family:var(--font-body); cursor:pointer; white-space:nowrap; transition:border-color .15s, color .15s; }
    .rs .cmd-idea:hover { border-color:color-mix(in srgb, var(--brand-500) 50%, transparent); color:var(--text-primary); }
    .rs .cmd-idea .cmd-idea-bulb { display:flex; color:var(--brand-500); }
    .rs .cmd-idea .cmd-idea-bulb svg { width:16px; height:16px; }
    .rs .cmd .spark.pill-stat { display:inline-flex; align-items:center; gap:7px; height:34px; padding:0 12px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:8px; font-size:13px; color:var(--text-secondary); white-space:nowrap; }
    .rs .cmd .spark.pill-stat svg { width:15px; height:15px; color:var(--brand-500); }
    /* Pills clicables (prueba → Cerebro, créditos → planes): afordancia de clic */
    .rs .cmd .spark.pill-stat[data-act] { cursor:pointer; transition:border-color .15s, background .15s; }
    .rs .cmd .spark.pill-stat[data-act]:hover { border-color:var(--brand-500); background:var(--surface-overlay); }
    .rs .cmd .spark .num { font-family:var(--font-mono); color:var(--text-primary); font-weight:500; }
    /* ── Chip del Cerebro (global, todas las páginas) ── */
    .rs .cmd .brain-cmd { display:inline-flex; align-items:center; gap:7px; height:34px; padding:0 12px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:8px; font-size:13px; color:var(--text-secondary); white-space:nowrap; cursor:pointer; transition:border-color .15s, background .15s, color .15s; }
    .rs .cmd .brain-cmd:hover { border-color:var(--brand-500); background:var(--surface-overlay); color:var(--text-primary); }
    .rs .cmd .brain-cmd .bcm-ic { display:flex; color:var(--brand-500); }
    .rs .cmd .brain-cmd .bcm-ic svg { width:15px; height:15px; }
    .rs .cmd .brain-cmd b { color:var(--brand-600); font-weight:800; font-family:var(--font-mono); }
    /* Estado «nivel listo»: botón pulsante de acción */
    .rs .cmd .brain-cmd-up { color:#fff; border-color:transparent; background:linear-gradient(135deg, var(--brand-500), #6f93ff); font-weight:700; box-shadow:0 4px 16px rgba(79,124,255,.34); animation:rsBcmPulse 1.7s ease-in-out infinite; }
    .rs .cmd .brain-cmd-up:hover { color:#fff; filter:brightness(1.06); }
    .rs .cmd .brain-cmd-up .bcm-ic { color:#fff; }
    .rs .cmd .brain-cmd-up .bcm-up { font-size:12.5px; }
    @keyframes rsBcmPulse { 0%,100%{ box-shadow:0 4px 16px rgba(79,124,255,.30); } 50%{ box-shadow:0 6px 22px rgba(79,124,255,.55); } }
    @media (prefers-reduced-motion: reduce){ .rs .cmd .brain-cmd-up { animation:none; } }
    @media (max-width:720px){ .rs .cmd .brain-cmd .bcm-t { display:none; } }
    /* ── Pantalla de subida de nivel del Cerebro (overlay temático POR NIVEL, de Claude design) ── */
    .rs .rsx-overlay { --rsx-accent:var(--brand-500); --rsx-accent-soft:rgba(79,124,255,.32); --rsx-surface-2:#1b1f29;
      position:fixed; inset:0; z-index:300; display:flex; align-items:center; justify-content:center; text-align:center; padding:24px; overflow:hidden;
      background:radial-gradient(120% 90% at 50% 42%, color-mix(in oklab,var(--rsx-accent) 14%,#06070b), #06070b 70%); animation:rsFadeIn .35s ease-out; }
    .rs .rsx-fx { position:absolute; top:50%; left:50%; width:0; height:0; z-index:3; pointer-events:none; }
    .rs .rsx-stage { position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; width:100%; max-width:520px; }
    .rs .rsx-orb { position:relative; width:160px; height:160px; margin-bottom:30px; display:flex; align-items:center; justify-content:center; }
    .rs .rsx-orb__core { width:118px; height:118px; border-radius:38px; position:relative; z-index:4; display:flex; align-items:center; justify-content:center; color:#fff;
      background:linear-gradient(150deg, color-mix(in oklab,var(--rsx-accent) 78%,#fff 6%), color-mix(in oklab,var(--rsx-accent) 50%,#000));
      box-shadow:0 22px 70px var(--rsx-accent-soft), inset 0 0 30px rgba(255,255,255,.12); animation:rsxOrbPop 2.6s cubic-bezier(.2,.8,.2,1) both; }
    .rs .rsx-orb__core svg { width:62px; height:62px; color:#fff; filter:drop-shadow(0 2px 8px rgba(0,0,0,.3)); }
    @keyframes rsxOrbPop { 0%{transform:scale(.5);} 16%{transform:scale(1.16);} 30%{transform:scale(.97);} 44%{transform:scale(1.02);} 100%{transform:scale(1);} }
    .rs .rsx-orb__badge { position:absolute; z-index:6; bottom:-6px; right:-6px; width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center;
      font-family:var(--font-display-2); font-weight:700; font-size:20px; color:#fff;
      background:linear-gradient(140deg,var(--rsx-accent),color-mix(in oklab,var(--rsx-accent) 55%,#000)); border:3px solid #06070b; box-shadow:0 8px 22px var(--rsx-accent-soft); animation:rsxBadgeIn .6s .5s both cubic-bezier(.2,1.4,.3,1); }
    @keyframes rsxBadgeIn { from{transform:scale(.4) rotate(-30deg);} to{transform:scale(1) rotate(0);} }
    .rs .rsx-ring { position:absolute; top:50%; left:50%; width:118px; height:118px; border-radius:50%; border:2px solid var(--rsx-accent); transform:translate(-50%,-50%) scale(1); opacity:0; animation:rsxRing 2.2s ease-out forwards; }
    @keyframes rsxRing { 0%{opacity:.7;transform:translate(-50%,-50%) scale(.7);} 100%{opacity:0;transform:translate(-50%,-50%) scale(3.4);} }
    .rs .rsx-particle { position:absolute; top:50%; left:50%; width:8px; height:8px; border-radius:99px; background:var(--rsx-accent); box-shadow:0 0 10px var(--rsx-accent); animation:rsxParticle var(--d,1.4s) ease-out forwards; --tx:0px; --ty:0px; }
    @keyframes rsxParticle { 0%{opacity:0;transform:translate(-50%,-50%) scale(.4);} 20%{opacity:1;} 100%{opacity:0;transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) scale(.6);} }
    .rs .rsx-stage__eyebrow { font-family:var(--font-mono); font-size:12px; letter-spacing:.28em; text-transform:uppercase; color:var(--rsx-accent); margin:0 0 14px; opacity:0; animation:rsxUp .6s .55s both; }
    .rs .rsx-stage__title { font-family:var(--font-display-2); font-weight:700; font-size:clamp(34px,9vw,58px); letter-spacing:-.02em; line-height:1; margin:0;
      background:linear-gradient(180deg,#fff,color-mix(in oklab,var(--rsx-accent) 60%,#fff)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; opacity:0; animation:rsxUp .6s .68s both; }
    .rs .rsx-stage__sub { font-size:clamp(14px,3.6vw,17px); color:#c4cad6; line-height:1.5; max-width:380px; margin:16px auto 0; opacity:0; animation:rsxUp .6s .82s both; }
    .rs .rsx-stage__btn { margin-top:30px; cursor:pointer; border:none; font-family:var(--font-display-2); font-weight:600; font-size:15px; color:#fff; padding:14px 34px; border-radius:14px;
      background:linear-gradient(140deg, color-mix(in oklab,var(--rsx-accent) 85%,#fff 8%),var(--rsx-accent)); box-shadow:0 14px 34px var(--rsx-accent-soft); opacity:0; animation:rsxUp .6s .96s both; transition:transform .12s,filter .12s; }
    .rs .rsx-stage__btn:hover { filter:brightness(1.08); }
    .rs .rsx-stage__btn:active { transform:translateY(1px) scale(.98); }
    @keyframes rsxUp { from{opacity:.15;transform:translateY(12px);} to{opacity:1;transform:translateY(0);} }
    /* FX temáticos por nivel */
    .rs .rsx-tmpl { position:absolute; top:0; left:0; width:30px; height:38px; border-radius:7px; margin:-19px 0 0 -15px; border:2px solid var(--rsx-accent); background:var(--rsx-accent-soft); opacity:0; animation:rsxTmpl 2.4s cubic-bezier(.4,0,.2,1) forwards; }
    @keyframes rsxTmpl { 0%{opacity:0;transform:rotate(var(--a)) translateX(150px) rotate(calc(-1*var(--a))) scale(.6);} 25%{opacity:1;} 70%{opacity:1;transform:rotate(var(--a)) translateX(150px) rotate(calc(-1*var(--a))) scale(1);} 100%{opacity:.9;transform:translateX(0) scale(.34);} }
    .rs .rsx-steal { position:absolute; top:0; left:0; width:160px; margin:-50px 0 0 -80px; padding:12px 14px; border-radius:12px; text-align:left; background:var(--rsx-surface-2); border:1px solid var(--rsx-accent); box-shadow:0 18px 40px rgba(0,0,0,.5); opacity:0; animation:rsxSteal 2.2s cubic-bezier(.5,0,.6,1) forwards; }
    .rs .rsx-steal__t { font-family:var(--font-mono); font-size:9px; letter-spacing:.12em; color:var(--rsx-accent); }
    .rs .rsx-steal__l { height:6px; border-radius:99px; background:rgba(255,255,255,.16); margin-top:8px; }
    @keyframes rsxSteal { 0%{opacity:0;transform:translate(-220px,-120px) rotate(-12deg) scale(1);} 22%{opacity:1;} 60%{opacity:1;transform:translate(0,0) rotate(0) scale(1);} 100%{opacity:0;transform:translate(0,0) rotate(0) scale(.12);} }
    .rs .rsx-radar { position:absolute; top:0; left:0; width:300px; height:160px; margin:-80px 0 0 -150px; opacity:0; animation:rsxUp .6s .2s forwards; }
    .rs .rsx-spike { position:absolute; width:18px; height:18px; border-radius:50%; border:2px solid var(--rsx-accent); background:var(--rsx-accent); box-shadow:0 0 0 0 var(--rsx-accent); opacity:0; animation:rsxSpike 1.6s 1s ease-out forwards; }
    @keyframes rsxSpike { 0%{opacity:0;transform:scale(0);} 30%{opacity:1;transform:scale(1.3);} 45%{transform:scale(1);} 100%{opacity:1;transform:scale(1);box-shadow:0 0 0 22px transparent;} }
    .rs .rsx-shock { position:absolute; top:50%; left:50%; width:80px; height:80px; border-radius:50%; border:3px solid var(--rsx-accent); transform:translate(-50%,-50%); opacity:0; animation:rsxShock 1.6s cubic-bezier(.1,.6,.2,1) forwards; }
    @keyframes rsxShock { 0%{opacity:.9;transform:translate(-50%,-50%) scale(.2);border-width:6px;} 100%{opacity:0;transform:translate(-50%,-50%) scale(7);border-width:1px;} }
    @media (max-width:430px){ .rs .rsx-orb{width:140px;height:140px;} .rs .rsx-orb__core{width:104px;height:104px;border-radius:32px;} }
    @media (prefers-reduced-motion:reduce){ .rs .rsx-overlay *{ animation-duration:.001s !important; animation-iteration-count:1 !important; } .rs .rsx-particle,.rs .rsx-ring,.rs .rsx-shock,.rs .rsx-tmpl,.rs .rsx-steal,.rs .rsx-spike{ display:none !important; } }
    /* ── CANVAS ── */
    .rs .canvas { max-width:1180px; margin:0 auto; padding:34px 26px 120px; width:100%; }
    /* ── page head ── */
    .rs .phead { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:26px; }
    .rs .eyebrow { font-family:var(--font-mono); font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--text-tertiary); display:flex; align-items:center; gap:8px; }
    .rs .eyebrow .pip { width:6px; height:6px; border-radius:50%; background:var(--brand-500); box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-500) 22%, transparent); }
    .rs .h-title { font-family:var(--font-display-2); font-weight:600; font-size:38px; line-height:1.05; letter-spacing:-.025em; margin:12px 0 0; color:var(--text-primary); }
    .rs .h-sub { font-size:15px; color:var(--text-secondary); margin:9px 0 0; max-width:54ch; }
    .rs .h-sub b { color:var(--text-primary); font-weight:600; }
    .rs .phead-right { text-align:right; flex-shrink:0; }
    .rs .phead-right .streak { display:inline-flex; align-items:center; gap:7px; font-size:13px; color:var(--text-secondary); } .rs .phead-right .streak svg { width:15px; height:15px; color:var(--brand-500); }
    /* ── STATBAR ── */
    .rs .statbar { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--border-default); border-radius:10px; overflow:hidden; background:var(--surface-raised); margin-bottom:30px; }
    .rs .stat { padding:16px 20px; border-right:1px solid var(--border-default); min-height:64px; }
    .rs .stat:last-child { border-right:none; }
    .rs .stat-k { font-family:var(--font-mono); font-size:10.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--text-tertiary); }
    .rs .stat-v { font-family:var(--font-mono); font-size:30px; font-weight:500; letter-spacing:-.02em; color:var(--text-primary); margin-top:8px; line-height:1; font-variant-numeric:tabular-nums; }
    .rs .stat-d { font-size:11.5px; margin-top:7px; color:var(--text-tertiary); }
    .rs .stat-d.up { color:var(--success-fg); } .rs .stat-d.acc { color:var(--brand-500); }
    /* B2: celda Cerebro del statbar — clicable (lleva al Cerebro), affordance clara */
    .rs .stat-link { cursor:pointer; transition:background .15s ease; }
    .rs .stat-link:hover, .rs .stat-link:focus-visible { background:color-mix(in srgb, var(--brand-500) 7%, transparent); outline:none; }
    .rs .stat-link:focus-visible { box-shadow:inset 0 0 0 2px var(--brand-500); }
    .rs .stat-link .stat-v { font-size:24px; color:var(--brand-400); }
    /* ── FEATURE (señal destacada) ── */
    /* Endowed progress (#2): barra de activación «X/4» en el Radar */
    .rs .act-prog { border:1px solid color-mix(in srgb, var(--brand-500) 22%, var(--border-default)); border-radius:14px; padding:13px 16px; margin-bottom:14px; background:linear-gradient(120deg, color-mix(in srgb, var(--brand-500) 8%, var(--surface-raised)), var(--surface-raised)); }
    .rs .act-prog-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:9px; }
    .rs .act-prog-t { font-size:13.5px; font-weight:600; color:var(--text-primary); }
    .rs .act-prog-n { font-family:var(--font-mono); font-size:12.5px; font-weight:700; color:var(--brand-500); flex-shrink:0; }
    .rs .act-prog-bar { height:5px; border-radius:99px; background:var(--surface-overlay); overflow:hidden; margin-bottom:11px; }
    .rs .act-prog-fill { height:100%; border-radius:99px; background:linear-gradient(90deg, var(--brand-500), #6f93ff); transition:width .5s var(--ease-out); }
    .rs .act-prog-steps { display:flex; flex-wrap:wrap; gap:7px; }
    .rs .ap-chip { display:inline-flex; align-items:center; gap:5px; font-size:12px; padding:4px 9px; border-radius:99px; border:1px solid var(--border-default); color:var(--text-secondary); background:var(--surface-raised); }
    .rs .ap-chip svg { width:12px; height:12px; }
    .rs .ap-chip.ok { border-color:color-mix(in srgb, var(--success-fg) 35%, transparent); color:var(--success-fg); background:color-mix(in srgb, var(--success-fg) 9%, transparent); }
    .rs .ap-o { font-size:10px; opacity:.6; }
    /* #2 escasez al robar (decisión interesante / empuje suave al muro) */
    .rs .feat-scarce { display:flex; align-items:center; gap:6px; margin-top:10px; font-size:12.5px; font-weight:600; color:var(--brand-500); }
    .rs .feat-scarce svg { width:13px; height:13px; }
    .rs .feat-scarce b { color:var(--brand-500); }
    .rs .feat-scarce.out { color:var(--warn-fg, #d4a017); }
    .rs .feat-scarce.out b { color:var(--warn-fg, #d4a017); }
    .rs .feat-scarce-btn { border:none; background:none; font:inherit; padding:0; cursor:pointer; }
    .rs .feat-scarce-btn:hover { text-decoration:underline; }
    /* #6 badge de nivel del Cerebro = estatus visible (vanidad + no perder progreso) */
    .rs .brain-badge { display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:600; cursor:pointer;
      padding:6px 12px; border-radius:99px; color:var(--brand-500); white-space:nowrap;
      border:1px solid color-mix(in srgb, var(--brand-500) 32%, transparent);
      background:linear-gradient(120deg, color-mix(in srgb, var(--brand-500) 12%, transparent), transparent);
      transition:transform .12s, border-color .15s; }
    .rs .brain-badge svg { width:14px; height:14px; }
    .rs .brain-badge b { color:var(--brand-600); font-weight:800; }
    .rs .brain-badge:hover { transform:translateY(-1px); border-color:var(--brand-500); }
    .rs .brain-badge:active { transform:translateY(0); }
    .rs--mobile .brain-badge { font-size:11.5px; padding:5px 10px; }
    /* #1 core-loop: badge de bombazo (recompensa variable — solo cuando es excepcional) */
    .rs .opp-mega { display:inline-flex; align-items:center; gap:6px; margin:6px 0 2px; font-size:12px; font-weight:800; letter-spacing:.02em;
      color:#d4530f; padding:4px 11px; border-radius:99px; width:max-content;
      background:linear-gradient(120deg, rgba(255,122,0,.16), rgba(255,45,85,.10)); border:1px solid rgba(255,122,0,.35);
      animation:oppMegaPulse 2s ease-in-out infinite; }
    @keyframes oppMegaPulse { 0%,100%{ box-shadow:0 0 0 0 rgba(255,122,0,.35);} 60%{ box-shadow:0 0 0 6px rgba(255,122,0,0);} }
    @media (prefers-reduced-motion: reduce){ .rs .opp-mega { animation:none; } }
    [data-theme="dark"] .rs .opp-mega { color:#ffb079; }
    /* Leaderboard (Fathom 17/06) — tú vs competidores */
    .rs .leaderboard { border:1px solid var(--border-default); border-radius:14px; overflow:hidden; margin-bottom:18px; background:var(--surface-raised); }
    .rs .lb-row { display:grid; grid-template-columns:26px 30px 1fr auto auto auto; align-items:center; gap:10px; padding:10px 14px; border-top:1px solid var(--border-subtle); font-size:13.5px; }
    .rs .lb-challenge { font-size:11.5px; font-weight:700; padding:5px 10px; border-radius:99px; cursor:pointer; white-space:nowrap;
      border:1px solid color-mix(in srgb, var(--brand-500) 40%, transparent); background:transparent; color:var(--brand-500); transition:background .14s, transform .1s; }
    .rs .lb-challenge:hover { background:color-mix(in srgb, var(--brand-500) 12%, transparent); transform:translateY(-1px); }
    .rs .lb-challenge-sp { width:1px; }
    /* Versus / retos */
    .rs .versus-hint { font-size:12.5px; color:var(--text-secondary); padding:9px 13px; margin-bottom:14px; border-radius:11px; line-height:1.45;
      border:1px dashed color-mix(in srgb, var(--brand-500) 35%, transparent); background:color-mix(in srgb, var(--brand-500) 5%, transparent); }
    .rs .versus-hint b { color:var(--text-primary); }
    .rs .versus-card { margin-bottom:16px; padding:16px 18px; border-radius:16px; color:#fff; position:relative; overflow:hidden;
      background:linear-gradient(135deg, #2a1d3a, #3b2350 55%, #1d1822); border:1px solid #5b3f7a; box-shadow:0 6px 24px rgba(91,63,122,.35); }
    .rs .versus-head { display:flex; align-items:center; gap:9px; font-size:13px; margin-bottom:14px; }
    .rs .versus-ico { font-size:17px; }
    .rs .versus-day { margin-left:4px; font-size:11.5px; opacity:.8; font-family:var(--font-mono); }
    .rs .versus-quit { margin-left:auto; background:rgba(255,255,255,.12); border:none; color:#fff; width:26px; height:26px; border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; }
    .rs .versus-quit svg { width:13px; height:13px; }
    .rs .versus-vs { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:12px; margin-bottom:12px; }
    .rs .versus-side { display:flex; flex-direction:column; align-items:center; gap:4px; }
    .rs .versus-side .ava { width:42px; height:42px; font-size:14px; }
    .rs .versus-side .vs-h { font-size:12px; opacity:.85; max-width:120px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .rs .versus-side .vs-n { font-family:var(--font-mono); font-size:22px; font-weight:800; letter-spacing:-.02em; }
    .rs .versus-mid { font-size:12.5px; font-weight:800; text-align:center; padding:5px 10px; border-radius:99px; background:rgba(255,255,255,.12); white-space:nowrap; }
    .rs .versus-mid.win { color:#7CFFB2; } .rs .versus-mid.lose { color:#ff9bb0; }
    .rs .versus-bar { height:8px; border-radius:6px; overflow:hidden; background:rgba(255,255,255,.16); margin-bottom:11px; }
    .rs .versus-bar i { display:block; height:100%; background:linear-gradient(90deg,#8b5cf6,#c4a0ff); transition:width .4s; }
    .rs .versus-foot { display:flex; justify-content:space-between; align-items:center; font-size:12px; opacity:.95; }
    .rs .versus-prize b { color:#ffd75e; }
    /* Comunidad — teaser "Próximamente" */
    .rs .sec-soon-t { display:flex; align-items:center; gap:9px; font-size:12px; text-transform:uppercase; letter-spacing:.08em; font-weight:700; color:var(--text-tertiary); margin:26px 0 12px; }
    .rs .soon-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
    @media(max-width:720px){ .rs .soon-grid { grid-template-columns:1fr; } }
    .rs .soon-card { display:flex; gap:13px; padding:15px 16px; border-radius:14px; border:1px dashed var(--border-strong); background:var(--surface-raised); opacity:.92; }
    .rs .soon-ico { font-size:24px; flex-shrink:0; line-height:1.2; filter:grayscale(.15); }
    .rs .soon-h { font-family:var(--font-display); font-size:15.5px; font-weight:600; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
    .rs .soon-pill { font-size:9.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:2px 8px; border-radius:99px; color:var(--brand-600); background:color-mix(in srgb, var(--brand-500) 14%, transparent); }
    .rs .soon-desc { font-size:12.5px; color:var(--text-secondary); margin-top:4px; line-height:1.45; }
    .rs .soon-desc b { color:var(--text-primary); }
    .rs .soon-cta { display:flex; justify-content:center; margin:14px 0 4px; }
    .rs .soon-cta.done { font-size:13px; color:var(--success-fg, #22c55e); font-weight:600; gap:7px; align-items:center; }
    .rs .soon-cta.done svg { width:15px; height:15px; }
    .rs--mobile .lb-row { gap:7px; padding:9px 11px; } .rs--mobile .lb-challenge { padding:4px 8px; font-size:11px; }
    .rs .lb-row:first-child { border-top:none; }
    .rs .lb-row.me { background:linear-gradient(90deg, color-mix(in srgb, var(--brand-500) 12%, transparent), transparent); }
    .rs .lb-pos { font-family:var(--font-mono); font-size:12px; font-weight:700; color:var(--text-tertiary); text-align:center; }
    .rs .lb-row.me .lb-pos { color:var(--brand-500); }
    .rs .lb-row .ava { width:30px; height:30px; font-size:11px; }
    .rs .lb-h { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:600; }
    .rs .lb-h b { color:var(--brand-500); font-weight:700; }
    .rs .lb-f { font-family:var(--font-mono); font-weight:700; font-size:13px; }
    .rs .lb-g { font-family:var(--font-mono); font-size:11.5px; font-weight:700; min-width:42px; text-align:right; }
    .rs .lb-g.up { color:var(--success-fg, #22c55e); }
    .rs .lb-g.down { color:var(--text-tertiary); }
    .rs .lb-goal { display:flex; align-items:center; gap:8px; padding:13px 16px; margin-bottom:14px; border-radius:14px; font-size:14px; font-weight:600; color:var(--text-primary);
      border:1px solid color-mix(in srgb, var(--brand-500) 28%, transparent); background:linear-gradient(120deg, color-mix(in srgb, var(--brand-500) 12%, var(--surface-raised)), var(--surface-raised)); }
    .rs .lb-goal b { color:var(--brand-500); font-weight:800; }
    .rs .lb-momentum { display:flex; align-items:center; gap:8px; padding:10px 14px; margin-bottom:10px; border-radius:12px; font-size:13px; font-weight:600;
      color:var(--success-fg, #22c55e); border:1px solid color-mix(in srgb, var(--success-fg, #22c55e) 30%, transparent); background:color-mix(in srgb, var(--success-fg, #22c55e) 9%, transparent); }
    .rs .lb-momentum b { color:var(--success-fg, #22c55e); font-weight:800; }
    .rs .lb-note { font-size:12px; color:var(--text-tertiary); margin:0 2px 18px; }
    .rs .feature { display:grid; grid-template-columns:210px 1fr 150px; border:1px solid var(--border-default); border-radius:20px; background:var(--surface-raised); box-shadow:var(--shadow-lg); overflow:hidden; margin-bottom:14px; min-height:352px; max-height:560px; }   /* T1 fold: 400→352 — el CTA «Roba la idea» entra entero sobre el fold */
    /* Carrusel de 2-3 oportunidades (Fathom 18/06) */
    .rs .opp-carousel { position:relative; margin-bottom:36px; }
    .rs .opp-track { display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; -ms-overflow-style:none; scrollbar-width:none; }
    .rs .opp-track::-webkit-scrollbar { display:none; }
    /* Peek de la siguiente oportunidad: el slide deja asomar el borde del próximo → se
       ve que hay MÁS de una, no una por viewport. La nav (oppNav) lee el ancho real. */
    .rs .opp-slide { flex:0 0 calc(100% - 54px); scroll-snap-align:start; min-width:0; }
    .rs .opp-slide .feature { margin-bottom:0; height:100%; }
    .rs .opp-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer;
      background:var(--surface-raised); border:1px solid var(--border-strong); box-shadow:var(--shadow-lg); color:var(--text-strong); transition:transform .12s, border-color .15s; }
    .rs .opp-arrow:hover { border-color:var(--brand-500); transform:translateY(-50%) scale(1.06); }
    .rs .opp-arrow.prev { left:-6px; } .rs .opp-arrow.next { right:-6px; }
    .rs .opp-nav-bar { display:flex; flex-direction:column; align-items:center; gap:6px; margin-top:12px; }
    .rs .opp-dots { display:flex; justify-content:center; gap:8px; }
    .rs .opp-dot { width:9px; height:9px; border-radius:50%; padding:0; cursor:pointer; background:transparent; border:1.5px solid color-mix(in srgb, var(--brand-500) 55%, transparent); transition:background .15s, width .15s, border-color .15s; }
    .rs .opp-dot:hover { border-color:var(--brand-500); }
    .rs .opp-dot.on { width:22px; border-radius:99px; background:var(--brand-500); border-color:var(--brand-500); }
    .rs .opp-count { font-family:var(--font-mono,ui-monospace,monospace); font-size:11px; letter-spacing:.04em; color:var(--text-tertiary); text-transform:uppercase; }
    .rs--mobile .opp-arrow { display:none; }
    /* Flash de 1ª compra (Fathom 18/06) */
    .rs .flash-offer { display:flex; align-items:center; gap:16px; margin-bottom:14px; padding:14px 18px; border-radius:14px; cursor:pointer;
      color:#fff; background:linear-gradient(120deg, #C4501A, #e0762f 55%, #8b2f0c); border:1px solid #e0884a;
      box-shadow:0 6px 22px rgba(196,80,26,.32); position:relative; overflow:hidden; transition:transform .12s, box-shadow .15s; }
    .rs .flash-offer:hover { transform:translateY(-1px); box-shadow:0 10px 28px rgba(196,80,26,.42); }
    .rs .flash-offer::after { content:""; position:absolute; inset:0; background:linear-gradient(100deg, transparent 30%, rgba(255,255,255,.18) 50%, transparent 70%); transform:translateX(-120%); animation:flashShine 3.2s ease-in-out infinite; }
    @keyframes flashShine { 0%,60%{ transform:translateX(-120%); } 100%{ transform:translateX(120%); } }
    .rs .flash-badge { flex-shrink:0; font-family:var(--font-mono,ui-monospace,monospace); font-weight:800; font-size:20px; letter-spacing:-.02em; padding:8px 12px; border-radius:10px; background:rgba(0,0,0,.22); }
    .rs .flash-txt { display:flex; flex-direction:column; gap:2px; min-width:0; line-height:1.3; }
    .rs .flash-txt b { font-size:15px; } .rs .flash-txt span { font-size:12.5px; opacity:.92; } .rs .flash-txt s { opacity:.7; }
    .rs .flash-cd-wrap { margin-left:auto; flex-shrink:0; text-align:center; }
    .rs .flash-cd-k { display:block; font-size:9.5px; text-transform:uppercase; letter-spacing:.1em; opacity:.85; }
    .rs .flash-cd { font-family:var(--font-mono,ui-monospace,monospace); font-weight:700; font-size:18px; letter-spacing:.02em; font-variant-numeric:tabular-nums; }
    .rs .flash-cta { flex-shrink:0; display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:13px; padding:9px 14px; border-radius:99px; background:#fff; color:#9a3a10; white-space:nowrap; }
    .rs .flash-cta svg { width:15px; height:15px; }
    .rs .flash-alt { display:block; width:100%; margin:0 0 14px; padding:9px 12px; background:var(--surface-overlay); border:1px solid var(--border-default); border-radius:11px; color:var(--text-secondary); font:inherit; font-family:var(--font-body); font-size:12.5px; cursor:pointer; transition:color .15s,border-color .15s; }
    .rs .flash-alt:hover { color:var(--text-primary); border-color:var(--brand-500); }
    .rs--mobile .flash-offer { flex-wrap:wrap; gap:10px; } .rs--mobile .flash-cd-wrap { margin-left:0; }
    /* Sugerir competidores (Fathom 18/06) */
    .rs .sugg-comp { display:flex; align-items:center; gap:14px; margin-bottom:14px; padding:13px 16px; border-radius:14px;
      border:1px solid color-mix(in srgb, var(--brand-500) 30%, var(--border-default)); background:color-mix(in srgb, var(--brand-500) 6%, var(--surface-raised)); }
    .rs .sugg-comp .ava { width:46px; height:46px; flex-shrink:0; font-size:15px; }
    .rs .sugg-body { min-width:0; flex:1; }
    .rs .sugg-tag { display:flex; align-items:center; gap:5px; font-size:11px; text-transform:uppercase; letter-spacing:.04em; font-weight:700; color:var(--brand-500); margin-bottom:3px; }
    .rs .sugg-tag svg { width:13px; height:13px; }
    .rs .sugg-h { font-family:var(--font-display); font-size:17px; font-weight:600; display:flex; align-items:center; gap:9px; }
    .rs .sugg-x { font-family:var(--font-mono,ui-monospace,monospace); font-size:12px; font-weight:700; color:var(--brand-600); background:color-mix(in srgb, var(--brand-500) 14%, transparent); padding:2px 8px; border-radius:99px; }
    .rs .sugg-why { font-size:13px; color:var(--text-secondary); margin-top:3px; line-height:1.4; }
    .rs .sugg-actions { display:flex; gap:8px; flex-shrink:0; }
    .rs--mobile .sugg-comp { flex-wrap:wrap; } .rs--mobile .sugg-actions { width:100%; }
    .rs--mobile .sugg-actions .btn-primary { flex:1; justify-content:center; }   /* «Añadir» prominente, «Ahora no» compacto */
    /* ══ Muro de competidores (Bernat 24-jun): «Creadores que deberías vigilar» ══
       Enseña hasta 5; los que pasan tu cupo free salen BLOQUEADOS (blur + 🔒). */
    .rs .sugg-card { margin:18px 0; padding:16px 16px 14px; border-radius:18px; border:1px solid var(--border-default); background:var(--surface-raised); }
    .rs .sugg-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
    .rs .sugg-head-t { display:inline-flex; align-items:center; gap:8px; font-family:var(--font-display); font-weight:700; font-size:16px; color:var(--text-primary); }
    .rs .sugg-head-t svg { width:16px; height:16px; color:var(--brand-500); }
    .rs .sugg-hide { background:none; border:none; color:var(--text-tertiary); font-size:12.5px; cursor:pointer; padding:6px 4px; }
    .rs .sugg-hide:hover { color:var(--text-secondary); }
    .rs .sugg-card .sugg-comp:last-of-type { margin-bottom:0; }
    /* #4: miniatura del reel que está petando del competidor (da ganas de seguirlo) */
    .rs .sugg-reel { position:relative; flex:none; width:42px; height:64px; border-radius:9px; overflow:hidden; background:var(--surface-overlay); border:1px solid var(--border-subtle); }
    .rs .sugg-reel img { width:100%; height:100%; object-fit:cover; display:block; }
    .rs .sugg-reel-exp { position:absolute; left:2px; bottom:2px; display:inline-flex; align-items:center; gap:2px; font-family:var(--font-mono); font-size:9px; font-weight:700; color:#fff; background:rgba(245,168,61,.95); padding:1px 4px; border-radius:5px; }
    .rs .sugg-reel-exp svg { width:9px; height:9px; }
    /* v4: «Sugerencias de hoy» — carrusel de REELS del nicho que petan (robar sin seguir) */
    .rs .stday-sec { margin:18px 0; }
    .rs .stday-head { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
    .rs .stday-t { display:inline-flex; align-items:center; gap:7px; font-weight:700; font-size:.95rem; color:var(--text); flex:1; min-width:0; }
    .rs .stday-t svg { width:16px; height:16px; color:var(--brand-500); flex:none; }
    .rs .stday-tag { font-weight:600; font-size:.72rem; color:var(--text-tertiary); }
    .rs .stday-arrows { display:inline-flex; gap:6px; flex:none; }
    .rs .stday-arrow { width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--border-subtle); border-radius:8px; background:var(--surface-raised); color:var(--text-secondary); cursor:pointer; }
    .rs .stday-arrow:hover { color:var(--text); border-color:var(--border-default); }
    .rs .stday-arrow svg { width:15px; height:15px; }
    .rs .stday-row { display:flex; gap:12px; overflow-x:auto; padding:2px 2px 8px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
    .rs .stday-row::-webkit-scrollbar { display:none; }
    /* 4 visibles: cada tarjeta = 1/4 del ancho visible (resto desliza). min-width para móvil. */
    .rs .stday-card { flex:0 0 calc(25% - 9px); min-width:150px; scroll-snap-align:start; display:flex; flex-direction:column; border:1px solid var(--border-subtle); border-radius:14px; overflow:hidden; background:var(--surface-raised); }
    /* mini-acciones de cabecera: «↻ otras» (gratis) + «✎ nicho» */
    .rs .stday-mini { display:inline-flex; align-items:center; gap:5px; background:none; border:1px solid var(--border-subtle); border-radius:8px; color:var(--text-tertiary); font-size:12.5px; cursor:pointer; padding:5px 9px; }
    .rs .stday-mini:hover { color:var(--text); border-color:var(--border-default); }
    .rs .stday-mini svg { width:13px; height:13px; }
    /* tarjeta «Ver más» de PAGO al final del carrusel */
    .rs .stday-morecard { align-items:center; justify-content:center; gap:6px; text-align:center; cursor:pointer; border-style:dashed; border-color:color-mix(in srgb, var(--brand-500) 45%, transparent); background:color-mix(in srgb, var(--brand-500) 6%, var(--surface-raised)); color:var(--brand-500); padding:14px 10px; }
    .rs .stday-morecard:hover { background:color-mix(in srgb, var(--brand-500) 12%, var(--surface-raised)); }
    .rs .stday-more-ic svg { width:22px; height:22px; }
    .rs .stday-more-t { font-weight:700; font-size:.92rem; }
    .rs .stday-more-c { font-size:.78rem; color:var(--text-secondary); }
    .rs .stday-thumb { position:relative; aspect-ratio:3/4; width:100%; overflow:hidden; cursor:pointer; }
    .rs .stday-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
    .rs .stday-thumb::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,.18) 0%, transparent 28%, transparent 60%, rgba(0,0,0,.62) 100%); pointer-events:none; }
    .rs .stday-exp { position:absolute; top:7px; left:7px; z-index:2; display:inline-flex; align-items:center; gap:3px; font-family:var(--font-mono); font-size:10px; font-weight:700; color:#fff; background:rgba(245,168,61,.96); padding:2px 6px; border-radius:6px; }
    .rs .stday-exp svg { width:10px; height:10px; }
    .rs .stday-dur { position:absolute; top:7px; right:7px; z-index:2; font-family:var(--font-mono); font-size:9px; font-weight:600; color:#fff; background:rgba(0,0,0,.55); padding:2px 5px; border-radius:5px; }
    .rs .stday-play { position:absolute; inset:0; margin:auto; width:38px; height:38px; display:flex; align-items:center; justify-content:center; color:#fff; opacity:.92; pointer-events:none; }
    .rs .stday-play svg { width:38px; height:38px; filter:drop-shadow(0 1px 4px rgba(0,0,0,.5)); }
    .rs .stday-at { position:absolute; left:8px; right:8px; bottom:7px; z-index:2; font-weight:700; font-size:.82rem; color:#fff; text-shadow:0 1px 4px rgba(0,0,0,.65); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .rs .stday-body { display:flex; flex-direction:column; gap:8px; padding:10px 11px 11px; }
    .rs .stday-cap { font-size:.76rem; line-height:1.34; color:var(--text-secondary); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:2.05em; }
    /* v5: fila de métricas (×explosión · views · antigüedad) + «Por qué robarlo» */
    .rs .stday-mets { display:flex; align-items:center; flex-wrap:wrap; gap:4px 9px; font-family:var(--font-mono); font-size:10.5px; font-weight:600; color:var(--text-tertiary); }
    .rs .stday-met { display:inline-flex; align-items:center; gap:3px; white-space:nowrap; }
    .rs .stday-met svg { width:11px; height:11px; }
    .rs .stday-met--exp { color:var(--brand-500); }
    .rs .stday-why2 { font-size:.76rem; line-height:1.34; color:var(--text-secondary); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
    .rs .stday-why2 b { color:var(--text); font-weight:700; }
    .rs .stday-acts { display:flex; align-items:center; flex-wrap:wrap; gap:7px; }
    .rs .stday-rob { flex:1 1 auto; white-space:nowrap; }
    .rs .stday-follow { flex:1 1 100%; display:inline-flex; align-items:center; justify-content:center; gap:5px; white-space:nowrap; font-size:.74rem; font-weight:600; padding:7px 9px; border:1px solid var(--border-subtle); border-radius:9px; background:transparent; color:var(--text-secondary); cursor:pointer; }
    .rs .stday-follow:hover { color:var(--text); border-color:var(--brand-500); }
    /* #3a: el botón va en TODAS las cards; --hot resalta al creador curado (worthFollow). */
    .rs .stday-follow--hot { color:var(--brand-500); border-color:color-mix(in srgb, var(--brand-500) 40%, transparent); }
    .rs .stday-follow svg { width:13px; height:13px; }
    /* #3b: sección «Posibles competidores» — fila horizontal scrollable, avatar de iniciales. */
    .rs .pcomp-sec { margin:14px 0; }
    .rs .pcomp-head { display:flex; align-items:baseline; gap:10px; margin-bottom:9px; flex-wrap:wrap; }
    .rs .pcomp-t { font-size:14px; font-weight:700; display:inline-flex; align-items:center; gap:6px; }
    .rs .pcomp-t svg { width:15px; height:15px; }
    .rs .pcomp-sub { font-size:12px; color:var(--text-tertiary); }
    .rs .pcomp-row { display:flex; gap:10px; overflow-x:auto; padding-bottom:4px; scrollbar-width:thin; }
    .rs .pcomp-card { flex:0 0 auto; width:150px; display:flex; flex-direction:column; align-items:center; gap:7px; padding:12px 10px; border:1px solid var(--border-default); border-radius:12px; background:var(--surface-raised); }
    .rs .pcomp-ava { position:relative; width:46px; height:46px; border-radius:50%; overflow:hidden; display:flex; align-items:center; justify-content:center; font-size:16px; font-weight:700; color:#fff; background:linear-gradient(135deg,var(--brand-500),#12a37c); }
    .rs .pcomp-ava img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
    .rs .pcomp-rec { position:absolute; top:-2px; right:-2px; z-index:2; font-size:12px; color:#f59e0b; background:var(--surface-raised); border-radius:50%; width:16px; height:16px; display:flex; align-items:center; justify-content:center; }
    .rs .pcomp-card--rec { border-color:color-mix(in srgb, var(--brand-500) 35%, transparent); }
    .rs .pcomp-meta { display:flex; flex-direction:column; align-items:center; gap:2px; min-width:0; width:100%; }
    .rs .pcomp-h { font-size:12.5px; font-weight:600; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .rs .pcomp-exp { font-size:11.5px; color:var(--success-fg); display:inline-flex; align-items:center; gap:3px; }
    .rs .pcomp-exp svg { width:11px; height:11px; }
    .rs .pcomp-add { width:100%; display:inline-flex; align-items:center; justify-content:center; gap:5px; font-size:12px; font-weight:600; padding:7px; border:1px solid var(--border-subtle); border-radius:8px; background:transparent; color:var(--text-secondary); cursor:pointer; }
    .rs .pcomp-add:hover { color:var(--text); border-color:var(--brand-500); }
    .rs .pcomp-add svg { width:12px; height:12px; }
    .rs--mobile .pcomp-add { min-height:40px; }
    /* #2 (David 05/07): TODA la card abre el detalle (salvo botones); el detalle va bajo el
       carrusel. El thumb del detalle abre el reel original en pestaña nueva. */
    .rs .stday-card[data-act] { cursor:pointer; }
    .rs .stday-detail-wrap { margin-top:12px; }
    /* #4 (David 06/07): detalle de sugerencia en PANEL LATERAL junto al carrusel (desktop) /
       OVERLAY a pantalla (móvil). Layout dedicado (suggd), NO reusa reel-inline. */
    .rs .stday-main { min-width:0; }
    .rs .stday-sec--split .stday-main { display:flex; gap:16px; align-items:flex-start; }
    .rs .stday-sec--split .stday-row { flex:1 1 auto; min-width:0; }
    .rs .stday-side { flex:0 0 clamp(360px,34vw,440px); position:sticky; top:12px; max-height:calc(100vh - 110px); overflow-y:auto; border:1px solid var(--border-default); border-radius:14px; background:var(--surface-base); padding:14px; }
    .rs .stday-overlay { position:fixed; inset:0; z-index:130; background:rgba(0,0,0,.55); display:flex; align-items:flex-end; }
    .rs .stday-sheet { width:100%; max-height:90vh; overflow-y:auto; background:var(--surface-base); border-radius:16px 16px 0 0; padding:16px 16px 28px; box-shadow:0 -8px 30px rgba(0,0,0,.35); }
    /* panel dedicado: IZQ vídeo+autor+título+acciones · DCHA métricas 2×2 + transcripción + robar */
    .rs .suggd-cols { display:grid; grid-template-columns:148px 1fr; gap:14px; align-items:start; }
    .rs .suggd-l { display:flex; flex-direction:column; gap:8px; min-width:0; }
    .rs .suggd-video { position:relative; width:100%; aspect-ratio:3/4; border-radius:12px; overflow:hidden; cursor:pointer; }
    .rs .suggd-video img { width:100%; height:100%; object-fit:cover; display:block; }
    .rs .suggd-video::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.22) 0%,transparent 30%,transparent 62%,rgba(0,0,0,.5) 100%); pointer-events:none; }
    .rs .suggd-exp { position:absolute; top:7px; left:7px; z-index:2; display:inline-flex; align-items:center; gap:3px; font-family:var(--font-mono); font-size:10px; font-weight:700; color:#fff; background:rgba(245,168,61,.96); padding:2px 6px; border-radius:6px; }
    .rs .suggd-exp svg { width:10px; height:10px; }
    .rs .suggd-play { position:absolute; inset:0; margin:auto; width:34px; height:34px; display:flex; align-items:center; justify-content:center; color:#fff; opacity:.92; pointer-events:none; }
    .rs .suggd-play svg { width:34px; height:34px; filter:drop-shadow(0 1px 4px rgba(0,0,0,.5)); }
    .rs .suggd-open { position:absolute; top:7px; right:7px; z-index:2; font-size:12px; line-height:1; background:rgba(0,0,0,.6); color:#fff; width:20px; height:20px; border-radius:6px; display:flex; align-items:center; justify-content:center; }
    .rs .suggd-who { font-weight:700; font-size:.86rem; color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .rs .suggd-cap { font-size:.78rem; line-height:1.35; color:var(--text-secondary); }
    .rs .suggd-cap.clamp { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
    .rs .suggd-cap-more { align-self:flex-start; background:none; border:none; padding:0; font-size:.74rem; font-weight:600; color:var(--brand-500); cursor:pointer; }
    .rs .suggd-lacts { display:flex; align-items:center; gap:7px; margin-top:2px; }
    .rs .suggd-hide { flex:1 1 auto; font-size:.78rem; font-weight:600; padding:7px 9px; border:1px solid var(--border-subtle); border-radius:9px; background:transparent; color:var(--text-secondary); cursor:pointer; }
    .rs .suggd-hide:hover { color:var(--text); border-color:var(--border-default); }
    .rs .suggd-robmini { flex:none; width:34px; height:34px; display:inline-flex; align-items:center; justify-content:center; border:1px solid color-mix(in srgb,var(--brand-500) 45%,transparent); border-radius:9px; background:color-mix(in srgb,var(--brand-500) 8%,transparent); color:var(--brand-500); cursor:pointer; }
    .rs .suggd-robmini svg { width:15px; height:15px; }
    .rs .suggd-r { display:flex; flex-direction:column; gap:12px; min-width:0; }
    .rs .suggd-mets { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
    .rs .suggd-met { border:1px solid var(--border-subtle); border-radius:10px; padding:8px 10px; background:var(--surface-raised); }
    .rs .suggd-met-k { font-size:10px; font-weight:700; letter-spacing:.04em; color:var(--text-tertiary); }
    .rs .suggd-met-v { font-family:var(--font-mono); font-size:1rem; font-weight:700; color:var(--text); margin-top:2px; }
    .rs .suggd-txwrap { display:flex; flex-direction:column; gap:8px; }
    .rs .suggd-tx-k { font-size:11px; font-weight:700; letter-spacing:.04em; color:var(--text-secondary); }
    .rs .suggd-tx-st { color:var(--text-tertiary); font-weight:600; }
    .rs .suggd-tx-btn { align-self:flex-start; }
    .rs .suggd-tx-text { font-size:.82rem; line-height:1.5; color:var(--text-secondary); max-height:220px; overflow-y:auto; white-space:pre-wrap; border:1px solid var(--border-subtle); border-radius:10px; padding:10px 12px; background:var(--surface-base); }
    .rs .suggd-tx-wait { font-size:.8rem; color:var(--text-tertiary); display:flex; align-items:center; gap:8px; }
    .rs .suggd-steal { width:100%; justify-content:center; font-size:.92rem; padding:11px; }
    /* móvil: la hoja apila las 2 columnas (mismo orden, vídeo primero) */
    .rs .stday-sheet .suggd-cols { grid-template-columns:1fr; }
    .rs .stday-sheet .suggd-video { max-width:180px; }
    .rs .reel-d-thumb--link { cursor:pointer; }
    .rs .reel-d-thumb--link .thumb { position:relative; }
    .rs .reel-d-open { position:absolute; top:6px; left:6px; font-size:12px; line-height:1; background:rgba(0,0,0,.6); color:#fff; width:20px; height:20px; border-radius:6px; display:flex; align-items:center; justify-content:center; }
    .rs .stday-x { flex:none; width:32px; height:32px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--border-subtle); border-radius:9px; background:transparent; color:var(--text-tertiary); cursor:pointer; }
    .rs .stday-x:hover { color:var(--text); border-color:var(--border-default); }
    .rs .stday-x svg { width:15px; height:15px; }
    /* CTA «define el nicho de la marca» cuando el proyecto no tiene nicho propio */
    .rs .stday-niche-cta { border:1px dashed color-mix(in srgb, var(--brand-500) 40%, transparent); border-radius:16px; padding:18px 20px; display:flex; flex-direction:column; gap:12px; align-items:flex-start; background:color-mix(in srgb, var(--brand-500) 5%, var(--surface-raised)); }
    .rs .stday-niche-tx { font-size:.9rem; line-height:1.45; color:var(--text-secondary); max-width:520px; }
    .rs .stday-niche-btn { display:inline-flex; align-items:center; gap:7px; font-size:.9rem; font-weight:600; padding:10px 17px; border-radius:11px; border:none; background:var(--brand-500); color:#fff; cursor:pointer; }
    .rs .stday-niche-btn svg { width:15px; height:15px; }
    .rs .stday-niche-btn:hover { filter:brightness(1.06); }
    /* empty-state «hoy no hay reels nuevos en tu nicho» (no ocultar en silencio) */
    .rs .stday-empty { font-size:.9rem; line-height:1.5; color:var(--text-secondary); padding:16px 18px; border:1px dashed var(--border-subtle); border-radius:14px; background:var(--surface-raised); }
    /* #5: descubrimiento «petando en tu nicho que aún no sigues» */
    .rs .disc-sec { margin:18px 0; padding:16px 16px 14px; border-radius:18px; border:1px solid color-mix(in srgb, var(--brand-500) 24%, transparent); background:linear-gradient(135deg, color-mix(in srgb, var(--brand-500) 7%, var(--surface-raised)), var(--surface-raised)); }
    .rs .disc-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
    .rs .disc-head-t { display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:15px; color:var(--text-primary); }
    .rs .disc-head-t svg { color:var(--brand-400); }
    .rs .disc-tag { font-family:var(--font-mono); font-size:10.5px; font-weight:600; letter-spacing:.02em; color:var(--brand-300); background:color-mix(in srgb, var(--brand-500) 14%, transparent); padding:2px 8px; border-radius:6px; }
    .rs .disc-row { display:flex; gap:12px; overflow-x:auto; padding-bottom:4px; scroll-snap-type:x mandatory; }
    .rs .disc-card { flex:0 0 132px; scroll-snap-align:start; display:flex; flex-direction:column; gap:8px; }
    .rs .disc-thumb { position:relative; aspect-ratio:9/14; border-radius:12px; overflow:hidden; background:var(--surface-overlay); border:1px solid var(--border-default); cursor:pointer; }
    .rs .disc-thumb:hover { border-color:var(--brand-400); }
    .rs .disc-img { width:100%; height:100%; object-fit:cover; display:block; }
    .rs .disc-ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:var(--brand-300); background:radial-gradient(120% 120% at 30% 20%, color-mix(in srgb, var(--brand-500) 22%, var(--surface-overlay)), var(--surface-overlay)); }
    .rs .disc-exp { position:absolute; left:6px; bottom:6px; display:inline-flex; align-items:center; gap:3px; font-family:var(--font-mono); font-size:11px; font-weight:800; color:#fff; background:rgba(245,168,61,.95); padding:2px 7px; border-radius:7px; box-shadow:0 4px 12px -4px rgba(245,168,61,.7); }
    .rs .disc-exp svg { width:11px; height:11px; }
    .rs .disc-play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); color:rgba(255,255,255,.92); opacity:0; transition:opacity .15s; pointer-events:none; }
    .rs .disc-thumb:hover .disc-play { opacity:1; }
    .rs .disc-meta { display:flex; align-items:center; justify-content:space-between; gap:6px; font-size:12px; }
    .rs .disc-h { font-weight:600; color:var(--text-primary); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .rs .disc-v { display:inline-flex; align-items:center; gap:3px; color:var(--text-tertiary); font-family:var(--font-mono); font-size:11px; flex:none; }
    .rs .disc-v svg { width:12px; height:12px; }
    .rs .disc-steal { width:100%; }
    /* fila bloqueada: avatar/handle difuminados, candado, acción «Desbloquear» */
    .rs .sugg-comp.locked { border-style:dashed; border-color:var(--border-default); background:var(--surface-base); }
    .rs .sugg-ava-wrap { position:relative; flex-shrink:0; }
    .rs .sugg-comp.locked .ava { filter:blur(5px); opacity:.85; }
    .rs .sugg-ava-lock { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#fff; }
    .rs .sugg-ava-lock svg { width:18px; height:18px; filter:drop-shadow(0 1px 3px rgba(0,0,0,.6)); }
    .rs .sugg-comp.locked .sugg-h { filter:blur(5px); user-select:none; color:var(--text-secondary); }
    .rs .sugg-comp.locked .sugg-x { filter:none; }
    .rs .sugg-tag--lock { color:var(--text-tertiary) !important; }
    .rs .sugg-unlock-cta { width:100%; justify-content:center; margin-top:6px; }
    @media (prefers-reduced-motion: reduce){ .rs .sugg-comp.locked .ava, .rs .sugg-comp.locked .sugg-h { filter:blur(5px); } }
    /* La miniatura 9:16 escala/recorta DENTRO de su columna (object-fit:cover en .thumb img),
       nunca estira la card: la altura la fija el cuerpo compacto, capada a max-height (.feature). */
    .rs .feature-thumb { position:relative; overflow:hidden; } .rs .feature-thumb .thumb { width:100%; height:100%; min-height:0; border:none; border-radius:0; border-right:1px solid var(--border-default); background:linear-gradient(160deg, var(--surface-sunken), var(--surface-raised)); }
    /* v3 mockup David — thumb oportunidad limpio (degradado + play centrado + tags) */
    .rs .feat-ph { position:absolute; inset:0; }
    .rs .feat-ph::after { content:""; position:absolute; inset:0; background:radial-gradient(130% 80% at 30% 8%, rgba(255,255,255,.07), transparent 60%); }
    .rs .feat-play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:46px; height:46px; border-radius:99px; background:rgba(0,0,0,.42); display:flex; align-items:center; justify-content:center; z-index:2; }
    .rs .feat-play svg { width:16px; height:16px; color:#fff; fill:#fff; }
    .rs .feature-thumb .thumb-tag { position:absolute; left:12px; bottom:12px; z-index:2; color:rgba(255,255,255,.66); }
    .rs .feature-thumb .dur { position:absolute; right:12px; bottom:12px; z-index:2; }
    /* Cuerpo COMPACTO: hook + nota + CTA juntos, sin hueco muerto (nada de margin-top:auto). */
    .rs .feature-main { padding:22px 30px; min-width:0; display:flex; flex-direction:column; justify-content:center; gap:18px; }   /* T1 fold: 30/24→22/18 */
    .rs .feature-eyebrow { font-family:var(--font-body); font-size:12.5px; font-weight:600; letter-spacing:0; text-transform:none; color:var(--brand-500); margin-bottom:0; display:flex; align-items:center; gap:9px; }
    .rs .feature-eyebrow .who { color:var(--text-tertiary); }
    .rs .feature-cap { font-family:var(--font-display-2); font-weight:600; font-size:28px; line-height:1.2; letter-spacing:-.015em; color:var(--text-primary); margin:0; text-wrap:balance; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
    .rs .feature-sum { font-size:14px; line-height:1.5; color:var(--text-secondary); margin:0; max-width:54ch; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
    .rs .feature-why { display:flex; gap:10px; font-size:14.5px; line-height:1.5; color:var(--text-secondary); padding:14px 16px; border-radius:13px; background:var(--surface-overlay); border:1px solid var(--border-default); margin:0; }
    .rs .feature-why svg { width:15px; height:15px; flex-shrink:0; color:#FF8A3D; margin-top:1px; }   /* v3 David: naranja = chispazo de explosión */
    .rs .feature-actions { display:flex; gap:10px; margin-top:2px; align-items:center; }
    /* v3 mockup David — estrella «Guardar» junto a «Roba la idea»: cuadrado 48px, borde 3D */
    .rs .feature-actions .iconbtn { width:48px; height:48px; flex:none; display:inline-flex; align-items:center; justify-content:center; background:var(--surface-overlay); border:1px solid var(--border-strong); border-bottom:3px solid var(--border-strong); border-radius:13px; color:var(--text-tertiary); cursor:pointer; transition:all .15s var(--ease); }
    .rs .feature-actions .iconbtn:hover { color:var(--text-primary); border-color:var(--brand-500); }
    .rs .feature-actions .iconbtn:active { transform:translateY(1px); border-bottom-width:1px; }
    .rs .feature-actions .iconbtn.on { color:var(--warning, #FF8A3D); border-color:var(--warning, #FF8A3D); }
    .rs .feature-actions .iconbtn svg { width:20px; height:20px; }
    .rs .feature-data { border-left:1px solid var(--border-default); padding:20px 18px; display:flex; flex-direction:column; justify-content:center; gap:14px; background:var(--surface-overlay); }
    .rs .dmetric .dk { font-family:var(--font-body); font-size:12px; font-weight:600; letter-spacing:0; text-transform:none; color:var(--text-tertiary); }
    .rs .dmetric .dv { font-family:var(--font-mono); font-size:21px; font-weight:500; letter-spacing:-.02em; color:var(--text-primary); margin-top:5px; font-variant-numeric:tabular-nums; }
    .rs .dmetric.big .dv { font-size:38px; color:var(--brand-500); }
    .rs .dbar { height:4px; border-radius:9999px; background:var(--surface-base); overflow:hidden; margin-top:9px; } .rs .dbar i { display:block; height:100%; background:var(--success-fg); border-radius:9999px; }   /* v3 David: barra de explosión en verde */
    /* ── plays (idea + whale) ── */
    .rs .plays { display:grid; grid-template-columns:1fr; gap:12px; margin:14px 0 6px; }
    /* ── feed head + tabla ── */
    .rs .feed-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:34px 0 0; padding-bottom:13px; border-bottom:1px solid var(--border-default); flex-wrap:wrap; }
    .rs .feed-title { font-family:var(--font-mono); font-size:11.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--text-tertiary); }
    .rs .feed-title .ct { color:var(--text-primary); }
    .rs .feed { display:block; }
    .rs .row { display:grid; grid-template-columns:64px 56px 1fr auto auto; align-items:center; gap:18px; padding:15px 8px; border-bottom:1px solid var(--border-default); transition:background .12s var(--ease); }
    .rs .row:hover { background:var(--surface-raised); }
    /* A: la card abre/pliega el detalle del reel */
    .rs .row-clickable { cursor:pointer; }
    .rs .row-clickable:focus-visible { outline:2px solid var(--brand-500); outline-offset:-2px; border-radius:10px; }
    /* A: detalle del reel — DESPLEGABLE inline bajo la card (sin modal).
       En la feed 2-col de desktop ocupa el ancho completo. */
    .rs .reel-inline { grid-column:1 / -1; margin:-1px 0 10px; padding:18px; border:1px solid var(--border-default); border-top:none; border-radius:0 0 14px 14px; background:var(--surface-base); }
    .rs .reel-detail { max-width:640px; }
    /* B: @autor del detalle y fila de competidor → todos sus reels */
    .rs .reel-d-author { background:none; border:none; padding:0; font:inherit; font-weight:700; color:var(--text-primary); cursor:pointer; text-decoration:underline dotted; text-underline-offset:3px; }
    .rs .reel-d-author:hover { color:var(--brand-400); }
    .rs .brain-comp-link { cursor:pointer; transition:border-color .15s var(--ease); }
    .rs .brain-comp-link:hover { border-color:var(--brand-500); }
    .rs .brain-comp-link:focus-visible { outline:2px solid var(--brand-500); outline-offset:-2px; }
    .rs .reel-d-top { display:flex; gap:18px; align-items:flex-start; }
    .rs .reel-d-thumb .thumb { width:110px; height:150px; border-radius:12px; overflow:hidden; position:relative; background:var(--surface-raised); border:1px solid var(--border-default); flex-shrink:0; }
    .rs .reel-d-thumb .thumb img { width:100%; height:100%; object-fit:cover; display:block; }
    .rs .reel-d-thumb .dur { position:absolute; bottom:6px; right:6px; font-family:var(--font-mono); font-size:11px; background:rgba(0,0,0,.6); color:#fff; padding:1px 6px; border-radius:5px; }
    .rs .reel-d-main { flex:1; min-width:0; }
    .rs .reel-d-who { display:flex; align-items:center; gap:9px; margin-bottom:8px; font-size:14px; }
    .rs .reel-d-when { color:var(--text-tertiary); font-size:12.5px; }
    .rs .reel-d-cap { font-size:16px; font-weight:700; line-height:1.35; margin:0 0 6px; }
    .rs .reel-d-sum { font-size:13.5px; color:var(--text-secondary); margin:0 0 12px; line-height:1.5; }
    /* #2: métricas en COLUMNA pegadas al vídeo (Views/Likes/Explosión/Duración apiladas). */
    .rs .reel-d-metcol { flex:0 0 auto; }
    .rs .reel-d-metcol .reel-d-mets { flex-direction:column; gap:12px; }
    .rs .reel-d-metcol .pm-k { font-size:10.5px; letter-spacing:.04em; color:var(--text-tertiary); }
    .rs .reel-d-metcol .pm-v { font-size:16px; font-weight:700; }
    .rs .reel-d-mets { display:flex; gap:22px; flex-wrap:wrap; }
    .rs .reel-d-acts { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-top:16px; }
    .rs .reel-tx-text { font-size:14.5px; line-height:1.65; color:var(--text-secondary); background:var(--surface-raised); border:1px solid var(--border-default); border-radius:12px; padding:14px 16px; white-space:pre-wrap; }
    .rs .reel-tx-wait { display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--text-secondary); }
    /* Móvil: vídeo + métricas EN FILA (números sin scroll), el resto envuelve debajo. */
    .rs--mobile .reel-d-top { flex-direction:row; flex-wrap:wrap; gap:12px; }
    .rs--mobile .reel-d-main { flex-basis:100%; }
    .rs--mobile .reel-d-thumb .thumb { width:90px; height:124px; }
    .rs .row-score { display:flex; flex-direction:column; gap:3px; }
    .rs .row-score .sv { font-family:var(--font-mono); font-size:17px; font-weight:500; color:var(--text-primary); letter-spacing:-.02em; }
    .rs .row-score.hi .sv { color:var(--brand-500); }
    .rs .row-score .sx { font-family:var(--font-mono); font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-tertiary); }
    .rs .row-thumb .thumb { width:42px; height:56px; border-radius:7px; }
    .rs .row-mid { min-width:0; }
    .rs .row-crow { display:flex; align-items:center; gap:8px; margin-bottom:4px; }
    .rs .row-crow .ava { width:22px; height:22px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; background:var(--surface-overlay); border:1px solid var(--border-strong); color:var(--text-secondary); font-family:var(--font-mono); font-weight:500; font-size:9px; }
    .rs .row-who { font-size:12.5px; font-weight:600; color:var(--text-primary); }
    .rs .row-when { font-size:11.5px; color:var(--text-tertiary); font-family:var(--font-mono); }
    .rs .row-cap { font-size:14px; font-weight:500; line-height:1.35; color:var(--text-primary); margin:0; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; }
    .rs .row-metrics { display:flex; align-items:center; gap:14px; }
    .rs .row-metrics span { display:inline-flex; align-items:center; gap:5px; font-family:var(--font-mono); font-size:12px; color:var(--text-tertiary); font-variant-numeric:tabular-nums; }
    .rs .row-metrics svg { width:13px; height:13px; }
    .rs .row-actions { display:flex; gap:8px; align-items:center; }
    .rs .row-actions .iconbtn { width:34px; height:34px; } .rs .row-actions .iconbtn svg { width:16px; height:16px; }
    /* T8 (IDI): targets táctiles ≥44px en móvil (chips a 28-34px y btn-sm a 36px
       se quedan cortos para el pulgar). Solo .rs--mobile — el desktop no cambia. */
    .rs--mobile .fchip { min-height:44px; }
    .rs--mobile .btn-sm { height:auto; min-height:44px; }
    .rs--mobile .chip-sm { display:inline-flex; align-items:center; min-height:44px; padding-top:0; padding-bottom:0; }
    .rs--mobile .iconbtn { min-width:44px; min-height:44px; }
    .rs--mobile .row-actions .iconbtn { width:44px; height:44px; }
    .rs--mobile .gui-acts .iconbtn { width:44px; height:44px; }
    .rs--mobile .idea-caret { width:44px; height:44px; }
    .rs--mobile .sc-hook-save, .rs--mobile .gui-hook-use { display:inline-flex; align-items:center; min-height:44px; padding:0 12px; }
    .rs--mobile .gui-hook-del { width:44px; height:44px; }
    .rs--mobile .rs-err .rs-err-x { width:44px; height:44px; }
    /* Fix review (T8): faltaban el botón cerrar/volver de TODOS los overlays (38px)
       y los tabs de marca de agencia (36px). */
    .rs--mobile .overlay .obar .back { width:44px; height:44px; }
    .rs--mobile .btab { height:auto; min-height:44px; }
    /* Auditoría móvil (2026-06): targets que aún quedaban <44px en el pulgar. */
    .rs--mobile .tone-chip { min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
    .rs--mobile .rail-acct { width:44px; height:44px; }
    .rs--mobile .brand-switch { min-height:44px; }
    .rs--mobile .gui-hooks-toggle { min-height:44px; }
    .rs .see-all { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; margin-top:18px; padding:14px; background:transparent; border:1px solid var(--border-default); border-radius:10px; color:var(--text-secondary); font:inherit; font-family:var(--font-body); font-size:13.5px; font-weight:600; cursor:pointer; }
    .rs .see-all:hover { border-color:var(--border-strong); color:var(--text-primary); }
    .rs .see-all svg { width:15px; height:15px; }
    /* ── PORTFOLIO (agencia): fila por marca ── */
    .rs .brow-list { display:block; }
    .rs .brow { display:grid; grid-template-columns:auto minmax(0,1.4fr) 1fr auto auto auto; align-items:center; gap:18px; width:100%; text-align:left; padding:16px 14px; border:none; border-bottom:1px solid var(--border-default); background:transparent; color:inherit; font:inherit; font-family:var(--font-body); cursor:pointer; transition:background .12s var(--ease); }
    .rs .brow:hover { background:var(--surface-raised); }
    .rs .brow.attn { box-shadow:inset 3px 0 0 var(--brand-500); }
    .rs .brow-dot { width:10px; height:10px; border-radius:3px; flex-shrink:0; }
    .rs .brow-dot.multi { background:linear-gradient(135deg,var(--brand-500),#12a37c 60%,#e0556b); }
    .rs .brow-id { min-width:0; }
    .rs .brow-name { font-family:var(--font-display-2); font-size:16px; font-weight:600; color:var(--text-primary); letter-spacing:-.01em; }
    .rs .brow-handle { font-family:var(--font-mono); font-size:11px; color:var(--text-tertiary); margin-top:2px; }
    .rs .brow-sig { font-size:13.5px; color:var(--text-secondary); }
    .rs .brow-sig .hot { color:var(--brand-500); font-weight:600; }
    .rs .brow-sig .muted { color:var(--text-tertiary); }
    .rs .brow-voice { display:flex; flex-direction:column; align-items:flex-end; gap:2px; }
    .rs .brow-voice .bv-k { font-family:var(--font-mono); font-size:9px; letter-spacing:.12em; color:var(--text-tertiary); }
    .rs .brow-voice .bv-v { font-family:var(--font-mono); font-size:15px; font-weight:500; color:var(--text-primary); }
    .rs .brow-attn { font-family:var(--font-mono); font-size:11px; color:var(--brand-500); white-space:nowrap; min-width:78px; text-align:right; }
    .rs .brow-open { display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:600; color:var(--text-secondary); white-space:nowrap; }
    .rs .brow-open svg { width:15px; height:15px; }
    .rs .brow:hover .brow-open { color:var(--brand-500); }
    .rs .stat-d.warn { color:var(--brand-500); }
    /* ── pestañas de marca (solo en Radar de Agencia): salto rápido entre dashboards ── */
    .rs .brand-tabs { display:flex; align-items:center; gap:8px; margin:0 0 24px; overflow-x:auto; padding-bottom:4px; scrollbar-width:none; }
    .rs .brand-tabs::-webkit-scrollbar { display:none; }
    .rs .btab { display:inline-flex; align-items:center; gap:8px; height:36px; padding:0 14px; border-radius:999px; border:1px solid var(--border-default); background:var(--surface-raised); color:var(--text-secondary); font:inherit; font-family:var(--font-body); font-size:13px; font-weight:500; white-space:nowrap; cursor:pointer; flex-shrink:0; transition:border-color .14s var(--ease), color .14s var(--ease), background .14s var(--ease); }
    .rs .btab:hover { color:var(--text-primary); border-color:var(--border-strong); }
    .rs .btab.on { background:color-mix(in srgb,var(--brand-500) 14%,transparent); border-color:color-mix(in srgb,var(--brand-500) 42%,transparent); color:var(--text-primary); }
    .rs .btab svg { width:15px; height:15px; }
    .rs .btab-all { color:var(--text-tertiary); border-style:dashed; }
    .rs .btab-all:hover { color:var(--brand-500); border-color:color-mix(in srgb,var(--brand-500) 42%,transparent); }
    .rs .btab-dot { width:8px; height:8px; border-radius:2px; flex-shrink:0; }
    .rs .btab-n { font-family:var(--font-mono); font-size:10px; font-weight:600; padding:1px 6px; border-radius:999px; background:color-mix(in srgb,var(--brand-500) 18%,transparent); color:var(--brand-500); }
    /* ── command bar: crumb link + toggle demo + brand-dot multi ── */
    .rs .crumb-link { background:none; border:none; cursor:pointer; font-family:var(--font-mono); font-size:12px; letter-spacing:.04em; text-transform:uppercase; color:var(--text-secondary); padding:0; }
    .rs .crumb-link:hover { color:var(--brand-500); }
    .rs .cmd .brand-dot.multi { background:linear-gradient(135deg,var(--brand-500),#12a37c 60%,#e0556b); border-radius:3px; }
    .rs .demo-plan { display:inline-flex; align-items:center; height:30px; padding:2px; border:1px solid var(--border-default); border-radius:8px; background:var(--surface-raised); }
    .rs .demo-plan .dp-k { font-family:var(--font-mono); font-size:9px; letter-spacing:.1em; color:var(--text-tertiary); padding:0 8px; }
    .rs .demo-plan .dp { height:24px; padding:0 11px; border:none; background:transparent; color:var(--text-tertiary); font:inherit; font-family:var(--font-body); font-size:12px; font-weight:500; border-radius:6px; cursor:pointer; }
    .rs .demo-plan .dp.on { background:var(--brand-500); color:#fff; }
    /* ── EQUIPO (agencia): miembros ── */
    .rs .mrow-list { display:block; }
    .rs .mrow { display:grid; grid-template-columns:auto minmax(0,1fr) 2fr auto; align-items:center; gap:18px; padding:14px; border-bottom:1px solid var(--border-default); }
    .rs .mrow:hover { background:var(--surface-raised); }
    .rs .mava { width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-family:var(--font-mono); font-weight:600; font-size:13px; flex-shrink:0; }
    .rs .mrow-id { min-width:0; display:flex; flex-direction:column; gap:4px; }
    .rs .mrow-name { font-size:14.5px; font-weight:600; color:var(--text-primary); }
    .rs .mrole { font-family:var(--font-mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; padding:2px 7px; border-radius:5px; width:fit-content; border:1px solid var(--border-default); color:var(--text-tertiary); }
    .rs .mrole.role-owner { color:var(--brand-500); border-color:color-mix(in srgb,var(--brand-500) 35%,transparent); background:color-mix(in srgb,var(--brand-500) 12%,transparent); }
    .rs .mrole.role-editor { color:var(--text-secondary); }
    .rs .mrow-brands { display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-end; }
    .rs .mchip { font-family:var(--font-body); font-size:11.5px; padding:3px 9px; border-radius:999px; background:var(--surface-overlay); border:1px solid var(--border-default); color:var(--text-secondary); white-space:nowrap; }
    .rs .mchip.muted { color:var(--text-tertiary); font-style:italic; }
    @media (max-width:760px){
      .rs .brow { grid-template-columns:auto 1fr auto; gap:12px; }
      .rs .brow-sig, .rs .brow-voice { display:none; }
      .rs .demo-plan .dp-k { display:none; }
      .rs .mrow { grid-template-columns:auto 1fr auto; } .rs .mrow-brands { display:none; }
    }
    /* responsive: rail → barra inferior */
    @media (max-width:760px){
      .rs.app { grid-template-columns:1fr; }
      .rs .rail { position:fixed; top:auto; bottom:0; left:0; right:0; height:auto; width:100%; flex-direction:row; justify-content:center; align-items:center; gap:8px; border-right:none; border-top:1px solid var(--border-default); padding:11px 0; z-index:40; }
      /* barra inferior y sus iconos más grandes en móvil (target táctil cómodo) */
      .rs .rail-btn { width:52px; height:52px; }
      .rs .rail-btn svg { width:25px; height:25px; }
      .rs .rail-acct { width:48px; height:48px; }
      /* el rail es barra inferior fija (~62px) → deja hueco para que el último
         contenido no quede tapado al hacer scroll hasta abajo. */
      .rs .scroll { padding-bottom:84px; }
      /* Ranking: las píldoras "Te faltan…/Subiendo…" eran inline-flex → el texto y
         los <b> se repartían en una fila sin wrap y se cortaban. En móvil que fluyan
         como texto normal (bloque) con el icono inline. + hero más compacto. */
      .rs .rk-hero { padding:20px; gap:16px; }
      .rs .rk-hero .lb-goal, .rs .rk-hero .lb-momentum { display:block; }
      .rs .rk-hero .lb-goal svg, .rs .rk-hero .lb-momentum svg { display:inline; vertical-align:-2px; margin-right:6px; }
      .rs .rail-logo, .rs .rail-spacer, .rs .rail-ava { display:none; }
      .rs .rs-acct-menu { left:8px; right:8px; bottom:72px; min-width:0; }   /* sobre la barra inferior */
      .rs .rail-btn.on::before { left:11px; right:11px; top:auto; bottom:-8px; width:auto; height:3px; border-radius:3px 3px 0 0; }
      .rs .rs-legacy { inset:0 0 64px 0; }   /* rail es barra inferior fija → deja hueco */
      .rs .overlay { inset:0; }   /* B2 móvil: rail es barra inferior fija (z:40 > overlay) → ya clicable */
      .rs .feature { grid-template-columns:1fr; max-height:none; } .rs .feature-thumb .thumb { height:200px; min-height:200px; border-right:none; border-bottom:1px solid var(--border-default); } .rs .feature-main { justify-content:flex-start; } .rs .feature-data { border-left:none; border-top:1px solid var(--border-default); flex-direction:row; flex-wrap:wrap; gap:24px; justify-content:flex-start; }
      .rs .opp-slide { flex-basis:calc(100% - 30px); }
      .rs .statbar { grid-template-columns:1fr 1fr; } .rs .stat:nth-child(2n){ border-right:none; }
      .rs .searchbox, .rs .cmd-streak { display:none; }
      .rs .cmd-idea .cmd-idea-t { display:none; }   /* móvil: solo la bombilla… */
      .rs .cmd-idea { height:44px; min-width:44px; justify-content:center; padding:0 12px; }  /* …con target táctil ≥44px */
      .rs .canvas { padding:24px 16px 100px; } .rs .h-title { font-size:30px; }
      .rs .row { grid-template-columns:48px 1fr auto; } .rs .row-thumb, .rs .row-when { display:none; }
    }

    /* ══ Pulido móvil ≤520px (titulares/cifras a escala + hero Cerebro apilado) ══
       Va al final a propósito: misma especificidad que las reglas base → gana por
       orden de cascada en pantallas pequeñas. Desktop (>520px) intacto. */
    @media (max-width:520px){
      /* 1 · TIPOGRAFÍA: titulares Clash y cifras grandes dejan el tamaño desktop */
      .rs .rdr-title   { font-size:clamp(24px,7.2vw,30px); }
      .rs .h-title     { font-size:clamp(23px,6.6vw,28px); }
      .rs .feature-cap { font-size:clamp(20px,5.6vw,24px); }
      .rs .rdr-stat-v  { font-size:clamp(22px,6.4vw,28px); }
      .rs .stat-v      { font-size:clamp(20px,6vw,26px); }
      .rs .ce-stat-v   { font-size:clamp(18px,5vw,21px); }
      .rs .ce-hero-title { font-size:clamp(19px,5.2vw,22px); }
      .rs .mt-wall-h   { font-size:clamp(20px,5.6vw,24px); }
      .rs .ig-connect-h { font-size:clamp(21px,6vw,25px); }

      /* 2 · CEREBRO hero: apilar (anillo arriba, texto a ancho completo) */
      .rs .ce-hero-row { gap:14px; }
      .rs .ce-hero { flex-direction:column; align-items:center; text-align:center; min-width:0; gap:16px; padding:22px 18px; }
      .rs .ce-ring { align-self:center; }
      .rs .ce-hero-body { width:100%; min-width:0; align-items:center; }
      .rs .ce-prog-row, .rs .ce-prog-bar { width:100%; }
      .rs .ce-stats { width:100%; min-width:0; }

      /* 3 · MÉTRICAS: el CTA "Conectar Instagram"/paywall no se sale de su card */
      .rs .mt-wall { padding:32px 14px; }
      .rs .mt-wall-card { max-width:none; width:100%; padding:26px 18px; }
      .rs .mt-wall-card .btn { width:100%; max-width:100%; white-space:normal; }
      .rs .ig-connect { max-width:none; padding:24px 16px; margin:24px auto; }
      .rs .ig-connect .btn { width:100%; max-width:100%; white-space:normal; }
      .rs .mt-ig { flex-direction:column; align-items:stretch; gap:14px; }
      .rs .mt-ig-l { width:100%; }
      .rs .mt-ig .btn { width:100%; }

      /* 4 · barrido: paddings + sin tooltip hover del rail (inútil en táctil y se salía) */
      .rs .canvas { padding:20px 14px 100px; }
      .rs .rail-btn .tip { display:none; }
    }

    /* ══ takeover demo: la isla ocupa todo el workspace y oculta la chrome vieja ══ */
    /* CLAVE: el layout es grid 260px 1fr. Al ocultar la sidebar, el main caía en
       la columna de 260px → colapsamos el grid a una sola columna. */
    body.rs-takeover .prof-layout { grid-template-columns: 1fr !important; }
    body.rs-takeover .prof-sidebar,
    body.rs-takeover .panel-header,
    body.rs-takeover .ideas-tabs,
    body.rs-takeover .prof-bottom-tab,
    body.rs-takeover #profSidebarNav { display:none !important; }
    /* Excepción: las vistas legacy reparentadas en la isla (#rsLegacy) conservan su
       .panel-header (lleva el título de la sección). El ID gana al hide de arriba. */
    #rsLegacy .panel-header { display: revert !important; }
    /* …pero el eyebrow ("AJUSTES"/"ANALIZAR") sobra: duplica el h1 ("Configuración"/
       "Analizar"). Bajo takeover dejamos solo el h1 en los paneles reparentados. */
    #rsLegacy .panel-header .eyebrow { display: none !important; }
    body.rs-takeover .prof-main { padding:0 !important; margin:0 !important; max-width:none !important; width:100% !important; overflow:hidden !important; }
    body.rs-takeover #profPanelIdeas,
    body.rs-takeover #ideasPanelCompetitors { height:100%; width:100%; padding:0 !important; margin:0 !important; }
    body.rs-takeover #radarRoot { height:100vh; width:100%; min-height:600px; }
    body.rs-takeover .rs.app { height:100vh; width:100%; border:none; border-radius:0; }
    /* Consistencia (Nielsen): bajo takeover, NINGÚN panel legacy de #profMain se cuela
       (entrar por /profile/<x> hacía profTab() mostrar el panel viejo y ocultar la isla).
       Solo vive la isla (#radarRoot, dentro de #profPanelIdeas > #ideasPanelCompetitors).
       El `>` exime los paneles reparentados en #rsLegacy (Analizar/Configuración), que ya
       no son hijos directos de #profMain. */
    body.rs-takeover #profMain > div[id^="profPanel"]:not(#profPanelIdeas) { display:none !important; }
    body.rs-takeover #profPanelIdeas { display:block !important; }
    body.rs-takeover #profPanelIdeas > :not(#ideasPanelCompetitors) { display:none !important; }
    body.rs-takeover #ideasPanelCompetitors { display:block !important; }

    /* ═══════════════════════════════════════════════════════════════════════
       REDESIGN v3 · Sistema de diseño nuevo — SOLO la isla .rs (Radar).
       Estrategia: REDEFINIR los tokens existentes dentro del scope .rs, así
       todo el CSS del radar (que ya usa var(--surface-raised), var(--brand-600),
       var(--font-display)…) adopta el sistema nuevo sin reescribir selectores.
       La landing (fuera de .rs) queda intacta. Tokens claro + oscuro.
       Reglas de oro: mono solo telemetría · labels Schibsted sentence-case ·
       titulares Clash · botones 3D · multiplicadores en verde · cero emojis.
       ═══════════════════════════════════════════════════════════════════════ */
    /* Tipografía (theme-independiente; .rs basta porque el radar no redefine --font-*) */
    .rs {
      --font-display:   'Clash Display', 'Space Grotesk', system-ui, sans-serif;
      --font-display-2: 'Clash Display', 'Space Grotesk', system-ui, sans-serif;
      --font-body:      'Schibsted Grotesk', system-ui, -apple-system, sans-serif;
      --font-accent:    'Syne', 'Clash Display', sans-serif;
      --font-mono:      'Geist Mono', ui-monospace, 'SF Mono', Menlo, monospace;
      font-family: var(--font-body);
      font-variant-numeric: tabular-nums;
    }
    /* Colores/superficies: hay que igualar la especificidad de los tokens del radar
       (.rs[data-theme="dark"]/[light], 0,2,0) — un .rs simple pierde. */
    .rs[data-theme="dark"] {
      /* Superficies (azul muy oscuro, no near-black neutro) */
      --surface-base:#090C15; --surface-raised:#111726; --surface-overlay:#172032; --surface-sunken:#0A0E18;
      --text-primary:#F3F6FC; --text-secondary:#A6B1C6; --text-tertiary:#7E8799; --text-disabled:#454F63;
      /* --text-tertiary subido de #69748C (prototipo) a #7E8799: el -3 se quedaba en
         ~3.8:1 sobre surface-raised (<4.5) en small text. Sube todos los labels dim a AA. */
      --border-subtle:rgba(255,255,255,.07); --border-default:rgba(255,255,255,.10); --border-strong:rgba(255,255,255,.13);
      /* Azul = marca + acción + navegación activa (regla 4) */
      --brand-50:#0E1730; --brand-100:#13204a; --brand-200:#1A2C66; --brand-300:#23409C;
      --brand-400:#6E92FF; --brand-500:#2F5BFF; --brand-600:#2F5BFF; --brand-700:#1B3FD6;
      --brand-800:#152FA6; --brand-900:#0F236E;
      /* Verde = "explota"/multiplicadores (regla 6) · Naranja = chispazo (regla 5) */
      --success:#2FD18A; --success-bg:rgba(47,209,138,.12); --success-fg:#3FE0A0; --success-border:rgba(47,209,138,.30);
      --danger:#FF5C72;  --danger-bg:rgba(255,92,114,.12); --danger-fg:#FF7C8E; --danger-border:rgba(255,92,114,.30);
      --warning:#FF8A3D; --warning-bg:rgba(255,138,61,.14); --warning-fg:#FFA463; --warning-border:rgba(255,138,61,.30);
      --info:#2F5BFF;    --info-bg:rgba(47,91,255,.14); --info-fg:#6E92FF; --info-border:rgba(47,91,255,.30);
      --glow:0 0 0 1px rgba(47,91,255,.35), 0 8px 30px rgba(47,91,255,.22);
      --shadow-glow:0 0 0 1px color-mix(in srgb, var(--brand-500) 50%, transparent), 0 0 32px rgba(47,91,255,.22);
    }
    /* Tema CLARO (papel cálido) — regla: ambos temas AA */
    .rs[data-theme="light"] {
      --surface-base:    #FAF7F1;
      --surface-raised:  #FFFFFF;
      --surface-overlay: #F4EFE6;
      --surface-sunken:  #F0EBE0;
      --text-primary:   #171511;
      --text-secondary: #574F42;
      --text-tertiary:  #6A6350;   /* AA: #8E8472 del prototipo se queda en ~3.4:1 sobre papel; bajado a -700 para 4.5:1 en labels/eyebrow/telemetría */
      --text-disabled:  #9A917E;
      --border-subtle:  rgba(24,22,14,.08);
      --border-default: rgba(24,22,14,.12);
      --border-strong:  rgba(24,22,14,.18);
      --brand-50:#EDF1FF; --brand-100:#DCE4FF; --brand-200:#BFCFFF; --brand-300:#90AEFF;
      --brand-400:#4A74FF; --brand-500:#2348E6; --brand-600:#2348E6; --brand-700:#1A37B8;
      --brand-800:#142B8F; --brand-900:#0F2070;
      --success:#0E8A5A; --success-bg:rgba(14,138,90,.10); --success-fg:#0A6B45; --success-border:rgba(14,138,90,.28);
      --danger:#C8324A;  --danger-bg:rgba(200,50,74,.08); --danger-fg:#C8324A; --danger-border:rgba(200,50,74,.26);
      --warning:#BE5510; --warning-bg:rgba(190,85,16,.10); --warning-fg:#BE5510; --warning-border:rgba(190,85,16,.28);
      --info:#2348E6;    --info-bg:rgba(35,72,230,.10); --info-fg:#2348E6; --info-border:rgba(35,72,230,.28);
      --glow:0 0 0 1px rgba(35,72,230,.30), 0 8px 30px rgba(35,72,230,.16);
      --shadow-glow: 0 0 0 1px color-mix(in srgb, var(--brand-500) 40%, transparent), 0 0 24px rgba(35,72,230,.14);
    }

    /* ── Regla 3: titulares y cifras grandes en Clash Display ── */
    .rs .h-title, .rs .feature-cap, .rs .feature-data .dv,
    .rs h1, .rs h2 { font-family: var(--font-display); letter-spacing:-.012em; }
    .rs .h-title { font-weight:600; }
    .rs .feature-cap { font-weight:600; }

    /* ── Regla 6: multiplicadores en VERDE (color + número, canal redundante) ── */
    .rs .row-score .sv,
    .rs .row-score.hi .sv,
    .rs .feature-data .dmetric.big .dv { color: var(--success); }
    .rs .row-score.hi .sx { color: var(--success); font-weight:600; }
    /* el badge "el más explosivo": verde (multiplicador) con chispa naranja */
    .rs .opp-mega { background: var(--success-bg); color: var(--success-fg);
      border:1px solid var(--success-border); }
    .rs .opp-mega svg { color: var(--warning); }

    /* ── Regla 7: botones 3D en TODAS las variantes ── */
    .rs .btn-primary {
      background: var(--brand-600); color:#fff; border:none;
      border-bottom: 4px solid var(--brand-800); border-radius:14px; font-weight:600;
      transition: transform .12s cubic-bezier(.16,1,.3,1), background .15s ease, filter .15s ease;
    }
    .rs .btn-primary:hover { background: var(--brand-500); }
    .rs .btn-primary:active { transform: translateY(2px); border-bottom-width:2px; }
    .rs .btn-secondary {
      background: var(--surface-overlay);
      border:1px solid var(--border-strong); border-bottom:3px solid var(--border-strong);
      transition: transform .12s cubic-bezier(.16,1,.3,1), background .15s ease;
    }
    .rs .btn-secondary:active { transform: translateY(2px); border-bottom-width:2px; }
    .rs .btn-sm { border-bottom-width:2px; }
    .rs .btn-sm:active { border-bottom-width:1px; transform:translateY(1px); }
    .rs .fchip { border-bottom:2px solid var(--border-strong); }
    .rs .fchip:active { transform:translateY(1px); border-bottom-width:1px; }

    /* ── Regla 4: chip/tab activo = azul (blue-soft + borde azul + texto azul) ── */
    .rs .fchip.on { background: var(--brand-100); border-color: var(--brand-500); color: var(--brand-400); }
    [data-theme="light"] .rs .fchip.on { color: var(--brand-600); }

    /* ── Reglas 1/2: la telemetría (mono) ya está en .eyebrow/.stat-v/.dur/.opp-count
       vía var(--font-mono); los labels van en Schibsted (var(--font-body)) por defecto.
       Reforzamos el carácter "detección" de la eyebrow y el contador en directo. ── */
    .rs .eyebrow, .rs .opp-count { font-family: var(--font-mono); letter-spacing:.02em; }
    .rs .feature-eyebrow { font-family: var(--font-body); letter-spacing:0; }   /* v3 David: eyebrow oportunidad en frase, no mono */
    .rs .pip { background: var(--success); }

    /* ── CEREBRO · anillo circular del hero (mockup Cerebro.dc.html) ── */
    .rs .brain-ring { position:relative; width:158px; height:158px; flex:none; }
    .rs .brain-ring-svg { transform:rotate(-90deg); }
    .rs .brain-ring-prog { transition:stroke-dashoffset .6s cubic-bezier(.16,1,.3,1); filter:drop-shadow(0 0 6px color-mix(in srgb, var(--brand-500) 45%, transparent)); }
    .rs .brain-ring-c { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; }
    .rs .brain-ring-c svg { width:46px; height:46px; color:var(--brand-400); }
    [data-theme="light"] .rs .brain-ring-c svg { color:var(--brand-600); }
    .rs .brain-ring-lvl { font-family:var(--font-mono); font-size:10.5px; letter-spacing:.06em; color:var(--text-tertiary); }
    .rs .brain-ring-lvl b { font-family:var(--font-display); font-size:17px; color:var(--text-primary); margin-left:3px; }
    .rs .brain-kicker { font-family:var(--font-accent); font-weight:700; font-size:12.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--brand-400); margin-bottom:2px; }
    [data-theme="light"] .rs .brain-kicker { color:var(--brand-600); }
    .rs .brain-prog-row { display:flex; justify-content:space-between; gap:10px; font-size:13px; color:var(--text-secondary); margin-top:8px; }
    .rs .brain-prog-pct { font-family:var(--font-mono); color:var(--text-primary); }

    /* ── TELEPRÓNTER · controles (mockup David) ── */
    .rs .tp-cd { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(5,7,13,.72); z-index:6; }
    .rs .tp-cd span { font-family:var(--font-display); font-weight:700; font-size:120px; color:#fff; }
    .rs .tp-ctl { width:48px; height:48px; flex:none; display:inline-flex; align-items:center; justify-content:center; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); border-bottom:3px solid rgba(255,255,255,.14); border-radius:13px; color:#fff; cursor:pointer; transition:transform .1s ease; }
    .rs .tp-ctl:active { transform:translateY(1px); }
    .rs .tp-ctl.on { background:var(--brand-600,#1B3FD6); border-color:var(--brand-500,#2F5BFF); }
    .rs .tp-grp { display:inline-flex; align-items:center; gap:9px; }
    .rs .tp-grp-l { font-size:13px; color:rgba(255,255,255,.5); font-weight:600; }
    .rs .tp-grp-v { width:34px; text-align:center; font-family:var(--font-mono); font-size:14px; color:#fff; }
    .rs .tp-grp .tp-mini, .rs .tp-grp .tp-grp-v { background:rgba(255,255,255,.08); }
    .rs .tp-grp { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.1); border-radius:11px; padding:3px 8px; }
    .rs .tp-grp-l { padding-right:2px; }
    .rs .tp-mini { width:32px; height:32px; display:inline-flex; align-items:center; justify-content:center; background:none; border:none; border-radius:8px; color:rgba(255,255,255,.75); font-weight:700; font-size:18px; cursor:pointer; }
    .rs .tp-mini-lg { font-size:20px; }
    .rs .tp-mini:active { transform:translateY(1px); }
    @media (max-width:680px){ .rs .tp-grp-l { display:none; } .rs .tp-controls { gap:10px; padding:12px; } .rs .tp-c-mid { gap:10px; } }

    /* ── EDITOR · acciones del reveal (Ver original / Regenerar) — mockup Editor de guion ── */
    .rs .script-acts { display:flex; gap:10px; flex-wrap:wrap; margin:0 0 16px; }
    .rs .script-act { display:inline-flex; align-items:center; gap:7px; padding:8px 14px; background:var(--surface-overlay); border:1px solid var(--border-default); border-bottom:2px solid var(--border-strong); border-radius:11px; color:var(--text-secondary); font:inherit; font-family:var(--font-body); font-weight:600; font-size:13px; cursor:pointer; transition:transform .1s ease, border-color .15s, color .15s; }
    .rs .script-act:hover { color:var(--text-primary); border-color:var(--brand-500); }
    .rs .script-act:active { transform:translateY(1px); border-bottom-width:1px; }
    .rs .script-act svg { width:15px; height:15px; }

    /* ── MÉTRICAS · sub-nav + Audiencia + Competidores — mockup Métricas.dc.html ── */
    .rs .met-subnav { display:flex; gap:6px; padding:5px; background:var(--surface-overlay); border:1px solid var(--border-default); border-radius:14px; margin:0 0 18px; width:fit-content; }
    .rs .met-subtab { padding:9px 18px; border:none; background:transparent; border-radius:10px; color:var(--text-secondary); font-family:var(--font-body); font-weight:600; font-size:13.5px; cursor:pointer; transition:background .15s,color .15s; }
    .rs .met-subtab:hover { color:var(--text-primary); }
    .rs .met-subtab.on { background:var(--surface-raised); color:var(--text-primary); box-shadow:0 1px 2px rgba(0,0,0,.18); }
    .rs .aud-wrap { display:flex; flex-direction:column; gap:18px; }
    .rs .aud-grid2 { display:grid; grid-template-columns:1.6fr 1fr; gap:14px; }
    .rs .aud-grid3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px; }
    .rs .aud-card { padding:20px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:16px; display:flex; flex-direction:column; gap:14px; }
    .rs .aud-head { display:flex; align-items:baseline; justify-content:space-between; }
    .rs .aud-t { font-weight:700; font-size:15px; color:var(--text-primary); }
    .rs .aud-up { font-size:12.5px; font-weight:700; color:var(--success); }
    .rs .aud-graph { display:flex; align-items:flex-end; gap:6px; height:140px; }
    .rs .aud-gcol { flex:1; height:100%; display:flex; align-items:flex-end; }
    .rs .aud-gcol i { display:block; width:100%; border-radius:5px 5px 0 0; background:linear-gradient(180deg,var(--brand-400),var(--brand-600)); }
    .rs .aud-rows { display:flex; flex-direction:column; gap:11px; }
    .rs .aud-row { display:flex; flex-direction:column; gap:6px; }
    .rs .aud-rowt { display:flex; justify-content:space-between; font-size:13px; color:var(--text-secondary); }
    .rs .aud-rowt b { font-family:var(--font-mono); font-weight:500; font-size:12px; color:var(--text-primary); }
    .rs .aud-track { height:9px; border-radius:9999px; background:var(--surface-overlay); overflow:hidden; }
    .rs .aud-track i { display:block; height:100%; border-radius:9999px; background:var(--brand-500); }
    .rs .aud-track i.dim { background:var(--brand-500); opacity:.5; }
    .rs .aud-track i.g { background:linear-gradient(90deg,var(--brand-500),var(--brand-400)); }
    .rs .aud-note { font-size:12.5px; color:var(--text-secondary); line-height:1.5; margin:2px 0 0; }
    .rs .aud-note b { color:var(--text-primary); }
    .rs .aud-gen { display:flex; height:12px; border-radius:9999px; overflow:hidden; }
    .rs .aud-gen i { background:var(--brand-500); }
    .rs .aud-gen i.dim { background:var(--brand-500); opacity:.45; }
    .rs .aud-genleg { display:flex; justify-content:space-between; font-size:12.5px; color:var(--text-secondary); }
    .rs .aud-genleg span { display:inline-flex; align-items:center; gap:6px; }
    .rs .aud-dot { width:9px; height:9px; border-radius:3px; background:var(--brand-500); }
    .rs .aud-dot.dim { opacity:.45; }
    .rs .cmp-table { padding:7px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:16px; }
    .rs .cmp-row { display:grid; grid-template-columns:1.7fr 1fr 1fr 1fr 1fr; align-items:center; padding:13px 14px; border-radius:12px; }
    .rs .cmp-row.cmp-head span { font-family:var(--font-mono); font-size:10.5px; color:var(--text-tertiary); letter-spacing:.04em; text-align:right; }
    .rs .cmp-row.cmp-head .cmp-acct { text-align:left; display:block; }
    .rs .cmp-row:not(.cmp-head) { margin-top:5px; border:1px solid transparent; }
    .rs .cmp-row.me { background:var(--surface-overlay); border-color:var(--border-strong); }
    .rs .cmp-acct { display:flex; align-items:center; gap:10px; min-width:0; }
    .rs .cmp-ava { width:32px; height:32px; flex:none; border-radius:9999px; background:var(--surface-overlay); border:1px solid var(--border-default); display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-size:11px; color:var(--text-secondary); }
    .rs .cmp-h { font-weight:600; font-size:13.5px; color:var(--text-primary); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .rs .cmp-h em { font-style:normal; font-family:var(--font-mono); font-size:10px; color:var(--brand-500); text-transform:uppercase; letter-spacing:.04em; }
    .rs .cmp-n { text-align:right; font-family:var(--font-mono); font-size:13px; color:var(--text-primary); }
    .rs .cmp-ratio { text-align:right; font-family:var(--font-display); font-weight:700; font-size:14px; color:var(--success); }
    .rs .cmp-sub { font-family:var(--font-mono); font-size:10.5px; color:var(--text-tertiary); }
    .rs .cmp-gap { padding:22px; background:linear-gradient(120deg,var(--surface-overlay),var(--surface-raised)); border:1px solid var(--border-default); border-radius:16px; display:flex; flex-direction:column; gap:11px; justify-content:center; }
    .rs .cmp-gap-k { font-family:var(--font-mono); font-size:10.5px; color:var(--brand-500); letter-spacing:.04em; }
    .rs .cmp-gap-h { font-family:var(--font-display); font-weight:700; font-size:21px; line-height:1.15; color:var(--text-primary); margin:0; }
    .rs .cmp-gap-p { font-size:13.5px; color:var(--text-secondary); margin:0; line-height:1.5; }
    .rs .cmp-gap .btn { align-self:flex-start; margin-top:4px; }
    @media (max-width:680px){ .rs .aud-grid2, .rs .aud-grid3 { grid-template-columns:1fr; } .rs .cmp-row { grid-template-columns:1.4fr 1fr 1fr; } .rs .cmp-row span:nth-child(4), .rs .cmp-row span:nth-child(5){ display:none; } }

    /* ── GUIONES (pantalla 2 del rediseño) ──────────────────────────────── */
    /* Regla 3: el hook/título del guion en Clash */
    .rs .gui-title { font-family: var(--font-display); letter-spacing:-.01em; font-size:15.5px; font-weight:600; }
    /* Badges de estado: Por grabar=azul · Grabado=verde · (Cocinando=naranja) */
    .rs .gui-pill { background: var(--brand-100); color: var(--brand-400); }
    .rs[data-theme="light"] .gui-pill { color: var(--brand-700); }
    .rs .gui-pill.done { background: var(--success-bg); color: var(--success-fg); }
    .rs .gui-pill.cooking { background: var(--warning-bg); color: var(--warning-fg); }
    /* Regla 6: el multiplicador "× tu media" en verde cuando pega */
    .rs .gui-pub.hot { color: var(--success-fg); }
    /* Explosión creativa: CTA del bloque con tokens nuevos + botón 3D (regla 7) */
    .rs .explosion-btn { background: var(--brand-100); border:1px solid var(--brand-500);
      border-bottom:3px solid var(--brand-700); color: var(--text-primary); font-family: var(--font-body); }
    .rs .explosion-btn:hover { box-shadow: var(--glow); }
    .rs .explosion-btn:active { transform: translateY(2px); border-bottom-width:2px; }
    .rs .explosion-btn .ex-head { display:inline-flex; align-items:center; gap:8px; font-size:16px; font-weight:700; color: var(--text-primary); }
    .rs .explosion-btn .ex-head svg { color: var(--brand-400); }
    [data-theme="light"] .rs .explosion-btn .ex-head svg, .rs[data-theme="light"] .explosion-btn .ex-head svg { color: var(--brand-600); }
    .rs .explosion-btn .ex-sub { font-size:12px; font-weight:600; color: var(--text-secondary); }
    /* Empty state con voz (titular en Syne — el "momento" de la regla 3) */
    .rs .rs-empty .rs-empty-title { font-family: var(--font-accent); font-weight:700; font-size:18px; color: var(--text-primary); margin-bottom:6px; }
    .rs .rs-empty .rs-empty-sub { color: var(--text-secondary); line-height:1.5; }

    /* ── A) multiplicador "× tu media" en VERDE cuando supera la media (Guiones) ──
       El botón entero deja de recolorearse; solo el número va en verde (color+número,
       como en el Radar). Neutraliza el azul whole-button de .gui-pub.hot (dark+light). */
    .rs .gui-pub.hot { color: var(--text-secondary); }
    .rs[data-theme="light"] .gui-pub.hot { color: var(--text-secondary); }
    .rs .gui-pub .gp-mult.up { color: var(--success-fg); font-weight:600; }

    /* ── EDITOR DE GUION (overlay de generación + reveal del guion) ──────────────
       Hereda Clash en .script-hook/.serif y mono en .beat .n. Ajustes propios: */
    /* telemetría: la procedencia del guion ("Robado de @…") en mono (regla 1).
       Sube de text-tertiary a text-secondary: en oscuro el -3 sobre surface-base
       se quedaba en 4.16:1 (<4.5). */
    .rs .script-src { font-family: var(--font-mono); letter-spacing:.01em; color: var(--text-secondary); }
    /* descripción de cada paso de la cinta: text-secondary (el -3 sobre el azul de
       chain-feature daba 3.36:1). Igualar la especificidad de .chain .ctext .cd. */
    .rs .chain .ctext .cd { color: var(--text-secondary); }
    /* estado de generación "Cocinando el guion…" en naranja (regla: .cooking) */
    .rs .gen.cooking .gtitle { color: var(--warning-fg); }
    .rs .gen.cooking .gstep { color: var(--warning-fg); opacity:.85; }
    /* éxito: "Manifestando viralidad" — momento aha en Syne sobre verde (regla 3) */
    .rs .reveal-aha { display:inline-flex; align-items:center; gap:7px; font-family: var(--font-accent);
      font-weight:700; font-size:13px; letter-spacing:.01em; color: var(--success-fg);
      background: var(--success-bg); border:1px solid var(--success-border);
      padding:5px 12px; border-radius:999px; margin:0 0 14px; }
    .rs .reveal-aha svg { color: var(--success); width:15px; height:15px; }
    /* #2 (Bernat): banner héroe del PRIMER guion robado — celebración 1-sola-vez. */
    .rs .reveal-hero { position:relative; margin:0 0 18px; padding:20px 22px; border-radius:18px; overflow:hidden;
      background:linear-gradient(135deg, color-mix(in srgb, var(--brand-500) 22%, var(--surface-raised)), var(--surface-raised));
      border:1px solid color-mix(in srgb, var(--brand-500) 40%, transparent); box-shadow:0 14px 40px color-mix(in srgb, var(--brand-500) 18%, transparent);
      animation:revealHeroIn .5s cubic-bezier(.2,.9,.2,1); }
    .rs .reveal-hero-badge { display:inline-flex; align-items:center; gap:6px; font-family:var(--font-mono); font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--brand-300); margin-bottom:8px; }
    .rs .reveal-hero-badge svg { width:14px; height:14px; }
    .rs .reveal-hero-t { font-family:var(--font-accent); font-weight:800; font-size:clamp(22px,4.4vw,30px); line-height:1.05; letter-spacing:-.01em; color:var(--text-primary); }
    .rs .reveal-hero-proof { margin-top:8px; font-size:13.5px; color:var(--text-secondary); }
    .rs .reveal-hero-proof .num-hi { color:var(--success-fg); font-weight:800; }
    /* Etiqueta «robo de prueba» (David 08/07): explica que este es instantáneo+gratis
       porque es la prueba, y que los siguientes cuestan/tardan. */
    .rs .reveal-hero-note { margin-top:10px; padding-top:10px; border-top:1px solid var(--border-subtle); font-size:12.5px; line-height:1.45; color:var(--text-tertiary); }
    @keyframes revealHeroIn { 0%{ opacity:0; transform:translateY(10px) scale(.98); } 100%{ opacity:1; transform:translateY(0) scale(1); } }
    @media (prefers-reduced-motion: reduce){ .rs .reveal-hero { animation:none; } }
    /* Anti-parpadeo: en re-renders de fondo del guion ya mostrado (.no-entry) NO reanimar
       la entrada — evita que el guion "parpadee" al resolver cargas async (formato, créditos). */
    .rs .script-wrap.no-entry, .rs .script-wrap.no-entry .reveal-hero { animation: none; }
    /* voice-tag legible en oscuro (brand-700 sobre brand-100 se quedaba flojo) */
    .rs[data-theme="dark"] .voice-tag { color: var(--brand-400); }
    /* cinta "¿Y ahora?": botones 3D + una sola primaria fuerte (Grábalo = .chain-prim) */
    .rs .chain { border-bottom:3px solid var(--border-strong); }
    .rs .chain:active { transform: translateY(2px); border-bottom-width:2px; }
    .rs .chain.chain-feature { background: var(--brand-100); border-color: var(--brand-500); border-bottom-color: var(--brand-700); }
    .rs .chain.chain-feature:not(.chain-prim) .cic { background: var(--brand-100); color: var(--brand-400); }
    .rs[data-theme="light"] .chain.chain-feature:not(.chain-prim) .cic { color: var(--brand-600); }
    .rs .chain.chain-prim .cic { background: var(--brand-600); color:#fff; }

    /* ── GALERÍAS de miniaturas + modal Comunidad (port de Leonard, restylado v3) ──
       Filas horizontales de tarjetas 9:16 (competencia) + teaser Comunidad con
       mini-modal animado. CSS ya en token-names v3 → adopta los valores del sistema. */
    .rs .rgal { margin:8px 0 26px; display:flex; flex-direction:column; gap:16px; }
    /* v3 mockup David — «Competidores en el radar» (chips) + línea de galería + empty */
    .rs .rgal-comps-head { display:flex; align-items:center; gap:14px; flex-wrap:nowrap; }
    /* móvil: la tira de chips por-competidor desbordaba/se cortaba → dejamos solo el
       desplegable «+N» (selector) + «Añadir». La cabecera puede envolver. */
    .rs--mobile .rgal-comps-head { flex-wrap:wrap; gap:10px; }
    .rs--mobile .rgal-comps-head .rgal-comps { display:none; }   /* +especificidad: gana al base .rs .rgal-comps */
    .rs--mobile .rgal-comps-head .rgal-add { margin-left:auto; }
    .rs .rgal-comps-t { font-size:13px; font-weight:600; color:var(--text-tertiary); flex:none; white-space:nowrap; }
    /* tira de chips con scroll horizontal (caben 20+ competidores sin romper la fila) */
    .rs .rgal-comps { flex:1; min-width:0; display:flex; align-items:center; gap:9px; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none; padding-bottom:2px; }
    .rs .rgal-comps::-webkit-scrollbar { display:none; }
    .rs .rgal-chip { flex:none; }
    .rs .rgal-chip { display:inline-flex; align-items:center; gap:8px; padding:7px 13px; border-radius:999px; background:var(--surface-raised); border:1px solid var(--border-default); color:var(--text-secondary); font-family:inherit; font-weight:600; font-size:13.5px; cursor:pointer; transition:all .18s var(--ease); }
    .rs .rgal-chip.on { background:var(--brand-50, rgba(47,91,255,.16)); border-color:var(--brand-500,#2F5BFF); color:var(--text-primary); }
    .rs .rgal-chip-av { width:24px; height:24px; border-radius:999px; background:var(--surface-sunken); display:inline-flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-size:10px; color:var(--text-secondary); }
    .rs .rgal-chip-n { font-family:var(--font-mono); font-size:11px; color:var(--text-tertiary); }
    /* v3 — desplegable «+N» de competidores con buscador */
    .rs .rgal-more-wrap { position:relative; flex:none; }
    .rs .rgal-morebtn { color:var(--text-secondary); }
    .rs .rgal-morebtn.on { background:var(--surface-overlay); border-color:var(--border-strong); color:var(--text-primary); }
    .rs .gal-menu { position:absolute; top:calc(100% + 8px); right:0; z-index:40; width:280px; max-width:80vw; background:var(--surface-raised); border:1px solid var(--border-strong); border-radius:14px; box-shadow:0 18px 44px -18px rgba(0,0,0,.6); padding:10px; display:flex; flex-direction:column; gap:9px; }
    .rs .gal-menu-search { width:100%; padding:9px 12px; border-radius:10px; background:var(--surface-overlay); border:1px solid var(--border-default); color:var(--text-primary); font-family:inherit; font-size:13.5px; outline:none; }
    .rs .gal-menu-search:focus { border-color:var(--brand-500,#2F5BFF); }
    .rs .gal-menu-list { display:flex; flex-direction:column; gap:3px; max-height:260px; overflow-y:auto; }
    .rs .gal-menu-row { display:flex; align-items:center; gap:9px; width:100%; padding:8px 9px; border-radius:10px; background:transparent; border:none; cursor:pointer; font-family:inherit; font-size:13.5px; color:var(--text-secondary); text-align:left; transition:background .14s var(--ease); }
    .rs .gal-menu-row:hover { background:var(--surface-overlay); color:var(--text-primary); }
    .rs .gal-menu-row.on { background:var(--brand-50, rgba(47,91,255,.16)); color:var(--text-primary); }
    .rs .gal-menu-h { flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .rs .rgal-add { flex:none; display:inline-flex; align-items:center; gap:6px; padding:8px 14px; border-radius:999px; background:transparent; border:1px dashed var(--border-strong); color:var(--text-secondary); font-family:inherit; font-weight:600; font-size:13.5px; cursor:pointer; white-space:nowrap; }
    .rs .rgal-add svg { width:14px; height:14px; }
    .rs .rgal-galline-row { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
    .rs .rgal-galline { font-size:14px; color:var(--text-tertiary); }
    .rs .rgal-galline b { color:var(--text-secondary); font-weight:600; }
    .rs .rgal-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:48px; background:var(--surface-raised); border:1px dashed var(--border-strong); border-radius:18px; text-align:center; }
    .rs .rgal-empty-h { font-family:var(--font-accent); font-weight:700; font-size:19px; color:var(--text-primary); }
    .rs .rgal-empty-s { font-size:14px; color:var(--text-tertiary); }
    /* v3 mockup David — pestañas de «Más señales» */
    .rs .signals-head { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
    .rs .sig-tabs { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
    .rs .sig-tab { display:inline-flex; align-items:center; gap:6px; padding:9px 15px; border-radius:12px; background:transparent; border:1px solid var(--border-default); color:var(--text-secondary); font-family:inherit; font-weight:600; font-size:14px; cursor:pointer; transition:all .18s var(--ease); }
    .rs .sig-tab.on { background:var(--surface-overlay); border-color:var(--border-strong); border-bottom:3px solid var(--border-strong); color:var(--text-primary); }
    .rs .sig-tab svg { width:14px; height:14px; }
    .rs .rgal-head { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:13px; }
    .rs .rgal-t { font-family:var(--font-display); font-size:19px; font-weight:600; letter-spacing:-.015em; color:var(--text-primary); }
    .rs .rgal-sub { font-family:var(--font-body); font-size:12.5px; font-weight:500; color:var(--text-tertiary); margin-left:9px; }
    .rs .rgal-more { background:transparent; border:none; cursor:pointer; font:inherit; font-family:var(--font-body); font-size:12.5px; font-weight:600; color:var(--text-secondary); display:inline-flex; align-items:center; gap:5px; flex-shrink:0; padding:0; transition:color .14s var(--ease); }
    .rs .rgal-more:hover { color:var(--brand-400); }
    .rs .rgal-arrows { display:flex; gap:8px; flex-shrink:0; }
    .rs .rgal-arrow { width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; background:var(--surface-raised); border:1px solid var(--border-default); color:var(--text-secondary); transition:color .14s var(--ease), border-color .14s var(--ease), background .14s var(--ease), transform .12s var(--ease); }
    .rs .rgal-arrow:hover { color:var(--text-primary); border-color:var(--brand-500); background:var(--surface-overlay); }
    .rs .rgal-arrow:active { transform:scale(.92); }
    .rs .rgal-arrow svg { width:17px; height:17px; }
    .rs .rgal-track { display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x proximity; scroll-behavior:smooth; -ms-overflow-style:none; scrollbar-width:none; padding:2px 2px 6px; margin:0 -2px; }
    .rs .rgal-track::-webkit-scrollbar { display:none; }
    /* ── Tarjeta de reel de competidor (mockup David): thumb 9:16 + body + acciones ── */
    .rs .crd-track { gap:16px; }
    .rs .crd { flex:0 0 212px; display:flex; flex-direction:column; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:18px; overflow:hidden; transition:transform .18s var(--ease); scroll-snap-align:start; }
    .rs .crd:hover { transform:translateY(-2px); }
    .rs .crd-thumb { position:relative; height:284px; background:linear-gradient(160deg, var(--surface-overlay), var(--surface-raised)); }
    .rs .crd-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
    .rs .crd-ph { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
    .rs .crd-ph svg { width:30px; height:30px; color:rgba(255,255,255,.9); }
    .rs .crd-mult { position:absolute; top:12px; left:12px; display:inline-flex; align-items:center; gap:5px; padding:5px 10px; border-radius:9px; background:rgba(0,0,0,.55); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); font-family:var(--font-mono); font-size:13px; font-weight:600; color:var(--success-fg); }
    .rs .crd-mult svg { width:13px; height:13px; color:#FF8A3D; }
    .rs .crd-dur { position:absolute; right:12px; bottom:12px; padding:2px 7px; border-radius:6px; background:rgba(0,0,0,.6); color:#fff; font-family:var(--font-mono); font-size:11px; }
    .rs .crd-play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:44px; height:44px; border-radius:9999px; background:rgba(0,0,0,.4); display:flex; align-items:center; justify-content:center; }
    .rs .crd-play svg { width:15px; height:15px; color:#fff; }
    .rs .crd-body { padding:16px; display:flex; flex-direction:column; gap:11px; flex:1; }
    .rs .crd-meta { font-family:var(--font-mono); font-size:11px; color:var(--text-tertiary); }
    .rs .crd-title { font-family:var(--font-display); font-weight:700; font-size:17px; line-height:1.15; color:var(--text-primary); margin:0; flex:1; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
    .rs .crd-acts { display:flex; gap:8px; }
    .rs .crd-btn { display:inline-flex; align-items:center; justify-content:center; gap:7px; border-radius:11px; font-family:var(--font-body); font-weight:600; font-size:13px; cursor:pointer; padding:10px; transition:transform .1s var(--ease); }
    .rs .crd-btn:active { transform:translateY(1px); border-bottom-width:1px; }
    .rs .crd-metrics { flex:1; background:var(--surface-overlay); border:1px solid var(--border-strong); border-bottom:3px solid var(--border-strong); color:var(--text-primary); }
    .rs .crd-metrics svg { width:15px; height:15px; }
    .rs .crd-steal { flex:none; background:var(--brand-500); border:none; border-bottom:3px solid var(--brand-700); color:#fff; padding:10px 13px; }
    .rs .crd-steal svg { width:15px; height:15px; }
    .rs .crd-metrics.on { border-color:var(--brand-500); color:var(--brand-500); }
    /* Expand inline de la card (mockup David): main 212 + panel 282 a la derecha. */
    .rs .crd-main { display:flex; flex-direction:column; min-width:0; width:100%; }
    .rs .crd--open { flex-basis:auto; flex-direction:row; max-width:none; }
    .rs .crd--open .crd-main { width:212px; flex:none; }
    .rs .crd-panel { width:282px; flex:none; border-left:1px solid var(--border-default); background:var(--surface-overlay); padding:18px; display:flex; flex-direction:column; gap:14px; }
    .rs .crd-pgrid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
    .rs .crd-stat-k { font-size:11.5px; font-weight:600; color:var(--text-tertiary); margin-bottom:3px; }
    .rs .crd-stat-v { font-family:var(--font-display); font-weight:700; font-size:22px; line-height:1; color:var(--text-primary); }
    .rs .crd-stat-v.g { color:var(--success-fg); }
    .rs .crd-txwrap { display:flex; flex-direction:column; gap:7px; flex:1; min-height:0; }
    .rs .crd-tx-lbl { font-family:var(--font-mono); font-size:10px; letter-spacing:.08em; color:var(--text-tertiary); }
    .rs .crd-tx { font-size:13.5px; line-height:1.55; color:var(--text-secondary); background:var(--surface-raised); border:1px solid var(--border-default); border-radius:12px; padding:12px; max-height:158px; overflow-y:auto; }
    .rs .crd-tx--wait { display:flex; align-items:center; gap:8px; color:var(--text-tertiary); font-size:13px; }
    .rs .crd-steal-full { width:100%; }
    .rs .gcard { position:relative; flex:0 0 220px; aspect-ratio:9/16; border-radius:16px; overflow:hidden; cursor:pointer; background:var(--surface-overlay); border:1px solid var(--border-subtle); scroll-snap-align:start; transition:transform .16s var(--ease), box-shadow .16s var(--ease); }
    .rs .gcard:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
    .rs .gcard:focus-visible { outline:2px solid var(--brand-500); outline-offset:2px; }
    .rs .gcard img { width:100%; height:100%; object-fit:cover; display:block; }
    .rs .gcard-ph { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
    .rs .gcard-ph svg { width:38px; height:38px; color:rgba(255,255,255,.9); filter:drop-shadow(0 2px 6px rgba(0,0,0,.3)); }
    .rs .gcard-ov { position:absolute; inset:auto 0 0 0; padding:38px 14px 14px; background:linear-gradient(180deg, transparent, rgba(0,0,0,.78)); }
    .rs .gcard-h { font-size:14px; font-weight:700; color:#fff; line-height:1.15; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .rs .gcard-cap { font-size:12.5px; color:rgba(255,255,255,.82); line-height:1.3; margin-top:4px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
    .rs .gcard-badge { position:absolute; top:10px; left:10px; font-family:var(--font-mono); font-size:13px; font-weight:700; color:var(--success); background:rgba(0,0,0,.5); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); padding:4px 9px; border-radius:9px; letter-spacing:-.01em; }
    .rs .gcard-soon { position:absolute; top:10px; right:10px; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#fff; background:var(--brand-600); padding:4px 8px; border-radius:8px; }
    .rs .rgal-soon { display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:22px; border-radius:16px; border:1px dashed color-mix(in srgb, var(--brand-500) 30%, transparent); background:color-mix(in srgb, var(--brand-500) 6%, var(--surface-raised)); }
    .rs .rgal-soon-pill { display:inline-flex; align-items:center; gap:7px; font-size:13.5px; font-weight:700; color:var(--brand-400); }
    .rs .rgal-soon-pill svg { width:16px; height:16px; }
    .rs .rgal-soon .rgal-more { margin-left:auto; }
    /* móvil: los 3 textos (Próximamente · Más información · Avísame) se apilan
       alineados a la izquierda en vez de quedar descuadrados a la derecha. */
    .rs--mobile .rgal-soon { flex-direction:column; align-items:flex-start; gap:10px; }
    .rs--mobile .rgal-soon .rgal-more { margin-left:0; }
    [data-theme="light"] .rs .rgal-soon-pill, .rs[data-theme="light"] .rgal-soon-pill { color:var(--brand-600); }
    [data-theme="light"] .rs .rgal-more:hover, .rs[data-theme="light"] .rgal-more:hover { color:var(--brand-600); }
    @media (max-width:720px){ .rs .gcard { flex-basis:168px; } }
    /* mini-modal Comunidad */
    .rs .ci-overlay { position:fixed; inset:0; z-index:120; display:flex; align-items:center; justify-content:center; padding:20px; background:rgba(0,0,0,.6); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); animation:ciFade .18s var(--ease); }
    .rs .ci-card { position:relative; width:100%; max-width:460px; max-height:calc(100vh - 40px); overflow-y:auto; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:20px; box-shadow:var(--shadow-xl); padding:0 24px 24px; animation:ciPop .22s var(--ease); }
    .rs .ci-x { position:absolute; top:12px; right:12px; z-index:2; width:32px; height:32px; border-radius:50%; border:none; background:rgba(0,0,0,.38); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; }
    .rs .ci-x:hover { background:rgba(0,0,0,.55); }
    .rs .ci-x svg { width:16px; height:16px; }
    .rs .ci-stage { position:relative; margin:0 -24px 18px; height:150px; overflow:hidden; border-radius:20px 20px 0 0; background:radial-gradient(120% 130% at 50% 0%, color-mix(in srgb, var(--brand-500) 24%, transparent), transparent 62%), linear-gradient(180deg, var(--surface-overlay), var(--surface-sunken)); display:flex; align-items:center; }
    .rs .ci-strip { display:flex; gap:10px; padding:0 14px; width:max-content; animation:ciMarquee 20s linear infinite; }
    .rs .ci-mini { flex:0 0 64px; height:104px; border-radius:11px; overflow:hidden; background:var(--surface-overlay); display:flex; align-items:center; justify-content:center; box-shadow:0 5px 16px rgba(0,0,0,.32); }
    .rs .ci-mini img { width:100%; height:100%; object-fit:cover; }
    .rs .ci-mini svg { width:20px; height:20px; color:rgba(255,255,255,.85); }
    .rs .ci-gift { position:absolute; right:18px; top:16px; animation:ciGift 2.6s ease-in-out infinite; filter:drop-shadow(0 5px 12px rgba(0,0,0,.45)); color:var(--warning-fg); }
    .rs .ci-gift svg { width:30px; height:30px; }
    @media (prefers-reduced-motion: reduce){ .rs .ci-strip, .rs .ci-gift, .rs .ci-overlay, .rs .ci-card { animation:none; } }
    .rs .ci-pill { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700; color:var(--brand-400); text-transform:uppercase; letter-spacing:.05em; }
    .rs .ci-pill svg { width:14px; height:14px; }
    [data-theme="light"] .rs .ci-pill, .rs[data-theme="light"] .ci-pill { color:var(--brand-600); }
    .rs .ci-h { font-family:var(--font-display); font-size:24px; font-weight:600; letter-spacing:-.02em; margin:8px 0 6px; color:var(--text-primary); }
    .rs .ci-sub { font-size:14px; line-height:1.5; color:var(--text-secondary); margin:0 0 18px; }
    .rs .ci-feats { list-style:none; margin:0 0 20px; padding:0; display:flex; flex-direction:column; gap:14px; }
    .rs .ci-feats li { display:flex; gap:12px; align-items:flex-start; }
    .rs .ci-fi { flex:0 0 38px; height:38px; border-radius:11px; display:flex; align-items:center; justify-content:center; background:color-mix(in srgb, var(--brand-500) 13%, var(--surface-overlay)); }
    .rs .ci-fi svg { width:20px; height:20px; color:var(--brand-400); }
    [data-theme="light"] .rs .ci-fi svg, .rs[data-theme="light"] .ci-fi svg { color:var(--brand-600); }
    .rs .ci-feats b { display:block; font-size:14px; color:var(--text-primary); margin-bottom:2px; }
    .rs .ci-feats li > div { font-size:13px; line-height:1.4; color:var(--text-secondary); }
    .rs .ci-go { width:100%; }
    .rs .ci-done { display:flex; align-items:center; justify-content:center; gap:8px; padding:13px; border-radius:12px; background:var(--success-bg); color:var(--success-fg); font-weight:600; font-size:13.5px; }
    .rs .ci-done svg { width:16px; height:16px; }
    @keyframes ciMarquee { from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
    @keyframes ciGift { 0%,100%{ transform:translateY(0) rotate(-5deg); } 50%{ transform:translateY(-8px) rotate(5deg); } }
    @keyframes ciFade { from{ opacity:0; } to{ opacity:1; } }
    @keyframes ciPop { from{ opacity:0; transform:translateY(12px) scale(.97); } to{ opacity:1; transform:none; } }

    /* ── MÉTRICAS (v3) ──────────────────────────────────────────────────────
       Labels en frase (no MAYÚSCULA-mono, regla 2) · paleta AZUL en gráficos
       (decisión cliente) · verde solo en el × de «explota» · mediana neutra. */
    .rs .met-card-l { text-transform:none; letter-spacing:0; font-size:11.5px; color:var(--text-secondary); font-family:var(--font-body); }
    .rs .bar-fill.is-top { background:linear-gradient(90deg, var(--brand-500), var(--brand-400)); }
    .rs .bar-line.mediana { border-color:var(--text-tertiary); }
    .rs .bar-line.mediana span { color:var(--text-secondary); }
    .rs .pub-link .gp-mult.up { color:var(--success-fg); font-weight:700; }

    /* ── ONBOARDING (v3): acentos azules legibles en tema claro (brand-400 sobre
       papel se queda en ~3.75:1; subir a -600/-700 para AA). ── */
    [data-theme="light"] .rs .onb-eyebrow, .rs[data-theme="light"] .onb-eyebrow { color: var(--brand-600); }
    [data-theme="light"] .rs .onb-chip.on, .rs[data-theme="light"] .onb-chip.on { color: var(--brand-700); }

    /* ── AJUSTES (v3) — el panel vive en el chrome legacy (#profPanelSettings), fuera
       de .rs. Mismo truco: redefinir los tokens v3 scoped al panel (ID gana a :root;
       los alias legacy --text/--brand siguen porque son var(--text-primary)/...).
       Solo afecta a #profPanelSettings → la landing y el resto del chrome intactos. */
    #profPanelSettings {
      --surface-base:#090C15; --surface-raised:#111726; --surface-overlay:#172032; --surface-sunken:#0A0E18;
      --text-primary:#F3F6FC; --text-secondary:#A6B1C6; --text-tertiary:#7E8799; --text-disabled:#454F63;
      --border-subtle:rgba(255,255,255,.07); --border-default:rgba(255,255,255,.10); --border-strong:rgba(255,255,255,.13);
      --brand-50:#0E1730; --brand-100:#13204a; --brand-200:#1A2C66; --brand-300:#23409C;
      --brand-400:#6E92FF; --brand-500:#2F5BFF; --brand-600:#2F5BFF; --brand-700:#1B3FD6; --brand-800:#152FA6; --brand-900:#0F236E;
      --success:#2FD18A; --success-bg:rgba(47,209,138,.12); --success-fg:#3FE0A0; --success-border:rgba(47,209,138,.30);
      --font-display:'Clash Display','Space Grotesk',system-ui,sans-serif;
      --font-display-2:'Clash Display','Space Grotesk',system-ui,sans-serif;
      --font-body:'Schibsted Grotesk',system-ui,-apple-system,sans-serif;
      --font-mono:'Geist Mono',ui-monospace,'SF Mono',Menlo,monospace;
    }
    [data-theme="light"] #profPanelSettings {
      --surface-base:#FAF7F1; --surface-raised:#FFFFFF; --surface-overlay:#F4EFE6; --surface-sunken:#F0EBE0;
      --text-primary:#171511; --text-secondary:#574F42; --text-tertiary:#6A6350; --text-disabled:#9A917E;
      --border-subtle:rgba(24,22,14,.08); --border-default:rgba(24,22,14,.12); --border-strong:rgba(24,22,14,.18);
      --brand-50:#EDF1FF; --brand-100:#DCE4FF; --brand-200:#BFCFFF; --brand-300:#90AEFF;
      --brand-400:#4A74FF; --brand-500:#2348E6; --brand-600:#2348E6; --brand-700:#1A37B8; --brand-800:#142B8F; --brand-900:#0F2070;
      --success:#0E8A5A; --success-bg:rgba(14,138,90,.10); --success-fg:#0A6B45; --success-border:rgba(14,138,90,.28);
    }
    /* La página Configuración (panel legacy reparentado en la isla) ocupaba TODO el
       ancho del host → se veía estirada. La capamos y centramos como la isla
       (.canvas, max-width 1180px) para igualar el ancho de la pestaña Ajustes. */
    #profPanelSettings { max-width:1180px; margin:0 auto; padding-left:26px; padding-right:26px; box-sizing:border-box; }
    @media (max-width:760px){ #profPanelSettings { padding-left:16px; padding-right:16px; } }
    /* Titular en Clash; eyebrow en mono (telemetría); tab activo azul v3 */
    #profPanelSettings .heading-1 { font-family: var(--font-display); letter-spacing:-.02em; }
    #profPanelSettings .panel-header .eyebrow { font-family: var(--font-mono); }
    #profPanelSettings .settings-tab.on { border-bottom-color: var(--brand-500); color: var(--text-primary); }
    [data-theme="light"] #profPanelSettings .settings-tab.on { border-bottom-color: var(--brand-600); }
    /* toggle de tema (☀🖥🌙 → iconos de trazo): centra y dimensiona los SVG */
    .theme-seg-opt { display:inline-flex; align-items:center; justify-content:center; }
    .theme-seg-opt svg { width:16px; height:16px; }

    /* ── AJUSTES · secciones nuevas (mockup Ajustes.dc.html) ── */
    /* v3 fix (pre-publi): los botones de Ajustes llevan btn-3d* (que es SOLO sombra)
       sin clase base ni relleno → el navegador los pintaba como botón nativo (fondo
       gris, borde outset). Les damos base + relleno aquí, scoped al panel, sin tocar
       el resto de la app. Los ghost intencionales (con background:transparent inline)
       quedan intactos: el estilo inline gana sobre estos selectores. */
    #profPanelSettings .btn-3d { display:inline-flex; align-items:center; justify-content:center;
      gap:8px; border:1px solid var(--border-default); border-radius:10px; font-weight:600;
      font-size:.85rem; line-height:1; cursor:pointer; box-sizing:border-box; }
    #profPanelSettings .btn-3d-primary { background:var(--brand-600); color:#fff; border-color:var(--brand-600); }
    #profPanelSettings .btn-3d-secondary { background:var(--surface-raised); color:var(--text-primary); }
    #profPanelSettings .btn-3d-danger { background:#dc2626; color:#fff; border-color:#dc2626; }
    #profPanelSettings .set-btn { flex:none; height:38px; padding:0 16px; }
    #profPanelSettings .mono { font-family:var(--font-mono); }
    /* Perfil y voz */
    #profPanelSettings .set-identity { display:flex; align-items:center; gap:20px; padding:22px; background:var(--surface-raised); border:1px solid var(--border-subtle); border-radius:18px; margin-bottom:16px; flex-wrap:wrap; }
    #profPanelSettings .set-ava { width:64px; height:64px; flex:none; border-radius:50%; background:linear-gradient(140deg,var(--brand-500),var(--brand-700)); display:flex; align-items:center; justify-content:center; color:#fff; font-family:var(--font-display); font-weight:700; font-size:26px; }
    #profPanelSettings .set-identity-main { flex:1; min-width:160px; }
    #profPanelSettings .set-identity-name { font-family:var(--font-display); font-weight:600; font-size:21px; color:var(--text-primary); }
    #profPanelSettings .set-identity-handle { font-family:var(--font-mono); font-size:13px; color:var(--text-tertiary); }
    #profPanelSettings .set-brain-badge { display:inline-flex; align-items:center; gap:7px; padding:8px 14px; border-radius:999px; background:var(--brand-100); color:var(--brand-400); font-weight:600; font-size:13px; }
    [data-theme="light"] #profPanelSettings .set-brain-badge { color:var(--brand-700); }
    #profPanelSettings .set-voice-card { display:flex; flex-direction:column; gap:16px; }
    #profPanelSettings .set-voice-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; }
    #profPanelSettings .set-voice-title { font-family:var(--font-display); font-weight:600; font-size:20px; color:var(--text-primary); margin-bottom:5px; }
    #profPanelSettings .set-voice-sub { font-size:14px; color:var(--text-secondary); max-width:560px; line-height:1.5; }
    #profPanelSettings .set-voice-src { font-family:var(--font-mono); font-size:11.5px; color:var(--text-tertiary); white-space:nowrap; }
    #profPanelSettings .set-tonos { display:flex; flex-wrap:wrap; gap:9px; }
    #profPanelSettings .tono-chip { display:inline-flex; align-items:center; gap:7px; padding:10px 16px; border-radius:999px; cursor:pointer; font-weight:600; font-size:14px; font-family:var(--font-body); background:var(--surface-overlay); border:1px solid var(--border-default); color:var(--text-secondary); transition:all .18s ease; }
    #profPanelSettings .tono-chip.on { background:var(--brand-100); border-color:var(--brand-500); color:var(--brand-400); }
    [data-theme="light"] #profPanelSettings .tono-chip.on { color:var(--brand-700); }
    #profPanelSettings .set-voice-mulet-lbl { font-size:13px; font-weight:600; color:var(--text-tertiary); display:block; margin-bottom:6px; }
    #profPanelSettings .set-voice-mulet { padding:16px; background:var(--surface-overlay); border:1px solid var(--border-default); border-radius:13px; font-size:14.5px; line-height:1.6; color:var(--text-secondary); }
    #profPanelSettings .set-voice-foot { display:flex; gap:10px; flex-wrap:wrap; padding-top:4px; }
    /* Plan y créditos */
    #profPanelSettings .set-plan-top { display:grid; grid-template-columns:1.3fr 1fr; gap:16px; margin-bottom:16px; }
    @media (max-width:760px){ #profPanelSettings .set-plan-top { grid-template-columns:1fr; } }
    #profPanelSettings .set-plan-current { padding:24px; background:linear-gradient(120deg,var(--brand-100),var(--surface-raised)); border:1px solid var(--border-subtle); border-radius:20px; display:flex; flex-direction:column; gap:15px; }
    #profPanelSettings .set-plan-row1 { display:flex; align-items:center; justify-content:space-between; }
    #profPanelSettings .set-plan-tag { font-family:var(--font-mono); font-size:12px; color:var(--brand-400); letter-spacing:.04em; }
    [data-theme="light"] #profPanelSettings .set-plan-tag { color:var(--brand-700); }
    #profPanelSettings .set-plan-renew { font-family:var(--font-mono); font-size:12px; color:var(--text-tertiary); }
    #profPanelSettings .set-plan-amt { font-family:var(--font-display); font-weight:700; font-size:38px; color:var(--text-primary); line-height:1; }
    #profPanelSettings .set-plan-per { font-size:15px; color:var(--text-secondary); margin-left:6px; }
    #profPanelSettings .set-plan-credits-row { display:flex; justify-content:space-between; font-size:13.5px; color:var(--text-secondary); margin-bottom:8px; }
    #profPanelSettings .set-plan-bar { height:9px; border-radius:999px; background:var(--surface-overlay); overflow:hidden; }
    #profPanelSettings .set-plan-fill { height:100%; border-radius:999px; background:linear-gradient(90deg,var(--brand-500),var(--brand-400)); }
    #profPanelSettings .set-cancel-link { display:block; margin:12px auto 0; background:none; border:none; color:var(--text-tertiary); font:inherit; font-size:12.5px; text-decoration:underline; cursor:pointer; padding:4px; }
    #profPanelSettings .set-cancel-link:hover { color:var(--text-secondary); }
    #profPanelSettings .set-cancel-link:disabled { opacity:.6; cursor:default; }
    #profPanelSettings .set-cancel-note { margin-top:8px; font-size:12.5px; color:var(--text-secondary); line-height:1.45; text-align:center; }
    #profPanelSettings .set-plan-hint { font-size:12.5px; color:var(--text-tertiary); display:block; margin-top:7px; }
    #profPanelSettings .set-plan-actions { display:flex; gap:10px; flex-wrap:wrap; }
    #profPanelSettings .set-plan-usage { padding:22px; background:var(--surface-raised); border:1px solid var(--border-subtle); border-radius:20px; display:flex; flex-direction:column; gap:6px; }
    #profPanelSettings .set-plan-usage-t { font-weight:700; font-size:16px; color:var(--text-primary); margin-bottom:8px; }
    #profPanelSettings .set-usage-row { display:flex; justify-content:space-between; padding:11px 0; border-top:1px solid var(--border-subtle); font-size:14px; color:var(--text-secondary); }
    #profPanelSettings .set-plans-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin-bottom:16px; }
    #profPanelSettings .plan-card { padding:18px; background:var(--surface-raised); border:1px solid var(--border-default); border-radius:16px; display:flex; flex-direction:column; gap:6px; }
    #profPanelSettings .plan-card.is-current { border-color:var(--brand-500); background:var(--brand-100); }
    #profPanelSettings .plan-card.featured { border-color:var(--brand-500); }
    #profPanelSettings .plan-card-name { font-family:var(--font-display); font-weight:600; font-size:16px; color:var(--text-primary); display:flex; align-items:center; gap:6px; }
    #profPanelSettings .plan-card-price { font-family:var(--font-display); font-weight:700; font-size:24px; color:var(--text-primary); }
    #profPanelSettings .plan-card-price small { font-size:12px; color:var(--text-tertiary); font-weight:400; }
    #profPanelSettings .plan-card-feat { font-size:12.5px; color:var(--text-secondary); line-height:1.4; }
    #profPanelSettings .plan-card-cur { margin-top:auto; font-family:var(--font-mono); font-size:11px; color:var(--brand-400); text-transform:uppercase; letter-spacing:.05em; }
    #profPanelSettings .set-topups-t { font-weight:700; font-size:15px; color:var(--text-primary); display:block; margin-bottom:10px; }
    #profPanelSettings .set-topups-row { display:flex; gap:10px; flex-wrap:wrap; }
    #profPanelSettings .set-topup { flex:1; min-width:130px; padding:14px 16px; background:var(--surface-raised); border:1px solid var(--border-default); border-bottom:3px solid var(--border-strong); border-radius:13px; cursor:pointer; display:flex; flex-direction:column; gap:3px; text-align:left; transition:transform .12s var(--ease,ease), border-color .15s; }
    #profPanelSettings .set-topup:hover { border-color:var(--brand-500); }
    #profPanelSettings .set-topup:active { transform:translateY(2px); border-bottom-width:2px; }
    #profPanelSettings .set-topup b { font-size:14.5px; color:var(--text-primary); }
    #profPanelSettings .set-topup span { font-family:var(--font-mono); font-size:13px; color:var(--text-secondary); }
    /* Afiliados */
    #profPanelSettings .set-aff-kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:16px; }
    @media (max-width:680px){ #profPanelSettings .set-aff-kpis { grid-template-columns:1fr; } }
    #profPanelSettings .set-aff-kpi { padding:20px; background:var(--surface-raised); border:1px solid var(--border-subtle); border-radius:18px; display:flex; flex-direction:column; gap:7px; }
    #profPanelSettings .set-aff-k { font-size:13px; font-weight:600; color:var(--text-tertiary); }
    #profPanelSettings .set-aff-v { font-family:var(--font-display); font-weight:700; font-size:30px; line-height:1; color:var(--text-primary); }
    #profPanelSettings .set-aff-v.green { color:var(--success-fg); }
    #profPanelSettings .set-aff-s { font-size:12.5px; color:var(--text-secondary); }
    #profPanelSettings .set-aff-link { padding:22px; background:linear-gradient(120deg,var(--brand-100),var(--surface-raised)); border:1px solid var(--border-subtle); border-radius:20px; display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; margin-bottom:16px; }
    #profPanelSettings .set-aff-link-t { font-family:var(--font-display); font-weight:600; font-size:19px; color:var(--text-primary); margin-bottom:4px; }
    #profPanelSettings .set-aff-link-sub { font-size:14px; color:var(--text-secondary); }
    #profPanelSettings .set-aff-link-sub strong { color:var(--text-primary); }
    #profPanelSettings .set-aff-link-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
    #profPanelSettings .set-aff-url { font-size:13.5px; color:var(--text-primary); background:var(--surface-raised); border:1px solid var(--border-strong); border-radius:11px; padding:11px 15px; }
    #profPanelSettings .set-aff-list { padding:4px 22px; background:var(--surface-raised); border:1px solid var(--border-subtle); border-radius:18px; }
    #profPanelSettings .set-aff-row { display:flex; align-items:center; gap:14px; padding:15px 0; border-top:1px solid var(--border-subtle); }
    #profPanelSettings .set-aff-row:first-child { border-top:none; }
    #profPanelSettings .set-aff-row .ini { width:34px; height:34px; border-radius:50%; background:var(--surface-overlay); border:1px solid var(--border-default); display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-size:11px; color:var(--text-secondary); flex:none; }
    #profPanelSettings .set-aff-row .nm { flex:1; }
    #profPanelSettings .set-aff-row .nm b { display:block; font-size:14.5px; color:var(--text-primary); }
    #profPanelSettings .set-aff-row .nm span { font-size:12.5px; color:var(--text-tertiary); }
    #profPanelSettings .set-aff-row .amt { font-family:var(--font-display); font-weight:700; font-size:16px; color:var(--success-fg); }
    /* Contrato punto 5 (05/07): agotamiento honesto — card «has visto todo lo fresco» + CTA. */
    .rs .stday-exhausted { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center; padding:16px 12px; }
    .rs .stday-exhausted-full { display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; padding:22px 16px; border:1px dashed var(--border-default); border-radius:14px; }
    .rs .stday-exh-t { font-size:12.5px; font-weight:600; color:var(--text-secondary); }
    .rs .stday-exhausted-full .stday-exh-t { font-size:14px; }
    .rs .stday-exh-cta { display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:600; padding:8px 13px; border:1px solid var(--brand-500); border-radius:9px; background:transparent; color:var(--brand-500); cursor:pointer; }
    .rs .stday-exh-cta:hover { background:color-mix(in srgb, var(--brand-500) 10%, transparent); }
    .rs .stday-exh-cta svg { width:13px; height:13px; }
    .rs .stday-exh-sub { font-size:11px; color:var(--text-tertiary); }
    /* Contrato B1 «ninguna marca nace muda»: estado HONESTO «poblando tu radar» (nicho aún sin
       reels; la siembra corre en background y el poll llena esto solo, sin recargar). */
    .rs .stday-pop { display:flex; align-items:center; gap:14px; padding:18px 16px; border:1px dashed var(--border-default); border-radius:14px; }
    .rs .stday-pop-tx { flex:1 1 auto; min-width:0; }
    .rs .stday-pop-t { font-size:14px; font-weight:600; color:var(--text-secondary); }
    .rs .stday-pop-sub { font-size:12px; color:var(--text-tertiary); margin-top:3px; }
    .rs .stday-pop .btn { flex:0 0 auto; }
    .rs .stday-pop-spin { flex:0 0 auto; width:22px; height:22px; border-radius:50%; border:2.5px solid var(--border-default); border-top-color:var(--brand-500); animation:stday-pop-spin .8s linear infinite; }
    @keyframes stday-pop-spin { to { transform:rotate(360deg); } }
