/* ============================================================
   Konecta — Dashboard Inicio + Chat (estilo mockup). Aditivo.
   ============================================================ */
/* ---- Inicio: tarjetas resumen ---- */
.dash-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
@media(max-width:1100px){.dash-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.dash-cards{grid-template-columns:1fr}}
.dash-card{background:var(--superficie);border:1px solid var(--linea);border-radius:16px;padding:18px;
  position:relative;overflow:hidden;box-shadow:var(--sombra);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.dash-card::after{content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--verde),#8bd64f);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.dash-card:hover::after{transform:scaleX(1)}
.dash-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(108,194,74,.15);border-color:rgba(108,194,74,.32)}
.dash-card .dic{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,var(--verde),var(--verde-osc));
  display:grid;place-items:center;margin-bottom:12px;box-shadow:0 8px 18px rgba(108,194,74,.3)}
.dash-card .dic svg{width:19px;height:19px;fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.dash-card .dnum{font-size:18px;font-weight:800;line-height:1;color:var(--texto)}
.dash-card .dlbl{color:var(--texto-2);font-size:12.5px;margin-top:5px}

/* ---- Inicio: gráfico (izq) + accesos (der) ---- */
.dash-fila2{display:grid;grid-template-columns:1.6fr 1fr;gap:16px}
@media(max-width:900px){.dash-fila2{grid-template-columns:1fr}}
.dash-headfig{text-align:right;flex:0 0 auto}
.dash-headfig .f{font-size:20px;font-weight:800;color:var(--texto);line-height:1}
.dash-acc{display:flex;flex-direction:column;gap:9px;margin-top:4px}
.dash-acc a{display:flex;align-items:center;gap:11px;padding:12px 13px;border:1px solid var(--linea);
  border-radius:11px;font-size:13.5px;font-weight:600;background:var(--superficie-2);color:var(--texto);
  cursor:pointer;transition:transform .18s ease,border-color .18s ease}
.dash-acc a:hover{border-color:rgba(108,194,74,.4);transform:translateX(3px)}
.dash-acc .ddot{flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:var(--verde);box-shadow:0 0 10px var(--verde)}

/* ============ Conversaciones (chat tipo WhatsApp) ============ */
/* Lista y chat = DOS tarjetas separadas con un espacio entre ellas (estilo moderno). */
.chatwrap{display:grid;grid-template-columns:3fr 7fr;gap:16px;height:calc(100vh - 300px);min-height:400px;margin-bottom:10px}
.convlist{background:var(--superficie);border:1px solid var(--linea);border-radius:18px;overflow:hidden;
  box-shadow:0 20px 52px -10px rgba(16,35,46,.18),0 8px 24px -8px rgba(108,194,74,.16);display:flex;flex-direction:column;min-height:0}
.convlist .buscar{padding:14px;border-bottom:1px solid var(--linea)}
.convlist .buscar input{width:100%;padding:10px 14px;border-radius:10px;background:var(--superficie-2);
  border:1px solid var(--linea);color:var(--texto);font-size:13.5px;outline:none;font-family:inherit}
.convs{flex:1;overflow-y:auto}
.conv{display:flex;gap:11px;padding:13px 14px;cursor:pointer;border-bottom:1px solid var(--linea);transition:.15s}
.conv:hover{background:var(--superficie-2)}
.conv.sel{background:var(--superficie-2);box-shadow:inset 3px 0 0 var(--verde)}
.conv .av{flex:0 0 42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#8a99ab,#5b6b7e);
  color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px}
.conv .info{flex:1;min-width:0}
.conv .info .n{display:flex;justify-content:space-between;align-items:center;gap:8px}
.conv .info .n b{font-size:13.5px;color:var(--texto);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.conv .info .n .t{font-size:11px;color:var(--niebla);flex:0 0 auto}
.conv .info .last{font-size:12.5px;color:var(--texto-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}
.conv .botpill{font-size:11px;font-weight:700;margin-top:3px;display:inline-block}
.conv .botpill.on{color:var(--niebla)}
.conv .botpill.off{color:#c98a3a}

.chatview{background:var(--superficie);border:1px solid var(--linea);border-radius:18px;overflow:hidden;
  box-shadow:0 20px 52px -10px rgba(16,35,46,.18),0 8px 24px -8px rgba(108,194,74,.16);display:flex;flex-direction:column;min-height:0}
.chathead{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--linea)}
.chathead .av{flex:0 0 40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#8a99ab,#5b6b7e);
  color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px}
.chathead .who b{font-size:15px;display:block;color:var(--texto)}
.chathead .who span{font-size:12px;color:var(--verde-osc)}
.chathead .acciones{margin-left:auto}
.toggle-bot{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:10px;border:1px solid var(--linea);
  background:var(--superficie-2);font-size:12.5px;font-weight:700;color:var(--texto-2);cursor:pointer;font-family:inherit}
.toggle-bot .sw{width:34px;height:19px;border-radius:20px;background:var(--verde);position:relative;transition:.2s;flex:0 0 34px}
.toggle-bot .sw::after{content:"";position:absolute;top:2px;right:2px;width:15px;height:15px;border-radius:50%;background:#fff;transition:.2s}
.toggle-bot.off .sw{background:var(--linea-fuerte)}
.toggle-bot.off .sw::after{right:auto;left:2px}
/* Botón "Tomar control" (verde de marca). En modo agente cambia a "Devolver al bot". */
.btn-control{display:flex;align-items:center;gap:8px;padding:9px 16px;border-radius:10px;border:none;
  background:linear-gradient(135deg,var(--verde),var(--verde-osc));color:#fff;font-size:13px;font-weight:700;
  cursor:pointer;font-family:inherit;box-shadow:0 7px 16px -7px rgba(108,194,74,.6);
  transition:transform .15s ease,filter .2s ease,box-shadow .2s ease}
.btn-control:hover{transform:translateY(-1px);filter:brightness(1.05)}
.btn-control:active{transform:translateY(0)}
.btn-control svg{width:17px;height:17px}
.btn-control.devolver{background:var(--superficie-2);color:var(--texto-2);border:1px solid var(--linea);box-shadow:none}
.btn-control.devolver:hover{filter:none;border-color:var(--linea-fuerte);transform:none}

.chatbody{flex:1;overflow-y:auto;padding:20px 22px;display:flex;flex-direction:column;gap:9px;background:var(--superficie-2)}
.msg-row{display:flex;flex-direction:column;max-width:82%}
.msg-row.in{align-self:flex-start;align-items:flex-start}
.msg-row.out{align-self:flex-end;align-items:flex-end}
.msg-lbl{font-size:7px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--niebla);margin:0 4px 1px;opacity:.8}
.msg{padding:11px 15px;border-radius:14px;font-size:14.5px;line-height:1.55;box-shadow:0 1px 3px rgba(16,35,46,.07)}
.msg .h{display:block;text-align:right;font-size:10px;color:var(--niebla);margin-top:4px}
.msg.in{background:var(--superficie);border:1px solid var(--linea);border-top-left-radius:4px;color:var(--texto)}
.msg.out{background:var(--burbuja-bot);color:#0a2e1a;border-top-right-radius:4px}
[data-tema="oscuro"] .msg.out{color:#eafff7}
.chatfoot{display:flex;gap:10px;padding:14px 18px;border-top:1px solid var(--linea);align-items:center}
.chatfoot input{flex:1;padding:12px 16px;border-radius:24px;background:var(--superficie-2);border:1px solid var(--linea);
  color:var(--texto);font-size:14px;outline:none;font-family:inherit}
.chatfoot .enviar{flex:0 0 44px;width:44px;height:44px;border-radius:50%;border:none;
  background:linear-gradient(135deg,var(--verde),var(--verde-osc));color:#fff;cursor:pointer;display:grid;place-items:center}
.chatfoot .enviar svg{width:19px;height:19px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.chat-aviso{font-size:12px;color:var(--texto-2);text-align:center;padding:9px;background:rgba(108,194,74,.08);border-top:1px solid var(--linea)}
/* ---- Adjuntar + imágenes/archivos en el chat ---- */
.chatfoot .adjuntar{flex:0 0 44px;width:44px;height:44px;border-radius:12px;border:1px solid var(--linea);
  background:var(--superficie-2);cursor:pointer;display:grid;place-items:center;color:var(--texto-2);transition:.15s}
.chatfoot .adjuntar:hover{border-color:var(--verde);color:var(--verde)}
.chatfoot .adjuntar svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8}
.msg.tiene-media{padding:5px 5px 6px}
.msg-img{display:block}
.msg-img img{max-width:260px;max-height:300px;width:100%;border-radius:10px;display:block;cursor:pointer}
.msg-file{display:flex;align-items:center;gap:10px;padding:8px 12px 8px 8px;text-decoration:none;color:inherit;min-width:170px}
.msg-file .fic{width:30px;height:30px;flex:0 0 30px;color:var(--verde-osc)}
.msg-file-tx{display:flex;flex-direction:column;line-height:1.2;overflow:hidden}
.msg-file-tx b{font-size:13px;color:var(--texto);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px}
.msg-file-tx small{font-size:10.5px;color:var(--niebla);font-weight:700;letter-spacing:.4px}
/* ---- Barra superior de Conversaciones: KPIs + filtros (Hoy/Ayer/7/30, Todas/Activas/Pausadas) ---- */
.conv-top{margin-bottom:8px}
.cv-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px}
.cv-bot{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--texto-2)}
.cv-bot b{color:var(--verde-osc)}
.cv-dot{width:8px;height:8px;border-radius:50%;background:var(--verde);box-shadow:0 0 8px var(--verde)}
.cv-stat{font-size:12.5px;color:var(--texto-2);white-space:nowrap;
  background:var(--superficie);border:1px solid var(--linea);border-radius:10px;
  padding:6px 13px;box-shadow:0 4px 12px rgba(16,35,46,.05)}
.cv-stat b{font-size:16px;color:var(--texto);font-weight:800;margin-right:4px}
.cv-canal{font-size:11px;padding:1px 7px;border-radius:6px;font-weight:700;white-space:nowrap}
.cv-canal.fb{background:#e6f1fb;color:#0c447c}
.cv-canal.ig{background:#fbeaf0;color:#72243e}
.cv-canal.com{background:#f1efe8;color:#444441}
.cv-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:7px}
@media(max-width:760px){.cv-kpis{grid-template-columns:1fr}}
.cv-kpi{background:var(--superficie);border:1px solid var(--linea);border-radius:13px;padding:9px 15px;box-shadow:0 6px 16px rgba(16,35,46,.06)}
.cv-kpi b{display:block;font-size:20px;font-weight:800;color:var(--texto);line-height:1}
.cv-kpi span{font-size:11.5px;color:var(--texto-2);margin-top:3px;display:block}
.cv-filtros{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.cv-tabs,.cv-days{display:flex;gap:5px;background:var(--superficie-2);border:1px solid var(--linea);border-radius:11px;padding:4px}
.cv-fil,.cv-day{border:0;background:transparent;color:var(--texto-2);font-size:13px;font-weight:600;padding:7px 13px;border-radius:8px;cursor:pointer;font-family:inherit;transition:.15s}
.cv-fil:hover,.cv-day:hover{color:var(--texto)}
.cv-fil.on,.cv-day.on{background:var(--superficie);color:var(--verde-osc);box-shadow:0 2px 6px rgba(16,35,46,.09)}
.chat-vacio{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;
  color:var(--texto-2);gap:8px;text-align:center;padding:24px}
.chat-vacio svg{width:40px;height:40px;opacity:.45}
.chat-vacio b{color:var(--texto);font-size:15px}
@media(max-width:900px){.chatwrap{grid-template-columns:1fr;height:auto}.convlist{max-height:260px}.chatbody{min-height:340px}}

/* ---- Conversaciones: Koni se queda NORMAL (abajo-derecha, igual que en todo el
   panel). La tarjeta del chat (.chatwrap, ver arriba) termina un poco antes para que
   el botón Enviar quede por encima de Koni, sin taparlo — como en las demás secciones. */

/* ---- Pulido del composer del chat: foco del input + hover del botón ---- */
.chatfoot input:focus{border-color:rgba(108,194,74,.6) !important;box-shadow:0 0 0 3px rgba(108,194,74,.13)}
.chatfoot .enviar{transition:transform .15s ease,box-shadow .2s ease,filter .2s ease;
  box-shadow:0 7px 16px -6px rgba(108,194,74,.6)}
.chatfoot .enviar:hover{transform:translateY(-1px) scale(1.05);filter:brightness(1.06)}
.chatfoot .enviar:active{transform:translateY(0) scale(1)}
