:root {
    --navy: #0B72E8; --navy-2: #1F2D3D; --bg: #F2F5F9; --card: #FFFFFF;
    --ink: #1F2D3D; --muted: #6B7A8D; --line: #DDE4EC;
    --rojo: #CC0000; --naranja: #FF9900; --azul: #0B72E8; --gris: #9AA5B1;
    --verde: #1A7A3A;
    --side: #0A2540;        /* fondo de la barra lateral (azul muy oscuro) */
    --side-act: #0B72E8;    /* item activo */
    --sidebar-w: 220px; --sidebar-w-min: 64px;
  }
  * { box-sizing: border-box; margin: 0; }
  body { font: 14px/1.45 -apple-system, 'Segoe UI', Roboto, Arial, sans-serif; background: var(--bg); color: var(--ink); }

  /* ===== Header horizontal (cabecera) ===== */
  .topbar {
    display: flex; align-items: center; gap: 28px; background: #fff;
    border-bottom: 1px solid var(--line); padding: 0 24px; height: 54px;
    position: sticky; top: 0; z-index: 50;
  }
  .top-logo { font-size: 16px; font-weight: 800; letter-spacing: .3px; color: var(--navy-2); white-space: nowrap; }
  .top-logo span { color: var(--azul); font-weight: 400; }
  .top-nav { display: flex; gap: 4px; height: 100%; }
  .top-nav button {
    background: transparent; border: none; padding: 0 14px; cursor: pointer;
    font-size: 13.5px; font-weight: 600; color: var(--muted); height: 100%;
    border-bottom: 2.5px solid transparent;
  }
  .top-nav button:hover { color: var(--navy-2); }
  .top-nav button.act { color: var(--azul); border-bottom-color: var(--azul); }
  .top-user { margin-left: auto; display: flex; align-items: center; gap: 10px; }
  .tu-info { font-size: 12px; color: var(--muted); text-align: right; line-height: 1.2; }
  .tu-info b { color: var(--navy-2); display: block; font-size: 13px; }
  .top-icon {
    background: #F4F6F9; border: 1px solid var(--line); width: 32px; height: 32px;
    border-radius: 7px; cursor: pointer; font-size: 14px;
  }
  .top-icon:hover { background: #E4EAF1; }

  .content { padding: 20px 24px; max-width: 1500px; margin: 0 auto; }

  .vista { display: none; } .vista.act { display: block; }
  /* Columnas de control: solo visibles para admin/jefa (body.ve-todo) */
  .colCtrl { display: none; }
  body.ve-todo .colCtrl { display: table-cell; }

  .barra { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; flex-wrap: wrap; }
  .barra h2 { font-size: 15px; }
  /* Barra de leads: titulo arriba, filtros en fila propia */
  .barra-leads { flex-direction: column; align-items: stretch; gap: 12px; }
  .barra-leads h2 { font-size: 18px; }
  .filtros-row { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
  .filtros-row select { border-radius: 8px; border: 1px solid var(--line); }
  /* Filtro de fechas tipo pill */
  .fechas { display: flex; align-items: center; gap: 6px; background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 4px 8px; font-size: 12px; color: var(--muted); }
  .fechas .cal-ico { font-size: 13px; opacity: .7; }
  .fechas input[type=date] { padding: 3px 5px; border-radius: 6px; border: none; font-size: 12px; color: var(--ink); }
  .fechas input[type=date]:focus { outline: 1px solid var(--azul); }
  .fechas-sep { color: var(--gris); }
  .fechas-x { width: 24px; height: 24px; border: none; background: #F0F3F7; border-radius: 6px; color: var(--azul); cursor: pointer; font-size: 12px; }
  .fechas-x:hover { background: #E0E8F2; }
  .barra .sub { color: var(--muted); font-size: 12px; }
  /* Tarjetas de resumen (highlights) - compactas con icono */
  .tarjetas { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 16px; }
  .tarjeta { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; display: flex; align-items: center; gap: 12px; }
  .hl-ico { width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; flex: none; background: #EEF1F5; color: var(--gris); }
  .hl-txt { line-height: 1.25; }
  .hl-et { font-size: 12px; color: var(--muted); font-weight: 600; }
  .hl-v { font-size: 23px; font-weight: 800; color: var(--ink); line-height: 1.1; }
  .hl-sub { font-size: 10.5px; color: var(--gris); }
  .tarjeta.rojo .hl-ico { background: #FCE4E4; color: var(--rojo); } .tarjeta.rojo .hl-v { color: var(--rojo); }
  .tarjeta.azul .hl-ico { background: #E4ECF7; color: var(--azul); }
  .tarjeta.naranja .hl-ico { background: #FCEEE0; color: #C77700; }
  .tarjeta.morado .hl-ico { background: #EEE8F7; color: #7B5EA7; } .tarjeta.morado .hl-v { color: #7B5EA7; }
  .tarjeta.verde .hl-ico { background: #E3F4E8; color: #2E7D32; } .tarjeta.verde .hl-v { color: #2E7D32; }
  .tarjeta.morado .et::before { background: #7B5EA7; }
  /* Filtro de fechas */
  /* Toggle Tabla / Kanban */
  .vista-toggle { display: inline-flex; border: 1px solid var(--line); border-radius: 7px; overflow: hidden; }
  .vista-toggle button { background: #fff; border: none; padding: 6px 12px; cursor: pointer; font-size: 12.5px; font-weight: 600; color: var(--muted); }
  .vista-toggle button.act { background: var(--navy-2); color: #fff; }
  /* Kanban estilo HubSpot - columnas uniformes */
  .kanban { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 12px; overflow-x: auto; padding-bottom: 8px; }
  .kcol { display: flex; flex-direction: column; max-height: 72vh; min-width: 175px; background: #F7F9FB; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
  .kcol-head { display: flex; align-items: center; justify-content: center; gap: 5px; padding: 11px 8px; background: var(--azul); white-space: nowrap; }
  .kcol-head .ktit { color: #fff; font-size: 11.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .2px; }
  .kcol-head .kcnt { color: #fff; font-weight: 800; font-size: 12px; }
  .kcol-metricas { display: flex; justify-content: center; padding: 6px 12px 9px; border-bottom: 1px solid var(--line); }
  .kcol-metricas .km { display: flex; flex-direction: column; align-items: center; }
  .kcol-metricas .km-v { font-size: 16px; font-weight: 800; color: var(--navy-2); }
  .kcol-body { padding: 9px; overflow-y: auto; flex: 1; display: flex; flex-direction: column; gap: 9px; min-height: 80px; }
  .kcol-body.drop { background: #DDEBFB; outline: 2px dashed var(--azul); outline-offset: -4px; border-radius: 8px; }
  .kvacio { color: var(--gris); text-align: center; padding: 26px 0; font-size: 13px; font-weight: 600; display: flex; flex-direction: column; align-items: center; gap: 4px; }
  .kvacio-ic { font-size: 26px; opacity: .4; }
  .kvacio small { font-size: 11px; font-weight: 400; line-height: 1.4; }
  /* Tarjeta */
  .kcard { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 11px; cursor: grab; box-shadow: 0 1px 2px rgba(0,0,0,.04); }
  .kcard:hover { border-color: #BBC9DC; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
  .kcard:active { cursor: grabbing; }
  .kcard.drag { opacity: .5; }
  .kcard-top { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; }
  .kprio { display: inline-block; padding: 1px 9px; border-radius: 10px; font-size: 10px; font-weight: 700; color: #fff; }
  .kprio.p-Muyalta { background: var(--rojo); } .kprio.p-Alta { background: var(--naranja); }
  .kprio.p-Media { background: #E6B800; } .kprio.p-Baja { background: var(--gris); }
  .kprio.p-Muybaja { background: #B0B8C1; }
  .kprob { font-size: 11px; font-weight: 700; color: var(--navy-2); background: #EEF1F5; border-radius: 8px; padding: 1px 9px; margin-left: auto; }
  .kcard .knom { color: var(--ink); font-weight: 700; font-size: 13px; margin-bottom: 2px; line-height: 1.3; cursor: pointer; }
  .kcard .knom:hover { color: var(--azul); }
  .kcard .kgp { font-size: 11px; color: var(--muted); margin-bottom: 6px; }
  .kcard .kgp .kasig { color: var(--gris); }
  .kcard .kgp .ktel { color: var(--gris); }
  .kcard .kacc { display: flex; align-items: center; gap: 6px; font-size: 11px; color: var(--azul); font-weight: 600; margin-bottom: 6px; line-height: 1.3; }
  .kcard .kacc .kacc-ico { display: inline-flex; align-items: center; flex: none; }
  .kcard .kacc .kacc-txt { flex: 1; }
  .kcard .kacc.venc .kacc-txt { color: var(--rojo); }
  .kbadge-venc { display: inline-block; background: #FCE4E4; color: var(--rojo); border: 1px solid #F2C4C4; font-size: 9px; font-weight: 700; padding: 0 5px; border-radius: 8px; }
  .kchips { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 8px; }
  .kdot-exp { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-left: 7px; vertical-align: middle; flex: none; }
  .kchip { background: #EAF3EA; color: #2E7D32; font-size: 10px; font-weight: 600; padding: 1px 8px; border-radius: 9px; }
  .kestado { font-size: 10px; font-weight: 700; padding: 1px 8px; border-radius: 10px; }
  .kestado.porcal { background: #FFF3E0; color: #C77700; }
  .kbtns { display: flex; gap: 4px; border-top: 1px solid var(--line); padding-top: 8px; }
  .kbtns { display: flex; gap: 5px; border-top: 1px solid var(--line); padding-top: 8px; }
  .kbtn-ic { width: 32px; height: 30px; border-radius: 6px; border: 1px solid var(--line); background: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; flex: none; }
  .kbtn-ic.wa { color: #1EA952; border-color: #BfE6CC; } .kbtn-ic.wa:hover { background: #EAF7EF; }
  .kbtn-ic.ll { color: var(--azul); border-color: #BBD3F0; } .kbtn-ic.ll:hover { background: #EAF2FC; }
  .kbtn { flex: 1; text-align: center; font-size: 10.5px; font-weight: 600; padding: 5px 0; border-radius: 6px; border: 1px solid var(--line); background: #fff; cursor: pointer; text-decoration: none; color: var(--navy-2); }
  .kbtn.rg { color: var(--navy-2); } .kbtn.rg:hover { background: #F0F3F7; }
  /* Leyenda de prioridad */
  .kleyenda { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 14px; padding: 10px 14px; background: #F7F9FB; border: 1px solid var(--line); border-radius: 9px; font-size: 12px; color: var(--muted); }
  .kleg { display: flex; align-items: center; gap: 6px; }
  .kdot { width: 9px; height: 9px; border-radius: 50%; }
  .kleyenda .venc-leg { margin-left: auto; }
  /* Panel del pie a la derecha - ancho fijo, se mantiene a la derecha */
  .kpanel { flex: 0 0 240px; background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 14px; align-self: flex-start; }
  .kpanel h4 { font-size: 13px; color: var(--navy-2); margin-bottom: 10px; }
  .kpanel .filtros { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
  .kpanel select { width: 100%; padding: 6px 8px; border-radius: 6px; border: 1px solid var(--line); font-size: 12px; }
  .kpanel .pie-wrap { display: flex; justify-content: center; position: relative; margin: 6px 0 12px; }
  .kpanel .pie-centro { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); text-align: center; }
  .kpanel .pie-centro .t { font-size: 9px; color: var(--muted); text-transform: uppercase; }
  .kpanel .pie-centro .m { font-size: 13px; font-weight: 800; color: var(--navy-2); }
  .kpanel .leyenda { display: flex; flex-direction: column; gap: 6px; }
  .kpanel .leg-item { display: flex; align-items: center; gap: 7px; font-size: 11.5px; }
  .kpanel .leg-item .punto { width: 10px; height: 10px; border-radius: 2px; flex: none; }
  .kpanel .leg-item .nom { flex: 1; color: var(--ink); }
  .kpanel .leg-item .val { color: var(--muted); font-weight: 600; }
  .btn {
    background: var(--navy); color: #fff; border: none; padding: 8px 14px;
    border-radius: 7px; cursor: pointer; font-size: 13px; font-weight: 600;
  }
  .btn.sec { background: #E4EAF1; color: var(--navy); }
  /* Botones de accion secundarios: tono sobrio (gris azulado), no el azul fuerte del encabezado */
  .btn.accion { background: #3D5A80; color: #fff; font-weight: 600; }
  .btn.accion:hover { background: #34507A; }
  /* Botones de solo icono (exportar, actualizar) */
  .ico-btn {
    background: #E4EAF1; color: var(--navy); padding: 7px 11px; font-size: 16px;
    line-height: 1; display: inline-flex; align-items: center; justify-content: center;
  }
  .ico-btn:hover { background: #D2DCE8; }
  .btn-cancelar:hover { background: var(--rojo); color: #fff; }
  .btn:disabled { opacity: .5; cursor: default; }

  table { width: 100%; border-collapse: collapse; background: var(--card); border-radius: 10px; overflow: hidden; box-shadow: 0 1px 3px rgba(13,43,78,.08); }
  th { background: var(--navy); color: #fff; text-align: left; padding: 9px 10px; font-size: 12px; white-space: nowrap; }
  td { padding: 8px 10px; border-top: 1px solid var(--line); font-size: 13px; vertical-align: middle; }
  tr.fila:hover { background: #F0F5FB; cursor: pointer; }
  .vacio { padding: 28px; text-align: center; color: var(--muted); }

  .chip { display: inline-block; padding: 3px 9px; border-radius: 12px; font-size: 11.5px; font-weight: 700; color: #fff; white-space: nowrap; }
  .p-Muy.alta, .p-Muyalta { background: var(--rojo); }
  .p-Alta { background: var(--naranja); }
  .p-Media { background: var(--azul); }
  .p-Baja { background: var(--gris); }

  .et { display: inline-block; padding: 3px 8px; border-radius: 5px; font-size: 11.5px; font-weight: 600; white-space: nowrap; }
  .vencida { color: var(--rojo); font-weight: 700; }
  .badge-venc { display: inline-block; margin-top: 3px; padding: 1px 7px; border: 1.3px solid var(--rojo);
    color: var(--rojo); border-radius: 10px; font-size: 10.5px; font-weight: 700; white-space: nowrap; }
  th.orden { cursor: pointer; user-select: none; }
  th.orden:hover { background: #16406F; }
  /* Paginacion */
  .paginacion { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 14px; flex-wrap: wrap; }
  .pag-info { font-size: 12.5px; color: var(--muted); }
  .pag-nav { display: flex; align-items: center; gap: 8px; }
  .pag-btn { width: 30px; height: 30px; border-radius: 7px; border: 1px solid var(--line); background: #fff; cursor: pointer; color: var(--navy-2); font-size: 15px; }
  .pag-btn:hover:not(:disabled) { background: #F0F3F7; }
  .pag-btn:disabled { opacity: .4; cursor: default; }
  .pag-num { min-width: 28px; text-align: center; font-weight: 700; color: var(--azul); background: #EAF2FC; border-radius: 7px; padding: 5px 0; }
  .pag-filas { font-size: 12.5px; color: var(--muted); display: flex; align-items: center; gap: 8px; }
  /* Celda Lead enriquecida */
  .lead-cell { line-height: 1.45; min-width: 150px; }
  .lead-nom { font-weight: 700; color: var(--ink); font-size: 13px; }
  .lead-asig { font-size: 11.5px; color: var(--muted); }
  .lead-fuente { font-size: 11px; color: var(--gris); }
  .lead-estado { font-size: 11px; color: var(--rojo); font-weight: 600; }
  .lead-intentos { font-size: 11px; color: var(--azul); font-weight: 600; }
  /* Celda proxima accion: icono azul con espacio + subtitulo */
  .acc-cell { display: flex; align-items: flex-start; gap: 9px; min-width: 175px; }
  .acc-ico { width: 30px; height: 30px; border-radius: 8px; background: #EAF2FC; display: inline-flex; align-items: center; justify-content: center; flex: none; }
  .acc-txt { line-height: 1.35; }
  .acc-main { font-size: 12.5px; color: var(--ink); }
  .acc-sub { font-size: 11px; color: var(--muted); }
  /* Columna de accion: iconos + registrar */
  .colAccion .acc-btns { display: flex; gap: 6px; align-items: center; }
  .acc-ic { width: 32px; height: 32px; border-radius: 8px; border: 1px solid var(--line); background: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
  .acc-ic.wa { color: #1EA952; } .acc-ic.wa:hover { background: #EAF7EF; border-color: #BfE6CC; }
  .acc-ic.ll { color: var(--azul); } .acc-ic.ll:hover { background: #EAF2FC; border-color: #BBD3F0; }
  .acc-reg { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; font-weight: 600; padding: 7px 11px; border-radius: 8px; border: 1px solid var(--line); background: #fff; color: var(--navy-2); cursor: pointer; white-space: nowrap; }
  .acc-reg:hover { background: #F0F3F7; border-color: #BBC9DC; }
  /* ===== Dashboard comercial ===== */
  .db-bloque { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 18px; margin-bottom: 16px; }
  .db-tit { font-size: 15px; font-weight: 800; color: var(--navy-2); margin-bottom: 14px; }
  .db-cols2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
  .db-salud { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
  .db-card { border: 1px solid var(--line); border-radius: 11px; padding: 14px; }
  .db-ic { width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 17px; margin-bottom: 8px; }
  .db-ic.azul { background: #E4ECF7; } .db-ic.rojo { background: #FCE4E4; } .db-ic.celeste { background: #E0F0FB; }
  .db-ic.verde { background: #E3F4E8; } .db-ic.morado { background: #EEE8F7; color: #7B5EA7; font-weight: 800; }
  .db-val { font-size: 26px; font-weight: 800; color: var(--navy-2); line-height: 1; }
  .db-val.sm { font-size: 19px; color: #7B5EA7; }
  .db-lbl { font-size: 12.5px; font-weight: 700; color: var(--ink); margin-top: 4px; }
  .db-sub { font-size: 11px; color: var(--muted); }
  /* Embudo */
  .db-embudo, .db-gp { width: 100%; border-collapse: collapse; box-shadow: none; }
  .db-embudo th, .db-gp th { background: none; color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .3px; text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--line); }
  .db-embudo td, .db-gp td { padding: 9px 8px; border-bottom: 1px solid #F0F2F5; font-size: 12.5px; }
  .db-et { display: inline-block; padding: 3px 9px; border-radius: 6px; font-size: 11.5px; font-weight: 600; }
  .db-prob { display: flex; align-items: center; gap: 7px; }
  .db-bar { width: 60px; height: 6px; background: #E4EAF1; border-radius: 4px; overflow: hidden; flex: none; }
  .db-bar span { display: block; height: 100%; }
  .db-obs { color: var(--rojo); font-size: 11px; font-weight: 600; }
  .db-total td { border-top: 2px solid var(--line); border-bottom: none; }
  /* Alertas */
  .db-alerta { display: flex; align-items: center; gap: 11px; padding: 11px 0; border-bottom: 1px solid #F0F2F5; }
  .db-alerta:last-child { border-bottom: none; }
  .db-al-ic { width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 15px; flex: none; }
  .db-al-ic.rojo { background: #FCE4E4; color: var(--rojo); } .db-al-ic.naranja { background: #FCEEE0; color: #C77700; }
  .db-al-ic.azul { background: #E0F0FB; color: var(--azul); } .db-al-ic.verde { background: #E3F4E8; color: #2E7D32; }
  .db-al-badge { font-size: 10.5px; font-weight: 700; padding: 2px 9px; border-radius: 9px; flex: none; }
  .db-al-badge.rojo { background: var(--rojo); color: #fff; } .db-al-badge.naranja { background: #FF9900; color: #fff; }
  .db-al-badge.azul { background: var(--azul); color: #fff; } .db-al-badge.verde { background: #34A853; color: #fff; }
  .db-al-txt { flex: 1; } .db-al-tit { font-size: 13px; font-weight: 700; color: var(--ink); } .db-al-sub { font-size: 11.5px; color: var(--muted); }
  .db-al-btn { font-size: 11.5px; font-weight: 600; padding: 6px 12px; border-radius: 7px; border: 1px solid var(--line); background: #fff; color: var(--azul); cursor: pointer; }
  .db-al-btn:hover { background: #EAF2FC; }
  /* Pipeline */
  .db-pipe-nums { display: flex; gap: 22px; margin-bottom: 16px; flex-wrap: wrap; }
  .db-pipe-lbl { font-size: 12px; color: var(--muted); } .db-pipe-val { font-size: 22px; font-weight: 800; color: var(--navy-2); }
  .db-pipe-val.morado { color: #7B5EA7; } .db-pipe-sub { font-size: 11px; color: var(--gris); }
  .db-pb { display: grid; grid-template-columns: 110px 1fr 90px 42px; align-items: center; gap: 8px; padding: 5px 0; font-size: 12px; }
  .db-pb-lbl { color: var(--muted); }
  .db-pb-bar { height: 14px; background: #F0F2F5; border-radius: 4px; overflow: hidden; }
  .db-pb-bar span { display: block; height: 100%; border-radius: 4px; }
  .db-pb-val { text-align: right; font-weight: 600; color: var(--navy-2); } .db-pb-pct { text-align: right; color: var(--muted); }
  /* Productividad GP */
  .db-estado { font-size: 11px; font-weight: 700; padding: 2px 9px; border-radius: 9px; }
  .db-estado.rojo { background: #FCE4E4; color: var(--rojo); } .db-estado.naranja { background: #FCEEE0; color: #C77700; }
  .db-estado.verde { background: #E3F4E8; color: #2E7D32; }
  /* Forecast / proyeccion de cierres */
  .fc-total { font-size: 13px; color: var(--navy-2); margin-bottom: 12px; }
  .fc-periodo { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px solid #F0F2F5; font-size: 12.5px; }
  .fc-per-lbl { flex: 1; color: var(--muted); }
  .fc-per-val { font-weight: 800; color: var(--navy-2); }
  .fc-per-n { font-size: 11px; color: var(--gris); min-width: 56px; text-align: right; }
  .fc-lista { margin-top: 12px; }
  .fc-item { display: grid; grid-template-columns: 1fr auto auto auto; gap: 8px; align-items: center; padding: 6px 0; border-bottom: 1px solid #F6F7F9; font-size: 12px; }
  .fc-nom { font-weight: 600; color: var(--ink); }
  .fc-et { font-size: 10.5px; color: var(--muted); }
  .fc-fecha { font-size: 11px; color: var(--azul); font-weight: 600; min-width: 42px; text-align: right; }
  .fc-monto { font-weight: 700; color: var(--navy-2); min-width: 70px; text-align: right; }
  @media (max-width: 900px) {
    .db-salud { grid-template-columns: 1fr 1fr 1fr; }
    .db-cols2 { grid-template-columns: 1fr; }
  }
  #btnArriba { position: fixed; right: 22px; bottom: 22px; width: 44px; height: 44px;
    border-radius: 50%; background: var(--navy); color: #fff; border: none; cursor: pointer;
    font-size: 20px; box-shadow: 0 3px 10px rgba(13,43,78,.3); display: none; z-index: 40; }
  #btnArriba.ver { display: block; }
  .chipf { background: #E4EAF1; color: var(--navy); border: none; padding: 5px 9px;
    border-radius: 6px; cursor: pointer; font-size: 12px; font-weight: 600; }
  .chipf:hover { background: #D2DCE8; }
  .chipf.act { background: var(--navy); color: #fff; }

  .prob { display: flex; align-items: center; gap: 6px; min-width: 66px; max-width: 80px; }
  .prob .track { flex: 1; height: 7px; background: #E4EAF1; border-radius: 4px; overflow: hidden; }
  .prob .fill { height: 100%; border-radius: 4px; background: linear-gradient(90deg, var(--azul), var(--verde)); }
  .prob b { font-size: 12.5px; min-width: 34px; text-align: right; }

  /* Modales */
  .overlay { position: fixed; inset: 0; background: rgba(13,43,78,.45); display: none; align-items: flex-start; justify-content: center; padding: 30px 14px; overflow-y: auto; z-index: 50; }
  .overlay.act { display: flex; }
  .modal { background: #fff; border-radius: 12px; width: 100%; max-width: 640px; padding: 20px; box-shadow: 0 12px 40px rgba(13,43,78,.25); }
  .modal h3 { font-size: 15px; margin-bottom: 4px; }
  .modal .sub { color: var(--muted); font-size: 12px; margin-bottom: 14px; }
  .grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; align-items: start; }
  .grid .full { grid-column: 1 / -1; }
  /* Bloque "Proximo paso": recuadro verde bajito que agrupa proxima accion + fecha */
  .bloque-paso {
    background: #F2FAF4; border: 1px solid #CBE8D4; border-radius: 9px; padding: 11px 12px;
  }
  .bloque-paso .paso-tit {
    font-size: 11px; font-weight: 800; color: #2E7D32; text-transform: uppercase;
    letter-spacing: .5px; margin-bottom: 9px;
  }
  /* ===== Modal de gestion rediseñado ===== */
  .modal-gestion { max-width: 920px; width: 94vw; }
  .mg-head { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 16px; }
  .mg-head h3 { font-size: 19px; }
  .mg-chips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 6px; font-size: 12px; }
  .mg-chips .chip-est { padding: 2px 10px; border-radius: 11px; font-weight: 700; font-size: 11px; }
  .mg-chips .sep { color: var(--gris); }
  .mg-chips .dato { color: var(--muted); } .mg-chips .dato b { color: var(--navy-2); }
  .mg-info, .mg-x { flex: none; width: 32px; height: 32px; border-radius: 50%; border: 1.5px solid var(--line); background: #fff; cursor: pointer; font-size: 15px; }
  .mg-bandera { flex: none; width: 32px; height: 32px; border-radius: 8px; border: 1.5px solid #F2C4C4; background: #fff; cursor: pointer; font-size: 15px; }
  .mg-bandera:hover { background: #FCE9E9; }
  .mg-atajos-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; }
  .req { color: var(--rojo); font-weight: 700; }
  .mg-info { color: var(--azul); font-style: italic; font-weight: 700; }
  .mg-x { color: var(--muted); border-radius: 8px; }
  .mg-x:hover { background: #FCE9E9; color: var(--rojo); border-color: #F2C4C4; }
  .mg-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
  .mg-bloque { border: 1px solid var(--line); border-radius: 12px; padding: 16px; }
  .mg-bloque.b-paso { background: #F5FBF7; border-color: #CBE8D4; }
  .mg-bloque.b-calif { margin-top: 14px; }
  .mg-tit { font-size: 14px; font-weight: 800; display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
  .mg-tit.b-azul { color: var(--azul); } .mg-tit.b-verde { color: #2E7D32; }
  .mg-num { width: 22px; height: 22px; border-radius: 50%; background: var(--azul); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; }
  .mg-num.verde { background: #34A853; }
  .mg-atajos { font-size: 11px; color: var(--muted); font-weight: 700; text-transform: uppercase; letter-spacing: .4px; margin: 10px 0 5px; }
  .mg-calif-sub { font-size: 12px; color: var(--muted); margin-bottom: 12px; }
  .mg-calif-aviso { font-size: 12px; font-weight: 600; margin-bottom: 10px; min-height: 0; }
  .calif-bloq .mg-calif-aviso { color: var(--gris); }
  .calif-oblig .mg-calif-aviso { color: #C77700; }
  .calif-bloq .mg-preguntas { opacity: .5; pointer-events: none; }
  .mg-monto-wrap { display: flex; align-items: center; gap: 5px; }
  .mg-monto-sol { font-weight: 700; color: var(--muted); font-size: 12px; }
  .mg-monto-wrap input { flex: 1; min-width: 0; padding: 7px 8px; border: 1.5px solid var(--line); border-radius: 7px; font-size: 12px; }
  .mg-monto-wrap input:disabled { background: #F0F2F5; color: var(--gris); }
  .mg-monto-spin { display: flex; flex-direction: column; gap: 2px; }
  .mg-monto-spin button { width: 18px; height: 13px; line-height: 1; padding: 0; border: 1px solid var(--line); background: #fff; border-radius: 3px; font-size: 7px; color: var(--muted); cursor: pointer; }
  .mg-monto-spin button:hover { background: var(--azul); color: #fff; border-color: var(--azul); }
  .mg-nodef { display: flex; align-items: center; gap: 6px; margin-top: 6px; font-size: 11.5px; color: var(--muted); font-weight: 500; cursor: pointer; }
  .mg-nodef input { width: auto; }
  .mg-preguntas { display: grid; grid-template-columns: repeat(5, 1fr); gap: 9px; }
  .mg-preg { background: #F8FAFC; border: 1px solid var(--line); border-radius: 10px; padding: 9px; }
  .mg-preg select, .mg-preg input { font-size: 12px; }
  .mg-preg-tit { font-size: 11px; }
  .mg-preg-tit { font-size: 12px; font-weight: 700; color: var(--navy-2); display: flex; align-items: center; gap: 6px; margin-bottom: 8px; line-height: 1.2; }
  .mg-pnum { width: 18px; height: 18px; border-radius: 50%; background: var(--azul); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 10px; flex: none; }
  .mg-pts { display: inline-block; margin-top: 8px; background: #E8EEF6; color: var(--navy-2); font-size: 11px; font-weight: 700; padding: 2px 9px; border-radius: 9px; }
  .mg-resultado { display: flex; align-items: center; justify-content: center; gap: 30px; background: #F8FAFC; border: 1px solid var(--line); border-radius: 10px; padding: 14px 18px; margin-top: 14px; }
  .mg-res-item { display: flex; align-items: center; gap: 12px; }
  .mg-res-ico { width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 18px; }
  .mg-res-ico.score { background: #E4ECF7; color: var(--azul); }
  .mg-res-ico.prob { background: #E3F4E8; }
  .mg-res-lbl { font-size: 12px; color: var(--muted); }
  .mg-res-val { font-size: 24px; font-weight: 800; color: var(--navy-2); line-height: 1; }
  .mg-res-val span { font-size: 14px; color: var(--gris); font-weight: 600; }
  .mg-res-val.verde { color: #2E7D32; }
  .mg-res-sep { width: 1px; align-self: stretch; background: var(--line); }
  .btn-perdido { background: #fff; color: var(--rojo); border: 1.5px solid #F2C4C4; }
  .btn-perdido:hover { background: #FCE9E9; }
  /* ===== Trazabilidad ===== */
  .modal-traza { max-width: 1040px; width: 95vw; }
  .tz-resumen { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 16px; }
  .tz-card { display: flex; gap: 11px; align-items: center; border: 1px solid var(--line); border-radius: 11px; padding: 13px; }
  .tz-cal-tit { font-size: 12px; font-weight: 700; color: var(--azul); margin-bottom: 7px; display: flex; align-items: center; gap: 7px; }
  .tz-ic { width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 17px; flex: none; }
  .tz-ic.azul { background: #E4ECF7; } .tz-ic.naranja { background: #FCEEE0; }
  .tz-ic.verde { background: #E3F4E8; } .tz-ic.morado { background: #EEE8F7; color: #7B5EA7; font-weight: 800; }
  .tz-lbl { font-size: 11px; color: var(--muted); }
  .tz-val { font-size: 16px; font-weight: 800; color: var(--navy-2); line-height: 1.2; }
  .tz-sub { font-size: 11px; color: var(--muted); }
  .tz-cols { display: grid; grid-template-columns: 1.4fr 1fr; gap: 16px; }
  .tz-tit { font-size: 13px; font-weight: 800; color: var(--azul); margin-bottom: 12px; }
  .tz-timeline { border: 1px solid var(--line); border-radius: 12px; padding: 16px; max-height: 56vh; overflow-y: auto; }
  .tz-side { display: flex; flex-direction: column; gap: 14px; }
  .tz-panel { border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; }
  /* Timeline eventos */
  .tz-ev { display: grid; grid-template-columns: 48px 18px 1fr; gap: 8px; }
  .tz-ev-fecha { font-size: 11px; font-weight: 700; color: var(--muted); text-align: right; padding-top: 8px; line-height: 1.3; }
  .tz-ev-linea { display: flex; flex-direction: column; align-items: center; padding-top: 10px; }
  .tz-dot { width: 12px; height: 12px; border-radius: 50%; flex: none; z-index: 1; }
  .tz-dot.azul { background: var(--azul); } .tz-dot.verde { background: #34A853; } .tz-dot.naranja { background: var(--naranja); }
  .tz-rail { width: 2px; flex: 1; background: var(--line); margin-top: 2px; }
  .tz-ev-card { border: 1px solid var(--line); border-radius: 10px; padding: 11px 13px; margin-bottom: 12px; }
  .tz-ev-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 3px; }
  .tz-ev-tipo { font-size: 11px; font-weight: 700; color: var(--azul); }
  .tz-ev-tipo.verde { color: #2E7D32; } .tz-ev-tipo.naranja { color: var(--naranja); }
  .tz-ev-actor { font-size: 11px; color: var(--gris); }
  .tz-ev-tit { font-size: 13.5px; font-weight: 700; color: var(--ink); }
  .tz-ev-sub { font-size: 11.5px; color: var(--muted); margin-top: 2px; }
  .tz-ev-badges { margin-top: 7px; display: flex; gap: 5px; flex-wrap: wrap; }
  /* Pills */
  .tz-pill { display: inline-block; font-size: 10.5px; font-weight: 700; padding: 1px 9px; border-radius: 10px; }
  .tz-pill.azulito { background: #E4ECF7; color: var(--azul); }
  .tz-pill.verdecito { background: #E3F4E8; color: #2E7D32; }
  .tz-pill.gris { background: #EEF1F5; color: #555; }
  .tz-pill.rojo { background: var(--rojo); color: #fff; }
  .tz-pill.naranja { background: #FCEEE0; color: #C77700; }
  .tz-pill.rosa { background: #FDE7EE; color: #C2185B; }
  /* Filas paneles */
  .tz-row { display: flex; justify-content: space-between; align-items: center; padding: 7px 0; border-bottom: 1px solid #F0F2F5; font-size: 12.5px; }
  .tz-row:last-child { border-bottom: none; }
  .tz-row > span:first-child { color: var(--muted); }
  .tz-prob { display: flex; align-items: center; gap: 8px; color: var(--azul); }
  .tz-bar { width: 90px; height: 6px; background: #E4EAF1; border-radius: 4px; overflow: hidden; }
  .tz-bar span { display: block; height: 100%; background: var(--azul); }
  .tz-evo { display: flex; align-items: center; gap: 8px; padding: 7px 0; font-size: 12.5px; }
  .tz-evo > span:first-child { color: var(--muted); width: 78px; flex: none; }
  .tz-arrow { color: var(--gris); }
  .tz-cal { display: flex; align-items: center; gap: 9px; padding: 7px 0; border-bottom: 1px solid #F0F2F5; font-size: 12.5px; }
  .tz-cal:last-child { border-bottom: none; }
  .tz-cal-ic { width: 24px; height: 24px; border-radius: 50%; background: #F0F3F7; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; flex: none; }
  .tz-cal-lbl { color: var(--muted); width: 56px; flex: none; }
  .tz-cal-val { flex: 1; font-weight: 600; color: var(--ink); }
  @media (max-width: 820px) {
    .tz-resumen { grid-template-columns: 1fr 1fr; }
    .tz-cols { grid-template-columns: 1fr; }
  }
  @media (max-width: 720px) {
    .mg-cols { grid-template-columns: 1fr; }
    .mg-preguntas { grid-template-columns: 1fr 1fr; }
    .mg-resultado { flex-direction: column; align-items: stretch; gap: 12px; }
    .mg-res-sep { display: none; }
  }
  label { display: block; font-size: 11.5px; font-weight: 700; color: var(--muted); margin-bottom: 3px; text-transform: uppercase; letter-spacing: .4px; }
  input, select, textarea {
    width: 100%; padding: 8px 9px; border: 1px solid var(--line); border-radius: 7px;
    font-size: 13.5px; font-family: inherit; background: #fff;
  }
  textarea { resize: vertical; min-height: 56px; }
  .seccion { grid-column: 1 / -1; font-size: 11.5px; font-weight: 800; color: var(--navy); padding: 8px 0 0; border-top: 1px dashed var(--line); margin-top: 4px; text-transform: uppercase; letter-spacing: .5px; }
  .acciones { display: flex; gap: 8px; justify-content: flex-end; margin-top: 16px; }
  .error { background: #FCE9E9; color: var(--rojo); border: 1px solid #F2C4C4; padding: 9px 11px; border-radius: 7px; font-size: 13px; margin-top: 12px; display: none; }
  .error.act { display: block; }
  .oculto { display: none !important; }

  /* Dashboard */
  .kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin-bottom: 16px; }
  .kpi { background: var(--card); border-radius: 10px; padding: 13px 14px; box-shadow: 0 1px 3px rgba(13,43,78,.08); }
  .kpi .v { font-size: 22px; font-weight: 800; color: var(--navy); }
  .kpi .l { font-size: 11px; color: var(--muted); font-weight: 600; text-transform: uppercase; letter-spacing: .3px; }
  .paneles { display: grid; grid-template-columns: 1.4fr 1fr; gap: 14px; }
  @media (max-width: 800px) { .paneles { grid-template-columns: 1fr; } }
  .panel { background: var(--card); border-radius: 10px; padding: 14px; box-shadow: 0 1px 3px rgba(13,43,78,.08); }
  .panel h3 { font-size: 13px; margin-bottom: 10px; color: var(--navy); }
  .embudo-fila { display: flex; align-items: center; gap: 8px; padding: 5px 0; font-size: 12.5px; }
  .embudo-fila .nom { width: 215px; }
  .embudo-fila .bar { flex: 1; height: 16px; background: #EDF2F8; border-radius: 4px; overflow: hidden; }
  .embudo-fila .bar i { display: block; height: 100%; background: var(--azul); }
  .embudo-fila .num { width: 30px; text-align: right; font-weight: 700; }

  /* Trazabilidad */
  .tl { list-style: none; padding-left: 0; }
  .tl li { display: flex; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
  .tl .h { color: var(--muted); min-width: 105px; font-variant-numeric: tabular-nums; }
  .resumen { background: #F0F5FB; border-radius: 8px; padding: 12px; margin-top: 14px; font-size: 13px; }
  .resumen div { padding: 2px 0; }
  .resumen b { color: var(--navy); }

/* ===== Leads Brutos (marketing) ===== */
.brutos-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.bchip { font-size: 12px; padding: 5px 11px; border: 1.5px solid; border-radius: 20px; background: #fff; }
.btabla td { vertical-align: middle; }
.btabla .borigen { font-size: 11px; text-transform: uppercase; font-weight: 700; color: var(--azul); letter-spacing: .3px; }
.btabla .bestado { display: inline-block; color: #fff; font-size: 11px; font-weight: 600; padding: 3px 9px; border-radius: 6px; }
.btabla .berror { font-size: 10.5px; color: #E14B4B; margin-top: 3px; max-width: 200px; }
.btabla .bacc { white-space: nowrap; }
.bbtn { font-size: 11px; padding: 4px 9px; margin: 0 2px; border: 1px solid var(--line); background: #fff; border-radius: 6px; cursor: pointer; font-weight: 600; color: var(--muted); }
.bbtn:hover { background: #F2F5F9; }
.bbtn.azul { border-color: var(--azul); color: var(--azul); }
.bbtn.verde { border-color: #1EBE57; color: #1EBE57; }
.bbtn.gris { border-color: #9AA3AD; color: #9AA3AD; }
.bbtn.rojo { border-color: #E8B5AD; color: #C0392B; }
.bbtn.rojo:hover { background: #FBEAE7; }

  /* Base de Releads */
  .rl-filtros { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin:10px 0; }
  .rl-filtros select, .rl-filtros input { padding:7px 9px; border:1px solid var(--line); border-radius:8px; font-size:13px; }
  .rl-filtros input[type="text"] { min-width:220px; }
  .rl-acciones { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:10px; padding:8px 10px; background:#F7F9FB; border:1px solid var(--line); border-radius:8px; }
  .rl-acciones select { padding:7px 9px; border:1px solid var(--line); border-radius:8px; font-size:13px; }
  .rl-selall { display:flex; align-items:center; gap:6px; font-size:13px; }
  .rl-pag { display:flex; gap:12px; align-items:center; justify-content:center; margin:12px 0; }
  .rl-pag button[disabled] { opacity:.45; cursor:default; }

  /* Submenús del top-nav */
  .top-nav .nav-item { position: relative; display: flex; align-items: stretch; height: 100%; }
  .nv-car { margin-left: 4px; font-size: 10px; opacity: .6; }
  .subnav { position: absolute; top: 100%; left: 0; min-width: 175px; background: #fff; border: 1px solid var(--line); border-radius: 0 0 10px 10px; box-shadow: 0 10px 28px rgba(0,0,0,.16); padding: 5px; flex-direction: column; gap: 2px; display: none; z-index: 60; }
  .top-nav .nav-item:hover .subnav:not(.oculto) { display: flex; }
  .top-nav .subnav button { width: 100%; text-align: left; white-space: nowrap; padding: 9px 12px; border: none; border-bottom: none; border-radius: 6px; background: transparent; color: var(--navy); font-size: 13px; height: auto; cursor: pointer; }
  .top-nav .subnav button:hover { background: #EEF3F8; color: var(--azul); }
  .subnav.oculto { display: none !important; }

  /* Punto de experiencia: siempre al costado del nombre, sin saltar de línea */
  .kcard .knom { display: flex; align-items: center; gap: 5px; }
  .kcard .knom .kdot-exp { flex: 0 0 auto; }
  .lead-nom { display: flex; align-items: center; gap: 5px; }
  .lead-nom .kdot-exp { flex: 0 0 auto; }

  /* Etiqueta "Nuevo" para leads asignados hoy sin contactar */
  .badge-nuevo, .kbadge-nuevo {
    display: inline-block; background: #1EBE57; color: #fff; font-size: 9.5px; font-weight: 800;
    text-transform: uppercase; letter-spacing: .3px; padding: 2px 6px; border-radius: 6px;
    margin-left: 6px; vertical-align: middle; line-height: 1.4;
  }
  .kbadge-nuevo { margin-left: 4px; }

  /* Auto-asignación */
  .aa-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--line); }
  .aa-toggle { border: none; border-radius: 999px; padding: 7px 14px; font-size: 12.5px; font-weight: 700; cursor: pointer; white-space: nowrap; }
  .aa-toggle.on { background: #DFF5E8; color: #168F47; }
  .aa-toggle.off { background: #F0E2E2; color: #B0413E; }

  /* Metas comerciales */
  .mt-sec { font-weight: 700; font-size: 14px; margin: 6px 0 8px; color: var(--ink); }
  .mt-row { display: flex; align-items: center; gap: 10px; padding: 6px 0; }
  .mt-lbl { min-width: 180px; font-size: 14px; }
  .mt-prorr { font-size: 12.5px; color: var(--muted); }
  .mt-base { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin: 6px 0 10px; }
  .mt-tabla { width: 100%; border-collapse: collapse; font-size: 13px; }
  .mt-tabla th { text-align: center; font-weight: 600; color: var(--muted); padding: 4px 6px; font-size: 12px; }
  .mt-tabla td { padding: 3px 6px; text-align: center; }
  .mt-tabla td:first-child, .mt-tabla th:first-child { text-align: left; white-space: nowrap; }

  /* Metas: semanas expandibles */
  .mt-wk { background: var(--soft, #eef2ff); border: none; border-radius: 6px; padding: 4px 10px; font-size: 12.5px; font-weight: 600; cursor: pointer; color: var(--ink); }
  .mt-tabla th.mt-sub { font-weight: 400; font-size: 11px; color: var(--muted); }

  /* Quitar flechas (spinners) de los number inputs */
  input[type=number]::-webkit-inner-spin-button,
  input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
  input[type=number] { -moz-appearance: textfield; appearance: textfield; }
  /* Sub-encabezado de semanas: texto legible sobre el navy */
  .mt-tabla th.mt-sub { color: rgba(255,255,255,.82); font-weight: 400; font-size: 11px; }
  .mt-tabla td { color: var(--ink); }
  .mt-pct { width: 52px; }
  .mt-pct-lbl { font-size: 11px; color: var(--muted); }

  /* Menú desplegable del usuario */
  .top-user { position: relative; }
  .tu-btn { display: flex; align-items: center; gap: 7px; background: none; border: none; cursor: pointer; padding: 4px 8px; border-radius: 8px; }
  .tu-btn:hover { background: #F4F6F9; }
  .tu-caret { font-size: 10px; color: var(--muted); }
  .tu-menu { position: absolute; right: 0; top: 46px; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.12); min-width: 212px; padding: 6px; z-index: 50; }
  .tu-item { display: block; width: 100%; text-align: left; background: none; border: none; padding: 9px 12px; border-radius: 7px; font-size: 13px; color: var(--ink); cursor: pointer; }
  .tu-item:hover { background: #F0F5FB; }
  .tu-sep { height: 1px; background: var(--line); margin: 5px 6px; }

  /* Metas: valores centrados y fila de suma (equipo) */
  .mt-row input, .mt-pct, .mt-tabla input { text-align: center; }
  .mt-tabla tr.mt-suma td { font-weight: 700; border-top: 2px solid var(--line); color: var(--ink); }

  /* Metas: cabecera con botones a la derecha */
  .mt-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
  .mt-head-btns { display: flex; gap: 8px; }

  /* Avance vs meta */
  .db-sub-inline { font-size: 12px; font-weight: 400; color: var(--muted); }
  .av-tabla td { text-align: center; }
  .av-tabla td:first-child { text-align: left; }
  .av-meta { font-size: 11px; color: var(--muted); }
  .av-tabla td.av-ok { background: #E8F6EC; }
  .av-tabla td.av-low { background: #FDEEE6; }
  .av-leyenda { font-size: 11.5px; color: var(--muted); margin-top: 8px; }
  .av-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; vertical-align: middle; }
  .av-dot.ok { background: #34A853; } .av-dot.low { background: var(--naranja); }

  /* Avance vs meta: embudo semanal + proyeccion */
  .av-filtros { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 6px 0 12px; }
  .av-scope { display: flex; gap: 6px; flex-wrap: wrap; }
  .av-chip { background: var(--soft, #eef2ff); border: none; border-radius: 999px; padding: 5px 13px; font-size: 12.5px; cursor: pointer; color: var(--ink); }
  .av-chip.act { background: var(--navy); color: #fff; font-weight: 600; }
  .av-sub2 { font-weight: 700; font-size: 13px; margin: 14px 0 6px; color: var(--ink); }
  .av-proy-sel { margin-left: 10px; font-weight: 400; }
  .av-funnel td, .av-funnel th { text-align: center; padding: 5px 8px; }
  .av-funnel td:first-child, .av-funnel th:first-child { text-align: left; white-space: nowrap; }
  .av-funnel tr.av-rpct td { color: var(--muted); font-size: 12px; background: #FAFBFC; }
  .av-funnel .av-total { background: #EAF0FB; font-weight: 700; }
  .av-funnel td.av-ok { background: #E8F6EC; } .av-funnel td.av-low { background: #FDEEE6; }

  /* Avance: ajustes de cabecera, total y alineacion fija */
  .av-filtros { justify-content: space-between; }
  .av-funnel { table-layout: fixed; width: 100%; }
  .av-funnel th, .av-funnel td { color: var(--ink); }
  .av-funnel thead th { color: #fff; }                 /* texto blanco sobre el navy */
  .av-funnel th:first-child, .av-funnel td:first-child { width: 130px; }
  .av-funnel .av-total { background: #2E7D32; color: #fff; font-weight: 700; }  /* total verde, letra blanca */

  /* Avance: total verde suave, columnas angostas, tabla centrada, mes a la derecha */
  .av-funnel { width: auto; margin: 0 auto; }
  .av-funnel th, .av-funnel td { width: 62px; padding: 5px 6px; }
  .av-funnel th:first-child, .av-funnel td:first-child { width: 116px; }
  .av-funnel .av-total { background: #EAF4EC; color: #256B3A; font-weight: 700; }
  #avMes { margin-left: auto; }

  /* Avance: toggle de vista semanas/meses */
  .av-vista { display: flex; gap: 6px; }

  /* Proyeccion por pipeline */
  .av-pipe { width: auto; margin: 0; max-width: 440px; }
  .av-pipe td { padding: 6px 10px; }
  .av-pipe td:first-child { text-align: left; }
  .av-pipe td:last-child { text-align: right; font-weight: 600; width: 130px; }
  .av-pipe td.av-low { background: #FDEEE6; color: #C0392B; }
  .av-pipe td.av-ok { background: #E8F6EC; color: #256B3A; }
  .av-pipe tr.mt-suma td { border-top: 2px solid var(--line); }

  /* "Mi día" - cabecera del GP en Mis Leads */
  .midia { margin-bottom: 14px; }
  .md-fila { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
  .md-card { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; }
  .md-card.md-rojo { background: #FDECEA; border-color: #F5C6BE; }
  .md-card.md-azul { background: #EAF1FB; border-color: #C7DAF5; }
  .md-num { font-size: 26px; font-weight: 700; line-height: 1; color: var(--ink); }
  .md-card.md-rojo .md-num { color: #C0392B; }
  .md-card.md-azul .md-num { color: var(--navy); }
  .md-lbl { font-size: 12.5px; color: var(--muted); margin-top: 4px; }
  .md-fila2 { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
  .md-fila2-tit { font-size: 12.5px; color: var(--muted); font-weight: 600; }
  .md-chip { font-size: 13px; background: #F4F6F9; border-radius: 999px; padding: 5px 12px; }
  .md-chip.md-ok { background: #E8F6EC; color: #256B3A; }
  .md-chip-lbl { color: var(--muted); }
  .md-nometa { font-size: 12px; color: var(--muted); }

  /* "Mi día" v2: 5 tarjetas con icono */
  .md-card2 { display: flex; align-items: center; gap: 10px; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 11px 13px; }
  .md-card2[role="button"] { cursor: pointer; }
  .md-card2[role="button"]:hover { border-color: var(--navy); }
  .md-card2.md-activo { border-color: var(--navy); box-shadow: 0 0 0 2px rgba(29,66,137,.15); }
  .md-card2 .md-ico { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 9px; background: #F0F3F8; color: var(--navy); flex: none; }
  .md-card2.rojo .md-ico { background: #FDECEA; color: #C0392B; }
  .md-card2.azul .md-ico { background: #EAF1FB; color: var(--navy); }
  .md-card2.verde .md-ico { background: #E8F6EC; color: #256B3A; }
  .md-v { font-size: 21px; font-weight: 700; line-height: 1.05; color: var(--ink); }
  .md-card2.rojo .md-v { color: #C0392B; }
  .md-et { font-size: 12px; color: var(--muted); font-weight: 600; }
  .md-sub { font-size: 11px; color: var(--muted); }
  /* date inputs mas angostos + placeholder plomo */
  .fechas input[type=date] { width: 112px; }
  .fechas input[type=date]::placeholder { color: var(--muted); }

  /* "Hoy vs meta": panel sobrio separado */
  .md-fila2 { background: #F7F8FA; border: 1px solid var(--line); border-radius: 10px; padding: 9px 12px; margin-top: 12px; }
  .md-fila2 .md-chip { background: #fff; border: 1px solid var(--line); }
  .md-fila2 .md-chip.md-ok { background: #E8F6EC; border-color: #BFE3C8; }
  /* kanban: estado de contacto en texto plano (como la tabla) */
  .kestado-sc { font-size: 11px; color: var(--rojo); font-weight: 600; }
  .kestado-int { font-size: 10px; color: var(--azul); font-weight: 600; }

  /* "Reparto por GP" - panel de la jefa */
  .reparto { margin-bottom: 14px; }
  .rp-head { margin-bottom: 8px; }
  .rp-tit { font-size: 15px; font-weight: 700; color: var(--ink); }
  .rp-sub { font-size: 12px; color: var(--muted); }
  .rp-wrap { background: #fff; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
  .rp-tabla { width: 100%; border-collapse: collapse; font-size: 13px; }
  .rp-tabla thead tr { background: var(--navy); color: #fff; }
  .rp-tabla th { padding: 8px 10px; text-align: center; font-weight: 600; }
  .rp-tabla th.rp-gp { text-align: left; }
  .rp-tabla th.rp-monto { text-align: right; }
  .rp-tabla td { padding: 9px 10px; text-align: center; border-top: 1px solid var(--line); }
  .rp-tabla td.rp-gp { text-align: left; color: var(--navy); font-weight: 600; }
  .rp-tabla td.rp-monto { text-align: right; font-weight: 600; }
  .rp-row { cursor: pointer; }
  .rp-row:hover td { background: #F4F6F9; }
  .rp-activa td { background: #EAF1FB; }
  .rp-activa td.rp-gp { box-shadow: inset 3px 0 0 var(--navy); }
  .rp-eq td { background: #F7F8FA; font-weight: 700; border-top: 2px solid var(--line); }
  .rp-sin td { background: #FFF7E6; }
  .rp-sin td.rp-gp { color: #B26A00; }
  .rp-sin:hover td { background: #FFF1D6; }
  .rp-venc { color: #C0392B; font-weight: 700; }
  .rp-cero { color: var(--muted); }

  /* Tooltip flotante: recordatorio del último comentario sobre el nombre */
  .tip-box { position: fixed; z-index: 9999; max-width: 280px; background: #1F2B46; color: #fff; font-size: 12.5px; line-height: 1.45; padding: 8px 11px; border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,.18); pointer-events: none; display: none; white-space: normal; }

  /* ===== Mensajería (Chatwoot embebido) — diseño TasaTop 3 paneles ===== */
  .chat-wrap { display: grid; grid-template-columns: 300px minmax(0,1fr) 326px; gap: 0;
    border: 1px solid var(--line); border-radius: 16px; overflow: hidden; position: relative;
    height: calc(100vh - 178px); min-height: 540px; background: var(--card);
    box-shadow: 0 8px 30px rgba(18,58,99,.07); }

  /* Bloqueo "en construcción" (GPs): congela e impide interacción */
  .chat-bloqueo { position: absolute; inset: 0; z-index: 60; display: flex; align-items: center; justify-content: center;
    background: rgba(244,247,252,.66); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); }
  .chat-bloqueo-card { text-align: center; background: rgba(255,255,255,.94); border: 1px solid var(--line);
    border-radius: 16px; padding: 30px 42px; box-shadow: 0 12px 44px rgba(18,58,99,.14); }
  .chat-bloqueo-ico { font-size: 48px; line-height: 1; margin-bottom: 12px; }
  .chat-bloqueo-tit { font-size: 19px; font-weight: 700; color: #123A63; }
  .chat-bloqueo-sub { font-size: 13px; color: var(--muted); margin-top: 7px; }

  /* Scrollbar sobria, fina y semi-transparente (estilo WhatsApp) */
  .chat-lista::-webkit-scrollbar, .chat-hilo::-webkit-scrollbar, .chat-ficha::-webkit-scrollbar { width: 6px; }
  .chat-lista::-webkit-scrollbar-thumb, .chat-hilo::-webkit-scrollbar-thumb, .chat-ficha::-webkit-scrollbar-thumb {
    background: rgba(90,110,130,.22); border-radius: 999px; }
  .chat-lista::-webkit-scrollbar-thumb:hover, .chat-hilo::-webkit-scrollbar-thumb:hover, .chat-ficha::-webkit-scrollbar-thumb:hover {
    background: rgba(90,110,130,.38); }
  .chat-lista::-webkit-scrollbar-track, .chat-hilo::-webkit-scrollbar-track, .chat-ficha::-webkit-scrollbar-track { background: transparent; }
  .chat-lista, .chat-hilo, .chat-ficha { scrollbar-width: thin; scrollbar-color: rgba(90,110,130,.22) transparent; }

  /* Panel izquierdo */
  .chat-lista-wrap { border-right: 1px solid var(--line); display: flex; flex-direction: column; min-height: 0; background: #FBFCFE; }
  .chat-buscador { padding: 11px 12px 8px; }
  .chat-buscador input { width: 100%; padding: 8px 13px; border: 1px solid var(--line); border-radius: 999px;
    font-size: 12px; background: #fff; }
  .chat-buscador input:focus { outline: none; border-color: var(--azul); }
  .chat-filtros { display: flex; gap: 6px; flex-wrap: wrap; padding: 0 12px 9px; }
  .chat-fil { font-size: 10.5px; color: #5F7186; background: #EEF2F7; padding: 4px 11px; border-radius: 999px; cursor: pointer; }
  .chat-fil-act { background: #123A63; color: #fff; }
  .chat-lista { overflow-y: auto; min-height: 0; flex: 1; }
  .chat-it { display: flex; gap: 11px; padding: 11px 13px; cursor: pointer; border-left: 3px solid transparent; transition: background .12s; }
  .chat-it:hover { background: #F1F5FB; }
  .chat-it-act { background: #EAF2FE; border-left-color: var(--azul); }
  .chat-ava { width: 40px; height: 40px; flex: none; border-radius: 50%; background: #123A63; color: #fff;
    display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600; }
  .chat-it-txt { min-width: 0; flex: 1; }
  .chat-it-top { display: flex; justify-content: space-between; gap: 6px; align-items: center; }
  .chat-it-nom { font-size: 13px; font-weight: 600; color: #16273B; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .chat-it-hora { font-size: 10px; color: #9AA8B8; flex: none; }
  .chat-it-emp { font-size: 10.5px; color: #8593A4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: 1px 0; }
  .chat-it-bot { display: flex; justify-content: space-between; gap: 6px; align-items: center; }
  .chat-it-last { font-size: 11px; color: #6E7D8E; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .chat-badge { font-size: 9.5px; font-weight: 700; background: #1FA06A; color: #fff; min-width: 17px; height: 17px;
    padding: 0 5px; border-radius: 999px; display: flex; align-items: center; justify-content: center; flex: none; }
  .chat-tag { display: inline-block; margin-top: 5px; font-size: 9.5px; font-weight: 600; padding: 2px 8px; border-radius: 999px; }

  /* Panel central */
  .chat-panel { display: flex; flex-direction: column; min-width: 0; min-height: 0; background: #fff; }
  .chat-vacio { margin: auto; color: var(--muted); font-size: 13.5px; text-align: center; max-width: 360px; padding: 24px; line-height: 1.6; }
  .chat-conv { display: flex; flex-direction: column; min-height: 0; height: 100%; }
  .chat-cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 16px; border-bottom: 1px solid var(--line); background: #fff; }
  .chat-cab-l { display: flex; align-items: center; gap: 11px; min-width: 0; }
  .chat-cab-ava { width: 38px; height: 38px; flex: none; border-radius: 50%; background: #123A63; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600; }
  .chat-cab-nom { font-size: 14px; font-weight: 600; color: #16273B; display: flex; align-items: center; gap: 7px; }
  .chat-cab-sub { font-size: 11.5px; color: #7C8B9C; margin-top: 1px; }

  /* Hilo estilo WhatsApp */
  .chat-hilo { flex: 1; min-height: 0; overflow-y: auto; padding: 18px 18px 10px; background: #ECE9E1;
    display: flex; flex-direction: column; gap: 3px; }
  .chat-msg { display: flex; margin-bottom: 3px; }
  .chat-in { justify-content: flex-start; }
  .chat-out { justify-content: flex-end; }
  .chat-burb { position: relative; max-width: 68%; padding: 6px 9px 5px; font-size: 13px; line-height: 1.4;
    word-wrap: break-word; box-shadow: 0 1px 0.5px rgba(0,0,0,.08); }
  .chat-in .chat-burb { background: #fff; color: #1F2D3D; border-radius: 0 8px 8px 8px; }
  .chat-out .chat-burb { background: #D6F2D6; color: #143E2C; border-radius: 8px 0 8px 8px; }
  .chat-meta { float: right; font-size: 9.5px; color: #8FA0A8; margin: 6px 0 0 10px; line-height: 1; }
  .chat-out .chat-meta { color: #6FAF85; }
  .chat-ck { letter-spacing: -2px; color: #34B7F1; margin-left: 2px; }

  /* Barra de envío */
  .chat-input { display: flex; gap: 9px; padding: 12px 14px; border-top: 1px solid var(--line); background: #fff; align-items: center; }
  .chat-input input { flex: 1; padding: 11px 16px; border: 1px solid var(--line); border-radius: 999px; font-size: 13px; background: #F4F7FC; }
  .chat-input input:focus { outline: none; border-color: var(--azul); background: #fff; }
  .chat-enviar { border-radius: 999px !important; padding: 10px 22px !important; background: #123A63 !important; color: #fff !important; font-weight: 600; border: none !important; }
  .chat-cargando, .chat-aviso { padding: 16px; font-size: 13px; color: var(--muted); line-height: 1.6; }

  /* Plantillas */
  .chat-plantillas { display: flex; flex-wrap: wrap; gap: 7px; padding: 10px 14px 0; background: #fff; }
  .chat-plantillas:empty { padding: 0; }
  .chat-pl { font-size: 11.5px; font-weight: 600; background: #EAF2FE; color: var(--azul); padding: 5px 13px; border-radius: 999px; cursor: pointer; border: 1px solid #CFE2FB; }
  .chat-pl:hover { background: #D8E8FD; }

  /* Panel derecho: ficha comercial */
  .chat-ficha { border-left: 1px solid var(--line); overflow-y: auto; min-height: 0; background: #FBFCFE; padding-bottom: 14px; }
  .ficha-vacia { padding: 28px 20px; color: var(--muted); font-size: 12.5px; text-align: center; line-height: 1.7; }
  .f-head { display: flex; align-items: center; gap: 11px; padding: 15px 15px 11px; }
  .f-nom { font-size: 13.5px; font-weight: 600; color: #16273B; }
  .f-emp { font-size: 11px; color: #7C8B9C; margin-top: 1px; }
  .f-contact { padding: 0 15px 12px; display: flex; flex-direction: column; gap: 5px; border-bottom: 1px solid var(--line); }
  .f-contact div { font-size: 11.5px; color: #5F7186; }
  .f-contact i { color: #9AA8B8; margin-right: 6px; }
  .f-sec { padding: 12px 15px 0; }
  .f-line { display: flex; align-items: center; justify-content: space-between; }
  .f-line > span:first-child { font-size: 11.5px; color: #6E7D8E; }
  .f-resumen { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 7px; padding: 12px 15px; }
  .f-titulo { font-size: 10.5px; font-weight: 700; color: #52627A; text-transform: uppercase; letter-spacing: .4px; padding: 6px 15px 9px; }
  .f-bar { padding: 0 15px 11px; }
  .f-bar-top { display: flex; justify-content: space-between; font-size: 11px; margin-bottom: 4px; color: #6E7D8E; }
  .f-bar-top span:last-child { font-weight: 600; color: #1F2D3D; }
  .f-bar-track { height: 6px; background: #E9EEF4; border-radius: 999px; overflow: hidden; }
  .f-bar-fill { height: 100%; border-radius: 999px; }
  .f-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; padding: 2px 15px 6px; }
  .f-kpi { background: #fff; border: 1px solid #EAEFF5; border-radius: 9px; padding: 8px 10px; }
  .f-kpi-l { font-size: 9.5px; color: #8593A4; }
  .f-kpi-v { font-size: 13px; font-weight: 600; color: #16273B; margin-top: 2px; }
  .f-row { display: flex; align-items: center; justify-content: space-between; font-size: 11.5px; padding: 2px 15px; color: #6E7D8E; }
  .f-row b { color: #185FA5; }
  .f-row .hl { color: #0B72E8; font-style: normal; }
  .f-sub { font-size: 10.5px; color: #5F7186; padding: 2px 15px 0 27px; }
  .f-acciones { padding: 14px 15px 4px; display: flex; flex-direction: column; gap: 7px; }

  /* Refuerzo positivo: toasts de celebración */
  #celHost { position: fixed; top: 18px; left: 0; right: 0; z-index: 9999; display: flex; flex-direction: column; align-items: center; gap: 8px; pointer-events: none; }
  .cel-toast { max-width: 460px; padding: 12px 22px; border-radius: 999px; font-size: 13.5px; font-weight: 600; color: #fff;
    box-shadow: 0 8px 30px rgba(0,0,0,.18); opacity: 0; transform: translateY(-16px); transition: opacity .3s, transform .3s; text-align: center; }
  .cel-in { opacity: 1; transform: translateY(0); }
  .cel-gestion { background: #0B72E8; }
  .cel-avance { background: #1FA06A; }
  .cel-ganado { background: #123A63; font-size: 15px; padding: 15px 28px; box-shadow: 0 10px 38px rgba(18,58,99,.4); border: 1.5px solid #E0A100; }

  /* Dashboard: cumplimiento 3x5 */
  .cad-kpis { display: grid; grid-template-columns: repeat(5,1fr); gap: 10px; margin: 6px 0 14px; }
  .cad-kpi { background: #FBFCFD; border: 1px solid var(--line); border-radius: 10px; padding: 11px 13px; }
  .cad-kpi-top { display: flex; align-items: center; gap: 7px; margin-bottom: 4px; }
  .cad-kpi-ic { width: 24px; height: 24px; border-radius: 7px; display: inline-flex; align-items: center; justify-content: center; font-size: 13px; flex: none; }
  .cad-kpi-l { font-size: 11.5px; color: var(--muted); line-height: 1.15; }
  .cad-kpi-v { font-size: 23px; font-weight: 700; color: var(--ink); margin-top: 2px; }
  .cad-kpi-v.rojo { color: #A32D2D; }
  .cad-kpi-s { font-size: 10px; color: #9AA8B8; margin-top: 1px; }
  @media (max-width: 1050px) { .cad-kpis { grid-template-columns: repeat(2,1fr); } }
  .cad-filtros { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 4px 0 14px; }
  .cad-filtros select { padding: 6px 10px; border: 1px solid var(--line); border-radius: 8px; font-size: 12px; background: #fff; color: var(--ink); }
  .cad-filtros-top { margin: 2px 0 16px; gap: 7px; }
  .cad-filtros-top select { padding: 5px 8px; font-size: 11.5px; max-width: 150px; }
  .cad-filtros-top input[type=date] { padding: 4px 7px; border: 1px solid var(--line); border-radius: 8px; font-size: 11.5px; color: var(--ink); width: 130px; }
  .cad-fl { font-size: 11.5px; color: var(--muted); display: flex; align-items: center; gap: 5px; }
  .cad-fl input { padding: 5px 8px; border: 1px solid var(--line); border-radius: 8px; font-size: 12px; }
  .cad-subtit { font-size: 12.5px; font-weight: 600; color: var(--muted); margin: 14px 0 8px; }
  .cad-mini { font-size: 10.5px; font-weight: 400; color: #9AA8B8; }
  .cad-gps { display: flex; flex-direction: column; gap: 7px; }
  .cad-gp { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--line); border-radius: 9px; padding: 9px 13px; }
  .cad-gp-n { width: 165px; font-size: 13px; font-weight: 600; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .cad-gp-bar { flex: 1; height: 8px; background: #EEF2F7; border-radius: 999px; overflow: hidden; }
  .cad-gp-bar > div { height: 100%; border-radius: 999px; }
  .cad-gp-pct { width: 40px; text-align: right; font-size: 13px; font-weight: 600; }
  .cad-gp-x { width: 86px; text-align: right; font-size: 11px; color: #9AA8B8; }
  .cad-leyenda { display: flex; gap: 14px; margin: 4px 0 10px; font-size: 11px; color: #8593A4; flex-wrap: wrap; }
  .cad-leyenda span { display: flex; align-items: center; gap: 5px; }
  .cad-cu { width: 11px; height: 11px; border-radius: 3px; display: inline-block; }
  .cad-pauta-leg { background: #EFECE3; border: 1px solid #D3D1C7; position: relative; }
  .cad-pauta-leg::after { content: ''; position: absolute; left: 50%; bottom: -5px; transform: translateX(-50%); width: 5px; height: 5px; border-radius: 50%; background: #1D9E75; }
  .cad-na { background: repeating-linear-gradient(45deg,#F3F2EE,#F3F2EE 2px,#E8E7E2 2px,#E8E7E2 4px); }
  .cad-leads { display: flex; flex-direction: column; }
  .cad-row { display: grid; grid-template-columns: 180px repeat(5,1fr) 116px 138px; gap: 8px; align-items: center; padding: 10px 10px; border-top: 1px solid var(--line); }
  .cad-head { font-size: 10.5px; color: #9AA8B8; border-top: none; padding-bottom: 4px; }
  .cad-dh { text-align: center; }
  .cad-dh2 { text-align: left; }
  .cad-est-chip { display: inline-block; font-size: 10px; font-weight: 600; color: #333; padding: 3px 8px; border-radius: 999px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
  .cad-prox { font-size: 11px; color: #475569; line-height: 1.3; }
  .cad-prox-f { font-size: 10px; color: #9AA8B8; margin-top: 1px; }
  .cad-lead-n { font-size: 12.5px; font-weight: 600; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .cad-lead-gp { font-size: 10px; color: #9AA8B8; }
  .cad-dia { display: flex; gap: 6px; justify-content: center; }
  .cad-cu2-wrap { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; }
  .cad-cu2 { width: 14px; height: 14px; border-radius: 3px; display: inline-block; }
  .cad-cu2-na { border: none !important; }
  .cad-dot { width: 5px; height: 5px; border-radius: 50%; background: #1D9E75; }
  .cad-dot-sp { width: 5px; height: 5px; }
  .cad-pag { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 12px 0 2px; }
  .cad-pag-b { font-size: 12px; padding: 5px 13px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); cursor: pointer; }
  .cad-pag-b:disabled { opacity: .4; cursor: default; }
  .cad-pag-b:not(:disabled):hover { background: #F1F5FB; }
  .cad-pag-info { font-size: 11.5px; color: var(--muted); }
  .cad-vacio { padding: 14px; font-size: 12.5px; color: var(--muted); }

  /* Softphone Aircall embebido */
  .ac-fab { position: fixed; right: 22px; bottom: 22px; z-index: 900; width: 54px; height: 54px; border-radius: 50%;
    background: #123A63; color: #fff; border: none; font-size: 23px; cursor: pointer; box-shadow: 0 6px 22px rgba(18,58,99,.38); transition: background .12s; }
  .ac-fab:hover { background: #0E2F54; }
  .ac-panel { position: fixed; right: 16px; top: 16px; z-index: 950; width: 700px; max-width: calc(100vw - 32px);
    max-height: calc(100vh - 32px); background: #fff; border: 1px solid var(--line); border-radius: 14px;
    box-shadow: 0 16px 50px rgba(18,58,99,.3); overflow: hidden; display: flex; flex-direction: column; }
  .ac-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 15px; background: #123A63; color: #fff; font-size: 13px; font-weight: 600; flex: none; }
  .ac-head-btns { display: flex; align-items: center; gap: 6px; }
  .ac-head-btns button { background: rgba(255,255,255,.16); border: none; color: #fff; font-size: 13px; cursor: pointer; line-height: 1; width: 28px; height: 28px; border-radius: 7px; }
  .ac-head-btns button:hover { background: rgba(255,255,255,.28); }
  .ac-body { flex: 1; min-height: 0; overflow: auto; }
  .ac-workspace { width: 100%; height: 640px; min-width: 666px; }
  .ac-workspace iframe { border: none; width: 100% !important; height: 640px !important; display: block; }
  .ac-hint { padding: 9px 15px; font-size: 11.5px; color: var(--muted); border-top: 1px solid var(--line); flex: none; }

  .tz-edit { cursor: pointer; color: var(--azul); margin-left: 4px; font-size: 12px; text-decoration: none; }
  .tz-edit:hover { opacity: .7; }

  /* 3x5: highlights agregados */
  .cad-hl { margin: 6px 0 16px; }
  .hl-grid { display: grid; grid-template-columns: 1fr 1.3fr; gap: 14px; }
  .hl-box { background: #F7F8FA; border-radius: 12px; padding: 14px 16px; }
  .hl-box-tit { font-size: 12px; font-weight: 600; color: var(--muted); margin-bottom: 12px; }
  .hl-funnel { display: flex; flex-direction: column; gap: 12px; }
  .hl-ftop { display: flex; justify-content: space-between; align-items: baseline; }
  .hl-flbl { font-size: 12px; color: #475569; }
  .hl-fnum { font-size: 16px; font-weight: 600; color: var(--ink); }
  .hl-fbar { height: 9px; background: #E9EEF4; border-radius: 999px; overflow: hidden; margin: 3px 0; }
  .hl-fbar > div { height: 100%; border-radius: 999px; }
  .hl-fconv { font-size: 10px; color: #9AA8B8; min-height: 12px; }
  .hl-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; margin-bottom: 14px; }
  .hl-card { background: #fff; border: 1px solid var(--line); border-radius: 9px; padding: 9px 11px; }
  .hl-card-l { font-size: 10.5px; color: var(--muted); }
  .hl-card-v { font-size: 18px; font-weight: 600; margin: 1px 0; }
  .hl-card-s { font-size: 9.5px; color: #9AA8B8; }
  .hl-dist-tit { font-size: 11px; font-weight: 600; color: var(--muted); margin-bottom: 6px; }
  .hl-dist { display: flex; height: 22px; border-radius: 6px; overflow: hidden; background: #EEF2F7; }
  .hl-dist > div { height: 100%; display: flex; align-items: center; justify-content: center; overflow: hidden; }
  .hl-seg-lbl { font-size: 10.5px; font-weight: 600; white-space: nowrap; }
  .hl-dist-leg { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 7px; }
  .hl-dist-leg span { font-size: 10.5px; color: #6E7D8E; display: flex; align-items: center; gap: 5px; }
  .hl-dist-leg i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
  .hl-gprow { display: flex; align-items: center; gap: 12px; margin-bottom: 9px; }
  .hl-gpn { width: 165px; font-size: 12.5px; font-weight: 600; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .hl-gpt { font-size: 11px; font-weight: 400; color: #9AA8B8; }
  .hl-gprow .hl-dist { flex: 1; }

  /* Reporte: llegada de leads por franja horaria */
  .llg-date { padding: 4px 7px; border: 1px solid var(--line); border-radius: 8px; font-size: 11.5px; color: var(--ink); width: 130px; }
  .llg-chart { display: flex; flex-direction: column; gap: 9px; margin-top: 6px; }
  .llg-row { display: grid; grid-template-columns: 110px 1fr 78px; gap: 10px; align-items: center; }
  .llg-lbl { font-size: 12px; font-weight: 600; color: #475569; }
  .llg-bar-wrap { height: 20px; background: #EEF2F7; border-radius: 6px; overflow: hidden; }
  .llg-bar { height: 100%; border-radius: 6px; background: linear-gradient(90deg,#1E5FA8,#3B82C4); transition: width .3s; }
  .llg-num { font-size: 14px; font-weight: 700; color: #123A63; text-align: right; }
  .llg-pct { font-size: 11px; font-weight: 400; color: #9AA8B8; }
  .llg-total { margin-top: 8px; font-size: 12px; color: var(--muted); text-align: right; }

  /* Llegadas: resumen de desglose */
  .llg-resumen { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; margin: 4px 0 14px; }
  .llg-rc { background: #F7F8FA; border-radius: 9px; padding: 10px 12px; text-align: center; }
  .llg-rc-v { font-size: 22px; font-weight: 700; color: #123A63; }
  .llg-rc-l { font-size: 10.5px; color: var(--muted); margin-top: 1px; }

  /* ===== Ranking de contactabilidad (modal flotante) ===== */
  .rk-overlay .rk-modal { background: #fff; border-radius: 16px; width: min(1000px, 94vw); max-height: 92vh; overflow-y: auto; position: relative; box-shadow: 0 24px 70px rgba(0,0,0,.4); animation: rkModalIn .35s cubic-bezier(.2,.8,.25,1); }
  @keyframes rkModalIn { from { opacity: 0; transform: translateY(18px) scale(.97); } to { opacity: 1; transform: none; } }
  @keyframes rkOverlayIn { from { opacity: 0; } to { opacity: 1; } }
  @keyframes rkUp { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
  @keyframes rkPodRise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
  @keyframes rkRowIn { from { opacity: 0; transform: translateX(-10px); } to { opacity: 1; transform: none; } }
  .rk-overlay.act { animation: rkOverlayIn .25s ease; }
  .rk-overlay .rk-hero { animation: rkUp .4s .05s ease both; }
  .rk-overlay #rkMeta { animation: rkUp .45s .12s ease both; }
  .rk-overlay #rkRacha { animation: rkUp .45s .18s ease both; }
  .rk-overlay .rk-pod { animation: rkPodRise .5s ease both; }
  .rk-overlay .rk-pod.rk-p2 { animation-delay: .18s; }
  .rk-overlay .rk-pod.rk-p1 { animation-delay: .28s; }
  .rk-overlay .rk-pod.rk-p3 { animation-delay: .38s; }
  .rk-overlay #rkTabla { animation: rkUp .45s .22s ease both; }
  .rk-overlay .rk-row:not(.rk-head) { animation: rkRowIn .35s ease both; }
  .rk-overlay .rk-row:nth-child(2) { animation-delay: .26s; }
  .rk-overlay .rk-row:nth-child(3) { animation-delay: .30s; }
  .rk-overlay .rk-row:nth-child(4) { animation-delay: .34s; }
  .rk-overlay .rk-row:nth-child(5) { animation-delay: .38s; }
  .rk-overlay .rk-row:nth-child(6) { animation-delay: .42s; }
  .rk-overlay .rk-row:nth-child(n+7) { animation-delay: .46s; }
  .rk-close { position: absolute; top: 12px; right: 13px; z-index: 3; background: rgba(255,255,255,.14); border: none; color: rgba(255,255,255,.75); width: 24px; height: 24px; border-radius: 7px; font-size: 12px; cursor: pointer; line-height: 1; }
  .rk-close:hover { background: rgba(255,255,255,.28); color: #fff; }
  .rk-hero { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
    background: radial-gradient(ellipse at top, #1B4D86, #0C1E33); color: #fff; padding: 15px 22px; border-radius: 16px 16px 0 0; }
  .rk-hero-l { display: flex; align-items: center; gap: 12px; }
  .rk-hero-ic { font-size: 26px; background: rgba(255,255,255,.12); width: 46px; height: 46px; border-radius: 12px; display: flex; align-items: center; justify-content: center; }
  .rk-hero h2 { margin: 0; font-size: 20px; color: #fff; }
  .rk-sub { font-size: 12px; opacity: .82; margin-top: 2px; }
  .rk-sub b { color: #FFD774; }
  .rk-hero-r { display: flex; flex-direction: column; align-items: flex-end; gap: 5px; }
  .rk-hero-r .btn { background: rgba(255,255,255,.18); color: #fff; border-color: transparent; }
  .rk-hero-r .btn:hover { background: rgba(255,255,255,.3); }
  .rk-upd { font-size: 11px; opacity: .75; }

  .rk-top3 { display: grid; grid-template-columns: 195px 1fr 195px; gap: 12px; align-items: end;
    background: radial-gradient(ellipse at center top, #14365E, #0C1E33); padding: 18px 20px 22px; }
  .rk-side { align-self: stretch; display: flex; flex-direction: column; justify-content: center;
    background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); border-radius: 13px; padding: 14px; color: #fff; }
  .rk-card-tit { font-size: 12.5px; font-weight: 600; opacity: .9; margin-bottom: 6px; }
  .rk-card-big { font-size: 26px; font-weight: 800; line-height: 1.1; }
  .rk-card-big small { font-size: 11px; font-weight: 400; opacity: .8; display: block; }
  .rk-meta-bar { height: 7px; background: rgba(255,255,255,.15); border-radius: 999px; overflow: hidden; margin: 10px 0 4px; }
  .rk-meta-bar > div { height: 100%; background: linear-gradient(90deg,#1D9E75,#37C98E); border-radius: 999px; transition: width .5s; }
  .rk-meta-x { font-size: 11.5px; opacity: .85; text-align: right; }
  .rk-meta-msg, .rk-racha-msg { font-size: 11px; opacity: .8; margin-top: 6px; }
  .rk-dots { display: flex; gap: 4px; margin-top: 9px; }
  .rk-dotw { display: flex; flex-direction: column; align-items: center; gap: 3px; flex: 1; }
  .rk-dotw small { font-size: 9px; opacity: .7; }
  .rk-dot { width: 22px; height: 22px; border-radius: 50%; background: rgba(255,255,255,.12); display: flex; align-items: center; justify-content: center; font-size: 10px; color: #fff; }
  .rk-dot.on { background: #1D9E75; box-shadow: 0 0 0 3px rgba(29,158,117,.25); }
  .rk-dot.off { background: #F59E0B; }
  .rk-dot.hoy { background: rgba(245,158,11,.45); box-shadow: 0 0 0 3px rgba(245,158,11,.2); }

  .rk-podio { display: flex; align-items: flex-end; justify-content: center; gap: 10px; align-self: end; }
  .rk-pod { width: 142px; border-radius: 13px 13px 0 0; padding: 14px 10px 14px; color: #fff; position: relative; box-shadow: 0 8px 26px rgba(0,0,0,.3);
    display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 3px; }
  .rk-p1 { background: linear-gradient(180deg,#F4C842,#C9971A); height: 172px; }
  .rk-p1::before { content: '👑'; position: absolute; top: -25px; left: 50%; transform: translateX(-50%); font-size: 24px; }
  .rk-p1 .rk-pod-n { font-size: 16px; margin-top: 2px; }
  .rk-p2 { background: linear-gradient(180deg,#C7D0DA,#8C99A8); height: 124px; }
  .rk-p3 { background: linear-gradient(180deg,#D49A6A,#A6713F); height: 104px; }
  .rk-pod-rank { position: absolute; top: 8px; left: 9px; width: 22px; height: 22px; border-radius: 50%; background: rgba(0,0,0,.25); display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; }
  .rk-pod-n { font-size: 14px; font-weight: 700; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; order: 1; }
  .rk-pod-v { font-size: 30px; font-weight: 800; line-height: 1; order: 2; }
  .rk-pod-l { font-size: 10.5px; opacity: .9; line-height: 1; order: 3; }
  .rk-pod.rk-mio { outline: 3px solid #1D9E75; outline-offset: 2px; }

  .rk-tabla { display: flex; flex-direction: column; }
  .rk-row { display: grid; grid-template-columns: 1fr 90px 80px 92px 92px 92px 72px; align-items: center; padding: 10px 22px; border-top: 1px solid var(--line); }
  .rk-head { background: #F7F8FA; font-size: 10.5px; color: #9AA8B8; text-transform: uppercase; letter-spacing: .03em; padding: 9px 22px; }
  .rk-head span:not(:nth-child(1)) { text-align: center; }
  .rk-pos { font-size: 15px; font-weight: 700; text-align: center; color: #475569; }
  .rk-n { font-size: 13.5px; font-weight: 600; color: var(--ink); display: flex; align-items: center; gap: 9px; }
  .rk-av { width: 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; font-size: 11px; font-weight: 700; flex: none; }
  .rk-lider { background: #FCEFC7; color: #9A6B00; font-size: 10px; padding: 2px 8px; border-radius: 999px; }
  .rk-tu { background: #1D9E75; color: #fff; font-size: 10px; padding: 1px 7px; border-radius: 999px; vertical-align: middle; }
  .rk-row span:not(:nth-child(1)) { text-align: center; font-size: 13.5px; color: #475569; }
  .rk-pos { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; font-size: 14px; font-weight: 700; color: #475569; margin-right: 2px; }
  .rk-big { font-size: 18px !important; font-weight: 800 !important; color: #123A63 !important; }
  .rk-cal { font-weight: 600 !important; color: #475569 !important; }
  .rk-agend { font-weight: 700 !important; color: #1D9E75 !important; }
  .rk-verif { font-weight: 700 !important; color: #0B72E8 !important; }
  .rk-mio-row { background: #EAF7F1; }
  .rk-foot { text-align: center; font-size: 11.5px; color: var(--muted); padding: 13px; }
  .rk-vacio { padding: 26px; text-align: center; font-size: 13px; color: #fff; opacity: .85; }

  /* ===== Tira rotativa de ranking en Mis Leads ===== */
  .tira-rank { background: linear-gradient(120deg,#0E2F54,#1E5FA8,#123A63,#2A6FB5); background-size: 300% 100%;
    animation: tiraGrad 12s ease infinite; color: #fff; border-radius: 12px; position: relative; overflow: hidden;
    min-height: 64px; display: flex; align-items: center; padding: 0 18px; margin-bottom: 14px; cursor: pointer;
    box-shadow: 0 6px 18px rgba(18,58,99,.22); }
  @keyframes tiraGrad { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
  .tira-rank::after { content: ''; position: absolute; top: 0; left: -40%; width: 40%; height: 100%;
    background: linear-gradient(100deg, transparent, rgba(255,255,255,.14), transparent); transform: skewX(-18deg);
    animation: tiraShine 6s ease-in-out infinite; }
  @keyframes tiraShine { 0% { left: -40%; } 55%, 100% { left: 130%; } }
  .tira-rank:empty { display: none; }
  .tira-in { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; width: 100%; position: relative; z-index: 1; }
  .tira-fade { animation: tiraFade .5s ease; }
  @keyframes tiraFade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
  .tira-tit { font-size: 13px; font-weight: 700; margin-right: 8px; white-space: nowrap; }
  .tira-chip { font-size: 13px; opacity: .92; white-space: nowrap; }
  .tira-chip b { font-size: 15px; }
  .tira-chip.tira-mio { background: #1D9E75; padding: 3px 10px; border-radius: 999px; opacity: 1; font-weight: 600; }
  .tira-sep { opacity: .4; margin: 0 2px; }
  .tira-podio { gap: 16px; }
  .tira-pod { display: inline-flex; align-items: center; gap: 7px; background: rgba(255,255,255,.12); padding: 6px 14px; border-radius: 999px; white-space: nowrap; }
  .tira-pod.tira-mio { background: #1D9E75; }
  .tira-pod-m { font-size: 18px; }
  .tira-pod-n { font-size: 13px; font-weight: 600; }
  .tira-pod-v { font-size: 14px; font-weight: 800; }

  /* Marca Aircall en eventos de llamada de la trazabilidad */
  .tz-via { display: inline-block; font-size: 10px; font-weight: 600; color: #0B72E8; background: #E8F1FE;
    border: 1px solid #C5DDFB; padding: 1px 7px; border-radius: 999px; margin-left: 6px; vertical-align: middle; }

  /* Marca de gestión verificada por Aircall */
  .tz-verif { display: inline-block; font-size: 10px; font-weight: 700; color: #1D9E75; background: #E7F6EF;
    border: 1px solid #BEE7D5; padding: 1px 7px; border-radius: 999px; margin-left: 6px; vertical-align: middle; }

  /* Fila embudo (40%) + distribución (60%) */
  .cad-row2 { display: flex; gap: 14px; align-items: stretch; flex-wrap: wrap; }
  .cad-funnel-box { flex: 0 0 38%; min-width: 280px; }
  .cad-dist-box { flex: 1; min-width: 320px; }
  .cad-fn-row { display: grid; grid-template-columns: 92px 1fr 42px; align-items: center; gap: 8px; margin: 7px 0; }
  .cad-fn-lbl { font-size: 12px; color: #475569; font-weight: 600; }
  .cad-fn-track { background: #F1F3F6; border-radius: 7px; overflow: hidden; height: 30px; display: flex; align-items: center; }
  .cad-fn-bar { height: 100%; border-radius: 7px; display: flex; align-items: center; justify-content: flex-end; min-width: 28px; transition: width .5s; }
  .cad-fn-n { color: #fff; font-weight: 700; font-size: 13px; padding-right: 9px; }
  .cad-fn-pct { font-size: 12px; color: #8593A4; text-align: right; font-weight: 600; }

  /* ===== Módulo B2B ===== */
  .b2b-filtros { display: flex; gap: 10px; flex-wrap: wrap; margin: 12px 0; }
  .b2b-filtros select, .b2b-filtros input { padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; font-size: 13px; }
  .b2b-filtros input { flex: 1; min-width: 220px; }
  .b2b-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
  .b2b-chip { display: inline-flex; align-items: center; gap: 6px; background: #F1F3F6; border-radius: 20px; padding: 5px 12px; font-size: 12px; color: #475569; }
  .b2b-chip i { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
  .b2b-tabla td { vertical-align: middle; }
  .b2b-cod { font-family: ui-monospace, monospace; font-size: 11px; color: #64748B; }
  .b2b-sub { font-size: 11px; color: var(--muted); margin-top: 2px; }
  .b2b-pill { display: inline-block; padding: 3px 9px; border-radius: 12px; font-size: 11px; font-weight: 600; white-space: nowrap; }

  .b2b-badge { display: inline-block; min-width: 16px; padding: 1px 6px; border-radius: 9px; background: #EF9F27; color: #fff; font-size: 10px; font-weight: 700; text-align: center; margin-left: 4px; }

  .btn-sunat { border: 1px solid var(--line); background: #fff; border-radius: 6px; padding: 2px 8px; font-size: 11px; cursor: pointer; color: #475569; margin-left: 2px; }
  .btn-sunat:hover { background: #F1F3F6; }
  .btn-sunat:disabled { opacity: .5; cursor: default; }

  .b2b-tabla th { color: #fff; }

  /* ===== Navegación de dos mundos (B2C / B2B) ===== */
  .top-nav { display: flex; gap: 8px; align-items: center; height: 100%; }
  .mundo { position: relative; display: flex; align-items: center; }
  .top-nav .mundo-btn { display: flex; align-items: center; gap: 7px; background: #F4F6F9; border: 1px solid var(--line); cursor: pointer; padding: 7px 14px; border-radius: 8px; font-size: 14px; font-weight: 600; color: var(--navy); height: auto; }
  .top-nav .mundo-btn:hover { background: #EAF0F7; border-color: var(--azul); color: var(--navy); }
  .mundo-ic { font-size: 15px; }
  .mundo-menu { position: absolute; left: 0; top: 44px; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.12); min-width: 210px; padding: 6px; z-index: 50; }
  .top-nav .mundo-item { display: block; width: 100%; text-align: left; background: none; border: none; padding: 9px 12px; border-radius: 7px; font-size: 13px; color: var(--navy); cursor: pointer; height: auto; white-space: nowrap; }
  .top-nav .mundo-item:hover { background: #EEF3F8; color: var(--azul); }

  /* ===== Ficha B2B ===== */
  .b2b-cod-link { cursor: pointer; color: #0B72E8; text-decoration: underline; }
  .b2b-cod-link:hover { color: #0954a8; }
  .fb-head { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 14px; }
  .fb-panel { border: 0.5px solid var(--line); border-radius: 10px; margin-bottom: 8px; overflow: hidden; }
  .fb-panel-open { border-color: #0B72E8; }
  .fb-panel-head { display: flex; align-items: center; gap: 12px; padding: 12px 14px; cursor: pointer; }
  .fb-panel-head:hover { background: #F8FAFC; }
  .fb-panel-open .fb-panel-head { background: #EAF2FE; }
  .fb-ic { font-size: 16px; }
  .fb-titulo { flex: 1; font-size: 14px; font-weight: 600; color: var(--ink); }
  .fb-estado { font-size: 12px; }
  .fb-caret { color: #94a3b8; font-size: 12px; }
  .fb-body { padding: 14px 16px; border-top: 0.5px solid var(--line); }
  .fb-sec { font-size: 12px; font-weight: 600; color: #475569; margin: 14px 0 8px; }
  .fb-sec:first-child { margin-top: 0; }
  .fb-chk { display: flex; flex-direction: column; gap: 8px; }
  #ovFichaB2B .fb-chk label { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; font-weight: 400; color: var(--ink); text-transform: none; letter-spacing: normal; margin: 0; cursor: pointer; line-height: 1.4; text-align: left; }
  #ovFichaB2B .fb-chk input[type=checkbox] { flex: 0 0 auto; width: 16px; height: 16px; margin: 1px 0 0; cursor: pointer; }
  .fb-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .fb-in { display: flex; flex-direction: column; gap: 3px; }
  .fb-in span { font-size: 11px; color: var(--muted); }
  .fb-in input { padding: 7px 9px; border: 1px solid var(--line); border-radius: 7px; font-size: 13px; }
  .fb-campo { display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 0.5px solid var(--line); font-size: 13px; }
  .fb-campo span { color: var(--muted); }
  .fb-docs { display: flex; flex-direction: column; gap: 6px; }
  .fb-doc { display: flex; align-items: center; gap: 10px; font-size: 13px; padding: 8px 10px; background: #F8FAFC; border-radius: 8px; }
  .fb-doc span { flex-shrink: 0; }
  .fb-doc-link { flex: 1; color: #0B72E8; font-size: 12px; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .fb-doc-pend { flex: 1; color: var(--muted); font-size: 12px; }
  .fb-sem { display: flex; align-items: center; gap: 14px; margin: 16px 0 12px; padding-top: 12px; border-top: 0.5px solid var(--line); font-size: 13px; }
  .fb-sem > span:first-child { color: var(--muted); }
  #ovFichaB2B .fb-sem-op { display: inline-flex; align-items: center; gap: 5px; cursor: pointer; font-size: 13px; font-weight: 400; color: var(--ink); text-transform: none; letter-spacing: normal; margin: 0; }
  #ovFichaB2B .fb-in { display: flex; flex-direction: column; gap: 3px; margin: 0; }
  #ovFichaB2B .fb-in span { font-size: 11px; font-weight: 600; color: var(--muted); text-transform: none; letter-spacing: normal; }
  .fb-acc { display: flex; gap: 10px; justify-content: flex-end; }
  @keyframes fbIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
  .fb-suj { animation: fbIn .22s ease; }
  .fb-suj-nueva { animation: fbIn .22s ease; box-shadow: 0 0 0 2px rgba(11,114,232,.25); }
  .fb-doc { transition: background .2s ease; }
  .fb-doc-ok { background: #E7F7EE !important; }

  /* ===== Sujetos de crédito ===== */
  .fb-suj { border: 0.5px solid var(--line); border-radius: 9px; overflow:hidden; margin-bottom: 8px; background: #FBFCFE; }
  .fb-suj-head { display: flex; align-items: center; gap: 8px; font-size: 13px; padding:10px 12px; }
  .fb-suj-nom { flex: 1; padding: 5px 8px; border: 1px solid var(--line); border-radius: 6px; font-size: 13px; }

  /* ===== Atribución de anuncios ===== */
  .atr-ctrl { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
  .atr-niveles { display: inline-flex; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
  .atr-niv { padding: 6px 14px; font-size: 13px; background: #fff; border: none; border-left: 1px solid var(--line); cursor: pointer; color: #475569; }
  .atr-niv:first-child { border-left: none; }
  .atr-niv.act { background: #EAF2FE; color: #0B72E8; font-weight: 600; }
  .atr-tabla { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; font-size: 13px; }
  .atr-tabla thead tr { background: #F7F8FA; color: #9AA8B8; font-size: 11px; text-transform: uppercase; letter-spacing: .03em; }
  .atr-tabla th { padding: 9px 8px; font-weight: 600; text-align: center; }
  .atr-tabla th.atr-l, .atr-tabla td.atr-l { text-align: left; }
  .atr-tabla td { padding: 10px 8px; text-align: center; border-top: 1px solid var(--line); color: #475569; }
  .atr-tabla tbody tr:hover { background: #F8FAFC; }
  .atr-fuente { display: flex; align-items: center; gap: 10px; }
  .atr-thumb { width: 38px; height: 38px; border-radius: 7px; background: #EAF2FE; display: flex; align-items: center; justify-content: center; overflow: hidden; flex-shrink: 0; }
  .atr-thumb img { width: 100%; height: 100%; object-fit: cover; }
  .atr-thumb-err span, .atr-thumb span { font-size: 16px; }
  .atr-nom { font-weight: 600; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 260px; }
  .atr-sub { font-size: 11px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 260px; }
  .atr-agend { color: #1D9E75 !important; font-weight: 700; }
  .atr-conv-ok { color: #1D9E75; font-weight: 700; }
  .atr-conv-0 { color: #94a3b8; }

  /* ===== Marketing: pestañas y detalle ===== */
  .atr-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--line); margin-bottom: 14px; }
  .atr-tab { padding: 9px 16px; font-size: 13px; background: none; border: none; border-bottom: 2px solid transparent; cursor: pointer; color: #64748B; }
  .inp { padding: 8px 11px; border: 1px solid var(--line); border-radius: 8px; font-size: 13px; }
  .atr-tab.act { color: #0B72E8; border-bottom-color: #0B72E8; font-weight: 600; }
  .mkt-tabla { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--line); border-radius: 10px; font-size: 12.5px; }
  .mkt-tabla thead tr { background: #F7F8FA; color: #9AA8B8; font-size: 10.5px; text-transform: uppercase; letter-spacing: .03em; }
  .mkt-tabla th { padding: 8px 9px; text-align: left; font-weight: 600; white-space: nowrap; }
  .mkt-tabla td { padding: 8px 9px; border-top: 1px solid var(--line); color: #475569; vertical-align: top; }
  .mkt-tabla tbody tr:hover { background: #F8FAFC; }
  .mkt-cod { font-family: monospace; font-size: 11.5px; white-space: nowrap; }
  .mkt-attr { max-width: 220px; font-size: 11.5px; word-break: break-word; }
  .mkt-vacio { color: #C0392B; font-style: italic; }
  .mkt-arch { background: #F1F5F9; color: #64748B; font-size: 11px; padding: 2px 7px; border-radius: 10px; }

  /* ===== Modal editar atribución (desde Ingresos) ===== */
  .ea-modal { background: #fff; border-radius: 14px; width: min(460px, 94vw); padding: 20px 22px 18px; box-shadow: 0 24px 70px rgba(0,0,0,.4); margin: auto; animation: rkModalIn .3s cubic-bezier(.2,.8,.25,1); }
  .ea-head { display: flex; align-items: center; justify-content: space-between; }
  .ea-head b { font-size: 16px; color: var(--ink); }
  .ea-x { background: none; border: none; font-size: 15px; color: #94a3b8; cursor: pointer; }
  .ea-sub { font-size: 12px; color: var(--muted); margin: 2px 0 14px; font-family: monospace; }
  .ea-l { display: block; font-size: 12px; font-weight: 600; color: #475569; margin: 11px 0 4px; }
  .ea-utm { font-weight: 400; color: #94a3b8; font-family: monospace; font-size: 11px; margin-left: 4px; }
  .ea-i { width: 100%; padding: 9px 11px; border: 1px solid var(--line); border-radius: 8px; font-size: 13px; box-sizing: border-box; }
  .ea-i:focus { outline: none; border-color: #0B72E8; }
  .ea-nota { font-size: 11.5px; color: var(--muted); margin: 14px 0 4px; background: #F7F8FA; padding: 8px 10px; border-radius: 7px; }
  .ea-acc { display: flex; gap: 9px; justify-content: flex-end; margin-top: 14px; }

  /* ===== Marketing: Inversión ===== */
  .inv-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-bottom: 14px; }
  .inv-card { background: #F7F8FA; border-radius: 10px; padding: 12px 14px; }
  .inv-card-l { font-size: 12px; color: #64748B; }
  .inv-card-v { font-size: 21px; font-weight: 700; color: var(--ink); margin-top: 2px; }
  .inv-card-v small { font-size: 13px; color: #94a3b8; font-weight: 600; }
  .inv-card-s { font-size: 11px; color: #94a3b8; margin-top: 1px; }
  .inv-tabla { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--line); border-radius: 12px; font-size: 12.5px; min-width: 680px; }
  .inv-tabla thead tr { background: #F7F8FA; color: #9AA8B8; font-size: 10.5px; text-transform: uppercase; letter-spacing: .03em; }
  .inv-tabla th { padding: 9px 7px; font-weight: 600; text-align: center; }
  .inv-tabla th.inv-l { text-align: left; }
  .inv-tabla td { padding: 9px 7px; border-top: 1px solid var(--line); color: #475569; text-align: center; }
  .inv-tabla td.inv-l { text-align: left; }
  .inv-tabla tbody tr:hover { background: #F8FAFC; }
  .inv-an { display: flex; align-items: center; gap: 9px; }
  .inv-thumb { width: 34px; height: 34px; border-radius: 6px; background: #EAF2FE; display: flex; align-items: center; justify-content: center; overflow: hidden; flex-shrink: 0; }
  .inv-thumb img { width: 100%; height: 100%; object-fit: cover; }
  .inv-nom { font-weight: 600; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 220px; font-size: 12px; }
  .inv-sub { font-size: 10.5px; color: var(--muted); }
  .inv-muted { color: #94a3b8; }
  .inv-agend { color: #1D9E75; font-weight: 700; }
  .inv-malo { color: #C0392B; font-weight: 700; }
  .inv-st.on { color: #1D9E75; }
  .inv-st.off { color: #94a3b8; }

  /* hora de última gestión en el ranking */
  .rk-ult { font-size: 10.5px; color: #94a3b8; font-weight: 600; margin-left: 6px; white-space: nowrap; }

  /* Inversión: árbol expandible */
  .inv-row.inv-camp { background: #F4F7FB; cursor: pointer; }
  .inv-row.inv-camp:hover { background: #EAF1F9; }
  .inv-row.inv-camp td { font-weight: 600; color: var(--ink); border-top: 2px solid #E2E8F0; }
  .inv-row.inv-conj { cursor: pointer; }
  .inv-row.inv-conj:hover { background: #F8FAFC; }
  .inv-row.inv-conj td { color: #334155; }
  .inv-tg { display: inline-block; width: 14px; color: #94a3b8; font-size: 10px; }
  .inv-ic { margin-right: 5px; }
  .inv-cnt { font-size: 10px; color: #94a3b8; font-weight: 500; margin-left: 4px; }

/* ===== Modo Supervisor (tablero de presencia) ===== */
.sup-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.sup-card { background: var(--card, #fff); border: 1px solid var(--line, #DDE4EC); border-top: 3px solid var(--gris); border-radius: 14px; padding: 14px 16px; box-shadow: 0 1px 4px rgba(31,45,61,.05); transition: box-shadow .15s; }
.sup-card:hover { box-shadow: 0 6px 18px rgba(11,114,232,.10); }
.sup-card.sup-en_linea { border-top-color: #16A34A; }
.sup-card.sup-ausente { border-top-color: #F59E0B; }
.sup-card.sup-desconectada { border-top-color: #9AA5B1; opacity: .82; }
.sup-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 12px; }
.sup-id { display: flex; align-items: center; gap: 10px; }
.sup-ava { width: 38px; height: 38px; border-radius: 50%; background: linear-gradient(135deg, #0B72E8, #1F2D3D); color: #fff; font-weight: 700; font-size: 13px; display: flex; align-items: center; justify-content: center; flex: none; }
.sup-nom { font-weight: 700; font-size: 15px; color: var(--ink, #1F2D3D); }
.sup-nom2 { font-size: 11px; color: var(--muted, #6B7A8D); }
.sup-tag { font-size: 9.5px; font-weight: 700; color: #0B72E8; background: #0B72E81a; border-radius: 5px; padding: 1px 5px; vertical-align: middle; }
.sup-pill { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 700; padding: 3px 10px; border-radius: 999px; white-space: nowrap; }
.sup-bolita { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }
.sup-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 10px; margin-bottom: 12px; }
.sup-met { display: flex; flex-direction: column; background: #F7F9FC; border-radius: 8px; padding: 6px 9px; }
.sup-met-l { font-size: 10px; color: var(--muted, #6B7A8D); text-transform: uppercase; letter-spacing: .3px; }
.sup-met-v { font-size: 15px; font-weight: 700; color: var(--ink, #1F2D3D); }
.sup-lead { font-size: 12.5px; padding-top: 10px; border-top: 1px dashed var(--line, #DDE4EC); }
.sup-lead .muted { color: #9AA5B1; }
.sup-chart-card { background: var(--card, #fff); border: 1px solid var(--line, #DDE4EC); border-radius: 14px; padding: 16px 18px; margin-top: 18px; box-shadow: 0 1px 4px rgba(31,45,61,.05); }
.sup-chart-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.sup-chart-tit { font-weight: 700; font-size: 15px; color: var(--ink, #1F2D3D); }
.sup-chart-ctrls { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12px; color: var(--muted, #6B7A8D); }
.sup-chart-ctrls .inp { padding: 5px 8px; border: 1px solid var(--line, #DDE4EC); border-radius: 8px; font-size: 12px; }
.sup-chart-ctrls label { display: inline-flex; align-items: center; gap: 5px; }

/* ===== Panel de control por GP (tiles + alertas + tabla) ===== */
.rp-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; margin-bottom: 10px; }
.rp-tile { display: flex; align-items: center; gap: 8px; background: var(--card, #fff); border: 1px solid var(--line, #e5e7eb); border-radius: 10px; padding: 8px 10px; }
.rp-tile.rp-clic { cursor: pointer; transition: box-shadow .12s, transform .12s; }
.rp-tile.rp-clic:hover { box-shadow: 0 2px 10px rgba(0,0,0,.08); transform: translateY(-1px); }
.rp-tile-ic { font-size: 18px; }
.rp-tile-v { font-size: 18px; font-weight: 700; line-height: 1.1; }
.rp-tile-l { font-size: 11.5px; color: #475569; font-weight: 600; }
.rp-tile-s { font-size: 10.5px; color: #94a3b8; }
.rp-tile.rojo { border-color: #f3c0c0; background: #fdf3f3; }
.rp-tile.naranja { border-color: #f3ddb8; background: #fdf8ee; }
.rp-tile.verde { border-color: #b9e6d3; background: #f1faf6; }
.rp-tile.azul { border-color: #bcd6f0; background: #f2f7fc; }
.rp-tile.celeste { border-color: #bcd6f0; background: #f2f7fc; }

.rp-alerts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 12px; font-size: 12px; }
.rp-alerts-tit { font-weight: 700; color: #b4530b; }
.rp-alert { background: #fff6ec; border: 1px solid #f3ddb8; color: #7a4a12; border-radius: 999px; padding: 3px 10px; }
.rp-alert.rp-clic { cursor: pointer; }
.rp-alert.rp-clic:hover { background: #fdedd6; }
.rp-ok { color: #1baf7a; font-weight: 600; }

.rp-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 7px; vertical-align: middle; }
.rp-dot-en_linea { background: #1baf7a; }
.rp-dot-ausente { background: #e0a106; }
.rp-dot-desconectada { background: #c3c6cb; }

.rp-ctrl .rp-cal { color: #c2410c; font-weight: 700; }
.rp-ctrl .rp-ok { color: #1baf7a; font-weight: 700; }
.rp-ctrl tr.rp-row { border-left: 3px solid transparent; }
.rp-sal-verde { border-left-color: #1baf7a !important; }
.rp-sal-ambar { border-left-color: #e0a106 !important; }
.rp-sal-rojo { border-left-color: #e34948 !important; }
.rp-sal-gris { border-left-color: #e5e7eb !important; }

/* ===== Depuración de Contactabilidad (3x5) ===== */
.depu-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; margin: 10px 0; }
.depu-sab { float: right; font-size: 12px; font-weight: 500; color: var(--muted, #6B7A8D); display: inline-flex; align-items: center; gap: 5px; cursor: pointer; }
.depu-sab input { width: auto; cursor: pointer; }
.depu-kpi { background: #F7F9FC; border: 1px solid var(--line, #DDE4EC); border-radius: 10px; padding: 10px 12px; }
.depu-kpi.ok { background: #ECFDF5; border-color: #A7F3D0; }
.depu-kpi.warn { background: #FFFBEB; border-color: #FDE68A; }
.depu-kpi-v { font-size: 24px; font-weight: 800; color: var(--ink, #1F2D3D); }
.depu-kpi-l { font-size: 11px; color: var(--muted, #6B7A8D); }
.depu-porgp { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.depu-gp-chip { font-size: 12px; background: #fff; border: 1px solid var(--line, #DDE4EC); border-radius: 999px; padding: 3px 10px; }
.depu-gp-chip small { color: var(--muted, #6B7A8D); }
.depu-tabs { display: flex; gap: 6px; margin: 6px 0 10px; }
.depu-tab { border: 1px solid var(--line, #DDE4EC); background: #fff; border-radius: 8px; padding: 6px 12px; font-size: 13px; cursor: pointer; }
.depu-tab.act { background: var(--azul, #0B72E8); color: #fff; border-color: var(--azul, #0B72E8); }
.depu-orden { font-size: 12px; color: var(--muted, #6B7A8D); margin-bottom: 6px; }
.depu-orden select { padding: 4px 8px; border: 1px solid var(--line, #DDE4EC); border-radius: 7px; font-size: 12px; }
.depu-tabla { width: 100%; border-collapse: collapse; font-size: 13px; }
.depu-tabla th { text-align: left; font-size: 11px; color: var(--muted, #6B7A8D); text-transform: uppercase; padding: 6px 8px; border-bottom: 1px solid var(--line, #DDE4EC); }
.depu-tabla td { padding: 8px; border-bottom: 1px solid #EEF2F7; vertical-align: middle; }
.depu-row { cursor: pointer; }
.depu-row:hover { background: #F7F9FC; }
.depu-row.sel { background: #EAF3FE; }
.depu-bar { width: 80px; height: 7px; background: #E5EBF2; border-radius: 4px; overflow: hidden; display: inline-block; vertical-align: middle; margin-right: 6px; }
.depu-bar-in { height: 100%; border-radius: 4px; }
.depu-badge { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; }
.depu-badge.ok { background: #ECFDF5; color: #16A34A; }
.depu-badge.no { background: #FFF7ED; color: #C2410C; }
.depu-acc { white-space: nowrap; }
.btn-mini { font-size: 12px; padding: 4px 10px; border-radius: 7px; border: 1px solid var(--azul, #0B72E8); background: var(--azul, #0B72E8); color: #fff; cursor: pointer; margin-left: 4px; }
.btn-mini.sec { background: #fff; color: var(--ink, #1F2D3D); border-color: var(--line, #DDE4EC); }
.btn-mini.rojo { background: #fff; color: var(--rojo, #CC0000); border-color: #F3C0C0; }
.btn-mini:disabled { opacity: .4; cursor: default; }
.depu-pag { display: flex; align-items: center; gap: 10px; margin-top: 10px; font-size: 13px; }
.depu-vacio { padding: 18px; text-align: center; color: var(--muted, #6B7A8D); background: #F7F9FC; border-radius: 10px; }
.depu-detalle { margin-top: 12px; padding: 12px 14px; background: #F7F9FC; border: 1px solid var(--line, #DDE4EC); border-radius: 10px; }
.depu-det-tit { font-weight: 700; font-size: 13px; margin-bottom: 8px; }
.depu-grid { border-collapse: collapse; font-size: 12px; }
.depu-grid th { padding: 4px 10px; color: var(--muted, #6B7A8D); font-size: 11px; }
.depu-grid td { padding: 4px 10px; text-align: center; }
.depu-fr { text-align: left !important; color: var(--muted, #6B7A8D); }
.depu-cell { font-weight: 700; }
.depu-cell.on { color: #16A34A; }
.depu-cell.off { color: #CBD5E1; }
.depu-det-acc { margin-top: 10px; }

.reu-bloque { margin: 14px 0 18px; }

.fb-responsable { margin-top:6px; font-size:13px; color:var(--muted); }
.fb-responsable select { margin-left:4px; padding:3px 6px; border:1px solid var(--line); border-radius:6px; font-size:13px; }

/* ===== Tablero (kanban) B2B ===== */
.kb-board { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); gap:12px; overflow-x:auto; padding:4px 2px 12px; }
.kb-col { display:flex; flex-direction:column; max-height:72vh; min-width:180px; background:#F7F9FB; border:1px solid var(--line); border-radius:12px; overflow:hidden; transition:background .12s,border-color .12s; }
.kb-col.kb-over { background:#DDEBFB; border-color:var(--azul); }
.kb-colhead { display:flex; justify-content:center; align-items:center; gap:6px; padding:11px 8px; background:var(--azul); white-space:nowrap; }
.kb-colhead span { color:#fff; font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.2px; }
.kb-count { background:rgba(255,255,255,.22); border:none; border-radius:20px; padding:1px 8px; font-size:12px; color:#fff !important; font-weight:800; }
.kb-ia-btn { margin-left:auto; background:rgba(255,255,255,.18); border:none; border-radius:6px; color:#fff; font-size:13px; cursor:pointer; padding:2px 5px; line-height:1; opacity:.8; transition:opacity .15s; }
.kb-ia-btn:hover { opacity:1; background:rgba(255,255,255,.32); }
.kb-colhint { font-size:11px; color:var(--muted); padding:6px 10px; text-align:center; border-bottom:1px solid var(--line); background:#fff; }
.kb-colbody { display:flex; flex-direction:column; gap:9px; padding:9px; overflow-y:auto; flex:1; min-height:80px; }
.kb-vacio { color:var(--muted); text-align:center; font-size:12px; padding:22px 0; opacity:.7; }
.kb-card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:9px 10px; cursor:grab; box-shadow:0 1px 2px rgba(16,42,73,.05); transition:box-shadow .12s,transform .05s; }
.kb-card:hover { border-color:#BBC9DC; box-shadow:0 3px 10px rgba(16,42,73,.12); }
.kb-card:active { cursor:grabbing; }
.kb-card.kb-dragging { opacity:.45; }
.kb-top { display:flex; justify-content:space-between; gap:6px; align-items:baseline; font-size:13.5px; color:var(--ink); line-height:1.25; }
.kb-ticket { flex:0 0 auto; background:#EEF3F9; color:var(--navy); border-radius:6px; padding:1px 6px; font-size:11px; font-weight:700; }
.kb-sub { font-size:11.5px; color:var(--muted); margin-top:2px; }
.kb-monto { font-size:12.5px; color:var(--ink); font-weight:600; margin-top:3px; }
.kb-alerta { display:inline-block; margin-top:5px; font-size:11px; color:var(--rojo); background:#FDECEC; border-radius:6px; padding:1px 6px; }
.kb-foot { display:flex; align-items:center; gap:5px; margin-top:8px; }
.kb-dot { width:16px; height:16px; border-radius:50%; color:#fff; font-size:9px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; }
.kb-resp { margin-left:auto; font-size:11px; color:var(--muted); background:var(--bg); border-radius:6px; padding:1px 7px; }
.kb-resp.kb-sin { color:var(--naranja); }
.kb-sin { color:var(--naranja); }
.kb-desest .b2b-tabla tr:hover td { background:#FAFBFD; }

/* ===== v1.221: vista B2B full-width ===== */
#v-b2b.vista.act { max-width:none; }
body:has(#v-b2b.vista.act) .content { max-width:none; }

/* Scorecards de resumen */
.b2b-scorecards { display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin:0 0 14px; }
@media (max-width:1100px){ .b2b-scorecards { grid-template-columns:repeat(3,1fr); } }
@media (max-width:640px){ .b2b-scorecards { grid-template-columns:repeat(2,1fr); } }
.sc-card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:12px 14px; display:flex; flex-direction:column; gap:2px; box-shadow:0 1px 2px rgba(16,42,73,.05); }
.sc-card .sc-ic { font-size:16px; line-height:1; }
.sc-card .sc-val { font-size:22px; font-weight:800; color:var(--ink); letter-spacing:-.5px; }
.sc-card .sc-lbl { font-size:11.5px; color:var(--muted); font-weight:600; }
.sc-card.sc-azul { border-color:#BBD6F5; } .sc-card.sc-azul .sc-val { color:var(--azul); }
.sc-card.sc-amar { border-color:#F3D98A; background:#FFFBF0; } .sc-card.sc-amar .sc-val { color:#B8860B; }
.sc-card.sc-rojo { border-color:#F0B8B4; background:#FFF6F5; } .sc-card.sc-rojo .sc-val { color:var(--rojo); }
.sc-card.sc-verde { border-color:#B4DEC6; } .sc-card.sc-verde .sc-val { color:#1D9E75; }

/* Filtros compactos del kanban, a la misma altura */
.b2b-filtros-mini { display:flex; gap:8px; align-items:center; flex-wrap:nowrap; }
.b2b-filtros-mini select { height:32px; padding:0 8px; border:1px solid var(--line); border-radius:7px; font-size:12px; color:var(--ink); background:#fff; flex:1 1 0; min-width:120px; }

/* Banda azul de cabecera con letra un poco más grande + total de leads debajo, fuera de la banda */
.kb-colhead span { font-size:13.5px; }
.kb-colpot { font-size:19px; color:var(--navy); font-weight:800; text-align:center; padding:6px 8px; background:#fff; border-bottom:1px solid var(--line); letter-spacing:-.3px; }

/* Tarjeta kanban v1.233: colores vivos + estados */
.kb-monto-row { display:flex; align-items:center; justify-content:space-between; gap:6px; margin-top:4px; }
.kb-monto-row .kb-monto { margin-top:0; font-size:13.5px; font-weight:700; color:var(--navy); }
.kb-ubic { font-size:11px; color:#6B7A8D; margin-top:2px; line-height:1.2; }
.kb-card-verde { border-left:4px solid #1D9E75; background:linear-gradient(180deg,#F3FBF8 0%,#fff 42%); }
.kb-card-amarillo { border-left:4px solid #EF9F27; background:linear-gradient(180deg,#FFF9EE 0%,#fff 42%); }
.kb-card-rojo { border-left:4px solid #E24B4A; background:linear-gradient(180deg,#FDF2F1 0%,#fff 42%); }
.kb-card-caliente { border-left:4px solid #D9480F; background:linear-gradient(180deg,#FFF3EC 0%,#fff 42%); }
.kb-card-tibio { border-left:4px solid #B7791F; background:linear-gradient(180deg,#FFF9EE 0%,#fff 42%); }
.kb-card-frío, .kb-card-frio { border-left:4px solid #0B72E8; background:linear-gradient(180deg,#F0F6FF 0%,#fff 42%); }
.kb-dot-done { box-shadow:0 0 0 2px #1D9E7533; }
.kb-sla-quedan { color:#0B72E8; font-weight:700; }
.kb-ticket-bajo { background:#E7F0FF; color:#0B72E8; }
.kb-ticket-medio { background:#FFF4E0; color:#B7791F; }
.kb-ticket-alto { background:#FFE7DC; color:#D9480F; }

/* Botón modo demo + estados RUC en la ficha */
.fb-demo { font-size:12px; padding:4px 10px; color:#6B7A8D; border:1px solid var(--line); border-radius:8px; background:#fff; cursor:pointer; }
.fb-demo-on { background:#3270DF; color:#fff; border-color:#3270DF; }
.ruc-ok { color:#1D9E75; font-weight:600; font-size:12px; margin-left:6px; }
.ruc-err { color:#CC0000; font-weight:600; font-size:12px; margin-left:6px; }

/* Stepper del viaje del lead (ficha B2B) */
.fb-stepper { display:flex; align-items:center; gap:3px; padding:10px 12px; background:#fff; border:1px solid var(--line); border-radius:12px; margin-bottom:10px; overflow:visible; flex-wrap:nowrap; }
.fbs-paso { display:flex; align-items:center; gap:7px; flex:0 0 auto; opacity:.55; }
.fbs-paso.fbs-done, .fbs-paso.fbs-actual { opacity:1; }
.fbs-dot { width:26px; height:26px; border-radius:50%; background:#DDE4EC; color:#fff; font-size:12px; font-weight:800; display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; }
.fbs-actual .fbs-dot { box-shadow:0 0 0 3px #EF9F2744; background:#EF9F27 !important; }
.fbs-txt { font-size:12.5px; font-weight:700; color:#1B2A41; white-space:nowrap; }
.fbs-sem { font-style:normal; font-size:10.5px; font-weight:700; color:#6B7A8D; }
.fbs-linea { width:26px; height:3px; background:#E3E9F2; border-radius:2px; flex:0 0 auto; margin:0 2px; }
.fbs-linea-done { background:#1D9E75; }
.fb-ruc-head { font-size:12px; font-weight:800; color:#0E2A57; background:#EEF3F9; border-radius:6px; padding:2px 8px; margin-right:6px; }
.fb-ruc-falta { color:#CC0000; background:#FFE3E0; }
/* Chips de campos automaticos (SUNAT) */
.mtr-chip { display:inline-block; font-size:12px; font-weight:700; padding:3px 10px; border-radius:8px; }
.mtr-chip-ok { background:#E7F6EF; color:#1D9E75; }
.mtr-chip-obs { background:#FFF4E0; color:#B7791F; }
.mtr-chip-ko { background:#FDE8E7; color:#CC0000; }
.mtr-chip-p { background:#EEF3F9; color:#6B7A8D; font-weight:600; }
/* Ficha B2B: ancho definido en el HTML del modal (1100px), sin overflow horizontal */
#ovFichaB2B .fb-body { overflow-x:hidden; }
/* Boton Guardar de cada etapa: arriba a la derecha, a la altura del encabezado; verde al hover */
.fb-panel-open { position:relative; }
.fb-panel-open > .fb-body > .fb-acc:last-child { position:absolute; top:8px; right:52px; margin:0; z-index:3; }
.fb-panel-open > .fb-body > .fb-acc:last-child .btn { padding:6px 16px; }
.fb-acc .btn:hover { background:#1D9E75 !important; border-color:#1D9E75 !important; color:#fff; }
.fb-revisar { background:#FFF4E0; color:#B7791F; border:1px solid #F1D9A7; border-radius:8px; padding:2px 10px; font-size:12px; font-weight:700; cursor:pointer; margin-left:4px; }
.fb-revisar:hover { background:#B7791F; color:#fff; }
/* Solicitud homogenea: labels con primera letra en mayuscula, valores alineados */
.fb-campo .fb-k { color:#41505F; font-weight:600; }
.fb-campo .fb-k::first-letter { text-transform:uppercase; }
.mtr-lbl::first-letter, .fb-sec::first-letter { text-transform:uppercase; }
.fb-campo .fb-v { color:#1B2A41; }
/* Cajones de datos SUNAT (auto) */
.fb-panel .mtr-row { background:#FAFCFE; border:1px solid #EDF2F8; border-radius:10px; padding:7px 10px; margin-bottom:6px; }
.fb-panel .mtr-lbl { font-size:12px; }

/* Grid contactabilidad 3x5 (trazabilidad B2C) */
.g35-wrap { background:#fff; border:1px solid #E3E9F2; border-radius:12px; padding:10px 14px; margin:10px 0 4px; }
.g35-head { font-size:13px; font-weight:800; color:#1B2A41; display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:8px; }
.g35-leyenda { margin-left:auto; font-size:11px; color:#5B6B7F; display:flex; align-items:center; gap:8px; font-weight:600; }
.g35-leyenda i { width:12px; height:12px; border-radius:3px; display:inline-block; margin-right:3px; vertical-align:-2px; }
.g35-grid { display:flex; gap:5px; align-items:flex-start; overflow-x:auto; padding-bottom:2px; }
.g35-frcol { display:flex; flex-direction:column; gap:4px; margin-right:3px; }
.g35-fr { font-size:10px; font-weight:800; color:#5B6B7F; height:18px; display:flex; align-items:center; }
.g35-fr-et { height:8px; font-size:8.5px; }
.g35-dia { display:flex; flex-direction:column; gap:4px; align-items:center; }
.g35-celdas { display:flex; flex-direction:column; gap:4px; }
.g35-celda { width:26px; height:18px; border-radius:4px; display:block; }
.g35-futuro { border:1px dashed #C9D4E0; }
.g35-etapa { width:26px; height:8px; border-radius:3px; }
.g35-lbl { font-size:9.5px; font-weight:700; color:#5B6B7F; text-align:center; line-height:1.1; }
.g35-lbl i { font-style:normal; font-weight:600; color:#9AA7B6; }



/* Dot de la etapa actual: AMARILLO con realce estático (sin animación, para no lagear el tablero) */
.kb-dot-actual { background:#EF9F27 !important; box-shadow:0 0 0 2px #EF9F2755; }

/* Etiquetas de observación en tarjetas de Solicitud */
.kb-obs { display:flex; flex-wrap:wrap; gap:4px; margin-top:6px; }
.kb-tag { font-size:10.5px; font-weight:700; padding:2px 7px; border-radius:999px; line-height:1.3; }
.kb-tag-ruc { background:#FDECEC; color:var(--rojo); }
.kb-tag-num { background:#FFF3E0; color:#C77700; border:1px solid #F3D08A; }

/* Mensaje "ver desestimados en tabla" */
.kb-desest-msg { max-width:460px; margin:32px auto; text-align:center; background:var(--card); border:1px solid var(--line); border-radius:14px; padding:28px 26px; box-shadow:0 2px 10px rgba(16,42,73,.06); }
.kb-desest-msg .kb-desest-ic { font-size:40px; }
.kb-desest-msg h3 { margin:10px 0 6px; font-size:16px; color:var(--ink); }
.kb-desest-msg p { font-size:13px; color:var(--muted); line-height:1.5; margin-bottom:16px; }

/* ===== v1.222 ===== */
/* Barra de control: filtros a la izquierda, toggles Kanban/Lista a la derecha, misma altura */
.b2b-barra-ctrl { display:flex; align-items:center; gap:10px; margin:0 0 12px; flex-wrap:wrap; }
.b2b-barra-ctrl .b2b-filtros-mini { flex:1 1 auto; }
.b2b-barra-ctrl .b2b-view-toggle { margin-left:auto; flex:0 0 auto; }
.b2b-view-toggle .vt-btn { height:32px; }
.b2b-filtros-mini input[type=text] { height:32px; padding:0 10px; border:1px solid var(--line); border-radius:7px; font-size:12px; min-width:200px; }

/* Scorecards: número + icono a la derecha, mismo tamaño; clicables */
.sc-card .sc-row { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.sc-card .sc-ic { font-size:15px; line-height:1; opacity:.85; }
.sc-card.sc-clic { cursor:pointer; transition:transform .08s, box-shadow .15s, border-color .15s; }
.sc-card.sc-clic:hover { transform:translateY(-1px); box-shadow:0 3px 10px rgba(16,42,73,.12); }
.sc-card.sc-on { border-color:var(--azul); box-shadow:0 0 0 2px rgba(11,114,232,.25); }

/* Campos de filtro compactos (no ocupan todo el ancho) */
.mtr-row { display:flex; align-items:center; gap:8px; padding:5px 0; flex-wrap:wrap; }
.mtr-lbl { flex:1 1 auto; font-size:12.5px; color:var(--ink); min-width:140px; }
.mtr-ctrl { flex:0 0 auto; display:inline-flex; align-items:center; gap:6px; }
.mtr-in { height:30px; font-size:12px; padding:0 8px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink); max-width:170px; }
.mtr-num { width:92px; text-align:right; }
.mtr-sub { max-width:150px; }
.mtr-auto { background:#F1F3F6; color:#5A6B7B; cursor:not-allowed; }
.mtr-am { font-size:12.5px; font-weight:600; color:var(--ink); background:#EEF2F7; border-radius:6px; padding:4px 10px; }
.mtr-suf { font-size:11px; color:var(--muted); }
.mtr-subwrap { display:inline-flex; align-items:center; gap:5px; margin-left:6px; padding-left:6px; border-left:2px solid #E3E9F0; }
.mtr-act { font-size:11px; color:var(--muted); display:inline-flex; align-items:center; gap:4px; cursor:pointer; user-select:none; }
.mtr-act input { margin:0; }

/* Dot "observado" en los gates */
.f2-obs-dot { background:#8B5CF6 !important; }
.f2-obs { color:#7C3AED; font-size:11.5px; margin-top:3px; }

/* Bandera roja de descartar + botón Cerrar en la ficha */
.fb-flag { background:#FEECEC; border:1px solid #F3C0BE; color:#CC0000; font-size:16px; line-height:1; padding:6px 9px; border-radius:8px; cursor:pointer; transition:background .15s; }
.fb-flag:hover { background:#FBDAD8; }
.fb-cerrar { background:#EEF2F7; border:1px solid var(--line); color:#41505F; font-size:13px; font-weight:600; padding:7px 14px; border-radius:8px; cursor:pointer; }
.fb-cerrar:hover { background:#E2E8F0; }

/* Datos de empresa fusionados en el panel SUNAT */
.fb-emp-datos { display:grid; grid-template-columns:1fr 1fr; gap:2px 18px; margin:6px 0 4px; }
@media (max-width:560px){ .fb-emp-datos { grid-template-columns:1fr; } }

/* Link de Drive en crédito */
.fb-link-drive { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-top:4px; }

/* Bitácora de gestiones */
.fb-gest-form { background:#F8FAFC; border:1px solid var(--line); border-radius:10px; padding:12px 14px; margin-bottom:12px; }
.fb-gest-item { border-left:3px solid var(--azul); background:#fff; border:1px solid var(--line); border-left-width:3px; border-radius:8px; padding:9px 12px; margin-bottom:8px; }
.fb-gest-top { font-size:13px; color:var(--ink); display:flex; align-items:baseline; gap:6px; flex-wrap:wrap; }
.fb-gest-fecha { margin-left:auto; font-size:11px; color:var(--muted); }
.fb-gest-com { font-size:12px; color:#41505F; margin-top:3px; }
.fb-gest-prox { font-size:12px; color:#0B72E8; margin-top:5px; background:#EEF5FE; border-radius:6px; padding:4px 8px; display:inline-block; }

/* Tabla de ratios financieros */
.rt-tabla { width:100%; border-collapse:collapse; font-size:12px; margin-top:4px; }
.rt-tabla th { text-align:left; font-size:11px; color:var(--muted); font-weight:600; padding:4px 8px; border-bottom:1px solid var(--line); }
.rt-tabla td { padding:5px 8px; border-bottom:1px solid #EEF2F6; }
.rt-tabla .rt-c { text-align:center; }
.rt-ok { color:#1D9E75; font-weight:600; }
.rt-obs { color:#EF9F27; font-weight:600; }
.rt-na { color:var(--muted); }
.rt-cap { margin-top:8px; font-size:12px; background:#FFF8E8; border:1px solid #F3D98A; border-radius:8px; padding:8px 10px; color:#9A6B00; }
.rt-cuota { font-size:12px; background:#EEF5FE; border:1px solid #CFE2FA; border-radius:8px; padding:7px 10px; color:#0B4C8C; margin-bottom:8px; }
.rt-cuota-pend { background:#F4F6F8; border-color:#E1E6EC; color:#6B7A8D; }

/* Bloque análisis en Finanzas: chips multi + textarea */
.mtr-row-multi { align-items:flex-start; }
.an-chips { display:flex; flex-wrap:wrap; gap:6px; flex:1 1 auto; }
.an-chip { font-size:11.5px; border:1px solid var(--line); border-radius:14px; padding:4px 10px; cursor:pointer; user-select:none; background:#fff; color:#41505F; display:inline-flex; align-items:center; gap:5px; }
.an-chip input { margin:0; }
.an-chip-on { border-color:var(--azul); background:#EEF5FE; color:#0B4C8C; font-weight:600; }
.an-textarea { flex:1 1 auto; min-height:56px; resize:vertical; font-family:inherit; padding:6px 8px; max-width:none; width:100%; }

/* Business Case */
.bc-analisis { display:flex; flex-direction:column; gap:6px; font-size:12.5px; color:var(--ink); }
.bc-analisis .sub { display:inline-block; min-width:150px; }
.bc-obs { margin:4px 0 0; padding-left:18px; font-size:12.5px; color:#7C5A00; }
.bc-obs li { margin-bottom:3px; }
.bc-rec { border:1px solid; border-radius:10px; padding:12px 14px; font-size:14px; text-align:center; margin-top:4px; }

/* Campos numéricos de crédito: unidad + límite del ticket */
.mtr-numwrap { display:inline-flex; align-items:center; gap:4px; }
.mtr-numwrap .mtr-num { width:70px; text-align:right; }
.mtr-uni { font-size:11px; color:var(--muted); font-weight:600; }
.mtr-lim { font-size:10.5px; color:#94a3b8; margin-left:4px; white-space:nowrap; }

/* Garantía: documentos con link + LTV */
.gd-row { display:flex; align-items:center; gap:8px; padding:6px 0; border-bottom:1px solid #EEF2F6; flex-wrap:wrap; }
.gd-lbl { font-size:12.5px; color:var(--ink); min-width:150px; flex:0 0 auto; }
.gd-st { font-size:10.5px; font-weight:600; padding:1px 7px; border-radius:10px; }
.gd-ok { color:#1D9E75; background:#1D9E7515; }
.gd-pend { color:#94a3b8; background:#94a3b815; }
.gd-link { flex:1 1 160px; min-width:0; height:30px; font-size:12px; }
.gd-open { font-size:11px; color:var(--azul); text-decoration:none; }
.gd-ltv { font-size:13px; font-weight:600; }
.gd-ltv-ok { color:#1D9E75; }
.gd-ltv-obs { color:#EF9F27; }

.fb-acciones { margin-top:10px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.fb-acciones .btn-descartar { background:#fff; color:var(--rojo); border:1px solid var(--rojo); padding:5px 11px; border-radius:6px; font-size:13px; cursor:pointer; }
.fb-acciones .btn-descartar:hover { background:var(--rojo); color:#fff; }
.fb-desc-tag { font-size:12px; color:var(--rojo); font-weight:600; }

/* ===== Filtros B2B con métricas (semáforo calculado) ===== */
.mtr-box { margin: 6px 0 4px; }
.mtr-row { display: flex; align-items: center; gap: 8px; padding: 5px 0; border-bottom: 1px solid var(--line, #DDE4EC); }
.mtr-row:last-child { border-bottom: none; }
.mtr-dot { width: 11px; height: 11px; border-radius: 50%; flex: 0 0 auto; background: #DDE4EC; box-shadow: inset 0 0 0 1px rgba(0,0,0,.08); }
.mtr-lbl { flex: 1; font-size: 13px; color: var(--ink, #1F2D3D); }
.mtr-in { flex: 0 0 auto; min-width: 120px; padding: 5px 8px; border: 1px solid var(--line, #DDE4EC); border-radius: 7px; font-size: 13px; background: #fff; color: var(--ink, #1F2D3D); }
.mtr-num { width: 96px; min-width: 0; text-align: right; }
.mtr-suf { font-size: 11px; color: var(--muted, #6B7A8D); min-width: 34px; }
.mtr-foot { margin-top: 8px; font-size: 12px; color: var(--muted, #6B7A8D); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.mtr-pill { font-weight: 600; color: var(--ink, #1F2D3D); padding: 2px 8px; border-radius: 999px; background: #F2F5F9; }
.mtr-faltan { font-weight: 400; color: var(--muted, #6B7A8D); }
.mtr-saved { outline: 2px solid #1D9E75; outline-offset: 1px; }
.fb-cred-cons { font-size: 14px; font-weight: 600; color: var(--ink, #1F2D3D); margin-bottom: 8px; padding: 8px 10px; background: #F2F5F9; border-radius: 8px; }

/* ===== Puntaje (probabilidad de cierre) + deadline por etapa (B2B) ===== */
.kb-meta { margin-top: 5px; display: flex; gap: 5px; flex-wrap: wrap; }
.kb-prob { font-size: 11px; font-weight: 700; padding: 1px 8px; border-radius: 999px; white-space: nowrap; }
.kb-prob-p1 { background: #FFE7DC; color: #D9480F; }
.kb-prob-p2 { background: #FFF4E0; color: #B7791F; }
.kb-prob-p3 { background: #E7F0FF; color: #0B72E8; }
.kb-prob-p4 { background: #EEF2F6; color: #6B7A8D; }
.kb-prob-x { background: #ECEFF3; color: #94a3b8; }
.kb-sla { font-size: 11px; color: #6B7A8D; margin-top: 4px; }
.kb-sla-venc { color: #CC0000; font-weight: 700; }
.kb-sla-porv { color: #B7791F; font-weight: 700; }
.kb-card-venc { border-left: 3px solid #CC0000; }
.fbr-sla { font-size: 11.5px; font-weight: 600; padding: 2px 9px; border-radius: 999px; }
.fbr-sla-ok { background: #E7F0FF; color: #0B72E8; }
.fbr-sla-porv { background: #FFF4E0; color: #B7791F; }
.fbr-sla-venc { background: #FFE3E0; color: #CC0000; }

/* Botón de gestión por etapa + candados */
.fb-gestion-btn { background:#3270DF; color:#fff; border:none; border-radius:8px; padding:4px 12px; font-size:12px; font-weight:600; cursor:pointer; margin-left:8px; }
.fb-gestion-btn:hover { background:#2860c8; }
.fb-lock-tag { font-size:11px; color:#94a3b8; margin-left:8px; font-weight:600; }
.fb-lock-fut { color:#B7791F; }
.fb-locked { opacity:.6; cursor:not-allowed; background:#F4F6F8 !important; }
.fb-info { color:#3270DF; font-size:18px; font-weight:700; }

/* Modal de gestión */
.gm-back, .tl-back { position:fixed; inset:0; background:rgba(15,30,55,.45); z-index:9999; display:flex; align-items:center; justify-content:center; }
.gm-card { background:#fff; border-radius:14px; width:440px; max-width:94vw; max-height:90vh; overflow:auto; padding:18px 20px; box-shadow:0 20px 60px rgba(0,0,0,.25); }
.gm-head { display:flex; align-items:center; font-size:16px; margin-bottom:10px; }
.gm-x { margin-left:auto; background:none; border:none; font-size:16px; cursor:pointer; color:#6B7A8D; }
.gm-step { font-size:12px; font-weight:700; color:#3270DF; margin:14px 0 8px; text-transform:uppercase; letter-spacing:.5px; }
.gm-oblig { color:#CC0000; font-size:10px; background:#FFE3E0; padding:1px 7px; border-radius:8px; margin-left:4px; }
.gm-row { display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.gm-row label { min-width:110px; font-size:12.5px; color:#41505F; }
.gm-row .mtr-in { flex:1; }
.gm-ta { min-height:52px; resize:vertical; font-family:inherit; }
.gm-foot { display:flex; gap:10px; justify-content:flex-end; margin-top:16px; }

/* Timeline de trazabilidad */
.tl-card { background:#fff; border-radius:14px; width:460px; max-width:94vw; max-height:86vh; overflow:auto; padding:18px 20px; box-shadow:0 20px 60px rgba(0,0,0,.25); }
.tl-head { display:flex; align-items:center; font-size:16px; margin-bottom:12px; }
.tl-list { position:relative; }
.tl-item { display:flex; gap:12px; padding-bottom:14px; position:relative; }
.tl-item:not(:last-child)::before { content:''; position:absolute; left:5px; top:14px; bottom:0; width:2px; background:#E3E9F2; }
.tl-dot { width:12px; height:12px; border-radius:50%; background:#3270DF; margin-top:3px; flex:0 0 auto; z-index:1; }
.tl-body { flex:1; }
.tl-top { font-size:13px; }
.tl-res { font-size:12px; color:#41505F; margin-top:2px; }
.tl-com { font-size:12px; color:#6B7A8D; font-style:italic; margin-top:3px; }
.tl-prox { font-size:12px; color:#0B4C8C; background:#EEF5FE; border-radius:6px; padding:3px 8px; margin-top:5px; display:inline-block; }

/* Reasignación en lote */
.b2b-lote-bar { display:flex; align-items:center; gap:14px; padding:8px 12px; background:#F2F5F9; border-radius:10px; margin-bottom:10px; flex-wrap:wrap; }
.b2b-lote-all { font-size:13px; font-weight:600; color:#41505F; display:flex; align-items:center; gap:6px; }
.b2b-sel { cursor:pointer; }

/* Duplicados */
.dup-grupo { border:1px solid #E3E9F2; border-radius:10px; padding:12px; margin-bottom:12px; }
.dup-ruc { font-weight:700; font-size:13px; color:#1B2A41; margin-bottom:8px; }
.dup-row { display:block; font-size:12.5px; padding:5px 0; cursor:pointer; border-bottom:1px solid #F0F3F7; }
.dup-acc { margin-top:10px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }

/* Timeline footer */
.tl-foot { margin-top:12px; padding-top:12px; border-top:1px solid #E3E9F2; text-align:right; }
.tl-limpiar { color:#CC0000 !important; border-color:#E8B5AD !important; }

.fb-resumen { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 0 0 12px; padding: 10px 12px; background: #F2F5F9; border-radius: 10px; font-size: 13px; }
.fbr-prob { font-weight: 700; padding: 2px 10px; border-radius: 999px; }
.fbr-p1 { background: #FFE7DC; color: #D9480F; }
.fbr-p2 { background: #FFF4E0; color: #B7791F; }
.fbr-p3 { background: #E7F0FF; color: #0B72E8; }
.fbr-p4 { background: #EEF2F6; color: #6B7A8D; }
.fbr-x { background: #ECEFF3; color: #94a3b8; }
.fbr-accion { color: #1F2D3D; }

/* ===== Botón Asignar + menú de lista (B2B) ===== */
.asg-wrap { position: relative; display: inline-block; margin-left: 8px; }
.asg-btn { padding: 3px 12px !important; font-size: 12px !important; }
.asg-menu { position: absolute; top: 100%; left: 0; margin-top: 5px; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 8px 24px rgba(16,42,73,.16); z-index: 60; min-width: 210px; max-height: 280px; overflow-y: auto; padding: 5px; }
.asg-menu-tit { font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: .3px; padding: 4px 8px 6px; }
.asg-item { display: block; width: 100%; text-align: left; background: none; border: none; padding: 8px 10px; border-radius: 7px; font-size: 13px; color: var(--ink); cursor: pointer; }
.asg-item:hover { background: #F2F5F9; }
.asg-item-act { font-weight: 700; color: var(--azul); }
.asg-rol { font-size: 10px; color: var(--muted); }
.asg-check { color: var(--azul); font-weight: 700; }
/* Flags SUNAT (activo / habido) */
.emp-flags { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.emp-flag { font-size: 12px; font-weight: 700; padding: 3px 10px; border-radius: 999px; }
.emp-ok { background: #E4F3EC; color: #1D7A56; }
.emp-warn { background: #FDEAEA; color: #CC0000; }
.fb-doc-note { font-size: 11px; color: var(--muted); margin-bottom: 8px; }

/* ===== Filtros de dos capas (gates + puntaje) B2B ===== */
.f2-box { margin: 4px 0; }
.f2-dot { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; background: #DDE4EC; box-shadow: inset 0 0 0 1px rgba(0,0,0,.08); }
.f2-ok-dot { background: #1D9E75; }
.f2-ko-dot { background: #CC0000; }
.f2-esc-dot { background: #E0A800; }
.f2-peso { font-size: 10px; color: var(--muted); }
.f2-foot { margin-top: 10px; }
.f2-ko { margin-top: 6px; font-size: 12px; color: #CC0000; font-weight: 700; }
.f2-esc { margin-top: 4px; font-size: 12px; color: #B7791F; font-weight: 700; }

/* ===== Business Case B2B ===== */
.bc-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--line, #E7ECF2); flex-wrap: wrap; }
.bc-row .mtr-lbl { font-weight: 600; }
.bc-row .f2-ko { flex-basis: 100%; }
.bc-resumen { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; margin-top: 6px; }
.bc-resumen > div { display: flex; flex-direction: column; }
.bc-resumen .sub { font-size: 11px; }

/* ===== v1.248: ícono "?" con tooltip en labels de filtros B2B ===== */
.f2-help {
  display: inline-flex; align-items: center; justify-content: center;
  width: 14px; height: 14px; margin-left: 4px; flex: 0 0 auto;
  border-radius: 50%; background: #E4EAF2; color: #64748B;
  font-size: 9.5px; font-weight: 700; line-height: 1;
  cursor: help; position: relative; vertical-align: middle;
  user-select: none;
}
.f2-help:hover { background: #0B5FFF; color: #fff; }
.f2-help::after {
  content: attr(data-tip);
  position: absolute; left: 50%; bottom: calc(100% + 7px); transform: translateX(-50%);
  width: max-content; max-width: 260px;
  background: #1E293B; color: #F1F5F9;
  font-size: 11.5px; font-weight: 400; line-height: 1.45; text-transform: none;
  padding: 8px 10px; border-radius: 8px; white-space: normal;
  box-shadow: 0 6px 18px rgba(15, 23, 42, .25);
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .12s ease; z-index: 60;
}
.f2-help::before {
  content: ''; position: absolute; left: 50%; bottom: calc(100% + 2px); transform: translateX(-50%);
  border: 5px solid transparent; border-top-color: #1E293B;
  opacity: 0; visibility: hidden; transition: opacity .12s ease; z-index: 60;
}
.f2-help:hover::after, .f2-help:hover::before { opacity: 1; visibility: visible; }
/* Evita que el panel recorte el tooltip en las primeras filas */
.mtr-row, .gd-row { overflow: visible; }
.f2-box, .mtr-box { overflow: visible; }


/* ===== v1.249: ficha B2B — ancho al stepper, cierre seguro, bandera roja, rediseño Solicitud/SUNAT ===== */
/* Stepper compacto: 6 pasos en una línea dentro de 880px, sin scroll-x */
.fbs-paso { display:inline-flex; align-items:center; gap:5px; flex:0 0 auto; }
.fbs-dot { width:20px; height:20px; font-size:10.5px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; background:#DDE4EC; color:#fff; font-weight:800; flex:0 0 auto; }
.fbs-txt { font-size:11.5px; font-weight:700; color:#6B7A8D; white-space:nowrap; }
.fbs-actual .fbs-txt { color:#0B5FFF; }
.fbs-sem { font-style:normal; font-size:10px; font-weight:600; color:#94A3B8; }
.fbs-linea { flex:1 1 12px; min-width:10px; height:2px; background:#E4EAF2; border-radius:2px; }
.fbs-linea-done { background:#1D9E75; }
.fb-modal .fb-panel, .fb-modal .fb-stepper { max-width:100%; }

/* Cerrar: hover rojo */
.fb-cerrar:hover { background:#E24B4A !important; border-color:#E24B4A !important; color:#fff !important; }

/* Cambios sin guardar */
.fb-panel-dirty-soft { box-shadow: inset 3px 0 0 #EF9F27; }
.fb-panel-dirty { outline:2px solid #E24B4A; outline-offset:-2px; border-radius:12px; animation: fbShake .3s ease 1; }
@keyframes fbShake { 0%,100%{transform:translateX(0)} 25%{transform:translateX(-4px)} 75%{transform:translateX(4px)} }
.fb-aviso-dirty { position:sticky; top:0; z-index:40; background:#FDE8E7; color:#9B1C1C; border:1px solid #F5B8B4; border-radius:10px; padding:9px 12px; font-size:12.5px; margin:0 0 10px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.fb-aviso-desc { margin-left:auto; background:none; border:1px solid #E24B4A; color:#E24B4A; border-radius:8px; padding:3px 10px; font-size:11.5px; cursor:pointer; font-weight:700; }
.fb-aviso-desc:hover { background:#E24B4A; color:#fff; }

/* Bandera roja: modal */
.rf-card { max-width:460px; }
.rf-body { padding:12px 14px; display:flex; flex-direction:column; gap:6px; }
.rf-sub { font-size:12px; color:#6B7A8D; margin-bottom:4px; }
.rf-opt { display:flex; align-items:center; gap:8px; font-size:12.5px; padding:6px 8px; border:1px solid var(--line); border-radius:8px; cursor:pointer; }
.rf-opt:hover { background:#F7FAFF; border-color:#B9D2FF; }
.rf-lbl { font-size:12px; font-weight:700; margin-top:6px; }
.rf-oblig { color:#E24B4A; font-weight:600; font-size:11px; }
.rf-txt { width:100%; min-height:70px; resize:vertical; }
.rf-err { color:#CC0000; font-size:12px; font-weight:700; }
.rf-foot { display:flex; justify-content:flex-end; gap:8px; margin-top:8px; }
.rf-btn { background:#E24B4A; border-color:#E24B4A; }
.rf-btn:hover { background:#C0392B; }

/* Timeline: distinguir cambios guardados de gestiones */
.tl-dot-cambio { background:#0B5FFF; }
.tl-item-cambio .tl-top b { color:#0B5FFF; }

/* ===== Solicitud (mockup) ===== */
.sol-hero { display:flex; align-items:center; gap:12px; background:linear-gradient(90deg,#1D6FF2,#3D8BFD); color:#fff; border-radius:14px; padding:14px 16px; margin-bottom:12px; }
.sol-hero-ic { font-size:26px; background:rgba(255,255,255,.18); border-radius:12px; padding:8px; }
.sol-hero-t { font-size:16.5px; font-weight:800; }
.sol-hero-s { font-size:12px; opacity:.9; }
.sol-hero-der { margin-left:auto; }
.sol-hero-badge { background:#fff; color:#1D9E75; border-radius:10px; padding:6px 12px; font-size:12px; font-weight:800; display:inline-flex; flex-direction:column; line-height:1.25; }
.sol-hero-badge small { color:#6B7A8D; font-weight:500; }
.sol-grid { display:grid; grid-template-columns:1.25fr 1fr; gap:12px; }
@media (max-width:720px) { .sol-grid { grid-template-columns:1fr; } }
.sol-card { background:#fff; border:1px solid var(--line); border-radius:14px; padding:12px 14px; }
.sol-card-tit { font-size:13px; font-weight:800; margin-bottom:8px; }
.sol-fila { display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid #F1F5F9; font-size:12.5px; }
.sol-fila:last-child { border-bottom:none; }
.sol-ic { width:26px; height:26px; display:inline-flex; align-items:center; justify-content:center; background:#F1F6FF; border-radius:8px; flex:0 0 auto; font-size:13px; }
.sol-k { color:#6B7A8D; min-width:110px; }
.sol-v { flex:1; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.sol-monto { color:#0B5FFF; font-weight:800; font-size:15px; }
.sol-wa { text-decoration:none; font-size:14px; }
.sol-badge { font-size:11px; color:#94A3B8; }
.sol-badge-ok { background:#E7F6EF; color:#1D9E75; border-radius:8px; padding:2px 8px; font-weight:700; }
.sol-badge-err { background:#FDE8E7; color:#CC0000; border-radius:8px; padding:2px 8px; font-weight:700; }
.sol-gar { display:flex; align-items:center; gap:10px; border-radius:10px; padding:10px 12px; font-size:13px; margin-bottom:6px; }
.sol-gar-si { background:#E7F6EF; }
.sol-gar-no { background:#FDF2E3; }
.sol-gar-ic { font-size:18px; }
.sol-gar-val { margin-left:auto; color:#1D9E75; }
.sol-gar-no .sol-gar-val { color:#B7791F; }
.sol-acc { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
@media (max-width:640px) { .sol-acc { grid-template-columns:repeat(2,1fr); } }
.sol-acc-btn { display:flex; flex-direction:column; align-items:center; gap:4px; padding:10px 6px; border:1px solid var(--line); border-radius:12px; background:#fff; font-size:11.5px; font-weight:700; color:#334155; text-decoration:none; cursor:pointer; }
.sol-acc-btn:hover { border-color:#B9D2FF; background:#F7FAFF; }
.sol-acc-btn span { font-size:17px; }
.sol-foot { display:flex; gap:16px; flex-wrap:wrap; font-size:11.5px; color:#6B7A8D; border-top:1px solid #F1F5F9; margin-top:10px; padding-top:10px; }
.sol-body .sol-card + .sol-card { margin-top:0; }
.sol-body > .sol-card { margin-top:12px; }

/* ===== Filtro SUNAT (mockup) ===== */
.fsu-head { display:flex; align-items:flex-start; gap:10px; margin-bottom:10px; }
.fsu-tit { font-size:15px; font-weight:800; }
.fsu-sub { font-size:12px; color:#6B7A8D; }
.fsu-guardar { margin-left:auto; }
.fsu-chips { display:flex; gap:8px; margin-bottom:10px; }
.fsu-chip { font-size:11px; font-weight:800; border-radius:9px; padding:3px 10px; letter-spacing:.3px; }
.fsu-chip-ok { background:#E7F6EF; color:#1D9E75; }
.fsu-chip-warn { background:#FFF4E0; color:#B7791F; }
.fsu-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:12px; overflow:hidden; margin-bottom:12px; }
@media (max-width:640px) { .fsu-grid { grid-template-columns:1fr; } }
.fsu-celda { display:flex; align-items:center; gap:10px; background:#fff; padding:10px 12px; }
.fsu-celda-ic { width:26px; height:26px; display:inline-flex; align-items:center; justify-content:center; background:#F1F6FF; border-radius:8px; flex:0 0 auto; font-size:13px; }
.fsu-celda-k { font-size:11px; color:#6B7A8D; }
.fsu-celda-v { font-size:12.5px; font-weight:700; }
.fsu-copy { background:none; border:1px solid var(--line); border-radius:6px; cursor:pointer; font-size:11px; padding:1px 6px; color:#6B7A8D; }
.fsu-copy:hover { border-color:#B9D2FF; color:#0B5FFF; }
.fsu-sec { font-size:12px; font-weight:800; color:#334155; margin:4px 0 6px; }
.fsu-foot { display:flex; gap:16px; flex-wrap:wrap; font-size:11.5px; color:#6B7A8D; border-top:1px solid #F1F5F9; margin-top:12px; padding-top:10px; }

/* ===== v1.250: Filtro crédito estilo mockup ===== */
.fcr-head { display:flex; align-items:center; gap:10px; margin-bottom:12px; flex-wrap:wrap; }
.fcr-head-ic { font-size:20px; width:38px; height:38px; display:inline-flex; align-items:center; justify-content:center; background:#E7F6EF; border-radius:12px; flex:0 0 auto; }
.fcr-tit { font-size:15px; font-weight:800; }
.fcr-sub { font-size:11.5px; color:#6B7A8D; }
.fcr-head > div:nth-child(2) { flex:1; min-width:200px; }
.fcr-pill { font-size:11.5px; font-weight:800; border-radius:10px; padding:5px 11px; white-space:nowrap; }
.fcr-pill-ok  { background:#E7F6EF; color:#1D9E75; }
.fcr-pill-obs { background:#FFF4E0; color:#B7791F; }
.fcr-pill-ko  { background:#FDE8E7; color:#CC0000; }
.fcr-pill-p   { background:#EEF2F7; color:#6B7A8D; }
.fcr-guardar { background:#1D9E75; border-color:#1D9E75; }
.fcr-guardar:hover { background:#178563; }

/* Coloreado de selects por semáforo (data-sem) */
.f2v-ok  { border-color:#9BD9C0 !important; background:#F4FBF7 !important; color:#1D6B50 !important; }
.f2v-obs { border-color:#F2CE8E !important; background:#FFFBF2 !important; color:#8A5A00 !important; }
.f2v-ko  { border-color:#F0A9A5 !important; background:#FEF5F4 !important; color:#A93226 !important; }

/* Botón principal Analizar IA (header) */
.fcr-btn-ia { background:linear-gradient(135deg,#6C5CE7,#4A3AB0); color:#fff; border:none; border-radius:9px; padding:7px 16px; font-size:13px; font-weight:700; cursor:pointer; white-space:nowrap; letter-spacing:.2px; box-shadow:0 2px 8px rgba(108,92,231,.35); }
.fcr-btn-ia:hover { background:linear-gradient(135deg,#7D6EEF,#5845C5); }
.fcr-btn-ia:disabled { opacity:.6; cursor:not-allowed; }

/* Chip "✦ Automático" en el header */
.fcr-chip-auto { background:#EDE9FD; color:#4A3AB0; border:1px solid #C4B8F8; border-radius:20px; padding:4px 12px; font-size:11.5px; font-weight:700; white-space:nowrap; }

/* Texto instructivo debajo del header */
.fcr-tip-ia { font-size:12px; color:#4A3AB0; background:#F0EEFF; border-radius:7px; padding:7px 12px; margin-bottom:10px; }
.fcr-tip-ia b { color:#3A2BA0; }

/* Sección Área Comercial */
.fcr-comercial-hdr { background:linear-gradient(135deg,#1D9E75 0%,#0F7A5A 100%); color:#fff; border-radius:10px 10px 0 0; padding:9px 14px; font-size:13px; font-weight:700; margin-top:12px; letter-spacing:.3px; display:flex; align-items:center; justify-content:space-between; }
.fcr-comercial-body { border:1px solid #9BD9C0; border-top:none; border-radius:0 0 10px 10px; padding:12px; margin-bottom:12px; background:#FAFFFE; }

/* Chip "Campos completados por IA" en el header Área Comercial */
.fcr-chip-ia-ok { background:rgba(255,255,255,.25); border:1px solid rgba(255,255,255,.5); border-radius:20px; padding:3px 10px; font-size:11px; font-weight:600; white-space:nowrap; }

/* Labels de subsección uppercase dentro de Área Comercial */
.fcr-lbl-sec { font-size:10.5px; font-weight:800; letter-spacing:.8px; color:#41505F; text-transform:uppercase; margin:10px 0 6px; }

/* Sección Área de Créditos */
.fcr-creditos-hdr { background:linear-gradient(135deg,#6C5CE7 0%,#4A3AB0 100%); color:#fff; border-radius:10px 10px 0 0; padding:9px 14px; font-size:13px; font-weight:700; margin-top:4px; letter-spacing:.3px; }
.fcr-creditos-body { border:1px solid #AFA9EC; border-top:none; border-radius:0 0 10px 10px; padding:12px; margin-bottom:12px; background:#FDFCFF; }

/* Botones de acción del jefe créditos */
.fcr-btn-exc { background:#E67E22; color:#fff; border:none; border-radius:7px; padding:5px 12px; font-size:12px; font-weight:600; cursor:pointer; }
.fcr-btn-exc:hover { background:#CA6F1E; }
.fcr-btn-des { background:#C0392B; color:#fff; border:none; border-radius:7px; padding:5px 12px; font-size:12px; font-weight:600; cursor:pointer; }
.fcr-btn-des:hover { background:#A93226; }

/* Card sujeto — layout rediseñado como Railway */
.fcr-suj-pdf { display:flex; align-items:center; gap:8px; margin-left:auto; flex-shrink:0; }
.fcr-pdf-btn { display:inline-flex; align-items:center; gap:4px; border:1px solid #C8CDD6; background:#fff; border-radius:8px; padding:4px 10px; font-size:11.5px; color:#41505F; cursor:pointer; white-space:nowrap; }
.fcr-pdf-btn:hover { background:#F4F6F9; border-color:#A0A8B4; }
.fcr-pdf-chip { font-size:11px; color:#888; white-space:nowrap; }
.fcr-pdf-ok { color:#1D9E75; cursor:pointer; }
.fcr-pdf-ok:hover { text-decoration:underline; }
.fcr-suj-ic { width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center; background:#E8EDF5; border-radius:8px; font-size:14px; flex:0 0 auto; margin-right:8px; }
.fcr-suj-del { border:1px solid #F0A9A5; background:#FDF3F2; color:#C0392B; border-radius:8px; padding:3px 9px; font-size:13px; cursor:pointer; line-height:1; flex-shrink:0; }
.fcr-suj-del:hover { background:#E24B4A; color:#fff; border-color:#E24B4A; }

/* Toggle de campos — segunda fila del card */
.fcr-tog-btn { display:block; width:100%; text-align:left; background:#F7F9FC; border:none; border-top:1px solid #EEF2F7; padding:7px 12px; font-size:12px; color:#41505F; cursor:pointer; }
.fcr-tog-btn:hover { background:#EEF2F7; }
.fb-suj [id^="sujBody_"] { padding:10px 12px; border-top:1px solid #EEF2F7; }
.fcr-tog-cnt { font-size:11.5px; }
.fcr-tog-pend { color:#D35400; font-weight:600; }
.fcr-tog-ok   { color:#1D9E75; font-weight:600; }

/* Resultado IA en Área de Créditos */
.fcr-ia-result { background:#EEEDFE; border:1px solid #AFA9EC; border-radius:8px; padding:10px 14px; margin:6px 0 8px; font-size:12px; color:#3C3489; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.fcr-ia-link { margin-left:auto; color:#4A41A8; font-size:11.5px; text-decoration:underline; }

/* Banda de empresa */
.fcr-emp { background:#EAF7F0; border-radius:10px; padding:9px 12px !important; }
.fcr-emp-ic { width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center; background:#1D9E75; border-radius:8px; font-size:14px; margin-right:8px; flex:0 0 auto; }

/* Filas del filtro crédito: icono + label + control + chip, sin cortes */
.mtr-row-cred { display:flex; align-items:center; gap:10px; background:#fff; border:1px solid #EEF2F7; border-radius:12px; padding:9px 12px; margin-bottom:7px; }
.mtr-row-cred .fcr-ico { width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center; background:#F1F6FF; border-radius:8px; font-size:14px; flex:0 0 auto; }
.mtr-row-cred .mtr-lbl { flex:1 1 160px; min-width:130px; }
.mtr-row-cred .mtr-ctrl { flex:0 0 auto; }
.mtr-row-cred select.mtr-in { min-width:180px; }
.mtr-row-cred .mtr-numwrap { display:inline-flex; align-items:center; gap:8px; flex-wrap:nowrap; }

/* Chips de límite: nunca se cortan */
.mtr-lim { font-size:10.5px; font-weight:700; border-radius:8px; padding:3px 8px; white-space:nowrap; flex:0 0 auto; }
.mtr-lim-ko  { background:#FDE8E7; color:#CC0000; }
.mtr-lim-obs { background:#FFF4E0; color:#B7791F; }

/* Color del select según estado de la fila (recalc en vivo) */
.f2row-ok  select.mtr-in { border-color:#9BD9C0; background:#F4FBF7; }
.f2row-obs select.mtr-in { border-color:#F2CE8E; background:#FFFBF2; }
.f2row-ko  select.mtr-in { border-color:#F0A9A5; background:#FEF5F4; }
.f2row-ko { border-color:#F5C6C3; }
.f2row-obs.mtr-row-cred { border-color:#F4DDB4; }

/* ===== v1.251: Filtro garantía + pill unificado (palabra con fondo + Completo/Incompleto) ===== */
.sem-word { font-size:11.5px; font-weight:800; border-radius:8px; padding:4px 12px; letter-spacing:.2px; }
.sem-verde    { background:#1D9E75; color:#fff; }
.sem-amarillo { background:#EF9F27; color:#fff; }
.sem-rojo     { background:#E24B4A; color:#fff; }
.sem-pend     { background:#EEF2F7; color:#6B7A8D; }
.sem-comp { font-size:11px; font-weight:700; white-space:nowrap; }
.sem-comp-ok  { color:#1D9E75; }
.sem-comp-inc { color:#B7791F; }
.fcr-pill-wrap { display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }

/* Cabecera garantía (reusa fcr-head) */
.fga-head-ic { background:#FDEFE3; }

/* Cabecera de cada inmueble: inputs con icono + tacho rojo */
.fga-suj-head { display:flex; align-items:center; gap:10px; background:#F7F9FC; border-radius:10px; padding:8px 10px; }
.fga-inwrap { display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--line); border-radius:10px; padding:4px 8px; flex:1; min-width:0; }
.fga-inwrap .fb-suj-nom { border:none; background:transparent; flex:1; min-width:0; margin:0; padding:4px 2px; }
.fga-inwrap .fb-suj-nom:focus { outline:none; box-shadow:none; }
.fga-ico-b { background:#E8F0FE; }
.fga-trash { width:34px; height:34px; border:1px solid #F0A9A5; background:#FDF3F2; color:#C0392B; border-radius:10px; cursor:pointer; font-size:14px; }
.fga-trash:hover { background:#E24B4A; border-color:#E24B4A; color:#fff; }

/* LTV a la derecha y link Drive estilo fila */
.fga-body .gd-ltv { margin-left:auto; font-weight:800; }
.fga-body .mtr-row-cred .mtr-ctrl { margin-left:auto; display:inline-flex; align-items:center; gap:8px; }
.gd-row.mtr-row-cred { display:flex; align-items:center; gap:10px; }
.gd-row.mtr-row-cred .gd-link { flex:1; min-width:120px; }
.gd-open { color:#0B5FFF; font-weight:700; font-size:12px; text-decoration:none; white-space:nowrap; }
.gd-open:hover { text-decoration:underline; }

/* ===== v1.252: Reunión comercial ===== */
.reu-head-ic { background:#E8F0FE; }
.reu-band { display:flex; align-items:center; gap:14px; background:#F7F9FC; border:1px solid var(--line); border-radius:14px; padding:12px 14px; margin-bottom:12px; flex-wrap:wrap; }
.reu-band-vacia { justify-content:space-between; }
.reu-cell { display:flex; align-items:flex-start; gap:10px; flex:1; min-width:170px; }
.reu-cell + .reu-cell { border-left:1px solid var(--line); padding-left:14px; }
.reu-cell-ic { width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center; background:#E8F0FE; border-radius:9px; font-size:14px; flex:0 0 auto; }
.reu-cell-k { font-size:11px; color:#6B7A8D; }
.reu-cell-v { font-size:13px; font-weight:800; }
.reu-cell-h { font-size:11px; color:#0B5FFF; font-weight:600; }
.reu-reprog { margin-left:auto; white-space:nowrap; }
.reu-form { display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; background:#fff; border:1px dashed #B9D2FF; border-radius:12px; padding:10px 12px; margin:-4px 0 12px; }
.reu-form label { display:flex; flex-direction:column; gap:3px; font-size:11px; font-weight:700; color:#6B7A8D; }
.reu-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:12px; }
@media (max-width:700px) { .reu-cards { grid-template-columns:1fr; } }
.reu-card { display:flex; align-items:center; gap:10px; border-radius:12px; padding:11px 12px; cursor:pointer; border:1px solid transparent; }
.reu-card-ok  { background:#EAF7F0; border-color:#CBEBDC; }
.reu-card-obs { background:#FFF7E8; border-color:#F4E3BE; }
.reu-card-ko  { background:#FDF0EF; border-color:#F5C6C3; }
.reu-card-p   { background:#F3F6FA; border-color:#E4EAF2; }
.reu-card:hover { filter:brightness(.985); }
.reu-card-ic { width:32px; height:32px; display:inline-flex; align-items:center; justify-content:center; background:#fff; border-radius:10px; font-size:15px; flex:0 0 auto; }
.reu-card-t { font-size:12.5px; font-weight:800; }
.reu-card-s { font-size:11.5px; color:#6B7A8D; font-weight:600; }
.reu-card-fl { margin-left:auto; color:#94A3B8; font-size:16px; }
.reu-puntos { border:1px solid #F4E3BE; border-radius:14px; padding:12px 14px; margin-bottom:12px; background:#FFFDF7; }
.reu-puntos-head { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.reu-puntos-ic { width:34px; height:34px; display:inline-flex; align-items:center; justify-content:center; background:#FFF1D6; border-radius:50%; font-size:16px; flex:0 0 auto; }
.reu-puntos-t { font-size:13.5px; font-weight:800; }
.reu-puntos-s { font-size:11.5px; color:#6B7A8D; }
.reu-badge { margin-left:auto; background:#FFF1D6; color:#B7791F; font-size:11.5px; font-weight:800; border-radius:10px; padding:5px 11px; white-space:nowrap; }
.reu-tabla { width:100%; border-collapse:collapse; background:#fff; border-radius:10px; overflow:hidden; font-size:12px; }
.reu-tabla th { text-align:left; font-size:11px; color:#6B7A8D; font-weight:700; padding:8px 10px; border-bottom:1px solid var(--line); background:#FBFCFE; }
.reu-tabla td { padding:9px 10px; border-bottom:1px solid #F1F5F9; vertical-align:middle; }
.reu-tabla tr:last-child td { border-bottom:none; }
.reu-chip { background:#FFF1D6; color:#B7791F; font-size:11px; font-weight:800; border-radius:8px; padding:3px 9px; white-space:nowrap; }
.reu-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:#EF9F27; }
.reu-acc { color:#334155; }
.reu-sinobs { background:#EAF7F0; color:#1D9E75; font-weight:700; font-size:12.5px; border-radius:10px; padding:12px; }
.reu-com-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:12px; }
@media (max-width:700px) { .reu-com-grid { grid-template-columns:1fr; } }
.reu-com { background:#fff; border:1px solid var(--line); border-radius:14px; padding:12px 14px; }
.reu-com-tit { font-size:13px; font-weight:800; margin-bottom:2px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.reu-com-sub { font-size:11.5px; color:#6B7A8D; margin-bottom:8px; }
.reu-txt { width:100%; min-height:110px; resize:vertical; }
.reu-txt-err { border-color:#E24B4A !important; background:#FEF5F4; }

/* ===== v1.253: Filtro finanzas y negocio ===== */
.fin-head-ic { background:#FFF4E0; }

/* Chips de documento (requerido / no aplica) */
.mtr-lim-req { background:#E8F0FE; color:#0B5FFF; }
.mtr-lim-na  { background:#EEF2F7; color:#94A3B8; }

/* Inputs numéricos de cifras: alineados a la derecha, ancho cómodo */
.fin-body .mtr-row-cred input.mtr-num { width:150px; text-align:right; font-weight:700; }
.fin-body .mtr-row-cred .mtr-suf { color:#6B7A8D; font-weight:700; font-size:12px; }
.fin-body .mtr-row-cred .mtr-ctrl { margin-left:auto; display:inline-flex; align-items:center; gap:8px; }
.fin-body .mtr-row-cred select.mtr-in:disabled { background:#F3F6FA; color:#94A3B8; }

/* Tabla de ratios: tarjeta limpia con chips de estado */
.fin-body .rt-tabla { background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; border-collapse:separate; border-spacing:0; margin:2px 0 10px; }
.fin-body .rt-tabla th { background:#F7F9FC; padding:9px 12px; font-weight:700; color:#41505F; border-bottom:1px solid var(--line); }
.fin-body .rt-tabla td { padding:10px 12px; border-bottom:1px solid #F1F5F9; }
.fin-body .rt-tabla tr:last-child td { border-bottom:none; }
.fin-body .rt-tabla td:first-child { font-weight:700; }
.fin-body .rt-ok  { background:#E7F6EF; color:#1D9E75; border-radius:8px; padding:3px 10px; font-size:11px; font-weight:800; white-space:nowrap; }
.fin-body .rt-obs { background:#FFF4E0; color:#B7791F; border-radius:8px; padding:3px 10px; font-size:11px; font-weight:800; white-space:nowrap; }
.fin-body .rt-na  { background:#EEF2F7; color:#94A3B8; border-radius:8px; padding:3px 10px; font-size:11px; font-weight:700; white-space:nowrap; }

/* Mitigantes: chips tipo pastilla con check */
.fin-body .an-chips { gap:8px; }
.fin-body .an-chip { border-radius:12px; padding:8px 14px; font-weight:700; font-size:12px; border:1.5px solid var(--line); transition:all .12s ease; }
.fin-body .an-chip:hover { border-color:#B9D2FF; background:#F7FAFF; }
.fin-body .an-chip-on { background:#E8F0FE; border-color:#0B5FFF; color:#0B5FFF; }
.fin-body .an-chip input { accent-color:#0B5FFF; }

/* Selects de análisis y textarea de motivo */
.fin-body .mtr-row-multi { align-items:flex-start; }
.fin-body .an-textarea { flex:1; min-height:80px; resize:vertical; }
.fin-body .mtr-row-cred select.mtr-in { min-width:220px; }

/* ===== v1.254: Business Case (expediente ejecutivo) ===== */
.bc-head-ic { background:#EEE9FE; }
.bc-band { display:flex; align-items:center; gap:14px; border-radius:14px; padding:14px 16px; margin-bottom:12px; border:1px solid transparent; flex-wrap:wrap; }
.bc-band-ok  { background:#EAF7F0; border-color:#CBEBDC; }
.bc-band-obs { background:#FFF7E8; border-color:#F4E3BE; }
.bc-band-ko  { background:#FDF0EF; border-color:#F5C6C3; }
.bc-band-p   { background:#F3F6FA; border-color:#E4EAF2; }
.bc-band-t { font-size:15px; font-weight:900; letter-spacing:.2px; }
.bc-band-ok  .bc-band-t { color:#1D9E75; }
.bc-band-obs .bc-band-t { color:#B7791F; }
.bc-band-ko  .bc-band-t { color:#CC0000; }
.bc-band-d { font-size:12px; color:#41505F; flex-basis:100%; }
.bc-band .bc-band-d { flex-basis:auto; flex:1; min-width:200px; }
.bc-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:4px; }
@media (max-width:760px) { .bc-cards { grid-template-columns:repeat(2,1fr); } }
.bc-kos { font-size:10.5px; color:#CC0000; font-weight:700; margin-top:3px; white-space:normal; }
.bc-reu { background:#fff; border:1px solid var(--line); border-radius:14px; padding:12px 14px; margin-bottom:10px; }
.bc-reu-meta { display:flex; gap:16px; flex-wrap:wrap; font-size:12.5px; margin-bottom:8px; }
.bc-reu-com { background:#F7F9FC; border-radius:10px; padding:9px 12px; font-size:12.5px; margin-top:6px; }
.bc-reu-com .sub { display:block; font-size:11px; margin-bottom:2px; }
.bc-tl { display:flex; flex-direction:column; gap:0; margin-bottom:10px; }
.bc-tl-item { display:flex; align-items:flex-start; gap:10px; padding:7px 0 7px 4px; position:relative; }
.bc-tl-item::before { content:''; position:absolute; left:17px; top:34px; bottom:-8px; width:2px; background:#E4EAF2; }
.bc-tl-item:last-child::before { display:none; }
.bc-tl-ic { width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center; background:#F1F6FF; border-radius:50%; font-size:13px; flex:0 0 auto; z-index:1; }
.bc-tl-t { font-size:12.5px; font-weight:700; }
.bc-tl-d { font-size:11.5px; color:#6B7A8D; }
/* Datos clave y análisis heredados: tarjetas */
.bc-body .bc-resumen { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:10px; }
@media (max-width:700px) { .bc-body .bc-resumen { grid-template-columns:repeat(2,1fr); } }
.bc-body .bc-resumen > div { background:#fff; border:1px solid var(--line); border-radius:10px; padding:8px 10px; font-size:12.5px; }
.bc-body .bc-resumen .sub { display:block; font-size:10.5px; }
.bc-body .bc-analisis { background:#fff; border:1px solid var(--line); border-radius:12px; padding:10px 12px; margin-bottom:10px; display:flex; flex-direction:column; gap:6px; font-size:12.5px; }
.bc-body .bc-analisis .sub { font-size:11px; margin-right:6px; }
.bc-body .fsu-grid { margin-bottom:10px; }

/* ===== v1.255: cabecera de paneles [Completo/Incompleto] + [Avanza/No Avanza] ===== */
.hp { display:inline-block; font-size:11px; font-weight:800; border-radius:8px; padding:4px 11px; letter-spacing:.2px; white-space:nowrap; }
.hp-comp  { background:#1D9E75; color:#fff; }
.hp-inc   { background:#EF9F27; color:#fff; }
.hp-verde { background:#1D9E75; color:#fff; }
.hp-amar  { background:#EF9F27; color:#fff; }
.hp-rojo  { background:#E24B4A; color:#fff; }
.hp-pend  { background:#EEF2F7; color:#6B7A8D; }
/* SUNAT: filas de validación en modo lectura (chips a la derecha) */
.fsu-body .mtr-row .mtr-ctrl { margin-left:auto; }
.fsu-body .fsu-celda-v .mtr-chip { font-size:11px; padding:2px 9px; }

/* ===== v1.256: Reunión en franjas + tasa seleccionable + mitigantes desplegable ===== */
.reu-top { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.reu-top .fcr-sub { flex:1; }
.reu-band-prog { align-items:center; gap:10px; }
.reu-prog-lbl { font-size:12.5px; font-weight:800; white-space:nowrap; }
.reu-band-prog .mtr-in { min-width:0; }
.reu-switch { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:800; border:1.5px solid var(--line); border-radius:10px; padding:7px 12px; cursor:pointer; white-space:nowrap; background:#fff; color:#6B7A8D; transition:all .12s ease; }
.reu-switch input { accent-color:#1D9E75; }
.reu-switch-on { background:#E7F6EF; border-color:#1D9E75; color:#1D9E75; }
.reu-com-franja { width:100%; margin-bottom:10px; }
.reu-com-franja .reu-txt { min-height:90px; }
.reu-com-franja .reu-com-tit { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }

/* Selector de tasa dentro de la nota de cuota */
.rt-tasa { width:auto; padding:2px 6px; font-size:12px; font-weight:700; display:inline-block; margin:0 3px; }
.rt-cuota { display:flex; align-items:center; gap:4px; flex-wrap:wrap; background:#F1F6FF; border:1px solid #D6E4FF; border-radius:10px; padding:8px 12px; font-size:12.5px; margin-bottom:8px; }
.rt-cuota-pend { background:#FFF8E8; border-color:#F3D98A; }

/* Mitigantes: desplegable de checkboxes */
.an-dd { position:relative; display:inline-block; }
.an-dd-btn { min-width:220px; text-align:left; cursor:pointer; display:inline-flex; align-items:center; justify-content:space-between; gap:8px; }
.an-dd-caret { color:#94A3B8; }
.an-dd-menu { position:absolute; right:0; top:calc(100% + 4px); z-index:50; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 8px 24px rgba(15,23,42,.14); padding:6px; display:flex; flex-direction:column; gap:2px; min-width:260px; }
.an-dd-item { display:flex; align-items:center; gap:8px; font-size:12.5px; padding:7px 10px; border-radius:8px; cursor:pointer; }
.an-dd-item:hover { background:#F7FAFF; }
.an-dd-item input { accent-color:#0B5FFF; }

/* Motivo de evaluación: franja a todo el ancho */
.mtr-row-block { flex-direction:column; align-items:stretch !important; }
.mtr-row-block .mtr-lbl { display:flex; align-items:center; gap:8px; margin-bottom:6px; }
.mtr-row-block .an-textarea { width:100%; min-height:90px; }

/* ===== v1.257: Business Case minimal (cards + previsualizar/Word/PDF) ===== */
.bc-acciones { display:flex; gap:10px; justify-content:flex-end; margin-top:12px; flex-wrap:wrap; }

/* ===== v1.258: alineado bandera roja, pill SUNAT acotado, filtros kanban compactos ===== */
.rf-opt { justify-content:flex-start; text-align:left; }
.rf-opt input { flex:0 0 auto; }

/* Columna SUNAT en la lista: ancho contenido, mensaje completo en tooltip */
.b2b-pill-sunat { display:inline-block; max-width:190px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; vertical-align:middle; }

/* Filtros del kanban: compactos y prolijos */
.b2b-filtros-mini { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.b2b-filtros-mini select, .b2b-filtros-mini input[type="date"] {
  width:auto; max-width:190px; padding:7px 10px; font-size:12px; border:1px solid var(--line);
  border-radius:10px; background:#fff; color:#334155; font-weight:600;
}
.b2b-filtros-mini select:focus, .b2b-filtros-mini input[type="date"]:focus { border-color:#0B5FFF; outline:none; }
.b2bkf-lbl { display:inline-flex; align-items:center; gap:5px; font-size:13px; }
.b2bkf-sep { color:#94A3B8; font-weight:700; }

/* ===== v1.260: bandera roja compacta, mitigantes chico, motivo armonizado, comentario full ===== */
/* Bandera roja: cajón más ancho, letra normal, todo en una vista sin scroll-x */
.rf-card { max-width:min(560px, 94vw); width:min(560px, 94vw); }
.rf-body { overflow-x:hidden; max-height:76vh; overflow-y:auto; }
.rf-opt {
  display:flex; flex-direction:row; align-items:center; justify-content:flex-start; gap:10px;
  text-align:left; text-transform:none; letter-spacing:0; font-size:12.5px; font-weight:600;
  padding:8px 10px; line-height:1.3; width:100%; box-sizing:border-box;
}
.rf-opt input[type="radio"] { flex:0 0 auto; margin:0; }
.rf-txt { width:100%; box-sizing:border-box; min-height:64px; font-size:12.5px; }
.tl-card.rf-card { overflow-x:hidden; }

/* Mitigantes: desplegable compacto en una sola vista */
.an-dd-btn { min-width:180px; max-width:220px; font-size:12px; padding:6px 10px; }
.an-dd-menu { min-width:230px; max-width:260px; max-height:250px; overflow-y:auto; overflow-x:hidden; }
.an-dd-item {
  display:flex; flex-direction:row; align-items:center; justify-content:flex-start; gap:8px;
  text-align:left; text-transform:none; letter-spacing:0; font-size:11.5px; font-weight:600;
  padding:6px 8px; line-height:1.25;
}
.an-dd-item input { flex:0 0 auto; margin:0; }

/* Motivo de evaluación: fila armonizada con las demás (label compacto + textarea) */
.mtr-row-block { flex-direction:column; align-items:stretch !important; gap:6px; padding:10px 12px; }
.mtr-lbl-block { display:flex; align-items:center; gap:8px; flex:0 0 auto !important; min-width:0 !important; margin:0; }
.mtr-row-block .an-textarea { width:100%; box-sizing:border-box; min-height:76px; margin:0; }

/* Comentario de reunión: ancho completo real */
.reu-com-franja { box-sizing:border-box; }
.reu-txt-full, .reu-com-franja .reu-txt { display:block; width:100% !important; box-sizing:border-box; min-height:96px; }

/* Empresa en crédito: RUC y contacto alineados al nombre, sin negrita */
.fcr-emp-dato { font-weight:400; color:#41505F; font-size:12.5px; margin-left:10px; white-space:nowrap; }
.fcr-emp .fb-suj-nom, .fcr-emp b { font-weight:800; }

/* ===== v1.261: contactabilidad B2B + modal de gestión con atajos ===== */
#fbContactabilidad .g35-wrap { margin:0 0 10px; }
.g35-min { font-size:11px; font-weight:800; border-radius:8px; padding:3px 9px; }
.g35-min-ok { background:#E7F6EF; color:#1D9E75; }
.g35-min-falta { background:#FDE8E7; color:#CC0000; }
.fb-btn-gestion { padding:6px 12px; font-size:12px; white-space:nowrap; }
.gm-atajos { display:flex; flex-wrap:wrap; gap:6px; flex:1; }
.gm-atajo { background:#E8F0FE; color:#0B5FFF; border:none; border-radius:8px; padding:5px 11px; font-size:11.5px; font-weight:800; cursor:pointer; }
.gm-atajo:hover { background:#0B5FFF; color:#fff; }
.gm-oblig { color:#E24B4A; font-weight:700; font-size:10px; margin-left:4px; }

/* ===== v1.262: modal de gestión 2 columnas (estilo B2C) + chip 1ª gestión ===== */
.gm-card-ancha { max-width:760px; width:min(760px, 95vw); }
.gm-2col { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:680px) { .gm-2col { grid-template-columns:1fr; } }
.gm-col { border:1.5px solid var(--line); border-radius:14px; padding:12px 14px; }
.gm-col-1 { border-color:#B9D2FF; background:#FBFDFF; }
.gm-col-2 { border-color:#CBEBDC; background:#FBFEFC; }
.gm-col-tit { font-size:13px; font-weight:800; display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.gm-col-1 .gm-col-tit { color:#0B5FFF; }
.gm-col-2 .gm-col-tit { color:#1D9E75; }
.gm-num { width:20px; height:20px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; color:#fff; font-size:11px; font-weight:800; }
.gm-num-1 { background:#0B5FFF; }
.gm-num-2 { background:#1D9E75; }
.kb-primera { font-size:10.5px; font-weight:800; border-radius:7px; padding:3px 8px; margin-top:4px; display:inline-block; }
.kb-primera-ok { background:#FFF4E0; color:#B7791F; }
.kb-primera-venc { background:#FDE8E7; color:#CC0000; }

/* ===== v1.264: buscador de personas en Mis Leads ===== */
.leads-buscar { display:inline-flex; align-items:center; gap:6px; background:#fff; border:1px solid var(--line); border-radius:10px; padding:5px 10px; max-width:190px; }
.leads-buscar:focus-within { border-color:#0B5FFF; }
.leads-buscar-ic { color:#94A3B8; font-size:12px; }
.leads-buscar input { border:none; outline:none; background:transparent; font-size:12.5px; width:130px; padding:2px 0; }

/* ===== v1.265: Opción A — stepper controla la apertura, paneles sin cabecera repetida ===== */
/* Stepper: cada paso es clickeable y muestra chip de estado condensado */
.fb-stepper { flex-wrap:wrap; gap:6px 4px; }
.fbs-paso { cursor:default; border-radius:10px; padding:6px 8px; transition:background .12s ease; }
.fbs-open-able { cursor:pointer; }
.fbs-open-able:hover { background:#F1F6FF; }
.fbs-actual { background:#EAF1FF; }
.fbs-bloq { opacity:.5; cursor:not-allowed; }
.fbs-body { display:inline-flex; flex-direction:column; gap:2px; line-height:1.15; }
.fbs-caret { font-size:9px; color:#94A3B8; margin-left:2px; }
.fbs-actual .fbs-caret { color:#0B5FFF; }
.fbs-chip { font-style:normal; font-size:9.5px; font-weight:800; border-radius:6px; padding:1px 6px; white-space:nowrap; letter-spacing:.2px; align-self:flex-start; }
.fbs-chip-ok   { background:#E7F6EF; color:#1D9E75; }
.fbs-chip-obs  { background:#FFF4E0; color:#B7791F; }
.fbs-chip-inc  { background:#FDECEC; color:#C0392B; }
.fbs-chip-ko   { background:#FDE8E7; color:#CC0000; }
.fbs-chip-pend { background:#EEF2F7; color:#8A97A6; }
.fbs-chip-lock { background:#EEF2F7; color:#94A3B8; padding:1px 5px; }
/* Panel: sin cabecera propia; el contenido respira dentro del acordeón */
#fbAcordeon .fb-panel:empty { display:none; }
.fb-panel-open { border:1px solid var(--line); border-radius:12px; padding:4px 2px; margin-top:2px; background:#fff; }
.fb-lock-banner { background:#F1F5F9; color:#64748B; font-size:12px; font-weight:600; border-radius:10px; padding:9px 12px; margin:6px; }
.fb-lock-banner.fb-lock-fut { background:#FEF6E7; color:#8A5A10; }

/* ===== v1.266: stepper 7 pasos en UNA sola línea + modal un poco más ancho ===== */
.fb-modal { max-width:960px !important; }
#fbStepperWrap { overflow:visible; }
.fb-stepper { flex-wrap:nowrap !important; gap:2px !important; padding:9px 10px !important; align-items:stretch; }
.fbs-paso { flex:1 1 0; min-width:0; gap:5px !important; padding:5px 6px !important; opacity:1 !important; }
.fbs-dot { width:19px; height:19px; font-size:10px; flex:0 0 auto; }
.fbs-body { min-width:0; overflow:hidden; }
.fbs-txt { font-size:11px !important; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fbs-chip { font-size:9px !important; padding:1px 5px !important; }
.fbs-caret { flex:0 0 auto; }
.fbs-linea { flex:0 1 14px !important; min-width:6px !important; width:auto !important; margin:0 !important; align-self:center; }

/* ===== v1.274: grid 30 días, leyenda abajo, SLA config, stepper con fondo gris ===== */
/* Grid de 30 días: celdas más compactas para que quepan */
.g35-grid-30 { overflow-x:auto; }
.g35-grid-30 .g35-dia { min-width:20px; }
.g35-grid-30 .g35-celda { width:16px; height:16px; }
.g35-grid-30 .g35-lbl { font-size:8.5px; }
.g35-grid-30 .g35-lbl i { font-size:7.5px; }
.g35-leyenda-abajo { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:6px 0 10px; font-size:11px; color:#6B7A8D; }
.g35-leyenda-abajo i { display:inline-block; width:12px; height:12px; border-radius:3px; vertical-align:-2px; margin-right:3px; }

/* Stepper con fondo gris bajito para separarlo de los cuadraditos de abajo */
.fb-stepper { background:#F4F6FA !important; border-color:#E2E8F1 !important; }

/* Modal de tiempos por etapa (SLA) */
.sla-body { display:flex; flex-direction:column; gap:6px; margin:8px 0; }
.sla-fila { display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:10px; align-items:center; }
.sla-fila.sla-head { font-size:11px; font-weight:700; color:#8A97A6; text-transform:uppercase; letter-spacing:.3px; }
.sla-fila.sla-head span:not(.sla-et) { text-align:center; }
.sla-et { font-size:13px; font-weight:600; color:#1B2A41; }
.sla-in { display:inline-flex; align-items:center; gap:5px; justify-content:center; }
.sla-in input { width:60px; padding:6px 8px; border:1px solid var(--line); border-radius:8px; text-align:center; font-size:13px; }
.sla-in i { font-size:11px; color:#8A97A6; font-style:normal; }

/* ===== v1.283: Costo por Lead (Meta) ===== */
.cpl-cards { display:flex; gap:10px; margin:10px 0; flex-wrap:wrap; }
.cpl-card { background:#F7F9FC; border:1px solid var(--line); border-radius:12px; padding:12px 16px; min-width:140px; }
.cpl-card-hl { background:#EAF1FF; border-color:#B9D2FF; }
.cpl-k { font-size:11px; color:#6B7A8D; text-transform:uppercase; letter-spacing:.3px; }
.cpl-v { font-size:20px; font-weight:800; color:#1B2A41; margin-top:2px; }
.cpl-tabla td, .cpl-tabla th { padding:8px 10px; font-size:13px; }
.cpl-singasto { opacity:.6; }
.cpl-badge { font-size:10px; font-weight:800; padding:2px 8px; border-radius:6px; background:#EEF2F7; color:#6B7A8D; }
.cpl-badge.cpl-b2b { background:#E7F0FF; color:#0B5FFF; }
.cpl-badge.cpl-b2c { background:#E7F6EF; color:#1D9E75; }

/* ===== v1.292: panel unificado CPL con imágenes ===== */
.cpl-thumb { display:inline-block; width:34px; height:34px; border-radius:6px; background:#F1F5F9; vertical-align:middle; overflow:hidden; text-align:center; line-height:34px; margin-right:6px; }
.cpl-thumb img { width:100%; height:100%; object-fit:cover; }
.inv-nivel-c td { background:#F7F9FC; font-size:13px; }
.inv-nivel-j td { background:#FBFCFE; font-size:12.5px; }
.inv-nivel-a td { font-size:12.5px; }

/* ===== v1.293: embudo con CPL por etapa ===== */
.emb-head, .emb-fila { display:grid; grid-template-columns: 130px 1fr 70px 100px; gap:10px; align-items:center; }
.emb-bloque { margin:14px 0 20px; }
.emb-tit { font-weight:800; font-size:14px; color:#1B2A41; margin-bottom:8px; }
.emb-fila { margin:4px 0; }
.emb-lbl { font-size:12.5px; font-weight:600; color:#44546A; }
.emb-barwrap { background:#F1F5F9; border-radius:8px; overflow:hidden; height:26px; }
.emb-bar { height:100%; border-radius:8px; color:#fff; font-size:12px; font-weight:800; display:flex; align-items:center; padding-left:8px; min-width:26px; }
.emb-pct { text-align:right; font-size:12px; color:#6B7A8D; }
.emb-cpl { text-align:right; font-size:12.5px; font-weight:700; color:#1B2A41; }

/* v1.322: comentario de reunión a todo el ancho del modal */
.reu-com-franja { width:100%; }
.reu-com-franja .reu-txt, #fbReuComentario { width:100% !important; box-sizing:border-box; min-height:120px; display:block; }

/* v1.322: modal de descarte (bandera roja) compacto y legible */
.rf-card { width:420px !important; max-width:94vw; padding:14px 16px !important; }
.rf-body { padding:8px 2px !important; gap:5px !important; }
.rf-sub { font-size:12px; color:#5A6B80; margin-bottom:6px; }
.rf-opt { display:flex !important; align-items:center; gap:8px; font-size:13px !important; color:#1B2A41 !important; padding:7px 10px; border:1px solid #DDE5EF; border-radius:8px; cursor:pointer; background:#fff; line-height:1.3; }
.rf-opt:hover { background:#F5F9FF; border-color:#9FC1FF; }
.rf-opt input[type=radio] { flex:0 0 auto; width:16px; height:16px; margin:0; accent-color:#C0392B; }
.rf-lbl { font-size:12.5px; font-weight:700; color:#334155; margin-top:8px; }
.rf-txt { width:100%; min-height:64px; box-sizing:border-box; }
.rf-foot { display:flex; justify-content:flex-end; gap:8px; margin-top:10px; }

/* ===== Dashboard Comité B2C ===== */
.com-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; margin:14px 0; }
.com-card { background:#fff; border:1px solid #E7EDF4; border-radius:12px; padding:11px 13px; box-shadow:0 1px 3px rgba(20,40,80,.05); display:flex; align-items:center; gap:10px; }
.com-card-ico { font-size:18px; width:34px; height:34px; flex:none; display:flex; align-items:center; justify-content:center; background:#F1F6FD; border-radius:9px; }
.com-card-body { min-width:0; }
.com-card-v { font-size:21px; font-weight:800; color:#0F2E5A; line-height:1.1; }
.com-card-l { font-size:11.5px; color:#5A6B80; margin-top:2px; font-weight:600; }
.com-card-s { font-size:10.5px; color:#94A3B8; margin-top:1px; }
.com-barra { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.com-filtros { display:flex; align-items:center; gap:7px; }
.com-fecha { font-size:12px; padding:5px 7px; border:1px solid var(--line); border-radius:7px; width:135px; }
.com-flecha { color:#94a3b8; }
.com-gp-sel { font-size:12px; padding:5px 8px; border:1px solid var(--line); border-radius:7px; max-width:130px; }
.com-panel-full { grid-column:1/-1; }
.com-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
@media (max-width:900px){ .com-grid { grid-template-columns:1fr; } }
.com-panel { background:#fff; border:1px solid #E4EAF2; border-radius:12px; padding:16px; }
.com-panel-tit { font-weight:700; color:#1B2A41; margin-bottom:12px; font-size:14px; }
.com-bar-row { display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.com-bar-lbl { flex:0 0 90px; font-size:12px; color:#334155; text-align:right; }
.com-bar-lbl-w { flex:0 0 180px; text-align:left; line-height:1.2; }
.com-bar-track { flex:1; height:20px; background:#F1F5FB; border-radius:6px; overflow:hidden; }
.com-bar-fill { height:100%; background:linear-gradient(90deg,#2563EB,#3B82F6); border-radius:6px; }
.com-bar-fill-r { background:linear-gradient(90deg,#DC2626,#EF4444); }
.com-bar-val { flex:0 0 auto; font-size:12.5px; font-weight:700; color:#0F2E5A; min-width:54px; }
.com-bar-val small { color:#94A3B8; font-weight:500; }
.com-line { display:flex; align-items:center; gap:8px; padding:7px 0; border-bottom:1px solid #F1F5F9; font-size:13px; }
.com-line span { flex:1; color:#334155; }
.com-line b { color:#0F2E5A; }
.com-line small { color:#94A3B8; flex:0 0 auto; }
.com-tabla { width:100%; border-collapse:collapse; font-size:12.5px; }
.com-tabla th { text-align:center; padding:6px 4px; color:#5A6B80; border-bottom:2px solid #E4EAF2; font-weight:600; }
.com-tabla th:first-child { text-align:left; }
.com-tabla td { text-align:center; padding:7px 4px; border-bottom:1px solid #F1F5F9; }
.com-tabla td:first-child { text-align:left; font-weight:600; color:#1B2A41; }
.com-ia { background:linear-gradient(135deg,#EEF4FF,#F5F9FF); border:1px solid #C7DBFF; border-radius:12px; padding:16px 18px; margin-bottom:14px; }
.com-ia-head { font-weight:700; color:#1E40AF; margin-bottom:8px; }
.com-ia-body { font-size:13.5px; line-height:1.6; color:#1B2A41; }
.com-ia-load { color:#5A6B80; font-style:italic; }

/* ===== Priority Score B2B: niveles, oxígeno, rescate ===== */
.kb-nivel { font-size:11px; margin-right:5px; flex:0 0 auto; }
.kb-nivel-b-critica { border-left:4px solid #DC2626 !important; }
.kb-nivel-b-alta { border-left:4px solid #F97316 !important; }
.kb-nivel-b-media { border-left:4px solid #F59E0B !important; }
.kb-nivel-b-baja { border-left:4px solid #CBD5E1 !important; }
.kb-ox { height:5px; background:#EEF2F7; border-radius:3px; overflow:hidden; margin-top:8px; }
.kb-ox-fill { height:100%; border-radius:3px; transition:width .3s; }
.kb-rescate { display:inline-block; font-size:10.5px; font-weight:700; color:#B91C1C; background:#FEF2F2; border:1px solid #FCA5A5; border-radius:6px; padding:2px 7px; margin:4px 0; }
.kb-col-crit { font-size:11px; font-weight:700; color:#DC2626; margin-left:6px; }

/* ===== Tarjeta B2B minimalista (v1.328) ===== */
.kb-card { padding:11px 12px !important; border-left:none !important; }
.kb-nombre { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; text-overflow:ellipsis; line-height:1.25; font-size:13.5px; max-height:2.5em; }
.kb-card .kb-ticket { display:none; }           /* etiqueta Alto/Medio/Bajo fuera: el oxígeno ya prioriza */
.kb-sub { font-size:11.5px; color:#8A97A8; margin-top:3px; }
.kb-monto-row { margin-top:6px; }
.kb-monto { font-size:14px; font-weight:700; color:#0F2E5A; }
.kb-sla { margin-top:7px; font-size:11.5px; }
.kb-ox { height:4px; margin-top:9px; }
.kb-rescate { font-size:10px; padding:1px 6px; margin-top:5px; }
/* ocultar dots de etapa y chips de probabilidad si quedara algún residuo */
.kb-foot, .kb-prob-chip, .kb-dots { display:none !important; }
.kb-ubic-inline { font-size:10.5px; color:#94a3b8; margin-left:8px; font-weight:400; }

/* ===== Gestión B2B del día v2 (v1.331) ===== */
.bd-barra { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.bd-barra h2 { margin-right:auto; }
.bd-mini { width:auto !important; min-width:130px; max-width:180px; padding:6px 10px; font-size:13px; }
.bd-mini-btn { padding:6px 12px; }
.bd-sub { font-weight:400; color:#94a3b8; font-size:12px; }
.bd-row-alerta { background:#FEF2F2; }
.bd-ok { color:#16A34A; font-weight:600; font-size:12px; }
.bd-alerta { color:#DC2626; font-weight:700; font-size:12px; }
.bd-lead { border:1px solid #EDF1F7; border-radius:10px; padding:10px 12px; margin-bottom:8px; cursor:pointer; background:#fff; }
.bd-lead:hover { border-color:#C7DBFF; }
.bd-lead-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:13px; }
.bd-lead-etapa { font-size:11px; color:#3B5BDB; background:#EEF2FF; border-radius:6px; padding:2px 8px; }
.bd-lead-n { font-size:11.5px; color:#5A6B80; }
.bd-lead-avanzo { font-size:11px; color:#16A34A; font-weight:700; }
.bd-lead-resp { margin-left:auto; font-size:11.5px; color:#94a3b8; }
.bd-lead-body { margin-top:8px; border-top:1px dashed #E4EAF2; padding-top:8px; }
.bd-accion { font-size:12.5px; color:#334155; padding:3px 0; }
.bd-accion-h { color:#94a3b8; font-size:11px; margin-right:6px; }
.bd-accion-av { color:#16A34A; }
.bd-emb-row { cursor:pointer; border-radius:6px; }
.bd-emb-row:hover { background:#F5F9FF; }
.bd-emb-det { margin-top:10px; }
.bd-emb-tit { font-size:12px; font-weight:700; color:#334155; margin-bottom:6px; }
.bd-chip { display:inline-block; font-size:11.5px; background:#F1F5FB; border:1px solid #E4EAF2; border-radius:6px; padding:3px 8px; margin:2px 3px 2px 0; }
.bd-des { border-left:3px solid #DC2626; background:#FFF7F7; border-radius:8px; padding:8px 10px; margin-bottom:8px; }
.bd-des-mot { font-size:12px; color:#7F1D1D; margin:2px 0; }

/* ===== Gestión B2B del día v3 (v1.332): denso, homogéneo, legible ===== */
.bd-kpis { display:flex; gap:10px; margin:12px 0; flex-wrap:wrap; }
.bd-kpi { flex:1; min-width:130px; background:#fff; border:1px solid #E4EAF2; border-radius:10px; padding:10px 14px; display:flex; align-items:baseline; gap:8px; }
.bd-kpi-v { font-size:20px; font-weight:800; color:#0F2E5A; }
.bd-kpi-l { font-size:11.5px; color:#5A6B80; }
.bd-panel { margin-bottom:14px; padding:14px 16px !important; }
.bd-panel .com-panel-tit { margin-bottom:10px; }
/* Tabla densa con header legible (gris claro + texto oscuro) */
.bd-tabla { width:100%; border-collapse:collapse; font-size:12.5px; }
.bd-tabla thead th { background:#F4F7FB !important; color:#334155 !important; font-weight:700; font-size:11.5px; text-transform:none; padding:7px 8px; border-bottom:1px solid #E4EAF2; text-align:center; }
.bd-tabla td { padding:7px 8px; border-bottom:1px solid #F1F5F9; text-align:center; vertical-align:middle; }
.bd-fila { cursor:pointer; }
.bd-fila:hover { background:#F8FBFF; }
.bd-exp td { background:#FAFBFD; text-align:left !important; padding:8px 14px; }
.bd-nuevo-tag { color:#2563EB; background:#EEF4FF; border-radius:5px; padding:1px 6px; font-size:10px; }
.bd-b { display:inline-block; font-size:11px; font-weight:700; border-radius:6px; padding:2px 8px; white-space:nowrap; }
.bd-b-rojo { color:#B91C1C; background:#FEF2F2; }
.bd-b-verde { color:#166534; background:#F0FDF4; }
.bd-b-azul { color:#1E40AF; background:#EFF6FF; }
.bd-b-gris { color:#475569; background:#F1F5F9; }
.bd-motivo { font-size:11.5px; color:#7F1D1D; }
.bd-det-card { border:1px solid #E4EAF2; border-radius:8px; padding:8px 10px; margin-bottom:7px; background:#fff; }
.bd-det-card.bd-det-des { border-left:3px solid #DC2626; background:#FFF9F9; }
.bd-det-res { font-size:12px; color:#334155; margin:2px 0; }

/* ===== Cola Inteligente B2B (v1.335): una fila por lead, ancho completo ===== */
.cola-head { display:flex; align-items:baseline; gap:12px; margin:6px 0 12px; }
.cola-head-t { font-size:16px; font-weight:800; color:#0F2E5A; }
.cola-head-n { font-size:12.5px; color:#8A97A8; }
.cola-list { display:flex; flex-direction:column; gap:5px; }
.cola-item { display:flex; align-items:center; gap:12px; background:#fff; border:1px solid #E7ECF3; border-radius:9px; padding:9px 14px; cursor:pointer; transition:border-color .12s, box-shadow .12s; }
.cola-item:hover { border-color:#B9D2FF; box-shadow:0 2px 8px rgba(30,64,175,.07); }
.cola-n-critica { border-left:3px solid #DC2626; }
.cola-n-alta { border-left:3px solid #F97316; }
.cola-n-media { border-left:3px solid #F59E0B; }
.cola-n-baja { border-left:3px solid #CBD5E1; }
.cola-rank { flex:0 0 22px; font-size:13px; font-weight:800; color:#B6C2D2; text-align:center; }
.cola-dot { flex:0 0 auto; font-size:11px; }
.cola-emp { flex:0 0 240px; font-size:13px; font-weight:700; color:#16233A; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cola-etapa { flex:0 0 110px; font-size:11.5px; color:#5A6B80; }
.cola-accion { flex:1 1 auto; font-size:12px; color:#1E40AF; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.cola-dias { flex:0 0 auto; font-size:10.5px; color:#94a3b8; }
.cola-venc { flex:0 0 auto; font-size:10px; font-weight:700; color:#fff; background:#DC2626; border-radius:5px; padding:2px 7px; white-space:nowrap; }
.cola-monto { flex:0 0 auto; font-size:14px; font-weight:800; color:#0F2E5A; min-width:120px; text-align:right; }
.cola-ox { flex:0 0 44px; height:5px; background:#EEF2F7; border-radius:3px; overflow:hidden; }
.cola-ox-fill { display:block; height:100%; border-radius:3px; }

/* ===== Centro de Comando B2B (v1.334) ===== */
.cmd-panel { background:linear-gradient(135deg,#1B3B6F,#274B8A); border-radius:16px; padding:18px 20px; margin-bottom:16px; color:#fff; box-shadow:0 8px 24px rgba(15,46,90,.18); }
.cmd-head { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:14px; }
.cmd-hi { font-size:19px; font-weight:800; }
.cmd-sub { font-size:13px; color:#C7D6F0; margin-top:2px; }
.cmd-sub b { color:#fff; }
.cmd-x { background:rgba(255,255,255,.12); border:none; color:#fff; width:28px; height:28px; border-radius:8px; cursor:pointer; font-size:13px; }
.cmd-x:hover { background:rgba(255,255,255,.22); }
.cmd-stats { display:flex; gap:10px; margin-bottom:16px; flex-wrap:wrap; }
.cmd-stat { flex:1; min-width:110px; background:rgba(255,255,255,.1); border-radius:10px; padding:10px 12px; display:flex; flex-direction:column; gap:2px; }
.cmd-stat-r { background:rgba(220,38,38,.22); }
.cmd-stat-v { font-size:19px; font-weight:800; }
.cmd-stat-l { font-size:11px; color:#D5E1F5; }
.cmd-tit { font-size:13px; font-weight:700; color:#C7D6F0; margin-bottom:8px; }
.cmd-tasks { display:flex; flex-direction:column; gap:7px; margin-bottom:16px; }
.cmd-task { display:flex; align-items:center; gap:10px; background:rgba(255,255,255,.96); border-radius:9px; padding:9px 14px; cursor:pointer; transition:transform .12s; }
.cmd-task:hover { transform:translateX(3px); }
.cmd-task-dot { flex:0 0 auto; font-size:11px; }
.cmd-task-emp { flex:0 0 250px; font-size:13px; font-weight:700; color:#16233A; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cmd-task-acc { flex:1 1 auto; font-size:11.5px; color:#5A6B80; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.cmd-tag { flex:0 0 auto; font-size:10px; font-weight:700; color:#fff; background:#DC2626; border-radius:5px; padding:2px 7px; }
.cmd-task-monto { flex:0 0 auto; font-size:14px; font-weight:800; color:#0F2E5A; min-width:120px; text-align:right; }
.cmd-vacio { background:rgba(255,255,255,.12); border-radius:10px; padding:14px; text-align:center; font-size:13.5px; }
.cmd-start { width:100%; background:#fff; color:#1E40AF; border:none; border-radius:10px; padding:12px; font-size:14px; font-weight:800; cursor:pointer; transition:background .15s; }
.cmd-start:hover { background:#EFF4FF; }
.cmd-collapsed { background:linear-gradient(135deg,#0F2E5A,#1E40AF); color:#fff; border-radius:12px; padding:11px 16px; font-size:13px; font-weight:600; cursor:pointer; display:flex; align-items:center; gap:8px; }
.cmd-exp { margin-left:auto; font-size:11.5px; color:#C7D6F0; }

/* ===== Scorecards B2B embellecidos + clicables (v1.336) ===== */
.b2b-scorecards { display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin-bottom:14px; }
@media (max-width:1000px){ .b2b-scorecards { grid-template-columns:repeat(3,1fr); } }
.sc-card { background:#fff; border:1px solid #E7ECF3; border-radius:12px; padding:12px 14px; transition:all .15s; }
.sc-clic { cursor:pointer; }
.sc-clic:hover { border-color:#B9D2FF; box-shadow:0 3px 10px rgba(30,64,175,.1); transform:translateY(-1px); }
.sc-on { border-color:#2563EB; background:#F5F9FF; box-shadow:0 0 0 2px rgba(37,99,235,.15); }
.sc-row { display:flex; align-items:center; justify-content:space-between; }
.sc-val { font-size:22px; font-weight:800; color:#0F2E5A; }
.sc-ic { font-size:16px; opacity:.85; }
.sc-lbl { font-size:11.5px; color:#5A6B80; margin-top:3px; font-weight:600; }
.sc-activo { font-size:10px; color:#2563EB; font-weight:700; margin-top:3px; }
.sc-neutro .sc-val { color:#334155; }
.sc-azul .sc-val { color:#1E40AF; }
.sc-rojo { border-color:#FCA5A5; } .sc-rojo .sc-val { color:#DC2626; }
.sc-naranja { border-color:#FED7AA; } .sc-naranja .sc-val { color:#EA580C; }
.sc-verde { border-color:#BBF7D0; } .sc-verde .sc-val { color:#16A34A; }

/* ===== Gamificación: barra de meta diaria ===== */
.gami-bar { background:#fff; border:1px solid #E7ECF3; border-radius:12px; padding:12px 16px; margin-bottom:14px; }
.gami-top { display:flex; align-items:center; gap:12px; margin-bottom:8px; }
.gami-lbl { font-size:13px; font-weight:700; color:#0F2E5A; }
.gami-msg { font-size:12.5px; color:#5A6B80; }
.gami-msg b { color:#0F2E5A; }
.gami-pct { margin-left:auto; font-size:15px; font-weight:800; color:#1E40AF; }
.gami-track { height:8px; background:#EEF2F7; border-radius:5px; overflow:hidden; }
.gami-fill { height:100%; border-radius:5px; transition:width .5s ease; }

/* ===== Alertas dentro de la tarjeta Kanban ===== */
.kb-alerta { display:inline-block; font-size:10px; font-weight:700; border-radius:5px; padding:2px 7px; margin:4px 4px 0 0; }
.kb-alerta-warn { color:#B45309; background:#FEF3C7; }
.kb-alerta-venc { color:#B91C1C; background:#FEF2F2; }

/* ===== v1.337: pulido UI B2B ===== */
/* Contador de filtro */
.b2bkf-info { font-size:11.5px; font-weight:700; color:#1E40AF; background:#EFF4FF; border-radius:6px; padding:3px 9px; }

/* Modal Registrar gestión B2B — estilo B2C: labels arriba, inputs anchos */
.gm-card-ancha { width:1080px !important; max-width:97vw; }
.gm-2col { gap:16px !important; }
.gm-col { padding:16px 18px !important; border-radius:14px !important; }
.gm-col-1 { border:1.5px solid #B9D2FF !important; background:#FBFDFF !important; }
.gm-col-2 { border:1.5px solid #A7E3C4 !important; background:#F7FDF9 !important; }
.gm-col-tit { font-size:14px; font-weight:800; margin-bottom:12px; display:flex; align-items:center; gap:8px; }
.gm-col-1 .gm-col-tit { color:#0B5FFF; }
.gm-col-2 .gm-col-tit { color:#158452; }
.gm-num { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%; color:#fff; font-size:12px; font-weight:800; }
.gm-num-1 { background:#0B5FFF; }
.gm-num-2 { background:#1D9E75; }
.gm-row { display:block !important; margin-bottom:12px !important; }
.gm-row label { display:block; min-width:0 !important; font-size:10.5px !important; font-weight:800; color:#5A6B80 !important; text-transform:uppercase; letter-spacing:.5px; margin-bottom:5px; }
.gm-row .mtr-in { width:100% !important; box-sizing:border-box; padding:9px 11px; border-radius:9px; font-size:13px; }
.gm-ta { min-height:84px !important; resize:vertical; }
.gm-atajos { display:grid !important; grid-template-columns:repeat(4,1fr); gap:7px; }
.gm-atajo { padding:7px 4px !important; border-radius:9px !important; font-size:11.5px !important; text-align:center; }

/* Trazabilidad B2B — estilo B2C: timeline con cards */
.tl-card { width:640px !important; max-width:95vw; padding:16px 18px !important; }
.tl-head { margin-bottom:12px; }
.tl-list { display:flex; flex-direction:column; gap:8px; max-height:62vh; overflow-y:auto; padding-left:16px; border-left:2px solid #E7ECF3; }
.tl-item { position:relative; background:#fff; border:1px solid #E7ECF3; border-radius:10px; padding:10px 14px; }
.tl-item-cambio { background:#FAFBFD; }
.tl-dot { position:absolute; left:-23px; top:14px; width:11px; height:11px; border-radius:50%; background:#2563EB; border:2px solid #fff; box-shadow:0 0 0 1.5px #2563EB; }
.tl-dot-cambio { background:#94A3B8; box-shadow:0 0 0 1.5px #94A3B8; }
.tl-top b { font-size:13px; color:#16233A; }
.tl-top .sub { font-size:11px; color:#94A3B8; }
.tl-res { font-size:12.5px; color:#334155; margin-top:3px; }
.tl-com { font-size:12px; color:#5A6B80; font-style:italic; margin-top:3px; border-left:2px solid #DDE4EC; padding-left:8px; }
.tl-prox { font-size:12px; color:#1E40AF; background:#F0F6FF; border-radius:7px; padding:5px 9px; margin-top:6px; display:inline-block; }

/* Stepper ficha: la ETAPA ACTUAL bien visible */
.fbs-etapa-hoy { background:#1E40AF !important; opacity:1 !important; }
.fbs-etapa-hoy .fbs-txt { color:#fff !important; font-weight:800; }
.fbs-etapa-hoy .fbs-dot { background:#fff !important; color:#1E40AF !important; box-shadow:none; }
.fbs-etapa-hoy .fbs-chip { filter:brightness(1.15); }
.fbs-etapa-hoy .fbs-caret { color:#C7D6F0; }

/* Contactabilidad B2B sin scroll (15 días caben) */
#fbContactabilidad .g35-scroll, #fbContactabilidad .g35-wrap { overflow-x:visible !important; }
#fbContactabilidad .g35-flechas, #fbContactabilidad .g35-nav { display:none !important; }

/* v1.338: contactabilidad 30 días comprimida sin scroll */
#fbContactabilidad .g35-dias, #fbContactabilidad .g35-grid { display:flex !important; gap:2px !important; overflow-x:visible !important; }
#fbContactabilidad .g35-dia { flex:1 1 0 !important; min-width:0 !important; }
#fbContactabilidad .g35-celda { width:100% !important; min-width:0 !important; }
#fbContactabilidad .g35-daylbl, #fbContactabilidad .g35-dm { font-size:8px !important; }
#fbContactabilidad .g35-scroll { overflow:visible !important; }

/* ===== MODO NOCHE (v1.338) ===== */
.night-toggle { background:transparent; border:1px solid rgba(255,255,255,.25); color:inherit; width:34px; height:34px; border-radius:9px; cursor:pointer; font-size:15px; margin-right:10px; transition:background .15s; }
.night-toggle:hover { background:rgba(120,140,180,.15); }

body.night { background:#0F1620; color:#D8E0EC; }
body.night .topbar { background:#151E2B; border-bottom:1px solid #263243; }
body.night .top-logo { color:#E8EEF6; }
body.night .vista, body.night .barra { background:transparent; }
/* Tarjetas, paneles y superficies */
body.night .kb-col, body.night .kb-card, body.night .com-panel, body.night .bd-panel, body.night .sc-card,
body.night .cola-item, body.night .gami-bar, body.night .b2b-chips, body.night .tl-item, body.night .card,
body.night .panel, body.night .gm-card, body.night .tl-card, body.night .fb-panel, body.night .fb-stepper,
body.night .g35-wrap, body.night table, body.night .mtr-in, body.night select, body.night input, body.night textarea {
  background:#1A2534 !important; color:#D8E0EC !important; border-color:#2A3849 !important;
}
body.night .kb-board { background:transparent; }
body.night .kb-colhead { background:#22303F !important; color:#E8EEF6 !important; }
body.night .kb-nombre, body.night .kb-monto, body.night .sc-val, body.night .com-card-v, body.night .cola-emp,
body.night .cola-monto, body.night h1, body.night h2, body.night h3, body.night b, body.night .fbs-txt { color:#EAF1FA !important; }
body.night .kb-sub, body.night .sc-lbl, body.night .com-card-l, body.night .cola-meta, body.night .sub, body.night small, body.night label { color:#9DB0C6 !important; }
/* Inputs y selects legibles */
body.night input::placeholder, body.night textarea::placeholder { color:#6B7C93 !important; }
body.night .mtr-in, body.night select, body.night input, body.night textarea { border:1px solid #33465C !important; }
/* Scorecards de color: mantener acentos pero sobre oscuro */
body.night .sc-rojo { background:#2A1A1E !important; border-color:#5B2B2B !important; }
body.night .sc-naranja { background:#2A2318 !important; border-color:#5B472B !important; }
body.night .sc-verde { background:#182A20 !important; border-color:#2B5B3E !important; }
body.night .sc-azul .sc-val { color:#7FB0FF !important; }
/* Modales y overlays */
body.night .gm-back, body.night .tl-back, body.night .fb-modal-back, body.night .modal-back { background:rgba(0,0,0,.6) !important; }
body.night .gm-col-1 { background:#182233 !important; border-color:#2E3A56 !important; }
body.night .gm-col-2 { background:#16241C !important; border-color:#2B5B3E !important; }
body.night .gm-atajo { background:#22303F !important; color:#9FC0FF !important; }
body.night .gm-atajo:hover { background:#3B5BDB !important; color:#fff !important; }
/* Kanban columnas header azul se mantiene */
body.night .kb-colpot { color:#9DB0C6 !important; }
body.night .cmd-panel { background:linear-gradient(135deg,#16243B,#1E3358) !important; }
/* Timeline */
body.night .tl-list { border-left-color:#2A3849 !important; }
body.night .tl-com { color:#9DB0C6 !important; border-left-color:#33465C !important; }
body.night .tl-prox { background:#16243B !important; color:#9FC0FF !important; }
/* Botones */
body.night .btn.sec { background:#22303F !important; color:#D8E0EC !important; border-color:#33465C !important; }

/* v1.343: avances por transición */
.com-bar-fill-verde { background:linear-gradient(90deg,#16A34A,#22C55E) !important; }
.bd-av-detalle { margin-top:10px; display:flex; flex-wrap:wrap; gap:6px; }
.bd-av-chip { font-size:11.5px; background:#F0FDF4; border:1px solid #BBF7D0; border-radius:6px; padding:3px 8px; color:#166534; }
.bd-av-chip small { color:#94a3b8; }

/* v1.346: banner de avance en modal de gestión */
.gm-avance-banner { background:#ECFDF5; border:1px solid #A7F3D0; color:#065F46; border-radius:9px; padding:10px 14px; font-size:12.5px; font-weight:600; margin-bottom:14px; }
body.night .gm-avance-banner { background:#16241C; border-color:#2B5B3E; color:#6EE7B7; }

/* ===== Tendencias v2 (v1.351) ===== */
.tend-grid { display:grid; grid-template-columns:1fr; gap:14px; }
.tend-grid:has(#tendPanelB:not(.oculto)) { grid-template-columns:1fr 1fr; }
.tend-panel { background:#fff; border:1px solid #E7ECF3; border-radius:12px; padding:12px 14px; }
.tend-panel-tit { font-size:13px; font-weight:800; color:#0F2E5A; margin-bottom:6px; }
.tend-panel-tit:empty { display:none; }
.tend-canvas-wrap { position:relative; height:380px; }
.tend-grid:has(#tendPanelB:not(.oculto)) .tend-canvas-wrap { height:330px; }
.tend-kpi { background:#F8FAFD; border:1px solid #E7ECF3; border-radius:10px; padding:10px 14px; margin-bottom:12px; display:flex; flex-direction:column; gap:7px; }
.tend-kpi-row { display:flex; align-items:center; gap:12px; }
.tend-kpi-lbl { flex:0 0 220px; font-size:12px; font-weight:700; color:#334155; }
.tend-kpi-track { flex:1; height:14px; background:#EEF2F7; border-radius:7px; overflow:hidden; }
.tend-kpi-fill { height:100%; border-radius:7px; background:linear-gradient(90deg,#EF9F27,#F6BE5B); }
.tend-kpi-val { flex:0 0 90px; text-align:right; font-size:14px; font-weight:800; color:#B45309; }
#tendSplitBtn.act { background:#1E40AF; color:#fff; border-color:#1E40AF; }
body.night .tend-panel, body.night .tend-kpi { background:#1A2534 !important; border-color:#2A3849 !important; }

/* v1.352: alinear filtros del cuadrante + armonía general del modal */
#tendCuadCtrl { align-items:center !important; gap:10px !important; }
#tendCuadCtrl .inp { height:36px; box-sizing:border-box; }
#tendEjes { align-items:center !important; flex-wrap:wrap; }
#tendEjes .inp { height:36px; box-sizing:border-box; }
#ovTend .atr-ctrl { align-items:center; }
#ovTend .atr-niveles { display:flex; align-items:center; }

/* ===== v1.358: fixes ficha B2B ===== */
/* 1) Modal Registrar gestión: el texto de selects/inputs se cortaba (height fija 30px + padding 9px) */
.gm-row .mtr-in { height:auto !important; min-height:40px; line-height:1.3; max-width:none !important; }
.gm-row select.mtr-in { appearance:auto; }
.gm-row textarea.mtr-in { min-height:110px; }
/* Modal de gestión más ancho: las 2 columnas usan bien el espacio y el comentario llena su bloque */
.gm-card-ancha { max-width:1100px !important; width:min(1100px, 96vw) !important; }
.gm-2col { gap:16px; }
.gm-col { padding:16px 18px; }
/* 2) Contactabilidad B2B: las celdas colapsaban a rayitas (min-width:0). Ahora siempre visibles. */
#fbContactabilidad .g35-celda { min-width:8px !important; height:13px !important; border-radius:3px !important; }
#fbContactabilidad .g35-vacio { border:1px solid #CBD6E4; box-sizing:border-box; }
#fbContactabilidad .g35-futuro { border:1px dashed #C9D4E0; box-sizing:border-box; }
#fbContactabilidad .g35-etapa { min-width:8px !important; height:9px !important; border-radius:3px !important; width:100%; }
body.night #fbContactabilidad .g35-vacio { border-color:#33465C; }

/* ===== Centro de Operaciones B2B (v1.365) — sticky + modal IA ===== */
#v-b2b-ops.vista { padding:0; }
/* La barra se saca del padding del .content (20px 24px) y se ancla al tope real */
.ops-topbar { position:sticky; top:0; z-index:40; background:#0B72E8; padding:12px 24px; margin:-20px -24px 16px; display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; box-shadow:0 3px 10px rgba(11,114,232,.22); }
.ops-hero-brand { display:flex; align-items:center; gap:12px; }
.ops-hero-brand img { height:30px; background:#fff; border-radius:7px; padding:3px 7px; }
.ops-hero-tit { color:#fff; font-size:17px; font-weight:700; }
.ops-hero-sub { color:#B5D4F4; font-size:11px; margin-top:1px; }
.ops-topfilters { display:flex; align-items:flex-end; gap:10px; flex-wrap:wrap; }
.ops-tf { display:flex; flex-direction:column; gap:2px; }
.ops-tf label { font-size:10px; color:#B5D4F4; }
.ops-tf select, .ops-tf input { font-size:12px; padding:6px 8px; border:none; border-radius:7px; background:#fff; color:#1c2430; }
.ops-ia-launch { align-self:flex-end; background:#fff; color:#0B72E8; border:none; font-weight:700; font-size:13px; padding:8px 16px; border-radius:8px; cursor:pointer; }
.ops-ia-launch:hover { background:#E6F1FB; }
.ops-scroll { padding:0; }
.ops-updated { font-size:11px; color:#8b96a5; margin-bottom:12px; }
.ops-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:14px; }
@media (max-width:1100px){ .ops-kpis { grid-template-columns:repeat(2,1fr); } }
.ops-kpi { background:#fff; border:1px solid #E4EAF2; border-radius:12px; padding:12px 14px; display:flex; gap:11px; align-items:flex-start; }
.ops-kpi-w { grid-column:span 2; }
.ops-kpi-body { flex:1; min-width:0; }
.ops-ico { width:38px; height:38px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; }
.t-azul { background:#E6F1FB; } .t-teal { background:#E1F5EE; } .t-verde { background:#EAF3DE; }
.t-ambar { background:#FAEEDA; } .t-rojo { background:#FCEBEB; } .t-dorado { background:#FDF3D7; }
.ops-kpi-lbl { font-size:12px; color:#6b7686; }
.ops-kpi-val { font-size:21px; font-weight:700; margin-top:2px; color:#1c2430; }
.ops-kpi-de { font-size:12px; font-weight:400; color:#8b96a5; }
.ops-kpi-sub { font-size:11px; color:#8b96a5; margin-top:3px; line-height:1.45; }
.ops-kpi-meta { border:1px solid #0B72E8; } .ops-kpi-val-meta { font-size:16px; } .ops-kpi-meta-de { font-size:12px; color:#8b96a5; font-weight:400; }
.ops-avs { display:flex; flex-wrap:wrap; gap:6px; margin-top:5px; }
.ops-av { font-size:11px; background:#f2f5f9; color:#8b96a5; padding:4px 9px; border-radius:14px; }
.ops-av.on { background:#E6F1FB; color:#0B72E8; } .ops-av b { font-size:13px; }
.ops-azul { color:#0B72E8 !important; } .ops-rojo { color:#A32D2D !important; }
.ops-up { color:#3B6D11; font-weight:600; } .ops-down { color:#A32D2D; font-weight:600; } .ops-flat { color:#8b96a5; }
.ops-bar { height:5px; background:#eef1f5; border-radius:10px; overflow:hidden; margin:5px 0 4px; }
.ops-bar-fill { height:100%; border-radius:10px; } .ops-bar-fill.ok { background:#0B72E8; } .ops-bar-fill.mal { background:#D85A30; }
.ops-grid2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
@media (max-width:900px){ .ops-grid2 { grid-template-columns:1fr; } }
.ops-alerta { display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:10px; margin-bottom:7px; }
.al-critica { background:#FCEBEB; } .al-critica .ops-al-tag { background:#F7C1C1; color:#791F1F; }
.al-alta { background:#FAEEDA; } .al-alta .ops-al-tag { background:#FAC775; color:#633806; }
.al-media { background:#FAEEDA; } .al-media .ops-al-tag { background:#FAC775; color:#633806; }
.al-info { background:#E6F1FB; } .al-info .ops-al-tag { background:#B5D4F4; color:#0C447C; }
.al-logro { background:#EAF3DE; } .al-logro .ops-al-tag { background:#C0DD97; color:#27500A; }
.ops-al-tag { font-size:10px; font-weight:700; padding:3px 9px; border-radius:10px; white-space:nowrap; }
.ops-al-txt { flex:1; font-size:13px; color:#2a3340; }
.ops-al-btn { font-size:11px; padding:4px 10px; white-space:nowrap; }
.ops-chips { margin:-2px 0 8px 4px; } .ops-chips .ops-chip { margin:2px; }
.ops-chip { display:inline-block; font-size:11px; background:#eef3fa; color:#0C447C; border:1px solid #d5e3f5; padding:2px 8px; border-radius:10px; cursor:pointer; }
.ops-chip:hover { background:#dcebfc; }
.ops-flujo { display:flex; align-items:stretch; gap:4px; overflow-x:auto; padding:4px 0; }
.ops-etapa { flex:1; min-width:105px; background:#F4F8FD; border:1px solid #dbe7f5; border-radius:12px; padding:12px 8px; text-align:center; }
.ops-etapa.vacia { opacity:.45; } .ops-etapa.peor { background:#FCEBEB; border-color:#F0B4B4; }
.ops-etapa-ico { font-size:19px; }
.ops-etapa-n { font-size:24px; font-weight:800; color:#0B72E8; margin-top:2px; }
.ops-etapa.peor .ops-etapa-n { color:#A32D2D; }
.ops-etapa-lbl { font-size:12px; font-weight:600; color:#2a3340; }
.ops-etapa-sub { font-size:10px; color:#8b96a5; margin-top:2px; }
.ops-etapa-alerta { font-size:10px; color:#854F0B; background:#FAEEDA; border-radius:8px; padding:2px 6px; margin-top:5px; display:inline-block; }
.ops-etapa-peor { font-size:10px; color:#791F1F; font-weight:700; margin-top:4px; }
.ops-flecha { align-self:center; color:#c3d2e6; font-size:22px; font-weight:700; }
.ops-emb-fila { margin-bottom:9px; }
.ops-emb-bar { background:#0B72E8; color:#fff; border-radius:6px; padding:6px 10px; font-size:12px; display:flex; justify-content:space-between; gap:8px; min-width:130px; }
.ops-emb-sub { font-size:11px; color:#8b96a5; margin-top:2px; padding-left:2px; }
.ops-dist-total { font-size:12px; color:#6b7686; margin-bottom:10px; }
.ops-dist-fila { display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.ops-dist-lbl { font-size:12px; width:75px; color:#2a3340; flex-shrink:0; }
.ops-dist-track { flex:1; background:#eef1f5; border-radius:6px; height:12px; overflow:hidden; }
.ops-dist-bar { height:100%; background:#0B72E8; border-radius:6px; }
.ops-dist-val { font-size:11px; color:#6b7686; width:120px; text-align:right; flex-shrink:0; }
.ops-dona-wrap { display:flex; align-items:center; gap:22px; }
.ops-dona { width:120px; height:120px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.ops-dona-in { width:78px; height:78px; border-radius:50%; background:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.ops-dona-in b { font-size:24px; color:#1c2430; } .ops-dona-in span { font-size:10px; color:#8b96a5; }
.ops-dona-leg { flex:1; }
.ops-leg-fila { display:flex; align-items:center; gap:8px; font-size:12px; color:#2a3340; padding:4px 0; }
.ops-leg-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.ops-leg-fila b { margin-left:auto; } .ops-leg-pct { color:#8b96a5; font-size:11px; }
.ops-tabla { width:100%; border-collapse:collapse; font-size:12px; }
.ops-tabla td { padding:8px 6px; border-bottom:1px solid #eef1f5; }
.ops-tabla tbody tr { cursor:pointer; } .ops-tabla tbody tr:hover { background:#f7fafd; }
.ops-tabla-sm td { padding:5px 6px; font-size:11px; } .ops-tabla-sm tbody tr { cursor:default; }
.ops-rank { color:#b3bdc9; font-weight:700; width:22px; }
.ops-tr-et { color:#8b96a5; }
.ops-score { font-weight:700; padding:3px 10px; border-radius:14px; font-size:12px; }
.ops-score-critico { background:#FCEBEB; color:#A32D2D; } .ops-score-alto { background:#FAEEDA; color:#BA7517; } .ops-score-medio { background:#EAF3DE; color:#3B6D11; }
.ops-pill { font-weight:700; padding:2px 9px; border-radius:10px; font-size:11px; }
.ops-pill-v { background:#EAF3DE; color:#27500A; } .ops-pill-a { background:#FAEEDA; color:#633806; } .ops-pill-r { background:#FCEBEB; color:#791F1F; }
.ops-desest-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; }
.ops-desest-n { font-size:20px; color:#1c2430; }
.ops-desest-tit { font-size:12px; font-weight:600; color:#4a5568; margin:12px 0 5px; }
.ops-meta-global { background:#E6F1FB; border-radius:9px; padding:9px 11px; margin-bottom:8px; }
.ops-meta-row { padding:8px 11px; border-radius:9px; border:1px solid #eef1f5; margin-bottom:6px; }
.ops-meta-row.editable { cursor:pointer; } .ops-meta-row.editable:hover { background:#f7fafd; }
.ops-meta-nom { font-size:13px; font-weight:600; color:#2a3340; }
.ops-meta-val { font-size:12px; color:#6b7686; margin-top:2px; }
.ops-meta-pen { color:#0B72E8; cursor:pointer; }
.ops-sinmeta { color:#b3bdc9; font-style:italic; }
.ops-mt8 { margin-top:8px; }
/* Modal IA */
.ops-modal { position:fixed; inset:0; background:rgba(20,30,45,.55); z-index:1000; display:flex; align-items:center; justify-content:center; padding:20px; }
.ops-modal.oculto { display:none; }
.ops-modal-box { background:#fff; border-radius:16px; max-width:640px; width:100%; max-height:85vh; display:flex; flex-direction:column; box-shadow:0 20px 60px rgba(0,0,0,.3); }
.ops-modal-head { background:#0B72E8; color:#fff; padding:15px 22px; border-radius:16px 16px 0 0; display:flex; justify-content:space-between; align-items:center; font-size:15px; font-weight:700; }
.ops-modal-x { background:rgba(255,255,255,.2); border:none; color:#fff; width:28px; height:28px; border-radius:50%; cursor:pointer; font-size:14px; }
.ops-modal-x:hover { background:rgba(255,255,255,.35); }
.ops-modal-body { padding:22px 26px; overflow-y:auto; }
.ops-ia-h { font-size:15px; color:#0B72E8; margin:18px 0 8px; font-weight:700; }
.ops-ia-h:first-child { margin-top:0; }
.ops-ia-p { font-size:13px; color:#2a3340; line-height:1.6; margin:0 0 8px; }
.ops-ia-linea { font-size:13px; color:#2a3340; background:#F4F8FD; border-left:3px solid #0B72E8; border-radius:0 8px 8px 0; padding:8px 12px; margin-bottom:6px; line-height:1.5; }
.ops-ia-loading { text-align:center; padding:40px 20px; color:#6b7686; font-size:14px; }
.ops-ia-spin { width:28px; height:28px; border:3px solid #E6F1FB; border-top-color:#0B72E8; border-radius:50%; margin:16px auto 0; animation:opsspin 0.8s linear infinite; }
@keyframes opsspin { to { transform:rotate(360deg); } }

/* v1.366: modal metas B2B, leads trabajados, ajustes */
.ops-kpi-click { cursor:pointer; transition:box-shadow .15s; }
.ops-kpi-click:hover { box-shadow:0 3px 12px rgba(11,114,232,.15); border-color:#B5D4F4; }
.ops-modal-wide { max-width:820px; }
.ops-meta-asignar { background:#0B72E8; color:#fff; border:none; font-size:11px; padding:3px 10px; border-radius:6px; cursor:pointer; font-weight:600; }
.ops-meta-asignar:hover { background:#0a63c9; }
.mb-tit { font-size:13px; font-weight:700; color:#2a3340; margin-bottom:6px; }
.mb-mt { margin-top:18px; }
.mb-sub { font-size:11px; color:#8b96a5; margin-bottom:10px; }
.mb-inp { width:100%; font-size:14px; padding:9px 11px; border:1px solid #dfe6ef; border-radius:8px; box-sizing:border-box; }
.mb-inp-sm { width:130px; font-size:13px; padding:7px 9px; border:1px solid #dfe6ef; border-radius:8px; }
.mb-row { display:flex; justify-content:space-between; align-items:center; padding:7px 0; border-bottom:1px solid #eef1f5; }
.mb-nom { font-size:13px; color:#2a3340; }
.mb-suma { margin-top:12px; padding:10px 12px; background:#F4F8FD; border-radius:8px; font-size:12px; color:#4a5568; }
.mb-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:16px; }
.ops-trab-tabla th { text-align:left; font-weight:500; color:#6b7686; font-size:11px; padding:6px; border-bottom:1px solid #E4EAF2; position:sticky; top:0; background:#fff; }
.ops-est { font-size:11px; background:#eef3fa; color:#4a5568; padding:2px 8px; border-radius:10px; }
.ops-est-act { background:#E6F1FB; color:#0C447C; }

/* ============================================================
   RESPONSIVE MÓVIL (v1.374) — arranque por B2C
   Kanban en carrusel (columna a columna con snap), barra
   superior compacta, modales a pantalla completa, tablas con
   scroll. Se activa en pantallas ≤ 640px.
   ============================================================ */
@media (max-width: 640px) {

  /* ---- Barra superior compacta: no encimar botones ---- */
  .topbar { flex-wrap: wrap; gap: 6px; padding: 8px 10px; height: auto; }
  .top-logo { font-size: 16px; }
  .top-nav { flex-wrap: wrap; gap: 6px; width: 100%; order: 3; }
  .mundo-btn { font-size: 13px; padding: 7px 10px; }
  .top-user { margin-left: auto; }
  .top-user .tu-nombre, .top-user b { font-size: 13px; }

  /* ---- KANBAN como carrusel: una columna casi completa, snap ---- */
  .kanban, .kb-board {
    grid-auto-flow: column;
    grid-auto-columns: 86%;          /* cada columna ocupa casi toda la pantalla */
    gap: 10px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;    /* se detiene columna por columna */
    -webkit-overflow-scrolling: touch;
    padding-bottom: 12px;
  }
  .kcol, .kb-col {
    scroll-snap-align: center;
    min-width: 0;                     /* deja que grid-auto-columns mande */
    max-height: none;
  }
  /* Textos completos dentro de las tarjetas (ya no se cortan) */
  .kcol-head .ktit, .kb-colhead span { font-size: 13px; white-space: normal; }
  .kcol-body, .kb-colbody { max-height: 62vh; }

  /* Pista visual de que hay más columnas al lado */
  .kanban::after, .kb-board::after { content: ""; flex: 0 0 8px; }

  /* ---- Modales a pantalla completa ---- */
  .overlay > .modal, .overlay > .gm-card, .overlay .tl-card {
    max-width: 100vw !important;
    width: 100vw !important;
    max-height: 100dvh !important;
    height: auto;
    border-radius: 0 !important;
    margin: 0 !important;
  }
  .overlay { padding: 0 !important; align-items: stretch !important; }
  /* El modal de gestión en 2 columnas se apila */
  .gm-2col { grid-template-columns: 1fr !important; }
  .gm-col { padding: 12px 14px; }

  /* ---- Ranking del día: pantalla completa y ordenado en móvil ---- */
  .rk-overlay { padding: 0 !important; align-items: stretch !important; }
  .rk-modal {
    width: 100vw !important; max-width: 100vw !important;
    max-height: 100dvh !important; height: 100dvh;
    border-radius: 0 !important; margin: 0 !important;
    overflow-y: auto; -webkit-overflow-scrolling: touch;
    display: flex; flex-direction: column;
  }
  /* Hero: apilar título y botón actualizar */
  .rk-hero { flex-direction: column; align-items: flex-start; gap: 8px; padding: 16px 16px 12px; }
  .rk-hero-r { width: 100%; display: flex; align-items: center; justify-content: space-between; }
  .rk-hero h2 { font-size: 18px; }
  .rk-close { top: 10px; right: 12px; }
  /* Meta + podio + racha: apilar en una columna, no lado a lado */
  .rk-top3 { display: flex; flex-direction: column; gap: 10px; padding: 0 14px; }
  .rk-side, .rk-podio { width: 100%; }
  .rk-podio { flex-wrap: wrap; justify-content: center; gap: 8px; }
  /* Tabla de puntos: scroll horizontal para no cortar columnas */
  .rk-tabla { font-size: 12.5px; overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 4px 0; }
  .rk-tabla table { min-width: 460px; }
  .rk-foot { font-size: 11px; padding: 12px 14px; line-height: 1.5; }

  /* ---- Tablas anchas con scroll (reuniones, etc.) ---- */
  .tabla-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; width: 100%; }
  .tabla-scroll table { min-width: 640px; }

  /* ---- Tablas anchas: scroll horizontal en su contenedor ---- */
  .tabla-wrap, .tbl-scroll, .reuniones-tabla, .tabla-scroll {
    overflow-x: auto; -webkit-overflow-scrolling: touch;
  }
  table { font-size: 12.5px; }

  /* ---- Filtros y controles: apilar y ocupar ancho ---- */
  .filtros-row, .toolbar, .md-filtros { flex-wrap: wrap; gap: 8px; }
  .filtros-row > *, .md-filtros > * { flex: 1 1 auto; min-width: 130px; }

  /* ---- Botón flotante de llamar (Aircall): que no tape contenido ---- */
  .ac-fab { bottom: 80px; right: 14px; width: 50px; height: 50px; }
}

/* Indicador de estado del bot de WhatsApp (header) */
.wa-estado { display:inline-flex; align-items:center; gap:6px; background:#fff; border:1px solid var(--line); border-radius:16px; padding:5px 11px; font-size:11.5px; font-weight:600; cursor:pointer; margin-right:10px; color:var(--navy-2); }
.wa-estado:hover { background:#F4F8FD; }
.wa-dot { width:8px; height:8px; border-radius:50%; background:#B3BDC9; flex:none; }
.wa-estado.wa-ok .wa-dot { background:#16A34A; box-shadow:0 0 0 3px rgba(22,163,74,.15); }
.wa-estado.wa-warn .wa-dot { background:#F59E0B; box-shadow:0 0 0 3px rgba(245,158,11,.15); }
.wa-estado.wa-bad .wa-dot { background:#DC2626; box-shadow:0 0 0 3px rgba(220,38,38,.18); animation:waPulse 1.4s infinite; }
.wa-estado.wa-ok { color:#15803D; } .wa-estado.wa-warn { color:#B45309; } .wa-estado.wa-bad { color:#B91C1C; border-color:#F0B4B4; }
@keyframes waPulse { 0%,100%{opacity:1;} 50%{opacity:.45;} }

/* Embudo de conversión enriquecido (Comité B2C) */
.emb-resumen { background:#F4F8FD; border-radius:10px; padding:11px 13px; margin-bottom:14px; font-size:12.5px; color:#334155; }
.emb-resumen > div { margin:2px 0; }
.emb-diag { font-size:12px; }
.emb-fila { margin-bottom:15px; }
.emb-fila.emb-cuello { background:#FEF3F2; border-radius:10px; padding:9px 11px; margin-left:-11px; margin-right:-11px; }
.emb-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:4px; }
.emb-lbl { font-size:12.5px; font-weight:600; color:#1e293b; }
.emb-conv { font-size:11px; font-weight:700; padding:1px 8px; border-radius:10px; }
.emb-conv.ok { background:#DCFCE7; color:#166534; }
.emb-conv.med { background:#FEF9C3; color:#854D0E; }
.emb-conv.bad { background:#FEE2E2; color:#991B1B; }
.emb-row2 { display:flex; align-items:center; gap:12px; }
.emb-track { position:relative; background:#EEF2F7; border-radius:7px; height:26px; flex:1; min-width:0; }
.emb-fill { position:absolute; left:0; top:0; height:100%; background:linear-gradient(90deg,#2563EB,#3B82F6); border-radius:7px; min-width:4px; }
.emb-cuello .emb-fill { background:linear-gradient(90deg,#DC2626,#EF4444); }
/* El número va ARRIBA de la barra, alineado a la izquierda con padding, color oscuro con halo blanco
   para ser legible tanto sobre la barra de color como sobre el track gris cuando la barra es corta. */
.emb-n { position:absolute; left:8px; top:50%; transform:translateY(-50%); z-index:2; display:inline-flex; align-items:center; padding:2px 9px; background:rgba(255,255,255,.92); border-radius:6px; font-size:12px; font-weight:800; color:#0f172a; white-space:nowrap; box-shadow:0 1px 2px rgba(0,0,0,.12); }
.emb-n small { font-weight:600; color:#475569; margin-left:3px; }
.emb-side { display:flex; flex-direction:column; gap:3px; min-width:150px; font-size:11px; }
.emb-vivos { color:#166534; font-weight:600; cursor:pointer; }
.emb-vivos small { color:#15803D; font-weight:500; opacity:.85; }
.emb-vivos:hover { text-decoration:underline; }
.emb-fuga { color:#B91C1C; font-weight:600; cursor:pointer; }
.emb-fuga small { color:#DC2626; font-weight:500; opacity:.85; }
.emb-fuga:hover { text-decoration:underline; }
.emb-estanca { color:#DC2626; }
.emb-td-c { text-align:center; }
.rev-head-vivos { background:#16A34A; }
.rev-head-desest { background:#DC2626; }
.emb-cuello-tag { display:block; font-size:11px; font-weight:700; color:#B91C1C; margin-top:4px; }
.emb-revisar, .emb-riesgo { cursor:pointer; }
.emb-revisar { color:#92400E; } .emb-riesgo { color:#9A3412; }
.emb-revisar:hover, .emb-riesgo:hover { text-decoration:underline; }
.emb-rev-link { color:#B45309; font-weight:600; }
.emb-falta { color:#B91C1C; }
.rev-modal { position:fixed; inset:0; background:rgba(15,23,42,.5); z-index:1000; display:flex; align-items:center; justify-content:center; padding:20px; }
.rev-modal-box { background:#fff; border-radius:14px; max-width:680px; width:100%; max-height:82vh; overflow:hidden; display:flex; flex-direction:column; }
.rev-modal-head { background:#F59E0B; color:#fff; padding:14px 20px; font-size:15px; font-weight:700; }
.rev-head-riesgo { background:#EA580C; }
.rev-modal-head span { font-weight:400; font-size:12px; opacity:.95; }
.rev-modal-body { padding:16px 20px; overflow-y:auto; }
.rev-modal-body tr { cursor:pointer; }
.rev-modal-body tr:hover { background:#FEF9F3; }
.rev-modal-foot { padding:12px 20px; border-top:1px solid #eef1f5; text-align:right; }
.rev-modal-wide { max-width:920px; }
/* Encabezado de tabla dentro del modal: fondo claro, texto oscuro legible (antes se perdía en azul) */
.rev-modal-body .com-tabla thead th { background:#F1F5F9; color:#334155; font-weight:700; font-size:11px; text-transform:uppercase; letter-spacing:.02em; padding:8px 6px; position:sticky; top:0; }
.rev-modal-body .com-tabla { border-collapse:collapse; width:100%; }
.rev-modal-body .com-tabla td { padding:7px 6px; border-bottom:1px solid #F1F5F9; font-size:12.5px; vertical-align:top; }
.mot-anun-nom { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:150px; }

/* Fila de contactabilidad (transversal) en el embudo */
.emb-fila-cont { background:#F0F7FF; border:1px dashed #B5D3F0; border-radius:10px; padding:10px 12px; margin:6px 0 15px; }
.emb-lbl-cont { color:#1E5A9E; }
.emb-lbl-cont small { font-weight:400; color:#7BA5CF; font-size:11px; }
.emb-track-cont { background:#DEEBF8; }
.emb-fill-cont { background:linear-gradient(90deg,#0EA5E9,#38BDF8) !important; }
.emb-cont-actions { display:flex; gap:8px; margin-top:9px; flex-wrap:wrap; }
.emb-csv-btn { font-size:11px; font-weight:600; padding:5px 11px; border:1px solid #B5D3F0; background:#fff; color:#1E5A9E; border-radius:7px; cursor:pointer; }
.emb-csv-btn:hover { background:#E8F3FF; }
/* Modal de contactabilidad: anuncios con preview */
.cont-sec-tit { font-size:12px; font-weight:700; color:#334155; margin:14px 0 8px; text-transform:uppercase; letter-spacing:.02em; }
.cont-sec-tit:first-child { margin-top:0; }
.cont-anuncios { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:10px; margin-bottom:6px; }
.cont-anuncio { display:flex; gap:9px; align-items:center; border:1px solid #E7EDF4; border-radius:10px; padding:8px; background:#fff; }
.cont-anun-thumb { width:46px; height:46px; flex:none; border-radius:8px; overflow:hidden; background:#F1F5F9; display:flex; align-items:center; justify-content:center; font-size:18px; }
.cont-anun-thumb img { width:100%; height:100%; object-fit:cover; }
.cont-anun-info { min-width:0; }
.cont-anun-nom { font-size:11.5px; font-weight:600; color:#1e293b; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cont-anun-meta { font-size:11px; color:#64748b; margin-top:2px; }
.cont-csv-row { margin-top:14px; text-align:right; }

/* Botón y modal de análisis de motivos de desestimación */
.emb-motivos-btn { margin-top:10px; }
.emb-diag-btn { font-size:12px; font-weight:600; padding:8px 14px; border:1px solid #C7B5E8; background:#F5F0FC; color:#6D28D9; border-radius:8px; cursor:pointer; width:100%; text-align:left; }
.emb-diag-btn:hover { background:#EDE4FA; }
.rev-head-motivos { background:#7C3AED; }
.mot-veredicto { background:#F8FAFC; border-left:4px solid #7C3AED; border-radius:6px; padding:12px 14px; font-size:13px; font-weight:600; color:#334155; margin-bottom:14px; }
.mot-barra { display:flex; height:28px; border-radius:8px; overflow:hidden; background:#EEF2F7; }
.mot-seg { display:flex; align-items:center; justify-content:center; color:#fff; font-size:11px; font-weight:700; min-width:2px; }
.mot-cal { background:#EA580C; } .mot-com { background:#2563EB; } .mot-otr { background:#94A3B8; }
.mot-leyenda { display:flex; gap:16px; margin-top:8px; font-size:11.5px; color:#475569; }
.mot-dot { display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:5px; vertical-align:middle; }
.mot-tag { font-size:10px; font-weight:700; padding:1px 7px; border-radius:9px; margin-left:6px; }
.mot-cal-tag { background:#FEE2CE; color:#9A3412; }
.mot-com-tag { background:#DBEAFE; color:#1E40AF; }
.mot-otr-tag { background:#F1F5F9; color:#64748B; }
.mot-anuncios-cell { max-width:280px; }
.mot-anuncios-cell { display:flex; flex-direction:column; gap:3px; align-items:flex-start; padding:8px 6px; }
.mot-anun { display:inline-flex; align-items:center; gap:5px; font-size:10.5px; background:#F8FAFC; border:1px solid #E7EDF4; border-radius:6px; padding:3px 7px; margin:0; max-width:100%; }
.mot-anun img { width:20px; height:20px; border-radius:4px; object-fit:cover; flex:none; }
.mot-anun b { margin-left:auto; padding-left:6px; }

/* Nota de criterio y tag mixto en el modal de motivos */
.mot-criterio { background:#FFFBEB; border:1px solid #FDE68A; border-radius:8px; padding:10px 12px; font-size:11.5px; color:#78350F; line-height:1.5; margin-top:12px; }
.mot-cal-txt { color:#9A3412; font-weight:700; }
.mot-com-txt { color:#1E40AF; font-weight:700; }
.mot-mix-tag { background:linear-gradient(90deg,#FEE2CE 55%,#DBEAFE 55%); color:#334155; white-space:nowrap; }

/* Botones de la barra del comité alineados a la derecha */
.com-botones { display:flex; gap:8px; margin-left:auto; }

/* Encabezados de sección en el desglose de motivos (separado por tipo) */
.mot-sec-head td { font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.02em; padding:9px 8px !important; }
.mot-sec-cal td { background:#FFF3EB; color:#9A3412; border-top:2px solid #FDBA74; }
.mot-sec-com td { background:#EFF5FF; color:#1E40AF; border-top:2px solid #93C5FD; }
.mot-sec-otr td { background:#F8FAFC; color:#64748B; border-top:2px solid #E2E8F0; }

/* Radar de anuncios (cuadrante volumen × desperdicio) */
.rev-head-rend { background:#0F766E; }
.rend-chart-box { position:relative; height:360px; background:#fff; border:1px solid #E7EDF4; border-radius:10px; padding:8px; }
.rend-leyenda { display:flex; gap:14px; flex-wrap:wrap; margin-top:8px; font-size:11px; color:#475569; }
.rend-leyenda i { display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:5px; vertical-align:middle; }
.rend-nom-cell { display:flex; align-items:center; gap:7px; max-width:190px; }
.rend-thumb { width:30px; height:30px; border-radius:7px; object-fit:cover; flex:none; }
.rend-thumb-ph { display:inline-flex; align-items:center; justify-content:center; background:#F1F5F9; font-size:14px; }
.rend-compo { display:flex; height:12px; border-radius:5px; overflow:hidden; background:#F1F5F9; min-width:110px; }
.rend-compo i { display:block; height:100%; }
.rend-compo-lbl { display:block; font-size:9.5px; color:#94A3B8; margin-top:3px; white-space:nowrap; }
.rend-rec { font-size:10.5px; font-weight:700; padding:3px 9px; border-radius:9px; white-space:nowrap; }
.rec-esc { background:#DCFCE7; color:#166534; }
.rec-aj { background:#FEE2E2; color:#991B1B; }
.rec-pot { background:#DBEAFE; color:#1E40AF; }
.rec-pau { background:#F1F5F9; color:#64748B; }

/* Controles del radar de anuncios (ejes y cortes) */
.rend-controles { display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-bottom:12px; background:#F8FAFC; border:1px solid #E7EDF4; border-radius:9px; padding:9px 12px; }
.rend-controles label { display:flex; align-items:center; gap:6px; font-size:11.5px; font-weight:600; color:#475569; }
.rend-controles select, .rend-controles input { font-size:12px; padding:4px 7px; border:1px solid var(--line); border-radius:6px; }
.rend-controles input { width:75px; }
.rend-excl { color:#B45309; font-weight:600; }

/* Botón de actualización desde Meta en el radar */
.rend-meta-btn { font-size:11.5px; padding:5px 11px; margin-left:auto; }

/* Timeline B2B con visual tz (v1.397): ajuste del contenedor dentro del modal tl */
.tz-list-b2b { padding: 4px 10px 8px; }
.tz-list-b2b .tz-ev-card { margin-bottom: 4px; }

/* ===== Cola priorizada B2C (Centro de operaciones) ===== */
.cola-wrap { padding: 4px 0; }
.cola-loading { padding: 40px; text-align: center; color: #64748b; }
.cola-head { display: flex; align-items: baseline; gap: 10px; margin-bottom: 10px; }
.cola-head-t { font-size: 15px; font-weight: 800; color: #1e293b; }
.cola-head-n { font-size: 12px; color: #94a3b8; }
.cola-resumen { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 12px; }
.cola-res-pill { font-size: 11.5px; font-weight: 700; padding: 4px 11px; border-radius: 20px; }
.cola-res-pill.nv-critica { background: #FEE2E2; color: #991B1B; }
.cola-res-pill.nv-alta { background: #FFEDD5; color: #9A3412; }
.cola-res-pill.nv-media { background: #FEF9C3; color: #854D0E; }
.cola-res-pill.nv-baja { background: #F1F5F9; color: #64748B; }
.cola-pesos-btn { margin-left: auto; font-size: 12px; padding: 5px 12px; }
.cola-fila { display: flex; align-items: center; gap: 12px; padding: 11px 14px; border: 1px solid #E7EDF4; border-radius: 11px; margin-bottom: 7px; cursor: pointer; background: #fff; transition: box-shadow .12s; }
.cola-fila:hover { box-shadow: 0 2px 10px rgba(20,40,80,.09); }
.cola-num { font-size: 12px; font-weight: 700; color: #94a3b8; width: 22px; text-align: center; flex: none; }
.cola-score { font-size: 15px; font-weight: 800; width: 42px; height: 42px; border-radius: 11px; display: flex; align-items: center; justify-content: center; flex: none; }
.cola-score.nv-critica { background: #FEE2E2; color: #B91C1C; }
.cola-score.nv-alta { background: #FFEDD5; color: #C2410C; }
.cola-score.nv-media { background: #FEF9C3; color: #A16207; }
.cola-score.nv-baja { background: #F1F5F9; color: #64748B; }
.cola-main { flex: 1; min-width: 0; }
.cola-nom { font-size: 13.5px; font-weight: 700; color: #1e293b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cola-meta { display: flex; gap: 9px; flex-wrap: wrap; align-items: center; margin-top: 3px; font-size: 11px; }
.cola-etapa { background: #EEF2F7; color: #475569; padding: 1px 8px; border-radius: 8px; font-weight: 600; }
.cola-prox { color: #475569; }
.cola-venc { color: #B91C1C; font-weight: 700; }
.cola-estanc { color: #C2410C; font-weight: 600; }
.cola-right { text-align: right; flex: none; }
.cola-monto { font-size: 13px; font-weight: 800; color: #0F2E5A; }
.cola-sub { font-size: 10.5px; color: #94a3b8; margin-top: 2px; }
.cola-acciones { flex: none; }
.cola-ll { width: 34px; height: 34px; border-radius: 9px; border: 1px solid #C7D9EE; background: #F0F7FF; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.cola-ll:hover { background: #E0EEFC; }
.cola-ll svg { width: 16px; height: 16px; }
/* Panel de pesos */
.pw-nota { font-size: 12px; color: #64748b; margin: 0 0 14px; line-height: 1.5; }
.pw-row { display: flex; align-items: center; gap: 12px; margin-bottom: 11px; }
.pw-row label { font-size: 12.5px; font-weight: 600; color: #334155; width: 200px; flex: none; }
.pw-row input[type=range] { flex: 1; }
.pw-val { font-size: 13px; font-weight: 800; color: #2563EB; width: 30px; text-align: right; }
.pw-foot { margin-top: 16px; display: flex; gap: 8px; }

/* ===== MODO NOCHE B2C completo (v1.399): kanban, miDia, filtros, cola, modales ===== */
/* Bloque "Mi día" del GP (las tarjetas superiores) */
body.night .md-card, body.night .md-card2 { background:#1A2534 !important; border-color:#2A3849 !important; }
body.night .md-num, body.night .md-v { color:#EAF1FA !important; }
body.night .md-et, body.night .md-sub, body.night .md-txt { color:#9DB0C6 !important; }
body.night .md-card.md-rojo { background:#2A1A1E !important; border-color:#5B2B2B !important; }
body.night .md-card.md-rojo .md-num { color:#F49B93 !important; }
body.night .md-card.md-azul { background:#16243B !important; border-color:#2E3A56 !important; }
body.night .md-card.md-azul .md-num { color:#7FB0FF !important; }
body.night .reparto, body.night .reu-bloque, body.night .tira-rank { background:#1A2534 !important; border-color:#2A3849 !important; color:#D8E0EC !important; }
/* Kanban B2C (kcol / kcard) */
body.night .kcol { background:#151E2B !important; border-color:#2A3849 !important; }
body.night .kcol-head { background:#22303F !important; }
body.night .kcol-metricas { border-color:#2A3849 !important; }
body.night .kcol-metricas .km-v { color:#EAF1FA !important; }
body.night .kcol-body.drop { background:#16243B !important; outline-color:#3B5BDB !important; }
body.night .kcard { background:#1A2534 !important; border-color:#2A3849 !important; color:#D8E0EC !important; }
body.night .kcard b, body.night .knombre, body.night .kmonto { color:#EAF1FA !important; }
body.night .kchip, body.night .kestado, body.night .kestado-sc { background:#22303F !important; color:#9DB0C6 !important; border-color:#33465C !important; }
body.night .kbtns .kbtn, body.night .kacc { background:#22303F !important; color:#CFE0F5 !important; border-color:#33465C !important; }
body.night .kvacio { color:#5F718A !important; }
/* Barra de filtros y toggles de la vista leads */
body.night .fechas, body.night .leads-buscar, body.night .filtros-row > select, body.night .vista-toggle { background:#1A2534 !important; border-color:#2A3849 !important; }
body.night .vista-toggle button { background:transparent !important; color:#9DB0C6 !important; }
body.night .vista-toggle button.act { background:#22303F !important; color:#EAF1FA !important; }
body.night .fechas-x, body.night .cal-ico, body.night .leads-buscar-ic { color:#9DB0C6 !important; }
/* Cola priorizada B2C */
body.night .cola-fila { background:#1A2534 !important; border-color:#2A3849 !important; }
body.night .cola-nom { color:#EAF1FA !important; }
body.night .cola-etapa { background:#22303F !important; color:#9DB0C6 !important; }
body.night .cola-prox { color:#9DB0C6 !important; }
body.night .cola-ll { background:#16243B !important; border-color:#2E3A56 !important; }
body.night .cola-res-pill.nv-baja { background:#22303F !important; color:#9DB0C6 !important; }
/* Modales rev (embudo, motivos, radar, contactabilidad, pesos) */
body.night .rev-modal-box { background:#151E2B !important; color:#D8E0EC !important; }
body.night .rev-modal-body .com-tabla thead th { background:#22303F !important; color:#CFE0F5 !important; }
body.night .rev-modal-body .com-tabla td { border-color:#2A3849 !important; }
body.night .rev-modal-body tr:hover { background:#1E2A3B !important; }
body.night .rev-modal-foot { border-color:#2A3849 !important; }
body.night .mot-veredicto { background:#1A2534 !important; color:#D8E0EC !important; }
body.night .mot-criterio { background:#241F14 !important; border-color:#5B472B !important; color:#E5C88F !important; }
body.night .cont-anuncio, body.night .rend-chart-box, body.night .rend-controles { background:#1A2534 !important; border-color:#2A3849 !important; }
body.night .cont-anun-nom, body.night .cont-sec-tit { color:#CFE0F5 !important; }
body.night .mot-anun { background:#22303F !important; border-color:#33465C !important; color:#D8E0EC !important; }
body.night .emb-fila-cont { background:#16243B !important; border-color:#2E3A56 !important; }
body.night .emb-track, body.night .emb-track-cont { background:#22303F !important; }
body.night .emb-n { background:rgba(26,37,52,.94) !important; color:#EAF1FA !important; }
body.night .emb-n small { color:#9DB0C6 !important; }
body.night .emb-lbl { color:#CFE0F5 !important; }
body.night .emb-csv-btn { background:#16243B !important; border-color:#2E3A56 !important; color:#9FC0FF !important; }
body.night .emb-fila.emb-cuello { background:#2A1A1E !important; }
/* Paginación y tablas de la vista leads */
body.night .pag-btn, body.night .paginador button { background:#1A2534 !important; color:#D8E0EC !important; border-color:#2A3849 !important; }
body.night th { background:#1A2534 !important; color:#9DB0C6 !important; }
body.night tr:hover td { background:#1E2A3B !important; }
/* Comité: scorecards con ícono */
body.night .com-card { background:#1A2534 !important; border-color:#2A3849 !important; }
body.night .com-card-ico { background:#22303F !important; }

/* Pulso del día: panel de metas y preview */
.pm-tabla input.pm-in { width: 64px; font-size: 12.5px; padding: 4px 6px; border: 1px solid var(--line); border-radius: 6px; text-align: center; }
.pm-nom { font-weight: 700; font-size: 12.5px; }
.pm-b2b { margin-top: 12px; font-size: 12.5px; font-weight: 600; color: #334155; display: flex; align-items: center; gap: 8px; }
.pm-prevs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.pm-enviar { margin-left: auto; }
.pm-preview { background: #0B1220; color: #D7E4F7; border-radius: 10px; padding: 14px; font-size: 11.5px; line-height: 1.55; white-space: pre-wrap; max-height: 380px; overflow: auto; font-family: ui-monospace, Menlo, Consolas, monospace; }
body.night .pm-preview { background: #0B1220 !important; }
body.night .pm-b2b label { color: #9DB0C6 !important; }

/* Línea de correo en la tarjeta kanban B2C (con copiar) */
.kmail { display:flex; align-items:center; gap:6px; font-size:11px; color:#5B7290; margin:2px 0 3px; cursor:pointer; max-width:100%; border-radius:6px; padding:1px 4px; transition:background .12s; }
.kmail:hover { background:#F0F6FD; color:#2563EB; }
.kmail-txt { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.kmail-copy { flex:none; font-size:12px; opacity:.65; }
.kmail:hover .kmail-copy { opacity:1; }
.kmail.kmail-ok { background:#DCFCE7; color:#166534; }
body.night .kmail { color:#9DB0C6 !important; }
body.night .kmail:hover { background:#16243B !important; color:#7FB0FF !important; }
body.night .kmail.kmail-ok { background:#143223 !important; color:#7CD9A5 !important; }

/* Panel de bienvenida automática */
.bv-toggles { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.bv-sw { display: flex; align-items: center; gap: 8px; font-size: 13px; cursor: pointer; }
.bv-horario { font-size: 12.5px; color: #475569; margin-bottom: 6px; }
.bv-horario input { width: 52px; padding: 3px 6px; border: 1px solid var(--line); border-radius: 6px; text-align: center; }
.bv-ta { width: 100%; box-sizing: border-box; border: 1px solid var(--line); border-radius: 8px; padding: 10px; font-size: 12.5px; font-family: inherit; resize: vertical; line-height: 1.5; }
body.night .bv-ta { background: #1A2534 !important; border-color: #2A3849 !important; color: #EAF1FA !important; }
body.night .bv-horario, body.night .bv-sw { color: #9DB0C6 !important; }
body.night .bv-horario input { background: #1A2534 !important; border-color: #2A3849 !important; color: #EAF1FA !important; }

/* Bienvenida v1.406: interfaz clara */
.bv-alerta { background:#FEF2F2; border:1px solid #FCA5A5; color:#991B1B; border-radius:9px; padding:10px 13px; font-size:12.5px; margin-bottom:12px; }
.bv-banner { border-radius:10px; padding:12px 15px; font-size:13.5px; margin-bottom:14px; }
.bv-b-off { background:#F1F5F9; color:#475569; border:1px solid #CBD5E1; }
.bv-b-prueba { background:#FEF9C3; color:#854D0E; border:1px solid #FDE047; }
.bv-b-on { background:#DCFCE7; color:#166534; border:1px solid #86EFAC; }
.bv-sec-tit { font-size:12px; font-weight:800; color:#334155; text-transform:uppercase; letter-spacing:.4px; margin:14px 0 8px; }
.bv-sec-tit small { font-weight:600; text-transform:none; color:#94A3B8; letter-spacing:0; }
.bv-modos { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.bv-modo { border:2px solid #E2E8F0; border-radius:12px; padding:14px 12px; text-align:center; cursor:pointer; transition:all .13s; background:#fff; }
.bv-modo:hover { border-color:#A5B4FC; }
.bv-modo b { display:block; font-size:13px; color:#1E293B; margin:4px 0 3px; }
.bv-modo small { font-size:10.5px; color:#94A3B8; line-height:1.35; display:block; }
.bv-modo-ico { font-size:20px; }
.bv-modo-act { border-color:#7C3AED; background:#F5F3FF; box-shadow:0 2px 8px rgba(124,58,237,.15); }
.bv-modo-act b { color:#6D28D9; }
.bv-acciones { display:flex; gap:10px; margin-top:14px; flex-wrap:wrap; }
.bv-probando { font-size:12.5px; color:#64748B; padding:8px 2px; }
.bv-probar-res { background:#F8FAFC; border:1px solid #E2E8F0; border-radius:9px; padding:10px 13px; font-size:12.5px; margin-top:10px; }
body.night .bv-modo { background:#1A2534 !important; border-color:#2A3849 !important; }
body.night .bv-modo b { color:#EAF1FA !important; }
body.night .bv-modo-act { border-color:#8B5CF6 !important; background:#241B3A !important; }
body.night .bv-sec-tit { color:#9DB0C6 !important; }
body.night .bv-probar-res { background:#1A2534 !important; border-color:#2A3849 !important; color:#D8E0EC !important; }
body.night .bv-b-off { background:#22303F !important; color:#9DB0C6 !important; border-color:#33465C !important; }

/* Aviso de bandeja en caché (Chatwoot inestable) */
.chat-cache-aviso { background:#FEF9C3; border:1px solid #FDE047; color:#854D0E; border-radius:8px; padding:7px 11px; font-size:11.5px; margin-bottom:8px; }
body.night .chat-cache-aviso { background:#2A2410 !important; border-color:#5B4B1A !important; color:#E5C88F !important; }

/* ============================================================
   CHAT REDESIGN v1.411 — WhatsApp Web × Intercom × Tasatop
   Colores: Tasatop #0B72E8 · WhatsApp #25D366 · fondo #F5F6F8
   texto #202C33 · bordes #DDE3EA
   ============================================================ */
#v-chat .chat-wrap { display:grid; grid-template-columns: 320px 1fr 300px; gap:0; height: calc(100vh - 128px);
  background:#F5F6F8; border:1px solid #DDE3EA; border-radius:14px; overflow:hidden; box-shadow:0 4px 24px rgba(11,40,80,.06); }

/* ---------- Columna 1: lista de conversaciones ---------- */
#v-chat .chat-lista-wrap { background:#fff; border-right:1px solid #DDE3EA; display:flex; flex-direction:column; min-width:0; }
#v-chat .chat-buscador { padding:10px 12px 6px; }
#v-chat .chat-buscador input { width:100%; box-sizing:border-box; border:1px solid #DDE3EA; background:#F5F6F8; border-radius:20px;
  padding:8px 14px; font-size:12.5px; color:#202C33; outline:none; transition:box-shadow .15s, background .15s; }
#v-chat .chat-buscador input:focus { background:#fff; box-shadow:0 0 0 2px #0B72E833; }
#v-chat .chat-filtros { display:flex; gap:6px; padding:6px 12px 10px; }
#v-chat .chat-fil { font-size:11px; font-weight:700; color:#5B7290; background:#F5F6F8; border:1px solid #DDE3EA;
  border-radius:14px; padding:3px 12px; cursor:pointer; transition:all .13s; }
#v-chat .chat-fil:hover { border-color:#0B72E8; color:#0B72E8; }
#v-chat .chat-fil-act { background:#0B72E8; color:#fff; border-color:#0B72E8; }
#v-chat .chat-lista { overflow-y:auto; flex:1; padding:2px 8px 10px; }
#v-chat .chat-it { display:flex; gap:10px; padding:10px; border-radius:12px; cursor:pointer; margin-bottom:2px;
  border:1px solid transparent; transition: background .13s, transform .13s, box-shadow .13s; }
#v-chat .chat-it:hover { background:#F0F6FD; transform:translateY(-1px); box-shadow:0 2px 8px rgba(11,114,232,.08); }
#v-chat .chat-it-act { background:#EAF3FE; border-color:#BFDBFE; }
#v-chat .chat-ava { width:44px; height:44px; border-radius:50%; color:#fff; font-weight:800; font-size:14px;
  display:flex; align-items:center; justify-content:center; flex:none; box-shadow:0 2px 6px rgba(0,0,0,.12); }
#v-chat .chat-it-txt { min-width:0; flex:1; }
#v-chat .chat-it-top { display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
#v-chat .chat-it-nom { font-weight:700; font-size:13px; color:#202C33; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#v-chat .chat-it-hora { font-size:10.5px; color:#8AA0B8; flex:none; }
#v-chat .chat-hora-verde { color:#25D366; font-weight:800; }
#v-chat .chat-it-emp { font-size:11px; color:#5B7290; margin-top:1px; }
#v-chat .chat-it-bot { display:flex; align-items:center; gap:8px; margin-top:2px; }
#v-chat .chat-it-last { font-size:11.5px; color:#667B93; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; flex:1; }
#v-chat .chat-badge { background:#25D366; color:#fff; font-size:10px; font-weight:800; border-radius:12px; min-width:18px;
  height:18px; display:inline-flex; align-items:center; justify-content:center; padding:0 5px; flex:none; }
#v-chat .chat-it-chips { display:flex; gap:5px; flex-wrap:wrap; margin-top:4px; align-items:center; }
#v-chat .chat-prio { font-size:9.5px; font-weight:800; border-radius:8px; padding:1px 7px; text-transform:uppercase; letter-spacing:.3px; }
#v-chat .chat-prio-muyalta { background:#FEE2E2; color:#B91C1C; }
#v-chat .chat-prio-alta { background:#FFEDD5; color:#C2410C; }
#v-chat .chat-prio-media { background:#FEF9C3; color:#854D0E; }
#v-chat .chat-prio-baja { background:#E0F2FE; color:#0369A1; }
#v-chat .chat-sinresp { font-size:9.5px; color:#B91C1C; font-weight:700; }

/* ---------- Columna 2: conversación ---------- */
#v-chat .chat-panel { display:flex; flex-direction:column; min-width:0; background:#EFE9E2; position:relative; }
#v-chat .chat-conv { display:flex; flex-direction:column; height:100%; min-height:0; }
#v-chat .chat-vacio { display:flex; align-items:center; justify-content:center; height:100%; color:#8AA0B8; font-size:14px; }
#v-chat .chat-cab { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:10px 16px;
  background:#fff; border-bottom:1px solid #DDE3EA; z-index:2; }
#v-chat .chat-cab-l { display:flex; gap:10px; align-items:center; min-width:0; }
#v-chat .chat-cab-ava { width:40px; height:40px; border-radius:50%; color:#fff; font-weight:800; font-size:13px;
  display:flex; align-items:center; justify-content:center; flex:none; }
#v-chat .chat-cab-nom { font-weight:800; font-size:14px; color:#202C33; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
#v-chat .chat-cab-sub { font-size:11.5px; color:#5B7290; margin-top:1px; }
#v-chat .cab-chip-score { background:#123A6315; color:#123A63; font-size:10.5px; font-weight:800; border-radius:10px; padding:2px 8px; }
#v-chat .chat-cab-r { display:flex; gap:4px; align-items:center; }
#v-chat .cab-ic { width:36px; height:36px; border-radius:50%; border:none; background:transparent; font-size:16px; cursor:pointer;
  display:flex; align-items:center; justify-content:center; transition:background .13s, transform .13s; }
#v-chat .cab-ic:hover { background:#F0F6FD; transform:scale(1.08); }
#v-chat .cab-off { opacity:.4; cursor:default; }
#v-chat .cab-off:hover { background:transparent; transform:none; }
#v-chat .cab-menu-wrap { position:relative; }
#v-chat .cab-menu { position:absolute; right:0; top:42px; background:#fff; border:1px solid #DDE3EA; border-radius:12px;
  box-shadow:0 8px 28px rgba(11,40,80,.15); min-width:200px; z-index:30; overflow:hidden; }
#v-chat .cab-menu-it { padding:10px 14px; font-size:12.5px; color:#202C33; cursor:pointer; transition:background .12s; }
#v-chat .cab-menu-it:hover { background:#F0F6FD; }
#v-chat .cab-busca-bar { display:flex; gap:8px; align-items:center; padding:8px 16px; background:#fff; border-bottom:1px solid #DDE3EA; }
#v-chat .cab-busca-bar input { flex:1; border:1px solid #DDE3EA; background:#F5F6F8; border-radius:18px; padding:7px 14px;
  font-size:12.5px; outline:none; }
#v-chat mark { background:#FDE047; border-radius:3px; padding:0 1px; }

/* Hilo con patrón sutil tipo WhatsApp */
#v-chat .chat-hilo { flex:1; overflow-y:auto; padding:18px 8% 14px; background-color:#EFE9E2;
  background-image: radial-gradient(#D8CFC2 0.8px, transparent 0.8px), radial-gradient(#E4DCD0 0.8px, transparent 0.8px);
  background-size: 28px 28px; background-position: 0 0, 14px 14px; }
#v-chat .chat-dia { text-align:center; margin:14px 0 10px; }
#v-chat .chat-dia span { background:#fff; color:#5B7290; font-size:10.5px; font-weight:700; border-radius:10px;
  padding:4px 12px; box-shadow:0 1px 2px rgba(0,0,0,.08); }
#v-chat .chat-msg { display:flex; margin-bottom:6px; animation:chatFadeIn .22s ease-out; }
@keyframes chatFadeIn { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
#v-chat .chat-in { justify-content:flex-start; }
#v-chat .chat-out { justify-content:flex-end; }
#v-chat .chat-burb { max-width:68%; padding:8px 12px 6px; border-radius:12px; font-size:13px; color:#202C33; line-height:1.45;
  box-shadow:0 1px 2px rgba(0,0,0,.09); position:relative; word-wrap:break-word; }
#v-chat .chat-in .chat-burb { background:#fff; border-top-left-radius:4px; }
#v-chat .chat-out .chat-burb { background:#D9FDD3; border-top-right-radius:4px; }
#v-chat .chat-meta { display:inline-block; font-size:9.5px; color:#8AA0B8; margin-left:8px; float:right; margin-top:6px; }
#v-chat .chat-ck { color:#53BDEB; font-size:10px; }

/* Plantillas restyled */
#v-chat .chat-plantillas { display:flex; gap:6px; padding:8px 14px 2px; flex-wrap:wrap; background:transparent; }
#v-chat .chat-plantillas .chat-plt, #v-chat .chat-plantillas span, #v-chat .chat-plantillas button { background:#fff; border:1px solid #DDE3EA;
  color:#0B72E8; font-size:11px; font-weight:700; border-radius:14px; padding:4px 12px; cursor:pointer; transition:all .13s; }
#v-chat .chat-plantillas .chat-plt:hover, #v-chat .chat-plantillas span:hover, #v-chat .chat-plantillas button:hover { background:#0B72E8; color:#fff; }

/* Input estilo WhatsApp */
#v-chat .chat-input-bar { display:flex; align-items:center; gap:6px; padding:10px 14px; background:#F5F6F8;
  border-top:1px solid #DDE3EA; position:relative; }
#v-chat .ci-btn { width:38px; height:38px; border-radius:50%; border:none; background:transparent; font-size:19px; cursor:pointer;
  display:flex; align-items:center; justify-content:center; transition:background .13s, transform .13s; flex:none; }
#v-chat .ci-btn:hover { background:#E7EDF3; transform:scale(1.08); }
#v-chat .ci-off { opacity:.4; cursor:default; }
#v-chat .ci-off:hover { background:transparent; transform:none; }
#v-chat .chat-input-pill { flex:1; background:#fff; border:1px solid #DDE3EA; border-radius:22px; padding:2px 6px; min-width:0; }
#v-chat .chat-input-pill input { width:100%; box-sizing:border-box; border:none; outline:none; background:transparent;
  padding:9px 12px; font-size:13.5px; color:#202C33; }
#v-chat .ci-send { width:42px; height:42px; border-radius:50%; border:none; background:#C6CFD9; color:#fff; font-size:17px;
  cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all .16s; flex:none; }
#v-chat .ci-send-on { background:#25D366; box-shadow:0 3px 10px rgba(37,211,102,.35); }
#v-chat .ci-send-on:hover { transform:scale(1.07); background:#1FBF5B; }
#v-chat .chat-emoji-pop { position:absolute; bottom:58px; left:12px; background:#fff; border:1px solid #DDE3EA; border-radius:14px;
  box-shadow:0 10px 32px rgba(11,40,80,.18); padding:10px; display:grid; grid-template-columns:repeat(8,1fr); gap:4px; z-index:40; }
#v-chat .emj { font-size:19px; padding:5px; border-radius:8px; cursor:pointer; text-align:center; transition:background .1s, transform .1s; }
#v-chat .emj:hover { background:#F0F6FD; transform:scale(1.18); }

/* Skeleton loaders */
#v-chat .chat-skel { padding:20px 8%; display:flex; flex-direction:column; gap:12px; }
#v-chat .sk-b { height:38px; border-radius:12px; background:linear-gradient(90deg,#E3DCD2 25%,#EFE9E2 50%,#E3DCD2 75%);
  background-size:200% 100%; animation:skShine 1.2s infinite; width:55%; }
#v-chat .sk-in { align-self:flex-start; } #v-chat .sk-out { align-self:flex-end; background:linear-gradient(90deg,#CDE8C9 25%,#DDF2DA 50%,#CDE8C9 75%); background-size:200% 100%; }
#v-chat .sk-w60 { width:60%; } #v-chat .sk-w40 { width:40%; }
@keyframes skShine { 0% { background-position:200% 0; } 100% { background-position:-200% 0; } }
#v-chat .f-skel { padding:18px 14px; display:flex; flex-direction:column; gap:10px; }
#v-chat .sk-line { height:14px; border-radius:7px; background:linear-gradient(90deg,#EEF2F6 25%,#F8FAFC 50%,#EEF2F6 75%);
  background-size:200% 100%; animation:skShine 1.2s infinite; }
#v-chat .sk-w80 { width:80%; }

/* ---------- Columna 3: panel CRM ---------- */
#v-chat .chat-ficha { background:#fff; border-left:1px solid #DDE3EA; overflow-y:auto; padding:16px 14px; }
#v-chat .ficha-vacia { text-align:center; color:#8AA0B8; font-size:12.5px; padding:40px 14px; line-height:1.6; }
#v-chat .fv-ico { font-size:34px; margin-bottom:6px; }
#v-chat .f-head { display:flex; gap:10px; align-items:center; margin-bottom:10px; }
#v-chat .f-nom { font-weight:800; font-size:14px; color:#202C33; }
#v-chat .f-emp { font-size:11.5px; color:#5B7290; }
#v-chat .f-contact { font-size:12px; color:#41566E; display:flex; flex-direction:column; gap:3px; margin-bottom:10px; }
#v-chat .f-etiquetas { display:flex; gap:5px; flex-wrap:wrap; margin-bottom:12px; }
#v-chat .f-et { font-size:10px; font-weight:700; color:#41566E; background:#F5F6F8; border:1px solid #DDE3EA; border-radius:10px; padding:2px 9px; }
#v-chat .f-resumen { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin-bottom:14px; }
#v-chat .f-kpi { background:#F8FAFC; border:1px solid #EEF2F6; border-radius:10px; padding:7px 8px; }
#v-chat .f-kpi-l { font-size:9px; font-weight:800; color:#8AA0B8; text-transform:uppercase; letter-spacing:.3px; }
#v-chat .f-kpi-v { font-size:12px; font-weight:800; color:#202C33; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#v-chat .f-titulo { font-size:10.5px; font-weight:800; color:#8AA0B8; text-transform:uppercase; letter-spacing:.5px; margin:14px 0 8px; }
#v-chat .f-bar { margin-bottom:8px; }
#v-chat .f-bar-top { display:flex; justify-content:space-between; font-size:10.5px; color:#41566E; font-weight:700; margin-bottom:3px; }
#v-chat .f-bar-track { height:7px; background:#EEF2F6; border-radius:5px; overflow:hidden; }
#v-chat .f-bar-fill { height:100%; border-radius:5px; transition:width .5s ease; }
#v-chat .f-kpis { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
#v-chat .f-prox { display:flex; gap:9px; background:#FFF8ED; border:1px solid #FDE4BC; border-radius:11px; padding:10px; font-size:12px; color:#7A4E12; }
#v-chat .f-prox-ico { font-size:16px; }
#v-chat .f-timeline { position:relative; }
#v-chat .f-tl-it { position:relative; padding-left:20px; padding-bottom:14px; }
#v-chat .f-tl-dot { position:absolute; left:0; top:3px; width:10px; height:10px; border-radius:50%; box-shadow:0 0 0 3px #fff, 0 0 0 4px #EEF2F6; }
#v-chat .f-tl-rail { position:absolute; left:4.5px; top:15px; bottom:0; width:1.5px; background:#EEF2F6; }
#v-chat .f-tl-txt b { font-size:11.5px; color:#202C33; }
#v-chat .f-tl-sub { font-size:10.5px; color:#667B93; margin-top:1px; }
#v-chat .f-tl-fecha { font-size:9.5px; color:#8AA0B8; margin-top:1px; }
#v-chat .f-tl-vacio { font-size:11.5px; color:#8AA0B8; padding:6px 0; }
#v-chat .f-acciones { margin-top:14px; }
#v-chat .f-acciones .btn { width:100%; }

/* Chat redesign · modo noche */
body.night #v-chat .chat-wrap { background:#0F1620 !important; border-color:#2A3849 !important; }
body.night #v-chat .chat-lista-wrap, body.night #v-chat .chat-cab, body.night #v-chat .cab-busca-bar { background:#151E2B !important; border-color:#2A3849 !important; }
body.night #v-chat .chat-buscador input, body.night #v-chat .cab-busca-bar input { background:#1A2534 !important; border-color:#2A3849 !important; color:#EAF1FA !important; }
body.night #v-chat .chat-fil { background:#1A2534 !important; border-color:#2A3849 !important; color:#9DB0C6 !important; }
body.night #v-chat .chat-fil-act { background:#0B72E8 !important; color:#fff !important; }
body.night #v-chat .chat-it:hover { background:#1A2534 !important; }
body.night #v-chat .chat-it-act { background:#16243B !important; border-color:#2E4B75 !important; }
body.night #v-chat .chat-it-nom, body.night #v-chat .chat-cab-nom { color:#EAF1FA !important; }
body.night #v-chat .chat-it-emp, body.night #v-chat .chat-it-last, body.night #v-chat .chat-cab-sub { color:#9DB0C6 !important; }
body.night #v-chat .chat-panel, body.night #v-chat .chat-hilo { background-color:#0B141A !important;
  background-image: radial-gradient(#16232D 0.8px, transparent 0.8px), radial-gradient(#121D26 0.8px, transparent 0.8px) !important; }
body.night #v-chat .chat-dia span { background:#1A2534 !important; color:#9DB0C6 !important; }
body.night #v-chat .chat-in .chat-burb { background:#1F2C34 !important; color:#E9EDEF !important; }
body.night #v-chat .chat-out .chat-burb { background:#005C4B !important; color:#E9EDEF !important; }
body.night #v-chat .chat-meta { color:#8AA0B8 !important; }
body.night #v-chat .cab-ic:hover, body.night #v-chat .cab-menu-it:hover { background:#1A2534 !important; }
body.night #v-chat .cab-menu { background:#151E2B !important; border-color:#2A3849 !important; }
body.night #v-chat .cab-menu-it { color:#D8E0EC !important; }
body.night #v-chat .chat-input-bar { background:#151E2B !important; border-color:#2A3849 !important; }
body.night #v-chat .chat-input-pill { background:#1A2534 !important; border-color:#2A3849 !important; }
body.night #v-chat .chat-input-pill input { color:#EAF1FA !important; }
body.night #v-chat .ci-btn:hover { background:#22303F !important; }
body.night #v-chat .chat-emoji-pop { background:#151E2B !important; border-color:#2A3849 !important; }
body.night #v-chat .emj:hover { background:#22303F !important; }
body.night #v-chat .chat-plantillas .chat-plt, body.night #v-chat .chat-plantillas span, body.night #v-chat .chat-plantillas button { background:#1A2534 !important; border-color:#2A3849 !important; color:#7FB0FF !important; }
body.night #v-chat .chat-ficha { background:#151E2B !important; border-color:#2A3849 !important; }
body.night #v-chat .f-nom, body.night #v-chat .f-kpi-v, body.night #v-chat .f-tl-txt b { color:#EAF1FA !important; }
body.night #v-chat .f-kpi { background:#1A2534 !important; border-color:#2A3849 !important; }
body.night #v-chat .f-et { background:#1A2534 !important; border-color:#2A3849 !important; color:#9DB0C6 !important; }
body.night #v-chat .f-bar-track { background:#22303F !important; }
body.night #v-chat .f-prox { background:#2A2410 !important; border-color:#5B4B1A !important; color:#E5C88F !important; }
body.night #v-chat .f-tl-dot { box-shadow:0 0 0 3px #151E2B, 0 0 0 4px #2A3849 !important; }
body.night #v-chat .f-tl-rail { background:#2A3849 !important; }
body.night #v-chat .sk-b { background:linear-gradient(90deg,#16232D 25%,#1D2C38 50%,#16232D 75%) !important; background-size:200% 100% !important; }
body.night #v-chat .sk-line { background:linear-gradient(90deg,#1A2534 25%,#22303F 50%,#1A2534 75%) !important; background-size:200% 100% !important; }

/* Pistas del formulario Meta en el modal de gestión */
#gPistasForm { margin: 8px 0 4px; padding: 10px 12px; background: #F0F6FD; border: 1px solid #CFE3FA; border-radius: 10px; }
.gform-tit { font-size: 10.5px; font-weight: 800; color: #0A4E9E; text-transform: uppercase; letter-spacing: .4px; margin-bottom: 6px; }
.gform-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.gform-chip { background: #fff; border: 1px solid #CFE3FA; border-radius: 8px; padding: 4px 10px; font-size: 12px; color: #1E3A5F; font-weight: 600; }
body.night #gPistasForm { background: #16243B !important; border-color: #2E4B75 !important; }
body.night .gform-tit { color: #7FB0FF !important; }
body.night .gform-chip { background: #1A2534 !important; border-color: #2E4B75 !important; color: #D8E6F5 !important; }

/* Bandeja B2B: acciones y chips filtrables */
.b2b-acc-wrap { display: flex; flex-wrap: wrap; gap: 4px; }
.btn-sunat.b2b-acc { padding: 2px 8px; font-size: 10.5px; white-space: nowrap; }
.b2b-chip-fil { cursor: pointer; transition: all .12s; }
.b2b-chip-fil:hover { border-color: #0B72E8; }
.b2b-chip-act { background: #0B72E8 !important; color: #fff !important; border-color: #0B72E8 !important; }
.b2b-chip-act i { filter: brightness(2); }
.b2b-chip-act b { color: #fff !important; }
body.night .btn-sunat.b2b-acc { background: #1A2534 !important; border-color: #2A3849 !important; }

/* Tiempo promedio entre etapas (Centro de Operaciones B2B) */
.ops-tiempos { margin-top: 10px; padding-top: 10px; border-top: 1px dashed #DDE3EA; }
.ops-tiempos-lbl { font-size: 11px; font-weight: 700; color: #5B7290; margin-bottom: 6px; }
.ops-tiempos-flow { display: flex; flex-wrap: wrap; align-items: center; gap: 3px; font-size: 11.5px; color: #202C33; font-weight: 600; line-height: 1.9; }
.ops-t-arrow { font-size: 10px; color: #8AA0B8; margin: 0 1px; }
.ops-t-arrow b { font-size: 11px; padding: 1px 5px; border-radius: 6px; margin: 0 1px; }
.ops-t-verde b { background: #E3F6EC; color: #0F7B52; }
.ops-t-ambar b { background: #FEF3E2; color: #B26A00; }
.ops-t-rojo b { background: #FDECEA; color: #C0392B; }
.ops-t-gris b { background: #EEF1F5; color: #8AA0B8; }
body.night .ops-tiempos { border-color: #2A3849 !important; }
body.night .ops-tiempos-flow { color: #D8E6F5 !important; }

/* Chips del modal de resumen de gestión */
.resum-chip { transition: all .13s; }
.resum-chip:hover { border-color: #0B72E8 !important; }
body.night #ovResumenGest > div { background: #151E2B !important; }
body.night #resumPreview { background: #0B141A !important; border-color: #2A3849 !important; color: #D8E6F5 !important; }

/* ===== COMITÉ COMERCIAL B2B (v1.442 · dashboard ejecutivo) ===== */
#v-b2b-comite.act { width: calc(100vw - 40px); position: relative; left: 50%; transform: translateX(-50%); }
.cbb-wrap { background:#EDF1F7; border-radius:16px; padding:12px; }

/* HEADER oscuro */
.cbb-header{display:flex;align-items:center;gap:18px;background:#0B1526;border-radius:12px;padding:12px 18px;margin-bottom:12px;flex-wrap:wrap;position:sticky;top:60px;z-index:45;box-shadow:0 6px 20px rgba(11,21,38,.25)}
.cbb-brand{display:flex;align-items:center;gap:10px}
.cbb-logo{width:38px;height:38px;border-radius:9px;background:#fff;object-fit:contain;padding:4px}
.cbb-tit{color:#fff;font-weight:700;font-size:16px;line-height:1.1}
.cbb-sub{color:#8EA3C4;font-size:11.5px}
.cbb-hfiltros{display:flex;align-items:flex-end;gap:10px;flex:1;flex-wrap:wrap}
.cbb-hf{display:flex;flex-direction:column;gap:2px}
.cbb-hf label{color:#8EA3C4;font-size:10px;letter-spacing:.04em;text-transform:uppercase}
.cbb-hf-fechas{display:flex;align-items:center;gap:4px;color:#8EA3C4}
.cbb-hf input[type=date],.cbb-hf select{background:#16233C;border:1px solid #24344F;color:#E5ECF6;border-radius:8px;padding:6px 9px;font-size:12.5px}
.cbb-hf input[type=date]::-webkit-calendar-picker-indicator{filter:invert(1) brightness(1.4);cursor:pointer;opacity:.85}
.cbb-btn-refresh{background:#2563EB;border:none;color:#fff;border-radius:8px;width:34px;height:34px;font-size:15px;cursor:pointer}
.cbb-hright{display:flex;align-items:center;gap:14px;margin-left:auto}
.cbb-upd{color:#8EA3C4;font-size:10.5px;text-align:right;display:flex;flex-direction:column}
.cbb-upd b{color:#fff;font-size:12.5px}
.cbb-btn-h{background:#16233C;border:1px solid #24344F;color:#E5ECF6;border-radius:8px;padding:7px 12px;font-size:12px;cursor:pointer}

/* KPI CARDS */
.cbb-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:12px}
@media(max-width:1200px){.cbb-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.cbb-kpis{grid-template-columns:repeat(2,1fr)}}
.cbb-kpi{background:#fff;border-radius:12px;padding:9px 13px;border:1px solid #E4EAF3;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:64px}
.cbb-kpi-izq{min-width:0;flex:1}
.cbb-kpi-ico{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px;flex:none}
.cbb-ico-azul{background:#E7EFFE}.cbb-ico-morado{background:#F1EAFD}.cbb-ico-verde{background:#E3F7EF}.cbb-ico-amarillo{background:#FEF3DF}.cbb-ico-teal{background:#DFF6F3}.cbb-ico-rojo{background:#FDE8E8}.cbb-ico-rosa{background:#FCE7F1}
.cbb-kpi-lbl{font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;color:#7C8AA5;font-weight:600;line-height:1.2}
.cbb-kpi-val{font-size:19px;font-weight:800;color:#0B1526;line-height:1.1;margin-top:1px}
.cbb-val-rojo{color:#EF4444}
.cbb-kpi-sub{font-size:10.5px;color:#93A1B8;margin-top:2px}
.cbb-kpi-spark{height:20px;margin-top:3px}

/* Filas de cards */
.cbb-row{display:grid;gap:12px;margin-bottom:12px}
.cbb-row2{grid-template-columns:1.45fr 1.15fr .8fr}
.cbb-row3{grid-template-columns:1.15fr 1.3fr .95fr}
.cbb-row4{grid-template-columns:1.25fr 1fr 1fr}
@media(max-width:1200px){.cbb-row2,.cbb-row3,.cbb-row4{grid-template-columns:1fr}}
.cbb-card{background:#fff;border-radius:12px;border:1px solid #E4EAF3;padding:13px 15px;min-width:0}
.cbb-card-tit{font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#1E293B;margin-bottom:10px;display:flex;align-items:center;gap:8px;position:relative}
.cbb-card-sub{font-size:10px;font-weight:500;letter-spacing:0;text-transform:none;color:#93A1B8}
.cbb-badge-r{background:#EF4444;color:#fff;border-radius:9px;font-size:10.5px;min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}
.cbb-conv-head{margin-left:auto;font-size:9px;color:#93A1B8;text-transform:uppercase;letter-spacing:.05em;text-align:center;line-height:1.2}

/* EMBUDO */
.cbb-emb-head{display:grid;grid-template-columns:34px 148px 44px 1fr 62px 62px 82px;gap:9px;padding-bottom:2px}
.cbb-emb-th{font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#93A1B8;text-align:center;display:flex;flex-direction:column;line-height:1.2}
.cbb-emb-th small{font-weight:500;text-transform:none;letter-spacing:0;color:#B6C0D2;font-size:8.5px}
.cbb-emb-fila{display:grid;grid-template-columns:34px 148px 44px 1fr 62px 62px 82px;gap:9px;align-items:center;padding:6px 0;border-bottom:1px solid #F1F5FA}
.cbb-emb-t{text-align:center;font-size:13px;font-weight:800}
.cbb-t-ok{color:#10B981}.cbb-t-med{color:#F59E0B}.cbb-t-mal{color:#EF4444}
.cbb-t-lleg{color:#2563EB}
.cbb-emb-fila:last-child{border-bottom:none}
.cbb-emb-ico{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px}
.cbb-emb-nom{font-size:12px;font-weight:700;color:#1E293B;text-transform:uppercase;letter-spacing:.02em}
.cbb-emb-sub{font-size:10px;color:#93A1B8}
.cbb-emb-n{font-size:19px;font-weight:800;color:#0B1526;text-align:right}
.cbb-emb-barw{min-width:0}
.cbb-emb-bar{height:9px;border-radius:5px;min-width:5px;transition:width .4s}
.cbb-emb-links{display:flex;gap:10px;margin-top:3px;font-size:10.5px;flex-wrap:wrap}
.cbb-lk-v{color:#0F766E;cursor:pointer;font-weight:600}
.cbb-lk-v:hover{text-decoration:underline}
.cbb-lk-d{color:#DC2626;cursor:pointer;font-weight:600}
.cbb-lk-d:hover{text-decoration:underline}
.cbb-emb-conv{text-align:center;font-size:14px;font-weight:800;display:flex;flex-direction:column;line-height:1.15}
.cbb-emb-conv small{font-size:9.5px;font-weight:600;color:#93A1B8}
.cbb-conv-ok{color:#10B981}.cbb-conv-med{color:#F59E0B}.cbb-conv-bad{color:#EF4444}

/* META BC */
.cbb-meta-grid{display:grid;grid-template-columns:1fr 118px;gap:10px;align-items:center}
.cbb-meta-l1{font-size:10.5px;color:#7C8AA5;text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.cbb-meta-resp{text-transform:none;letter-spacing:0;color:#93A1B8;font-weight:500}
.cbb-meta-obj{font-size:24px;font-weight:800;color:#0B1526;margin-bottom:8px}
.cbb-meta-log{font-size:20px;font-weight:800;color:#10B981}
.cbb-meta-pctl{font-size:11px;font-weight:600;margin-top:2px}
.cbb-donut{width:112px;height:112px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.cbb-donut-in{width:82px;height:82px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}
.cbb-donut-in b{font-size:19px;color:#0B1526}
.cbb-donut-in span{font-size:9.5px;color:#93A1B8}
.cbb-proy{border-top:1px solid #EEF2F8;margin-top:10px;padding-top:9px}
.cbb-proy-l{font-size:11px;font-weight:700;color:#1E293B}
.cbb-proy-val{font-size:16px;font-weight:800;color:#0B1526;margin:3px 0}
.cbb-proy-pct{font-size:11px;font-weight:600;color:#10B981}
.cbb-proy-track{height:8px;background:#E8EDF5;border-radius:5px;overflow:hidden}
.cbb-proy-fill{height:100%;background:#10B981;border-radius:5px}
.cbb-deficit{margin-top:7px;background:#FDECEC;color:#B91C1C;font-size:11px;border-radius:8px;padding:6px 10px}
.cbb-deficit b{font-size:13px}
.cbb-superavit{margin-top:7px;background:#E3F7EF;color:#047857;font-size:11px;border-radius:8px;padding:6px 10px;font-weight:600}
.cbb-topej{border-top:1px solid #EEF2F8;margin-top:10px;padding-top:8px}
.cbb-topej-tit{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#7C8AA5;margin-bottom:7px}
.cbb-ej{display:flex;align-items:center;gap:8px;padding:5px 0}
.cbb-ej-med{width:18px;text-align:center}
.cbb-avatar{width:30px;height:30px;border-radius:50%;color:#fff;font-weight:700;font-size:13px;display:inline-flex;align-items:center;justify-content:center;flex:none}
.cbb-avatar.sm{width:22px;height:22px;font-size:11px}
.cbb-ej-info{flex:1;min-width:0}
.cbb-ej-info b{font-size:12.5px;color:#1E293B;display:block}
.cbb-ej-info span{font-size:10.5px;color:#93A1B8}
.cbb-ej-track{height:6px;background:#E8EDF5;border-radius:4px;margin-top:3px;overflow:hidden}
.cbb-ej-fill{height:100%;background:#10B981;border-radius:4px}
.cbb-ej-pct{font-size:12px;font-weight:800;color:#1E293B}

/* ALERTAS */
.cbb-alertas{display:flex;flex-direction:column;gap:6px;max-height:430px;overflow-y:auto}
.cbb-al{display:flex;gap:8px;align-items:flex-start;font-size:11.5px;line-height:1.45;border-radius:9px;padding:8px 10px}
.cbb-al-crit{background:#FDF0EF;color:#7F1D1D}
.cbb-al-alta{background:#FEF8E7;color:#78350F}
.cbb-al-ico{flex:none}
.cbb-al-mas{color:#2563EB;font-size:11.5px;font-weight:600;cursor:pointer;padding:4px 2px}
.cbb-al-mas:hover{text-decoration:underline}

/* GESTIÓN DIARIA */
.cbb-gd{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:700px){.cbb-gd{grid-template-columns:1fr}}
.cbb-gd-head{display:flex;justify-content:space-between;align-items:baseline;font-size:11px;color:#64748B;margin-bottom:4px}
.cbb-gd-head b{font-size:17px}
.cbb-azul{color:#2563EB}.cbb-morado{color:#7C3AED}
.cbb-mini-canvas{position:relative;height:150px;overflow:hidden}

/* HEATMAP */
.cbb-heat{display:grid;gap:3px;align-items:center;width:100%}
.cbb-heat-h{font-size:8px;color:#93A1B8;text-align:center;white-space:nowrap;overflow:hidden}
.cbb-heat-ej{font-size:10.5px;color:#334155;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:5px}
.cbb-heat-c{height:22px;min-width:0;border-radius:4px;background:#F1F5FA;display:flex;align-items:center;justify-content:center;font-size:8.5px;color:#fff;font-weight:700;overflow:hidden}
.cbb-heat-ley{display:flex;align-items:center;gap:8px;justify-content:center;margin-top:9px;font-size:9.5px;color:#93A1B8}
.cbb-heat-grad{width:120px;height:8px;border-radius:4px;background:linear-gradient(90deg,#DBEAFE,#2563EB)}

/* DISTRIBUCIÓN */
.cbb-dist{display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:center}
.cbb-dist-canvas{position:relative;height:150px}
.cbb-dist-centro{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}
.cbb-dist-centro b{font-size:14px;color:#0B1526}
.cbb-dist-centro span{font-size:9.5px;color:#93A1B8}
.cbb-ley-row{display:flex;align-items:center;gap:7px;font-size:11px;padding:2.5px 0}
.cbb-ley-dot{width:9px;height:9px;border-radius:50%;flex:none}
.cbb-ley-lbl{color:#334155;flex:1}
.cbb-ley-val{color:#7C8AA5;font-weight:600;white-space:nowrap}

/* TOP EJECUTIVOS tabla */
.cbb-tabla{width:100%;border-collapse:collapse;font-size:11.5px}
.cbb-tabla th{text-align:left;font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;color:#93A1B8;font-weight:700;padding:4px 6px;border-bottom:1px solid #EEF2F8}
.cbb-tabla td{padding:6px;border-bottom:1px solid #F5F8FC;color:#1E293B}
.cbb-td-ej{white-space:nowrap;font-weight:600}
.cbb-tbar{display:flex;align-items:center;gap:6px}
.cbb-tbar span{font-size:10.5px;font-weight:700;min-width:30px}
.cbb-tbar-t{flex:1;height:6px;background:#E8EDF5;border-radius:4px;overflow:hidden;min-width:36px}
.cbb-tbar-t div{height:100%;border-radius:4px}

/* DESESTIMADOS */
.cbb-des-head{font-size:12px;color:#334155;margin-bottom:8px}
.cbb-des-sec{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#7C8AA5;margin:9px 0 5px}
.cbb-des-mot{display:flex;align-items:center;gap:8px;padding:2.5px 0;font-size:11px}
.cbb-des-mot-l{width:46%;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cbb-des-mot-t{flex:1;height:8px;background:#F1F5FA;border-radius:4px;overflow:hidden}
.cbb-des-mot-t div{height:100%;background:#EC4899;border-radius:4px}
.cbb-des-mot b{min-width:18px;text-align:right;color:#1E293B}
.cbb-des-chips{display:flex;flex-wrap:wrap;gap:6px}
.cbb-chip{background:#FDF1F6;color:#9D174D;border-radius:8px;font-size:10.5px;padding:4px 9px;font-weight:600}
.cbb-des-ver{color:#2563EB;font-size:11.5px;font-weight:600;cursor:pointer;margin-top:9px}
.cbb-des-ver:hover{text-decoration:underline}

/* INSIGHTS IA */
.cbb-ia{display:flex;flex-direction:column;gap:7px}
.cbb-ia-item{display:flex;gap:8px;font-size:11.5px;line-height:1.5;color:#334155}
.cbb-ia-item span:first-child{color:#7C3AED;flex:none}
.cbb-ia-load{font-size:11.5px;color:#93A1B8;padding:8px 0}
.cbb-ia-cache{font-size:10px;color:#B6C0D2;margin-top:4px}
.cbb-ia-btn{margin-left:auto;border:1px solid #E4EAF3;background:#fff;border-radius:7px;font-size:12px;width:24px;height:24px;cursor:pointer;color:#64748B}

.cbb-foot{text-align:center;font-size:10.5px;color:#93A1B8;padding:4px 0 2px}

/* Insights IA v1.443: secciones y plan de acción */
.cbb-ia-sec{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#7C8AA5;margin:8px 0 4px}
.cbb-ia-sec:first-child{margin-top:0}
.cbb-ia-prosa{font-size:11.5px;line-height:1.55;color:#334155}
.cbb-ia-plan{background:#F6F8FC;border-left:3px solid #7C3AED;border-radius:0 8px 8px 0;padding:6px 9px;margin-bottom:5px;display:flex;flex-direction:column;gap:1px}
.cbb-ia-plan b{font-size:11px;color:#7C3AED}
.cbb-ia-plan span{font-size:11.5px;color:#1E293B;line-height:1.4}
.cbb-ia-plan small{font-size:10px;color:#93A1B8}

/* Insights IA v1.444: acotado al recuadro + modal */
.cbb-ia-clip{max-height:300px;overflow:hidden;position:relative}
.cbb-ia-clip::after{content:'';position:absolute;left:0;right:0;bottom:0;height:34px;background:linear-gradient(transparent,#fff)}
.cbb-ia-ver{color:#2563EB;font-size:11.5px;font-weight:700;cursor:pointer;margin-top:6px}
.cbb-ia-ver:hover{text-decoration:underline}
.cbb-ia-modal{padding:14px 16px}
.cbb-ia-modal .cbb-ia-sec{font-size:11px}
.cbb-ia-modal .cbb-ia-prosa,.cbb-ia-modal .cbb-ia-item span:last-child,.cbb-ia-modal .cbb-ia-plan span{font-size:13px}
/* Gestión diaria alineada */
.cbb-gd-head b{min-width:34px;text-align:right}

/* ===== CARTERA ACTIVA (v1.454) — clientes que ya invirtieron ===== */
.fila-cartera > td:first-child, .fila-cartera > td:nth-child(2) { position: relative; }
.fila-cartera { background: linear-gradient(90deg, #FFFBEB 0%, #FFFDF7 55%, transparent 100%); }
.fila-cartera:hover { background: linear-gradient(90deg, #FEF3C7 0%, #FFFBEB 55%, transparent 100%); }
.fila-cartera > td:first-child { box-shadow: inset 3px 0 0 #D4A017; }
.badge-cartera { background: linear-gradient(135deg, #D4A017, #B8860B); color: #fff; font-size: 9.5px; font-weight: 800; letter-spacing: .03em; border-radius: 6px; padding: 2px 6px; margin-left: 6px; white-space: nowrap; vertical-align: middle; }
.lead-cartera-datos { font-size: 11px; color: #92700A; background: #FEF9E7; border-radius: 6px; padding: 2px 7px; margin-top: 3px; display: inline-block; font-weight: 600; }
/* Panel de cartera (importador y goteo) */
.cart-box { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; margin-bottom: 12px; }
.cart-tit { font-size: 13px; font-weight: 800; color: var(--navy-2); margin-bottom: 8px; display: flex; align-items: center; gap: 8px; }
.cart-tabla { width: 100%; border-collapse: collapse; font-size: 12.5px; margin-top: 6px; }
.cart-tabla th { background: #FEF9E7; color: #92700A; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; padding: 6px 8px; text-align: left; }
.cart-tabla td { padding: 6px 8px; border-bottom: 1px solid #F5F8FC; }
.cart-pill { background: #FEF3C7; color: #92700A; border-radius: 8px; padding: 2px 8px; font-weight: 700; font-size: 11.5px; }
.cart-drop { border: 2px dashed #E8D08A; border-radius: 10px; padding: 18px; text-align: center; color: #92700A; background: #FFFDF7; cursor: pointer; font-size: 13px; }
.cart-drop:hover { background: #FEF9E7; }

/* Tarjeta KANBAN de cartera activa (v1.456) */
.kcard-cartera { border-left: 4px solid #D4A017 !important; background: linear-gradient(180deg, #FFFBEB 0%, #fff 42%); }
.kcard-cartera:hover { background: linear-gradient(180deg, #FEF3C7 0%, #fff 46%); }
.kbadge-cartera { background: linear-gradient(135deg, #D4A017, #B8860B); color: #fff; font-size: 9px; font-weight: 800; letter-spacing: .02em; border-radius: 5px; padding: 2px 5px; white-space: nowrap; }
.kcartera { font-size: 10.5px; color: #92700A; background: #FEF9E7; border-radius: 6px; padding: 3px 7px; margin: 4px 0 2px; font-weight: 600; }

/* Contexto de CARTERA ACTIVA en el modal de gestión (v1.456) */
.chip-cartera { background: linear-gradient(135deg, #D4A017, #B8860B); color: #fff; font-size: 10.5px; font-weight: 800; border-radius: 6px; padding: 2px 8px; letter-spacing: .02em; }
.cart-modal { background: linear-gradient(135deg, #FFFBEB, #FEF9E7); border: 1px solid #EBD9A0; border-left: 4px solid #D4A017; border-radius: 10px; padding: 9px 13px; margin: 8px 0 2px; }
.cart-modal-tit { font-size: 11px; font-weight: 800; color: #92700A; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 4px; }
.cart-modal-datos { font-size: 12.5px; color: #5C4708; line-height: 1.6; }
.cart-modal-datos b { color: #7A5C00; }
.cart-modal-nota { font-size: 11.5px; color: #92700A; margin-top: 5px; font-style: italic; }

/* ===== CARTERA v1.457: tiers, temperatura y bimoneda ===== */
.kcart-tier { font-size: 8.5px; font-weight: 800; border-radius: 4px; padding: 1px 5px; margin-left: 5px; letter-spacing: .03em; vertical-align: middle; }
.t-top { background: linear-gradient(135deg,#B8860B,#8B6914); color: #fff; }
.t-alto { background: #D4A017; color: #fff; }
.t-medio { background: #FDE68A; color: #78500A; }
.t-base { background: #F3F4F6; color: #6B7280; }
.kcart-temp { font-size: 9.5px; font-weight: 700; border-radius: 4px; padding: 1px 5px; white-space: nowrap; }
.tm-caliente { background: #FEE2E2; color: #B91C1C; }
.tm-tibio { background: #FEF3C7; color: #92700A; }
.tm-frio { background: #E0F2FE; color: #0369A1; }
/* Tarjeta kanban */
.kcart-monto { font-size: 12px; font-weight: 800; color: #7A5C00; display: flex; align-items: center; gap: 2px; flex-wrap: wrap; }
.kcart-sub { font-size: 10px; color: #92700A; margin-top: 1px; }
.kcart-venc { font-size: 10px; color: #92700A; margin-top: 2px; font-weight: 600; }
.kcart-venc.urge { color: #B91C1C; }
/* Modal de gestión */
.cart-modal-head { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin-bottom: 7px; }
.cart-modal-tot { font-size: 11.5px; color: #7A5C00; margin-left: auto; }
.cart-mons { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; }
.cart-mon { background: #fff; border: 1px solid #EBD9A0; border-radius: 8px; padding: 6px 12px; min-width: 130px; }
.cart-mon-usd { border-color: #A7D8B4; background: #F7FDF9; }
.cart-mon-lbl { font-size: 9.5px; text-transform: uppercase; letter-spacing: .05em; color: #92700A; font-weight: 700; }
.cart-mon-usd .cart-mon-lbl { color: #17795E; }
.cart-mon-val { font-size: 16px; font-weight: 800; color: #5C4708; line-height: 1.15; }
.cart-mon-usd .cart-mon-val { color: #14634E; }
.cart-mon-sub { font-size: 10.5px; color: #92700A; }
.cart-mon-usd .cart-mon-sub { color: #17795E; }
.cart-linea { font-size: 12.5px; color: #5C4708; line-height: 1.7; }
.cart-linea b { color: #7A5C00; }

/* Resumen ejecutivo de cartera (v1.458) */
.cart-kpis { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }
@media (max-width: 1100px) { .cart-kpis { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px) { .cart-kpis { grid-template-columns: repeat(2, 1fr); } }
.cart-kpi { background: #FFFDF7; border: 1px solid #EBD9A0; border-radius: 10px; padding: 9px 12px; }
.cart-kpi.usd { background: #F7FDF9; border-color: #A7D8B4; }
.cart-kpi.ok { background: #F6FBF8; border-color: #B7E0C7; }
.cart-kpi.alerta { background: #F0F9FF; border-color: #A5D8F3; }
.cart-kpi-lbl { font-size: 10px; text-transform: uppercase; letter-spacing: .04em; color: #92700A; font-weight: 700; }
.cart-kpi.usd .cart-kpi-lbl { color: #17795E; }
.cart-kpi.alerta .cart-kpi-lbl { color: #0369A1; }
.cart-kpi-val { font-size: 19px; font-weight: 800; color: #5C4708; line-height: 1.2; }
.cart-kpi.usd .cart-kpi-val { color: #14634E; }
.cart-kpi.alerta .cart-kpi-val { color: #075985; }
.cart-kpi-sub { font-size: 10.5px; color: #92700A; }
.cart-kpi.usd .cart-kpi-sub { color: #17795E; }
.cart-kpi.alerta .cart-kpi-sub { color: #0369A1; }

/* ===== KANBAN B2C a ancho completo (v1.459), como el B2B =====
   Solo cuando el kanban está visible: en vista tabla el ancho acotado se conserva. */
body:has(#contKanban[style*="block"]) #v-leads.vista.act { max-width: none; }
body:has(#contKanban[style*="block"]) .content { max-width: none; }
/* Las columnas se reparten TODO el ancho; min-width menor para que las 7 quepan sin scroll. */
#contKanban .kanban { width: 100%; }
#contKanban .kcol { min-width: 0; }
@media (min-width: 1600px) { #contKanban .kanban { gap: 14px; } }

/* Teléfono clickeable en la tarjeta kanban (v1.460) — mismo flujo que el botón de llamada */
.kcard .kgp .ktel-call { color: var(--azul); cursor: pointer; font-weight: 600; text-decoration: none; }
.kcard .kgp .ktel-call:hover { text-decoration: underline; }

/* ===== Correo de presentación (v1.461) ===== */
.cart-modal-acc { display: flex; align-items: center; gap: 10px; margin-top: 8px; padding-top: 8px; border-top: 1px solid #EBD9A0; flex-wrap: wrap; }
.cart-btn-mail { background: #fff; border-color: #D4A017; color: #7A5C00; font-weight: 700; }
.cart-btn-mail:hover { background: #FEF3C7; }
.cart-sin-mail { font-size: 11.5px; color: #B08C2E; font-style: italic; }
.cart-mail-estado { font-size: 11.5px; color: #5A6B82; }
.corr-overlay { position: fixed; inset: 0; background: rgba(11,21,38,.55); display: none; align-items: center; justify-content: center; z-index: 9000; padding: 20px; }
.corr-overlay.act { display: flex; }
.corr-wrap { background: #fff; border-radius: 14px; padding: 20px 22px; width: 100%; max-width: 620px; max-height: 90vh; overflow-y: auto; box-shadow: 0 18px 50px rgba(11,21,38,.3); }
.corr-head { font-size: 17px; font-weight: 800; color: var(--navy-2); margin-bottom: 12px; }
.corr-aviso { background: #FEF3C7; border: 1px solid #E8D08A; color: #92700A; border-radius: 8px; padding: 8px 11px; font-size: 12.5px; margin-bottom: 10px; }
.corr-previos { background: #EEF6FF; border: 1px solid #C7E0F4; color: #1E4E79; border-radius: 8px; padding: 7px 11px; font-size: 12px; margin-bottom: 10px; }
.corr-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 8px; }
.corr-campos label, .corr-lbl { display: block; font-size: 11.5px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .03em; margin-bottom: 8px; }
.corr-campos input, .corr-lbl input { width: 100%; margin-top: 3px; text-transform: none; font-weight: 400; }
.corr-prev { border: 1px solid var(--line); border-radius: 10px; max-height: 320px; overflow-y: auto; background: #F4F6F9; }
.corr-btns { display: flex; gap: 10px; justify-content: flex-end; margin-top: 14px; }

/* Panel de plantillas de correo (v1.462) */
.corr-pendiente { border-color: #E8D08A !important; background: #FFFDF7 !important; }
.corr-tpl { border: 1px solid var(--line); border-radius: 10px; margin-bottom: 8px; overflow: hidden; }
.corr-tpl-head { display: flex; justify-content: space-between; align-items: center; padding: 10px 14px; cursor: pointer; background: #FBFCFE; }
.corr-tpl-head:hover { background: #F4F8FC; }
.corr-tpl-desc { font-size: 11.5px; color: var(--muted); margin-top: 2px; }
.corr-tpl-chev { color: var(--muted); font-size: 13px; }
.corr-tpl-body { padding: 12px 14px 14px; border-top: 1px solid var(--line); }
.corr-tpl-body textarea { width: 100%; font-family: inherit; font-size: 13px; line-height: 1.6; resize: vertical; }
.corr-tpl-btns { display: flex; gap: 8px; justify-content: flex-end; margin-top: 10px; }
.corr-vars { font-size: 11.5px; color: var(--muted); margin-top: 6px; }
.corr-vars code { background: #EEF3F9; color: #1E4E79; border-radius: 4px; padding: 1px 5px; cursor: pointer; font-size: 11px; }
.corr-vars code:hover { background: #DCE8F5; }

/* Botón de correo en la tarjeta kanban (v1.464) — el de Gestionar cede ancho para que quepan 3 iconos */
.kbtn-ic.ml { color: #B8860B; border-color: #EBD9A0; } .kbtn-ic.ml:hover { background: #FEF9E7; }
.kbtns .kbtn.rg { flex: 1 1 auto; min-width: 0; }
.kbtns .kbtn-ic { width: 30px; height: 30px; }

/* Mi Cola: cliente de cartera igual que en el kanban (v1.465) */
.cola-es-cartera { background: linear-gradient(90deg, #FFFBEB 0%, #FFFDF7 60%, transparent 100%); box-shadow: inset 3px 0 0 #D4A017; }
.cola-cart-linea { margin-top: 3px; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.cola-cart { background: linear-gradient(135deg, #D4A017, #B8860B); color: #fff; font-size: 8.5px; font-weight: 800; border-radius: 4px; padding: 1px 5px; letter-spacing: .03em; }
.cola-cart-monto { font-size: 11px; font-weight: 700; color: #7A5C00; }
.cola-ml { color: #B8860B !important; }
/* DNI y correo copiables dentro de la caja dorada */
.cart-dato { display: inline-flex; align-items: center; gap: 5px; background: #fff; border: 1px solid #EBD9A0; border-radius: 7px; padding: 3px 9px; font-size: 12px; color: #5C4708; cursor: pointer; }
.cart-dato:hover { background: #FEF9E7; border-color: #D4A017; }
.cart-dato b { color: #7A5C00; font-weight: 700; }
.cart-copy { color: #B08C2E; font-size: 11px; }

/* Devolver a reserva (v1.467) — reemplaza la bandera roja en clientes de cartera */
.mg-bandera.mg-devolver { color: #B8860B !important; border-color: #EBD9A0 !important; background: #FFFDF7 !important; font-size: 17px; font-weight: 800; }
.mg-bandera.mg-devolver:hover { background: #FEF3C7 !important; }
.dev-hist { background: #FFFBEB; border: 1px solid #EBD9A0; border-radius: 8px; padding: 8px 11px; font-size: 12px; color: #5C4708; margin-bottom: 12px; line-height: 1.6; }

/* Correo deshabilitado en leads de marketing (v1.471) */
.kbtn-ic.ml.off, .cola-ll.cola-ml.off { opacity: .35; cursor: not-allowed; color: #94A3B8 !important; border-color: var(--line) !important; }
.kbtn-ic.ml.off:hover, .cola-ll.cola-ml.off:hover { background: transparent !important; }

/* ===== EN ESPERA: reloj de arena (v1.476) ===== */
.espera-reloj { position: fixed; right: 24px; bottom: 96px; z-index: 8500; width: 92px; height: 108px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  background: linear-gradient(180deg, #FFF9EC, #FCEFCF); border: 2px solid #E3C264; border-radius: 18px;
  color: #7A5C00; cursor: pointer; user-select: none;
  box-shadow: 0 4px 16px rgba(122,92,0,.18); transition: transform .18s, box-shadow .18s, border-color .18s; }
.espera-reloj:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(122,92,0,.25); }
.espera-reloj.oculto { display: none; }
.espera-reloj-ico { font-size: 40px; line-height: 1; filter: drop-shadow(0 2px 3px rgba(122,92,0,.25)); transition: transform .2s; }
.espera-reloj-txt { font-size: 11px; font-weight: 800; letter-spacing: .02em; }
.espera-reloj-badge { position: absolute; top: -7px; right: -7px; min-width: 22px; height: 22px; border-radius: 11px;
  background: #B8860B; color: #fff; font-size: 11.5px; font-weight: 800; display: flex; align-items: center;
  justify-content: center; padding: 0 6px; border: 2px solid #fff; }
.espera-reloj-badge.oculto { display: none; }
.espera-reloj.drag-on { transform: scale(1.18); border-color: #B8860B; border-style: dashed;
  box-shadow: 0 10px 30px rgba(184,134,11,.4); }
.espera-reloj.drag-on .espera-reloj-ico { animation: relojGira 1.15s ease-in-out infinite; }
@keyframes relojGira {
  0%   { transform: rotate(0deg); }
  45%  { transform: rotate(180deg); }
  55%  { transform: rotate(180deg); }
  100% { transform: rotate(360deg); }
}
.espera-reloj.drop { transform: scale(1.32); background: #FBE7BC; border-color: #8A6508; }
.espera-reloj.pulso { animation: relojPulso .65s ease-out; }
@keyframes relojPulso {
  0% { transform: scale(1.35); box-shadow: 0 0 0 0 rgba(184,134,11,.55); }
  100% { transform: scale(1); box-shadow: 0 0 0 26px rgba(184,134,11,0); }
}
.esp-aviso { background: #FEF3C7; border: 1px solid #E8D08A; color: #92700A; border-radius: 8px;
  padding: 9px 12px; font-size: 12.5px; margin-bottom: 12px; line-height: 1.5; }
.esp-req { color: #B91C1C; font-weight: 800; }
.esp-potencial { background: #FFFBEB; border: 1px solid #EBD9A0; border-radius: 8px; padding: 8px 12px;
  font-size: 13px; color: #5C4708; margin-bottom: 10px; }

.cola-ll.cola-esp { color: #B8860B !important; font-size: 13px; }

/* Resumen IA por columna (v1.477) */
.kb-ia { margin-left: auto; background: linear-gradient(135deg, #EEF2FF, #E0E7FF); border: 1px solid #C7D2FE;
  border-radius: 7px; width: 26px; height: 22px; font-size: 12px; cursor: pointer; line-height: 1; }
.kb-ia:hover { background: linear-gradient(135deg, #E0E7FF, #C7D2FE); transform: scale(1.08); }
/* Bandejas de crédito B2B */
.bc-zona { border:1px solid var(--line); border-radius:10px; margin-bottom:12px; overflow:hidden; background:var(--card); }
.bc-zona-head { display:flex; align-items:center; gap:8px; padding:9px 14px; cursor:pointer; background:var(--bg2); border-bottom:1px solid var(--line); font-size:13px; }
.bc-zona-tit { font-weight:700; flex:1; }
.bc-toggle { color:var(--muted); font-size:11px; }
.bc-sem { font-size:12px; font-weight:600; padding:2px 8px; border-radius:20px; }
.bc-sem-rojo { background:#FDEDEC; color:#C0392B; }
.bc-sem-amarillo { background:#FEF9E7; color:#B7770D; }
.bc-grupo { padding:10px 12px 6px; }
.bc-grupo-head { font-size:12px; font-weight:700; padding:5px 10px; border-radius:6px; margin-bottom:8px; background:var(--bg2); }
.bc-card { border:1px solid var(--line); border-radius:8px; padding:9px 11px; margin-bottom:7px; }
.bc-card-top { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:3px; }
.bc-cod { cursor:pointer; color:var(--azul); font-size:13px; }
.bc-cod:hover { text-decoration:underline; }
.bc-ticket { font-size:11px; padding:2px 7px; border-radius:20px; background:var(--bg2); color:var(--muted); }
.bc-monto { font-size:12px; color:var(--muted); margin-left:auto; }
.bc-card-sub { font-size:11.5px; color:var(--muted); margin-bottom:6px; }
.bc-card-acc { display:flex; gap:6px; }
.iacol-cargando { text-align: center; padding: 36px 10px; color: var(--muted); font-size: 13.5px; line-height: 1.7; }
.iacol-spinner { width: 30px; height: 30px; margin: 0 auto 12px; border: 3px solid #E0E7FF; border-top-color: #6366F1;
  border-radius: 50%; animation: iacolGira .8s linear infinite; }
@keyframes iacolGira { to { transform: rotate(360deg); } }
.iacol-texto { max-height: 62vh; overflow-y: auto; font-size: 13.5px; line-height: 1.65; color: #22303F; padding-right: 6px; }
.iacol-h { font-weight: 800; color: var(--navy-2); font-size: 14.5px; margin: 14px 0 4px; padding-top: 10px; border-top: 1px solid var(--line); }
.iacol-h:first-child { border-top: 0; margin-top: 0; padding-top: 0; }
.iacol-li { margin: 2px 0 2px 8px; }
.iacol-sep { height: 8px; }
.iacol-pie { margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 11.5px; color: var(--muted); }
body.night .iacol-texto { color: #D5DEE9; }
body.night .iacol-h { color: #E8EEF5; }

/* Resumen IA: estructura por secciones (v1.478) */
.iacol-h { font-weight: 800; color: var(--navy-2); font-size: 12px; letter-spacing: .06em; text-transform: uppercase;
  margin: 16px 0 8px; padding-bottom: 5px; border-bottom: 2px solid #E0E7FF; }
.iacol-h:first-child { margin-top: 0; }
.iacol-caso { display: grid; grid-template-columns: 26px 40px 62px 1fr 58px minmax(120px, 1.1fr) minmax(105px, .9fr);
  gap: 8px; align-items: baseline; padding: 6px 10px 6px 4px; margin: 2px 0; border-radius: 7px;
  font-size: 12px; line-height: 1.4; background: #FAFBFD; border-left: 3px solid #CBD5E1; }
.iacol-caso::before { text-align: center; font-size: 11px; }
.iacol-caso .ic-dias { text-align: right; font-variant-numeric: tabular-nums; color: #64748B; font-weight: 700; }
.iacol-caso .ic-monto { text-align: right; font-variant-numeric: tabular-nums; font-weight: 700; color: #0B2545; white-space: nowrap; }
.iacol-caso .ic-emp { font-weight: 700; color: #22303F; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.iacol-caso .ic-resp { color: #64748B; font-size: 11px; white-space: nowrap; }
.iacol-caso .ic-traba { color: #475569; }
.iacol-caso .ic-accion { color: #0F7B52; font-weight: 700; }
.iacol-caso .ic-accion::before { content: '→ '; color: #94A3B8; font-weight: 400; }
.iacol-p { margin: 4px 0; font-size: 13px; line-height: 1.55; }
@media (max-width: 760px) {
  .iacol-caso { grid-template-columns: 22px 36px 56px 1fr; row-gap: 2px; }
  .iacol-caso .ic-resp, .iacol-caso .ic-traba, .iacol-caso .ic-accion { grid-column: 2 / -1; }
}
.iacol-caso.rojo { background: #FEF2F2; border-left-color: #EF4444; }
.iacol-caso.rojo::before { content: '🔴'; }
.iacol-caso.ambar { background: #FFFBEB; border-left-color: #D4A017; }
.iacol-caso.ambar::before { content: '🟡'; }
.iacol-caso.verde { background: #F0FDF4; border-left-color: #10B981; }
.iacol-caso.verde::before { content: '🟢'; }
.iacol-num { display: flex; gap: 8px; align-items: flex-start; margin: 5px 0; font-size: 13px; line-height: 1.5; }
.iacol-num span { flex: 0 0 20px; height: 20px; border-radius: 10px; background: #6366F1; color: #fff;
  font-size: 11px; font-weight: 800; display: flex; align-items: center; justify-content: center; margin-top: 1px; }
body.night .iacol-caso { background: #172032; border-left-color: #2A3849; }
body.night .iacol-caso.rojo { background: #2A1A1D; }
body.night .iacol-caso.ambar { background: #2A2416; }
body.night .iacol-caso.verde { background: #16261F; }

/* El modal del resumen necesita más ancho para la grilla del detalle */
.iacol-texto { max-height: 66vh; }
body.night .iacol-caso .ic-emp { color: #E8EEF5; }
body.night .iacol-caso .ic-monto { color: #D5DEE9; }
body.night .iacol-caso .ic-traba { color: #A9B7C6; }

/* Barra de acciones en el modal de desestimados (v1.480) */
.desest-barra { display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 9px 12px; margin-bottom: 10px; background: #FFF8F0; border: 1px solid #F0DCC4;
  border-radius: 8px; font-size: 12px; color: #8A5A2B; line-height: 1.45; }
.desest-barra button { flex: 0 0 auto; }
body.night .desest-barra { background: #2A2118; border-color: #4A3826; color: #D9B98C; }

.desest-tel { cursor: pointer; font-variant-numeric: tabular-nums; font-size: 12px;
  padding: 1px 5px; border-radius: 5px; background: #F1F5F9; color: #334155; }
.desest-tel:hover { background: #E2E8F0; }
body.night .desest-tel { background: #1E2A3A; color: #C7D2E0; }

/* ===== COTIZADOR (v1.486) ===== */
.cot-grid { display: grid; grid-template-columns: 340px 1fr; gap: 16px; align-items: start; }
.cot-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cot-form input, .cot-form select { width: 100%; }
.cot-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.cot-kpi { background: #F7FAFF; border: 1px solid var(--line); border-radius: 9px; padding: 10px 12px; }
.cot-kpi.destacado { background: linear-gradient(135deg, #EEF4FF, #DCE8FC); border-color: #B9CFF0; }
.cot-kpi .k-lb { font-size: 10.5px; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 3px; }
.cot-kpi .k-vl { font-size: 17px; font-weight: 800; color: var(--navy-2); font-variant-numeric: tabular-nums; }
.cot-tabla-wrap { max-height: 52vh; overflow-y: auto; border: 1px solid var(--line); border-radius: 8px; }
.cot-tabla thead th { position: sticky; top: 0; z-index: 1; }
.cot-tabla td { font-size: 12px; padding: 5px 8px; }
.cot-tabla .c-num { text-align: right; font-variant-numeric: tabular-nums; }
.cot-tabla .c-n { text-align: center; color: var(--muted); font-size: 11px; }
.cot-tabla .c-cuota { font-weight: 700; color: var(--navy-2); }
@media (max-width: 900px) { .cot-grid { grid-template-columns: 1fr; } }
body.night .cot-kpi { background: #172032; }

/* ===== B2B MENSAJERÍA — estilos propios ===== */

/* Bandeja: ítem de conversación */
.chat-item { padding: 11px 14px; cursor: pointer; border-left: 3px solid transparent;
  transition: background .12s; border-bottom: 1px solid var(--line); }
.chat-item:hover { background: #F1F5FB; }
.chat-item-act { background: #EAF2FE !important; border-left-color: #123A63; }
.chat-item-urgente { border-left-color: #D94F4F !important; }
.ci-top { display: flex; justify-content: space-between; align-items: center; gap: 6px; margin-bottom: 2px; }
.ci-nom { font-size: 13px; font-weight: 600; color: #16273B; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ci-tiempo { font-size: 10px; color: #9AA8B8; flex: none; }
.ci-pre { font-size: 11.5px; color: #6E7D8E; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: 5px; }
.ci-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.ci-tag { font-size: 10px; font-weight: 600; padding: 2px 8px; border-radius: 999px; background: #EEF2F7; color: #5F7186; }
.ci-tag-urg { background: #FDECEA; color: #C0392B; }

/* Cabecera de conversación */
.cc-info { display: flex; align-items: baseline; gap: 6px; min-width: 0; flex-wrap: wrap; }
.cc-info b { font-size: 14px; font-weight: 700; color: #16273B; }
.cc-phone { font-size: 12px; color: #7C8B9C; }
.cc-ext { font-size: 11px; color: #9AA8B8; background: #EEF2F7; padding: 1px 7px; border-radius: 6px; }
.cc-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.cc-warn { font-size: 11.5px; color: #C0392B; background: #FDECEA; padding: 3px 10px; border-radius: 999px; font-weight: 600; }

/* Mensajes */
.msg { display: flex; flex-direction: column; margin-bottom: 4px; }
.msg-in { align-items: flex-start; }
.msg-out { align-items: flex-end; }
.msg-ia { align-items: flex-start; }
.msg-autor { font-size: 10px; font-weight: 700; color: #7C8B9C; margin-bottom: 2px; padding: 0 2px; text-transform: uppercase; letter-spacing: .4px; }
.msg-ia .msg-autor { color: #1A6B3A; }
.msg-burbuja { max-width: 72%; padding: 8px 12px; font-size: 13px; line-height: 1.45;
  word-wrap: break-word; box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.msg-in .msg-burbuja { background: #fff; color: #1F2D3D; border-radius: 0 10px 10px 10px; }
.msg-out .msg-burbuja { background: #D6F2D6; color: #143E2C; border-radius: 10px 0 10px 10px; }
.msg-ia .msg-burbuja { background: #E8F5EE; color: #143E2C; border-radius: 0 10px 10px 10px; border-left: 3px solid #1FA06A; }
.msg-hora { font-size: 10px; color: #9AA8B8; margin-top: 2px; padding: 0 2px; }

/* Ficha del lead */
.cf-tit { font-size: 10.5px; font-weight: 700; color: #52627A; text-transform: uppercase; letter-spacing: .5px; padding: 14px 16px 6px; }
.cf-dato { padding: 5px 16px; display: flex; flex-direction: column; gap: 2px; }
.cf-dato label { font-size: 10px; font-weight: 700; color: #9AA8B8; text-transform: uppercase; letter-spacing: .4px; }
.cf-dato span { font-size: 12.5px; color: #16273B; }
.cf-warn { margin: 6px 16px; background: #FFF3CD; color: #856404; font-size: 11.5px; font-weight: 600; padding: 6px 12px; border-radius: 8px; }
.cf-input { width: 100%; box-sizing: border-box; padding: 6px 10px; border: 1px solid var(--line); border-radius: 6px; font-size: 12px; background: #F4F7FC; }
.cf-input:focus { outline: none; border-color: var(--azul); background: #fff; }
.cf-missing label { color: #C0392B; }

/* Barra de escritura B2B */
#v-b2b-chat .chat-input-bar {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 14px; border-top: 1px solid #E2E8F0;
  background: #F8FAFC; flex-shrink: 0;
}
#v-b2b-chat .chat-input-pill {
  flex: 1; background: #fff; border: 1.5px solid #DDE3EA;
  border-radius: 24px; padding: 6px 14px; min-width: 0;
  transition: border-color .15s;
}
#v-b2b-chat .chat-input-pill:focus-within { border-color: var(--azul); }
#v-b2b-chat .chat-input-pill input {
  width: 100%; box-sizing: border-box; border: none; outline: none;
  background: transparent; font-size: 13.5px; color: #1F2D3D;
}
#v-b2b-chat .chat-input-pill input::placeholder { color: #A8B4C0; }
#v-b2b-chat .ci-send {
  width: 40px; height: 40px; border-radius: 50%; border: none; cursor: pointer;
  background: #CBD5E1; color: #fff; font-size: 16px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  transition: background .15s, transform .1s;
}
#v-b2b-chat .ci-send:hover { background: #25D366; transform: scale(1.06); }

/* Ficha sidebar — slots editables */
.cf-slot-row { padding: 8px 14px; border-bottom: 1px solid #F0F4F8; }
.cf-slot-lbl { font-size: 10px; font-weight: 700; color: #9AA8B8; text-transform: uppercase; letter-spacing: .4px; margin-bottom: 4px; }
.cf-slot-val { font-size: 13px; color: #1F2D3D; font-weight: 500; }
.cf-slot-edit { display: flex; gap: 6px; align-items: center; margin-top: 4px; }
.cf-slot-edit input {
  flex: 1; padding: 5px 9px; border: 1px solid #DDE3EA; border-radius: 6px;
  font-size: 12.5px; background: #F4F7FC; color: #1F2D3D; outline: none;
}
.cf-slot-edit input:focus { border-color: var(--azul); background: #fff; }
.cf-slot-save {
  width: 28px; height: 28px; border-radius: 6px; border: none; cursor: pointer;
  background: #E8F5EE; color: #1A6B3A; font-size: 14px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  transition: background .15s;
}
.cf-slot-save:hover { background: #25D366; color: #fff; }
.cf-slot-missing .cf-slot-lbl { color: #E53E3E; }
.cf-slot-missing .cf-slot-edit input { border-color: #FCA5A5; background: #FFF5F5; }

/* Modo oscuro */
body.night .chat-item:hover { background: #1A2534; }
body.night .chat-item-act { background: #162030 !important; border-left-color: #3B82F6; }
body.night .ci-nom { color: #EAF1FA; }
body.night .ci-pre { color: #7A8FA6; }
body.night .ci-tag { background: #1A2534; color: #7A8FA6; }
body.night .cc-info b { color: #EAF1FA; }
body.night .cc-phone, body.night .cc-ext { color: #7A8FA6; }
body.night .msg-in .msg-burbuja { background: #1E2D3D; color: #EAF1FA; }
body.night .msg-out .msg-burbuja { background: #1A3A2A; color: #C8EDD8; }
body.night .msg-ia .msg-burbuja { background: #142A1E; color: #C8EDD8; }
body.night .msg-hora { color: #556070; }
body.night .cf-tit { color: #7A8FA6; }
body.night .cf-dato label { color: #556070; }
body.night .cf-dato span { color: #EAF1FA; }
body.night .cf-input { background: #1A2534; border-color: #2A3849; color: #EAF1FA; }
