/* =====================================================================
 * DALIA — asistente global de Datalyse en el topbar (2026-08-09)
 *
 * Superficies:
 *   1) .dalia-center / .dalia-pill  → pill centrado en el topbar con anillo
 *      de gradiente animado (efecto IA tipo Gemini, paleta IA de la casa:
 *      --dt-blue / --dt-cyan / --dt-coral).
 *   2) #daliaPanel (.dalia-panel)   → panel global position:fixed (vive en
 *      #main-wrapper; ese wrapper no debe ganar transform/filter nunca).
 *      Dos modos via data-mode: "pop" (mini-desplegable bajo el pill) y
 *      "dock" (columna derecha a todo el alto). El cambio de modo es SOLO
 *      CSS: el chat nativo conserva su estado al cambiar de modo.
 *      Tres vistas via data-view: search / chat / voice.
 *
 * Contratos que NO se pueden romper:
 *   - Los ids #homebuscarforminput y #buscadorAkiponresultados los pinta el
 *     motor del buscador de 165_appMARC.js (clases .dt-search-modal__* y
 *     markup legacy a.dropdown-item): aqui solo se re-estilan (seccion 7).
 *   - Mismo fondo del input en rest/hover/focus/active (contrato visual).
 *   - Nada de [role="search"] en el wrapper (lastcssmarc.css le cambiaria
 *     el fondo en hover/focus).
 *   - Ambos temas SOLO con tokens --dt-* (light/dark via [data-bs-theme]).
 *
 * Controlador: cssyapp/165_appDALIA.js (window.DaliaPanel).
 * ===================================================================== */

/* --------------------------------------------------------------------
 * 1 · Rejilla del topbar: 3 zonas flex → centrado real sin solapes.
 * El ul izquierdo va en row-reverse (inline en index.html), por eso su
 * justify-content:flex-end equivale visualmente al borde IZQUIERDO.
 * -------------------------------------------------------------------- */
.topbar .navbar {
  flex-wrap: nowrap;
}

.topbar .navbar > ul.navbar-nav {
  flex: 1 1 0;
  min-width: 0;
  justify-content: flex-end;
}

.topbar .navbar > #navbarNav {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  justify-content: flex-end;
}

.dalia-center {
  position: relative;
  display: flex;
  flex: 0 1 auto;
  min-width: 0;
  height: 100%;
  align-items: center;
  justify-content: center;
  padding: 0 8px;
}

/* --------------------------------------------------------------------
 * 2 · Pill Dalia: anillo conic-gradient rotando (doble background
 * padding-box/border-box). @property permite interpolar el angulo; sin
 * soporte, el fallback --dalia-angle:0deg deja el anillo estatico y la
 * vida la ponen el glow de hover y la respiracion del mini orbe.
 * -------------------------------------------------------------------- */
@property --dalia-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}

/* Reposo: discreto (borde neutro, sin
   anillo animado). El efecto Gemini se enciende en hover/abierto. */
.dalia-pill {
  --dalia-angle: 0deg;
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: clamp(200px, 26vw, 340px);
  max-width: 100%;
  height: 30px;
  padding: 0 12px 0 9px;
  border: 1px solid var(--dt-border);
  border-radius: 999px;
  background: transparent;
  color: var(--dt-muted);
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  transition: color .12s ease, border-color .12s ease, box-shadow .18s ease;
}

.dalia-pill:hover,
.dalia-pill[aria-expanded="true"] {
  color: var(--dt-text);
  border-color: transparent;
  background:
    linear-gradient(var(--dt-hover), var(--dt-hover)) padding-box,
    conic-gradient(from var(--dalia-angle),
      var(--dt-blue), var(--dt-cyan) 32%, var(--dt-coral) 58%,
      var(--dt-blue) 76%, var(--dt-cyan) 88%, var(--dt-blue)) border-box;
  box-shadow:
    0 0 12px color-mix(in srgb, var(--dt-cyan) 22%, transparent),
    0 0 26px color-mix(in srgb, var(--dt-coral) 13%, transparent);
  animation: daliaBorderSpin 5s linear infinite;
}

.dalia-pill:focus-visible {
  outline: 0 !important;
  box-shadow:
    0 0 0 2px var(--dt-focus-ring),
    0 0 14px color-mix(in srgb, var(--dt-cyan) 25%, transparent) !important;
}

@keyframes daliaBorderSpin {
  to { --dalia-angle: 360deg; }
}

/* Mini orbe: nucleo esferico con brillo, misma paleta IA */
.dalia-orb-mini {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 26%, rgba(255, 255, 255, .9), transparent 36%),
    radial-gradient(circle at 70% 74%, color-mix(in srgb, var(--dt-coral) 80%, transparent), transparent 46%),
    conic-gradient(from 210deg, var(--dt-blue), var(--dt-cyan) 42%, var(--dt-coral) 72%, var(--dt-blue));
  box-shadow: 0 0 8px color-mix(in srgb, var(--dt-cyan) 35%, transparent);
  animation: daliaOrbBreathe 3.2s ease-in-out infinite;
}

@keyframes daliaOrbBreathe {
  0%, 100% { transform: scale(1); box-shadow: 0 0 8px color-mix(in srgb, var(--dt-cyan) 35%, transparent); }
  50%      { transform: scale(1.12); box-shadow: 0 0 12px color-mix(in srgb, var(--dt-coral) 40%, transparent); }
}

.dalia-pill__label {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  color: inherit;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Shimmer del label solo en hover (patron .ia-loader-text) */
.dalia-pill:hover .dalia-pill__label {
  background: linear-gradient(105deg, var(--dt-muted) 30%, var(--dt-text) 45%, var(--dt-cyan) 51%, var(--dt-coral) 56%, var(--dt-muted) 70%);
  background-size: 220% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: daliaShimmer 1.7s linear infinite;
}

@keyframes daliaShimmer {
  from { background-position: 180% 0; }
  to   { background-position: -120% 0; }
}

/* Estado has-note: Dalia tiene recomendaciones pendientes */
.dalia-pill.has-note::after {
  content: "";
  position: absolute;
  top: -2px;
  right: 2px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--dt-coral);
  box-shadow: 0 0 0 2px var(--dt-topbar), 0 0 8px color-mix(in srgb, var(--dt-coral) 60%, transparent);
}

.dalia-pill.has-note .dalia-orb-mini {
  box-shadow: 0 0 12px color-mix(in srgb, var(--dt-coral) 55%, transparent);
}

/* Push entrante: MISMO brillo Gemini que hover / panel abierto (no otro color). */
.dalia-pill.has-push {
  color: var(--dt-text);
  border-color: transparent;
  background:
    linear-gradient(var(--dt-hover), var(--dt-hover)) padding-box,
    conic-gradient(from var(--dalia-angle),
      var(--dt-blue), var(--dt-cyan) 32%, var(--dt-coral) 58%,
      var(--dt-blue) 76%, var(--dt-cyan) 88%, var(--dt-blue)) border-box;
  box-shadow:
    0 0 12px color-mix(in srgb, var(--dt-cyan) 22%, transparent),
    0 0 26px color-mix(in srgb, var(--dt-coral) 13%, transparent);
  animation: daliaBorderSpin 5s linear infinite;
}
.dalia-pill.has-push .dalia-orb-mini {
  box-shadow: 0 0 12px color-mix(in srgb, var(--dt-coral) 55%, transparent);
}
.dalia-pill.has-push .dalia-pill__label {
  background: linear-gradient(105deg, var(--dt-muted) 30%, var(--dt-text) 45%, var(--dt-cyan) 51%, var(--dt-coral) 56%, var(--dt-muted) 70%);
  background-size: 220% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: daliaShimmer 1.7s linear infinite;
}

/* --------------------------------------------------------------------
 * 3 · Panel: base compartida + modos pop/dock + espejos de z-index.
 * position:fixed (fuera del stacking del topbar): sobrevive a sus cambios
 * de z-index.
 * -------------------------------------------------------------------- */
.dalia-panel {
  position: fixed;
  z-index: 3050; /* topbar=3000; sus dropdowns internos quedan en otro stacking */
  display: flex;
  flex-direction: column;
  border: 1px solid var(--dt-border);
  background: color-mix(in srgb, var(--dt-overlay) 88%, transparent);
  -webkit-backdrop-filter: saturate(1.4) blur(18px);
  backdrop-filter: saturate(1.4) blur(18px);
  box-shadow: var(--dt-pop-shadow);
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity .16s ease,
    transform .16s cubic-bezier(.3, .9, .3, 1),
    visibility 0s linear .16s;
}

.dalia-panel.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition:
    opacity .16s ease,
    transform .16s cubic-bezier(.3, .9, .3, 1);
}

[data-bs-theme="dark"] .dalia-panel {
  background: color-mix(in srgb, var(--dt-overlay) 92%, transparent);
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .dalia-panel,
  [data-bs-theme="dark"] .dalia-panel { background: var(--dt-overlay); }
}

/* Filo superior IA sutil (guino Gemini, 1px) */
.dalia-panel::before {
  content: "";
  position: absolute;
  top: 0;
  right: 24px;
  left: 24px;
  height: 1px;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--dt-cyan) 45%, transparent), color-mix(in srgb, var(--dt-coral) 35%, transparent), transparent);
  pointer-events: none;
}

/* Modo POP: mini-desplegable anclado bajo el pill (left lo fija el JS) */
.dalia-panel[data-mode="pop"] {
  top: calc(var(--dt-topbar-h) + 6px);
  width: min(640px, calc(100vw - 24px));
  border-radius: 16px;
  transform: translateY(-4px) scale(.985);
  transform-origin: top center;
}

.dalia-panel[data-mode="pop"].is-open {
  transform: translateY(0) scale(1);
}

/* Modo DOCK: columna derecha DE VERDAD a todo el alto bajo la barra.
   No tapa el contenido: body.dalia-docked empuja .page-wrapper (abajo).
   Anchura en --dalia-dock-w (redimensionable arrastrando .dalia-panel__resizer). */
:root { --dalia-dock-w: 420px; }

.dalia-panel[data-mode="dock"] {
  top: var(--dt-topbar-h);
  right: 0;
  bottom: 0;
  left: auto !important; /* pisa el left inline que fija el JS en modo pop */
  width: min(var(--dalia-dock-w), 100vw);
  border-radius: 0;
  border-top: 0;
  border-right: 0;
  border-bottom: 0;
  transform: translateX(10px);
}

.dalia-panel[data-mode="dock"].is-open {
  transform: translateX(0);
}

/* El contenido se ENCOGE (no queda debajo) mientras el dock esta abierto */
@media (min-width: 641px) {
  body.dalia-docked .page-wrapper {
    margin-right: var(--dalia-dock-w) !important;
  }
}

/* Asa de redimension (solo dock): borde izquierdo arrastrable */
.dalia-panel__resizer {
  display: none;
  position: absolute;
  top: 0;
  bottom: 0;
  left: -3px;
  z-index: 3;
  width: 8px;
  cursor: col-resize;
  touch-action: none;
}

.dalia-panel[data-mode="dock"] .dalia-panel__resizer { display: block; }

.dalia-panel__resizer::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 3px;
  width: 2px;
  background: transparent;
  transition: background-color .12s ease;
}

.dalia-panel__resizer:hover::after,
.dalia-panel__resizer.is-dragging::after {
  background: color-mix(in srgb, var(--dt-cyan) 55%, transparent);
}

/* Espejos de z-index: con modal abierto o record-panel abierto, Dalia debe
   quedar POR DEBAJO igual que el topbar (theme.css baja el topbar a 1000 con
   modal-open; record-panel.css lo baja a 1030 y sus drawers usan 1039-1045) */
body.modal-open .dalia-panel { z-index: 1000; }
body.rp-open .dalia-panel,
body.rpn-open .dalia-panel,
body.rpb-open .dalia-panel { z-index: 1029; }

/* Cabecera unica del panel (estilo voice-chat): orbe + Dalia + estado */
.dalia-panel__head {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 10px;
  padding: 10px 12px 10px 16px;
  border-bottom: 1px solid var(--dt-border);
}

.dalia-panel__head-orb {
  width: 22px;
  height: 22px;
}

.dalia-panel__head-meta {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.dalia-panel__head-name {
  color: var(--dt-text);
  font-size: 13px;
  font-weight: 650;
  letter-spacing: -.01em;
  line-height: 1.2;
}

.dalia-panel__head-status {
  color: var(--dt-success, #16835b);
  font-size: 11.5px;
  line-height: 1.2;
}

.dalia-panel[data-voice-state="listening"] .dalia-panel__head-status,
.dalia-panel[data-voice-state="speaking"] .dalia-panel__head-status {
  color: var(--dt-cta);
}

/* Punto de estado a la derecha (como el "Connected" del block voice-chat de
   ui.elevenlabs): verde conectado, ambar conectando, gris offline; en voz
   activa acompaña al estado (cian escucha / coral hablando) */
.dalia-panel__head-dot {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  margin-right: 2px;
  border-radius: 50%;
  background: var(--dt-success, #16835b);
  box-shadow: 0 0 6px color-mix(in srgb, var(--dt-success, #16835b) 55%, transparent);
}

.dalia-panel[data-conn="connecting"] .dalia-panel__head-dot {
  background: var(--dt-warning, #b86513);
  box-shadow: 0 0 6px color-mix(in srgb, var(--dt-warning, #b86513) 55%, transparent);
}

.dalia-panel[data-conn="offline"] .dalia-panel__head-dot {
  background: var(--dt-faint);
  box-shadow: none;
}

.dalia-panel[data-conn="offline"] .dalia-panel__head-status {
  color: var(--dt-faint);
}

.dalia-panel[data-voice-state="listening"] .dalia-panel__head-dot {
  background: var(--dt-cyan);
  box-shadow: 0 0 6px color-mix(in srgb, var(--dt-cyan) 55%, transparent);
}

.dalia-panel[data-voice-state="speaking"] .dalia-panel__head-dot {
  background: var(--dt-coral);
  box-shadow: 0 0 6px color-mix(in srgb, var(--dt-coral) 55%, transparent);
}

/* Tabs OCULTAS (orden de Marc 2026-08-09: el unico buscador sera Dalia).
   El CSS de .dalia-panel__tabs de abajo se conserva para reactivarlas. */
.dalia-panel__bar { display: none !important; }

/* Vistas: solo la activa se pinta (cambio por data-view, sin reparenting) */
.dalia-panel__pane {
  display: none;
  min-height: 0;
}

/* Search y Voice quedan ocultas: Dalia es la unica superficie (la voz vive
   dentro del chat). El motor del buscador sigue cableado en sus ids. */
.dalia-panel .dalia-panel__pane[data-dalia-pane="search"],
.dalia-panel .dalia-panel__pane[data-dalia-pane="voice"] {
  display: none !important;
}

.dalia-panel[data-view="search"] .dalia-panel__pane[data-dalia-pane="search"],
.dalia-panel[data-view="chat"] .dalia-panel__pane[data-dalia-pane="chat"] {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

.dalia-panel[data-view="voice"] .dalia-panel__pane[data-dalia-pane="voice"] {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 30px 20px 24px;
  border-top: 1px solid var(--dt-border);
}

/* Gating: sin permiso de asistente solo queda la vista search */
.dalia-panel[data-chat-allowed="n"] #daliaTabChat,
.dalia-panel[data-chat-allowed="n"] #daliaTabVoice,
.dalia-panel[data-chat-allowed="n"] #daliaMicShortcut,
.dalia-panel[data-chat-allowed="n"] #daliaDockBtn,
.dalia-panel[data-chat-allowed="n"] .dalia-panel__hint--ai {
  display: none !important;
}

/* --------------------------------------------------------------------
 * 4 · Barra superior: segmented control (Apple) + dock + cierre
 * -------------------------------------------------------------------- */
.dalia-panel__bar {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
  padding: 10px 12px 8px;
}

.dalia-panel__tabs {
  display: flex;
  flex: 1 1 auto;
  gap: 2px;
  min-width: 0;
  height: 34px;
  padding: 3px;
  border-radius: 10px;
  background: var(--dt-surface-2);
}

.dalia-panel__tab {
  display: inline-flex;
  flex: 1 1 0;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 0;
  padding: 0 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--dt-muted);
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: color .12s ease, background-color .12s ease, box-shadow .12s ease;
}

.dalia-panel__tab .ti { font-size: 14px; }

.dalia-panel__tab:hover { color: var(--dt-text); }

.dalia-panel__tab[aria-selected="true"] {
  color: var(--dt-text);
  background: var(--dt-overlay);
  box-shadow: 0 1px 3px rgba(0, 0, 0, .10), 0 0 0 1px var(--dt-border);
}

/* Acento IA sancionado: solo el sparkles del tab activo */
.dalia-panel__tab[aria-selected="true"] .ti-sparkles { color: var(--dt-coral); }

.dalia-panel__tab:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 2px var(--dt-focus-ring);
}

.dalia-panel__dockbtn,
.dalia-panel__close {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  height: 26px;
  border: 1px solid var(--dt-border-strong);
  border-radius: 7px;
  background: var(--dt-hover);
  color: var(--dt-muted);
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition: background-color .12s ease, color .12s ease;
}

.dalia-panel__dockbtn { width: 28px; font-size: 14px; }
.dalia-panel__close { min-width: 34px; padding: 0 8px; }

.dalia-panel__dockbtn:hover,
.dalia-panel__close:hover { color: var(--dt-text); background: var(--dt-active); }

.dalia-panel__dockbtn:focus-visible,
.dalia-panel__close:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 2px var(--dt-focus-ring);
}

.dalia-panel__close-x { display: none; font-size: 15px; }

.dalia-panel__dock-collapse { display: none; }
.dalia-panel[data-mode="dock"] .dalia-panel__dock-expand { display: none; }
.dalia-panel[data-mode="dock"] .dalia-panel__dock-collapse { display: inline-flex; }

/* --------------------------------------------------------------------
 * 5 · Notas proactivas de Dalia (DaliaPanel.notify)
 * -------------------------------------------------------------------- */
.dalia-panel__notes {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 8px;
  padding: 0 12px 8px;
}

.dalia-panel__notes[hidden] { display: none; }

.dalia-note {
  position: relative;
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 10px 30px 10px 12px;
  border: 1px solid var(--dt-border);
  border-radius: 12px;
  background: var(--dt-surface);
}

.dalia-note .dalia-orb-mini { margin-top: 1px; }

.dalia-note__main { flex: 1 1 auto; min-width: 0; }

.dalia-note__type {
  margin: 0 0 3px;
  color: var(--dt-faint);
  font-family: var(--dalia-font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.dalia-note__text {
  color: var(--dt-text);
  font-size: 13px;
  line-height: 1.45;
}

/* Tipos de nota push (mismo contrato que .msg.is-push) */
.dalia-note.is-info {
  border-color: color-mix(in srgb, #3b82f6 40%, var(--dt-border));
  background: color-mix(in srgb, #3b82f6 7%, var(--dt-surface));
}
.dalia-note.is-success {
  border-color: color-mix(in srgb, #16a34a 40%, var(--dt-border));
  background: color-mix(in srgb, #16a34a 7%, var(--dt-surface));
}
.dalia-note.is-warning {
  border-color: color-mix(in srgb, #d97706 42%, var(--dt-border));
  background: color-mix(in srgb, #d97706 8%, var(--dt-surface));
}
.dalia-note.is-error,
.dalia-note.is-critical {
  border-color: color-mix(in srgb, #ef4444 45%, var(--dt-border));
  background: color-mix(in srgb, #ef4444 8%, var(--dt-surface));
}
.dalia-note.is-critical {
  box-shadow: inset 0 0 0 1px color-mix(in srgb, #ef4444 28%, transparent);
}
.dalia-note.is-info .dalia-note__type { color: #3b82f6; }
.dalia-note.is-success .dalia-note__type { color: #16a34a; }
.dalia-note.is-warning .dalia-note__type { color: #d97706; }
.dalia-note.is-error .dalia-note__type,
.dalia-note.is-critical .dalia-note__type { color: #ef4444; }

.dalia-note__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.dalia-note__btn {
  height: 26px;
  padding: 0 10px;
  border: 1px solid var(--dt-border-strong);
  border-radius: 7px;
  background: var(--dt-surface);
  color: var(--dt-text);
  font-family: inherit;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition: background-color .12s ease;
}

.dalia-note__btn:hover { background: var(--dt-hover); }

.dalia-note__btn--primary {
  border-color: var(--dt-cta);
  background: var(--dt-cta);
  color: var(--dt-cta-fg);
}

.dalia-note__btn--primary:hover { background: var(--dt-cta-hover); }

.dalia-note__dismiss {
  position: absolute;
  top: 6px;
  right: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--dt-faint);
  font-size: 13px;
  cursor: pointer;
}

.dalia-note__dismiss:hover { color: var(--dt-text); background: var(--dt-hover); }

/* --------------------------------------------------------------------
 * 6 · Vista SEARCH: cabecera con input (fondo constante, sin ring azul)
 * -------------------------------------------------------------------- */
.dalia-panel__searchhead {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 12px;
  min-height: 50px;
  padding: 10px 12px 10px 16px;
  border-top: 1px solid var(--dt-border);
  border-bottom: 1px solid var(--dt-border);
}

/* Focus = subrayado interior; el fondo NO cambia (contrato del repo) */
.dalia-panel__searchhead:focus-within {
  box-shadow: inset 0 -2px 0 var(--dt-focus);
}

.dalia-panel__search-icon {
  flex: 0 0 auto;
  color: var(--dt-faint);
  font-size: 19px;
  line-height: 1;
}

.dalia-panel #homebuscarforminput,
.dalia-panel .dalia-panel__input {
  -webkit-appearance: none !important;
  appearance: none !important;
  flex: 1 1 auto;
  min-width: 0;
  width: 100% !important;
  height: 30px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--dt-text) !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
  font: inherit !important;
  font-size: 15px !important;
  font-weight: 450 !important;
  line-height: 1.3 !important;
}

.dalia-panel #homebuscarforminput:hover,
.dalia-panel #homebuscarforminput:focus,
.dalia-panel #homebuscarforminput:focus-visible,
.dalia-panel #homebuscarforminput:active {
  color: var(--dt-text) !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}

.dalia-panel #homebuscarforminput::placeholder {
  color: var(--dt-faint) !important;
  opacity: 1 !important;
}

.dalia-panel #homebuscarforminput::-webkit-search-cancel-button {
  -webkit-appearance: none;
}

.dalia-panel__micshortcut {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--dt-muted);
  font-size: 17px;
  cursor: pointer;
  transition: color .12s ease, background-color .12s ease;
}

.dalia-panel__micshortcut:hover { color: var(--dt-text); background: var(--dt-hover); }

.dalia-panel__micshortcut:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 2px var(--dt-focus-ring);
}

.dalia-panel__body {
  flex: 1 1 auto;
  max-height: min(52vh, 420px);
  padding: 10px 10px 8px;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}

/* En dock el cuerpo crece hasta llenar la columna */
.dalia-panel[data-mode="dock"] .dalia-panel__body {
  max-height: none;
  min-height: 0;
}

.dalia-panel__results,
.dalia-panel #buscadorAkiponresultados {
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
}

.dalia-panel__foot {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  min-height: 40px;
  padding: 8px 16px;
  border-top: 1px solid var(--dt-border);
}

.dalia-panel__hint {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--dt-faint);
  font-size: 12px;
  line-height: 1;
}

.dalia-panel__hint--ai { margin-left: auto; }

.dalia-panel__hint kbd {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  color: var(--dt-muted);
  background: var(--dt-surface);
  border: 1px solid var(--dt-border-strong);
  border-radius: 6px;
  box-shadow: none;
  font-family: inherit;
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
}

/* --------------------------------------------------------------------
 * 7 · Render del buscador (lo emite 165_appMARC.js): mismas clases que
 * en el modal retirado, re-escopadas de #exampleModal a .dalia-panel.
 * -------------------------------------------------------------------- */
.dalia-panel .dt-search-modal__label,
.dalia-panel .dropdown-header {
  display: block !important;
  margin: 4px 0 2px !important;
  padding: 8px 12px 6px !important;
  color: var(--dt-faint) !important;
  background: transparent !important;
  font-size: 12px !important;
  font-weight: 550 !important;
  letter-spacing: .01em !important;
  text-transform: none !important;
}

.dalia-panel .dt-search-modal__item,
.dalia-panel .dropdown-item,
.dalia-panel #buscadorAkiponresultados > a,
.dalia-panel #buscadorAkiponresultados a.dropdown-item {
  position: relative;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  min-height: 44px;
  margin: 1px 0 !important;
  padding: 10px 12px !important;
  color: var(--dt-text) !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 10px !important;
  text-decoration: none !important;
  transition: background-color .12s ease !important;
  cursor: pointer;
}

.dalia-panel .dt-search-modal__item > .ti:first-child,
.dalia-panel .dropdown-item > .d-flex > .ti,
.dalia-panel #buscadorAkiponresultados a > .d-flex > .ti {
  flex: 0 0 auto;
  width: 20px;
  color: var(--dt-muted);
  font-size: 18px;
  text-align: center;
}

.dalia-panel .dt-search-modal__item-main,
.dalia-panel .dropdown-item .title,
.dalia-panel #buscadorAkiponresultados .title {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 14px !important;
  font-weight: 500;
  line-height: 1.35;
}

.dalia-panel .dt-search-modal__item-prefix { color: var(--dt-text); font-weight: 650; }
.dalia-panel .dt-search-modal__item-desc { color: var(--dt-faint); font-weight: 450; }

.dalia-panel .dt-search-modal__item-arrow,
.dalia-panel .dt-search-modal__item .ti-arrow-right {
  flex: 0 0 auto;
  margin-left: auto;
  color: var(--dt-faint);
  font-size: 16px;
  opacity: 0;
  transform: translateX(-2px);
  transition: opacity .12s ease, transform .12s ease;
}

.dalia-panel .dt-search-modal__item:hover,
.dalia-panel .dt-search-modal__item.is-active,
.dalia-panel .dropdown-item:hover,
.dalia-panel .dropdown-item.is-active,
.dalia-panel #buscadorAkiponresultados a:hover,
.dalia-panel #buscadorAkiponresultados a.is-active {
  color: var(--dt-text) !important;
  background: var(--dt-hover) !important;
}

.dalia-panel .dt-search-modal__item:hover .dt-search-modal__item-arrow,
.dalia-panel .dt-search-modal__item.is-active .dt-search-modal__item-arrow,
.dalia-panel .dropdown-item:hover .dt-search-modal__item-arrow,
.dalia-panel .dropdown-item.is-active .dt-search-modal__item-arrow {
  opacity: 1;
  transform: translateX(0);
}

.dalia-panel .dropdown-item .d-flex { width: 100%; gap: 12px; }

.dalia-panel .dropdown-item .badge {
  font-size: 11px !important;
  font-weight: 500 !important;
  opacity: .75;
}

.dalia-panel hr,
.dalia-panel #buscadorAkiponresultados hr {
  margin: 8px 10px !important;
  border: 0 !important;
  border-top: 1px solid var(--dt-border) !important;
  background: transparent !important;
  opacity: 1 !important;
}

.dalia-panel .dt-search-modal__empty {
  padding: 28px 16px;
  color: var(--dt-faint);
  font-size: 13px;
  text-align: center;
}

.dalia-panel .dt-search-modal__recent-row {
  display: flex;
  align-items: center;
  gap: 2px;
}

.dalia-panel .dt-search-modal__recent-row .dt-search-modal__item {
  flex: 1 1 auto;
  min-width: 0;
}

.dalia-panel .dt-search-modal__recent-del {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--dt-faint);
  cursor: pointer;
}

.dalia-panel .dt-search-modal__recent-del:hover {
  color: var(--dt-danger, #d94949);
  background: color-mix(in srgb, var(--dt-danger, #d94949) 10%, transparent);
}

.dalia-panel #buscadorAkiponresultados a.dropdown-item::after {
  /* texto alternativo vacio: sin el, los lectores de pantalla anuncian la
     flecha en cada resultado (speak:never no existe en ningun motor) */
  content: "→" / "";
  margin-left: auto;
  color: var(--dt-faint);
  font-size: 14px;
  opacity: 0;
  transform: translateX(-2px);
  transition: opacity .12s ease, transform .12s ease;
}

.dalia-panel #buscadorAkiponresultados a.dropdown-item:hover::after,
.dalia-panel #buscadorAkiponresultados a.dropdown-item.is-active::after {
  opacity: 1;
  transform: translateX(0);
}

/* --------------------------------------------------------------------
 * 8 · Vista CHAT
 * 8a · Chat NATIVO de Dalia — port del diseño de openmcp.datalyse.io
 *      (estilo ElevenLabs): asistente en texto plano sobre el lienzo,
 *      burbuja user degradada, thinking shimmer (TextShimmer), linea de
 *      escaneo en streaming, steps con tablas/graficos, composer con
 *      borde degradado, esfuerzo, historial, adjuntos y TTS.
 *      Tokens --dt-* del tema + acentos IA scoped (--dalia-ai-*).
 *      El naranja de openmcp NO se porta (contrato del CRM).
 * -------------------------------------------------------------------- */

/* Space Grotesk autohospedada (ya vivia en /fonts): SOLO dentro del panel */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('/fonts/SpaceGrotesk.woff2') format('woff2');
}

.dalia-panel {
  --dalia-ai-cyan: #22d3ee;
  --dalia-ai-blue: #6366f1;
  --dalia-ai-violet: #8b5cf6;
  --dalia-ai-grape: #7c3aed;
  --dalia-ai-indigo: #4f46e5;
  --dalia-line: rgba(15, 15, 15, 0.09);
  --dalia-line-strong: rgba(15, 15, 15, 0.16);
  --dalia-font-display: 'Space Grotesk', Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

[data-bs-theme="dark"] .dalia-panel {
  --dalia-line: rgba(255, 255, 255, 0.09);
  --dalia-line-strong: rgba(255, 255, 255, 0.16);
}

.dalia-chat {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
}

.dalia-chat[hidden] { display: none !important; }

.dalia-chat__unavailable {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  min-height: 180px;
  padding: 28px;
  color: var(--dt-muted);
  font-family: var(--dalia-font-display);
  font-size: 15px;
  font-weight: 600;
  text-align: center;
}

.dalia-chat__unavailable[hidden] { display: none !important; }

.dalia-chat__composer[aria-disabled="true"] { opacity: .58; }

.dalia-chat__msgs {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 140px;
  padding: 14px 16px 6px;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}

/* ---- hero de estado vacio: orbe + saludo + tagline (sin Creator) ---- */
.dalia-chat__hero {
  position: absolute;
  inset: 0 0 110px;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 24px;
  text-align: center;
  pointer-events: none;
}

.dalia-chat__hero[hidden] { display: none !important; }

.dalia-chat__hero-orb.dalia-orb-mini {
  width: 54px;
  height: 54px;
  margin-bottom: 8px;
  box-shadow: 0 0 22px color-mix(in srgb, var(--dt-cyan) 40%, transparent),
              0 0 44px color-mix(in srgb, var(--dalia-ai-violet) 22%, transparent);
}

.dalia-chat__hero-greet {
  margin: 0;
  font-family: var(--dalia-font-display);
  font-size: 21px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.25;
  background: linear-gradient(105deg, var(--dt-text) 35%, var(--dalia-ai-blue) 60%, var(--dalia-ai-violet) 80%, var(--dalia-ai-cyan));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.dalia-chat__hero-tag {
  max-width: 380px;
  margin: 2px 0 0;
  color: var(--dt-muted);
  font-size: 13px;
  line-height: 1.5;
  text-wrap: balance;
}

/* Acciones de bienvenida: sugerencias -> categorias -> lista, sin tabs. */
.dalia-chat__quick-actions {
  width: min(100%, 520px);
  margin-top: 14px;
  pointer-events: auto;
}

.dalia-chat__quick-actions[hidden] { display: none !important; }

.dalia-chat__hero.is-browsing-actions {
  justify-content: flex-start;
  padding-top: 28px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}

.dalia-chat__hero.is-browsing-actions > .dalia-chat__hero-orb,
.dalia-chat__hero.is-browsing-actions > .dalia-chat__hero-greet,
.dalia-chat__hero.is-browsing-actions > .dalia-chat__hero-tag {
  display: none;
}

.dalia-chat__hero.is-browsing-actions .dalia-chat__quick-actions {
  margin-top: 0;
}

.dalia-starter__label {
  margin: 0 0 7px;
  color: var(--dt-muted);
  font-size: 11px;
  font-weight: 650;
  letter-spacing: .02em;
  text-align: left;
  text-transform: uppercase;
}

.dalia-starter__suggestions,
.dalia-starter__categories {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}

.dalia-starter__action,
.dalia-starter__category,
.dalia-starter__all,
.dalia-starter__back {
  appearance: none;
  border: 1px solid var(--dt-border);
  background: var(--dt-surface);
  color: var(--dt-text);
  font: inherit;
  cursor: pointer;
}

.dalia-starter__action,
.dalia-starter__category {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 9px;
  min-height: 62px;
  padding: 9px 10px;
  border-radius: 11px;
  text-align: left;
  transition: border-color .16s ease, background-color .16s ease, transform .16s ease;
}

.dalia-starter__action:hover,
.dalia-starter__category:hover {
  border-color: var(--dt-border-strong);
  background: var(--dt-hover);
  transform: translateY(-1px);
}

.dalia-starter__icon {
  display: grid;
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  place-items: center;
  border-radius: 9px;
  background: var(--dt-surface-2);
  color: var(--dt-cta);
  font-size: 16px;
}

.dalia-starter__icon.is-compact {
  width: 28px;
  height: 28px;
  flex-basis: 28px;
  border-radius: 8px;
  font-size: 14px;
}

.dalia-starter__copy {
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 2px;
}

.dalia-starter__title,
.dalia-starter__desc,
.dalia-starter__count {
  overflow: hidden;
  text-overflow: ellipsis;
}

.dalia-starter__title {
  color: var(--dt-text);
  font-size: 12.5px;
  font-weight: 650;
  line-height: 1.25;
  white-space: nowrap;
}

.dalia-starter__desc {
  display: -webkit-box;
  color: var(--dt-muted);
  font-size: 10.5px;
  line-height: 1.3;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}

.dalia-starter__count {
  color: var(--dt-muted);
  font-size: 10.5px;
}

.dalia-starter__arrow {
  flex: 0 0 auto;
  color: var(--dt-muted);
  font-size: 13px;
}

.dalia-starter__all {
  display: flex;
  width: 100%;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin-top: 8px;
  padding: 8px 12px;
  border-color: transparent;
  border-radius: 10px;
  background: transparent;
  color: var(--dt-cta);
  font-size: 12px;
  font-weight: 650;
}

.dalia-starter__all:hover { background: var(--dt-hover); }

.dalia-starter__header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  text-align: left;
}

.dalia-starter__back {
  display: grid;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  place-items: center;
  padding: 0;
  border-radius: 10px;
  color: var(--dt-muted);
}

.dalia-starter__back:hover {
  border-color: var(--dt-border-strong);
  background: var(--dt-hover);
  color: var(--dt-text);
}

.dalia-starter__header-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
}

.dalia-starter__header-copy strong {
  color: var(--dt-text);
  font-family: var(--dalia-font-display);
  font-size: 15px;
  font-weight: 650;
  line-height: 1.2;
}

.dalia-starter__header-copy span {
  overflow: hidden;
  color: var(--dt-muted);
  font-size: 11px;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dalia-starter__category {
  min-height: 52px;
  padding: 8px 9px;
}

.dalia-starter__list {
  display: grid;
  gap: 7px;
}

.dalia-starter__action.is-compact {
  min-height: 56px;
}

.dalia-starter__suggestions.is-loading { margin-top: 20px; }

.dalia-starter__skeleton {
  min-height: 62px;
  border: 1px solid var(--dt-border);
  border-radius: 11px;
  background: linear-gradient(90deg, var(--dt-surface-2), var(--dt-hover), var(--dt-surface-2));
  background-size: 220% 100%;
  animation: daliaStarterSkeleton 1.2s ease-in-out infinite;
}

@keyframes daliaStarterSkeleton {
  from { background-position: 100% 0; }
  to { background-position: -100% 0; }
}

@media (max-width: 640px) {
  .dalia-chat__hero {
    padding-right: 16px;
    padding-left: 16px;
  }
  .dalia-chat__quick-actions { margin-top: 12px; }
  .dalia-chat__hero.is-browsing-actions { padding-top: 18px; }
}

@media (max-width: 400px) {
  .dalia-starter__action,
  .dalia-starter__category { gap: 7px; padding: 8px; }
  .dalia-starter__desc { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .dalia-starter__action,
  .dalia-starter__category { transition: none; }
  .dalia-starter__action:hover,
  .dalia-starter__category:hover { transform: none; }
  .dalia-starter__skeleton { animation: none; }
}

.dalia-starter__action:focus-visible,
.dalia-starter__category:focus-visible,
.dalia-starter__all:focus-visible,
.dalia-starter__back:focus-visible {
  outline: 2px solid var(--dt-cta);
  outline-offset: 2px;
}

/* ================= MENSAJES (estilo ElevenLabs Response) ================= */

.dalia-chat__msgs .msg {
  position: relative;
  display: flex;
  gap: 10px;
  padding: 8px 0;
  animation: daliaMsgIn .36s cubic-bezier(.16, 1, .3, 1) both;
}

.dalia-chat__msgs .msg .avatar {
  flex: 0 0 auto;
  width: 24px;
  display: flex;
  justify-content: center;
  padding-top: 1px;
}

.dalia-chat__msgs .msg .avatar .dalia-orb-mini { width: 22px; height: 22px; }

.dalia-chat__msgs .msg.user .avatar { display: none; }

.dalia-chat__msgs .msg .bubble {
  flex: 1 1 auto;
  min-width: 0;
}

.dalia-chat__msgs .msg .role-row {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 20px;
  margin: 0 0 3px 1px;
}

.dalia-chat__msgs .msg .role {
  color: var(--dt-faint);
  font-family: var(--dalia-font-display);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

/* acciones del mensaje (copiar / escuchar): aparecen al pasar el raton */
.msg-actions {
  display: inline-flex;
  gap: 2px;
  opacity: 0;
  transition: opacity .12s ease;
}

.dalia-chat__msgs .msg:hover .msg-actions,
.msg-actions:focus-within { opacity: 1; }

.msg-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--dt-faint);
  font-size: 13px;
  cursor: pointer;
  transition: color .12s ease, background-color .12s ease;
}

.msg-action-btn:hover { color: var(--dt-text); background: var(--dt-hover); }
.msg-action-btn:focus-visible { outline: 0; box-shadow: 0 0 0 2px var(--dt-focus-ring); }
.msg-listen-btn[data-playing="1"] { color: var(--dt-cta); opacity: 1; }

/* Asistente: texto plano sobre el lienzo — sin tarjeta ni globo */
.dalia-chat__msgs .msg.assistant .body {
  position: relative;
  padding: 2px 0;
  color: var(--dt-text);
  font-size: 13px;
  line-height: 1.55;
  overflow-wrap: break-word;
}

/* User: burbuja degradada violeta→indigo a la derecha (igual en ambos temas) */
.dalia-chat__msgs .msg.user { flex-direction: row-reverse; }

.dalia-chat__msgs .msg.user .bubble { max-width: min(82%, 560px); flex: 0 1 auto; }
.dalia-chat__msgs .msg.user .role-row { display: none; }

.dalia-chat__msgs .msg.user .body {
  padding: 10px 14px;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 16px 6px 16px 16px;
  background: linear-gradient(135deg, var(--dalia-ai-grape), var(--dalia-ai-indigo));
  box-shadow: 0 10px 26px color-mix(in srgb, var(--dalia-ai-indigo) 20%, transparent);
  color: #fff;
  font-size: 13px;
  line-height: 1.5;
  overflow-wrap: break-word;
  white-space: pre-wrap;
}

.dalia-chat__msgs .msg .body > :first-child { margin-top: 0; }
.dalia-chat__msgs .msg .body > :last-child { margin-bottom: 0; }

/* boton editar ✎ de los mensajes user (hover) */
.msg-edit-btn {
  position: absolute;
  top: 50%;
  left: -26px;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--dt-faint);
  font-size: 12px;
  cursor: pointer;
  opacity: 0;
  transition: opacity .12s ease, color .12s ease, background-color .12s ease;
}

.dalia-chat__msgs .msg.user .bubble { position: relative; }
.dalia-chat__msgs .msg.user:hover .msg-edit-btn,
.msg-edit-btn:focus-visible { opacity: 1; }
.msg-edit-btn:hover { color: var(--dt-text); background: var(--dt-hover); }

/* dictado en vivo: burbuja provisional */
.dalia-chat__msgs .msg .body.is-interim { font-style: italic; opacity: .72; }

/* ================= THINKING — shimmer TextShimmer (ElevenLabs) ============ */

.ai-thinking {
  position: relative;
  display: flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  padding: 3px 0;
  color: var(--dt-muted);
}

.ai-thinking-copy {
  position: relative;
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
}

/* Texto transparente + banda de brillo estrecha (--spread proporcional al
 * texto, la fija JS) barriendo de derecha a izquierda — tecnica exacta del
 * TextShimmer en que se basa el ShimmeringText de ElevenLabs. */
.ai-thinking-label {
  --dalia-shimmer-base: var(--dt-faint);
  --dalia-shimmer-hl: var(--dt-text);
  --spread: 40px;
  width: fit-content;
  max-width: 100%;
  color: var(--dalia-shimmer-base); /* fallback sin background-clip:text */
  font-family: var(--dalia-font-display);
  font-size: 13px;
  font-weight: 650;
  line-height: 1.35;
  background-image:
    linear-gradient(90deg, transparent calc(50% - var(--spread)), var(--dalia-shimmer-hl), transparent calc(50% + var(--spread))),
    linear-gradient(var(--dalia-shimmer-base), var(--dalia-shimmer-base));
  background-size: 250% 100%, auto;
  background-repeat: no-repeat, padding-box;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: daliaThinkShine 2s linear infinite;
}

.ai-thinking-label.is-changing {
  animation: daliaThinkIn .38s cubic-bezier(.2, .8, .2, 1), daliaThinkShine 2s linear infinite;
}

.ai-thinking-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.dalia-chat__msgs .msg.is-pending .body { padding: 0; }

@keyframes daliaThinkShine {
  from { background-position: 100% center; }
  to { background-position: 0% center; }
}

@keyframes daliaThinkIn {
  from { opacity: 0; transform: translateY(5px); filter: blur(3px); }
  to { opacity: 1; transform: translateY(0); filter: blur(0); }
}

@keyframes daliaMsgIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}

/* ================= STREAMING ================= */

/* linea de escaneo cian→violeta sobre la respuesta en curso */
.dalia-chat__msgs .msg.is-streaming .bubble > .body::before {
  content: "";
  position: absolute;
  top: 0;
  left: 12%;
  width: 36%;
  height: 1px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, var(--dalia-ai-cyan), var(--dalia-ai-violet), transparent);
  filter: drop-shadow(0 0 7px color-mix(in srgb, var(--dalia-ai-cyan) 65%, transparent));
  animation: daliaStreamScan 2.2s ease-in-out infinite;
}

@keyframes daliaStreamScan {
  0%, 100% { transform: translateX(-35%); opacity: .35; }
  50% { transform: translateX(175%); opacity: 1; }
}

/* cursor con glow al final de la ultima linea */
.dalia-chat__msgs .msg.is-streaming .stream-line:last-child::after,
.dalia-chat__msgs .msg.is-streaming .stream-text:empty::after {
  content: "";
  display: inline-block;
  width: 7px;
  height: 1.05em;
  margin-left: 4px;
  vertical-align: -.16em;
  border-radius: 2px;
  background: linear-gradient(180deg, var(--dalia-ai-cyan), var(--dalia-ai-violet));
  box-shadow: 0 0 10px color-mix(in srgb, var(--dalia-ai-violet) 45%, transparent);
  animation: daliaCursorBlink 0.82s steps(1, end) infinite;
}

@keyframes daliaCursorBlink { 50% { opacity: .18; } }

.dalia-chat__msgs .msg.is-streaming .avatar .dalia-orb-mini,
.dalia-chat__msgs .msg.is-pending .avatar .dalia-orb-mini {
  animation: daliaOrbBreathe 1.6s ease-in-out infinite;
}

.stream-line { white-space: pre-wrap; overflow-wrap: break-word; }

/* placeholder "Generando codigo/tabla…" mientras el fence esta a medio llegar */
.stream-loading {
  width: fit-content;
  margin: 8px 0;
  padding: 6px 12px;
  border: 1px dashed var(--dalia-line-strong);
  border-radius: 10px;
  color: var(--dt-muted);
  font-size: 12px;
  background:
    linear-gradient(105deg, transparent 40%, color-mix(in srgb, var(--dalia-ai-violet) 12%, transparent) 50%, transparent 60%)
    0 0 / 220% 100% no-repeat;
  animation: daliaShimmer 1.6s linear infinite;
}

/* error del turno */
.dalia-chat__msgs .msg.is-error .body {
  padding: 9px 12px;
  border: 1px solid color-mix(in srgb, #ef4444 45%, transparent);
  border-radius: 12px;
  background: color-mix(in srgb, #ef4444 7%, transparent);
}

/* Pushes tipados: el cuerpo del mensaje es idéntico al de Dalia;
   solo destaca el icono de tipo (warning/error/…) en la cabecera. */
.dalia-chat__msgs .msg.is-push .msg-type-icon {
  flex: 0 0 auto;
  font-size: 14px;
  line-height: 1;
}
.dalia-chat__msgs .msg.is-push.is-success .msg-type-icon { color: #16a34a; }
.dalia-chat__msgs .msg.is-push.is-warning .msg-type-icon { color: #d97706; }
.dalia-chat__msgs .msg.is-push.is-error .msg-type-icon,
.dalia-chat__msgs .msg.is-push.is-critical .msg-type-icon { color: #ef4444; }
.dalia-chat__msgs .msg.is-push.is-critical .msg-type-icon {
  filter: drop-shadow(0 0 4px color-mix(in srgb, #ef4444 55%, transparent));
}

/* render bufferizado (modelo auto/cloudflare): cascada blur→nitido */
.print-in > * { animation: daliaPrint .36s cubic-bezier(.16, 1, .3, 1) backwards; }
.print-in > *:nth-child(2) { animation-delay: 60ms; }
.print-in > *:nth-child(3) { animation-delay: 120ms; }
.print-in > *:nth-child(4) { animation-delay: 180ms; }
.print-in > *:nth-child(5) { animation-delay: 240ms; }
.print-in > *:nth-child(6) { animation-delay: 300ms; }
.print-in > *:nth-child(7) { animation-delay: 360ms; }
.print-in > *:nth-child(8) { animation-delay: 420ms; }
.print-in > *:nth-child(9) { animation-delay: 480ms; }
.print-in > *:nth-child(10) { animation-delay: 540ms; }

@keyframes daliaPrint {
  from { opacity: 0; transform: translateY(6px); filter: blur(7px); }
  to { opacity: 1; transform: none; filter: blur(0); }
}

@keyframes daliaFadeUp {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: none; }
}

/* ================= MARKDOWN ================= */

.dalia-chat__msgs .md-p { margin: .5em 0; }
.dalia-chat__msgs h3.md-h {
  margin: 14px 0 5px;
  font-family: var(--dalia-font-display);
  font-size: 15px;
  font-weight: 650;
  letter-spacing: -0.01em;
}
.dalia-chat__msgs h4.md-h {
  margin: 11px 0 4px;
  font-family: var(--dalia-font-display);
  font-size: 13.5px;
  font-weight: 650;
  letter-spacing: -0.01em;
}
.dalia-chat__msgs .md-list { margin: 0 0 10px; padding-left: 20px; }
.dalia-chat__msgs ul.md-list { list-style: disc; }
.dalia-chat__msgs ul.md-list ul.md-list { list-style: circle; }
.dalia-chat__msgs ol.md-list { list-style: decimal; }
.dalia-chat__msgs .md-list li { margin: 3px 0; }
.dalia-chat__msgs .md-list .md-list { margin: 3px 0 0; }
.dalia-chat__msgs .md-list li::marker { color: var(--dt-faint); }
.dalia-chat__msgs .md-quote {
  margin: 0 0 10px;
  padding: 2px 0 2px 11px;
  border-left: 2px solid var(--dt-border-strong);
  color: var(--dt-muted);
}
.dalia-chat__msgs hr.md-hr { border: none; border-top: 1px solid var(--dt-border); margin: 12px 0; }
.dalia-chat__msgs .msg.assistant .body a { color: var(--dt-link); text-decoration: none; border-bottom: 1px solid transparent; transition: border-color .12s; }
.dalia-chat__msgs .msg.assistant .body a:hover { border-bottom-color: var(--dt-link); }
.dalia-chat__msgs .msg .body strong { font-weight: 650; }
.dalia-chat__msgs .msg .body code {
  padding: 1px 5px;
  border-radius: 5px;
  background: var(--dt-surface-2);
  font-size: 12px;
}

/* tabla markdown del texto */
.chat-table-wrap { margin: 8px 0; overflow-x: auto; scrollbar-width: thin; }
.chat-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
  line-height: 1.4;
}
.chat-table th {
  padding: 6px 8px;
  border-bottom: 1px solid var(--dt-border-strong);
  color: var(--dt-muted);
  font-size: 10.5px;
  font-weight: 650;
  letter-spacing: .04em;
  text-align: left;
  text-transform: uppercase;
  white-space: nowrap;
}
.chat-table td {
  padding: 6px 8px;
  border-bottom: 1px solid var(--dt-border);
  color: var(--dt-text);
  vertical-align: top;
}
.chat-table tbody tr:last-child td { border-bottom: none; }
.chat-table tbody tr:hover { background: var(--dt-hover); }

/* ---- bloques de codigo / html / graficos ---- */
.code-wrap, .html-block, .echart-wrap {
  margin: 8px 0;
  border: 1px solid var(--dt-border);
  border-radius: 10px;
  background: var(--dt-surface-2);
  overflow: hidden;
}

.block-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 5px 8px 5px 10px;
  border-bottom: 1px solid var(--dt-border);
}

.block-header .lang-label {
  color: var(--dt-muted);
  font-family: var(--dalia-font-display);
  font-size: 10.5px;
  font-weight: 650;
  letter-spacing: .05em;
  text-transform: uppercase;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.copy-btn, .data-btn {
  flex: 0 0 auto;
  padding: 3px 9px;
  border: 1px solid var(--dt-border-strong);
  border-radius: 7px;
  background: var(--dt-surface);
  color: var(--dt-muted);
  font-size: 11px;
  font-weight: 550;
  cursor: pointer;
  transition: color .12s ease, background-color .12s ease, border-color .12s ease;
}
.copy-btn:hover, .data-btn:hover { color: var(--dt-text); background: var(--dt-hover); }
.copy-btn:focus-visible, .data-btn:focus-visible { outline: 0; box-shadow: 0 0 0 2px var(--dt-focus-ring); }
.data-btn:disabled { opacity: .45; cursor: default; }
.data-btn[hidden] { display: none !important; }

pre.code-block, pre.html-code {
  margin: 0;
  padding: 10px 12px;
  overflow: auto;
  font-size: 12px;
  line-height: 1.45;
  scrollbar-width: thin;
}

.tab-group { display: inline-flex; gap: 2px; }
.tab-btn {
  padding: 3px 9px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--dt-muted);
  font-size: 11px;
  font-weight: 550;
  cursor: pointer;
  transition: color .12s ease, background-color .12s ease;
}
.tab-btn:hover { color: var(--dt-text); }
.tab-btn.active { color: var(--dt-text); background: var(--dt-active); }

iframe.html-preview {
  display: block;
  width: 100%;
  height: 220px;
  border: 0;
  background: #fff;
}

.echart-container { min-height: 220px; }
.echart-error { padding: 12px; color: var(--dt-warning, #b86513); font-size: 12px; }

/* ================= STEPS (tarjetas de herramientas) ================= */

.steps, .stream-steps { display: flex; flex-direction: column; gap: 6px; }
.stream-steps:empty { display: none; }

.step {
  border: 1px solid var(--dt-border);
  border-radius: 12px;
  background: color-mix(in srgb, var(--dt-surface-2) 55%, transparent);
  font-size: 12px;
}

.step-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 11px;
}

.step-head .icon { width: 13px; height: 13px; color: var(--dalia-ai-violet); flex-shrink: 0; }
.step-head .name { font-weight: 600; color: var(--dt-text); }

/* chip "pensando/generando": shimmer en el texto + icono girando */
.step.step-pending .step-head .icon { animation: daliaSpin 2.6s linear infinite; }
.step.step-pending .step-head .name {
  background: linear-gradient(105deg, var(--dt-muted) 30%, var(--dt-text) 50%, var(--dt-muted) 70%);
  background-size: 220% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: daliaShimmer 1.7s linear infinite;
}

@keyframes daliaSpin { to { transform: rotate(360deg); } }

.step-body { padding: 4px 11px 10px; }
.step.step-headless .step-body { padding-top: 10px; }
.step-body .label {
  margin: 8px 0 4px;
  color: var(--dt-faint);
  font-size: 10px;
  font-weight: 650;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.step-body .label:first-child { margin-top: 2px; }

/* ---- tabla de datos con filtro/orden/paginacion/CSV ---- */
.data-table-wrap { display: flex; flex-direction: column; gap: 6px; }

.data-table-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}

.data-table-meta { color: var(--dt-muted); font-size: 11px; }
.data-table-actions { display: flex; gap: 6px; align-items: center; }

.data-filter {
  width: 130px;
  padding: 3px 9px;
  border: 1px solid var(--dt-border-strong);
  border-radius: 7px;
  background: var(--dt-surface);
  color: var(--dt-text);
  font-size: 11px;
  outline: 0;
}
.data-filter:focus { box-shadow: 0 0 0 2px var(--dt-focus-ring); }
.data-filter[hidden] { display: none !important; }
.data-filter::placeholder { color: var(--dt-faint); }

.data-table-host { overflow-x: auto; scrollbar-width: thin; border: 1px solid var(--dt-border); border-radius: 8px; }
.data-table-host table.data-table { margin: 0; }
.data-table-host table.data-table th { position: sticky; top: 0; background: var(--dt-surface-2); z-index: 1; }
.data-table-host table.data-table td {
  max-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.data-table-host table.data-table td.cell-expanded {
  max-width: none;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}
.data-table-host table.data-table th.th-sortable { cursor: pointer; user-select: none; transition: color .12s; }
.data-table-host table.data-table th.th-sortable:hover { color: var(--dt-text); }
.data-table-host table.data-table th[data-sort] { color: var(--dt-text); }
.data-table-host table.data-table th[data-sort]::after { content: "▲"; margin-left: 4px; font-size: 8px; }
.data-table-host table.data-table th[data-sort="desc"]::after { content: "▼"; }
.data-table-host table.data-table tbody tr:nth-child(even) { background: color-mix(in srgb, var(--dt-text) 2%, transparent); }
.data-table-host table.data-table tbody tr:hover { background: var(--dt-hover); }

.data-table .cell-chip {
  display: inline-block;
  margin: 0 3px 2px 0;
  padding: 1px 7px;
  border-radius: 999px;
  background: hsl(var(--chip-h, 210) 60% 50% / 0.14);
  border: 1px solid hsl(var(--chip-h, 210) 60% 50% / 0.28);
  font-size: 11px;
}
.data-table .cell-chip.soft {
  background: var(--dt-hover);
  border-color: var(--dt-border);
}
.data-table .cell-bool.yes { color: var(--dt-success, #16835b); font-weight: 600; }
.data-table .cell-bool.no { color: var(--dt-faint); }
.data-table .cell-phone { white-space: nowrap; font-variant-numeric: tabular-nums; }
.data-table .cell-link { color: var(--dt-link); text-decoration: none; }
.data-table .cell-link:hover { text-decoration: underline; }
.data-table .cell-actions { text-align: right; width: 1%; white-space: nowrap; }

.data-table .row-btn {
  padding: 1px 6px;
  margin-left: 2px;
  border: 1px solid var(--dt-border);
  border-radius: 6px;
  background: transparent;
  color: var(--dt-muted);
  font-size: 11px;
  cursor: pointer;
  opacity: 0;
  transition: opacity .12s, color .12s, border-color .12s;
}
.data-table tbody tr:hover .row-btn { opacity: 1; }
.data-table .row-btn:hover { color: var(--dt-cta); border-color: var(--dt-border-strong); }
@media (hover: none) { .data-table .row-btn { opacity: 1; } }

.data-table-pager { display: flex; gap: 6px; justify-content: flex-end; }

/* filas nuevas entran en cascada corta */
.stagger-in tr { animation: daliaFadeUp .3s cubic-bezier(.16, 1, .3, 1) backwards; }
.stagger-in tr:nth-child(1) { animation-delay: 0ms; }
.stagger-in tr:nth-child(2) { animation-delay: 25ms; }
.stagger-in tr:nth-child(3) { animation-delay: 50ms; }
.stagger-in tr:nth-child(4) { animation-delay: 75ms; }
.stagger-in tr:nth-child(5) { animation-delay: 100ms; }
.stagger-in tr:nth-child(6) { animation-delay: 125ms; }
.stagger-in tr:nth-child(7) { animation-delay: 150ms; }
.stagger-in tr:nth-child(8) { animation-delay: 175ms; }

/* ================= QUICK REPLIES (fence suggest) ================= */

.quick-replies { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.quick-replies[data-used] { opacity: .55; pointer-events: none; }

.qr-ask { color: var(--dt-muted); font-size: 12px; }

.qr-level { display: flex; flex-direction: column; gap: 8px; }
.qr-chips { display: flex; flex-wrap: wrap; gap: 6px; }

.qr-btn {
  padding: 5px 12px;
  border: 1px solid var(--dt-border-strong);
  border-radius: 999px;
  background: var(--dt-surface);
  color: var(--dt-text);
  font-size: 12px;
  cursor: pointer;
  transition: color .12s, background-color .12s, border-color .12s, box-shadow .12s;
}
.qr-btn:hover { border-color: var(--dalia-ai-violet); box-shadow: 0 0 0 1px color-mix(in srgb, var(--dalia-ai-violet) 35%, transparent); }
.qr-btn:focus-visible { outline: 0; box-shadow: 0 0 0 2px var(--dt-focus-ring); }
.qr-btn.active {
  border-color: var(--dalia-ai-indigo);
  background: color-mix(in srgb, var(--dalia-ai-indigo) 12%, var(--dt-surface));
}
.qr-btn.qr-confirm {
  border-color: var(--dt-cta);
  background: var(--dt-cta);
  color: var(--dt-cta-fg);
  font-weight: 600;
}
.qr-btn.qr-confirm:hover { background: var(--dt-cta-hover); }
.qr-btn.qr-more, .qr-btn.qr-all { color: var(--dt-muted); }
.qr-btn.qr-parent::after { content: " ›"; color: var(--dt-faint); }

.qr-sub { padding-left: 10px; border-left: 2px solid var(--dt-border); }
.qr-sub[hidden] { display: none !important; }

.qr-select {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px;
  border: 1px solid var(--dt-border);
  border-radius: 10px;
  background: var(--dt-surface);
}
.qr-select[hidden] { display: none !important; }

.qr-search {
  padding: 5px 10px;
  border: 1px solid var(--dt-border-strong);
  border-radius: 8px;
  background: var(--dt-surface);
  color: var(--dt-text);
  font-size: 12px;
  outline: 0;
}
.qr-search:focus { box-shadow: 0 0 0 2px var(--dt-focus-ring); }

.qr-list { display: flex; flex-direction: column; max-height: 180px; overflow: auto; scrollbar-width: thin; }
.qr-item {
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 6px 8px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--dt-text);
  font-size: 12px;
  text-align: left;
  cursor: pointer;
}
.qr-item:hover, .qr-item.active { background: var(--dt-hover); }
.qr-item[hidden] { display: none !important; }
.qr-item-desc { color: var(--dt-faint); font-size: 11px; }

/* ================= TTS: barrido de iluminacion ================= */

/* Karaoke PALABRA A PALABRA mientras Dalia habla. Un degradado horizontal con
 * background-clip:text sobre el bloque avanzaba por COLUMNAS y encendia las
 * dos lineas de un parrafo a la vez; con un span por palabra (.tts-w, los pone
 * y los quita el JS) el avance sigue el orden de lectura. Lo aun no dicho se
 * atenua; lo dicho se enciende en violeta. */
.dalia-chat__msgs .msg.assistant .body.is-speaking .tts-w {
  color: var(--dt-muted);
  transition: color .18s ease;
}

.dalia-chat__msgs .msg.assistant .body.is-speaking .tts-w.is-said {
  color: var(--dalia-ai-violet);
}

.voice-transcript {
  margin: 0 0 8px;
  padding: 7px 12px;
  border: 1px solid var(--dt-border);
  border-radius: 12px;
  background: var(--dt-surface);
  box-shadow: var(--dt-pop-shadow);
  font-size: 12px;
  line-height: 1.5;
  animation: daliaFadeUp .22s cubic-bezier(.16, 1, .3, 1);
}

/* resaltado por progreso: --p lo actualiza el timeupdate del audio —
 * un solo gradiente con corte duro, cero reflow */
.voice-transcript-text {
  background: linear-gradient(90deg, var(--dt-text) var(--p, 0%), var(--dt-faint) var(--p, 0%));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

#daliaTtsMute .dalia-tts-off { display: none; }
#daliaTtsMute[data-muted="1"] .dalia-tts-on { display: none; }
#daliaTtsMute[data-muted="1"] .dalia-tts-off { display: inline-block; }
#daliaTtsMute[data-muted="1"] { color: var(--dt-faint); }

/* ================= COLA + BANNER DE EDICION + ADJUNTOS ================= */

.msg-queue {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0 0 8px;
}
.msg-queue-title { color: var(--dt-faint); font-size: 10.5px; font-weight: 650; letter-spacing: .05em; text-transform: uppercase; }
.msg-queue-chip {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 6px 4px 10px;
  border: 1px dashed var(--dt-border-strong);
  border-radius: 9px;
  color: var(--dt-muted);
  font-size: 12px;
}
.msg-queue-chip span { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.msg-queue-x {
  flex: 0 0 auto;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--dt-faint);
  font-size: 11px;
  cursor: pointer;
}
.msg-queue-x:hover { color: var(--dt-text); background: var(--dt-hover); }

.edit-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 8px;
  padding: 6px 10px;
  border: 1px solid color-mix(in srgb, var(--dt-warning, #b86513) 45%, transparent);
  border-radius: 10px;
  background: color-mix(in srgb, var(--dt-warning, #b86513) 8%, transparent);
  color: var(--dt-text);
  font-size: 12px;
}
.edit-banner-cancel {
  flex: 0 0 auto;
  padding: 2px 9px;
  border: 1px solid var(--dt-border-strong);
  border-radius: 7px;
  background: var(--dt-surface);
  color: var(--dt-muted);
  font-size: 11px;
  cursor: pointer;
}
.edit-banner-cancel:hover { color: var(--dt-text); background: var(--dt-hover); }

/* strip de adjuntos pendientes sobre el composer */
.dalia-chat__attachstrip {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 8px;
}
.dalia-chat__attachstrip[hidden] { display: none !important; }

.attach-chip {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 6px;
  border: 1px solid var(--dt-border);
  border-radius: 10px;
  background: var(--dt-surface);
  max-width: min(220px, 100%); /* con el dock estrecho manda el ancho del panel */
  min-width: 0;
}
/* chip pintado en cuanto eliges el fichero: la subida va por detras */
.attach-chip.is-uploading { opacity: .62; }
.attach-chip.is-uploading .attach-size { animation: daliaAttachPulse 1.2s ease-in-out infinite; }
@keyframes daliaAttachPulse { 0%, 100% { opacity: .55; } 50% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .attach-chip.is-uploading .attach-size { animation: none; }
}
.attach-thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  border-radius: 7px;
  background: var(--dt-surface-2);
  color: var(--dt-faint);
  font-size: 9px;
  font-weight: 700;
  overflow: hidden;
}
.attach-thumb img { width: 100%; height: 100%; object-fit: cover; }
.attach-meta { display: flex; flex-direction: column; min-width: 0; }
.attach-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11.5px; color: var(--dt-text); }
.attach-size { font-size: 10.5px; color: var(--dt-faint); }
.attach-remove {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--dt-faint);
  font-size: 11px;
  cursor: pointer;
}
.attach-remove:hover { color: var(--dt-text); background: var(--dt-hover); }

/* chips de adjuntos dentro de un mensaje user ya enviado */
.msg-attachments { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.msg-attach-chip {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 8px 4px 6px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  text-decoration: none;
  max-width: 220px;
}
.msg-attach-chip .attach-thumb { width: 24px; height: 24px; background: rgba(255, 255, 255, 0.16); color: #fff; }
.msg-attach-chip .attach-name { color: #fff; }
.msg-attach-chip .attach-size { color: rgba(255, 255, 255, 0.7); }

/* el composer acepta drag&drop de ficheros */
.dalia-chat__composer.drag-over .dalia-chat__box {
  outline: 2px dashed var(--dalia-ai-cyan);
  outline-offset: 3px;
}

/* ================= HISTORIAL (overlay sobre el pane) ================= */

.dalia-chat__history {
  position: absolute;
  inset: 0;
  z-index: 6;
  display: flex;
  flex-direction: column;
  background: var(--dt-overlay);
  animation: daliaFadeUp .18s cubic-bezier(.16, 1, .3, 1);
}
.dalia-chat__history[hidden] { display: none !important; }

.dalia-chat__history-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px 8px 16px;
  border-bottom: 1px solid var(--dt-border);
}
.dalia-chat__history-title {
  font-family: var(--dalia-font-display);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.dalia-chat__history-list {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  scrollbar-width: thin;
  padding: 8px;
}
.dalia-hist-row {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 8px 10px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  text-align: left;
  cursor: pointer;
  transition: background-color .12s;
}
.dalia-hist-row:hover { background: var(--dt-hover); }
.dalia-hist-row.is-current { background: var(--dt-active); }
.dalia-hist-meta { display: flex; flex: 1 1 auto; min-width: 0; flex-direction: column; gap: 1px; }
.dalia-hist-title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--dt-text);
  font-size: 12.5px;
  font-weight: 550;
}
.dalia-hist-date { color: var(--dt-faint); font-size: 11px; }
.dalia-hist-del {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  border-radius: 7px;
  color: var(--dt-faint);
  font-size: 13px;
  opacity: 0;
  transition: opacity .12s, color .12s, background-color .12s;
}
.dalia-hist-row:hover .dalia-hist-del { opacity: 1; }
.dalia-hist-del:hover { color: #ef4444; background: var(--dt-hover); }
.dalia-hist-empty { padding: 24px 12px; color: var(--dt-faint); font-size: 12.5px; text-align: center; }

/* ================= COMPOSER (caja flotante con borde degradado) ========== */

.dalia-chat__composer {
  position: relative;
  z-index: 2;
  flex: 0 0 auto;
  padding: 8px 12px 12px;
}

.dalia-chat__box {
  position: relative;
  border: 1px solid var(--dt-border-strong);
  border-radius: 18px;
  background: var(--dt-surface); /* CONSTANTE en rest/hover/focus (contrato) */
  transition: box-shadow .2s ease, transform .2s ease;
}

/* borde degradado animado (mask xor): sutil en reposo, vivo con foco */
.dalia-chat__box::before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: 19px;
  padding: 1px;
  background: linear-gradient(110deg, var(--dalia-ai-blue), var(--dalia-ai-violet) 50%, var(--dalia-ai-cyan));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
  opacity: .3;
  pointer-events: none;
  transition: opacity .2s ease;
}

.dalia-chat__box:hover::before { opacity: .5; }
.dalia-chat__box:focus-within::before { opacity: .9; }

.dalia-chat__box:focus-within {
  transform: translateY(-1px);
  box-shadow: 0 12px 34px color-mix(in srgb, var(--dalia-ai-indigo) 12%, transparent);
}

.dalia-chat__field {
  display: flex;
  align-items: flex-end;
  padding: 8px 12px 2px 14px;
}

.dalia-chat__input,
.dalia-chat #daliaChatInput {
  flex: 1 1 auto;
  min-width: 0;
  max-height: 120px;
  margin: 0 !important;
  padding: 2px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: 0 !important;
  color: var(--dt-text) !important;
  font: inherit !important;
  font-size: 13.5px !important;
  line-height: 1.4 !important;
  resize: none;
  overflow-y: auto;
  scrollbar-width: thin;
}

.dalia-chat #daliaChatInput:hover,
.dalia-chat #daliaChatInput:focus,
.dalia-chat #daliaChatInput:active {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}

.dalia-chat #daliaChatInput::placeholder {
  color: var(--dt-faint) !important;
  opacity: 1 !important;
}

.dalia-chat__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  padding: 4px 6px 6px;
  min-width: 0; /* sin esto los hijos flex no bajan de su contenido y desbordan */
}

/* Con el dock muy estrecho el chip de esfuerzo se salia del panel: el lado
   izquierdo encoge (y el chip recorta con puntos suspensivos) y el derecho
   —mic, voz y enviar— no se toca nunca. */
.dalia-chat__toolbar-side {
  display: flex;
  align-items: center;
  gap: 2px;
  min-width: 0;
}
.dalia-chat__toolbar-side:first-child { flex: 0 1 auto; overflow: hidden; }
.dalia-chat__toolbar-side + .dalia-chat__toolbar-side { flex: 0 0 auto; }

.dalia-chat__iconbtn {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--dt-muted);
  font-size: 15px;
  cursor: pointer;
  transition: color .12s ease, background-color .12s ease;
}

.dalia-chat__iconbtn:hover { color: var(--dt-text); background: var(--dt-hover); }

/* Mic activo: sesion de voz en curso dentro del chat */
.dalia-chat__iconbtn[aria-pressed="true"] {
  background: var(--dt-cta);
  color: var(--dt-cta-fg);
}

/* chip de esfuerzo */
.dalia-chat__chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 28px;
  padding: 0 10px;
  border: 1px solid var(--dt-border-strong);
  border-radius: 999px;
  background: transparent;
  color: var(--dt-muted);
  font-size: 11.5px;
  font-weight: 550;
  cursor: pointer;
  transition: color .12s, background-color .12s, border-color .12s;
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  white-space: nowrap;
}
/* el icono manda su tamaño; el texto es lo que se recorta */
.dalia-chat__chip > i { flex: 0 0 auto; }
.dalia-chat__chip > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dalia-chat__chip:hover, .dalia-chat__chip.active { color: var(--dt-text); background: var(--dt-hover); }
.dalia-chat__chip[hidden] { display: none !important; }

.dalia-chat__send {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  margin-left: 4px;
  border: 0;
  border-radius: 10px;
  background: var(--dt-cta);
  color: var(--dt-cta-fg);
  font-size: 15px;
  cursor: pointer;
  transition: background-color .12s ease, box-shadow .2s ease;
}

.dalia-chat__send:hover { background: var(--dt-cta-hover); }

.dalia-chat__iconbtn:focus-visible,
.dalia-chat__chip:focus-visible,
.dalia-chat__send:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 2px var(--dt-focus-ring);
}

/* turno en vuelo: la flecha se convierte en STOP y el boton late */
.dalia-chat__send .dalia-send-stop { display: none; }
.dalia-panel[data-sending="y"] .dalia-chat__send .dalia-send-arrow { display: none; }
.dalia-panel[data-sending="y"] .dalia-chat__send .dalia-send-stop { display: inline-block; }
.dalia-panel[data-sending="y"] .dalia-chat__send {
  animation: daliaSendPulse 1.4s ease-in-out infinite;
}

@keyframes daliaSendPulse {
  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--dalia-ai-violet) 45%, transparent); }
  50% { box-shadow: 0 0 0 6px transparent; }
}

/* ================= POPOVER DE ESFUERZO (slider) ================= */

.dalia-chat__effort {
  position: absolute;
  left: 8px;
  bottom: calc(100% + 8px);
  z-index: 7;
  border: 1px solid var(--dt-border);
  border-radius: 12px;
  background: var(--dt-overlay);
  box-shadow: var(--dt-pop-shadow);
  animation: daliaFadeUp .16s cubic-bezier(.16, 1, .3, 1);
}
.dalia-chat__effort[hidden] { display: none !important; }

.effort-panel { padding: 12px 14px; min-width: 230px; }
.effort-head {
  margin-bottom: 10px;
  font-family: var(--dalia-font-display);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--dt-text);
}
.effort-labels {
  display: flex;
  justify-content: space-between;
  margin-bottom: 6px;
  color: var(--dt-muted);
  font-size: 11px;
}

/* campo de puntos que se "enciende" hacia la derecha; fill gobernado por --p */
.effort-slider {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 28px;
  border: 1px solid var(--dt-border);
  border-radius: 9px;
  cursor: pointer;
  outline: none;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--dalia-ai-violet) 30%, transparent) var(--p, 0%), transparent var(--p, 0%)),
    radial-gradient(circle, color-mix(in srgb, var(--dalia-ai-violet) 75%, transparent) 1.1px, transparent 1.5px) 0 0 / 7px 7px,
    var(--dt-surface-2);
}
.effort-slider.snapping { transition: background 160ms ease-out; }
.effort-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 1px solid var(--dt-border-strong);
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .25);
  cursor: pointer;
  transition: transform 120ms ease;
}
.effort-slider:active::-webkit-slider-thumb { transform: scale(1.12); }
.effort-slider::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 1px solid var(--dt-border-strong);
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .25);
  cursor: pointer;
}
.effort-slider:focus-visible { box-shadow: 0 0 0 2px var(--dt-focus-ring); }

.effort-tier {
  margin-top: 6px;
  color: var(--dt-muted);
  font-size: 11px;
  font-weight: 600;
  text-align: right;
}

/* --------------------------------------------------------------------
 * 8b · Altura y expansion del chat nativo
 * -------------------------------------------------------------------- */
.dalia-panel[data-mode="pop"] .dalia-panel__pane[data-dalia-pane="chat"] {
  height: min(72vh, 640px);
  transition: height .22s ease;
}

/* Push: crece con el aviso, tope < altura normal (la flecha Maximizar completa) */
.dalia-panel[data-mode="pop"][data-size="compact"] .dalia-panel__pane[data-dalia-pane="chat"] {
  height: var(--dalia-compact-h, min(28vh, 240px));
  max-height: min(48vh, 420px);
}

.dalia-chat__expandrow {
  display: flex;
  flex: 0 0 auto;
  justify-content: flex-end;
  align-items: center;
  padding: 0 12px 2px;
}

.dalia-chat__expandrow[hidden] { display: none !important; }

.dalia-chat__expandbtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 1px solid var(--dt-border);
  border-radius: 8px;
  background: var(--dt-surface);
  color: var(--dt-muted);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  transition: color .12s ease, background-color .12s ease, border-color .12s ease;
}

.dalia-chat__expandbtn:hover {
  color: var(--dt-text);
  border-color: var(--dt-border-strong);
  background: var(--dt-hover);
}

/* --------------------------------------------------------------------
 * 9 · Vista VOICE: orbe (estilo ui.elevenlabs, paleta casa) + transcripcion
 * -------------------------------------------------------------------- */
.dalia-voice-orb {
  position: relative;
  flex: 0 0 auto;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  transition: transform .25s ease;
}

/* Orbe canvas (renderer fluido de 165_appDALIA.js; los gradientes CSS de
   debajo quedan como fallback sin canvas / reduced-motion) */
.dalia-voice-orb__canvas {
  position: absolute;
  inset: 0;
  display: none;
  width: 100%;
  height: 100%;
  border-radius: 50%;
}

.dalia-voice-orb.has-canvas .dalia-voice-orb__canvas { display: block; }
.dalia-voice-orb.has-canvas .dalia-voice-orb__swirl { display: none; }
.dalia-voice-orb.has-canvas::before { background: none; }

/* En dock hay sitio: orbe mas grande */
.dalia-panel[data-mode="dock"] .dalia-voice-orb {
  width: 120px;
  height: 120px;
}

/* Nucleo esfera */
.dalia-voice-orb::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background:
    radial-gradient(circle at 32% 28%, rgba(255, 255, 255, .85), transparent 30%),
    radial-gradient(circle at 68% 74%, color-mix(in srgb, var(--dt-coral) 75%, transparent), transparent 44%),
    conic-gradient(from 25deg, var(--dt-blue), var(--dt-cyan) 38%, var(--dt-coral) 70%, var(--dt-blue));
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, .35),
    0 6px 26px color-mix(in srgb, var(--dt-blue) 22%, transparent);
  transition: box-shadow .25s ease;
}

/* Remolino interior: conic translucido gigante rotando, recortado al circulo */
.dalia-voice-orb__swirl {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  overflow: hidden;
}

.dalia-voice-orb__swirl::before {
  content: "";
  position: absolute;
  inset: -40%;
  background: conic-gradient(from 0deg,
    transparent 0 14%,
    color-mix(in srgb, var(--dt-cyan) 55%, transparent) 26%,
    transparent 40%,
    color-mix(in srgb, var(--dt-coral) 45%, transparent) 58%,
    transparent 72%,
    color-mix(in srgb, var(--dt-blue) 50%, transparent) 86%,
    transparent);
  filter: blur(12px);
  animation: daliaOrbSwirl 9s linear infinite;
}

/* Anillo fino interior */
.dalia-voice-orb::after {
  content: "";
  position: absolute;
  inset: 7px;
  border: 1px solid rgba(255, 255, 255, .5);
  border-radius: 50%;
  filter: blur(.2px);
}

.dalia-voice-orb__ring {
  position: absolute;
  inset: -6px;
  border: 1.5px solid color-mix(in srgb, var(--dt-cyan) 55%, transparent);
  border-radius: 50%;
  opacity: 0;
  transform: scale(.92);
  pointer-events: none;
}

@keyframes daliaOrbSwirl {
  to { transform: rotate(360deg); }
}

/* LISTENING: remolino rapido + ripples + glow cian */
.dalia-panel[data-voice-state="listening"] .dalia-voice-orb__swirl::before {
  animation-duration: 3.4s;
}

.dalia-panel[data-voice-state="listening"] .dalia-voice-orb::before {
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, .4),
    0 8px 34px color-mix(in srgb, var(--dt-cyan) 34%, transparent);
}

.dalia-panel[data-voice-state="listening"] .dalia-voice-orb__ring--a {
  animation: daliaVoiceRipple 1.7s ease-out infinite;
}

.dalia-panel[data-voice-state="listening"] .dalia-voice-orb__ring--b {
  animation: daliaVoiceRipple 1.7s ease-out .85s infinite;
}

@keyframes daliaVoiceRipple {
  0%   { opacity: .55; transform: scale(.92); }
  100% { opacity: 0; transform: scale(1.55); }
}

/* SPEAKING: latido de amplitud + glow coral */
.dalia-panel[data-voice-state="speaking"] .dalia-voice-orb {
  animation: daliaVoiceSpeak .92s ease-in-out infinite;
}

.dalia-panel[data-voice-state="speaking"] .dalia-voice-orb__swirl::before {
  animation-duration: 2.2s;
  filter: blur(10px) saturate(1.3);
}

.dalia-panel[data-voice-state="speaking"] .dalia-voice-orb::before {
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, .4),
    0 10px 38px color-mix(in srgb, var(--dt-coral) 30%, transparent);
}

@keyframes daliaVoiceSpeak {
  0%, 100% { transform: scale(1); }
  30%      { transform: scale(1.06); }
  60%      { transform: scale(.985); }
}

.dalia-voice-status {
  margin: 0;
  color: var(--dt-muted);
  font-size: 13px;
  font-weight: 550;
  text-align: center;
}

.dalia-panel[data-voice-state="listening"] .dalia-voice-status,
.dalia-panel[data-voice-state="speaking"] .dalia-voice-status {
  color: var(--dt-text);
}

/* Estado "pensando": shimmer sobre el texto (patron shimmering-text) */
.dalia-voice-status.is-shimmer {
  background: linear-gradient(105deg, var(--dt-muted) 30%, var(--dt-text) 45%, var(--dt-cyan) 51%, var(--dt-coral) 56%, var(--dt-muted) 70%);
  background-size: 220% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: daliaShimmer 1.7s linear infinite;
}

/* Transcripcion en vivo (DaliaPanel.transcript) */
.dalia-voice-transcript {
  width: 100%;
  max-width: 420px;
  max-height: 120px;
  overflow: auto;
  color: var(--dt-muted);
  font-size: 13px;
  line-height: 1.5;
  text-align: center;
  overscroll-behavior: contain;
}

.dalia-voice-transcript:empty { display: none; }

.dalia-voice-transcript p {
  margin: 0 0 4px;
  color: var(--dt-text);
}

/* Turnos de la transcripcion (patron transcript-viewer): tu voz vs Dalia */
.dalia-voice-transcript p.is-dalia { color: var(--dt-muted); }

.dalia-voice-transcript .is-interim {
  color: var(--dt-muted);
  font-style: italic;
  opacity: .8;
}

.dalia-voice-mic {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--dt-border-strong);
  border-radius: 50%;
  background: var(--dt-surface);
  color: var(--dt-text);
  font-size: 19px;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}

.dalia-voice-mic:hover { background: var(--dt-hover); transform: scale(1.04); }

.dalia-voice-mic:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 2px var(--dt-focus-ring);
}

.dalia-voice-mic[aria-pressed="true"] {
  border-color: var(--dt-cta);
  background: var(--dt-cta);
  color: var(--dt-cta-fg);
}

.dalia-voice-mic .dalia-voice-mic__off { display: none; }
.dalia-voice-mic[aria-pressed="true"] .dalia-voice-mic__on { display: none; }
.dalia-voice-mic[aria-pressed="true"] .dalia-voice-mic__off { display: inline-flex; }

/* --------------------------------------------------------------------
 * 10 · Responsive
 * -------------------------------------------------------------------- */
@media (max-width: 1299.98px) {
  .dalia-pill { width: clamp(200px, 32vw, 320px); height: 32px; }
}

/* Mini-sidebar: que el pop no asome bajo el rail (z 3001) en anchos justos */
body[data-sidebartype="mini-sidebar"] .dalia-panel[data-mode="pop"] {
  max-width: calc(100vw - 76px);
}

@media (max-width: 991.98px) {
  .dalia-pill { width: clamp(150px, 30vw, 240px); }
}

@media (max-width: 767.98px) {
  /* el titulo del topbar ya se oculta en este rango: pill compacto */
  .dalia-pill { width: auto; padding: 0 14px; }
}

@media (max-width: 640px) {
  /* Hoja casi full-width bajo la barra; pisa el left inline del JS */
  .dalia-panel[data-mode="pop"],
  .dalia-panel[data-mode="dock"] {
    top: calc(var(--dt-topbar-h) + 6px);
    right: 8px !important;
    bottom: auto;
    left: 8px !important;
    width: auto;
    max-width: none;
    border: 1px solid var(--dt-border);
    border-radius: 14px;
    transform: translateY(-4px) scale(.985);
  }

  .dalia-panel[data-mode="dock"] { bottom: 8px; }

  .dalia-panel[data-mode="pop"].is-open,
  .dalia-panel[data-mode="dock"].is-open { transform: translateY(0) scale(1); }

  .dalia-panel__body { max-height: min(48dvh, 380px); }
  .dalia-panel[data-mode="pop"] .dalia-panel__pane[data-dalia-pane="chat"] { height: min(62dvh, 520px); }
  .dalia-panel[data-mode="pop"][data-size="compact"] .dalia-panel__pane[data-dalia-pane="chat"] {
    height: var(--dalia-compact-h, min(26dvh, 220px));
    max-height: min(46dvh, 380px);
  }
}

/* Datanav: sidebar fija de 70px con z 3001 (lastcssmarc.css) */
@media (max-width: 400px) {
  html.is-datanav .dalia-panel { left: 78px !important; }
}

@media (pointer: coarse) {
  .dalia-pill { height: 32px; }
  .dalia-panel__foot { display: none; } /* hints de teclado no aplican en tactil */
  .dalia-panel__close { width: 30px; min-width: 30px; height: 30px; padding: 0; border-radius: 8px; }
  .dalia-panel__close-esc { display: none; }
  .dalia-panel__close-x { display: inline-flex; }
  .dalia-panel__micshortcut { width: 36px; height: 36px; }
}

/* --------------------------------------------------------------------
 * 11 · Reduced motion: bloque propio — el guard global de .topbar * no
 * alcanza pseudo-elementos (el remolino del orbe vive en ::before).
 * -------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .dalia-pill,
  .dalia-orb-mini,
  .dalia-pill__label,
  .dalia-panel,
  .dalia-voice-orb,
  .dalia-voice-orb::before,
  .dalia-voice-orb__swirl::before,
  .dalia-voice-orb__ring,
  .dalia-voice-status,
  .dalia-note,
  .dalia-chat__msgs .msg,
  .ai-thinking-label,
  .dalia-chat__msgs .msg.is-streaming .bubble > .body::before,
  .dalia-chat__msgs .msg.is-streaming .stream-line:last-child::after,
  .dalia-chat__msgs .msg.is-streaming .stream-text:empty::after,
  .stream-loading,
  .print-in > *,
  .stagger-in tr,
  .step.step-pending .step-head .icon,
  .step.step-pending .step-head .name,
  .dalia-chat__box,
  .dalia-chat__box::before,
  .dalia-panel[data-sending="y"] .dalia-chat__send,
  .voice-transcript,
  .dalia-chat__effort,
  .dalia-chat__history,
  .msg-action-btn {
    transition: none !important;
    animation: none !important;
  }
}
