/* Panel · Analíticas, Dashboard, actividades y llaves. Partido de styles.css el 23 oct 2026 (#0867). */
/* === Analíticas (12 sep 2026) ===========================================
   Pantalla de descargas y registros. Toma la forma de la app de App Store
   Connect que Mauricio dio como muestra —selector de período arriba, una
   tarjeta por medida con su variación y su gráfico— pero con los tokens del
   panel, no con los de Apple: el mismo teal, la misma tarjeta y la misma
   tipografía que el resto de las pantallas.

   El escritorio y el teléfono son el MISMO marcado: las tarjetas pasan de tres
   columnas a una, el selector de período gana scroll horizontal y la tabla usa
   el .table-scroll que ya tienen las demás. No hay una segunda plantilla que
   mantener. */
.an-rangos{display:flex;gap:4px;background:#E8EEF2;border-radius:999px;padding:4px;
  margin:0 0 16px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.an-rangos::-webkit-scrollbar{display:none}
.an-rango{flex:1 0 auto;min-width:56px;text-align:center;padding:7px 14px;border-radius:999px;
  font-size:13px;font-weight:600;color:var(--slate);white-space:nowrap;transition:background .12s,color .12s}
.an-rango:hover{color:var(--ink)}
/* El período y su interruptor «Incluir hoy» en la misma fila (6 oct 2026). */
.an-rangos-fila{display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap;margin:0 0 16px}
.an-rangos-fila .an-rangos{margin:0;flex:1 1 320px}
.an-con-hoy .col-sw{display:inline-block}
.an-con-hoy{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;white-space:nowrap}
.an-rango.is-active{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(20,30,45,.12)}

.an-periodo{margin:0;font-size:20px;font-weight:700;color:var(--ink)}
.an-periodo__sub{margin:2px 0 14px;color:var(--muted);font-size:12.5px}

.an-cards{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:18px}
@media (min-width:700px){.an-cards{grid-template-columns:repeat(3,1fr);gap:14px}}
/* 2 oct 2026: con el embudo completo son siete tarjetas por app (impresiones,
   vistas, App Store, Google Play, registros, aperturas, activados): cuatro por
   fila en pantalla ancha. */
@media (min-width:1100px){.an-cards.an-embudo{grid-template-columns:repeat(4,1fr)}}
/* Uso de la app: las 4 tarjetas en una sola línea (22 oct 2026, Mauricio). */
@media (min-width:900px){.an-cards.an-uso{grid-template-columns:repeat(4,1fr)}}
.an-embudo-nota{margin:-6px 2px 18px}
.an-card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px 12px;
  display:flex;flex-direction:column;min-height:112px}
.an-card.is-sindato{background:#FBFCFD}
/* 15 sep 2026: la tarjeta pasó de <article> a <a> para abrir su detalle. Un
   enlace hereda color y subrayado del navegador, así que se le quitan los dos:
   tiene que seguir viéndose exactamente igual que antes, solo que pulsable. */
a.an-card{color:inherit;text-decoration:none;cursor:pointer;transition:border-color .12s,box-shadow .12s}
a.an-card:hover{border-color:var(--brand,#12A594);box-shadow:0 1px 6px rgba(16,24,40,.07)}
a.an-card.is-abierta{border-color:var(--brand,#12A594);box-shadow:inset 0 0 0 1px var(--brand,#12A594)}
.an-detalle{margin-top:14px}
/* 2 oct 2026: al abrir una tarjeta se baja hasta el detalle; el margen deja ver su título bajo la cabecera fija. */
.an-detalle{scroll-margin-top:84px}
.an-detalle__mide{margin:-4px 2px 12px}
.an-card__top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:2px}
.an-card__label{font-size:12.5px;font-weight:600;color:var(--ink-2)}
.an-card__value{font-size:30px;font-weight:700;line-height:1.15;color:var(--ink)}
.an-card__avg{font-size:12px;color:var(--muted);margin:2px 0 8px}
/* Orgánicas vs. Apple Ads en las tarjetas de App Store (1 oct 2026). */
.an-card__org{font-size:12.5px;color:var(--ink-2);margin:4px 0 0}
.an-card__org b{color:var(--teal-dark)}
.an-org strong{color:var(--teal-dark)}
/* «22 / 18 anterior»: el período anterior junto a la cifra (1 oct 2026). */
.an-card__ant{font-size:15px;font-weight:600;color:var(--muted);margin-left:6px;white-space:nowrap}
.an-card__ant small{font-size:11.5px;font-weight:500}

/* La variación contra el período anterior. Verde y rojo son los del panel, no
   los del sistema: el mismo verde que el estado «Activo». */
.an-delta{font-size:12.5px;font-weight:700;color:var(--muted);white-space:nowrap}
.an-delta.is-up{color:var(--green)}
.an-delta.is-down{color:var(--red)}

/* El gráfico crece con la tarjeta: el viewBox no tiene medidas fijas, así que
   la misma barra sirve a 360 px y a 1440 px. */
.an-spark{display:block;width:100%;height:44px;margin-top:auto;fill:var(--teal);overflow:visible}
.an-spark rect.is-cero{fill:var(--line)}
/* Gráfico de línea (18 sep 2026). El trazo NO se deforma con el estirado del
   viewBox porque lleva vector-effect; el área es el mismo tono al 14 % para
   que la línea siga siendo lo que se lee. Una sola serie: sin leyenda. */
.an-spark__line{fill:none;stroke:var(--teal);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.an-spark__area{fill:var(--teal);opacity:.14;stroke:none}
.an-spark__dot{fill:var(--teal);stroke:none}
/* Dato parcial (hoy, o un tramo con días sin publicar): trazo punteado. 4 oct 2026. */
.an-spark__line.is-parcial{stroke-dasharray:3 3;opacity:.75}
.an-spark__dot.is-parcial{opacity:.6}

/* Dato que la tienda todavía no publicó: NO es un cero. */
.an-nd{color:var(--slate-light);font-weight:400}

/* Tabla del detalle: en el teléfono la primera columna se queda fija para no
   perder de vista de qué día es la fila que se está mirando. */
@media (max-width:700px){
  .page-analytics .table{font-size:12.5px}
  .page-analytics .table th,.page-analytics .table td{padding:9px 10px}
  .page-analytics .table th:first-child,.page-analytics .table td:first-child{
    position:sticky;left:0;background:var(--card);z-index:1}
  .page-analytics .table thead th:first-child{background:#F7FAFC}
  .an-card__value{font-size:26px}
}
/* Días que la tienda todavía no publicó: se dice, no se disimula. */
.an-falta{color:#92670C}
/* El selector de período no se estira de lado a lado en el escritorio: seis
   pastillas repartidas en 1400 px pierden la forma de control segmentado. */
@media (min-width:700px){.an-rangos{max-width:520px}}
/* La fecha de la fila no se parte en dos líneas. */
.page-analytics .table td:first-child,.page-analytics .table th:first-child{white-space:nowrap}

/* Pestana Uso (18 sep 2026) -------------------------------------------------
   · .uso-demo — el aviso de cifras inventadas. Rojo y arriba del todo: si la
     pantalla miente, tiene que decirlo antes de que se lea un numero.
   · .coh — celda de la tabla de cohortes. Un SOLO tono, claro a oscuro segun
     el porcentaje (escala secuencial); el numero se queda en tinta normal
     para que la identidad no dependa solo del color. */
.uso-demo{margin:0 0 12px;padding:10px 14px;border-radius:10px;font-size:13px;
  background:#FDECEC;border:1px solid #F5B5B5;color:#8A1C1C}
.uso-demo a{color:#8A1C1C;font-weight:700}
.table .coh{position:relative;background:color-mix(in srgb, var(--teal) calc(var(--coh, 0) * 55%), transparent)}
/* «Regreso por cohorte» (8 oct 2026, tarea 0413): el mismo tono, pero en una
   pastilla dentro de la celda (las celdas las pinta el componente de columnas,
   que no deja clase por celda). .rg-curso = cuántas siguen en su ventana. */
.coh-in{display:inline-block;padding:2px 7px;border-radius:7px;white-space:nowrap;
  background:color-mix(in srgb, var(--teal) calc(var(--coh, 0) * 55%), transparent)}
.rg-curso{margin-left:5px;font-style:normal;font-size:11.5px;color:var(--muted)}

/* ---------------------------------------------------------------------------
   Analíticas · pestaña «Pauta Apple Ads» (18 sep 2026)
   · .pa-cards — cuatro tarjetas en una fila (las demás pestañas usan tres).
   · .pa-ver   — el selector «Por día / país / palabra / búsqueda»: reusa el
     aspecto de los rangos para no inventar un segundo control.
   · .pa-sin   — «sin dato» (división por cero): gris, para que no se lea como 0.
   · .pa-pasos — la guía de conexión, una sola vez.
   --------------------------------------------------------------------------- */
@media (min-width:700px){.an-cards.pa-cards{grid-template-columns:repeat(4,1fr)}}
.toolbar .pa-ver{margin:0}
.pa-sin{color:var(--muted)}
.pa-inline{display:inline-flex;gap:6px;align-items:center;margin:0 0 0 6px;vertical-align:middle}
.pa-setup{padding:16px 20px}
.pa-pasos{margin:12px 0 0;padding-left:20px;display:grid;gap:14px;font-size:13.5px;line-height:1.5;color:var(--ink-2)}
.pa-pasos li.is-hecho::marker{color:var(--teal)}
.pa-llave{display:block;width:100%;max-width:560px;margin:8px 0;font:12px/1.4 ui-monospace,Menlo,monospace;
  padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#F8FAFC;resize:none}
.pa-form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:8px}
.pa-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--muted)}
.pa-form input{min-width:220px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;font-size:13px}

/* Análisis de un día de pauta (1 oct 2026): se abre al tocar la fecha en
   «Por día». Reusa el modal centrado .cols-overlay/.cols-panel, más ancho. */
tr.pa-fila-dia{cursor:pointer}
tr.pa-fila-dia:hover td{background:var(--teal-light)}
.cols-panel.pa-an{width:860px}
.pa-an__concl{padding:12px 14px;border-radius:10px;background:var(--teal-light);border-left:3px solid var(--teal)}
.pa-an__concl b{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--teal-dark);margin-bottom:4px}
.pa-an__concl p{margin:0;font-size:14px;line-height:1.5;color:var(--ink)}
.pa-an__sub{margin-top:6px;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.pa-an__sub span{text-transform:none;letter-spacing:0;font-weight:500}
.pa-an__ajustes{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.pa-an__aj{padding:8px 12px 8px 30px;border-radius:8px;font-size:13.5px;line-height:1.45;position:relative;background:#F4F7FA;color:var(--ink-2)}
.pa-an__aj::before{position:absolute;left:11px;top:8px;font-weight:700}
.pa-an__aj--subir{background:var(--green-light);color:var(--ink)}
.pa-an__aj--subir::before{content:'↑';color:var(--green)}
.pa-an__aj--bajar{background:var(--red-light);color:var(--ink)}
.pa-an__aj--bajar::before{content:'↓';color:var(--red)}
.pa-an__aj--nada::before{content:'•';color:var(--muted)}
.pa-an__aj{display:flex;align-items:flex-start;gap:12px}
.pa-an__aj > span{flex:1}
.pa-an__sw{flex:none;margin-top:1px}
.pa-an__resp{display:grid;gap:8px}
.pa-an__resp textarea{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid var(--line);border-radius:10px;
  font:inherit;font-size:13.5px;line-height:1.45;resize:vertical;min-height:70px}
.pa-an__resp textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-light)}
.pa-an__acc{display:flex;justify-content:flex-end;align-items:center;gap:12px}
.pa-an__hist{margin:0;padding-left:18px;display:grid;gap:4px;font-size:12.5px;color:var(--ink-2)}
.pa-an__ok{color:var(--green);font-weight:600}
.pa-an__err{color:var(--red);font-weight:600;cursor:help}
.pa-an__cuerpo{padding:6px 20px 20px;overflow:auto;display:grid;gap:16px}
.pa-an__dia{display:grid;gap:6px}
.pa-an__dia + .pa-an__dia{border-top:1px solid var(--line);padding-top:14px}
.pa-an__fecha{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.pa-an__tono{justify-self:start;padding:3px 10px;border-radius:999px;font-size:12.5px;font-weight:700}
.pa-an__tono--bien{background:var(--green-light);color:var(--green)}
.pa-an__tono--mal{background:var(--red-light);color:var(--red)}
.pa-an__tono--normal{background:var(--teal-light);color:var(--teal-dark)}
.pa-an__tono--nada{background:#F1F5F8;color:var(--muted)}
.pa-an__resumen{margin:0;font-size:14px;font-weight:600;color:var(--ink)}
.pa-an__puntos{margin:0;padding-left:18px;display:grid;gap:6px;font-size:13.5px;line-height:1.5;color:var(--ink-2)}
.pa-an__tabla{margin-top:4px;font-size:13px}
.pa-an__tabla .num{text-align:right}
.pa-an__vacio{margin:0;color:var(--muted)}

/* Lectura del gráfico al pasar el cursor (19 sep 2026). Encima del trazo, el
   valor del punto; debajo, sobre el eje X, su fecha. El contenedor reserva
   abajo 6px que, con el relleno de la tarjeta, alcanzan para el rótulo de
   fecha sin pisar el borde; arriba el valor se apoya sobre el texto gris de la tarjeta, con su
   mismo fondo, y desaparece al salir. */
.an-spark-wrap{position:relative;margin-top:auto;padding:0 0 6px;cursor:crosshair}
.an-spark-wrap .an-spark{margin-top:0}
.an-spark__guia{position:absolute;width:0;border-left:1px dashed var(--ink-2);opacity:.45;pointer-events:none}
.an-spark__punto{position:absolute;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;
  background:var(--card);border:2px solid var(--teal);box-sizing:border-box;pointer-events:none}
.an-spark__valor,.an-spark__fecha{position:absolute;white-space:nowrap;pointer-events:none;
  background:var(--card);border-radius:4px;line-height:16px;padding:0 5px}
.an-spark__valor{top:-20px;font-size:12.5px;font-weight:700;color:var(--ink);
  box-shadow:0 1px 4px rgba(16,24,40,.12)}
.an-spark__fecha{bottom:-10px;font-size:11.5px;font-weight:600;color:var(--ink-2)}

/* Referidos — la acción con motivo de la celda de acciones (28 sep 2026).
   Es un <details> y no una ventana del navegador a propósito: un confirm() o un
   prompt() bloquean la pestaña y dejan sin poder seguir al navegador que revisa
   el panel. El botón ES el <summary>, así que reusa .btn del panel y no hay
   ningún botón nuevo que mantener. */
.ref-act{display:inline-block;position:relative;margin:0 4px 0 0;vertical-align:middle}
.ref-act>summary{cursor:pointer;list-style:none;user-select:none;white-space:nowrap}
.ref-act>summary::-webkit-details-marker{display:none}
.ref-act[open]>summary{box-shadow:inset 0 0 0 2px rgba(16,24,40,.12)}
.ref-act__form{position:absolute;z-index:30;right:0;margin-top:6px;display:flex;gap:6px;
  align-items:center;padding:10px;background:var(--card,#fff);border:1px solid var(--line);
  border-radius:10px;box-shadow:0 6px 20px rgba(16,24,40,.14);white-space:nowrap}
.ref-act__form input[type=text]{min-width:210px;padding:7px 10px;font-size:13px;
  border:1px solid var(--line);border-radius:7px}
.ref-act__inline{display:inline-block;margin:0 4px 0 0;vertical-align:middle}
/* Aviso dentro de un botón de Referidos (tarea 0447): «Marcar pagada» gris sin
   datos bancarios y «Datos para transferir». Texto en bloque, no en una línea. */
/* Se abre DENTRO de la celda (position:static): flotando, la tabla lo recortaba
   en la última fila. */
.ref-act__form.ref-act__aviso{position:static;display:block;white-space:normal;width:260px;margin-top:6px;
  box-shadow:none;font-size:13px;line-height:1.5;color:var(--ink-2)}
.ref-act__aviso strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;user-select:all}
.ref-act__inline>button{white-space:nowrap}
/* La píldora del antifraude resume en UNA línea: la lista entera va en el title. */
.status--flag{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}

/* «Actualizar descargas» de Analíticas (30 sep 2026). El botón apagado sigue
   recibiendo el clic —explica por qué está gris—, así que no lleva `disabled`:
   solo se apaga a la vista. */
.btn.is-off{opacity:.45;filter:grayscale(1)}
.ti-estado{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin-top:-8px}
.ti-estado .pa-inline{margin-left:8px}
.ti-msg{font-weight:600;color:var(--ink-2)}
.ti-cred{margin-top:18px}
.ti-cred > summary{cursor:pointer;margin:0}
.ti-cred .form-section:first-of-type{margin-top:8px}
.ti-cred .pa-form{margin-bottom:6px}

/* Analíticas → Preguntas del manual (30 sep 2026) */
.pq-sin{color:var(--red)}
.pq-sin small{color:var(--muted);font-weight:500}
.pq-sin-grupo{font-style:italic}
.pq-crm{color:inherit;text-decoration:none}
.pq-crm:hover{color:var(--teal-dark);text-decoration:underline}
.pq-crm__ic{font-size:11px;color:var(--teal);font-weight:700}
.pq-crm.is-off{opacity:.55}
.pq-acciones{margin-top:6px}
.pq-tarea{display:inline-block;padding:2px 8px;border-radius:8px;font-size:11.5px;font-weight:700;
  color:var(--teal-dark);background:var(--teal-light)}
.pq-equipo{display:flex;align-items:center;gap:8px;padding:0 4px;white-space:nowrap}
.pq-nuestra{display:inline-block;margin-left:4px;padding:1px 6px;border-radius:8px;font-size:10.5px;
  font-weight:700;color:#8a3b12;background:#fdece0;vertical-align:middle}
/* «Crear video» (2 oct 2026): el modal centrado del panel (.cols-panel), más
   ancho, con el Doc., el tema que le corresponde, la nota y los últimos pedidos. */
.cols-panel.pq-vid{width:600px}
.pq-vid [hidden]{display:none}
.pq-vid__cuerpo{padding:0 20px 16px;overflow:auto;flex:1;min-height:0;display:grid;gap:12px;align-content:start}
.pq-vid__cuerpo .alert{margin:0}
.pq-vid__campo{display:flex;flex-direction:column;gap:6px;margin:0}
.pq-vid__campo span{font-size:12px;font-weight:600;color:var(--slate)}
.pq-vid__campo small{font-weight:500;color:var(--muted)}
.pq-vid__campo input,.pq-vid__campo textarea{font:inherit;font-size:15px;padding:10px 12px;border:1px solid var(--line);
  border-radius:10px;color:var(--ink);box-sizing:border-box;width:100%}
.pq-vid__campo input{max-width:180px}
.pq-vid__campo textarea{font-size:13.5px;line-height:1.45;resize:vertical;min-height:64px}
.pq-vid__campo input:focus,.pq-vid__campo textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft)}
.pq-vid__tema{min-height:20px;margin-top:-4px;font-size:13.5px;font-weight:600;color:var(--teal-dark)}
.pq-vid__tema--mal{color:var(--red)}
.pq-vid__tema .cell-sub{font-weight:500;margin-top:2px}
.pq-vid__msg:empty{display:none}
.pq-vid__msg--mal{color:var(--red)}
.pq-vid__lista{border-top:1px solid var(--line);padding-top:10px}
.pq-vid__sub{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}
.pq-vid__st{display:inline-block;padding:2px 8px;border-radius:8px;font-size:11.5px;font-weight:700;white-space:nowrap;
  color:var(--ink-2);background:#eef2f5}
.pq-vid__st--en_proceso{color:#92670C;background:#FEF6E7}
.pq-vid__st--listo{color:var(--teal-dark);background:var(--teal-light)}
.pq-vid__st--error{color:var(--red);background:var(--red-light);cursor:help}
.pq-vid__links{display:flex;gap:8px;margin-top:4px;font-size:12px;font-weight:600}
.cols-done.is-off{opacity:.5}

/* Dashboard (pages/dashboard.php, 1 oct 2026) */
/* La tarjeta sin permiso: gris, pero recibe el clic para explicar por qué
   (estándar «una acción bloqueada no desaparece»). */
.kpi.is-off{opacity:.55;filter:grayscale(1)}
.kpi.is-off:hover{box-shadow:none}
.col-sw.is-off{opacity:.45}
.col-sw.is-off .col-track{cursor:pointer}
.dash-tarea{display:flex;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid var(--line)}
.dash-tarea__txt{flex:1;min-width:0}
.dash-tarea__ir{display:inline-block;margin-top:4px;font-size:13px;font-weight:600;color:var(--teal-dark);text-decoration:none}
.dash-tarea__ir:hover{text-decoration:underline}
.dash-tarea__estado{font-size:12px;font-weight:700;color:var(--red);white-space:nowrap;min-width:62px;text-align:right}
.dash-tarea.is-hecha .dash-tarea__estado{color:var(--teal-dark)}
.dash-tarea.is-hecha .dash-tarea__txt .cell-strong{color:var(--muted);text-decoration:line-through}
.dash-tareas__pie{margin:0;padding:10px 16px}
.dash-tareas__head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.dash-tareas__vacia{margin:0;padding:18px 16px}
.dash-tarea__editar{flex-shrink:0}
.dash-tarea.is-pausada .dash-tarea__txt{opacity:.55}
.dash-tarea.is-pausada .dash-tarea__estado{color:var(--muted)}
.dash-tarea-edit__activa{margin-bottom:14px}
/* Enlace + «Pestaña nueva» en la misma celda (2 oct 2026). */
.dash-tarea-edit__enlace{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--ink-2);font-weight:600}
.dash-tarea-edit__enlace-fila{display:flex;align-items:center;gap:10px}
.dash-tarea-edit__enlace-fila input[type=text]{flex:1;min-width:0}
.dash-tarea-edit__pestana .col-sw{display:inline-block}
.form-grid .dash-tarea-edit__pestana{display:inline-flex;flex-direction:row;align-items:center;gap:7px;white-space:nowrap;cursor:pointer;
  font-size:12.5px;font-weight:500;color:var(--ink-2)}
/* Habilidad en la nube de una actividad (1 oct 2026). */
.dash-tarea__rutina{margin-top:4px}
.dash-tarea__rutina code{font-size:12px}
.dash-tarea__ejecutar{flex-shrink:0}
.dash-tarea__ejecutar.is-off{opacity:.5}
.dash-tarea-edit__rutina{border:1px solid var(--line);border-radius:10px;padding:12px 16px 4px;margin:0 0 14px}
.dash-tarea-edit__rutina legend{font-weight:700;font-size:13px;padding:0 6px}
.dash-tarea-edit__rutina>.cell-sub{margin:0 0 10px}
/* Reordenar las actividades con los seis puntos (1 oct 2026): el mismo
   tirador de «Columnas» (.col-grip), arrastre con pointer events. */
.dash-tarea__grip{margin:0 -6px 0 -8px}
.dash-tarea__grip.is-off{opacity:.35;cursor:pointer}
.dash-tarea.dragging{opacity:.5;background:#f9fbfc}
.dash-tareas.is-guardando .dash-tarea__grip{pointer-events:none;opacity:.35}

/* Cuentas → cajón → pestaña «Cobros» (tarea 0281): SelBuk anterior + SelBukAI. */
.ch-warn{margin:0 0 12px;padding:10px 12px;border-radius:10px;font-size:12.5px;
  background:#FFF7ED;color:#9A3412;border:1px solid #FED7AA}
.ch-scroll{overflow-x:auto;max-width:100%}
.ch-table .ch-fecha,.ch-table .num{white-space:nowrap}
.ch-table .ch-est-m{display:none;margin-top:4px}
@media (max-width:600px){
  .ch-table .ch-est{display:none}
  .ch-table .ch-est-m{display:block}
}
.table--mini tr.ch-nulo td{color:var(--ink-3,#94A3B8)}
.table--mini tr.ch-nulo td.num{text-decoration:line-through}
.table--mini tr.ch-nulo td.num .ch-est-m{text-decoration:none}
.table--mini tfoot td{font-weight:700;border-top:2px solid var(--line,#E2E8F0)}

/* «Revisar y corregir con Claude» al pie de la consola (1 oct 2026). */
.rob-pie{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:14px 0 4px}
.rob-btn{display:inline-flex;align-items:center;gap:8px}
.rob-btn.is-off{opacity:.5;cursor:pointer}
.rob-btn--corriendo svg{animation:rob-giro 1.2s linear infinite}
@keyframes rob-giro{to{transform:rotate(360deg)}}
.rob-estado{font-size:13px;color:var(--muted);line-height:1.45;flex:1 1 320px}
.bell-item--robot{border-left:3px solid var(--teal);background:var(--teal-soft)}
.bell-item--recaida{border-left:3px solid var(--red);background:var(--red-soft)}

/* Llaves y conexiones (1 oct 2026): una tarjeta por llave. */
.llv{margin-top:18px}
.llv-titulo{margin-top:0;padding-top:0;border-top:0;scroll-margin-top:80px}
/* Títulos de sección más visibles en las dos pestañas de Dev Tools (1 oct
   2026, pedido de Mauricio): 13 px gris-tinta se perdían entre los textos de
   ayuda. Solo aquí (body.page-platform): .form-section es de todo el panel. */
body.page-platform .form-section{font-size:17px;font-weight:800;color:var(--ink);letter-spacing:0;
  margin-top:28px;padding:2px 0 2px 12px;border-top:0;border-left:4px solid var(--teal);line-height:1.3}
body.page-platform .panel__head h3{font-size:17px;font-weight:800;color:var(--ink)}
body.page-platform .llv-titulo{margin-top:0}
/* 2 oct 2026: en Analíticas los títulos de sección («SELBUK CRM-AI», «Invoice AI»,
   «Uso de…», «Retención…») se perdían en gris de 11 px. Mismo trato que Dev Tools:
   17 px, tinta y barra verde. Solo aquí: .section-title es de todo el panel. */
body.page-analytics .section-title{font-size:17px;font-weight:800;color:var(--ink);letter-spacing:0;
  margin:28px 2px 12px;padding:2px 0 2px 12px;border-left:4px solid var(--teal);line-height:1.3}
.llv-nota{margin:12px 2px 0}
.llv-usa{margin:-6px 0 10px;font-weight:600;color:var(--ink-2)}
.llv-ultimo{margin-top:-4px}
/* Dev Tools → Correo (8 oct 2026). `.form-grid` fija display:grid y le gana a
   [hidden]: sin esto la sección del servidor no se escondía al apagar el interruptor. */
.correo [hidden]{display:none!important}
.correo-sw{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 0 12px;
  padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}
.correo-sw .col-name{font-size:13px;color:var(--ink-2);font-weight:600}
.correo-tipo{margin-top:10px}
.correo-tipo .llv-usa{margin:0 0 6px}
#correo-acciones{margin-top:6px}
#correo-resultado{margin:0 0 12px}


/* Manual de usuario (2 oct 2026): tabla de temas, editor ES/EN lado a lado en
   el cajón .dr- (más ancho) y bandeja de propuestas con su antes/después. */
.mn-aviso{margin:12px 0}
/* «Cargar el manual» dentro del aviso de manual vacío (2 oct 2026). */
.mn-aviso .mn-cargar{margin-left:10px;vertical-align:middle}
.mn-cargar-msg{margin-left:8px;font-size:12px}
.mn-nota{margin:-4px 0 10px}
.mn-badge{display:inline-block;min-width:18px;height:18px;margin-left:6px;padding:0 6px;border-radius:9px;
  background:var(--red);color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center;vertical-align:1px}
.mn-tabla tbody tr.mn-row{cursor:pointer}
.mn-tabla tbody tr.mn-row:hover td{background:#f7fafb}
.mn-tabla tbody tr.mn-row:focus-visible{outline:2px solid var(--teal);outline-offset:-2px}
.dr-drawer.mn-ed{width:1100px;max-width:96vw}
.mn-ed .dr-store h2{font-size:18px}
.mn-ed [hidden]{display:none}
.mn-ed .dr-foot .mn-borrar{flex:0 0 auto;color:var(--red);margin-right:auto}
.mn-ed .dr-foot .is-off{opacity:.45;filter:grayscale(1)}
.mn-form{border:0;margin:0;padding:0;min-width:0;display:grid;gap:12px}
.mn-form input,.mn-form textarea,.mn-form select{font:inherit;font-size:13.5px;padding:8px 10px;border:1px solid var(--line);
  border-radius:9px;color:var(--ink);background:#fff;width:100%;box-sizing:border-box}
.mn-form textarea{line-height:1.45;resize:vertical}
.mn-form input:focus,.mn-form textarea:focus,.mn-form select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft)}
.mn-form:disabled input,.mn-form:disabled textarea,.mn-form:disabled select{background:#f7f9fa;color:var(--ink-2)}
.mn-cols{display:grid;grid-template-columns:150px 1fr 1fr;gap:10px;align-items:start}
.mn-cols--cab b{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--slate)}
.mn-lbl,.mn-campo>span,.mn-mini>span{font-size:12px;font-weight:600;color:var(--slate);padding-top:8px}
.mn-lbl small,.mn-campo small{display:block;font-weight:500;color:var(--muted)}
.mn-kw{display:flex;flex-direction:column;gap:2px}
.mn-cuenta{font-size:11.5px;color:var(--muted);text-align:right}
.mn-err{color:var(--red)}
.mn-campo{display:flex;flex-direction:column;gap:4px;margin:0}
.mn-campo>span{padding-top:0}
.mn-nuevo,.mn-comun{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px;border:1px dashed var(--line);border-radius:10px;background:#fff}
.mn-pasos-cab{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:6px}
.mn-pasos-cab b{font-size:15px}
#mnPasos{display:grid;gap:10px}
.mn-paso{border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 12px;display:grid;gap:8px}
.mn-paso__cab{display:flex;align-items:center;justify-content:space-between}
.mn-paso__n{font-size:13px}
.mn-paso__acc{display:flex;gap:4px}
.mn-paso__btn{width:28px;height:28px;border:1px solid var(--line);background:#fff;border-radius:7px;color:var(--slate);font-size:14px;line-height:1}
.mn-paso__btn:hover{background:#f1f5f8}
.mn-paso__btn.is-off{opacity:.35}
.mn-paso__par{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mn-paso__comun{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.mn-mini{display:flex;flex-direction:column;gap:2px;margin:0}
.mn-mini>span{padding-top:0;font-size:11px}
.mn-problemas ul{margin:6px 0 0;padding-left:18px}
.mn-problemas li{margin:2px 0}
.mn-vacio{padding:24px;text-align:center;color:var(--muted)}
.mn-card{padding:16px 18px;margin-bottom:14px}
.mn-card__cab{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}
.mn-card__tit{font-weight:700;font-size:15px;color:var(--ink)}
.mn-card__acc{display:flex;gap:8px}
.mn-card__origen{margin:10px 0 0;padding:6px 10px;border-left:3px solid var(--teal);background:var(--teal-soft);border-radius:0 8px 8px 0;
  font-size:13px;font-weight:600;color:var(--ink-2)}
.mn-card__motivo{margin:10px 0;color:var(--ink-2);font-size:13.5px;line-height:1.5}
.mn-tag{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:8px;font-size:11px;font-weight:700;vertical-align:1px;
  color:var(--ink-2);background:#eef2f5}
.mn-tag--nuevo,.mn-tag--publicada{color:var(--teal-dark);background:var(--teal-light)}
.mn-tag--descartada{color:var(--slate);background:#eef2f5}
.mn-hist li .mn-tag{margin:0 6px 0 0}
/* Notas del equipo a la rutina (8 oct 2026): «Corregir con contexto» y
   «Nueva instrucción» en Propuestas. */
.mn-prop__cab{display:flex;gap:14px;align-items:flex-start;justify-content:space-between}
.mn-prop__cab .mn-nota{margin:0 0 14px}
.mn-prop__cab .mn-nueva-instr{flex-shrink:0;white-space:nowrap}
.mn-card__nota{margin:10px 0 0;padding:6px 10px;border-left:3px solid var(--amber,#f59e0b);background:var(--amber-soft,#fef3e2);
  border-radius:0 8px 8px 0;font-size:13px;color:var(--ink-2);line-height:1.45}
.mn-card__reesc{margin:10px 0 0;padding:8px 12px;border-radius:10px;background:var(--teal-soft);border:1px solid var(--teal-light);
  font-size:13px;color:var(--ink-2);line-height:1.45}
.mn-card--pedido .alert{margin:10px 0 0}
.mn-card__hermanas{margin:0 0 10px}
.mn-tag--reescribiendo{color:#92400e;background:var(--amber-soft,#fef3e2)}
.mn-tag--fallido{color:var(--red,#e2483d);background:var(--red-light,#fdecea)}
@media (max-width:700px){ .mn-prop__cab{flex-direction:column} }
.mn-difs{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.mn-dif h4{margin:4px 0 8px;font-size:13px}
.mn-dif__fila{display:grid;grid-template-columns:110px 1fr 1fr;gap:8px;padding:6px 0;border-top:1px solid var(--line);font-size:12.5px;line-height:1.45}
.mn-dif--nuevo .mn-dif__fila{grid-template-columns:110px 1fr}
/* La pregunta del cliente, sola y en rojo (9 oct 2026): es lo primero que hay que leer. */
.mn-card__origen--pregunta{border-left-color:var(--red,#e2483d);background:var(--red-light,#fdecea);
  color:var(--red,#e2483d);font-size:16px;font-weight:800}
.mn-card__origen--pregunta a{color:inherit;text-decoration:none}
.mn-card__origen--pregunta a:hover{text-decoration:underline}
.mn-card__crm{margin-left:8px;font-size:12px;font-weight:600;color:var(--teal-dark)}
.mn-card__origen.cell-sub{background:none;border-left-color:var(--line);font-weight:500;color:var(--muted)}
.mn-dif__campo{font-weight:600;color:var(--slate)}
.mn-dif__antes{background:var(--red-light);border-radius:6px;padding:4px 6px;text-decoration:line-through;text-decoration-color:rgba(226,72,61,.45);word-break:break-word}
.mn-dif__despues{background:var(--green-light);border-radius:6px;padding:4px 6px;word-break:break-word}
.mn-hist{padding:12px 16px}
.mn-hist summary{cursor:pointer;font-weight:600}
.mn-hist ul{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:6px;font-size:13px}
@media (max-width:900px){
  .mn-difs{grid-template-columns:1fr}
  .mn-paso__comun{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  /* En el teléfono ES y EN siguen lado a lado (la etiqueta sube a su propia
     fila): apilados no se sabría cuál es cuál. */
  .mn-cols,.mn-paso__par{grid-template-columns:1fr 1fr}
  .mn-cols>span:first-child,.mn-lbl{grid-column:1/-1}
  .mn-cols--cab>span:first-child{display:none}
  .mn-nuevo,.mn-comun,.mn-paso__comun{grid-template-columns:1fr}
  .mn-dif__fila{grid-template-columns:1fr}
}

/* Biblioteca (2 oct 2026): las vistas del Manual (Temas / Propuestas) usan el
   segmentado de Analíticas (.an-rangos), separado de las pestañas Blog /
   Manual de usuario. Dos subrayados apilados se leían como una sola raya.
   Ancho a su contenido: dos pastillas estiradas a 520 px no parecen botones. */
.mn-vistas-fila{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;margin:16px 0}
.an-rangos.mn-vistas{display:inline-flex;max-width:100%;margin:0}
.mn-ajuste{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.mn-vistas .an-rango{min-width:110px}
.mn-vistas .mn-badge{vertical-align:0}

/* «Analizar con Claude» en Analíticas (4 oct 2026, assets/an-analizar.js). */
.aia{margin:10px 0 18px;padding:12px 16px;background:var(--card);border:1px solid var(--line);border-radius:12px}
.aia__cab{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.aia__titulo{font-weight:700;color:var(--ink)}
.aia__estado{font-size:13px;color:var(--ink-2);flex:1 1 200px;min-width:0}
.aia__acciones{display:flex;gap:8px;margin-left:auto}
.aia__cuerpo{position:relative;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.aia__cerrar{position:absolute;top:8px;right:0;width:26px;height:26px;border:0;border-radius:6px;background:transparent;color:var(--ink-2);font-size:20px;line-height:1;cursor:pointer}
.aia__cerrar:hover{background:rgba(0,0,0,.06);color:var(--ink)}
.aia__titular{padding-right:32px}
.aia__titular{margin:0 0 6px;font-weight:700;color:var(--ink);font-size:15px}
.aia__pregunta,.aia__nota{margin:0 0 6px;font-size:13px;color:var(--ink-2)}
.aia__resumen{white-space:pre-wrap;font-size:14px;line-height:1.5;color:var(--ink);overflow-wrap:anywhere}
.aia__abrir{display:inline-block;margin-top:8px;font-weight:600;color:var(--teal)}
#aiaPedir.is-busy{opacity:.6;cursor:progress}
.aia [hidden]{display:none!important}
/* Días en que toca una actividad (5 oct 2026). */
.dash-tarea-edit__dias-fila{display:flex;flex-wrap:wrap;gap:8px 18px;padding-bottom:10px}
.dash-tarea-edit__dias-fila .dash-tarea-edit__pestana{display:inline-flex;align-items:center;gap:7px;font-size:13px;cursor:pointer}
.dash-tarea-edit__dias-fila .col-sw{display:inline-block}
/* La corrida de una actividad con rutina, sobre su botón (6 oct 2026). */
.dash-tarea__ejecutar.is-marcha{opacity:.75;cursor:default}
.dash-rutina{margin-top:6px;padding:8px 10px;border-radius:8px;font-size:13px;line-height:1.45;background:var(--teal-soft);border-left:3px solid var(--teal)}
.dash-rutina--pregunta{border-left-color:var(--warn)}
.dash-rutina--fallo{border-left-color:var(--red)}
.dash-rutina__ir{font-weight:600;color:var(--teal-dark);text-decoration:none;margin-left:6px;white-space:nowrap}
.dash-rutina__ir:hover{text-decoration:underline}
.dash-rutina__msg{color:var(--ink-2);margin-top:2px}
.dash-rutina__preg{margin:4px 0;white-space:pre-line}
.dash-rutina__ops{margin:4px 0 6px;padding-left:4px;list-style:none}
.dash-rutina__ops li{margin:2px 0}
.dash-rutina__links{margin:4px 0 0;padding-left:16px}
.dash-rutina__links a{color:var(--teal-dark);font-weight:600;text-decoration:none;word-break:break-word}
.dash-rutina__punto{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--teal);margin-right:6px;vertical-align:1px;animation:dashLatido 1.2s ease-in-out infinite}
@keyframes dashLatido{0%,100%{opacity:1}50%{opacity:.25}}
@media (prefers-reduced-motion:reduce){.dash-rutina__punto{animation:none}}
/* El enlace a la conversación de una corrida, en todas las actividades (6 oct 2026). */
.rut-conv{font-weight:600;color:var(--teal-dark);text-decoration:none;white-space:nowrap}
.rut-conv:hover{text-decoration:underline}
.dash-rutina--con-x{position:relative;padding-right:34px}
.dash-rutina__cerrar{position:absolute;top:4px;right:6px;width:24px;height:24px;border:0;border-radius:6px;background:transparent;color:var(--ink-2);font-size:18px;line-height:1;cursor:pointer}
.dash-rutina__cerrar:hover{background:rgba(0,0,0,.06);color:var(--ink)}
.dash-rutina__aparte{margin-top:8px;padding-top:6px;border-top:1px solid var(--line)}
/* Biblioteca → Blog: «Escribir y publicar con Claude» y su corrida (6 oct 2026). */
.blog-rob{align-items:flex-start}
.blog-rob__estado{flex:1 1 360px;min-width:0}
.blog-rob__estado .dash-rutina{margin-top:0}
.blogadm-publicado{margin:4px 0 14px}
/* El punto de las rutinas en el menú (6 oct 2026, includes/menu_rutinas.php):
   parpadea mientras corre, blanco y fijo al terminar, nada después de entrar. */
.sidebar__punto{display:none;width:9px;height:9px;border-radius:50%;margin-left:auto;flex-shrink:0}
.sidebar__punto.is-vivo{display:inline-block;background:var(--teal);box-shadow:0 0 0 3px rgba(16,179,166,.25);animation:sbLatido 1.1s ease-in-out infinite}
.sidebar__punto.is-listo{display:inline-block;background:#fff}
@keyframes sbLatido{0%,100%{opacity:1}50%{opacity:.15}}
@media (prefers-reduced-motion:reduce){.sidebar__punto.is-vivo{animation:none}}
.topbar__menu{position:relative}
.topbar__menu-punto{display:none;position:absolute;top:2px;right:0;width:9px;height:9px;border-radius:50%;border:2px solid var(--teal)}
.topbar__menu-punto.is-vivo{display:block;background:#fff;animation:sbLatido 1.1s ease-in-out infinite}
.topbar__menu-punto.is-listo{display:block;background:#fff}
@media (min-width:1024px){.topbar__menu-punto{display:none!important}}
@media (prefers-reduced-motion:reduce){.topbar__menu-punto.is-vivo{animation:none}}

/* Cobros → Avisos de cobro (6 oct 2026, pages/cobros_avisos.php). */
.alert--warn{background:#FFF7E6;color:#8A5A00;border:1px solid #F5DDA8}
.cav-switches,.cav-msgs{padding:14px 16px;margin-bottom:14px}
.cav-sw{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line)}
.cav-sw:first-of-type{border-top:0}
.cav-sw .col-sw{display:inline-block;margin-top:2px}
.cav-sw__txt{flex:1;min-width:0}
.cav-on{color:var(--teal-dark)}
.cav-off{color:var(--muted)}
.cav-hoy{margin-top:4px;font-size:13px}
.cav-hoy summary{cursor:pointer;display:inline}
.cav-lista{margin:6px 0 0;padding-left:18px;max-height:220px;overflow:auto;font-size:13px}
.cav-run{display:flex;gap:10px;align-items:center;padding-top:10px;border-top:1px solid var(--line)}
.cav-msgs__bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:8px}
.cav-lang{margin:0;max-width:220px}
.cav-asunto{margin:4px 0 8px}
.cav-frame{width:100%;height:560px;border:1px solid var(--line);border-radius:10px;background:#F4F7FA}

/* ── Planes · edición en tabla (tarea 0400, planes.php + planes-grid.js) ── */
.pg-in,.pg-pair{display:none}
.table.is-editing .pg-view{display:none}
.table.is-editing .pg-in{display:block;width:100%;min-width:64px;padding:5px 7px;border:1px solid var(--line);
  border-radius:6px;font:inherit;font-size:13px;background:#fff;color:var(--ink-2)}
.table.is-editing td.num .pg-in{text-align:right}
.table.is-editing .pg-pair{display:flex;align-items:center;gap:4px}
.table.is-editing .pg-pair .pg-in{width:56px;min-width:0}
.table.is-editing .pg-dash{color:var(--muted)}
.table.is-editing .pg-in:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 2px var(--teal-light)}
.table.is-editing .pg-in.is-dirty{background:var(--amber-light);border-color:#F0C46C}
.table.is-editing .pg-in.is-bad{border-color:var(--red);box-shadow:0 0 0 2px #FDECEC}
.table.is-editing .pg-in:disabled{background:#F4F7FA;cursor:not-allowed}
.pg-actions{display:inline-flex;align-items:center;gap:8px}
.pg-actions[hidden],#pgEdit[hidden]{display:none}

/* Planes · Facturación electrónica por país (10 oct 2026, assets/planes-efact.js) */
.efact-sec{margin-top:18px}
.efact-sec .panel__head h3{margin:0;font-size:14px}
.efact-tab .ef-in{width:110px;text-align:right}
.efact-tab tr.is-low .ef-margin{color:#B42318;font-weight:700}
.efact-sec .filters__note,.efact-sec #efWarn,.efact-actions{margin:12px 16px}
.efact-actions{display:flex;gap:8px;align-items:center}
.efact-pais{display:flex;align-items:center;gap:10px;margin:0 16px 12px}
.efact-pais label{font-weight:600;font-size:13px}
.efact-tab tr[hidden]{display:none}
.efact-sec #efNoWeb{margin:0 16px 12px}
.addon-hint{display:block;margin:-6px 0 18px}
.efact-sec .table-scroll{min-height:0;max-height:none}
.ef-dd__lbl{font-weight:600;font-size:13px}
.ef-dd{position:relative}
.ef-dd__btn{display:inline-flex;align-items:center;gap:10px;min-width:300px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit;font-size:13px;cursor:pointer;justify-content:space-between}
.ef-dd__btn:hover,.ef-dd.is-open .ef-dd__btn{border-color:#1BB39A;box-shadow:0 0 0 3px rgba(27,179,154,.15)}
#efDdCur{display:inline-flex;align-items:center;gap:8px}
#efDdCur .ef-tab__nom{font-weight:600;color:var(--ink)}
.ef-dd__caret{width:8px;height:8px;border-right:2px solid var(--ink-2);border-bottom:2px solid var(--ink-2);transform:rotate(45deg);margin:-4px 2px 0}
.ef-dd.is-open .ef-dd__caret{transform:rotate(-135deg);margin-top:4px}
.ef-tabs{position:absolute;z-index:20;top:calc(100% + 6px);left:0;min-width:100%;display:flex;flex-direction:column;gap:2px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(16,24,40,.14)}
.ef-tabs[hidden]{display:none}
.ef-tab{display:flex;align-items:center;gap:8px;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:inherit;font-size:13px;font-weight:600;cursor:pointer;text-align:left}
.ef-tab:hover{background:#F1F4F8}
.ef-tab.is-on{background:#E9F8F4}
.ef-tab__nom{flex:1}
.ef-tab__n{font-weight:500;font-size:12px;color:var(--ink-2);background:#E6EBF1;border-radius:999px;padding:2px 8px}
.ef-tab.is-on .ef-tab__n,#efDdCur .ef-tab__n{background:#E5F8EE;color:var(--green-2)}
.ef-tab__pronto{font-size:11px;font-weight:600;color:#92670C;background:#FEF6E7;border:1px solid #F6DCA3;border-radius:999px;padding:1px 7px}
.efact-sec>summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none;user-select:none}
.efact-sec>summary::-webkit-details-marker{display:none}
.efact-sec>summary:hover{background:#F7F9FB}
.efact-sec:not([open])>summary{border-bottom:0}
.efact-sec__caret{width:9px;height:9px;border-right:2px solid var(--ink-2);border-bottom:2px solid var(--ink-2);transform:rotate(45deg);margin:-4px 4px 0 0;transition:transform .15s}
.efact-sec[open] .efact-sec__caret{transform:rotate(-135deg);margin-top:4px}

/* Actividad (11 oct 2026): las tarjetas llevan «/ anterior», la variación y el
   día a día debajo; el gráfico ocupa el ancho entero del pie. */
.kpi__foot .an-spark-wrap,.kpi__foot > .an-spark{flex-basis:100%;margin-top:6px}
.kpi__foot .an-card__ant{margin-left:0;font-size:13px}
.act-periodo{margin:4px 0 0;font-size:13px;color:var(--slate)}
.act-persona{margin:8px 0 2px;font-size:17px;font-weight:600;color:var(--ink)}
.act-persona strong{color:var(--teal-dark)}
/* Cuenta con patrón de cuenta falsa (includes/cuentas_prueba.php), 11 oct 2026. */
.dot-sosp{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--red);
  margin-right:6px;vertical-align:1px;flex-shrink:0;box-shadow:0 0 0 2px rgba(220,38,38,.15)}

/* Mercadeo (12 oct 2026, tarea #0455). Pestañas que caben aunque sean doce. */
.mk-tabs{flex-wrap:wrap;row-gap:0}
.mk-tabs .pane-tab{display:inline-flex;align-items:center;gap:6px;margin-right:12px}
.mk-punto{width:8px;height:8px;border-radius:50%;background:var(--slate-light,#cbd5e1);flex-shrink:0}
.mk-punto--ok{background:var(--green-2,#16a34a)}
.mk-punto--parcial{background:#E0A422}
.mk-punto--falta{background:var(--red,#dc2626)}
.mk-estado{padding:14px 18px;margin-top:10px}
.mk-estado__fila{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.mk-estado__texto{margin:8px 0 0}
.mk-estado__mac{margin:8px 0 0}
.mk-faltas{margin:8px 0 0;padding-left:18px}
.mk-faltas li{margin:2px 0}
.mk-generar,.mk-config{padding:14px 18px;margin-top:14px}
.mk-config summary{cursor:pointer}
.mk-label{display:block;font-size:12.5px;font-weight:600;color:var(--muted);margin:8px 0 6px}
.mk-sw-fila{display:flex;flex-wrap:wrap;gap:8px 18px;margin:4px 0 10px}
.mk-sw{display:inline-flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}
.mk-info{margin:6px 0 12px;padding-left:18px;font-size:13px;color:var(--muted)}
.mk-info li{margin:4px 0}
.mk-chips{display:flex;flex-wrap:wrap;gap:4px}
.mk-chip{display:inline-block;min-width:28px;text-align:center;padding:2px 7px;border-radius:999px;font-size:11px;font-weight:700;
  border:1px dashed var(--line);color:var(--muted);text-decoration:none}
.mk-chip--oculto{border-style:solid;background:#FEF6E7;color:#92670C;border-color:#F3DDAE}
.mk-chip--publico{border-style:solid;background:#E5F8EE;color:var(--green-2);border-color:#BFE8D1}
.mk-acciones{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.mk-acciones form{margin:0}
.mk-error{color:var(--red)}
.mk-texto{white-space:pre-wrap;font-size:12.5px;background:var(--bg,#f8fafc);border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:4px 0}
.mk-bloques summary{cursor:pointer;font-size:12.5px;color:var(--teal-3);font-weight:600;margin:4px 0}
.mk-bloque{margin:8px 0}
.mk-bloque__cab{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px}
.btn--xs{padding:2px 8px;font-size:11.5px}
.mk-lista{margin:6px 0;padding-left:18px;font-size:12.5px}.mk-lista li{margin:3px 0}
.ef-costo{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2)}
.ef-costo[hidden]{display:none}
.ef-costo-ver{border:1px dashed transparent;background:transparent;border-radius:8px;padding:3px 8px;font:inherit;color:inherit;cursor:pointer}
.ef-costo-ver:hover{border-color:var(--line);background:#F7F9FB}
.ef-costo-lapiz{color:var(--muted);margin-left:2px}
.ef-costo .ef-costo-in{width:90px;text-align:right}
.ef-costo-ver[hidden],.ef-costo-in[hidden]{display:none}
.mk-tema-ficha{display:flex;flex-wrap:wrap;gap:10px 28px;font-size:13.5px}
.mk-tema-ficha .mk-label{margin:0 0 3px}
.mk-volver{color:inherit;text-decoration:none;border-bottom:1px dashed var(--line)}

/* Mercadeo · contenido del consejo (13 oct 2026): una tarjeta por idioma con su
   video para revisar y aprobar. Colores planos, sin sombras (regla de Mauricio). */
.mk-contenido{padding:14px 18px;margin-top:14px}
.mk-cont-generar{margin:10px 0 6px}
.mk-cont-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(275px,1fr));gap:0;margin-top:12px}
.mk-cont-card{border:0;border-left:1px solid var(--border,#e2e8f0);border-radius:0;padding:12px 16px;display:flex;flex-direction:column;gap:8px;background:transparent}
.mk-cont-card:first-child{border-left:0;padding-left:0}
.mk-cont-card.is-aprobado{border-left-color:var(--border,#e2e8f0)}
.mk-cont-card__head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.mk-cont-video{width:100%;aspect-ratio:9/16;max-height:420px;background:#0b3b38;border-radius:8px;object-fit:contain}
.mk-cont-titulo{font-weight:600;color:var(--text,#0f172a)}
.mk-cont-vacio{font-size:13px;color:var(--muted);padding:24px 6px;text-align:center;border:1px dashed var(--border,#e2e8f0);border-radius:8px}
.mk-tandas{margin:10px 0 4px;display:flex;flex-direction:column;gap:6px}
.mk-tanda{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.mk-tanda--ok{background:#E8F7EE;color:#166534;border-color:#B7E4C7}
.mk-tanda--va{background:#FEF6E7;color:#92670C;border-color:#F3DDAE}
.mk-tanda--mal{background:#FDECEC;color:#B42318;border-color:#F5C2C0}
.mk-cont-grande{font-weight:600;color:var(--brand,#0f766e)}
/* 25 oct 2026: forma de pago de la cuenta, arriba de la pestaña Cobros del cajón (dashboard-cajon.js). */
.ch-forma{display:flex;flex-direction:column;gap:6px;margin:0 0 14px;padding:12px;border:1px solid var(--line, #e5e7eb);border-radius:10px}
.ch-forma__l{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted, #6b7280)}
.ch-forma select{max-width:320px}
.ch-forma__s{font-size:12px;color:var(--muted, #6b7280)}
.ch-spin{display:inline-block;width:10px;height:10px;border:2px solid #cfeee9;border-top-color:#14b8a6;border-radius:50%;animation:dashspin .7s linear infinite;vertical-align:-1px;margin-right:4px}
