/* =====================================================================
   KH Comités · único archivo CSS
   ===================================================================== */

:root {
  --fondo: #f3f5f8;
  --superficie: #ffffff;
  --texto: #1c2430;
  --texto-suave: #5b6672;
  --borde: #d9dee5;
  --primario: #1f3a5f;
  --primario-oscuro: #16294a;
  --primario-claro: #e6edf7;
  --acento: #c8811b;
  --verde: #1e9e4a;
  --ambar: #e0a100;
  --rojo: #d13b2b;
  --azul: #2a6fd1;
  --gris: #8a94a0;
  --radio: 8px;
  --sombra: 0 1px 3px rgba(20, 30, 50, .08), 0 4px 14px rgba(20, 30, 50, .05);
  --menu-ancho: 220px;
  --barra-alto: 56px;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { font-size: 15px; }
body {
  margin: 0;
  font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: var(--texto);
  background: var(--fondo);
  line-height: 1.45;
}
a { color: var(--primario); }
h1, h2, h3 { margin: 0 0 .6rem; line-height: 1.25; }
h1.titulo-pagina { font-size: 1.5rem; margin-bottom: 1rem; }
h2 { font-size: 1.1rem; color: var(--primario); }
code { background: var(--primario-claro); padding: .1em .35em; border-radius: 4px; font-size: .95em; }
small, .texto-pequeno { font-size: .85rem; color: var(--texto-suave); }
.texto-ayuda { color: var(--texto-suave); font-size: .9rem; margin: .25rem 0 .5rem; display: block; }
.centrado { text-align: center; }
.vacio { color: var(--texto-suave); font-style: italic; margin: .25rem 0; }
.saltar { position: absolute; left: -9999px; }
.saltar:focus { left: 8px; top: 8px; background: #fff; padding: .5rem; z-index: 100; }

/* ---------- Estructura con menú ---------- */
.barra-superior {
  position: fixed; top: 0; left: 0; right: 0; height: var(--barra-alto);
  background: var(--primario-oscuro); color: #fff;
  display: flex; align-items: center; gap: 1rem; padding: 0 1rem; z-index: 20;
}
.marca { display: flex; flex-direction: column; line-height: 1.1; }
.marca strong { font-size: 1.05rem; letter-spacing: .02em; }
.marca span { font-size: .75rem; opacity: .75; }
.marca-grande { align-items: center; margin-bottom: 1rem; color: var(--primario-oscuro); }
.marca-grande strong { font-size: 1.4rem; }
.usuario-barra { margin-left: auto; display: flex; align-items: center; gap: .6rem; }
.usuario-nombre { font-weight: 600; }
.boton-menu { display: none; background: none; border: 0; color: #fff; font-size: 1.4rem; cursor: pointer; }

.menu-lateral {
  position: fixed; top: var(--barra-alto); bottom: 0; left: 0; width: var(--menu-ancho);
  background: var(--primario); color: #fff; padding: 1rem 0; overflow-y: auto; z-index: 15;
  display: flex; flex-direction: column;
}
.menu-lateral ul { list-style: none; margin: 0; padding: 0; }
.menu-lateral a {
  display: block; padding: .6rem 1.25rem; color: #dbe4f2; text-decoration: none; border-left: 4px solid transparent;
}
.menu-lateral a:hover { background: rgba(255,255,255,.08); color: #fff; }
.menu-lateral a.activo { background: rgba(255,255,255,.14); color: #fff; border-left-color: var(--acento); font-weight: 600; }
.menu-pie { margin-top: auto; padding: 1rem 1.25rem; font-size: .8rem; opacity: .7; }

.contenido { margin-left: var(--menu-ancho); padding: calc(var(--barra-alto) + 1.25rem) 1.5rem 2rem; min-height: 100vh; }
.pie { margin-left: var(--menu-ancho); padding: 1rem 1.5rem; font-size: .8rem; color: var(--texto-suave); }

/* ---------- Pantallas públicas ---------- */
body.publica { display: flex; align-items: center; justify-content: center; min-height: 100vh; padding: 1rem; }
.tarjeta-publica { width: 100%; max-width: 420px; }
.tarjeta-publica .titulo-pagina { font-size: 1.25rem; text-align: center; }

/* ---------- Tarjetas y rejillas ---------- */
.tarjeta { background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio); box-shadow: var(--sombra); padding: 1.25rem; }
.tarjeta-estrecha { max-width: 480px; }
.tarjeta-media { max-width: 720px; }
.rejilla-tarjetas { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 1rem; }
.saludo { margin: 0 0 1rem; }

/* ---------- Alertas ---------- */
.alerta { padding: .7rem 1rem; border-radius: var(--radio); margin: 0 0 1rem; border: 1px solid; word-break: break-word; }
.alerta-ok    { background: #e8f7ee; border-color: #b5e2c5; color: #14602d; }
.alerta-error { background: #fdecea; border-color: #f5c2bc; color: #8a1f14; }
.alerta-aviso { background: #fff6dc; border-color: #f2dd9a; color: #6b4d00; }
.alerta-info  { background: #e9f1fc; border-color: #bcd3f3; color: #173f7a; }

/* ---------- Formularios ---------- */
.formulario .campo { margin-bottom: 1rem; }
.formulario label { display: block; font-weight: 600; margin-bottom: .3rem; font-size: .92rem; }
.campo-marcado label { font-weight: 500; display: flex; align-items: center; gap: .5rem; }
input[type=text], input[type=email], input[type=password], input[type=number], input[type=date],
input[type=datetime-local], input[type=time], select, textarea {
  width: 100%; padding: .55rem .7rem; border: 1px solid var(--borde); border-radius: 6px; font: inherit; background: #fff; color: var(--texto);
}
input:focus, select:focus, textarea:focus { outline: 2px solid var(--azul); outline-offset: 1px; border-color: var(--azul); }
input[disabled], select[disabled] { background: #eef1f4; color: var(--texto-suave); }
.fila-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.campo-pass { display: flex; gap: .4rem; }
.campo-pass input { flex: 1; }
.boton-ver { border: 1px solid var(--borde); background: #fff; border-radius: 6px; cursor: pointer; padding: 0 .6rem; }
.acciones { display: flex; gap: .6rem; flex-wrap: wrap; margin-top: 1.25rem; }
.barra-acciones { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
form.en-linea { display: inline; }

/* ---------- Botones ---------- */
.boton {
  display: inline-block; padding: .55rem 1rem; border-radius: 6px; border: 1px solid transparent;
  font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; line-height: 1.2;
  background: var(--primario-claro); color: var(--primario);
}
.boton:hover { filter: brightness(.95); }
.boton-principal { background: var(--primario); color: #fff; }
.boton-secundario { background: #fff; color: var(--primario); border-color: var(--borde); }
.boton-peligro { background: #fff; color: var(--rojo); border-color: #f0c4be; }
.boton-peligro:hover { background: #fdecea; }
.boton-pequeno { padding: .3rem .6rem; font-size: .82rem; }
.boton-ancho { width: 100%; }
.boton[disabled] { opacity: .5; cursor: not-allowed; }

/* ---------- Tablas ---------- */
.tabla-envoltorio { overflow-x: auto; background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio); box-shadow: var(--sombra); }
.tabla { width: 100%; border-collapse: collapse; font-size: .92rem; }
.tabla th, .tabla td { padding: .6rem .75rem; text-align: left; border-bottom: 1px solid var(--borde); vertical-align: top; }
.tabla thead th { background: #f7f9fc; color: var(--texto-suave); font-weight: 600; font-size: .82rem; text-transform: uppercase; letter-spacing: .03em; }
.tabla tbody tr:hover { background: #fafbfd; }
.tabla-compacta th, .tabla-compacta td { padding: .4rem .5rem; }
.fila-inactiva td { color: var(--texto-suave); }
.fila-vencida td { color: var(--rojo); }
.celda-acciones { white-space: nowrap; }
.celda-acciones > * { margin-right: .3rem; }

/* ---------- Etiquetas (badges) ---------- */
.etiqueta {
  display: inline-block; padding: .12rem .5rem; border-radius: 999px; font-size: .75rem; font-weight: 600;
  background: #e9edf2; color: #3a4552; white-space: nowrap; vertical-align: middle;
}
.etiqueta-rol   { background: var(--primario-claro); color: var(--primario); }
.etiqueta-verde { background: #e2f5e8; color: #146a31; }
.etiqueta-ambar { background: #fff1c2; color: #6b4d00; }
.etiqueta-rojo  { background: #fde3df; color: #8a1f14; }
.etiqueta-azul  { background: #e3edfb; color: #1b4d97; }
.etiqueta-gris  { background: #e9edf2; color: #5b6672; }

/* Estados de propuesta */
.etiqueta-borrador            { background: #e9edf2; color: #5b6672; }
.etiqueta-presentada          { background: #e3edfb; color: #1b4d97; }
.etiqueta-aprobada            { background: #e2f5e8; color: #146a31; }
.etiqueta-aprobada_condicion  { background: #fff1c2; color: #6b4d00; }
.etiqueta-devuelta            { background: #ffe8cc; color: #7a4100; }
.etiqueta-rechazada           { background: #fde3df; color: #8a1f14; }
.etiqueta-en_ejecucion        { background: #dff2f9; color: #0b5670; }
.etiqueta-medida              { background: #ece5fb; color: #4a2c8a; }
.etiqueta-cerrada_cumplida    { background: #c9efd6; color: #0f5a28; }
.etiqueta-cerrada_no_cumplida { background: #f6d0cb; color: #7a1a10; }
.etiqueta-abortada            { background: #d9dee5; color: #3a4552; }

/* Semáforos (fase 5) */
.semaforo { display: inline-block; width: 14px; height: 14px; border-radius: 50%; vertical-align: middle; }
.semaforo-verde { background: var(--verde); }
.semaforo-ambar { background: var(--ambar); }
.semaforo-rojo  { background: var(--rojo); }

/* ---------- Listas del panel ---------- */
.lista-simple, .lista-estados { list-style: none; margin: 0; padding: 0; }
.lista-simple li { padding: .5rem 0; border-bottom: 1px solid var(--borde); }
.lista-simple li:last-child { border-bottom: 0; }
.lista-estados li { display: flex; justify-content: space-between; padding: .35rem 0; border-bottom: 1px dashed var(--borde); }
.contador-vivas { margin: 0 0 .75rem; padding: .5rem .75rem; border-radius: 6px; background: var(--primario-claro); color: var(--primario); }
.contador-lleno { background: #fde3df; color: #8a1f14; }

/* ---------- Impresión (actas, fase 6) ---------- */
@media print {
  .barra-superior, .menu-lateral, .pie, .boton, .barra-acciones, .alerta { display: none !important; }
  .contenido { margin: 0; padding: 0; }
  .tarjeta { box-shadow: none; border: 0; }
  body { background: #fff; }
}

/* ---------- Estructura adicional ---------- */
.contenido-ancho { max-width: none; }
.cabecera-pagina { margin-bottom: 1rem; }
.subtitulo-pagina { margin: -.5rem 0 0; color: var(--texto-suave); }
.menu-separador { padding: .9rem 1.25rem .3rem; font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; opacity: .6; }
.campana { position: relative; text-decoration: none; font-size: 1.1rem; margin-right: .25rem; }
.campana-num { display: inline-block; min-width: 18px; padding: 0 5px; border-radius: 999px; background: var(--rojo); color: #fff; font-size: .7rem; font-weight: 700; text-align: center; line-height: 18px; vertical-align: top; }
.rejilla-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); gap: 1rem; align-items: start; }
.rejilla-2 > .tarjeta + .tarjeta, .rejilla-2 > div > .tarjeta + .tarjeta { margin-top: 1rem; }
.rejilla-lateral { display: grid; grid-template-columns: 260px 1fr; gap: 1rem; align-items: start; }
.lista-lateral { display: flex; flex-direction: column; padding: .5rem; }
.lista-lateral a { padding: .5rem .75rem; border-radius: 6px; text-decoration: none; color: var(--texto); }
.lista-lateral a.activa { background: var(--primario-claro); font-weight: 600; }
.fila-campos-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.fila-campos-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
textarea { width: 100%; padding: .55rem .7rem; border: 1px solid var(--borde); border-radius: 6px; font: inherit; resize: vertical; }
hr { border: 0; border-top: 1px solid var(--borde); margin: 1.25rem 0; }
.enlace-tarjeta { text-decoration: none; color: inherit; display: block; }
.valor-fijo { padding: .55rem 0; }
.texto-error { color: var(--rojo); }
.detalle-json { font-family: Consolas, monospace; font-size: .78rem; word-break: break-all; }
.paginacion a, .paginacion strong { margin-right: .5rem; }

/* Filtros y pestañas */
.filtros { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-bottom: 1rem; }
.filtros input[type=text], .filtros select, .filtros input[type=date], .filtros input[type=number] { width: auto; }
.pestanas { display: flex; flex-wrap: wrap; gap: .25rem; border-bottom: 2px solid var(--borde); margin-bottom: 1rem; align-items: center; }
.pestanas a { padding: .55rem .9rem; text-decoration: none; color: var(--texto-suave); font-weight: 600; border-bottom: 3px solid transparent; margin-bottom: -2px; }
.pestanas a.activa { color: var(--primario); border-bottom-color: var(--acento); }
.pestanas-derecha { margin-left: auto; font-size: .9rem; color: var(--texto-suave); }
.pestanas-derecha a { padding: .3rem .5rem; }

/* Avisos */
.lista-avisos { list-style: none; margin: 0; padding: 0; }
.lista-avisos li a { display: block; padding: .7rem 1rem; background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio); margin-bottom: .5rem; text-decoration: none; color: var(--texto); }
.lista-avisos li.no-leido a { border-left: 4px solid var(--acento); background: #fffdf5; }
.aviso-titulo { display: block; font-weight: 600; }
.aviso-texto { display: block; color: var(--texto-suave); font-size: .9rem; }
.aviso-fecha { display: block; font-size: .78rem; color: var(--texto-suave); margin-top: .2rem; }

/* Etiquetas adicionales */
.etiqueta-ciclo-planificado { background: #e9edf2; color: #5b6672; }
.etiqueta-ciclo-abierto { background: #e2f5e8; color: #146a31; }
.etiqueta-ciclo-celebrado { background: #e3edfb; color: #1b4d97; }
.etiqueta-ciclo-cerrado { background: #d9dee5; color: #3a4552; }
.etiqueta-sesion-planificada { background: #e9edf2; color: #5b6672; }
.etiqueta-sesion-convocada { background: #e3edfb; color: #1b4d97; }
.etiqueta-sesion-en_curso { background: #fff1c2; color: #6b4d00; }
.etiqueta-sesion-celebrada { background: #ece5fb; color: #4a2c8a; }
.etiqueta-sesion-acta_publicada { background: #e2f5e8; color: #146a31; }
.etiqueta-tarea-pendiente { background: #e9edf2; color: #5b6672; }
.etiqueta-tarea-en_curso { background: #e3edfb; color: #1b4d97; }
.etiqueta-tarea-hecha { background: #e2f5e8; color: #146a31; }
.etiqueta-tarea-cancelada { background: #d9dee5; color: #3a4552; }
.etiqueta-correo-pendiente { background: #fff1c2; color: #6b4d00; }
.etiqueta-correo-enviado { background: #e2f5e8; color: #146a31; }
.etiqueta-correo-error { background: #fde3df; color: #8a1f14; }
.etiqueta-correo-cancelado { background: #d9dee5; color: #3a4552; }
.lista-inline { list-style: none; padding: 0; margin: .25rem 0 .75rem; display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; }
.lista-motivos { margin: .4rem 0 0 1.2rem; }
.detalles { margin: .75rem 0; }
.detalles summary { cursor: pointer; font-weight: 600; color: var(--primario); }

/* Ficha de propuesta */
.ficha-bloques { display: flex; flex-direction: column; gap: 1rem; max-width: 1100px; }
.ficha-bloques .tarjeta { padding: 1.5rem; }
.ficha-bloques label { font-size: .95rem; }
.ficha-bloques .tabla-filas input[type=text] { min-width: 220px; }
.ficha-bloques .indicador-fila input[type=text] { min-width: 90px; }
.bloque-accion #inds, .bloque-accion [data-anadir-fila="#inds"], .bloque-accion [data-solo-proyecto] { display: none; }
.bloque-accion.mostrar-indicadores #inds, .bloque-accion.mostrar-indicadores [data-anadir-fila="#inds"] { display: block; }
.bloque-premisa h2 .num { display: inline-block; width: 26px; height: 26px; border-radius: 50%; background: var(--primario); color: #fff; text-align: center; line-height: 26px; font-size: .9rem; margin-right: .4rem; }
.tabla-filas input[type=text], .tabla-filas select, .tabla-filas input[type=date] { padding: .35rem .5rem; }
.num-fila { color: var(--texto-suave); width: 30px; }
.indicador-fila { border: 1px dashed var(--borde); border-radius: var(--radio); padding: .75rem; margin-bottom: .75rem; background: #fafbfd; }
.acciones-fijas { position: sticky; bottom: 0; background: var(--fondo); padding: .75rem 0; border-top: 1px solid var(--borde); margin-top: 1rem; z-index: 5; }
.ficha-lectura dt { font-weight: 700; color: var(--primario); margin-top: .9rem; text-transform: uppercase; font-size: .8rem; letter-spacing: .04em; }
.ficha-lectura dd { margin: .25rem 0 0; }
.lista-pasos { margin: .4rem 0; padding-left: 1.2rem; }
.lista-pasos li.hecho { text-decoration: line-through; color: var(--texto-suave); }
.indicador-lectura { border-left: 3px solid var(--primario-claro); padding: .4rem .75rem; margin: .5rem 0; }
.indicador-lectura .dato { display: inline-block; margin-right: 1rem; font-size: .85rem; color: var(--texto-suave); }
.formulario-inline { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin-top: .4rem; }
.formulario-inline input { width: auto; padding: .35rem .5rem; }
.lista-historial { list-style: none; padding: 0; margin: 0; font-size: .88rem; }
.lista-historial li { padding: .3rem 0; border-bottom: 1px dashed var(--borde); }

/* Sesión */
.reloj { font-family: Consolas, monospace; font-size: 1.6rem; font-weight: 700; color: var(--primario); background: #fff; border: 2px solid var(--primario); border-radius: 8px; padding: .2rem .8rem; }
.reloj-pasado { color: var(--rojo); border-color: var(--rojo); }
#tabla-orden tr.bloque-activo td { background: #fff1c2; font-weight: 700; }
.revision, .ficha-resumen { border: 1px solid var(--borde); border-radius: var(--radio); padding: .75rem 1rem; margin: .75rem 0; background: #fafbfd; }
.revision-bloquea { border-color: #f5c2bc; background: #fff7f6; }
.revision-cab { margin-bottom: .3rem; }
.acciones-revision { display: flex; flex-direction: column; gap: .4rem; }
.tarjeta.bloqueado { opacity: .85; background: repeating-linear-gradient(45deg, #fff, #fff 12px, #fdf3f1 12px, #fdf3f1 24px); }
.cuatro-premisas { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem 1rem; font-size: .92rem; margin: .5rem 0; }
.cuatro-premisas .num { display: inline-block; width: 20px; height: 20px; border-radius: 50%; background: var(--primario); color: #fff; text-align: center; line-height: 20px; font-size: .75rem; margin-right: .3rem; }
.cuatro-premisas .dato { display: inline-block; margin-right: .75rem; color: var(--texto-suave); }
.botones-decision { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin-bottom: .75rem; }
.opcion-decision { display: block; border: 1px solid var(--borde); border-radius: 6px; padding: .5rem .75rem; cursor: pointer; font-size: .9rem; background: #fff; }
.opcion-decision:has(input:checked) { border-color: var(--primario); box-shadow: 0 0 0 2px var(--primario-claro); }
.decision-caja { background: #fff; border: 1px solid var(--borde); border-radius: var(--radio); padding: .5rem .75rem; }
.bloque-sesion { margin-bottom: 1rem; }

/* Cuadro de mando */
.rejilla-kpi { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.kpi-tarjeta { border-top: 4px solid var(--gris); }
.kpi-ok { border-top-color: var(--verde); }
.kpi-mal { border-top-color: var(--rojo); }
.kpi-sin { border-top-color: var(--gris); }
.kpi-valor { font-size: 2rem; font-weight: 700; line-height: 1.1; }
.kpi-objetivo { color: var(--texto-suave); font-size: .85rem; }
.kpi-texto { font-size: .85rem; color: var(--texto-suave); margin: .5rem 0 0; }
.grafica { width: 100%; height: auto; display: block; }
.grafica-rejilla { stroke: #e3e7ec; stroke-width: 1; }
.grafica-eje { font-size: 10px; fill: #5b6672; }
.grafica-valor { font-size: 10px; fill: #1c2430; font-weight: 600; }
.grafica-objetivo { stroke: var(--acento); stroke-width: 1.5; stroke-dasharray: 5 4; }
.grafica-base { stroke: var(--gris); stroke-width: 1.5; stroke-dasharray: 3 3; }
.grafica-barra { fill: var(--primario); }
.grafica-barra.ok { fill: var(--verde); }
.grafica-barra.mal { fill: var(--rojo); }
.grafica-linea { fill: none; stroke: var(--primario); stroke-width: 2; }
.punto-verde { fill: var(--verde); } .punto-ambar { fill: var(--ambar); } .punto-rojo { fill: var(--rojo); }
.objetivo-cabecera { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.objetivo { margin-bottom: 1rem; }

/* Actas y correo */
.acta-editor { font-family: Consolas, "Courier New", monospace; font-size: .9rem; line-height: 1.45; }
.acta-texto { white-space: pre-wrap; font-family: inherit; font-size: .95rem; line-height: 1.5; margin: 0; }
.anexo { border-top: 1px solid var(--borde); padding-top: .75rem; margin-top: .75rem; }
.correo-vista { border: 1px solid var(--borde); border-radius: var(--radio); padding: .75rem; margin-bottom: 1rem; background: #fff; }
.correo-iframe { width: 100%; height: 360px; border: 1px solid var(--borde); border-radius: 6px; background: #fff; }

/* Asistente de propuestas */
.asistente { max-width: 960px; }
.asistente-paso { padding: 1.5rem; }
.asistente-chat { display: flex; flex-direction: column; gap: .6rem; margin-bottom: 1rem; }
.asistente-chat.compacto { max-height: 260px; overflow-y: auto; padding-right: .25rem; }
.asistente-burbuja { display: flex; gap: .6rem; align-items: flex-start; max-width: 85%; padding: .7rem 1rem; border-radius: 14px; line-height: 1.45; }
.asistente-burbuja.ia { background: var(--primario-claro); color: var(--texto); border-bottom-left-radius: 4px; }
.asistente-burbuja.yo { background: var(--primario); color: #fff; align-self: flex-end; border-bottom-right-radius: 4px; }
.asistente-burbuja .avatar { font-size: 1.4rem; line-height: 1; flex: 0 0 auto; }
.atajos, .chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: .5rem 0 .9rem; }
.chip { display: inline-flex; align-items: center; gap: .35rem; padding: .45rem .85rem; border-radius: 999px; border: 1px solid var(--borde); background: #fff; font: inherit; font-size: .9rem; cursor: pointer; color: var(--texto); }
.chip:hover { border-color: var(--primario); background: var(--primario-claro); }
.chip-atajo { font-weight: 600; }
.chip-respuesta { background: var(--primario); color: #fff; border-color: var(--primario); font-weight: 600; }
.chip-respuesta:hover { background: var(--primario-oscuro); color: #fff; }
.chip-radio input, .chip-check input { margin: 0; accent-color: var(--primario); }
.chip:has(input:checked) { background: var(--primario); color: #fff; border-color: var(--primario); }
.chip:has(input:checked) small { color: #dbe4f2; }
.chip small { color: var(--texto-suave); }
.chips-scroll { max-height: 190px; overflow-y: auto; padding: .5rem; border: 1px solid var(--borde); border-radius: var(--radio); background: #fafbfd; }
.filtro-chips { margin-bottom: .4rem; }
.chip[hidden] { display: none; }
.propuestas-ia { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.propuesta-ia { border: 1px solid var(--borde); border-radius: var(--radio); padding: 1rem; background: #fff; display: flex; flex-direction: column; gap: .4rem; }
.propuesta-ia.recomendada { border-color: var(--verde); box-shadow: 0 0 0 3px #e2f5e8; }
.propuesta-ia h3 { margin: .25rem 0 0; font-size: 1.05rem; }
.propuesta-ia .que { margin: 0; color: var(--texto-suave); }
.propuesta-ia form { margin-top: auto; }
.progreso-caja { background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio); padding: .75rem 1rem; position: sticky; top: calc(var(--barra-alto) + .5rem); z-index: 6; }
.progreso-texto { display: flex; justify-content: space-between; margin-bottom: .35rem; }
.progreso { height: 10px; background: #e9edf2; border-radius: 999px; overflow: hidden; }
.progreso-barra { height: 100%; background: linear-gradient(90deg, var(--ambar), var(--verde)); transition: width .3s; }
.confirmar h3 { font-size: 1rem; color: var(--primario); margin: 1rem 0 .4rem; }
.cargando { position: fixed; inset: 0; background: rgba(255,255,255,.8); display: flex; align-items: center; justify-content: center; z-index: 100; font-size: 1.2rem; font-weight: 600; color: var(--primario); }
.cargando::before { content: ""; width: 26px; height: 26px; border: 3px solid var(--primario-claro); border-top-color: var(--primario); border-radius: 50%; margin-right: .75rem; animation: girar 1s linear infinite; }
@keyframes girar { to { transform: rotate(360deg); } }

/* Sugerencias de gerencia */
.sugerencias { margin-bottom: 1rem; border-left: 4px solid var(--acento); }
.lista-sugerencias { list-style: none; margin: .5rem 0 0; padding: 0; }
.lista-sugerencias li { display: flex; align-items: center; gap: .6rem; padding: .5rem 0; border-bottom: 1px dashed var(--borde); }
.lista-sugerencias li:last-child { border-bottom: 0; }
.sug-punto { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; background: var(--gris); }
.sug-alta .sug-punto { background: var(--rojo); }
.sug-media .sug-punto { background: var(--ambar); }
.sug-info .sug-punto { background: var(--azul); }
.sug-texto { flex: 1; }
.lectura-ia { background: #fffdf5; border: 1px solid #f2dd9a; border-radius: var(--radio); padding: .9rem 1rem; margin: .5rem 0 1rem; line-height: 1.55; }

/* Tablero VEN y tiendas */
.ven-cabecera { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .75rem; margin-bottom: .75rem; }
.ven-semana { display: flex; align-items: center; gap: .6rem; font-size: 1.05rem; }
.ven-resumen { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.ven-cuenta { display: inline-flex; align-items: center; gap: .3rem; padding: .25rem .7rem; border-radius: 999px; font-size: .9rem; background: #e9edf2; }
.ven-cuenta strong { font-size: 1.05rem; }
.ven-cuenta.ven-v { background: #dff2f9; color: #0b5670; }
.ven-cuenta.ven-e { background: #ece5fb; color: #4a2c8a; }
.ven-cuenta.ven-n { background: #ffe8cc; color: #7a4100; }
.tabla-ven td.centro, .tabla-ven th.centro { text-align: center; }
.tabla-ven tr.ven-marcada td { background: #fffdf5; }
.ven-letra { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; border: 2px solid var(--borde); background: #fff; font-weight: 700; font-size: 1.05rem; cursor: pointer; color: #b8c0ca; user-select: none; transition: transform .1s; }
.ven-letra input { position: absolute; opacity: 0; width: 0; height: 0; }
.ven-letra:hover { transform: scale(1.08); border-color: var(--primario); }
.ven-letra.anterior { border-style: dashed; color: #8a94a0; }
.ven-letra.ven-v.activa, .ven-letra.ven-v:has(input:checked) { background: #0b5670; border-color: #0b5670; color: #fff; }
.ven-letra.ven-e.activa, .ven-letra.ven-e:has(input:checked) { background: #4a2c8a; border-color: #4a2c8a; color: #fff; }
.ven-letra.ven-n.activa, .ven-letra.ven-n:has(input:checked) { background: #c8811b; border-color: #c8811b; color: #fff; }
.ven-letra.solo-lectura { cursor: default; }
.ven-letra.mini { width: 22px; height: 22px; font-size: .7rem; border-width: 1px; }
.ven-linea { display: flex; flex-wrap: wrap; gap: .35rem; }
.ven-punto { display: flex; flex-direction: column; align-items: center; gap: .15rem; text-decoration: none; color: var(--texto-suave); }
.ven-punto:hover { color: var(--primario); }
.tabla-ven input[type=text] { min-width: 160px; padding: .35rem .5rem; }
.ven-celda { position: relative; min-width: 120px; }
.ven-nota { display: block; width: 100%; min-width: 110px !important; margin-top: .3rem; font-size: .8rem; padding: .25rem .4rem !important; }
.ven-cuantos { position: absolute; top: 4px; right: 8px; min-width: 18px; height: 18px; line-height: 18px; border-radius: 999px; background: var(--acento); color: #fff; font-size: .7rem; font-weight: 700; text-align: center; cursor: help; }
.ven-mini-letra { display: inline-block; width: 18px; height: 18px; line-height: 18px; border-radius: 50%; text-align: center; font-size: .7rem; font-weight: 700; color: #fff; }
.ven-mini-letra.ven-v { background: #0b5670; } .ven-mini-letra.ven-e { background: #4a2c8a; } .ven-mini-letra.ven-n { background: #c8811b; }
.ven-quien div { padding: .1rem 0; }
.prio { display: inline-block; padding: .2rem .55rem; border-radius: 999px; font-size: .78rem; font-weight: 700; background: #e9edf2; color: #5b6672; cursor: help; }
.prio small { font-weight: 400; }
.prio-alta { background: #fde3df; color: #8a1f14; } .prio-media { background: #fff1c2; color: #6b4d00; } .prio-baja { background: #e3edfb; color: #1b4d97; }
tr.prioridad-alta td:first-child { border-left: 4px solid var(--rojo); }
tr.prioridad-media td:first-child { border-left: 4px solid var(--ambar); }
.pendiente-autorizar { padding: .5rem 0; border-bottom: 1px dashed var(--borde); }
.pendiente-autorizar input[type=text] { min-width: 260px; }

/* Insignias y tablón */
.insignias { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: .5rem; }
.insignia { text-align: center; padding: .6rem .3rem; border-radius: var(--radio); border: 1px dashed var(--borde); opacity: .45; filter: grayscale(1); }
.insignia.conseguida { opacity: 1; filter: none; border: 1px solid var(--verde); background: #f2fbf5; }
.insignia .emoji { display: block; font-size: 1.6rem; }
.insignia .nombre { display: block; font-size: .72rem; margin-top: .2rem; }
.insignias-mini span { font-size: 1.1rem; margin-right: .15rem; cursor: help; }

/* Hoja imprimible */
body.imprimir { display: block; background: #fff; padding: 0; }
.hoja { max-width: 800px; margin: 0 auto; padding: 2rem 1.5rem; }
.hoja-cabecera { display: flex; justify-content: space-between; border-bottom: 2px solid var(--primario); padding-bottom: .5rem; margin-bottom: 1rem; font-size: .9rem; }
.hoja-pie { border-top: 1px solid var(--borde); margin-top: 1.5rem; padding-top: .5rem; font-size: .8rem; color: var(--texto-suave); }
@media print { .no-imprimir { display: none !important; } .hoja { padding: 0; max-width: none; } }

/* ---------- Móvil ---------- */
@media (max-width: 860px) {
  .boton-menu { display: block; }
  .menu-lateral { transform: translateX(-100%); transition: transform .2s; }
  body.menu-abierto .menu-lateral { transform: none; box-shadow: 4px 0 16px rgba(0,0,0,.25); }
  .contenido, .pie { margin-left: 0; }
  .contenido { padding-left: 1rem; padding-right: 1rem; }
  .fila-campos, .fila-campos-3, .fila-campos-4, .rejilla-lateral, .cuatro-premisas, .botones-decision { grid-template-columns: 1fr; }
  .usuario-nombre { display: none; }
  .acciones-fijas { position: static; }
}

/* ---------- Tablero VEN visual ---------- */
.ven-cuenta { text-decoration: none; }
a.ven-cuenta:hover, .ven-cuenta.activa { outline: 2px solid currentColor; }
.ven-orden-barra { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: .25rem 0 .6rem; }
.ven-orden-barra .chips { margin: 0; }
.ven-ordenes .chip { text-decoration: none; font-size: .85rem; padding: .35rem .7rem; }
.ven-sugerencia { background: #fff8e6; border: 1px solid #f1d58a; border-radius: 999px; padding: .3rem .8rem; font-size: .85rem; }
.ven-pista { flex-basis: 100%; }
.tabla-ven th { position: relative; user-select: none; white-space: nowrap; }
.tabla-ven th:not(.col-fija) { cursor: grab; }
.tabla-ven th.col-fija, .tabla-ven td.col-fija { width: 34px; padding-left: .3rem; padding-right: .3rem; }
.tabla-ven th .col-ajuste { position: absolute; top: 0; right: -3px; width: 7px; height: 100%; cursor: col-resize; }
.tabla-ven th .col-ajuste:hover, .tabla-ven th.ajustando .col-ajuste { background: var(--primario); opacity: .35; }
.tabla-ven th.col-arrastrando { opacity: .4; }
.tabla-ven th.col-destino { box-shadow: inset 3px 0 0 var(--acento); }
.tabla-ven td { vertical-align: middle; }
.ven-asa { cursor: grab; color: #9aa4b0; font-size: 1.1rem; padding: .2rem .1rem; display: inline-block; }
.ven-asa:hover { color: var(--primario); }
tr.fila-arrastrando { opacity: .35; }
tr.fila-destino td { box-shadow: inset 0 3px 0 var(--acento); }
.ven-cronico { color: #8a1f14; font-weight: 600; }
.ven-letra { position: relative; font-family: inherit; }
button.ven-letra { padding: 0; }
.ven-letra.activa::after { content: ''; position: absolute; right: -3px; top: -3px; width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 2px solid currentColor; box-sizing: border-box; opacity: 0; }
.ven-letra.activa.con-nota::after { opacity: 1; background: var(--acento); border-color: #fff; }
.ven-letra.guardando { animation: latido .6s infinite alternate; }
@keyframes latido { from { transform: scale(1); } to { transform: scale(.9); } }
.ven-celda { min-width: 64px; }
.ven-acciones .etiqueta { margin-bottom: .2rem; }
.ven-mas { min-width: 30px; font-size: 1.05rem; line-height: 1; padding: .3rem .45rem; }

/* Burbuja de motivo al pasar el ratón */
.ven-tooltip { position: absolute; z-index: 60; max-width: 280px; background: #1c2430; color: #fff; padding: .45rem .65rem; border-radius: 6px; font-size: .82rem; line-height: 1.35; box-shadow: var(--sombra); pointer-events: none; }
.ven-tooltip small { display: block; color: #c5cdd8; margin-top: .15rem; }
.ven-tooltip::before { content: ''; position: absolute; top: -6px; left: 16px; border: 6px solid transparent; border-top: 0; border-bottom-color: #1c2430; }

/* Ventanas emergentes: motivo, menú ＋, cockpit ABC */
.ven-pop, .abc-tarjeta { position: absolute; z-index: 70; background: #fff; border: 1px solid var(--borde); border-radius: var(--radio); box-shadow: 0 8px 28px rgba(20,30,50,.22); padding: .8rem .9rem; width: 340px; max-width: calc(100vw - 2rem); }
.ven-pop-cab { display: flex; justify-content: space-between; align-items: center; gap: .5rem; margin-bottom: .5rem; }
.ven-pop-cerrar { border: 0; background: transparent; font-size: 1.3rem; line-height: 1; cursor: pointer; color: var(--texto-suave); padding: 0 .2rem; }
.ven-pop-cerrar:hover { color: var(--rojo); }
.ven-pop textarea { width: 100%; font: inherit; font-size: .9rem; padding: .4rem .5rem; border: 1px solid var(--borde); border-radius: 6px; resize: vertical; }
.ven-pop-rapidos { margin: 0 0 .5rem; gap: .3rem; }
.ven-pop-rapidos .chip { font-size: .78rem; padding: .25rem .6rem; }
.ven-pop-botones { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .6rem; }
.ven-pop.letra-v { border-top: 4px solid #0b5670; } .ven-pop.letra-e { border-top: 4px solid #4a2c8a; } .ven-pop.letra-n { border-top: 4px solid #c8811b; }
.ven-menu-opciones { display: flex; flex-direction: column; gap: .4rem; }
.ven-menu-opciones .boton { text-align: left; }
.ven-pop-form .campo { margin-bottom: .5rem; }
.ven-pop-form input, .ven-pop-form select { width: 100%; }
.ven-aviso { position: fixed; z-index: 80; left: 50%; bottom: 1.2rem; transform: translateX(-50%); background: #1c2430; color: #fff; padding: .55rem 1rem; border-radius: 999px; font-size: .9rem; box-shadow: var(--sombra); }
.ven-aviso.error { background: var(--rojo); }

/* Chip ABC: grupo + bajo par */
.abc-chip { display: inline-flex; align-items: stretch; border-radius: 999px; overflow: hidden; border: 1px solid var(--borde); font: inherit; font-size: .8rem; font-weight: 700; padding: 0; background: #fff; color: var(--texto); cursor: default; line-height: 1; }
button.abc-chip { cursor: pointer; }
button.abc-chip:hover { box-shadow: 0 0 0 2px var(--primario-claro); border-color: var(--primario); }
.abc-chip .abc-grupo { padding: .35rem .5rem; background: #e9edf2; color: #1c2430; min-width: 1.8rem; text-align: center; }
.abc-chip .abc-par { padding: .35rem .55rem; color: #fff; }
.abc-chip.banda-rojo .abc-par { background: var(--rojo); } .abc-chip.banda-ambar .abc-par { background: #d9931a; } .abc-chip.banda-verde .abc-par { background: var(--verde); } .abc-chip.banda-azul .abc-par { background: var(--azul); }
.abc-chip.banda-na .abc-par, .abc-chip.abc-na { background: #e9edf2; color: #5b6672; padding: .35rem .55rem; }
.abc-chip.abc-na { padding: 0; }
.abc-chip.abc-na::before { content: ''; }

/* Tarjeta del cockpit */
.abc-tarjeta { width: 420px; }
.abc-t-cabecera { display: flex; gap: .8rem; align-items: center; margin-bottom: .6rem; }
.abc-t-grupo { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 12px; background: var(--primario); color: #fff; flex-shrink: 0; }
.abc-t-grupo span { font-size: 1.9rem; font-weight: 800; line-height: 1; }
.abc-t-grupo small { color: #dbe4f2; font-size: .65rem; }
.abc-t-grupo.grupo-A { background: #1e9e4a; } .abc-t-grupo.grupo-B { background: #d9931a; } .abc-t-grupo.grupo-C { background: #d13b2b; }
.abc-t-datos { font-size: .9rem; line-height: 1.4; }
.abc-t-rejilla { display: grid; grid-template-columns: repeat(3, 1fr); gap: .4rem; margin-bottom: .6rem; }
.abc-t-dato { background: #f6f8fb; border-radius: 6px; padding: .4rem .5rem; }
.abc-t-dato small { display: block; font-size: .68rem; text-transform: uppercase; letter-spacing: .03em; color: var(--texto-suave); }
.abc-t-dato strong { font-size: .98rem; }
.abc-t-dato .delta { font-size: .75rem; font-weight: 600; margin-left: .25rem; }
.delta.sube { color: var(--verde); } .delta.baja { color: var(--rojo); }
.abc-t-grafico { margin-bottom: .4rem; }
.abc-t-grafico svg { display: block; }
@media (max-width: 860px) { .ven-pop, .abc-tarjeta { width: calc(100vw - 2rem); } .abc-t-rejilla { grid-template-columns: repeat(2, 1fr); } }

/* ---------- VEN · histórico y novedades ---------- */
.novedades { list-style: none; margin: 0; padding: 0; }
.novedad { display: grid; grid-template-columns: 110px 1fr; gap: .6rem; padding: .55rem 0; border-bottom: 1px solid var(--borde); align-items: start; }
.novedad time { font-size: .8rem; color: var(--texto-suave); line-height: 1.3; }
.novedad .icono { margin-right: .3rem; }
.novedad.marca .icono { color: #0b5670; }
.novedad p { margin: .1rem 0 0; }
.hist-tabla th, .hist-tabla td { padding: .3rem .35rem; }
.hist-tabla th.sem { font-weight: 600; font-size: .75rem; text-align: center; white-space: nowrap; }
.hist-tabla th.sem a { color: inherit; text-decoration: none; }
.hist-tabla th.sem.actual { background: var(--primario-claro); }
.hist-celda { text-align: center; min-width: 54px; }
.hist-celda .ven-mini-letra { margin: 0 1px; cursor: help; }
.hist-celda.vacia { color: #d3d9e1; }
.hist-tot { font-size: .72rem; color: var(--texto-suave); white-space: nowrap; text-align: center; }
.hist-tot b { color: #0b5670; } .hist-tot i { color: #4a2c8a; font-style: normal; } .hist-tot u { color: #7a4100; text-decoration: none; }
@media (max-width: 860px) { .novedad { grid-template-columns: 1fr; } }

/* ---------- Mis KPI: tarjetas cómodas ---------- */
.tarjeta-aviso { border-left: 4px solid var(--ambar); }
.kpi-progreso { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; margin-bottom: 1rem; }
.kpi-progreso .barra-progreso { flex: 1; min-width: 160px; height: 10px; background: #e9edf2; border-radius: 999px; overflow: hidden; }
.kpi-progreso .barra-progreso span { display: block; height: 100%; background: var(--verde); }
.kpi-rejilla { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1rem; }
.kpi-card { border-top: 4px solid var(--gris); position: relative; }
.kpi-card.sem-verde { border-top-color: var(--verde); } .kpi-card.sem-ambar { border-top-color: var(--ambar); } .kpi-card.sem-rojo { border-top-color: var(--rojo); }
.kpi-card.sin-base { border-top-color: var(--ambar); background: #fffaf0; }
.kpi-card h3 { margin: 0 0 .3rem; font-size: 1rem; line-height: 1.3; }
.kpi-card .kpi-sub { font-size: .8rem; color: var(--texto-suave); margin-bottom: .6rem; }
.kpi-numeros { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin-bottom: .6rem; }
.kpi-numero { background: #f6f8fb; border-radius: 8px; padding: .45rem .6rem; }
.kpi-numero label { display: block; font-size: .68rem; text-transform: uppercase; letter-spacing: .03em; color: var(--texto-suave); margin-bottom: .15rem; }
.kpi-numero input { width: 100%; font-size: 1.25rem; font-weight: 700; border: 1px solid transparent; background: transparent; padding: .1rem .2rem; border-radius: 4px; font-family: inherit; }
.kpi-numero input:hover, .kpi-numero input:focus { border-color: var(--primario); background: #fff; outline: none; }
.kpi-numero .unidad { font-size: .8rem; color: var(--texto-suave); }
.kpi-numero.cambiado input { border-color: var(--acento); background: #fff8e6; }
.kpi-numero.guardado input { border-color: var(--verde); }
.kpi-aviso-base { background: #fff3cd; color: #6b4d00; border-radius: 6px; padding: .35rem .6rem; font-size: .82rem; margin-bottom: .6rem; }
.kpi-medir { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin-top: .3rem; }
.kpi-medir input[type=text] { width: 110px; font-size: 1.05rem; font-weight: 600; }
.kpi-medir .comentario { flex: 1; min-width: 140px; font-size: .85rem; }
.kpi-ultimo { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; font-size: .85rem; margin: .4rem 0; }
.kpi-ultimo .valor { font-size: 1.15rem; font-weight: 700; }
.kpi-spark { display: block; margin-top: .2rem; }
.kpi-fuente { font-size: .8rem; color: var(--texto-suave); margin-top: .5rem; }
.kpi-fuente input { width: 100%; font-size: .8rem; border: 1px dashed var(--borde); background: transparent; padding: .2rem .3rem; border-radius: 4px; font-family: inherit; }
.kpi-fuente input:focus { background: #fff; border-style: solid; outline: none; }
.kpi-persona { margin-bottom: 1.2rem; }
.kpi-persona-cab { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-bottom: .5rem; cursor: pointer; }
.kpi-persona-cab h2 { margin: 0; }
.kpi-persona-cab .mini { font-size: .8rem; padding: .2rem .55rem; border-radius: 999px; background: #e9edf2; }
.kpi-persona-cab .mini.mal { background: #fde3df; color: #8a1f14; } .kpi-persona-cab .mini.bien { background: #dff5e5; color: #145a2a; }
.kpi-proponer { border: 2px dashed var(--borde); background: #fafbfd; }
.kpi-proponer .chips { margin: .3rem 0 .6rem; }
.coste-tramos { margin: .3rem 0 .4rem; }
.coste-tramos .chip.activo { background: var(--primario); color: #fff; border-color: var(--primario); }
.validar-coste input { padding: .3rem .4rem; }

/* ---------- Ideas, tu semana, redondear con la IA ---------- */
.idea-form { display: flex; flex-wrap: wrap; gap: .5rem; }
.idea-form input[type=text] { flex: 1; min-width: 220px; font-size: 1rem; padding: .55rem .7rem; }
.ideas-lista { list-style: none; margin: 0; padding: 0; }
.idea { padding: .6rem 0; border-bottom: 1px solid var(--borde); }
.idea-texto { font-size: 1rem; }
.idea-descartada .idea-texto, .idea-convertida .idea-texto { color: var(--texto-suave); }
.idea-acciones { display: flex; gap: .4rem; margin-top: .35rem; flex-wrap: wrap; }
.tu-semana { border-left: 4px solid var(--primario); margin-bottom: 1rem; }
.lista-semana { list-style: none; margin: .3rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: .3rem .8rem; }
.lista-semana li { padding: .35rem .6rem; border-radius: 6px; background: #f6f8fb; }
.lista-semana li.semana-alerta { background: #fde3df; }
.lista-semana a { text-decoration: none; color: inherit; }
.lista-semana a:hover { text-decoration: underline; }
.redondear-barra { margin-bottom: .6rem; }
.sugerencias-ia { border-left: 4px solid var(--acento); background: #fffaf0; }
.sugerencias-ia ul { margin: 0; padding-left: 1.1rem; }
.sugerencias-ia li { margin: .35rem 0; }
.sugerencias-ia li.usada { opacity: .5; text-decoration: line-through; }
.bienvenida .num { display: inline-flex; width: 26px; height: 26px; border-radius: 50%; background: var(--primario); color: #fff; align-items: center; justify-content: center; font-size: .85rem; margin-right: .4rem; }

/* ---------- Cinturón de aplicaciones (acceso único con list) ---------- */
.kh-cinturon { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; margin-left: 1rem; }
.kh-cinturon .kh-app { display: inline-flex; align-items: center; gap: 6px; padding: 4px 9px 4px 5px; border-radius: 8px; text-decoration: none; color: #fff; font-size: .82rem; font-weight: 600; opacity: .85; border: 1px solid transparent; }
.kh-cinturon .kh-app:hover { opacity: 1; background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.25); }
.kh-cinturon .kh-app.actual { opacity: 1; background: #fff; color: var(--primario); cursor: default; }
.kh-cinturon .kh-app i { font-style: normal; width: 22px; height: 22px; border-radius: 6px; display: inline-grid; place-items: center; font-size: .7rem; font-weight: 800; background: rgba(255,255,255,.2); }
.kh-cinturon .kh-app.actual i { background: var(--primario-claro); color: var(--primario); }
@media (max-width: 860px) { .kh-cinturon .kh-app span { display: none; } .kh-cinturon { margin-left: .4rem; } }

/* ---------- Centro de Mando · Mi trabajo ---------- */
.apuntar { border-left: 4px solid var(--primario); }
.apuntar-form { display: flex; gap: .6rem; flex-wrap: wrap; }
.apuntar-form input[type=text] { flex: 1; min-width: 260px; font-size: 1.05rem; padding: .65rem .8rem; }
.bandeja-filtros { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin: 1rem 0 .5rem; }
.bandeja-filtros .chip { text-decoration: none; font-size: .85rem; }
.bandeja-filtros .chip b { font-weight: 700; }
.bandeja-filtros .separador-chips { width: 1px; height: 22px; background: var(--borde); margin: 0 .35rem; }
.chip-select { font: inherit; font-size: .85rem; padding: .35rem .6rem; border-radius: 999px; border: 1px solid var(--borde); background: #fff; }
.chip.origen-abc { border-color: #0b5670; } .chip.origen-list { border-color: #1f3a5f; }
.chip.origen-leads { border-color: #1e9e4a; } .chip.origen-comite { border-color: var(--acento); }
.cinta-recordatorio { display: flex; flex-wrap: wrap; gap: 1rem; background: var(--primario-claro); border-radius: var(--radio); padding: .55rem .9rem; font-size: .9rem; margin: 0 0 1rem; }
.cinta-recordatorio a { color: var(--primario); }
.grupo-bandeja { margin-bottom: 1.4rem; }
.grupo-bandeja h2 { font-size: 1rem; text-transform: uppercase; letter-spacing: .06em; color: var(--texto-suave); margin-bottom: .4rem; }
.grupo-hoy h2 { color: var(--rojo); }
.bandeja { list-style: none; margin: 0; padding: 0; background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio); overflow: hidden; }
.fila-bandeja { display: grid; grid-template-columns: auto 1fr auto; gap: .75rem; align-items: center; padding: .7rem .9rem; border-bottom: 1px solid var(--borde); }
.fila-bandeja:last-child { border-bottom: 0; }
.fila-bandeja:hover { background: #fafbfd; }
.fila-bandeja.vencida { background: #fff7f5; }
.fila-bandeja.sin-leer { box-shadow: inset 3px 0 0 var(--azul); }
.fila-bandeja .cuerpo a { text-decoration: none; }
.fila-bandeja .cuerpo a:hover { text-decoration: underline; }
.fila-bandeja .meta { display: flex; flex-wrap: wrap; gap: .5rem; font-size: .8rem; color: var(--texto-suave); margin-top: .2rem; align-items: center; }
.fila-bandeja .meta .tienda { color: var(--primario); }
.etiqueta-clase { font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: .2rem .5rem; border-radius: 999px; white-space: nowrap; }
.c-tarea { background: #e2f0e8; color: #14663f; } .c-aviso { background: #e4eefa; color: #2563a8; }
.c-accion { background: #fbeed8; color: #b06a10; } .c-idea { background: #f7f2d8; color: #8a7a1f; }
.origen { font-size: .72rem; padding: .1rem .45rem; border-radius: 4px; background: var(--primario-claro); color: var(--primario); font-weight: 600; }
.origen-abc { background: #dff2f9; color: #0b5670; } .origen-list { background: #e6edf7; color: #1f3a5f; }
.origen-leads { background: #e4f5ea; color: #146b32; } .origen-comite { background: #fff4e2; color: #8a5a12; }
.acciones-fila { display: flex; gap: .35rem; flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 860px) { .fila-bandeja { grid-template-columns: auto 1fr; } .acciones-fila { grid-column: 1 / -1; justify-content: flex-start; } }


/* Banda de modo pruebas: tiene que verse sin gritar, y en todas las pantallas */
.banda-pruebas {
  background: #fff4d6;
  border: 1px solid #e0b400;
  border-left: 5px solid #e0b400;
  border-radius: 8px;
  padding: 12px 16px;
  margin: 0 0 20px;
  color: #5a4500;
  font-size: .94rem;
  line-height: 1.5;
}
.banda-pruebas strong { color: #7a5c00; }

/* Checks de avisos: legibles de un vistazo, agrupados por familia */
.avisos-grupo { border: 1px solid var(--borde, #dcdcdc); border-radius: 10px; padding: 14px 16px 10px; margin: 0 0 16px; }
.avisos-grupo legend { font-weight: 600; padding: 0 6px; }
.avisos-grupo-texto { margin: 0 0 10px; }
.avisos-lista { display: grid; gap: 8px; }
.aviso-check { display: flex; gap: 10px; align-items: flex-start; padding: 7px 9px; border-radius: 8px; cursor: pointer; }
.aviso-check:hover { background: rgba(0, 0, 0, .035); }
.aviso-check input { margin-top: 3px; flex: 0 0 auto; }
.aviso-check span { display: block; }
.aviso-check strong { display: inline; font-weight: 600; }
.aviso-check small { display: block; color: #666; font-size: .86rem; line-height: 1.35; margin-top: 1px; }
.aviso-etiqueta { display: inline-block; margin-left: 7px; padding: 1px 7px; border-radius: 999px;
  background: #fff4d6; color: #7a5c00; font-size: .74rem; font-style: normal; vertical-align: 1px; }
.avisos-atajos { margin-top: 8px; display: flex; gap: 14px; }
.enlace-boton { background: none; border: 0; padding: 0; color: var(--enlace, #1a5fb4); cursor: pointer; font-size: .86rem; text-decoration: underline; }

/* Cartero: resumen y rastro */
.resumen-cartero { margin-bottom: 16px; }
.resumen-cartero .dato { text-align: center; padding: 14px 10px; }
.resumen-cartero .dato-num { display: block; font-size: 1.8rem; font-weight: 700; line-height: 1.1; }
.resumen-cartero .dato-txt { display: block; font-size: .84rem; color: #666; margin-top: 4px; }
.resumen-cartero .dato-alerta { border-color: #e0b400; background: #fff4d6; }
.filtros.en-linea { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 0 0 14px; }
.filtros.en-linea input[type=search] { min-width: 260px; }
.etiqueta-verde { background: #e3f5e8; color: #1e6b3a; }
.etiqueta-rojo  { background: #fde8e8; color: #9b1c1c; }
.etiqueta-ambar { background: #fff4d6; color: #7a5c00; }
.tabla-compacta td, .tabla-compacta th { font-size: .88rem; padding: 6px 8px; vertical-align: top; }

/* Horario: registro de jornada */
.chip.origen-horario { border-color: #6a4c93; }
.origen-horario { background: #ede7f6; color: #4a2f75; }

/* =====================================================================
   REDISEÑO v2 · estructura, menú e identidad visual (2026-09-10)
   ===================================================================== */
:root {
  --fondo: #f4f6f9;
  --borde: #e3e7ee;
  --radio: 12px;
  --sombra: 0 1px 2px rgba(20, 30, 50, .05), 0 6px 20px rgba(20, 30, 50, .06);
  --menu-ancho: 236px;
  --barra-alto: 60px;
  --barra-inferior: 64px;
}
html { font-size: 16px; }
body { -webkit-font-smoothing: antialiased; }
h1.titulo-pagina { font-size: 1.6rem; font-weight: 700; letter-spacing: -.01em; margin-bottom: .25rem; }
.subtitulo-pagina { margin: 0; color: var(--texto-suave); }
.cabecera-pagina { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; flex-wrap: wrap; }
.cabecera-acciones { display: flex; gap: .5rem; flex-wrap: wrap; }
.ico { flex: 0 0 auto; }

/* Barra superior */
.barra-superior { height: var(--barra-alto); padding: 0 1.25rem; gap: 1.25rem; background: linear-gradient(90deg, #16294a, #1f3a5f); }
a.marca { text-decoration: none; color: #fff; }
.boton-menu { display: none; padding: .4rem; border-radius: 8px; }
.boton-menu:hover { background: rgba(255,255,255,.12); }
.campana { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; color: #fff; text-decoration: none; }
.campana:hover { background: rgba(255,255,255,.12); }
.campana-num { position: absolute; top: 2px; right: 0; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--rojo); color: #fff; font-size: .7rem; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.cuenta { position: relative; }
.cuenta-boton { display: flex; align-items: center; gap: .6rem; background: rgba(255,255,255,.08); border: 0; border-radius: 999px; padding: .25rem .8rem .25rem .25rem; color: #fff; cursor: pointer; font: inherit; }
.cuenta-boton:hover { background: rgba(255,255,255,.16); }
.avatar { width: 32px; height: 32px; border-radius: 50%; background: var(--acento); color: #fff; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.cuenta-nombre { font-weight: 600; }
.cuenta-menu { position: absolute; right: 0; top: calc(100% + 8px); min-width: 250px; background: #fff; color: var(--texto); border-radius: 12px; box-shadow: 0 12px 32px rgba(20,30,50,.18); padding: .4rem; z-index: 40; }
.cuenta-cab { padding: .6rem .8rem .7rem; border-bottom: 1px solid var(--borde); margin-bottom: .3rem; display: flex; flex-direction: column; }
.cuenta-cab small { color: var(--texto-suave); }
.cuenta-menu a { display: flex; align-items: center; gap: .6rem; padding: .55rem .8rem; border-radius: 8px; color: var(--texto); text-decoration: none; }
.cuenta-menu a:hover { background: var(--primario-claro); color: var(--primario); }

/* Menú lateral */
.menu-lateral { background: #fff; color: var(--texto); border-right: 1px solid var(--borde); padding: 1rem .75rem; }
.menu-lateral a { display: flex; align-items: center; gap: .7rem; padding: .65rem .85rem; margin: 2px 0; border-radius: 10px; border-left: 0; color: #2b3644; font-weight: 500; }
.menu-lateral a:hover { background: var(--fondo); color: var(--primario); }
.menu-lateral a.activo { background: var(--primario-claro); color: var(--primario); font-weight: 700; border-left: 0; }
.menu-lateral .ico { color: currentColor; opacity: .85; }
.menu-separador { padding: .9rem .85rem .3rem; font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--texto-suave); }
.menu-separador:empty { padding: .45rem 0; border-top: 1px solid var(--borde); margin: .4rem .5rem 0; }
.menu-pie { color: var(--texto-suave); opacity: 1; font-size: .8rem; }

/* Barra inferior (móvil) */
.barra-inferior { display: none; }

/* Puertas de Dirección */
.rejilla-puertas { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; }
.puerta { display: flex; gap: 1rem; align-items: flex-start; background: #fff; border: 1px solid var(--borde); border-radius: var(--radio); padding: 1.1rem 1.15rem; text-decoration: none; color: var(--texto); box-shadow: var(--sombra); transition: transform .12s, box-shadow .12s; }
.puerta:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(20,30,50,.12); }
.puerta-icono { width: 44px; height: 44px; border-radius: 12px; background: var(--primario-claro); color: var(--primario); display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.puerta-icono .ico { width: 24px; height: 24px; }
.puerta-cuerpo { display: flex; flex-direction: column; gap: .25rem; min-width: 0; }
.puerta-cuerpo strong { font-size: 1.05rem; }
.puerta-texto { color: var(--texto-suave); font-size: .92rem; line-height: 1.4; }
.puerta-dato { margin-top: .35rem; font-size: .85rem; font-weight: 600; color: var(--primario); }
.puerta-alerta .puerta-icono { background: #fff1c2; color: #7a5c00; }
.puerta-alerta .puerta-dato { color: #7a5c00; }

/* Tarjetas y tablas: aire y bordes suaves */
.tarjeta { border-radius: var(--radio); padding: 1.35rem; }
.tarjeta h2 { font-size: 1.05rem; margin-bottom: .75rem; }
.tabla-envoltorio { border-radius: var(--radio); }
.tabla thead th { background: #f8fafc; text-transform: none; letter-spacing: 0; font-size: .8rem; }
.boton { border-radius: 10px; padding: .6rem 1.05rem; }
.boton-pequeno { padding: .35rem .7rem; border-radius: 8px; }
input[type=text], input[type=email], input[type=password], input[type=number], input[type=date], input[type=datetime-local], input[type=time], select, textarea { border-radius: 10px; padding: .65rem .8rem; }
.pestanas { display: flex; gap: .25rem; border-bottom: 1px solid var(--borde); margin-bottom: 1.25rem; overflow-x: auto; }
.pestanas a { padding: .6rem .9rem; border-radius: 10px 10px 0 0; text-decoration: none; color: var(--texto-suave); font-weight: 600; white-space: nowrap; border-bottom: 3px solid transparent; }
.pestanas a.activa { color: var(--primario); border-bottom-color: var(--primario); }

/* Resumen en fila (Correo y otros) */
.rejilla-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.resumen-cartero .dato { display: flex; flex-direction: column; align-items: flex-start; text-align: left; padding: 1rem 1.15rem; }
.resumen-cartero .dato-num { font-size: 1.9rem; }
.resumen-cartero .dato-txt { margin-top: .1rem; }

/* Móvil y tabletas */
@media (max-width: 960px) {
  .boton-menu { display: inline-flex; }
  .menu-lateral { transform: translateX(-100%); transition: transform .2s; width: min(84vw, 320px); box-shadow: none; }
  body.menu-abierto .menu-lateral { transform: none; box-shadow: 8px 0 32px rgba(0,0,0,.25); }
  .contenido, .pie { margin-left: 0; }
  .contenido { padding: calc(var(--barra-alto) + 1rem) 1rem calc(var(--barra-inferior) + 1.5rem); }
  .cuenta-nombre { display: none; }
  .cuenta-boton { padding: .2rem; }
  .barra-superior { gap: .6rem; padding: 0 .75rem; }
  .marca span { display: none; }
  .barra-inferior { display: grid; grid-template-columns: repeat(4, 1fr); position: fixed; left: 0; right: 0; bottom: 0; height: var(--barra-inferior); background: #fff; border-top: 1px solid var(--borde); z-index: 25; padding-bottom: env(safe-area-inset-bottom); }
  .barra-inferior a, .barra-inferior button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; font: inherit; font-size: .72rem; font-weight: 600; color: var(--texto-suave); text-decoration: none; background: none; border: 0; }
  .barra-inferior a.activo { color: var(--primario); }
  .rejilla-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fila-campos, .fila-campos-3, .fila-campos-4, .rejilla-2, .rejilla-lateral { grid-template-columns: 1fr; }
  h1.titulo-pagina { font-size: 1.35rem; }
  .pie { display: none; }
}
@media (max-width: 480px) {
  .rejilla-4 { grid-template-columns: 1fr 1fr; gap: .6rem; }
  .resumen-cartero .dato-num { font-size: 1.5rem; }
  .tarjeta { padding: 1rem; }
}

/* Ajustes en llano */
.ajustes-lista { display: grid; gap: .5rem; }
.ajuste { display: grid; grid-template-columns: 1fr 200px; gap: 1rem; align-items: center; padding: .7rem .9rem; border: 1px solid var(--borde); border-radius: 10px; background: #fff; }
.ajuste-texto { display: flex; flex-direction: column; }
.ajuste-texto small { color: var(--texto-suave); font-family: ui-monospace, Consolas, monospace; font-size: .74rem; }
@media (max-width: 640px) { .ajuste { grid-template-columns: 1fr; } }

/* Mi cuenta: ritmo del correo como opciones grandes */
.ritmo-opciones { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: .6rem; }
.ritmo-opcion { display: flex; gap: .6rem; align-items: center; padding: .75rem .9rem; border: 1px solid var(--borde); border-radius: 10px; cursor: pointer; font-weight: 500; }
.ritmo-opcion.activa { border-color: var(--primario); background: var(--primario-claro); }
.subtitulo-bloque { margin: 1.25rem 0 .5rem; font-size: 1rem; color: var(--primario); }

/* Correo: identificador discreto */
.tabla-correo .uid { background: none; padding: 0; color: var(--texto-suave); font-size: .78rem; }
.tabla-correo td { vertical-align: top; }

/* Comité (quien preside): los tres por fecha */
.comites-fila { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1rem; margin-bottom: 1.25rem; }
.comite-tarjeta { display: flex; flex-direction: column; gap: .9rem; border-top: 4px solid var(--borde); }
.comite-urgente { border-top-color: var(--acento); }
.comite-cab { display: flex; justify-content: space-between; gap: .75rem; align-items: flex-start; flex-wrap: wrap; }
.comite-cab h2 { margin-bottom: .25rem; }
.comite-fecha { display: flex; gap: .4rem; align-items: center; flex-wrap: wrap; margin-bottom: .2rem; }
.barra-progreso { height: 8px; background: #edf0f4; border-radius: 999px; overflow: hidden; margin-bottom: .4rem; }
.barra-progreso span { display: block; height: 100%; background: var(--verde); border-radius: 999px; transition: width .3s; }
.comite-fichas-texto { font-size: .95rem; }
.comite-faltan { margin-top: .4rem; font-size: .9rem; color: var(--texto-suave); display: flex; gap: .3rem; flex-wrap: wrap; align-items: center; }
.chip-persona { display: inline-block; padding: .15rem .6rem; border-radius: 999px; background: #edf0f4; font-size: .82rem; color: #2b3644; }
.chip-ok { background: #e2f5e8; color: #146a31; }
.chip-falta { background: #fff1c2; color: #6b4d00; }
.comite-toca { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .35rem; }
.comite-toca li { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .5rem .7rem; border-radius: 8px; background: var(--fondo); font-weight: 500; }
.comite-toca li.grado-alta { background: #fde8e8; color: #8a1f14; }
.comite-toca li.grado-media { background: #fff4d6; color: #6b4d00; }
.comite-toca li a { color: inherit; text-decoration: none; flex: 1; }
.comite-toca li a:hover { text-decoration: underline; }
.comite-nada { margin: 0; color: var(--verde); font-weight: 600; }
.comite-ia-form { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: auto; }
.comite-briefing { margin-bottom: 1.25rem; border-left: 4px solid var(--acento); }
.briefing-texto h4 { margin: .9rem 0 .3rem; font-size: 1rem; color: var(--primario); }
.briefing-texto ul { margin: .2rem 0 .6rem 1.2rem; padding: 0; }
.briefing-texto p { margin: .3rem 0; }
.titulo-seccion { font-size: 1.15rem; margin: 1.5rem 0 .75rem; }
.comites-detalle { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1rem; }
.lista-fichas { list-style: none; margin: 0; padding: 0; }
.lista-fichas li { padding: .55rem 0; border-bottom: 1px solid var(--borde); display: flex; flex-direction: column; gap: .25rem; }
.lista-fichas li:last-child { border-bottom: 0; }
.lista-fichas a { text-decoration: none; }
.lista-fichas-meta { display: flex; gap: .4rem; align-items: center; flex-wrap: wrap; font-size: .85rem; color: var(--texto-suave); }
.comite-titulares { display: flex; gap: .3rem; flex-wrap: wrap; margin: .75rem 0 0; }

/* Nueva acción en cuatro pasos */
.pasos-barra { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: .4rem; margin: 0 0 1rem; padding: 0; }
.pasos-barra li { display: flex; align-items: center; gap: .5rem; padding: .55rem .7rem; border-radius: 10px; background: #fff; border: 1px solid var(--borde); color: var(--texto-suave); font-size: .9rem; }
.pasos-barra li.actual { border-color: var(--primario); color: var(--primario); font-weight: 700; background: var(--primario-claro); }
.pasos-barra li.hecho { color: var(--verde); }
.pasos-num { width: 26px; height: 26px; border-radius: 50%; background: #edf0f4; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; flex: 0 0 auto; }
.pasos-barra li.actual .pasos-num { background: var(--primario); color: #fff; }
.pasos-barra li.hecho .pasos-num { background: #e2f5e8; color: var(--verde); }
.paso-tarjeta { max-width: 760px; }
.paso-pregunta { font-size: 1.35rem; margin-bottom: .2rem; }
.opciones-chip { display: flex; flex-wrap: wrap; gap: .4rem; }
.opciones-chip-scroll { max-height: 150px; overflow-y: auto; padding: .2rem; }
.chip-opcion { display: inline-flex; align-items: center; gap: .35rem; padding: .4rem .8rem; border-radius: 999px; border: 1px solid var(--borde); background: #fff; cursor: pointer; font-size: .9rem; }
.chip-opcion input { position: absolute; opacity: 0; width: 0; height: 0; }
.chip-opcion.activa { border-color: var(--primario); background: var(--primario-claro); color: var(--primario); font-weight: 600; }
.paso-ia { display: flex; gap: .5rem; align-items: center; margin-top: 1.25rem; padding: .75rem; border-radius: 10px; background: #fff8e6; border: 1px dashed #e0b400; flex-wrap: wrap; }
.paso-ia input { flex: 1; min-width: 200px; }
.paso-acciones { justify-content: space-between; }
.resumen-accion { margin-top: 1.25rem; padding: 1rem; border-radius: 10px; background: var(--fondo); }
.resumen-accion h3 { margin: 0 0 .5rem; font-size: 1rem; }
.resumen-accion dl { margin: 0; display: grid; grid-template-columns: 90px 1fr; gap: .35rem .75rem; }
.resumen-accion dt { color: var(--texto-suave); font-size: .85rem; }
.resumen-accion dd { margin: 0; }
@media (max-width: 640px) { .pasos-barra { grid-template-columns: repeat(2, 1fr); } .pasos-txt { font-size: .82rem; } .fila-campos-4 { grid-template-columns: 1fr 1fr; } }

/* Mi trabajo: dos bloques */
.apuntar { padding: .9rem 1.1rem; margin-bottom: .9rem; }
.apuntar-form { display: flex; gap: .5rem; }
.apuntar-form input { flex: 1; }
.cinta-recordatorio { display: flex; gap: .6rem 1.2rem; flex-wrap: wrap; align-items: center; margin: 0 0 1.1rem; font-size: .92rem; color: var(--texto-suave); }
.cinta-recordatorio a { color: var(--primario); text-decoration: none; }
.bandeja-dos { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 1.25rem; align-items: start; }
.bloque-bandeja h2 { display: flex; align-items: center; gap: .6rem; font-size: 1.15rem; margin-bottom: .6rem; }
.bloque-bandeja h2 small { font-weight: 500; color: var(--texto-suave); }
.bloque-bandeja h2 .enlace-boton { margin-left: auto; font-size: .82rem; }
.bandeja { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.fila-bandeja { display: grid; grid-template-columns: 1fr auto; gap: .6rem 1rem; align-items: center; background: #fff; border: 1px solid var(--borde); border-radius: 12px; padding: .8rem 1rem; box-shadow: var(--sombra); }
.fila-bandeja .cuerpo a { text-decoration: none; }
.fila-bandeja .meta { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; margin-top: .3rem; font-size: .82rem; color: var(--texto-suave); }
.fila-bandeja.vencida { border-color: #f5c2bc; }
.acciones-fila { display: flex; gap: .4rem; flex-wrap: wrap; justify-content: flex-end; }
.grupo-avisos { padding: .9rem 1rem; margin-bottom: .7rem; }
.grupo-avisos-cab { display: flex; align-items: center; gap: .6rem; margin-bottom: .6rem; }
.grupo-avisos-cab .enlace-boton { margin-left: auto; font-size: .8rem; }
.bandeja-avisos .fila-bandeja { box-shadow: none; padding: .55rem .7rem; border-radius: 8px; }
.bandeja-avisos .fila-bandeja.sin-leer { border-left: 3px solid var(--azul); }
.grupo-avisos-mas { display: inline-block; margin-top: .5rem; font-size: .85rem; }
.bloque-ideas { margin-top: 1.25rem; }
.lista-ideas { list-style: none; margin: 0; padding: 0; }
.lista-ideas li { padding: .4rem 0; border-bottom: 1px dashed var(--borde); }
@media (max-width: 960px) { .bandeja-dos { grid-template-columns: 1fr; } .fila-bandeja { grid-template-columns: 1fr; } .acciones-fila { justify-content: flex-start; } }

/* ---------- Mi trabajo · cuatro cajas (señales, decidir, saber) ---------- */
.caja-decidir { margin-bottom: 1.25rem; }
.caja-decidir h2 { color: var(--primario); }
.fila-bandeja.fila-decidir { border-left: 4px solid var(--primario); }
.fila-bandeja.clase-senal { border-left: 4px solid #d9a441; }
.fila-bandeja.clase-senal.senal-alta { border-left-color: var(--rojo); background: #fffaf8; }
.fila-bandeja.clase-senal.sin-leer { box-shadow: var(--sombra); }
.acciones-senal { gap: .3rem; }
.acciones-senal .boton-pequeno { padding: .3rem .6rem; }
.boton-suave { background: transparent; border: 1px solid var(--borde); color: var(--texto-suave); }
.boton-suave:hover { border-color: var(--rojo); color: var(--rojo); background: #fff5f3; }
.senales-menores { padding: .7rem 1rem; margin-top: .7rem; }
.senales-menores summary, .grupo-avisos summary { cursor: pointer; list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; }
.senales-menores summary::-webkit-details-marker, .grupo-avisos summary::-webkit-details-marker { display: none; }
.senales-menores summary::before, .grupo-avisos summary::before { content: '▸'; color: var(--texto-suave); font-size: .9rem; }
.senales-menores[open] summary::before, .grupo-avisos[open] summary::before { content: '▾'; }
.senales-menores[open] summary, .grupo-avisos[open] summary { margin-bottom: .6rem; }
.caja-saber { margin-top: 1.25rem; }
.caja-saber h2 { color: var(--texto-suave); }
.saber-rejilla { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: .7rem; align-items: start; }
.grupo-avisos { margin-bottom: 0; }
.grupo-avisos-cab { margin-bottom: 0; }
.grupo-avisos-ultimo { flex-basis: 100%; color: var(--texto-suave); font-size: .82rem; padding-left: 1.2rem; }
.grupo-avisos[open] .grupo-avisos-ultimo { display: none; }
.grupo-avisos-acciones { margin: 0 0 .5rem; font-size: .82rem; }
.pop-senal { width: 380px; }
.pop-senal .campo label { display: block; font-size: .8rem; color: var(--texto-suave); margin-bottom: .2rem; }
.pop-senal .campo input, .pop-senal .campo select, .pop-senal .campo textarea { width: 100%; font: inherit; font-size: .9rem; padding: .4rem .5rem; border: 1px solid var(--borde); border-radius: 6px; }
.pop-senal .pop-titulo { margin: 0 0 .5rem; font-weight: 600; }
@media (max-width: 960px) { .saber-rejilla { grid-template-columns: 1fr; } .pop-senal { width: calc(100vw - 2rem); } }

/* ---------- Casillas de avisos: elegir por familia, y el detalle plegado ---------- */
.avisos-modo { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin: 0 0 .6rem; }
.avisos-modo .chip { cursor: pointer; }
.avisos-modo .chip.activo { background: var(--primario); color: #fff; border-color: var(--primario); }
.avisos-modo .avisos-estado { margin-left: auto; font-size: .82rem; color: var(--texto-suave); }
.avisos-detalle summary { cursor: pointer; font-size: .85rem; color: var(--primario); margin-bottom: .4rem; }

/* ---------- Mi cuenta: ficha y guía ---------- */
.lista-funciones { list-style: none; margin: 0 0 .8rem; padding: 0; display: flex; flex-direction: column; gap: .35rem; }
.lista-funciones li { display: flex; justify-content: space-between; align-items: flex-start; gap: .8rem; padding: .5rem .7rem; background: #fafbfd; border: 1px solid var(--borde); border-radius: 8px; }
.lista-funciones li .enlace-boton { white-space: nowrap; font-size: .8rem; }
.propuestas-ia { border-left: 4px solid var(--primario); margin-top: 1rem; }
.lista-funciones-lectura { margin: .2rem 0 0; }
.guia-resumen { font-size: 1.05rem; line-height: 1.5; margin: .4rem 0 1rem; }
.guia-mejoras { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .6rem; }
.guia-mejoras li { padding: .7rem .9rem; border: 1px solid var(--borde); border-left: 4px solid #d9a441; border-radius: 8px; background: #fff; }
.guia-bien li { padding: .3rem 0; }

/* ---------- Dirección › Avisos ---------- */
.avisos-leyenda { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin: .2rem 0 1rem; }
.etiqueta-canal { cursor: help; }
.canal-ahora .etiqueta-canal, .etiqueta-canal.canal-ahora { background: #fde3df; color: #8a1f14; }
.etiqueta-canal.canal-centro { background: #e3edfb; color: #1b4d97; }
.etiqueta-canal.canal-agrupado { background: #e2f5e8; color: #146a31; }
.etiqueta-canal.canal-peticion { background: #fff1c2; color: #6b4d00; }
.bloque-canal { margin-bottom: 1rem; border-left: 4px solid var(--borde); }
.bloque-canal.canal-ahora { border-left-color: #c0392b; }
.bloque-canal.canal-centro { border-left-color: #1b4d97; }
.bloque-canal.canal-agrupado { border-left-color: #146a31; }
.bloque-canal.canal-peticion { border-left-color: #d9a441; }
.tabla-avisos td { vertical-align: top; }
.tabla-avisos code { font-size: .85rem; background: #eef2f7; padding: .1rem .35rem; border-radius: 4px; }
.tabla-avisos .clave-tecnica { color: #98a2ad; font-size: .72rem; }
.tabla-avisos tr.fila-apagada td { opacity: .6; }
.tabla-avisos tr.fila-apagada td:last-child { opacity: 1; }
.texto-rojo { color: var(--rojo); }
.clave-tecnica { color: #98a2ad; font-size: .75rem; }
.bloque-propuestas { border-left: 4px solid var(--rojo); margin-bottom: 1rem; }
.cartero-pista { margin: 0 0 1rem; }

/* ---------- Dirección › Avisos · lista corta al estilo de list ---------- */
.lista-avisos-caja { padding: 1rem 1.1rem; }
.barra-filtros { display: flex; flex-direction: column; gap: .45rem; margin-bottom: .6rem; }
.barra-filtros .chips { gap: .3rem; }
.barra-filtros .chip { cursor: pointer; font-size: .82rem; padding: .28rem .65rem; }
.barra-filtros .chip small { opacity: .7; margin-left: .2rem; }
.barra-filtros .chip.activo { background: var(--primario); color: #fff; border-color: var(--primario); }
.barra-filtros .chip.activo small { opacity: .85; }
.chip-canal.canal-ahora:not(.activo) { border-color: #f5c2bc; }
.chip-canal.canal-centro:not(.activo) { border-color: #b9cdf0; }
.chip-canal.canal-agrupado:not(.activo) { border-color: #b7e2c3; }
.chip-canal.canal-peticion:not(.activo) { border-color: #f1dc9a; }
.buscador { width: 100%; max-width: 380px; font: inherit; font-size: .9rem; padding: .45rem .7rem; border: 1px solid var(--borde); border-radius: 999px; }
.lista-avisos-ayuda { margin: 0 0 .5rem; }
.lista-avisos { display: flex; flex-direction: column; gap: .3rem; }
.aviso-fila { border: 1px solid var(--borde); border-radius: 10px; background: #fff; }
.aviso-fila.apagada { background: #fafafa; }
.aviso-fila.apagada .aviso-nombre, .aviso-fila.apagada .aviso-codigo { opacity: .55; }
.aviso-fila > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto auto; gap: .6rem; align-items: center; padding: .5rem .8rem; }
.aviso-fila > summary::-webkit-details-marker { display: none; }
.aviso-fila[open] > summary { border-bottom: 1px solid var(--borde); }
.aviso-codigo { font-size: .78rem; background: #eef2f7; padding: .1rem .4rem; border-radius: 4px; color: #4b5563; }
.aviso-nombre { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aviso-tags { display: flex; flex-wrap: wrap; gap: .3rem; justify-content: flex-end; }
.aviso-tags .etiqueta, .aviso-tags .origen { font-size: .72rem; }
.aviso-uso { font-size: .82rem; color: var(--texto-suave); white-space: nowrap; min-width: 6.5rem; text-align: right; }
.aviso-detalle { padding: .6rem .9rem .7rem 3.4rem; }
.aviso-detalle p { margin: 0 0 .35rem; }
.switch { position: relative; display: inline-block; width: 38px; height: 22px; border-radius: 999px; background: #cfd6de; border: 0; cursor: pointer; padding: 0; vertical-align: middle; transition: background .15s; }
.switch span { position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.25); transition: left .15s; }
.switch.on { background: #2f9e5b; }
.switch.on span { left: 19px; }
.switch-fijo { background: #b9cdf0; cursor: default; }
.switch-fijo span { left: 19px; }
.propuesta-fila { border: 1px solid var(--borde); border-radius: 10px; padding: .5rem .8rem; margin-bottom: .4rem; background: #fff; }
.propuesta-fila > summary { cursor: pointer; }
.chips-opciones .chip { cursor: pointer; }
.chips-opciones .chip input { margin-right: .3rem; }
@media (max-width: 860px) {
  .aviso-fila > summary { grid-template-columns: auto auto minmax(0, 1fr); }
  .aviso-tags { grid-column: 2 / -1; justify-content: flex-start; }
  .aviso-uso { grid-column: 2 / -1; text-align: left; }
  .aviso-nombre { white-space: normal; }
  .aviso-detalle { padding-left: .9rem; }
}

/* ---------- Dirección › Avisos · rejilla de casillas ---------- */
.barra-quien { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.2rem; margin: 0 0 .8rem; }
.barra-quien select { font: inherit; font-size: .92rem; padding: .35rem .5rem; border: 1px solid var(--borde); border-radius: 8px; background: #fff; min-width: 260px; }
.barra-quien label { margin-right: .3rem; }
.leyenda-canales { font-size: .78rem; color: var(--texto-suave); display: inline-flex; align-items: center; flex-wrap: wrap; gap: .15rem; }
.punto-canal { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #cfd6de; flex: 0 0 auto; }
.punto-canal.canal-ahora { background: #c0392b; }
.punto-canal.canal-centro { background: #1b4d97; }
.punto-canal.canal-agrupado { background: #2f9e5b; }
.punto-canal.canal-peticion { background: #d9a441; }
.punto-fijo, .punto-canal.es-fijo { box-shadow: 0 0 0 2px #fff, 0 0 0 3px #1b4d97; }
.punto-fijo { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #fff; }
.rejilla-avisos-form { background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio); padding: .8rem 1rem 1rem; }
.rejilla-cab { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; margin-bottom: .7rem; }
.rejilla-cab .texto-ayuda { flex: 1 1 320px; }
.rejilla-cab .boton { margin-left: auto; }
.rejilla-avisos { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: .7rem; align-items: start; }
.columna-avisos { border: 1px solid var(--borde); border-radius: 8px; padding: .3rem .6rem .5rem; margin: 0; background: #fff; }
.columna-avisos legend { font-weight: 700; font-size: .9rem; padding: 0 .3rem; display: flex; align-items: center; gap: .4rem; }
.columna-avisos legend small { font-weight: 400; color: var(--texto-suave); }
.todos-ninguno { font-weight: 400; font-size: .78rem; margin-left: .4rem; }
.todos-ninguno .enlace-boton { font-size: .78rem; }
.casilla-aviso { display: flex; align-items: center; gap: .4rem; padding: .18rem .3rem; border-radius: 6px; font-size: .86rem; cursor: pointer; line-height: 1.25; }
.casilla-aviso:hover { background: #f3f6fa; }
.casilla-aviso input { margin: 0; flex: 0 0 auto; }
.casilla-aviso code { font-size: .72rem; color: #6b7480; background: #eef2f7; padding: 0 .3rem; border-radius: 3px; flex: 0 0 auto; }
.casilla-nombre { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.casilla-aviso.bloqueada { cursor: default; }
.casilla-aviso.bloqueada .casilla-nombre { color: var(--texto-suave); }
.casilla-aviso.apagada-casa .casilla-nombre { text-decoration: line-through; color: #98a2ad; }
.casilla-aviso small { font-size: .7rem; flex: 0 0 auto; }
.retirar-mini { margin-left: auto; color: #98a2ad; text-decoration: none; font-size: .9rem; }
.retirar-mini:hover { color: var(--rojo); }
.propuesta-compacta { padding: .5rem 0; border-top: 1px solid var(--borde); }
.propuesta-linea { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .7rem; margin: .25rem 0; font-size: .85rem; }
.propuesta-nombre { flex: 1 1 220px; font: inherit; font-size: .9rem; padding: .3rem .5rem; border: 1px solid var(--borde); border-radius: 6px; }
.propuesta-cuando { flex: 2 1 320px; font: inherit; font-size: .85rem; padding: .3rem .5rem; border: 1px solid var(--borde); border-radius: 6px; color: var(--texto-suave); }
.propuesta-nota { flex: 1 1 200px; font: inherit; font-size: .82rem; padding: .25rem .5rem; border: 1px solid var(--borde); border-radius: 6px; }
.bloque-propuestas summary { cursor: pointer; }
@media (max-width: 700px) { .rejilla-avisos { grid-template-columns: 1fr; } .casilla-nombre { white-space: normal; } }

/* =====================================================================
   REDISEÑO v3 · COMPACTO (2026-09-12, pedido por César)
   Reglas (kh-comites/docs/diseno.md): letra 13.5 px, alturas cortas, cajas con poco relleno, campos del ancho
   de lo que contienen, todo agrupado en pestañas y subpestañas, menú lateral plegable, «volver» siempre a mano.
   Este bloque va al final y manda sobre lo anterior.
   ===================================================================== */
:root {
  --radio: 6px;
  --sombra: 0 1px 2px rgba(20, 30, 50, .06);
  --menu-ancho: 200px;
  --menu-plegado: 52px;
  --barra-alto: 44px;
  --barra-inferior: 52px;
}
html { font-size: 13.5px; }
body { line-height: 1.35; }
h1.titulo-pagina { font-size: 1.25rem; margin-bottom: .1rem; }
.subtitulo-pagina { font-size: .88rem; }
.cabecera-pagina { margin-bottom: .7rem; gap: .6rem; align-items: center; }
.cabecera-pagina > div:first-child { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .8rem; }
.volver { font-size: .82rem; color: var(--texto-suave); text-decoration: none; white-space: nowrap; }
.volver:hover { color: var(--primario); text-decoration: underline; }
h2 { font-size: .98rem; margin-bottom: .45rem; }
h3 { font-size: .9rem; }
.texto-ayuda { font-size: .82rem; margin: .15rem 0 .35rem; }
small, .texto-pequeno { font-size: .8rem; }
.tarjeta { padding: .8rem .95rem; border-radius: var(--radio); }
.tarjeta h2 { font-size: .98rem; margin-bottom: .5rem; }
.contenido { padding: calc(var(--barra-alto) + .8rem) 1.1rem 1.5rem; }
.rejilla-2, .rejilla-4 { gap: .7rem; }
.rejilla-2 > .tarjeta + .tarjeta, .rejilla-2 > div > .tarjeta + .tarjeta { margin-top: .7rem; }

/* Campos y botones: del tamaño de lo que contienen */
input[type=text], input[type=email], input[type=password], input[type=number], input[type=date], input[type=datetime-local], input[type=time], select, textarea {
  border-radius: 5px; padding: .3rem .5rem; font-size: .9rem; width: auto; max-width: 100%;
}
textarea { width: 100%; }
.campo input[type=text], .campo input[type=email], .campo input[type=password] { width: 100%; }
.campo input[type=number], .campo input[type=date], .campo input[type=time] { width: auto; }
.campo select { width: auto; min-width: 12rem; max-width: 100%; }
.campo label { font-size: .82rem; margin-bottom: .15rem; }
.campo { margin-bottom: .55rem; }
.boton { border-radius: 6px; padding: .35rem .8rem; font-size: .88rem; }
.boton-pequeno { padding: .22rem .55rem; font-size: .8rem; border-radius: 5px; }
.acciones { gap: .4rem; margin-top: .5rem; }
.chip { font-size: .8rem; padding: .22rem .6rem; }
.etiqueta { font-size: .72rem; padding: .1rem .45rem; }
.alerta { padding: .5rem .8rem; margin-bottom: .7rem; font-size: .9rem; }
.tabla th, .tabla td { padding: .35rem .55rem; font-size: .88rem; }
.tabla thead th { font-size: .75rem; }

/* Pestañas y subpestañas: la forma de agrupar todo */
.pestanas { gap: 0; border-bottom: 1px solid var(--borde); margin-bottom: .8rem; }
.pestanas a, .pestanas button { padding: .38rem .7rem; border-radius: 5px 5px 0 0; font-size: .88rem; font-weight: 600; color: var(--texto-suave); background: none; border: 1px solid transparent; border-bottom: 0; cursor: pointer; font-family: inherit; text-decoration: none; white-space: nowrap; margin-bottom: -1px; }
.pestanas a.activa, .pestanas button.activa { color: var(--primario); background: #fff; border-color: var(--borde); border-bottom: 1px solid #fff; }
.pestanas small { font-weight: 400; color: var(--texto-suave); }
.subpestanas { display: flex; flex-wrap: wrap; gap: .2rem; margin: -.4rem 0 .7rem; }
.subpestanas a, .subpestanas button { padding: .2rem .6rem; border-radius: 999px; font-size: .8rem; color: var(--texto-suave); background: #eef2f7; border: 0; cursor: pointer; font-family: inherit; text-decoration: none; }
.subpestanas a.activa, .subpestanas button.activa { background: var(--primario); color: #fff; }
[data-panel][hidden] { display: none !important; }

/* Cuadros de agrupación, como en una pantalla de permisos */
.cuadro { border: 1px solid var(--borde); border-radius: 6px; padding: .35rem .7rem .55rem; margin: 0 0 .6rem; background: #fff; }
.cuadro > legend, .cuadro > .cuadro-titulo { font-weight: 700; font-size: .85rem; padding: 0 .3rem; }

/* Barra superior: más baja, cinturón que no tapa nada */
.barra-superior { height: var(--barra-alto); padding: 0 .8rem; gap: .7rem; }
.marca strong { font-size: .95rem; }
.marca span { font-size: .68rem; }
.kh-cinturon { flex: 1 1 auto; min-width: 0; overflow-x: auto; flex-wrap: nowrap; margin-left: .4rem; scrollbar-width: none; }
.kh-cinturon::-webkit-scrollbar { display: none; }
.kh-cinturon .kh-app { padding: 2px 7px 2px 3px; font-size: .78rem; flex: 0 0 auto; }
.kh-cinturon .kh-app i { width: 18px; height: 18px; font-size: .62rem; border-radius: 5px; }
.usuario-barra { flex: 0 0 auto; gap: .4rem; }
.campana { width: 32px; height: 32px; }
.campana .ico { width: 18px; height: 18px; }
.campana-num { min-width: 16px; height: 16px; font-size: .66rem; top: 0; }
.cuenta-boton { gap: .45rem; padding: .15rem .6rem .15rem .15rem; }
.avatar { width: 26px; height: 26px; font-size: .8rem; }
.cuenta-nombre { font-size: .85rem; }
.boton-plegar { display: none; }
@media (min-width: 961px) {
  .boton-plegar { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border: 0; border-radius: 6px; background: transparent; color: #fff; cursor: pointer; opacity: .8; }
  .boton-plegar:hover { background: rgba(255,255,255,.12); opacity: 1; }
  .boton-plegar .ico { width: 18px; height: 18px; }
}
@media (max-width: 1100px) { .kh-cinturon .kh-app span { display: none; } }

/* Menú lateral: más estrecho, y plegable a iconos */
.menu-lateral { padding: .5rem .45rem; }
.menu-lateral a { padding: .42rem .6rem; gap: .55rem; border-radius: 6px; font-size: .9rem; }
.menu-lateral .ico { width: 18px; height: 18px; }
.menu-separador { padding: .6rem .6rem .2rem; font-size: .66rem; }
.menu-pie { font-size: .72rem; }
html.menu-plegado .menu-lateral { width: var(--menu-plegado); padding: .5rem .35rem; }
html.menu-plegado .menu-lateral a span, html.menu-plegado .menu-separador, html.menu-plegado .menu-pie { display: none; }
html.menu-plegado .menu-lateral a { justify-content: center; padding: .5rem 0; }
html.menu-plegado .menu-lateral a .ico { width: 20px; height: 20px; }
html.menu-plegado .contenido, html.menu-plegado .pie { margin-left: var(--menu-plegado); }
@media (max-width: 960px) { html.menu-plegado .menu-lateral { width: min(84vw, 300px); } html.menu-plegado .menu-lateral a span, html.menu-plegado .menu-separador { display: initial; } html.menu-plegado .menu-lateral a { justify-content: flex-start; padding: .42rem .6rem; } html.menu-plegado .contenido, html.menu-plegado .pie { margin-left: 0; } }

/* Dirección: puertas pequeñas, en más columnas */
.rejilla-puertas { grid-template-columns: repeat(auto-fill, minmax(215px, 1fr)); gap: .55rem; }
.puerta { padding: .6rem .7rem; gap: .6rem; border-radius: 6px; box-shadow: none; }
.puerta:hover { transform: none; box-shadow: var(--sombra); border-color: #c9d2de; }
.puerta-icono { width: 32px; height: 32px; border-radius: 7px; }
.puerta-icono .ico { width: 18px; height: 18px; }
.puerta-cuerpo strong { font-size: .92rem; }
.puerta-texto { font-size: .8rem; line-height: 1.3; }
.puerta-dato { font-size: .78rem; margin-top: .2rem; }

/* Mi trabajo y bandeja: filas más bajas */
.fila-bandeja { padding: .5rem .7rem; border-radius: 6px; gap: .4rem .8rem; box-shadow: none; }
.fila-bandeja .meta { font-size: .76rem; gap: .35rem; margin-top: .15rem; }
.bandeja { gap: .3rem; }
.bloque-bandeja h2 { font-size: 1rem; margin-bottom: .4rem; }
.apuntar { padding: .5rem .7rem; }
.apuntar-form input[type=text] { width: 100%; padding: .35rem .55rem; }
.cinta-recordatorio { font-size: .82rem; gap: .5rem; margin: .4rem 0 .7rem; }
.grupo-avisos { padding: .5rem .7rem; }
.ven-pop, .abc-tarjeta { padding: .6rem .7rem; border-radius: 8px; width: 320px; }

/* Avisos (rejilla): un pelín más apretado */
.casilla-aviso { font-size: .82rem; padding: .12rem .25rem; gap: .35rem; }
.casilla-aviso code { font-size: .68rem; }
.columna-avisos { padding: .2rem .5rem .4rem; }
.barra-quien select { min-width: 220px; font-size: .88rem; padding: .28rem .45rem; border-radius: 5px; }
.rejilla-avisos-form { padding: .6rem .8rem .8rem; }
.rejilla-cab { margin-bottom: .5rem; }
.rejilla-avisos { gap: .5rem; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); }

/* Mi cuenta, perfil y demás listas */
.lista-funciones li { padding: .35rem .55rem; }
.avisos-grupo { padding: .5rem .8rem .5rem; margin-bottom: .6rem; }
.aviso-check { padding: .3rem .5rem; gap: .5rem; }
.aviso-check small { font-size: .78rem; }
.ritmo-opcion { padding: .45rem .7rem; }
.pie { font-size: .75rem; padding: .6rem 1rem; }

/* ---------- Sesión viva: notas, cierre con la siguiente, fichas retiradas ---------- */
.lista-notas { list-style: none; margin: .35rem 0; padding: 0; display: flex; flex-direction: column; gap: .2rem; }
.lista-notas li { font-size: .85rem; background: #fffbea; border-left: 3px solid #d9a441; padding: .25rem .5rem; border-radius: 4px; }
.nota-cuando { color: var(--texto-suave); font-size: .74rem; margin-right: .35rem; }
.nota-form { display: flex; gap: .35rem; margin-top: .3rem; }
.nota-form input[type=text] { flex: 1 1 auto; width: auto; }
.notas-sesion { margin: .3rem 0; }
.ficha-retirada { opacity: .65; }
.cerrar-sesion { border-left: 4px solid var(--primario); margin-bottom: .7rem; }
.cerrar-sesion form { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .9rem; }
.cerrar-sesion label { display: inline-flex; align-items: center; gap: .4rem; font-size: .85rem; }
.cerrar-sesion .texto-ayuda { flex-basis: 100%; margin: 0; }
[data-panel] > .tarjeta + .tarjeta, [data-panel] > .rejilla-2 + .tarjeta, [data-panel] .rejilla-2 > div > .tarjeta + .tarjeta { margin-top: .7rem; }
.notas-ficha { border-left: 4px solid #d9a441; margin-bottom: .7rem; }
/* =====================================================================
   v3.1 · pestañas visibles, listas de una línea, acordeones de ficha y clic derecho (César, 14/09/2026)
   ===================================================================== */
/* Pestañas: barra con fondo propio; la activa en blanco, destacada; el número en una pastilla */
.pestanas { display: flex; width: fit-content; max-width: 100%; overflow-x: auto; gap: 2px; padding: 3px; margin: 0 0 .75rem; background: #e3e9f1; border: 0; border-radius: 8px; }
.pestanas a, .pestanas button { border: 0; border-radius: 6px; margin: 0; padding: .32rem .75rem; background: transparent; color: #4b5767; font-weight: 600; font-size: .86rem; white-space: nowrap; cursor: pointer; font-family: inherit; text-decoration: none; }
.pestanas a:hover, .pestanas button:hover { background: rgba(255,255,255,.65); color: var(--primario); }
.pestanas a.activa, .pestanas button.activa { background: #fff; color: var(--primario); box-shadow: 0 1px 3px rgba(20,30,50,.2); border: 0; }
.pestanas small { font-weight: 500; color: inherit; opacity: .8; }
.num-tab { display: inline-block; min-width: 1.35em; margin-left: .35rem; padding: 0 .35em; border-radius: 999px; background: #cfd8e3; color: #3b4656; font-size: .7rem; font-weight: 700; text-align: center; line-height: 1.45; }
.activa .num-tab { background: var(--primario); color: #fff; }
.num-tab.num-alerta { background: var(--rojo); color: #fff; }
.subpestanas a, .subpestanas button { background: none; border-radius: 0; border-bottom: 2px solid transparent; padding: .2rem .5rem; color: var(--texto-suave); }
.subpestanas a.activa, .subpestanas button.activa { background: none; color: var(--primario); border-bottom-color: var(--acento); }

/* Botones mínimos y líneas de formulario */
.boton-mini { padding: .14rem .5rem; font-size: .76rem; border-radius: 5px; line-height: 1.35; }
.form-linea { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .45rem; margin: .35rem 0; }
.form-linea input[type=text], .form-linea input[type=url], .form-linea input[type=date], .form-linea input[type=datetime-local], .form-linea select { padding: .2rem .4rem; font-size: .82rem; }
.form-linea .dec-motivo { flex: 1 1 220px; }
.form-linea .dec-deberes { flex: 1 1 160px; }
.datos-linea { display: grid; grid-template-columns: auto 1fr; gap: .15rem .7rem; margin: 0 0 .5rem; font-size: .86rem; }
.datos-linea dt { color: var(--texto-suave); }
.datos-linea dd { margin: 0; }

/* Listas de una línea por cosa, con acciones a la derecha */
.lista-filas { list-style: none; margin: 0; padding: 0; background: #fff; border: 1px solid var(--borde); border-radius: 6px; }
.fila { display: flex; align-items: center; gap: .6rem; padding: .34rem .6rem; border-bottom: 1px solid #edf1f6; border-left: 3px solid transparent; }
.fila:last-child { border-bottom: 0; }
.fila:hover { background: #f6f9fc; }
.fila.f-decidir { border-left-color: var(--primario); }
.fila.f-alta { border-left-color: var(--rojo); }
.fila.f-nuevo { border-left-color: var(--azul); }
.fila-main { flex: 1 1 auto; min-width: 0; }
.fila-titulo { display: block; font-weight: 600; font-size: .88rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-decoration: none; color: var(--texto); }
a.fila-titulo:hover { color: var(--primario); text-decoration: underline; }
.fila-titulo code { font-size: .74rem; }
.fila-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; font-size: .74rem; color: var(--texto-suave); margin-top: .05rem; }
.fila-meta .etiqueta, .fila-meta .origen { font-size: .68rem; padding: .02rem .38rem; }
.fila-texto { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 42ch; }
.fila-acc { display: flex; align-items: center; gap: .25rem; flex: 0 0 auto; }
.grupo-plegado { margin: .5rem 0 0; }
.grupo-plegado > summary { cursor: pointer; display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; padding: .3rem .5rem; background: #f1f4f8; border-radius: 6px; font-size: .84rem; list-style: none; }
.grupo-plegado > summary::-webkit-details-marker { display: none; }
.grupo-plegado > summary::before { content: '▸'; color: var(--texto-suave); }
.grupo-plegado[open] > summary::before { content: '▾'; }
.grupo-plegado[open] > summary { margin-bottom: .3rem; }
.grupo-derecha { margin-left: auto; }
.barra-mini { display: flex; justify-content: flex-end; gap: .35rem; margin: 0 0 .4rem; }
.trabajo-cab { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1rem; margin: 0 0 .6rem; }
.apuntar-linea { display: flex; gap: .35rem; flex: 1 1 380px; }
.apuntar-linea input[type=text] { flex: 1 1 auto; width: auto; padding: .28rem .55rem; }
.cinta-mini { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; font-size: .8rem; }
.cinta-mini a { text-decoration: none; }
.cinta-mini select { padding: .2rem .4rem; font-size: .8rem; }

/* Fichas en acordeón, agrupadas por ponente, con acciones a la derecha */
.grupo-ponente { margin: 0 0 .7rem; }
.grupo-ponente-cab { font-size: .9rem; margin: 0 0 .3rem; color: var(--primario); }
.grupo-ponente-cab small { color: var(--texto-suave); font-weight: 500; }
.ficha-caja { position: relative; margin: 0 0 .3rem; }
.ficha-acciones { position: absolute; top: .3rem; right: .45rem; display: flex; gap: .25rem; z-index: 2; }
.ficha-acordeon { background: #fff; border: 1px solid var(--borde); border-left: 3px solid #cfd8e3; border-radius: 6px; }
.ficha-pendiente .ficha-acordeon { border-left-color: var(--primario); }
.ficha-bloquea .ficha-acordeon { border-left-color: var(--rojo); }
.ficha-acordeon > summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: .5rem; padding: .36rem 11rem .36rem .55rem; min-height: 2rem; }
.ficha-acordeon > summary::-webkit-details-marker { display: none; }
.ficha-acordeon > summary::before { content: '▸'; color: var(--texto-suave); font-size: .8rem; }
.ficha-acordeon[open] > summary::before { content: '▾'; }
.ficha-acordeon[open] > summary { border-bottom: 1px solid #edf1f6; background: #fafcfe; }
.ficha-codigo { font-size: .72rem; color: #5b6672; background: #eef2f7; padding: .02rem .35rem; border-radius: 4px; flex: 0 0 auto; }
.ficha-titulo { font-weight: 600; font-size: .88rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.ficha-chips { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem; margin-left: auto; font-size: .74rem; color: var(--texto-suave); flex: 0 0 auto; }
.ficha-chips .etiqueta { font-size: .66rem; padding: .02rem .36rem; }
.ficha-cuerpo { padding: .45rem .65rem .55rem; font-size: .85rem; }
.ficha-cuerpo .cuatro-premisas { display: grid; grid-template-columns: 1fr 1fr; gap: .3rem .9rem; margin: 0 0 .35rem; }
.ficha-cuerpo .cuatro-premisas .num { display: inline-flex; width: 1.2rem; height: 1.2rem; font-size: .7rem; }
.ficha-retirada .ficha-acordeon { opacity: .65; }
.chip-dec { display: inline-flex; align-items: center; gap: .25rem; padding: .16rem .5rem; border: 1px solid var(--borde); border-radius: 999px; font-size: .78rem; cursor: pointer; background: #fff; white-space: nowrap; }
.chip-dec input { margin: 0; }
.chip-dec:has(input:checked) { color: #fff; border-color: transparent; }
.dec-aprobada:has(input:checked) { background: #1e9e4a; }
.dec-condicion:has(input:checked) { background: #c8811b; }
.dec-devuelta:has(input:checked) { background: #b8620c; }
.dec-rechazada:has(input:checked) { background: #c0392b; }
.decision-linea { margin-top: .35rem; padding-top: .35rem; border-top: 1px dashed var(--borde); }
.aviso-presupuesto { color: #7a5c00; margin: .15rem 0 0; }
.nota-form { display: flex; flex-wrap: wrap; gap: .3rem; align-items: center; margin: .3rem 0 0; }
.nota-form input[type=text] { flex: 1 1 240px; width: auto; padding: .2rem .45rem; font-size: .82rem; }
.nota-proxima { display: inline-flex; align-items: center; gap: .25rem; font-size: .74rem; color: var(--texto-suave); }
.nota-proxima select, .nota-a-proxima select { padding: .1rem .3rem; font-size: .74rem; }
.lista-notas li { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; }
.nota-texto { flex: 1 1 auto; }
@media (max-width: 860px) {
  .ficha-acciones { position: static; justify-content: flex-end; margin: 0 0 .15rem; }
  .ficha-acordeon > summary { padding-right: .55rem; flex-wrap: wrap; }
  .ficha-chips { margin-left: 0; }
  .ficha-cuerpo .cuatro-premisas { grid-template-columns: 1fr; }
  .fila { flex-wrap: wrap; }
  .fila-titulo { white-space: normal; }
}

/* Buscador */
.buscador-barra { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; margin: 0 0 .6rem; }
.buscador-barra input[type=search] { flex: 1 1 420px; padding: .34rem .6rem; font-size: .92rem; border: 1px solid var(--borde); border-radius: 6px; }
.buscador-filtros { flex-basis: 100%; }
.buscador-filtros > summary { cursor: pointer; font-size: .8rem; color: var(--texto-suave); display: inline-block; }
.buscador-filtros[open] { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; }
.buscador-filtros select, .buscador-filtros input { padding: .2rem .4rem; font-size: .82rem; }
.buscador-filtros label { font-size: .8rem; display: inline-flex; gap: .25rem; align-items: center; }
.ia-entendido { font-size: .84rem; margin: 0 0 .5rem; display: flex; flex-wrap: wrap; gap: .3rem; align-items: center; }
.fragmento mark { background: #fff1a8; padding: 0 .1rem; border-radius: 2px; }

/* Menú contextual */
.menu-ctx { position: absolute; z-index: 200; min-width: 190px; padding: .25rem; background: #fff; border: 1px solid var(--borde); border-radius: 7px; box-shadow: 0 8px 24px rgba(20,30,50,.2); font-size: .84rem; }
.menu-ctx-item { display: block; width: 100%; text-align: left; padding: .32rem .6rem; border: 0; background: none; border-radius: 5px; color: var(--texto); text-decoration: none; cursor: pointer; font-family: inherit; font-size: inherit; }
.menu-ctx-item:hover, .menu-ctx-item:focus { background: var(--primario-claro); color: var(--primario); outline: none; }
.menu-ctx-sep { height: 1px; margin: .2rem .3rem; background: var(--borde); }
[data-ctx] { cursor: context-menu; }
[data-ctx] a, [data-ctx] button, [data-ctx] summary { cursor: pointer; }
/* ---------- v3.2 · Ficha de tienda (list + ABC) y ficha rápida en VEN (14/09/2026) ---------- */
.barra-derecha { justify-content: flex-end; }
.rejilla-cuadros { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: .6rem; align-items: start; }
.rejilla-cuadros .cuadro { margin: 0; }
.rejilla-cuadros .cuadro-ancho { grid-column: span 2; }
@media (max-width: 760px) { .rejilla-cuadros .cuadro-ancho { grid-column: auto; } }
.datos-cajas { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: .35rem; margin: .2rem 0 .45rem; }
.dato-caja { background: #f4f7fb; border-radius: 6px; padding: .3rem .5rem; line-height: 1.25; }
.dato-caja span { display: block; font-size: .68rem; color: var(--texto-suave); text-transform: uppercase; letter-spacing: .02em; }
.dato-caja strong { font-size: 1rem; }
.dato-caja small { margin-left: .3rem; font-size: .72rem; }
.sube { color: var(--verde); font-weight: 600; } .baja { color: var(--rojo); font-weight: 600; }
.texto-rojo { color: var(--rojo); }
.equipo-grupo { margin: .1rem 0 .4rem; }
.equipo-titulo { font-size: .7rem; text-transform: uppercase; letter-spacing: .03em; color: var(--texto-suave); }
.equipo-lista { list-style: none; margin: .1rem 0 0; padding: 0; font-size: .84rem; }
.equipo-lista li { padding: .12rem 0; border-bottom: 1px dashed #edf1f6; }
.equipo-lista li:last-child { border-bottom: 0; }
.equipo-lista small { display: block; color: var(--texto-suave); }
.abc-meses { display: block; margin-top: .3rem; }
.ven-info { display: inline-flex; align-items: center; justify-content: center; width: 1.05rem; height: 1.05rem; margin-left: .15rem; padding: 0; border: 1px solid #b9c4d2; border-radius: 50%; background: #fff; color: var(--primario); font: italic 700 .68rem Georgia, serif; cursor: pointer; vertical-align: 1px; }
.ven-info:hover { background: var(--primario); color: #fff; border-color: var(--primario); }
.tienda-pop { width: 380px; }
.tienda-pop .datos-linea { margin: .35rem 0; font-size: .8rem; }
.datos-cajas-mini { grid-template-columns: repeat(4, 1fr); }
.datos-cajas-mini .dato-caja strong { font-size: .88rem; }
.datos-cajas-mini .tp-diag { grid-column: 1 / -1; }

/* ---------- v3.2 · Objetivos y KPI: tabla dinámica, filas anchas, pantallas propias e IA (14/09/2026) ---------- */
.anio-selector { margin-top: -.45rem; }
.barra-herramientas { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .6rem; margin: 0 0 .55rem; }
.herramientas-derecha { margin-left: auto; display: inline-flex; flex-wrap: wrap; align-items: center; gap: .3rem; }
.grupo-botones { display: inline-flex; }
.grupo-botones .boton { border-radius: 0; }
.grupo-botones .boton:first-child { border-radius: 5px 0 0 5px; }
.grupo-botones .boton:last-child { border-radius: 0 5px 5px 0; margin-left: -1px; }
.grupo-botones .boton.activa { background: var(--primario); color: #fff; border-color: var(--primario); }
.filtro-personas { margin: 0; }
.filtros-kpi { background: #f4f7fb; border: 1px solid var(--borde); border-radius: 6px; padding: .35rem .5rem; }
.filtros-kpi select { max-width: 13rem; }
.filtros-kpi .campo-buscar { width: 14rem; padding: .2rem .45rem; font-size: .82rem; }
.kpi-resumen { margin: .3rem 0 .45rem; }
.kpi-resumen a { text-decoration: none; }
.tabla-kpi th[data-ord] { cursor: pointer; user-select: none; white-space: nowrap; }
.tabla-kpi th[data-ord]:hover { color: var(--primario); }
.tabla-kpi th.ord-asc::after { content: " \25B2"; font-size: .6rem; }
.tabla-kpi th.ord-desc::after { content: " \25BC"; font-size: .6rem; }
.tabla-kpi td.num, .tabla-kpi th.num { text-align: right; white-space: nowrap; }
.tabla-kpi .grupo-fila th { background: #e9eef5; text-align: left; font-size: .8rem; padding: .25rem .5rem; cursor: default; }
.tabla-kpi td a { text-decoration: none; }
.texto-suave { color: var(--texto-suave); }
.campo-corto { width: 7.5rem; max-width: 100%; }
.campo-mini { width: 4.5rem; }
.acciones-derecha { display: flex; justify-content: flex-end; gap: .4rem; }
.titulo-bloque { font-size: .9rem; margin: .7rem 0 .3rem; }
.formulario-compacto .cuadro { margin-bottom: .55rem; max-width: 1100px; }
.formulario-compacto .campo { margin-bottom: .45rem; }
.kpi-persona-cab h2 { font-size: 1rem; }
/* Filas anchas: la misma tarjeta, a todo el ancho y en una línea */
.kpi-rejilla.vista-filas { grid-template-columns: 1fr; gap: .3rem; }
.vista-filas .kpi-card { display: grid; grid-template-columns: minmax(230px, 2.3fr) minmax(210px, 1.5fr) minmax(170px, 1.2fr) minmax(280px, 2.2fr); gap: .1rem .9rem; align-items: center;
  padding: .4rem .7rem; margin: 0; border-top: 0; border-left: 4px solid var(--gris); }
.vista-filas .kpi-card.sem-verde { border-left-color: var(--verde); }
.vista-filas .kpi-card.sem-ambar { border-left-color: var(--ambar); }
.vista-filas .kpi-card.sem-rojo { border-left-color: var(--rojo); }
.vista-filas .kpi-card.sin-base { border-left-color: var(--ambar); }
.vista-filas .kpi-card > h3 { grid-column: 1; grid-row: 1; font-size: .9rem; margin: 0; }
.vista-filas .kpi-card > .kpi-sub { grid-column: 1; grid-row: 2; margin: 0; font-size: .74rem; }
.vista-filas .kpi-card > .kpi-aviso-base { grid-column: 1; grid-row: 3; margin: .1rem 0 0; padding: .1rem .4rem; font-size: .74rem; }
.vista-filas .kpi-card > .kpi-enlace { grid-column: 1; grid-row: 4; margin: 0 !important; font-size: .74rem; }
.vista-filas .kpi-card > .kpi-numeros { grid-column: 2; grid-row: 1 / span 4; margin: 0; gap: .3rem; }
.vista-filas .kpi-numero { padding: .2rem .45rem; }
.vista-filas .kpi-numero input { font-size: 1rem; }
.vista-filas .kpi-card > .kpi-ultimo { grid-column: 3; grid-row: 1 / span 2; margin: 0; font-size: .78rem; }
.vista-filas .kpi-ultimo .valor { font-size: .95rem; }
.vista-filas .kpi-card > .kpi-spark { grid-column: 3; grid-row: 3 / span 2; height: 26px; margin: 0; }
.vista-filas .kpi-card > .kpi-medir { grid-column: 4; grid-row: 1 / span 2; margin: 0; gap: .25rem; }
.vista-filas .kpi-medir label { font-size: .7rem; }
.vista-filas .kpi-medir input[type=text] { width: 80px; font-size: .9rem; padding: .15rem .35rem; }
.vista-filas .kpi-medir .comentario { font-size: .78rem; }
.vista-filas .kpi-card > .kpi-fuente { grid-column: 4; grid-row: 3 / span 2; margin: 0; font-size: .74rem; }
@media (max-width: 1100px) { .vista-filas .kpi-card { display: block; } }
/* Preparar con IA */
.rejilla-ia { display: grid; grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)); gap: .6rem; align-items: start; }
@media (max-width: 520px) { .rejilla-ia { grid-template-columns: 1fr; } }
.rejilla-ia .cuadro { margin: 0; }
.ia-comentario { background: #f2f6fd; border-left: 3px solid var(--primario); padding: .25rem .5rem; margin: .35rem 0; }
.ia-propuestas .fila { align-items: stretch; }
.ia-form { display: flex; flex-direction: column; gap: .25rem; width: 100%; padding: .15rem 0; }
.ia-form .ia-titulo { font-weight: 600; font-size: .86rem; padding: .2rem .4rem; }
.ia-form textarea { font-size: .8rem; padding: .2rem .4rem; }
.ia-form .form-linea { margin: 0; }
.ia-botones { display: flex; justify-content: flex-end; gap: .3rem; }
form[data-esperando].esperando { opacity: .6; pointer-events: none; }
/* Filas anchas más bajas: el aviso de «falta el dato de hoy» lo dice el borde ámbar; etiquetas en una línea */
.vista-filas .kpi-card > .kpi-aviso-base { display: none !important; }
.vista-filas .kpi-card > .kpi-enlace { grid-row: 3; }
.vista-filas .kpi-numero label, .vista-filas .kpi-medir label { font-size: .64rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: 0; }
.vista-filas .kpi-card > .kpi-numeros { grid-row: 1 / span 3; }
.vista-filas .kpi-card > .kpi-ultimo, .vista-filas .kpi-card > .kpi-medir { grid-row: 1 / span 2; }
.vista-filas .kpi-card > .kpi-spark, .vista-filas .kpi-card > .kpi-fuente { grid-row: 3; }
.vista-filas .kpi-card.sin-base .kpi-numero input { background: #fff; border-color: #e8c36a; }

/* ---------- v3.3 · Selector de tiendas, ficha en pestañas, cinturón del Centro (14/09/2026) ---------- */
.sel-tiendas { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; }
.sel-elegidas { display: flex; flex-wrap: wrap; gap: .2rem; align-items: center; }
.chip-sel { display: inline-flex; align-items: center; gap: .15rem; background: #e7eef8; color: var(--primario); border-radius: 999px; padding: .05rem .15rem .05rem .5rem; font-size: .76rem; white-space: nowrap; }
.chip-sel button { border: 0; background: none; color: inherit; cursor: pointer; font-size: .9rem; line-height: 1; padding: 0 .25rem; }
.sel-alcance { margin-left: .2rem; }
.sel-panel { position: absolute; top: 100%; left: 0; z-index: 60; width: min(520px, calc(100vw - 2rem)); margin-top: .25rem; background: #fff; border: 1px solid var(--borde); border-radius: 8px; box-shadow: 0 8px 28px rgba(20,30,50,.2); padding: .5rem; }
.sel-grupos { display: flex; flex-wrap: wrap; gap: .25rem; margin-bottom: .35rem; }
.sel-panel input[type=search] { width: 100%; padding: .25rem .45rem; font-size: .82rem; margin-bottom: .3rem; }
.sel-lista { list-style: none; margin: 0; padding: 0; max-height: 240px; overflow-y: auto; border: 1px solid #edf1f6; border-radius: 5px; }
.sel-lista li { border-bottom: 1px solid #f1f4f8; }
.sel-lista label { display: flex; align-items: center; gap: .35rem; padding: .16rem .4rem; font-size: .8rem; cursor: pointer; margin: 0; }
.sel-lista label:hover { background: #f4f7fb; }
.sel-lista small { color: var(--texto-suave); margin-left: auto; }
.sel-pie { display: flex; justify-content: space-between; align-items: center; margin-top: .35rem; }
/* Ficha de propuesta en pestañas (una pregunta por pestaña, cabecera fija, cabe en pantalla) */
.ficha-pestanas .cuadro { margin-bottom: .45rem; }
.ficha-cabecera { padding: .35rem .6rem .45rem; }
.cab-rejilla { display: grid; grid-template-columns: minmax(260px, 3fr) minmax(150px, 1.2fr) minmax(150px, 1.2fr) minmax(210px, 1.6fr) minmax(95px, .7fr); gap: .45rem; align-items: end; }
.cab-rejilla .campo, .panel-ficha .campo { margin: 0; }
.ficha-pestanas label { font-size: .74rem; font-weight: 600; margin-bottom: .1rem; }
.ficha-pestanas label small { font-weight: 400; color: var(--texto-suave); }
.ficha-pestanas input[type=text], .ficha-pestanas input[type=date], .ficha-pestanas select, .ficha-pestanas textarea { padding: .22rem .4rem; font-size: .84rem; }
.ficha-pestanas .tabla-filas td { padding: .12rem .25rem; }
.ficha-pestanas .tabla-filas select, .ficha-pestanas .tabla-filas input { font-size: .8rem; padding: .15rem .3rem; }
.panel-ficha { background: #fff; border: 1px solid var(--borde); border-radius: 6px; padding: .5rem .7rem; display: flex; flex-direction: column; gap: .45rem; }
.panel-ficha[hidden] { display: none; }
.linea-campos { display: flex; flex-wrap: wrap; gap: .4rem; align-items: end; }
.linea-campos .campo-ancho { flex: 1 1 240px; }
.rejilla-como { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; align-items: start; }
@media (max-width: 960px) { .cab-rejilla, .rejilla-como { grid-template-columns: 1fr 1fr; } .cab-titulo { grid-column: 1 / -1; } }
@media (max-width: 560px) { .cab-rejilla, .rejilla-como { grid-template-columns: 1fr; } }
.etiqueta-bloque { display: block; margin-top: .35rem; }
.num-premisa { display: inline-block; width: 1.15rem; height: 1.15rem; line-height: 1.15rem; border-radius: 50%; background: #cfd8e3; color: #2b3647; font-size: .68rem; text-align: center; margin-right: .2rem; }
.pestanas .activa .num-premisa { background: var(--primario); color: #fff; }
.marca-falta { display: inline-block; margin-left: .3rem; width: 1rem; height: 1rem; line-height: 1rem; border-radius: 50%; background: var(--ambar); color: #fff; font-size: .66rem; text-align: center; font-weight: 700; }
.marca-ok { margin-left: .3rem; color: var(--verde); font-weight: 700; }
.indicador-compacto { border: 1px solid #edf1f6; border-radius: 6px; padding: .35rem .5rem; margin-bottom: .35rem; display: flex; flex-direction: column; gap: .3rem; }
.coste-tramos { display: inline-flex; flex-wrap: wrap; gap: .2rem; margin: 0; }
.coste-tramos .chip { padding: .08rem .45rem; font-size: .74rem; }
.acciones-fijas { position: sticky; bottom: 0; background: rgba(245,247,250,.96); padding: .4rem 0; margin-top: .45rem; z-index: 5; display: flex; justify-content: flex-end; gap: .4rem; flex-wrap: wrap; }
/* Dirección › Apps de la casa */
.tabla-apps input[type=text] { width: 100%; min-width: 9rem; padding: .18rem .35rem; font-size: .8rem; }
.tabla-apps input.campo-mini, .tabla-apps input[type=number] { width: 3.6rem; min-width: 0; }
.tabla-apps input[type=color] { width: 1.8rem; height: 1.5rem; padding: 0; border: 0; vertical-align: middle; }
.celda-icono { white-space: nowrap; }
.kh-app-muestra { display: inline-flex; align-items: center; justify-content: center; width: 1.6rem; height: 1.6rem; border-radius: 6px; color: #fff; font-weight: 700; font-size: .72rem; vertical-align: middle; margin-right: .2rem; }

/* Ficha en pestañas para leer (comité y vista de la ficha) */
.ficha-leer { display: flex; flex-direction: column; gap: .35rem; margin: .1rem 0 .4rem; }
.ficha-leer-cab { display: flex; flex-wrap: wrap; gap: .2rem .9rem; font-size: .8rem; padding: .3rem .5rem; background: #f4f7fb; border-radius: 6px; }
.ficha-leer-cab em { font-style: normal; color: var(--texto-suave); font-size: .68rem; text-transform: uppercase; letter-spacing: .02em; margin-right: .2rem; }
.pestanas-ficha { margin: 0; }
.pestanas-ficha button { padding: .22rem .6rem; font-size: .8rem; }
.ficha-leer .panel-ficha { padding: .4rem .6rem; gap: .3rem; }
.leer-texto { margin: 0; font-size: .86rem; line-height: 1.45; }
.leer-etq { font-style: normal; font-size: .68rem; text-transform: uppercase; color: var(--texto-suave); }
.leer-tiendas a { text-decoration: none; }
.ficha-leer .lista-pasos { margin: .2rem 0 0; padding-left: 1.2rem; font-size: .82rem; }
.ficha-leer .lista-pasos li.hecho { text-decoration: line-through; color: var(--texto-suave); }
.ficha-leer .datos-linea { margin: 0; font-size: .82rem; }

/* Análisis: tablero y tabla dinámica */
.filtros-analisis label { font-size: .74rem; color: var(--texto-suave); display: inline-flex; align-items: center; gap: .25rem; }
.filtros-analisis input[type=month] { padding: .15rem .3rem; font-size: .8rem; }
.chips-filtro { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; margin: .35rem 0; font-size: .78rem; }
.chip-sel a { color: inherit; text-decoration: none; padding: 0 .25rem; font-size: .9rem; }
.analisis-cab { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .4rem; margin: .4rem 0; font-size: .84rem; }
.analisis-lectura { white-space: normal; font-size: .84rem; }
.analisis-cuerpo { display: grid; grid-template-columns: minmax(0, 3fr) minmax(240px, 1.2fr); gap: .7rem; align-items: start; }
@media (max-width: 1100px) { .analisis-cuerpo { grid-template-columns: 1fr; } }
.tabla-dinamica td a { color: inherit; text-decoration: none; display: block; }
.tabla-dinamica td a:hover { text-decoration: underline; }
.tabla-dinamica tfoot th { background: #eef2f7; }
.celda-calor { background: rgba(31, 58, 95, calc(var(--calor, 0) * .28)); }
.celda-total { font-weight: 700; background: #f4f7fb; }
.celda-alerta a { color: var(--rojo); font-weight: 700; }
.tabla-tablero .grupo-cab { text-align: center; background: #e9eef5; font-size: .74rem; text-transform: uppercase; letter-spacing: .03em; }
.tabla-tablero td a { text-decoration: none; }
.analisis-grafico { background: #fff; border: 1px solid var(--borde); border-radius: 6px; padding: .45rem .6rem; display: flex; flex-direction: column; gap: .22rem; }
.barra-fila { display: grid; grid-template-columns: 9.5rem 1fr 4.5rem; align-items: center; gap: .4rem; font-size: .74rem; }
.barra-etq { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.barra-pista { background: #eef2f7; border-radius: 3px; height: .6rem; overflow: hidden; }
.barra-valor { display: block; height: 100%; background: var(--primario); border-radius: 3px; }
.barra-valor.negativa { background: var(--rojo); }
.barra-num { text-align: right; font-variant-numeric: tabular-nums; }
.analisis-detalle { margin-top: .6rem; }

/* ---------- v3.3 · Repaso del panel: comité, propuestas, personas, mi cuenta, sesiones y actas, comités y ciclos (14/09/2026) ---------- */
.comite-linea { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .9rem; padding: .4rem .6rem; margin-bottom: .45rem; }
.comite-cuando { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .3rem; font-size: .84rem; }
.comite-progreso { display: inline-flex; align-items: center; gap: .35rem; font-size: .8rem; }
.comite-progreso .barra-progreso { display: inline-block; width: 90px; height: 7px; background: #e9edf2; border-radius: 999px; overflow: hidden; }
.comite-progreso .barra-progreso span { display: block; height: 100%; background: var(--verde); }
.comite-titulares { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem; margin: .1rem 0 .45rem; }
.comite-briefing .briefing-texto { font-size: .84rem; }
.contador-mini { font-size: .74rem; padding: .1rem .5rem; border-radius: 999px; background: #e9eef5; color: #3b4656; }
.contador-mini.lleno { background: #fde3df; color: #8a1f14; }
.estado-linea { font-size: .84rem; margin: .2rem 0 .45rem; }
.aviso-linea { background: #fff6e0; border-left: 3px solid var(--ambar); padding: .3rem .55rem; border-radius: 4px; font-size: .84rem; margin: .3rem 0; }
.cuadro-accion { background: #f4f7fb; border-radius: 5px; padding: .3rem .5rem; margin: .15rem 0; }
.acciones-viva .form-linea { margin: .2rem 0; }
.decision-linea.cuadro { padding: .35rem .55rem; }
.acta-editor { width: 100%; font-family: Consolas, monospace; font-size: .8rem; line-height: 1.45; }
.acta-lectura { background: #fff; border: 1px solid var(--borde); border-radius: 6px; padding: .6rem .8rem; max-height: 70vh; overflow: auto; }
.fila-activa td { background: #eef4fb; }
.barra-herramientas .filtros-kpi { margin: 0; }

/* ---------- Colores por situación de las acciones del comité (14/09/2026) ---------- */
.etiqueta.sit-borrador    { background: #eceff3; color: #5b6672; }
.etiqueta.sit-decidir     { background: #fff1cc; color: #7a5200; }
.etiqueta.sit-marcha      { background: #e1ecfb; color: #174f9c; }
.etiqueta.sit-vencida     { background: #fde1dd; color: #a3261a; font-weight: 700; }
.etiqueta.sit-cumplida    { background: #d6f2df; color: #146a31; }
.etiqueta.sit-no_cumplida { background: #f3d6db; color: #7d1627; }
.etiqueta.sit-retirada    { background: #eceff3; color: #7b8591; text-decoration: line-through; }
.sit-borde { border-left: 4px solid #cfd8e3 !important; }
tr.sit-borde > td:first-child { box-shadow: inset 4px 0 0 #cfd8e3; }
.sit-borde.sit-decidir { border-left-color: #e0a100 !important; }  tr.sit-borde.sit-decidir > td:first-child { box-shadow: inset 4px 0 0 #e0a100; }
.sit-borde.sit-marcha { border-left-color: #1f6fd1 !important; }   tr.sit-borde.sit-marcha > td:first-child { box-shadow: inset 4px 0 0 #1f6fd1; }
.sit-borde.sit-vencida { border-left-color: #d13b2b !important; }  tr.sit-borde.sit-vencida > td:first-child { box-shadow: inset 4px 0 0 #d13b2b; }
.sit-borde.sit-cumplida { border-left-color: #1e9e4a !important; } tr.sit-borde.sit-cumplida > td:first-child { box-shadow: inset 4px 0 0 #1e9e4a; }
.sit-borde.sit-no_cumplida { border-left-color: #8e1b2c !important; } tr.sit-borde.sit-no_cumplida > td:first-child { box-shadow: inset 4px 0 0 #8e1b2c; }
.sit-borde.sit-retirada { border-left-color: #b8c0ca !important; opacity: .8; } tr.sit-borde.sit-retirada > td:first-child { box-shadow: inset 4px 0 0 #b8c0ca; }
tr.sit-borde { border-left: 0 !important; }
.leyenda-sit { display: inline-flex; flex-wrap: wrap; gap: .2rem; font-size: .7rem; }
.leyenda-sit .etiqueta { font-size: .66rem; }
.barra-valor.sit-decidir { background: #e0a100; } .barra-valor.sit-marcha { background: #1f6fd1; } .barra-valor.sit-vencida { background: #d13b2b; }
.barra-valor.sit-cumplida { background: #1e9e4a; } .barra-valor.sit-no_cumplida { background: #8e1b2c; } .barra-valor.sit-retirada { background: #b8c0ca; }
.menu-lateral .menu-area { font-size: .64rem; text-transform: uppercase; letter-spacing: .06em; color: rgba(255,255,255,.55); padding: .55rem .9rem .15rem; }
@media print { .etiqueta.sit { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }

/* v3.3 · Ideas y Ajustes (16/09/2026) */
.tachado { text-decoration: line-through; color: var(--texto-suave); }
.idea-nueva { margin-bottom: .6rem; }
.rejilla-ajustes { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: .6rem; align-items: start; }
.ajuste-linea { display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding: .22rem 0; border-bottom: 1px dotted var(--borde); font-size: .84rem; }
.ajuste-linea:last-child { border-bottom: 0; }
.ajuste-linea span { flex: 1; }
.ajuste-linea .campo-mini { width: 5rem; text-align: right; }
.ajuste-linea .campo-ancho { width: 12rem; }

/* VEN compacto (16/09/2026) */
.ayuda-icono { display: inline-flex; align-items: center; justify-content: center; min-width: 1.35rem; height: 1.35rem; padding: 0 .35rem; border-radius: 999px; border: 1px solid var(--borde); color: var(--texto-suave); font-size: .72rem; font-weight: 600; cursor: help; background: #fff; }
.ven-cabecera { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1rem; margin-bottom: .35rem; }
.ven-orden-barra { margin: .2rem 0 .4rem; }

.tabla-estrecha { width: auto; min-width: 22rem; }

/* Ayuda, visita guiada y avisos al móvil (16/09/2026) */
.boton-ayuda { width: 28px; height: 28px; border-radius: 50%; border: 1px solid rgba(255,255,255,.45); background: transparent; color: #fff; font-weight: 700; cursor: pointer; margin-right: .35rem; }
.boton-ayuda:hover { background: rgba(255,255,255,.14); }
.ayuda-pop { position: fixed; top: 52px; right: 12px; z-index: 90; width: min(380px, calc(100vw - 24px)); background: #fff; border: 1px solid var(--borde); border-radius: 10px; box-shadow: 0 10px 30px rgba(15,23,42,.18); padding: .6rem .75rem; display: grid; gap: .45rem; }
.ayuda-rapida { display: flex; flex-wrap: wrap; gap: .35rem; }
.ayuda-rapida input { flex: 1 1 200px; }
.ayuda-respuesta { flex-basis: 100%; font-size: .86rem; line-height: 1.45; background: var(--fondo, #f3f5f8); border-radius: 8px; padding: .5rem .6rem; }
.ayuda-respuesta .chips { margin-top: .35rem; }
.ayuda-pregunta { margin-bottom: .6rem; flex-wrap: wrap; }
.ayuda-rejilla { display: grid; grid-template-columns: 220px 1fr; gap: .6rem; align-items: start; }
.ayuda-indice { position: sticky; top: .5rem; display: grid; gap: .1rem; max-height: calc(100vh - 120px); overflow: auto; }
.ayuda-indice a { padding: .22rem .4rem; border-radius: 6px; text-decoration: none; font-size: .86rem; }
.ayuda-indice a:hover, .ayuda-indice a.activa { background: var(--fondo, #eef1f5); }
.ayuda-temas { display: grid; gap: .6rem; }
.ayuda-tema h2 { font-size: 1rem; margin: 0; }
.ayuda-pasos { margin: .3rem 0 0 1.1rem; padding: 0; font-size: .88rem; line-height: 1.5; }
@media (max-width: 760px) { .ayuda-rejilla { grid-template-columns: 1fr; } .ayuda-indice { position: static; max-height: none; } }
.visita-capa { position: fixed; inset: 0; z-index: 95; }
.visita-capa svg { position: absolute; inset: 0; }
.visita-globo { position: fixed; z-index: 96; max-width: 320px; background: #fff; border-radius: 12px; padding: .7rem .85rem; box-shadow: 0 12px 34px rgba(0,0,0,.28); }
.visita-globo h4 { margin: 0 0 .3rem; font-size: .98rem; }
.visita-globo p { margin: 0 0 .6rem; font-size: .88rem; line-height: 1.45; }
.visita-botones { display: flex; align-items: center; gap: .4rem; }
.visita-botones .texto-pequeno { margin-right: auto; }

/* Versión móvil (16/09/2026): pensada para el pulgar, no solo encogida */
.fab-apuntar, .hoja-apuntar, .filtros-boton, .instalar-app { display: none; }
@media (max-width: 700px) {
  html { font-size: 14.5px; }
  .contenido { padding-left: .6rem; padding-right: .6rem; }
  .cabecera-pagina { flex-wrap: wrap; }
  /* Pestañas en una sola línea que se desliza */
  .pestanas { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .pestanas::-webkit-scrollbar { display: none; }
  .pestanas > a, .pestanas > button { flex: 0 0 auto; white-space: nowrap; }
  /* Filas: el texto arriba y los botones debajo, grandes */
  .lista-filas .fila { flex-wrap: wrap; padding: .55rem .6rem; }
  .fila-main { flex: 1 1 100%; min-width: 0; }
  .fila-titulo { white-space: normal; }
  .fila-meta { white-space: normal; }
  .fila-acc { flex: 1 1 100%; justify-content: flex-end; flex-wrap: wrap; }
  .boton-mini, .boton-pequeno { min-height: 36px; padding-left: .7rem; padding-right: .7rem; }
  input, select, textarea { font-size: 16px; }   /* evita el zoom automático del iPhone */
  .form-linea { flex-wrap: wrap; }
  .form-linea > input[type=text], .form-linea > input[type=search], .form-linea .dec-motivo, .form-linea .campo-buscar { flex: 1 1 100%; }
  /* Filtros plegados tras un botón */
  .filtros-boton { display: inline-flex; margin: 0 0 .5rem; }
  .filtros-kpi.plegado { display: none; }
  .ven-orden-barra .chips { flex-wrap: nowrap; overflow-x: auto; max-width: 100%; scrollbar-width: none; }
  .ven-orden-barra .chips .chip { flex: 0 0 auto; white-space: nowrap; min-height: 32px; }
  .ven-orden-barra > .texto-pequeno { display: none; }
  .ven-semana, .ven-resumen { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; }
  .ven-semana strong { font-size: .95rem; }
  .herramientas-derecha { margin-left: 0 !important; display: flex; flex-wrap: wrap; gap: .3rem; }
  .contenido { overflow-x: hidden; }
  .boton-mini { min-width: 36px; justify-content: center; }
  /* Botón flotante para apuntar y su hoja */
  .fab-apuntar { display: flex; align-items: center; justify-content: center; position: fixed; right: 14px; bottom: calc(var(--barra-inferior) + 14px + env(safe-area-inset-bottom)); width: 54px; height: 54px; border-radius: 50%; border: 0; background: var(--primario, #16294a); color: #fff; font-size: 1.8rem; box-shadow: 0 6px 18px rgba(0,0,0,.25); z-index: 30; }
  .hoja-apuntar:not([hidden]) { display: grid; gap: .5rem; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; background: #fff; padding: 1rem 1rem calc(1rem + env(safe-area-inset-bottom)); border-radius: 14px 14px 0 0; box-shadow: 0 -8px 30px rgba(0,0,0,.25); }
  .hoja-apuntar .form-linea { justify-content: flex-end; }
  .instalar-app:not([hidden]) { display: inline-flex; }
  .kh-cinturon { display: none; }
  .ayuda-pop { top: auto; bottom: calc(var(--barra-inferior) + 8px); right: 8px; left: 8px; width: auto; }
  /* Tablero VEN: una tarjeta por tienda con las letras grandes */
  .tabla-ven, .tabla-ven tbody { display: block; }
  .tabla-ven thead { display: none; }
  .tabla-ven tr { display: grid; grid-template-columns: 1fr auto auto auto auto; grid-template-areas: "tienda tienda tienda tienda mas" "abc v e n n2"; align-items: center; gap: .35rem .4rem; padding: .55rem .6rem; border-bottom: 1px solid var(--borde); background: #fff; }
  .tabla-ven td { display: block; border: 0; padding: 0; }
  .tabla-ven td[data-col="mover"], .tabla-ven td[data-col="prioridad"], .tabla-ven td[data-col="acciones"], .tabla-ven td[data-col="quien"] { display: none; }
  .tabla-ven td[data-col="tienda"] { grid-area: tienda; }
  .tabla-ven td[data-col="abc"] { grid-area: abc; }
  .tabla-ven td[data-col="v"] { grid-area: v; }
  .tabla-ven td[data-col="e"] { grid-area: e; }
  .tabla-ven td[data-col="n"] { grid-area: n; }
  .tabla-ven td[data-col="mas"] { grid-area: mas; }
  .tabla-ven .ven-letra { width: 44px; height: 44px; font-size: 1.05rem; }
  .tabla-ven tr.prioridad-alta { border-left: 4px solid #c0392b; }
  .tabla-ven tr.prioridad-media { border-left: 4px solid #e8a33d; }
  .tabla-envoltorio#tablero-ven { overflow: visible; }
  /* Tablas anchas: se deslizan dentro de su caja */
  .tabla-envoltorio { overflow-x: auto; -webkit-overflow-scrolling: touch; }
}
@media (display-mode: standalone) { .instalar-app { display: none !important; } }

/* Casillas KüchenHouse · Asociados (16/09/2026) */
.casillas-tipo, .prefiltro-tiendas { display: inline-flex; align-items: center; gap: .25rem; flex-wrap: wrap; }
.chip-mini { padding: .05rem .4rem; font-size: .76rem; }
.casillas-tipo .tipo-kh input:checked + *, .casillas-tipo .tipo-kh:has(input:checked) { background: #e6eefb; border-color: #2f6fb3; }
.casillas-tipo .tipo-kg:has(input:checked) { background: #f3ecfb; border-color: #6b4fa3; }

/* Icono de la app de origen en Mi trabajo y Tareas (16/09/2026) */
.app-chip { display: inline-flex; align-items: center; justify-content: center; min-width: 1.45rem; height: 1.2rem; padding: 0 .2rem; margin-right: .35rem; border-radius: 4px; color: #fff; font-size: .66rem; font-weight: 700; letter-spacing: .02em; vertical-align: 1px; flex: 0 0 auto; }
.origen-linea { color: var(--texto-suave); font-size: .78rem; }

/* Ideas: todas las salidas en un menú (16/09/2026) */
.menu-idea { position: relative; }
.menu-idea > summary { list-style: none; cursor: pointer; }
.menu-idea > summary::-webkit-details-marker { display: none; }
.menu-idea-caja { position: absolute; right: 0; top: calc(100% + 4px); z-index: 40; width: min(560px, 92vw); background: #fff; border: 1px solid var(--borde); border-radius: 10px; box-shadow: 0 10px 28px rgba(15,23,42,.18); padding: .5rem .6rem; display: grid; gap: .35rem; }
.menu-idea-caja .form-linea { gap: .3rem; padding: .2rem 0; border-bottom: 1px dotted var(--borde); }
.menu-idea-caja .form-linea:last-child { border-bottom: 0; }
.menu-idea-t { min-width: 10.5rem; font-size: .82rem; }
@media (max-width: 700px) { .menu-idea-caja { position: fixed; left: 8px; right: 8px; top: auto; bottom: calc(var(--barra-inferior) + 8px); width: auto; max-height: 70vh; overflow: auto; } }

/* «Ver como…» (16/09/2026) */
.ver-como select { max-width: 11rem; font-size: .8rem; padding: .15rem .3rem; border-radius: 6px; border: 1px solid rgba(255,255,255,.4); background: rgba(255,255,255,.1); color: #fff; }
.ver-como select option { color: #17212e; }
.ver-como-salir { border: 0; border-radius: 999px; background: #e8a33d; color: #16294a; font-weight: 700; font-size: .8rem; padding: .2rem .6rem; cursor: pointer; }
.banda-ver-como { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; background: #fff1cc; color: #7a5200; border: 1px solid #e0a100; border-radius: 8px; padding: .45rem .7rem; margin-bottom: .7rem; font-size: .88rem; }
@media (max-width: 700px) { .ver-como select { max-width: 7rem; } }

/* Entrada (16/09/2026) */
body.entrada { min-height: 100vh; margin: 0; display: grid; place-items: center; padding: 16px; background: radial-gradient(circle at 20% 10%, #24406e 0%, #16294a 55%, #0e1b31 100%); }
body.entrada-comite { background: radial-gradient(circle at 20% 10%, #a8621c 0%, #8a4b0f 55%, #5a300a 100%); }
.entrada-caja { width: min(420px, 100%); background: #fff; border-radius: 16px; padding: 28px 26px 20px; box-shadow: 0 24px 60px rgba(0,0,0,.35); display: grid; gap: 12px; }
.entrada-sello { width: 56px; height: 56px; border-radius: 14px; background: #16294a; color: #fff; display: grid; place-items: center; font-weight: 700; font-size: 1.45rem; }
.entrada-comite .entrada-sello { background: #8a4b0f; }
.entrada-caja h1 { margin: 4px 0 0; font-size: 1.5rem; color: #16294a; }
.entrada-sub { margin: 0; color: #5b6672; font-size: .92rem; }
.entrada-list { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 12px; background: #2f6fb3; color: #fff; text-decoration: none; box-shadow: 0 6px 16px rgba(47,111,179,.35); transition: transform .12s, box-shadow .12s; }
.entrada-list:hover, .entrada-list:focus-visible { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(47,111,179,.45); }
.entrada-list strong { display: block; font-size: 1.02rem; }
.entrada-list small { display: block; color: #fff !important; opacity: .9; font-size: .8rem; }
.entrada-list strong { color: #fff; }
.entrada-list-sello { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 9px; background: #fff; color: #2f6fb3; display: grid; place-items: center; font-weight: 800; }
.entrada-otra { border-top: 1px solid #e3e8ee; padding-top: 8px; }
.entrada-otra summary { cursor: pointer; color: #5b6672; font-size: .88rem; }
.entrada-otra .formulario { margin-top: 10px; }
.entrada-pie { margin: 4px 0 0; text-align: center; color: #8a94a0; font-size: .8rem; }
@media (prefers-reduced-motion: reduce) { .entrada-list { transition: none; } }
