/* Estilos de la web de ona-crm. Paleta y tipografía de las maquetas elegidas
   (docs/diseno/pantallas.md): azul Ona #003865, turquesa #0FB7B2, fondo cálido #F4F3EF,
   Sora para títulos y Figtree para el texto. Modo oscuro con el marino de la familia Ona (#071C2B).

   Todos los colores son variables: el modo claro está en :root y el oscuro se aplica si el
   sistema lo pide (prefers-color-scheme) o si la persona lo elige (data-tema en <html>, tema.js). */
:root {
  --fondo: #F4F3EF; --superficie: #FFFFFF; --superficie-2: #FAFAF8; --hover: #F6F9FC; --sel: #EEF8F7;
  --texto: #1B2433; --texto-2: #33415C; --suave: #5A6678; --borde: #DDE1E6; --borde-2: #ECEEF1; --borde-campo: #D5D9E0;
  --titulo: #003865; --acento: #003865; --acento-2: #0B5E8E; --acento-texto: #FFFFFF; --turquesa: #0FB7B2;
  --nav: #003865; --nav-hover: #0C4A7A; --nav-icono: #9FB6CC; --gris: #F6F7F9; --pista: #E6E9EE;
  --ok-f: #D3F1EC; --ok-t: #0B5B55; --inc-f: #FCE9C4; --inc-t: #7A3B06; --no-f: #E3E7ED; --no-t: #3D4A5C;
  --rev-f: #ECE3FF; --rev-t: #4C1D95; --socio-f: #DCEBF7; --socio-t: #0B3F66; --aviso-f: #FFF4D6; --aviso-t: #7A4B00;
  --gusto: #EEF8F7; --sugerencia: #E7F0FA; --sugerencia-borde: #BCD3EC; --error: #9B1C1C;
  color-scheme: light;
}
/* Paleta oscura: la misma en los dos selectores (sistema en oscuro sin elección, o elección "oscuro") */
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) {
    --fondo: #0B1722; --superficie: #11212F; --superficie-2: #152838; --hover: #17304A; --sel: #123B45;
    --texto: #E6EDF3; --texto-2: #C3CFDB; --suave: #93A3B5; --borde: #22384B; --borde-2: #1B3042; --borde-campo: #2A4358;
    --titulo: #7FE3DA; --acento: #1ED3C7; --acento-2: #8FF2E7; --acento-texto: #071C2B; --turquesa: #1ED3C7;
    --nav: #071C2B; --nav-hover: #12324A; --nav-icono: #8FA9BF; --gris: #152838; --pista: #22384B;
    --ok-f: #0E3B36; --ok-t: #7FE3C8; --inc-f: #3D2A0A; --inc-t: #F5C56B; --no-f: #243446; --no-t: #C3CFDB;
    --rev-f: #2E2350; --rev-t: #C9B5FF; --socio-f: #173A5C; --socio-t: #A8CFF2; --aviso-f: #3A2E0A; --aviso-t: #F5D27A;
    --gusto: #123B45; --sugerencia: #173A5C; --sugerencia-borde: #2C5A85; --error: #FCA5A5;
    color-scheme: dark;
  }
}
:root[data-tema="oscuro"] {
  --fondo: #0B1722; --superficie: #11212F; --superficie-2: #152838; --hover: #17304A; --sel: #123B45;
  --texto: #E6EDF3; --texto-2: #C3CFDB; --suave: #93A3B5; --borde: #22384B; --borde-2: #1B3042; --borde-campo: #2A4358;
  --titulo: #7FE3DA; --acento: #1ED3C7; --acento-2: #8FF2E7; --acento-texto: #071C2B; --turquesa: #1ED3C7;
  --nav: #071C2B; --nav-hover: #12324A; --nav-icono: #8FA9BF; --gris: #152838; --pista: #22384B;
  --ok-f: #0E3B36; --ok-t: #7FE3C8; --inc-f: #3D2A0A; --inc-t: #F5C56B; --no-f: #243446; --no-t: #C3CFDB;
  --rev-f: #2E2350; --rev-t: #C9B5FF; --socio-f: #173A5C; --socio-t: #A8CFF2; --aviso-f: #3A2E0A; --aviso-t: #F5D27A;
  --gusto: #123B45; --sugerencia: #173A5C; --sugerencia-borde: #2C5A85; --error: #FCA5A5;
  color-scheme: dark;
}

* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body { font-family: Figtree, system-ui, -apple-system, 'Segoe UI', sans-serif; color: var(--texto); background: var(--fondo); font-size: 14px; }
h1, h2, h3, .sora { font-family: Sora, Figtree, system-ui, sans-serif; }
a { color: var(--titulo); } a:hover { color: var(--acento-2); }
button { font: inherit; cursor: pointer; color: inherit; }
input, select { font: inherit; color: var(--texto); background: var(--superficie); }
:focus-visible { outline: 2px solid var(--turquesa); outline-offset: 2px; }
.muted { color: var(--suave); }
.oculto { display: none !important; }

/* Estructura */
.app { display: flex; height: 100vh; }
.nav { width: 72px; flex-shrink: 0; background: var(--nav); display: flex; flex-direction: column; align-items: center; padding: 16px 0; gap: 14px; }
.nav .logo-nav { margin-bottom: 10px; }
.nav a, .nav button { width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center; color: var(--nav-icono); text-decoration: none; background: none; border: 0; }
.nav a[aria-current="page"], .nav a:hover, .nav button:hover { background: var(--nav-hover); color: #fff; }
.nav .abajo { margin-top: auto; }
.principal { flex-grow: 1; display: flex; flex-direction: column; min-width: 0; }
.cabecera { flex-shrink: 0; display: flex; align-items: center; gap: 16px; padding: 18px 24px 8px; }
.cabecera h1 { margin: 0; font-size: 24px; font-weight: 600; color: var(--titulo); }
.buscador { flex-grow: 1; max-width: 520px; display: flex; align-items: center; gap: 8px; height: 40px; padding: 0 14px; background: var(--superficie); border: 1px solid var(--borde-campo); border-radius: 10px; }
.buscador svg { stroke: var(--suave); }
.buscador input { border: 0; outline: 0; flex-grow: 1; background: transparent; font-size: 14px; }
.espacio { flex-grow: 1; }
.usuario { font-size: 13px; color: var(--suave); }
.boton { height: 36px; padding: 0 14px; border: 1px solid var(--borde-campo); border-radius: 10px; background: var(--superficie); color: var(--texto); }
.boton.primario { background: var(--acento); color: var(--acento-texto); border-color: var(--acento); font-weight: 600; }
.boton:disabled { opacity: .5; cursor: default; }
a.boton { display: inline-flex; align-items: center; text-decoration: none; }
.aviso { flex-shrink: 0; margin: 8px 24px 0; padding: 10px 14px; border-radius: 10px; background: var(--aviso-f); color: var(--aviso-t); font-size: 13px; }

/* Pestañas */
.pestanas { flex-shrink: 0; display: flex; gap: 2px; padding: 0 24px; border-bottom: 1px solid var(--borde); overflow-x: auto; }
.pestana { display: flex; flex-direction: column; gap: 2px; padding: 10px 14px 12px; border: 0; border-bottom: 3px solid transparent; background: none; color: var(--texto-2); text-align: left; white-space: nowrap; }
.pestana[aria-selected="true"] { border-bottom-color: var(--turquesa); color: var(--titulo); font-weight: 600; }
.pestana .num { font-size: 12px; color: var(--suave); font-weight: 400; }

/* Listado */
.cuerpo { display: flex; flex-grow: 1; min-height: 0; gap: 16px; padding: 14px 24px 0; }
.filtros { width: 250px; flex-shrink: 0; background: var(--superficie); border: 1px solid var(--borde); border-radius: 12px 12px 0 0; padding: 16px 18px; display: flex; flex-direction: column; gap: 18px; overflow-y: auto; }
.filtros .titulo { display: flex; justify-content: space-between; align-items: center; }
.grupo { display: flex; flex-direction: column; gap: 8px; }
.grupo .gt, .gt { font-size: 12px; font-weight: 600; color: var(--suave); text-transform: uppercase; letter-spacing: .04em; }
.grupo label { display: flex; align-items: center; gap: 8px; }
.grupo select { height: 34px; border: 1px solid var(--borde-campo); border-radius: 8px; padding: 0 8px; }
.carril { width: 48px; display: flex; flex-direction: column; align-items: center; gap: 12px; padding-top: 4px; }
.icono { width: 36px; height: 36px; border-radius: 10px; border: 1px solid var(--borde-campo); background: var(--superficie); display: flex; align-items: center; justify-content: center; position: relative; }
.icono .badge { position: absolute; top: -6px; right: -6px; min-width: 18px; height: 18px; border-radius: 9px; background: var(--turquesa); color: #071C2B; font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; padding: 0 4px; }
.tabla { flex-grow: 1; min-width: 0; display: flex; flex-direction: column; background: var(--superficie); border: 1px solid var(--borde); border-radius: 12px 12px 0 0; overflow: hidden; }
.tabla .scroll { overflow: auto; flex-grow: 1; }
.fila { display: grid; grid-template-columns: 2fr 1.05fr .9fr 1.7fr 1fr 1.2fr .45fr; align-items: center; gap: 12px; padding: 0 18px; min-height: 52px; border: 0; border-bottom: 1px solid var(--borde-2); width: 100%; background: var(--superficie); text-align: left; color: inherit; }
.fila:hover { background: var(--hover); }
.fila[aria-selected="true"] { background: var(--sel); }
.fila.cabeza { min-height: 42px; background: var(--superficie-2); font-size: 12px; font-weight: 600; color: var(--suave); text-transform: uppercase; letter-spacing: .04em; cursor: default; position: sticky; top: 0; }
.fila .nombre { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fila .corto { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fila > span:nth-child(3) { white-space: nowrap; }
.sistemas { display: flex; gap: 4px; flex-wrap: wrap; }
.sistemas .origen { margin-left: 0; }
.origen.sis-Noray { border-color: var(--turquesa); color: var(--titulo); }
.origen.sis-Club { border-color: var(--socio-t); color: var(--socio-t); }
.pie { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 18px; border-top: 1px solid var(--borde-2); font-size: 13px; color: var(--suave); }
.vacio { padding: 40px; text-align: center; color: var(--suave); }

/* Estados y medidores */
.st { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 11px; font-size: 12px; font-weight: 600; white-space: nowrap; text-decoration: none; }
.st.OPTIMO { background: var(--ok-f); color: var(--ok-t); } .st.INCOMPLETO { background: var(--inc-f); color: var(--inc-t); }
.st.NO_CONTACTABLE, .st.ARCHIVADO { background: var(--no-f); color: var(--no-t); } .st.REVISAR { background: var(--rev-f); color: var(--rev-t); }
.st.socio { background: var(--socio-f); color: var(--socio-t); } .st.gris { background: var(--no-f); color: var(--no-t); }
.st.aviso-ficha { background: var(--aviso-f); color: var(--aviso-t); }
.barra { height: 6px; border-radius: 3px; background: var(--pista); overflow: hidden; width: 56px; display: inline-block; vertical-align: middle; margin-right: 6px; }
.barra > span { display: block; height: 100%; }

/* Vista previa lateral */
.previa { width: 360px; flex-shrink: 0; background: var(--superficie); border: 1px solid var(--borde); border-radius: 12px 12px 0 0; padding: 20px 22px; display: flex; flex-direction: column; gap: 16px; overflow-y: auto; }
.previa h2 { margin: 0; font-size: 20px; font-weight: 600; color: var(--titulo); }
.previa .cab { display: flex; justify-content: space-between; align-items: flex-start; }
.kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.kpi { background: var(--gris); border-radius: 10px; padding: 10px; }
.kpi .k { font-size: 12px; color: var(--suave); } .kpi .v { font-family: Sora; font-size: 18px; font-weight: 600; }
.bloque { display: flex; flex-direction: column; gap: 6px; }
.enlace-boton { display: flex; align-items: center; justify-content: center; height: 44px; border-radius: 10px; background: var(--acento); color: var(--acento-texto); text-decoration: none; font-weight: 600; margin-top: auto; }
.enlace-boton:hover { color: var(--acento-texto); background: var(--acento-2); }

/* Ficha 360 */
.ficha { display: flex; flex-direction: column; flex-grow: 1; min-height: 0; overflow: hidden; }
.ficha-cab { flex-shrink: 0; background: var(--superficie); border-bottom: 1px solid var(--borde); padding: 16px 24px; display: flex; flex-direction: column; gap: 12px; }
.ficha-cab .fila-1 { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ficha-cab h1 { margin: 0; font-size: 24px; color: var(--titulo); font-weight: 600; }
.ficha-kpis { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.ficha-cuerpo { display: flex; flex-grow: 1; min-height: 0; gap: 16px; padding: 16px 24px 0; }
.ficha-izq { width: 380px; flex-shrink: 0; display: flex; flex-direction: column; gap: 12px; overflow-y: auto; padding-bottom: 24px; }
.ficha-izq.contraida { width: 48px; }
.ficha-izq .alternar { display: flex; justify-content: flex-end; }
.tarjeta { background: var(--superficie); border: 1px solid var(--borde); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 8px; }
.tarjeta h3 { margin: 0; font-size: 13px; font-weight: 600; color: var(--suave); text-transform: uppercase; letter-spacing: .04em; }
.dato { display: grid; grid-template-columns: 120px 1fr; gap: 8px; align-items: baseline; }
.dato .k { color: var(--suave); font-size: 13px; }
.origen { font-size: 11px; color: var(--suave); border: 1px solid var(--borde); border-radius: 6px; padding: 0 5px; margin-left: 6px; white-space: nowrap; }
.contacto { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.gusto { padding: 8px 10px; border-radius: 10px; background: var(--gusto); }
.gusto.sugerencia { background: var(--sugerencia); border: 1px solid var(--sugerencia-borde); font-weight: 600; }
.ficha-centro { flex-grow: 1; min-width: 0; display: flex; flex-direction: column; background: var(--superficie); border: 1px solid var(--borde); border-radius: 12px 12px 0 0; overflow: hidden; }
.chips { display: flex; gap: 6px; flex-wrap: wrap; padding: 12px 16px; border-bottom: 1px solid var(--borde-2); }
.chip { height: 30px; padding: 0 12px; border: 1px solid var(--borde-campo); border-radius: 15px; background: var(--superficie); font-size: 13px; color: var(--texto-2); }
.chip[aria-pressed="true"] { background: var(--sel); border-color: var(--turquesa); color: var(--titulo); font-weight: 600; }
.linea { overflow-y: auto; padding: 8px 16px 24px; flex-grow: 1; }
.anio { font-family: Sora; font-weight: 600; color: var(--titulo); padding: 14px 0 6px; position: sticky; top: 0; background: var(--superficie); }
.evento { display: grid; grid-template-columns: 90px 18px 1fr; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--borde-2); }
.evento .fecha { color: var(--suave); font-size: 13px; }
.evento .punto { width: 10px; height: 10px; border-radius: 5px; margin-top: 5px; background: #9AA3B2; }
.evento .punto.ESTANCIA { background: #14A08F; } .evento .punto.RESERVA_FUTURA { background: var(--turquesa); }
.evento .punto.CANCELACION, .evento .punto.NO_SHOW { background: #D97706; }
.evento .t { font-weight: 600; } .evento .d { color: var(--texto-2); white-space: pre-wrap; margin-top: 2px; font-size: 13px; }

/* Duplicados */
.dup { display: flex; gap: 16px; flex-grow: 1; min-height: 0; padding: 14px 24px 0; }
.dup-lista { width: 380px; flex-shrink: 0; background: var(--superficie); border: 1px solid var(--borde); border-radius: 12px 12px 0 0; display: flex; flex-direction: column; overflow: hidden; }
.dup-lista .cab { padding: 14px 16px; border-bottom: 1px solid var(--borde-2); }
.dup-lista .cab h2 { margin: 0; font-size: 18px; color: var(--titulo); }
.dup-lista .items { overflow-y: auto; flex-grow: 1; }
.dup-item { display: flex; flex-direction: column; gap: 4px; padding: 12px 16px; border: 0; border-bottom: 1px solid var(--borde-2); background: var(--superficie); text-align: left; color: inherit; text-decoration: none; }
.dup-item:hover { background: var(--hover); color: inherit; }
.dup-item[aria-selected="true"] { background: var(--rev-f); }
.dup-item .linea-1 { display: flex; justify-content: space-between; gap: 8px; }
.sc { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 11px; font-size: 12px; font-weight: 700; background: var(--rev-f); color: var(--rev-t); }
.dup-comp { flex-grow: 1; min-width: 0; background: var(--superficie); border: 1px solid var(--borde); border-radius: 12px 12px 0 0; overflow: auto; }
.dup-comp .motivo { padding: 14px 20px; border-bottom: 1px solid var(--borde-2); display: flex; gap: 12px; align-items: center; }
.comp { display: grid; grid-template-columns: 180px 1fr 1fr; border-bottom: 1px solid var(--borde-2); }
.comp > div { padding: 10px 16px; }
.comp.cabeza { background: var(--superficie-2); }
.comp.igual { background: var(--sel); }

/* Login */
.login { min-height: 100vh; display: flex; align-items: center; justify-content: center; position: relative; }
.login form { width: 380px; background: var(--superficie); border: 1px solid var(--borde); border-radius: 16px; padding: 32px; display: flex; flex-direction: column; gap: 14px; }
.login h1 { margin: 0; font-size: 24px; color: var(--titulo); }
.login label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--suave); }
.login input { height: 42px; border: 1px solid var(--borde-campo); border-radius: 10px; padding: 0 12px; font-size: 15px; }
.login .error { color: var(--error); font-size: 13px; min-height: 18px; }
.login .boton { height: 44px; }
.login .marca { display: flex; align-items: center; gap: 12px; }
.login .logo-img { border-radius: 14px; }
.login .nota { margin: 0; font-size: 12px; }
.login #con-clave { display: flex; flex-direction: column; gap: 14px; }
.login [hidden] { display: none !important; }
.login .boton-microsoft { display: flex; align-items: center; justify-content: center; text-decoration: none; }
.login .enlace { background: none; border: 0; padding: 0; color: var(--suave); font-size: 12px; text-decoration: underline; cursor: pointer; align-self: center; }
.login .tema { position: absolute; top: 16px; right: 16px; }
.boton-tema { width: 40px; height: 40px; border-radius: 10px; border: 1px solid var(--borde-campo); background: var(--superficie); display: flex; align-items: center; justify-content: center; }

/* Avisos de la barra lateral */
.nav a.con-aviso { position: relative; }
.aviso-nav { position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; border-radius: 9px; background: #F59E0B; color: #1B2433; font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; padding: 0 4px; }
.error { color: var(--error); font-size: 13px; }
.linea-1 { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.contador { min-width: 20px; height: 20px; border-radius: 10px; background: var(--turquesa); color: #071C2B; font-size: 11px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; padding: 0 5px; }
.casilla { display: flex; align-items: center; gap: 8px; font-size: 13px; }
textarea { font: inherit; color: var(--texto); background: var(--superficie); border: 1px solid var(--borde-campo); border-radius: 10px; padding: 8px 10px; width: 100%; resize: vertical; }
select { height: 34px; border: 1px solid var(--borde-campo); border-radius: 8px; padding: 0 8px; }
input:not([type=checkbox]):not([type=radio]) { height: 36px; border: 1px solid var(--borde-campo); border-radius: 8px; padding: 0 10px; }
.buscador input { height: auto; border: 0; }
code { background: var(--gris); padding: 2px 6px; border-radius: 6px; font-size: 14px; user-select: all; }

/* Bandeja */
.conv { display: flex; gap: 16px; flex-grow: 1; min-height: 0; padding: 14px 24px 0; }
.conv-lista { width: 340px; flex-shrink: 0; background: var(--superficie); border: 1px solid var(--borde); border-radius: 12px 12px 0 0; display: flex; flex-direction: column; overflow: hidden; }
.conv-filtros { display: flex; gap: 6px; flex-wrap: wrap; padding: 12px; border-bottom: 1px solid var(--borde-2); }
.conv-lista .items { overflow-y: auto; flex-grow: 1; }
.conv-item { display: flex; flex-direction: column; gap: 4px; padding: 10px 14px; border-bottom: 1px solid var(--borde-2); color: inherit; text-decoration: none; }
.conv-item:hover { background: var(--hover); color: inherit; }
.conv-item[aria-current="true"] { background: var(--sel); }
.conv-item.pide { border-left: 3px solid #F59E0B; }
.conv-item .linea-1 { justify-content: space-between; flex-wrap: nowrap; }
.conv-item .corto { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.conv-centro { flex-grow: 1; min-width: 0; display: flex; flex-direction: column; background: var(--superficie); border: 1px solid var(--borde); border-radius: 12px 12px 0 0; overflow: hidden; }
.conv-cab { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 1px solid var(--borde-2); }
.conv-estado { display: flex; justify-content: space-between; gap: 12px; padding: 8px 16px; font-size: 13px; background: var(--superficie-2); border-bottom: 1px solid var(--borde-2); }
.conv-estado.pide { background: var(--aviso-f); color: var(--aviso-t); }
.conv-mensajes { flex-grow: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 10px; background: var(--fondo); }
.burbuja { max-width: 72%; padding: 8px 12px; border-radius: 12px; background: var(--superficie); border: 1px solid var(--borde); display: flex; flex-direction: column; gap: 4px; }
.burbuja.entra { align-self: flex-start; border-top-left-radius: 4px; }
.burbuja.sale { align-self: flex-end; border-top-right-radius: 4px; background: var(--sel); }
.burbuja.sale.BOT, .burbuja.sale.SISTEMA { background: var(--sugerencia); }
.burbuja.sale.IA { background: var(--rev-f); }
.burbuja.nota { align-self: center; background: var(--aviso-f); color: var(--aviso-t); border-style: dashed; max-width: 80%; }
.burbuja .autor { display: flex; gap: 8px; align-items: baseline; font-size: 12px; }
.burbuja .quien { font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: 11px; }
.quien.CLIENTE { color: var(--suave); } .quien.AGENTE { color: var(--ok-t); } .quien.BOT, .quien.SISTEMA { color: var(--socio-t); } .quien.IA { color: var(--rev-t); }
.burbuja .texto { white-space: pre-wrap; word-break: break-word; }
.pie-burbuja { font-size: 11px; text-align: right; }
.conv-redactar { display: flex; flex-direction: column; gap: 8px; padding: 12px 16px; border-top: 1px solid var(--borde-2); }
.conv-redactar .linea-1 { justify-content: flex-end; }
.conv-redactar .casilla { margin-right: auto; }
.conv-lado { width: 320px; flex-shrink: 0; display: flex; flex-direction: column; gap: 12px; overflow-y: auto; padding-bottom: 24px; }
.simulador { border-style: dashed; }
.simulador input, .simulador textarea { width: 100%; }

/* Configuración */
.config { display: flex; gap: 16px; flex-grow: 1; min-height: 0; padding: 14px 24px 0; }
.config-menu { width: 200px; flex-shrink: 0; display: flex; flex-direction: column; gap: 4px; }
.config-menu a { padding: 10px 12px; border-radius: 10px; color: var(--texto-2); text-decoration: none; }
.config-menu a:hover { background: var(--hover); }
.config-menu a[aria-current="true"] { background: var(--sel); color: var(--titulo); font-weight: 600; }
.config-cuerpo { flex-grow: 1; min-width: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 16px; padding-bottom: 32px; }
.tabla-config { width: 100%; border-collapse: collapse; font-size: 13px; }
.tabla-config th { text-align: left; font-size: 12px; font-weight: 600; color: var(--suave); text-transform: uppercase; letter-spacing: .04em; padding: 8px; border-bottom: 1px solid var(--borde); }
.tabla-config td { padding: 8px; border-bottom: 1px solid var(--borde-2); vertical-align: top; }
.tabla-config td.corto { max-width: 320px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tabla-config .boton { height: 30px; padding: 0 10px; margin: 0 4px 4px 0; }
.campo { display: flex; flex-direction: column; gap: 4px; }
.campo .k { font-size: 13px; color: var(--suave); }
.campo .ayuda { font-size: 12px; }
.campo input, .campo select, .campo textarea { width: 100%; }
.campo select[multiple] { height: auto; }
.dos { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.lista-comprobacion { margin: 0; padding-left: 0; list-style: none; display: flex; flex-direction: column; gap: 6px; }
.pasos { display: flex; flex-direction: column; gap: 10px; }
.paso { border: 1px solid var(--borde); border-left: 3px solid var(--turquesa); border-radius: 10px; padding: 12px; display: flex; flex-direction: column; gap: 10px; background: var(--superficie-2); }
.previa-plantilla { align-self: flex-start; max-width: 420px; }
.botones-previa { display: flex; gap: 6px; flex-wrap: wrap; }
.dialogo { border: 1px solid var(--borde); border-radius: 16px; padding: 24px; width: min(520px, 92vw); background: var(--superficie); color: var(--texto); }
.dialogo.ancho { width: min(760px, 94vw); }
.dialogo::backdrop { background: rgba(7, 28, 43, .55); }
.dialogo h2 { margin: 0; font-size: 20px; color: var(--titulo); }
.dialogo .linea-1 { justify-content: flex-end; }
.centrado { flex-grow: 1; display: flex; align-items: center; justify-content: center; }
.formulario { width: 400px; background: var(--superficie); border: 1px solid var(--borde); border-radius: 16px; padding: 28px; display: flex; flex-direction: column; gap: 12px; }
.formulario h2 { margin: 0; color: var(--titulo); }
.formulario label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--suave); }

/* Mapa del flujo */
.mapa-marco { overflow: auto; padding: 12px; border: 1px solid var(--borde); border-radius: 12px; background: var(--fondo);
  background-image: radial-gradient(var(--borde) 1px, transparent 1px); background-size: 18px 18px; max-height: 620px; }
.mapa { position: relative; margin: 0 auto; }
.mapa-lineas { position: absolute; left: 0; top: 0; overflow: visible; }
.mapa-lineas .arista { fill: none; stroke: var(--suave); stroke-width: 1.6; }
.mapa-lineas .arista.no { stroke-dasharray: 5 4; }
.mapa-etiqueta { position: absolute; font-size: 11px; font-weight: 700; padding: 1px 6px; border-radius: 8px; background: var(--ok-f); color: var(--ok-t); }
.mapa-etiqueta.no { background: var(--inc-f); color: var(--inc-t); }
.mapa-nodo { position: absolute; box-sizing: border-box; display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; text-align: left;
  background: var(--superficie); border: 1px solid var(--borde-campo); border-radius: 12px; color: inherit; font-size: 13px; box-shadow: 0 1px 2px rgba(7, 28, 43, .08); }
.mapa-nodo:hover { border-color: var(--turquesa); }
.mapa-nodo.inicio { border-color: var(--turquesa); border-width: 2px; }
.mapa-nodo.suelto { border-style: dashed; opacity: .8; }
.mapa-nodo .nt { display: flex; align-items: center; gap: 8px; font-weight: 600; font-size: 14px; }
.mapa-nodo .ic { width: 26px; height: 26px; border-radius: 7px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 13px; background: var(--gris); }
.mapa-nodo .ic.inicio { background: var(--sel); color: var(--titulo); } .mapa-nodo .ic.wa { background: var(--ok-f); color: var(--ok-t); }
.mapa-nodo .ic.espera { background: var(--no-f); color: var(--no-t); } .mapa-nodo .ic.cond { background: var(--sugerencia); color: var(--socio-t); }
.mapa-nodo .ic.agente { background: var(--inc-f); color: var(--inc-t); } .mapa-nodo .ic.fin { background: var(--gris); color: var(--suave); }
.mapa-nodo .corto { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mapa-nodo .stat { font-size: 12px; color: var(--texto-2); background: var(--gris); border-radius: 6px; padding: 2px 6px; align-self: flex-start; }
.paso.resaltado { outline: 2px solid var(--turquesa); }
.aviso.llamada { background: var(--ok-f); color: var(--ok-t); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.conv-filtros.canales { border-bottom: 0; padding-bottom: 0; }
.conv-item .canal { color: var(--suave); font-weight: 400; }
.burbuja .asunto { font-weight: 600; font-size: 13px; }
.centrado-arriba { align-items: center; padding-top: 24px; }
.centrado-arriba .tarjeta { width: min(560px, 100%); }
