/* GENERADO por scripts/leadz-generar-vistas.mjs desde vista-leadz-ficha.js#CSS_FICHA (vista ficha, css). No se edita a mano. */

  /* La ficha sigue midiendo el alto de la ventana y scrollean sus paneles. Con la calificación bajo el nombre y el
     resumen a la vista (Ola 3) la cabecera ocupa más, y en una ventana baja las columnas se quedaban en 80 px:
     por eso las columnas tienen un mínimo y, solo si no cabe, es la ficha entera la que scrollea. */
  .lz-fx { flex:1; min-width:0; display:flex; flex-direction:column; gap:20px; padding:20px 28px 20px; overflow-x:hidden; overflow-y:auto; }
  /* Barra contextual: migas arriba del nombre, y el bloque entero se queda pegado al bajar. */
  /* Cuadrícula y no flex: el DOM va en el orden en que se lee y se tabula (nombre, acciones, calificación
     y chips) y las acciones quedan arriba a la derecha sin depender de que vengan después en el código. */
  .lz-fx-top { flex:0 0 auto; display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"id tools" "sub sub"; column-gap:16px; align-items:start; padding-bottom:8px; }
  /* El botón de notas no se mueve al pasar el ratón (el compartido lo subía 2 px: cambio de layout en hover). */
  .lz-mail-in { flex:1; height:30px; font-size:12.5px; }
  .lz-fx-id { grid-area:id; min-width:0; }
  /* El título de cada caja es un h3 (jerarquía h1 > h2 del panel > h3), con el aspecto del span de antes. */
  h3.lz-acc-t { margin:0; font-family:inherit; line-height:inherit; letter-spacing:inherit; }
  .lz-fx-top .ztools { grid-area:tools; }
  .lz-fx-top .lz-fx-sub { grid-area:sub; }
  .lz-crumb { display:flex; align-items:center; gap:6px; font-size:var(--fs-2); color:var(--text-muted); margin-bottom:4px; white-space:nowrap; overflow:hidden; }
  .lz-crumb a { color:var(--text-muted); }
  .lz-crumb a:hover { color:var(--text); }
  .lz-crumb [aria-current] { color:var(--text-2); overflow:hidden; text-overflow:ellipsis; }
  /* El bloque de nombre + chips toma el ancho sobrante (flex:1 1 0 inline) y las acciones no
     se encogen: con el chip "en espera hasta …" a 1366 px, los cuatro botones se iban a una segunda
     línea y la cabecera crecía de 51 a 103 px. Ahora son los chips los que envuelven. */
  .lz-fx-top .ztools { flex:0 0 auto; gap:8px; }
  .lz-fx-top .zbtn { height:36px; padding:0 14px; font-size:13px; position:relative; gap:8px; }
  .lz-fx-top .zbtn .lz-glifo { width:16px; height:16px; }
  .lz-fx-h1 { margin:0; font-size:24px; font-weight:500; letter-spacing:-.02em; line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .lz-fx-sub { display:flex; align-items:center; gap:6px; margin-top:8px; flex-wrap:wrap; }
  /* Cambiar de asesor es un dato, no una vista (PCB5A-01, PCB-466): el select no envía solo. Se elige y se
     confirma con un botón que nombra a quién se asigna. */
  .lz-fx-asig__fila { display:flex; gap:8px; align-items:center; }
  .lz-fx-asig__fila .zinput { flex:1 1 auto; min-width:0; }
  .lz-fx-asig__fila .zbtn { flex:none; max-width:55%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .lz-fx-asig__msg { margin:6px 0 0; min-height:1.3em; }
  .lz-fx-asig__msg:empty { display:none; }
  /* Chips de la cabecera: 22 px, 11.5 px, píldora, fondo tintado y texto del mismo tono; el punto de
     la etapa lleva el color (--st) pero el texto sigue en --text para no depender del tono. */
  .lz-fx-sub .lz-chip { display:inline-flex; align-items:center; gap:6px; height:22px; padding:0 9px; font-size:11.5px; font-weight:500; letter-spacing:0; text-transform:none; border:0; border-radius:var(--r-pill); background:var(--surface-2); color:var(--text-2); font-variant-numeric:tabular-nums; }
  .lz-fx-sub .lz-chip--st { background:color-mix(in oklch, var(--st, var(--st1)) 14%, var(--surface)); color:var(--text); font-weight:600; }
  .lz-fx-sub .lz-chip--st i { width:8px; height:8px; border-radius:50%; background:var(--st, var(--st1)); flex:0 0 auto; }
  .lz-fx-sub .lz-chip--on { background:var(--ok-soft); color:var(--ok-text); }
  /* La calificación es lo PRIMERO que se lee bajo el nombre (F-2): su propia fila, con la banda y el
     número a la medida de un dato principal. Los chips de siempre quedan debajo, sin cambiar. */
  .lz-fx-califica { flex:0 0 100%; min-width:0; margin-bottom:4px; }
  .lz-fx-califica .lz-califica { gap:6px 14px; }
  .lz-fx-sub .lz-fx-califica .lz-califica__b { height:auto; padding:0; font-size:var(--fs-3); font-weight:500; background:transparent; color:var(--text); }
  .lz-fx-califica .lz-califica__b .lz-etapa-dot { width:10px; height:10px; }
  .lz-fx-califica .lz-califica__n { font-size:var(--fs-6); font-weight:600; line-height:1; }
  .lz-fx-califica .lz-califica__o { font-size:var(--fs-2); }
  .lz-fx-califica .lz-pop__p { z-index:var(--z-dropdown); }
  .lz-fx-etapa { flex:0 0 auto; border:1px solid var(--border); border-radius:var(--r-card); background:var(--surface); padding:18px 20px; box-shadow:none; display:grid; gap:16px; }
  /* Stepper de etapas. Cada paso es su propio <form> POST, así que funciona sin JavaScript. */
  .lz-stepper { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
  .lz-step { margin:0; display:inline-flex; }
  /* nav > ol > li para el lector de pantalla (PCB-156) sin cambiar el layout: la lista y el nav no generan caja. */
  .lz-step-nav, .lz-step-ol { display:contents; }
  .lz-step-ol { list-style:none; margin:0; padding:0; }
  .lz-step form { margin:0; display:inline-flex; }
  .lz-step a { text-decoration:none; }
  .lz-step :is(button, a) { height:30px; padding:0 12px; border:1px solid var(--border); background:var(--surface); color:var(--text-2); font-size:12.5px; font-weight:500; font-family:inherit; cursor:pointer; white-space:nowrap; border-radius:var(--r-pill); display:inline-flex; align-items:center; gap:7px; }
  /* El hover solo existe con puntero fino. Sin @media, un toque dejaba el :hover pegado y esta regla (0,2,1) le ganaba a
     la del paso que sigue (0,1,1): texto --text sobre fondo --text, 1.8:1 a 2.3:1 en el primario «Cita · …» (F1-03). */
  @media (hover:hover) { .lz-step :is(button, a):hover { border-color:var(--text-muted); color:var(--text); } }
  .lz-step :is(button, a):focus-visible, .lz-step-aux:focus-visible { outline:none; box-shadow:var(--ring); border-color:var(--accent); }
  .lz-step.done :is(button, a) { background:transparent; border-color:transparent; color:var(--text-2); }
  /* El check de "hecha" se dibuja con bordes y no con un glifo de texto: así toma --ok sin pelear con la fuente. */
  /* El paso ya cumplido también responde al ratón: su regla de reposo le ganaba al hover y no cambiaba nada. */
  @media (hover:hover) { .lz-step.done :is(button, a):hover { border-color:var(--text-muted); color:var(--text); } }
  .lz-step.done :is(button, a)::before { content:""; width:4px; height:8px; border:solid var(--text-muted); border-width:0 2px 2px 0; transform:rotate(45deg) translate(-1px,-1px); flex:0 0 auto; }
  /* El paso actual es selección, no acción: contorno en --text y peso 600, SIN relleno (PCB9A-43). El único relleno de la tira
     es la siguiente acción; con dos rellenos grises no se sabía cuál era cuál. */
  .lz-step.on :is(button, a) { background:transparent; color:var(--text); border-color:var(--text); font-weight:600; }
  /* El paso que sigue es el primario, igual que «Mover a …» de controlEtapa en el Inbox (F-7). */
  .lz-step--sig :is(button, a), .lz-step--won.lz-step--sig :is(button, a) { background:var(--pri-bg); border-color:transparent; color:var(--text); font-weight:500; }
  @media (hover:hover) { .lz-step--sig :is(button, a):hover, .lz-step--won.lz-step--sig :is(button, a):hover { background:var(--pri-bg-hover); border-color:transparent; color:var(--text); } }
  .lz-step--sig :is(button, a) .lz-glifo { width:14px; height:14px; }
  .lz-step--won :is(button, a) { color:var(--text-2); }
  .lz-step--won.on :is(button, a) { background:transparent; border-color:var(--text); color:var(--text); font-weight:600; }
  .lz-step-aux { height:30px; padding:0 12px; display:inline-flex; align-items:center; gap:6px; border:1px solid var(--border); background:var(--surface); color:var(--text-2); font-size:12.5px; font-weight:500; font-family:inherit; cursor:pointer; border-radius:var(--r-pill); }
  .lz-step-aux:hover { color:var(--text); border-color:var(--text-muted); }
  .lz-step-aux.on { background:var(--sel-bg); color:var(--text); border-color:transparent; border-style:solid; }
  .lz-step-aux--lost { color:var(--text-2); border-color:var(--border); }
  .lz-step-aux--lost:hover { color:var(--bad-text); border-color:var(--bad); }
  .lz-step-aux--lost.on { background:var(--sel-bg); color:var(--text); border-color:transparent; }
  /* A ≤480 px la tira entera no cabe (cuatro renglones, ~430 px, PCB9A-36): se queda la etapa actual como chip y «Cambiar etapa»
     abre el menú con todas. Arriba de 480 el chip y el botón no existen. */
  .lz-step-actual, .lz-step-cambiar { display:none; }
  @media (max-width:480px) {
    .lz-step-actual { display:inline-flex; align-items:center; height:30px; padding:0 12px; border:1px solid var(--text); border-radius:var(--r-pill); font-size:12.5px; font-weight:600; color:var(--text); }
    .lz-step-cambiar { display:inline-flex; align-items:center; gap:4px; height:30px; padding:0 12px; border:1px solid var(--border); border-radius:var(--r-pill); background:var(--surface); color:var(--text-2); font:inherit; font-size:12.5px; font-weight:500; cursor:pointer; }
    @media (pointer:coarse) { .lz-step-cambiar { height:44px; } }
    .lz-step-cambiar .lz-glifo { width:14px; height:14px; transform:rotate(90deg); transition:transform var(--dur-1) var(--ease-out); }
    .lz-step-cambiar[aria-expanded="true"] .lz-glifo { transform:rotate(-90deg); }
    .lz-step-cambiar:focus-visible { outline:none; box-shadow:var(--ring); border-color:var(--text-muted); }
    .lz-step-nav { display:block; flex:1 0 100%; order:5; }
    .lz-step-ol { display:none; }
    .lz-step-ol.abierta { display:flex; flex-direction:column; gap:4px; padding:6px; border:1px solid var(--hairline); border-radius:var(--r-card); background:var(--surface); box-shadow:var(--shadow-md); }
    .lz-step-ol.abierta .lz-step, .lz-step-ol.abierta .lz-step form { display:flex; width:100%; }
    .lz-step-ol.abierta .lz-step :is(button, a) { width:100%; justify-content:flex-start; height:44px; }
    .lz-stepper .lz-step-sep { display:none; }
  }
  .lz-step-sep { display:inline-block; width:1px; height:20px; background:var(--line-2); align-self:center; margin:0 4px; }
  /* Barra de tiempo por etapa: cada tramo en el color de su etapa, el actual a plena fuerza y los que
     faltan en discontinuo, para que se lea "dónde va" sin contar. */
  .lz-fx-bar { display:flex; gap:3px; height:6px; }
  .lz-fx-bar i { display:block; background:var(--text-muted); opacity:.35; border-radius:3px; min-width:3px; }
  .lz-fx-bar i.act { opacity:1; background:var(--text-2); }
  .lz-fx-bar i.fut { background:var(--surface-3); opacity:1; }
  .lz-fx-pie { display:flex; gap:6px 18px; flex-wrap:wrap; font-size:12.5px; color:var(--text-muted); }
  .lz-fx-pie b { color:var(--text); font-weight:500; }
  .lz-fx-pie .muted { color:var(--text-muted); }
  /* Etiqueta chica de bloque ("Pendiente", "Resumen"): peso, no mayúsculas con tracking ancho. */
  .lz-fx-tag { font-size:11.5px; font-weight:500; color:var(--text-2); white-space:nowrap; }
  .lz-fx-accion { display:flex; align-items:center; gap:12px; padding:10px 12px; min-height:48px; background:var(--warn-soft); border-radius:var(--r-control); font-size:13px; color:var(--text); }
  .lz-fx-accion .lz-fx-tag { color:var(--warn-text); }
  .lz-fx-accion-t { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .lz-fx-accion form { margin:0 0 0 auto; flex:0 0 auto; }
  .lz-fx-accion .zbtn { height:32px; font-size:12.5px; padding:0 14px; }

  /* Modal de "en espera" (#lz-espera-modal), mismo párrafo explicativo que antes vivía en el
     bloque siempre abierto. */
  .lz-espera-p { font-size:13px; line-height:1.5; color:var(--text-2); margin:0 0 12px; }
  /* Con el campo de fecha del DS el selector mide 660 px: la caja se ensancha para que lo contenga. */
  #lz-espera-modal .box { width:min(724px,94vw); }

  /* Resumen con IA: tarjeta con cabecera y, cerrada, una sola línea con lo accionable ("Qué decir hoy").
     Abierta, filas dt/dd y la accionable como franja de acento al pie. */
  .lz-resumen { flex:0 0 auto; border:1px solid var(--border); border-radius:var(--r-card); background:var(--surface); box-shadow:none; margin:0; overflow:hidden; }
  .lz-resumen--plano, .lz-resumen > summary { display:flex; align-items:center; gap:12px; min-height:44px; padding:0 16px; box-sizing:border-box; font-size:13.5px; min-width:0; }
  .lz-resumen > summary { cursor:pointer; list-style:none; }
  .lz-resumen > summary::-webkit-details-marker { display:none; }
  .lz-resumen > summary:hover { background:var(--surface-2); }
  .lz-resumen > summary:focus-visible { outline:none; box-shadow:var(--ring-inset); }
  .lz-resumen .lz-fx-tag { font-size:13.5px; color:var(--text); font-weight:500; }
  .lz-resumen .lz-resumen-k { font-size:11.5px; font-weight:500; color:var(--text-muted); background:transparent; padding:0; border-radius:var(--r-pill); }
  .lz-resumen .lz-resumen-n { font-size:11.5px; font-weight:500; color:var(--text-muted); }
  .lz-resumen-t { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text-2); }
  .lz-resumen--plano form { margin:0 0 0 auto; }
  .lz-resumen--plano .zbtn { height:32px; font-size:12.5px; padding:0 14px; }
  .lz-resumen--plano .lz-mini { display:block; margin:0 0 0 auto; }
  .lz-resumen-caret { width:7px; height:7px; border-right:1.5px solid var(--text-muted); border-bottom:1.5px solid var(--text-muted); transform:rotate(45deg); flex:0 0 auto; margin:0 3px 3px 0; transition:transform .12s; }
  .lz-resumen[open] .lz-resumen-caret { transform:rotate(-135deg); margin:3px 3px 0 0; }
  .lz-resumen[open] > summary { border-bottom:1px solid var(--border); }
  .lz-resumen-b { max-height:260px; overflow:auto; padding:0 16px 14px; }
  .lz-resumen-b .lz-mini { margin-top:10px; display:block; }
  /* Cuerpo abierto: etiqueta (dt) a la izquierda en --text-muted y texto a 14 px para LEER. Clases
     propias: .lz-kv es para escanear datos cortos y aquí cada valor es una o dos oraciones. */
  .lz-rs { display:flex; flex-direction:column; }
  .lz-rs-fila { display:grid; grid-template-columns:var(--lz-etq-w,168px) minmax(0,1fr); gap:16px; align-items:start; padding:8px 0; border-bottom:1px solid var(--border); }
  .lz-rs-fila:last-child { border-bottom:0; }
  .lz-rs-k { font-size:13px; font-weight:500; color:var(--text-muted); }
  .lz-rs-v { margin:0; font-size:14px; line-height:1.5; text-align:left; font-weight:400; color:var(--text); overflow-wrap:break-word; }
  .lz-rs-fila--hoy { padding:12px 0; }
  .lz-rs-fila--hoy .lz-rs-k { color:var(--text); font-weight:600; font-size:var(--fs-3); }
  .lz-rs-fila--hoy .lz-rs-v { font-weight:600; font-size:var(--fs-4); }
  /* Resumen a la vista (F-4): «Qué decir hoy» y «Señales» siempre visibles, en dos columnas, y lo demás
     detrás de «Ver todo». Ya no es un renglón de una línea cortado con puntos suspensivos. */
  .lz-resumen--v { padding:0; }
  .lz-resumen-hd { display:flex; align-items:center; flex-wrap:wrap; gap:4px 12px; min-height:40px; padding:6px 16px 0; }
  .lz-resumen-n { font-size:var(--fs-1); font-weight:500; color:var(--text-muted); }
  .lz-resumen-nota { margin:0; padding:0 16px 8px; font-size:var(--fs-2); color:var(--text-muted); }
  .lz-resumen-act { margin-left:auto; }
  .lz-resumen-act form, .lz-resumen-act .lz-mini { margin:0; display:block; }
  .lz-resumen-act .zbtn { height:28px; font-size:var(--fs-2); padding:0 12px; }
  /* Rejilla etiqueta/valor con la columna de etiqueta de la molécula compartida (--lz-etq-w, 168 px): la misma de «Quién es» en Enfoque. */
  .lz-rs--vis { --lz-etq-w:168px; display:flex; flex-direction:column; padding:2px 16px 8px; }
  .lz-resumen--v .lz-rs-fila { align-items:baseline; gap:2px 16px; padding:8px 0; border-bottom:0; border-top:1px solid var(--border); }
  .lz-resumen--v .lz-rs-fila:first-child { border-top:0; }
  .lz-resumen--v .lz-rs-v { max-width:none; }
  @media (max-width:520px) { .lz-resumen--v .lz-rs-fila { grid-template-columns:minmax(0,1fr); } }
  .lz-resumen-mas { border-top:1px solid var(--border); }
  .lz-resumen-mas > summary { list-style:none; display:flex; align-items:center; gap:8px; min-height:36px; padding:0 16px; cursor:pointer; font-size:var(--fs-2); font-weight:500; color:var(--text-2); }
  .lz-resumen-mas > summary::-webkit-details-marker { display:none; }
  @media (hover:hover) { .lz-resumen-mas > summary:hover { color:var(--link-hover); background:var(--surface-2); } }
  .lz-resumen-mas > summary:focus-visible { outline:none; box-shadow:var(--ring-inset); }
  .lz-resumen-mas > summary .lz-resumen-caret { border-color:currentColor; margin:0 3px 3px 0; }
  .lz-resumen-mas[open] > summary .lz-resumen-caret { transform:rotate(-135deg); margin:3px 3px 0 0; }
  /* «Ver todo» no empuja las columnas más de la cuenta: tres campos lado a lado y tope de alto con
     scroll propio (la ficha no scrollea, scrollean sus paneles). */
  .lz-resumen-mas > .lz-rs { --lz-etq-w:168px; padding:0 16px 12px; max-height:min(260px,32vh); overflow:auto; }
  /* Con la ventana de 24 h cerrada, el selector de plantillas del compositor va plegado en un
     <details> (compositor() en vista-leadz-hilo.js, solo en la ficha). Abierto, la lista se acorta
     para que el feed de WhatsApp no baje de ~250 px; en el Inbox la columna es más alta y se queda
     con los 238 px de ESTILOS_LEADZ. */
  /* Cuatro filas de 44 px (en esa columna el selector es angosto) en vez de seis. */
  .lz-wa2 .lz-tpl-lista { max-height:calc(4 * 44px + 34px); }

  .lz-fx-cols { flex:1 1 0; min-height:360px; display:grid; grid-template-columns:400px minmax(320px,1fr); gap:16px; }
  .lz-fx-cols > * { min-height:0; }
  .lz-fx-info { display:flex; flex-direction:column; overflow:hidden; padding:0; box-shadow:none; }

  .lz-kvs { display:flex; flex-direction:column; }
  .lz-kv { display:flex; justify-content:space-between; gap:12px; padding:7px 0; border-bottom:1px solid var(--border); font-size:13px; }
  .lz-kv:last-child { border-bottom:0; }
  .lz-kv span { color:var(--text-muted); flex:0 0 auto; }
  .lz-kv b { font-size:13px; font-weight:500; text-align:right; word-break:break-word; min-width:0; }
  .lz-nada { font-size:13px; color:var(--text-muted); margin:0; line-height:1.5; }
  /* Campos de las cajas: label arriba (12 px, --text-2), control de 34 px. */
  .lz-acc-body .zinput, .lz-acc-body .zta { height:auto; min-height:34px; font-size:13px; padding:7px 10px; }
  .lz-acc-body .zinput:not(textarea) { height:34px; }
  .lz-acc-body label { font-size:12px; font-weight:500; margin:12px 0 4px; color:var(--text-2); }
  .lz-acc-body .zbtn { height:34px; font-size:12.5px; }
  /* Campo compuesto de WhatsApp: el país (select) y el número comparten UN contorno separados por
     un hairline; el foco va en el contenedor (:focus-within, regla .zfield) y los internos no pintan nada. */
  /* El contenedor lleva el borde y el fondo de campo (--field-line, --field): con --border sobre --surface el
     número de WhatsApp no se distinguía de la tarjeta. */
  .lz-wafield { display:flex; align-items:stretch; height:34px; border:1px solid var(--field-line); border-radius:var(--r-input); background:var(--field); overflow:hidden; }
  .lz-wafield select, .lz-wafield input { height:100%; border:0; background:transparent; color:var(--text); font-family:inherit; font-size:13px; outline:none; box-shadow:none; padding:0 10px; min-width:0; }
  .lz-wafield select { flex:0 0 42%; max-width:150px; border-right:1px solid var(--field-line); text-overflow:ellipsis; cursor:pointer; }
  /* El país del WhatsApp dibuja el mismo chevrón que Industria, Producto y Asesor (select.zinput) y no la flecha
     nativa gruesa del navegador (PCB-248, Ola 7). */
  .lz-wafield select { appearance:none; -webkit-appearance:none; padding-right:30px; background-repeat:no-repeat; background-position:right 8px center; background-size:16px 16px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23737a8c' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); }
  [data-ds-theme="dark"] .lz-wafield select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239aa0ae' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); }
  .lz-wafield input { flex:1; }
  /* El foco del campo es el borde del contenedor (:focus-within). La animación global del anillo sobrescribe el
     box-shadow:none del input interno y dibujaba un segundo contorno tenue: se apaga también. */
  .lz-wafield select:focus-visible, .lz-wafield input:focus-visible { animation:none; box-shadow:none; }
  /* minmax(0,1fr): un campo datetime-local nativo trae un ancho mínimo intrínseco grande y con
     1fr empuja el botón fuera del panel. */
  .lz-mini { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; margin-top:10px; }
  .lz-mini input[name="titulo"] { grid-column:1 / -1; }
  /* El campo de fecha del DS (label + botón) hace de celda de la rejilla; el botón de enviar se alinea
     con el campo y no con su etiqueta. */
  .lz-mini__fecha { min-width:0; }
  /* El selector de fecha ya no necesita regla aquí: calendario.js lo coloca con position:fixed contra la ventana
     (debajo, arriba o centrado según quepa), así que ningún panel con scroll lo recorta. */
  .lz-mini:has(.lz-mini__fecha) > .zbtn { align-self:end; }
  .lz-mini__fecha .lz-fecha__lbl, .lz-reag-mini__fecha .lz-fecha__lbl { margin-top:0; font-size:12px; }
  .lz-mini__fecha .zinput, .lz-reag-mini__fecha .zinput { width:100%; }
  /* «Agendar» de la caja Videollamadas: la acción primaria va arriba de la lista. */
  .lz-cita-acc { display:flex; gap:8px; margin:0 0 10px; }
  .lz-cita-acc .zbtn { height:34px; font-size:12.5px; }
  .lz-cita-otro { margin-top:10px; }
  .lz-cita-otro > summary { padding:6px 0; }
  .lz-mini .zinput { min-width:0; }
  .lz-tar { list-style:none; margin:0; padding:0; }
  /* Reagendar desde la ficha: el campo de fecha va en su propio renglón porque en la columna
     angosta de las cajas no cabe junto a los tres botones de desenlace. */
  .lz-reag-mini { display:flex; align-items:flex-end; gap:6px; margin:6px 0 0; flex:0 0 100%; }
  .lz-tar li:has(.lz-reag-mini) { flex-wrap:wrap; }
  .lz-reag-mini__fecha { flex:1; min-width:0; }
  .lz-reag-mini .zinput { height:30px; font-size:12px; padding:0 6px; flex:1; min-width:0; }
  .lz-reag-mini .zbtn { height:30px; padding:0 10px; font-size:12px; white-space:nowrap; }
  /* Tareas: círculo de 18 px por tarea; las vencidas, en --bad-text con su fecha dicha en texto. */
  .lz-tar li { display:flex; align-items:flex-start; gap:10px; padding:9px 0; border-bottom:1px solid var(--border); }
  .lz-tar li:last-child { border-bottom:0; }
  .lz-tar-w { flex:1; min-width:0; }
  .lz-tar .t { display:block; font-size:13px; font-weight:500; line-height:1.35; }
  .lz-tar .d { display:block; font-size:12px; color:var(--text-muted); margin-top:2px; }
  .lz-tar form { margin:0; }
  .lz-tar li > form:has(.lz-tar-ck) { order:-1; flex:0 0 auto; }
  /* Acciones de una cita en la lista: iconos de 28 px con borde de control; cancelar va en rojo de pérdida. */
  .lz-cita-b { display:inline-grid; place-items:center; width:28px; height:28px; padding:0; border:1px solid var(--border-control); border-radius:var(--r-control); background:var(--surface); color:var(--text); cursor:pointer; }
  .lz-cita-b .lz-glifo { width:14px; height:14px; }
  .lz-cita-b--bad { color:var(--bad-text); border-color:var(--bad); }
  @media (hover:hover) { .lz-cita-b:hover { background:var(--surface-2); } .lz-cita-b--bad:hover { background:var(--bad-soft); } }
  .lz-cita-b:focus-visible { outline:none; box-shadow:var(--ring); }
  .lz-tar-ck { flex:0 0 auto; width:24px; height:24px; border:1.5px solid var(--text-muted); border-radius:50%; background:var(--surface); color:transparent; cursor:pointer; font-size:12px; line-height:1; padding:0; display:inline-flex; align-items:center; justify-content:center; }
  .lz-tar-ck { position:relative; transition:border-color var(--dur-1) var(--ease-out), background var(--dur-1) var(--ease-out); }
  .lz-tar-ck::after { content:""; position:absolute; left:8px; top:4px; width:5px; height:9px; border:solid var(--text); border-width:0 2px 2px 0; transform:rotate(45deg) scale(0); transform-origin:60% 60%; transition:transform var(--dur-2) var(--ease-out); }
  .lz-tar-ck:hover { background:var(--ok-soft); border-color:var(--ok); }
  .lz-tar-ck:hover::after { transform:rotate(45deg) scale(1); }
  .lz-tar-ck:focus-visible { outline:none; box-shadow:var(--ring); border-color:var(--accent); }
  .lz-tar li.lz-tar--vencida .t, .lz-tar li.lz-tar--vencida .d { color:var(--bad-text); }
  /* El botón de fusionar desde la caja de duplicados (§0.8): el botón mismo ES el <summary> que
     despliega la confirmación, mismo patrón que "+ Nuevo lead" en el pipeline (lz-alta). Sin
     esto, el marcador nativo del <details> se vería encima del texto del botón. */
  .lz-dup-conf { margin:0; }
  .lz-dup-conf > summary { display:inline-flex; list-style:none; }
  .lz-dup-conf > summary::-webkit-details-marker { display:none; }
  .lz-dup-conf[open] > summary { opacity:.75; }
  /* Engagement: las cifras se separan por hairline, no por una tarjeta cada una (sin tarjetas dentro de tarjetas). */
  .lz-egrid { display:grid; grid-template-columns:1fr 1fr; gap:0; border-top:1px solid var(--border); }
  .lz-egst { padding:10px 12px 10px 0; border-bottom:1px solid var(--border); }
  .lz-egst:nth-child(even) { padding-left:12px; border-left:1px solid var(--border); }
  .lz-egst .k { display:block; font-size:12px; font-weight:500; color:var(--text-muted); }
  .lz-egst b { display:block; font-size:18px; font-weight:500; letter-spacing:-.02em; margin:2px 0 2px; }
  .lz-egst small { display:block; font-size:12px; color:var(--text-muted); line-height:1.35; }
  /* Calificación: anillo cónico sobre --surface-2 con el número dentro. */
  .lz-score { display:flex; align-items:center; gap:14px; margin-bottom:12px; }
  .lz-score__ring { width:56px; height:56px; border-radius:50%; background:conic-gradient(var(--accent) calc(var(--v) * 1%), var(--surface-2) 0); display:grid; place-items:center; flex:0 0 auto; }
  .lz-score__ring b { width:44px; height:44px; border-radius:50%; background:var(--surface); display:grid; place-items:center; font-size:15px; font-weight:600; }
  .lz-score__tx { display:grid; gap:2px; font-size:12.5px; color:var(--text-2); }
  .lz-score__tx b { color:var(--text); font-size:13.5px; font-weight:600; }
  .lz-sug { display:flex; align-items:center; gap:8px; margin-top:12px; flex-wrap:wrap; }
  .lz-sug__l { font-size:12.5px; font-weight:500; color:var(--text-2); }
  .lz-sug__n { font-size:15px; font-weight:500; }
  .lz-sug .lz-chip--ia { display:inline-flex; align-items:center; height:auto; padding:0; border:0; border-radius:var(--r-pill); background:transparent; color:var(--text-2); font-size:11.5px; font-weight:400; letter-spacing:0; text-transform:none; }
  /* "Usar" es un enlace de texto, no un botón: aplica el sugerido sin guardar. */
  .lz-sug__usar { border:0; background:none; padding:0 2px; min-height:24px; font-family:inherit; font-size:12.5px; font-weight:500; color:var(--accent-text); cursor:pointer; }
  @media (hover:hover) { .lz-sug__usar:hover { text-decoration:none; color:var(--link-hover); } }
  .lz-sug__usar:focus-visible { outline:none; box-shadow:var(--ring); border-radius:var(--r-chip); }
  .lz-auto { font-size:11.5px; color:var(--text-muted); border:1px solid var(--border); border-radius:var(--r-chip); padding:0 5px; margin-left:5px; }
  .zqa { list-style:none; margin:0; padding:0; }
  .zqa li { padding:8px 0; border-bottom:1px solid var(--border); }
  .zqa li:last-child { border-bottom:0; }
  .zqa__q { display:block; font-size:12px; color:var(--text-muted); }
  .zqa__a { display:block; font-size:13px; margin-top:2px; }
  .lz-more > summary { cursor:pointer; font-size:12.5px; color:var(--accent-text); padding:8px 0; }
  @media (hover:hover) { .lz-more > summary:hover { text-decoration:none; color:var(--link-hover); } }
  /* La x de quitar etiqueta (.lz-etq-x, en ESTILOS_LEADZ) va siempre visible y a plena opacidad:
     con opacity:0 el teclado y el tacto no la encontraban, y a .6 el contraste caía a 3:1. */
  .lz-chip--etq { display:inline-flex; align-items:center; gap:2px; }
  .lz-chip--etq form { display:inline-flex; }
  .lz-fx-sub .lz-chip--etq { height:24px; padding-right:2px; }
  .lz-singuardar { font-size:12px; color:var(--warn-text); margin-left:10px; align-self:center; }
  .lz-etq-add { margin:0; }
  /* sin el margen global de label: lo subía 3 px sobre el eje de los chips */
  .lz-etq-add__l { margin:0; }
  /* Una tarea de llamada se cierra con los mismos dos desenlaces que en Enfoque (UCB8-12): «Hecha» perdía si el lead contestó. */
  .lz-tar-res { display:flex; gap:6px; flex:none; }
  /* Borde punteado con --border-control (3:1): con --line-2 medía 1.64:1 en oscuro y el campo se perdía. */
  .lz-etq-add input { width:96px; height:22px; padding:0 9px; font-size:11.5px; font-family:inherit; background:transparent; border:1px dashed var(--border-control); border-radius:var(--r-pill); color:var(--text-2); }
  .lz-etq-add input::placeholder { color:var(--text-muted); }
  .lz-etq-add input:focus { outline:none; border-style:solid; border-color:var(--accent); box-shadow:var(--ring); color:var(--text); }

  /* Hilo de actividad: icono en círculo de 24 px, texto a 12.5 y fecha a 11 a la derecha. */
  .lz-hilo-fl { position:sticky; top:0; z-index:var(--z-sticky); display:flex; gap:6px; flex-wrap:wrap; padding:10px 14px; background:var(--surface); border-bottom:1px solid var(--border); }
  .lz-hilo-fl button { height:26px; padding:0 10px; border:1px solid var(--border); background:transparent; color:var(--text-2); border-radius:var(--r-pill); font-family:inherit; font-size:12px; font-weight:500; cursor:pointer; }
  .lz-hilo-fl button:hover { color:var(--text); border-color:var(--text-muted); }
  .lz-hilo-fl button:focus-visible { outline:none; box-shadow:var(--ring); border-color:var(--accent); }
  .lz-hilo-fl button.on { background:var(--sel-bg); color:var(--sel-text); border-color:transparent; font-weight:600; }
  .lz-hilo { list-style:none; margin:0; padding:2px 14px 14px; }
  .lz-hilo li { display:grid; grid-template-columns:24px minmax(0,1fr) auto; gap:10px; padding:10px 0; border-top:1px solid var(--border); align-items:start; }
  .lz-hilo li:first-child { border-top:0; }
  .lz-hilo-i { width:24px; height:24px; border-radius:50%; background:var(--surface-2); color:var(--text-2); display:inline-flex; align-items:center; justify-content:center; }
  .lz-hilo-i svg { width:12px; height:12px; stroke:currentColor; fill:none; stroke-width:1.75; }
  .lz-hilo li[data-k="wa"] .lz-hilo-i { background:var(--surface-2); color:var(--text-2); }
  .lz-hilo-i--inv { background:var(--surface-3); color:var(--text); }
  .lz-hilo li .lz-hilo-i--mal { background:var(--bad-soft); color:var(--bad-text); }
  .lz-hilo-c { min-width:0; }
  .lz-hilo-t { font-size:12.5px; line-height:1.45; }
  .lz-hilo-t strong { font-weight:600; }
  .lz-hilo-s { font-size:12px; color:var(--text-muted); margin-top:2px; }
  .lz-hilo-d { font-size:var(--fs-1); color:var(--text-muted); white-space:nowrap; padding-top:3px; font-variant-numeric:tabular-nums; }
  .lz-hilo-c .lz-hilo-d { padding-top:0; margin-top:3px; }
  /* La cita de una nota sin borde lateral de color: fondo de superficie y hairline. */
  .lz-hilo-q { margin-top:8px; border:1px solid var(--border); border-radius:var(--r-control); padding:8px 10px; font-size:13px; line-height:1.5; background:var(--surface-2); white-space:pre-wrap; }
  .lz-hilo-au { height:32px; max-width:100%; margin-top:8px; }
  .lz-hilo-nada { padding:20px 14px; font-size:13px; color:var(--text-muted); }
  .lz-hilo-mas { text-align:center; padding:2px 14px 16px; }
  .lz-mal { color:var(--bad-text); }

  /* Conversación de WhatsApp a todo el alto */
  .lz-wa2 { display:flex; flex-direction:column; overflow:hidden; padding:0; box-shadow:none; }
  /* Con dos píldoras (ventana cerrada + no conectado) la fila no cabe a 1440: envuelve en vez de
     desbordar y recortar «Abrir en WhatsApp». */
  .lz-wa2-h { flex:0 0 auto; display:flex; align-items:center; gap:8px 10px; flex-wrap:wrap; padding:12px 16px; border-bottom:1px solid var(--border); }
  .lz-wa2-h b { font-size:14px; font-weight:500; }
  /* Nada de la cabecera se parte en dos líneas: a 1024 px el teléfono (que ya está en el campo
     WhatsApp de Datos) cede el sitio antes de que "Abrir en el Inbox" se aplaste. */
  .lz-wa2-h > * { flex:0 0 auto; white-space:nowrap; }
  .lz-wa2-tel { font-size:12px; color:var(--text-muted); }
  .lz-wa2-inbox { height:var(--h-control-sm); font-size:12.5px; padding:0 12px; background:transparent; border-color:transparent; color:var(--text-2); }
  .lz-wa2-inbox:hover { background:var(--sel-bg); }
  /* wa.me abre FUERA del producto: botón de icono como la lupa y la carpeta, con la flecha diagonal. Es
     solo icono porque con texto la cabecera, que ya trae la ficha de contacto, pasaba a dos renglones. */
  @media (max-width:1180px){ .lz-wa2-tel { display:none; } }
  .lz-wa2-ic svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:1.75; vertical-align:middle; color:var(--text-2); }
  /* Fondo liso, el del tema del hilo (--hilo-bg): el dot-grid era textura decorativa. Abajo deja 64 px
     para que el flotante de notas (position:fixed, esquina inferior derecha) no tape el último grupo. */
  .lz-wa2-feed { flex:1; min-height:0; overflow-y:auto; padding:16px 18px 64px; display:flex; flex-direction:column; gap:4px; background:var(--hilo-bg); }
  /* El espaciador hace que un hilo corto se pegue ABAJO, junto al compositor, en vez de flotar
     arriba con media pantalla en blanco. Crece cuando sobra espacio y se encoge a cero cuando el
     hilo es largo; con justify-content:flex-end se rompe el scroll hacia arriba. */
  .lz-wa2-esp { flex:1 1 auto; min-height:0; }
  /* El compositor de esta columna es el compartido (".lz-comp", en CSS_HILO): tenia el suyo,
     ".lz-wa2-comp", y con el se fue el CSS que lo vestia.
     El carril de la derecha es para el flotante de notas, que es position:fixed y vive justo en
     esa esquina. Rozaba el boton de enviar de antes; con la fila de adjuntar, que subio el
     compositor, se le puso encima y lo dejo sin poder pulsarse. Un control tapado no es un detalle
     visual: es un boton que no existe. */
  .lz-fx .lz-comp, .lz-fx .lz-comp-nojs { padding-right:62px; }

  .lz-nota-it { padding:12px 0; border-bottom:1px solid var(--border); }
  .lz-nota-it:last-child { border-bottom:0; }
  .lz-nota-it .m { font-size:12px; color:var(--text-muted); }
  .lz-nota-it .x { font-size:15px; line-height:1.5; margin-top:4px; white-space:pre-wrap; }

  /* Migas como lista (PCB-486): el <ol> no cambia la caja, solo lo que oye el lector de pantalla. */
  .lz-crumb ol { display:contents; list-style:none; margin:0; padding:0; }
  .lz-crumb li { display:inline-flex; align-items:center; min-width:0; }
  .lz-crumb li + li::before { content:"/"; margin:0 6px 0 0; color:var(--text-muted); }
  .lz-crumb li:last-child { overflow:hidden; }
  .lz-resumen-fb { margin-top:8px; font-size:var(--fs-2); }
  .lz-resumen-fb > summary { cursor:pointer; color:var(--text-2); width:fit-content; min-height:28px; display:inline-flex; align-items:center; }
  .lz-resumen-fb__f { display:flex; flex-wrap:wrap; gap:6px; margin:6px 0 2px; }
  .lz-espera-presets { display:flex; flex-wrap:wrap; gap:6px; }
  .lz-sinasesor { display:inline-flex; margin:0; }
  /* El cajón de notas no es un modal en escritorio: la ficha sigue a la vista y se puede consultar mientras se anota
     (PCB-327). El velo solo oscurece y bloquea en pantallas chicas, donde el cajón sí tapa la ficha. */
  @media (min-width:901px) { .lz-velo.on { pointer-events:none; opacity:0; } }
  /* Debajo de 1180px la columna de datos se angosta; debajo de 900 la ficha vuelve a ser una
     página normal que scrollea, porque en un teléfono dos columnas de alto fijo no caben. */
  @media (max-width:1180px){
    .lz-fx { padding:16px 20px; }
    .lz-fx-cols { grid-template-columns:340px minmax(300px,1fr); gap:12px; }
    /* Cuatro botones de texto en la cabecera saltan de línea antes de este ancho; se quedan solo
       con el icono (el aria-label ya está) para que quepan en un renglón. */
    .lz-fx-act .t { display:none; }
    .lz-fx-top .zbtn.lz-fx-act { padding:0 10px; }
  }
  @media (max-width:900px){
    .lz-fx { padding:14px 14px 40px; overflow:visible; height:auto; }
    .lz-fx-cols { display:block; }
    .lz-fx-info { max-height:none; margin-bottom:14px; }
    .lz-pane { max-height:70vh; max-height:70dvh; }
    .lz-wa2-feed { max-height:60vh; max-height:60dvh; }
  }
  /* Teléfono: el nombre del lead tiene su propia fila completa (a 390 se cortaba en «Felip…»), los
     botones de acción pasan a ser objetivos de 44 y la columna de WhatsApp se lee a todo el ancho. */
  @media (max-width:820px){
    .lz-fx-top { grid-template-columns:minmax(0,1fr); grid-template-areas:"id" "tools" "sub"; row-gap:10px; }
    /* Las columnas dejan de repartirse el alto (flex:1 1 0) y miden lo que mide su contenido. Con el selector de
       plantillas abierto la tarjeta de WhatsApp crecia mas que su fila y se salia de la ficha: el boton de enviar,
       lo ultimo de la tarjeta, quedaba bajo la barra de pestañas y no se podia tocar. */
    .lz-fx-cols { flex:0 0 auto; }
    .lz-fx-top .ztools { flex-wrap:wrap; align-items:stretch; }
    /* El botón de la cita: «Cita» y debajo la fecha en un solo renglón, y más ancho que sus vecinos para que la
       fecha quepa sin partirse (PCB8B-09). Los cuatro miden lo mismo porque la fila estira. */
    .lz-fx-act__p { display:none; }
    .lz-fx-act__r, .lz-fx-act__f { display:block; }
    .lz-fx-act__f { white-space:nowrap; }
    .lz-fx-top .ztools:has(.lz-fx-act--cita) .zbtn.lz-fx-act { flex:1 1 auto; max-width:none; }
    .lz-fx-top .ztools:has(.lz-fx-act--cita) .zbtn.lz-fx-act--cita { flex:2 1 auto; }
    /* Un icono solo no dice qué hace en táctil, donde no hay tooltip (PCB-1121, Ola 7): bajo cada glifo va su texto,
       como en la barra inferior. */
    .lz-fx-act .t { display:block; }
    .lz-fx-top .zbtn.lz-fx-act { flex-direction:column; justify-content:center; gap:3px; height:auto; min-height:52px; padding:6px 10px; font-size:var(--fs-1); line-height:1.15; text-align:center; flex:1 1 72px; max-width:132px; }
    /* El globo de «Qué cuenta la calificación» se abre contra el ancho de la cabecera y no contra el botón: a 390 px
       salía por la derecha (scrollWidth 622). */
    .lz-fx-califica { position:relative; }
    .lz-fx-califica .lz-califica__ayuda { position:static; }
    .lz-fx-califica .lz-califica__ayuda .lz-pop__p { left:0; right:0; min-width:0; width:auto; box-sizing:border-box; max-width:100%; }
    .lz-fx-h1 { white-space:normal; overflow:visible; font-size:22px; }
    .lz-fx .lz-comp, .lz-fx .lz-comp-nojs { padding-right:18px; }
    .lz-wa2-h { flex-wrap:wrap; }
    .lz-wa2-h > * { white-space:normal; }
    .lz-wa2-feed { max-height:70vh; max-height:70dvh; }
    .lz-fx-accion { flex-wrap:wrap; }
    .lz-fx-accion-t { white-space:normal; }
    .lz-rs-fila { grid-template-columns:minmax(0,1fr); gap:2px; }
    .lz-rs--vis, .lz-resumen-mas > .lz-rs { grid-template-columns:minmax(0,1fr); }
    .lz-resumen-mas > .lz-rs { max-height:none; }
    /* «Sin generar todavía.» no se corta a media palabra junto al botón: la tira envuelve y el texto pasa a
       dos renglones si hace falta (PCB8B-10). */
    .lz-resumen--plano { flex-wrap:wrap; row-gap:6px; padding-top:8px; padding-bottom:8px; }
    .lz-resumen--plano .lz-resumen-t { flex:1 1 140px; white-space:normal; overflow:visible; }
  }
  @media (pointer:coarse){
    .lz-fx-top .zbtn, .lz-step :is(button, a), .lz-step-aux { height:44px; }
    .lz-stepper { gap:8px; }
    .lz-hilo-fl button { height:36px; padding:0 14px; }
    /* Casilla de tarea: 44 px de área de toque con el círculo de siempre dibujado por dentro. */
    .lz-tar-ck { width:44px; height:44px; border:0; background:transparent; }
    .lz-tar-ck::before { content:""; position:absolute; inset:10px; border:1.5px solid var(--text-muted); border-radius:50%; background:var(--surface); }
    .lz-tar-ck::after { left:18px; top:14px; }
    .lz-tar-ck:hover::before { background:var(--ok-soft); border-color:var(--ok); }
    .lz-acc > summary, .lz-more > summary { min-height:44px; display:flex; flex-direction:column; justify-content:center; }
    .lz-acc-body .lz-inline input.zinput { min-height:44px; font-size:16px; }
    .lz-wafield { height:46px; }
    /* La × de una etiqueta: 44 px de área sin engordar el chip (márgenes negativos). */
    .lz-etq-x { width:44px; height:44px; margin:-10px -6px -10px -10px; }
    .lz-crumb a { display:inline-flex; align-items:center; min-height:44px; }
    .lz-cita-b { width:44px; height:44px; }
    .lz-hilo-fl button { height:44px; }
    .lz-acc-body .zinput:not(textarea), .lz-acc-body .zta, .lz-wafield select, .lz-wafield input, .lz-reag-mini .zinput { font-size:16px; }
    .lz-acc-body .zinput:not(textarea) { height:44px; }
    .lz-wafield { height:46px; }
    .lz-acc-body .lz-mail-in { height:44px; font-size:16px; }
    .lz-acc-body .zbtn, .lz-reag-mini .zbtn, .lz-reag-mini .zinput { height:44px; }
    /* «+ etiqueta» conserva la altura y el texto de las chips vecinas (22 px, 11.5 px); lo que crece a 44 px es el
       área que enfoca el campo, la etiqueta que lo envuelve (PCB8A-17). 16 px al escribir para que iOS no haga zoom. */
    /* El dibujo mide lo que un chip (22 px, PCB9A-35); el área táctil de 44 la pone un pseudo-elemento, sin crecer el renglón. */
    .lz-etq-add__l { position:relative; display:inline-flex; align-items:center; min-height:0; height:22px; margin:0; line-height:1; cursor:text; }
    .lz-etq-add__l::before { content:""; position:absolute; inset:-11px 0; }
    .lz-etq-add input { width:96px; height:22px; font-size:16px; }
    .lz-etq-add input::placeholder { font-size:11.5px; }
    .lz-wa2-inbox { height:44px; }
  }
  /* Reglas del sistema sin base propia: al final, para ganar a la base y a lo que el cascarón pinta antes. */
  .lz-fx-top .zbtn.lz-fx-act, .lz-fx-top a.zbtn.lz-fx-act { background:var(--surface-2); border-color:var(--border-control); color:var(--text); font-weight:450; }
  .lz-fx-act .lz-glifo, .lz-fx-act .lz-glifo--wa { color:var(--text-2) !important; }
  @media (hover:hover) { .lz-fx-top .zbtn.lz-fx-act:hover, .lz-fx-top a.zbtn.lz-fx-act:hover { background:var(--surface-3); border-color:var(--border-control); filter:none; } }
  .lz-fab-n { font-weight:500; }
  @media (hover:hover) { .lz-step-aux--lost:hover { color:var(--text); border-color:var(--border-control); } }
  .lz-ptabs button { font-weight:450; }
  .lz-ptabs button.on { font-weight:500; }
  .lz-ptabs button.on .n { color:var(--text-2); }
  .lz-acc-n { font-weight:400; }
  .lz-tar li.lz-tar--vencida .t { color:var(--text); }
  .lz-tar li.lz-tar--vencida .d { color:var(--warn-text); }
  @media (hover:hover) { .lz-tar-ck:hover { background:var(--surface-2); border-color:var(--text-2); } }
