/* Chats DB — app del equipo para WhatsApp. Hecha primero para el celular. */
:root{
  --burgundy:#61112b; --burgundy-2:#7a1838; --gold:#c28d39; --gold-ink:#75581c;
  --ink:#1e1c1a; --ink-2:#6d6559; --line:rgba(28,26,24,0.1);
  --bg:#f4efe8; --surface:#fffdfa; --chat-bg:#efe7dc;
  --success:#2f7a4a; --danger:#a63d33;
  --safe-t:env(safe-area-inset-top,0px); --safe-b:env(safe-area-inset-bottom,0px);
  --app-h:100dvh;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
[hidden]{display:none !important;}
html,body{margin:0;height:100%;background:var(--bg);overscroll-behavior:none;-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",system-ui,Roboto,sans-serif;color:var(--ink);font-size:15px;line-height:1.4;}
button,input,select,textarea{font:inherit;color:inherit;}
button{cursor:pointer;}
a{color:var(--burgundy);}
a:hover{color:var(--burgundy-2);}

/* ── Ingreso ─────────────────────────────────────────────────── */
.cx-login{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:calc(24px + var(--safe-t)) 20px calc(24px + var(--safe-b));
  background:radial-gradient(120% 70% at 50% 0%,#7a1838 0%,#4a0d21 60%,#2a0713 100%);}
.cx-login-card{width:100%;max-width:380px;background:var(--surface);border-radius:26px;padding:30px 24px 24px;box-shadow:0 24px 60px rgba(0,0,0,0.35);text-align:center;}
.cx-login-ico img{border-radius:18px;box-shadow:0 8px 20px rgba(97,17,43,0.3);}
.cx-login-card h1{margin:14px 0 4px;font-size:26px;letter-spacing:-0.3px;}
.cx-login-card > p{margin:0 0 20px;color:var(--ink-2);font-size:14px;}
.cx-login-card form{display:flex;flex-direction:column;gap:14px;text-align:left;}
.cx-login-card label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--ink-2);}
.cx-login-card input{font-size:16px;padding:14px 15px;border-radius:14px;border:1px solid var(--line);background:#fff;outline:none;}
.cx-login-card input:focus{border-color:var(--burgundy);box-shadow:0 0 0 3px rgba(97,17,43,0.12);}
.cx-login-card button{margin-top:6px;padding:15px;border:0;border-radius:14px;background:var(--burgundy);color:#fdf6ec;font-size:16px;font-weight:600;}
.cx-login-card button:active{transform:scale(0.98);}
.cx-login-error{background:#fbe9e6;color:#8a2f27;border-radius:12px;padding:11px 13px;font-size:14px;margin-bottom:14px;text-align:left;}
.cx-login-nota{margin:18px 0 0;font-size:12.5px;color:var(--ink-2);}

/* ── Marco de la app ─────────────────────────────────────────── */
.cx{overflow:hidden;}
.ch-app{position:fixed;left:0;right:0;top:0;height:var(--app-h);display:grid;grid-template-columns:minmax(0,1fr);overflow:hidden;background:var(--bg);}

/* ── Lista ───────────────────────────────────────────────────── */
.ch-lista{display:flex;flex-direction:column;min-height:0;height:100%;background:var(--surface);position:relative;}
.ch-lista-cab{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:calc(12px + var(--safe-t)) 16px 10px;}
.ch-marca{display:flex;align-items:center;gap:11px;min-width:0;}
.ch-marca img{border-radius:10px;flex:none;}
.ch-marca h1{margin:0;font-size:24px;font-weight:700;letter-spacing:-0.4px;line-height:1.1;}
.ch-sub{margin:2px 0 0;font-size:12.5px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ch-cab-acc{display:flex;align-items:center;gap:6px;flex:none;}
.ch-avisos{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:18px;border:1px solid var(--line);background:#fff;font-size:13px;font-weight:600;color:var(--burgundy);}
.ch-avisos.on{background:rgba(47,122,74,0.1);border-color:rgba(47,122,74,0.25);color:var(--success);}
.ch-avisos.on span{display:none;}
.ch-salir{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;color:var(--ink-2);}
.ch-salir:active{background:rgba(28,26,24,0.06);}
.ch-aviso-config{margin:0 16px 8px;padding:10px 12px;border-radius:12px;background:#fbf1de;color:var(--gold-ink);font-size:13px;}

.ch-busca{position:relative;margin:2px 16px 10px;}
.ch-busca svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--ink-2);}
.ch-busca input{width:100%;height:42px;border-radius:21px;border:0;background:rgba(28,26,24,0.06);padding:0 14px 0 38px;font-size:16px;outline:none;-webkit-appearance:none;appearance:none;}
.ch-busca input:focus{background:#fff;box-shadow:0 0 0 1.5px var(--burgundy);}

.ch-filtros{display:flex;gap:7px;overflow-x:auto;padding:0 16px 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch;flex:none;}
.ch-filtros::-webkit-scrollbar{display:none;}
.ch-chip{flex:none;display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:17px;border:1px solid var(--line);background:#fff;font-size:13.5px;font-weight:600;color:var(--ink-2);white-space:nowrap;}
.ch-chip.on{background:var(--burgundy);border-color:var(--burgundy);color:#fdf6ec;}
.ch-chip b{font-size:11px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--danger);color:#fff;display:inline-flex;align-items:center;justify-content:center;}
.ch-chip b:empty{display:none;}
.ch-chip.on b{background:#fdf6ec;color:var(--burgundy);}

.ch-opciones{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 16px 8px;border-bottom:1px solid var(--line);flex:none;}
.ch-switch{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);}
.ch-switch input{width:18px;height:18px;accent-color:var(--burgundy);margin:0;}
.ch-opciones select{border:0;background:transparent;font-size:13.5px;font-weight:600;color:var(--burgundy);padding:6px 2px;}

.ch-items{list-style:none;margin:0;padding:0 0 16px;}
.ch-item{display:flex;gap:12px;align-items:center;width:100%;padding:11px 16px;border:0;background:transparent;text-align:left;position:relative;}
.ch-item::after{content:"";position:absolute;left:74px;right:0;bottom:0;height:1px;background:var(--line);}
.ch-item:active,.ch-item.on{background:rgba(97,17,43,0.05);}
.ch-item-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.ch-item-l1,.ch-item-l2{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.ch-item-l1 strong{font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ch-item-l1 time{font-size:12px;color:var(--ink-2);flex:none;}
.ch-item.nuevo .ch-item-l1 time{color:var(--burgundy);font-weight:700;}
.ch-previa{font-size:14px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ch-item.nuevo .ch-previa{color:var(--ink);font-weight:500;}
.ch-n{flex:none;min-width:21px;height:21px;padding:0 6px;border-radius:11px;background:var(--burgundy);color:#fff;font-size:12px;display:inline-flex;align-items:center;justify-content:center;}
.ch-item-l3{display:flex;flex-wrap:wrap;gap:5px;margin-top:3px;}
.ch-item-l3:empty{display:none;}
.ch-items-vacio{padding:48px 24px;text-align:center;color:var(--ink-2);font-size:14px;}
.ch-esq{display:flex;align-items:center;gap:12px;padding:12px 16px;}
@keyframes cx-brillo{0%{background-position:100% 50%;}100%{background-position:0 50%;}}

.ch-avatar{flex:none;width:48px;height:48px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;background:#e9e2d8;color:var(--ink-2);letter-spacing:0.3px;}
.ch-avatar.grande{width:72px;height:72px;font-size:24px;}
.ch-av-vip{background:linear-gradient(140deg,#f1dfb8,#d9b56f);color:#4a3510;}
.ch-av-general{background:#dbe8ee;color:#244f63;}
.ch-av-closer{background:#efdde2;color:var(--burgundy);}
.ch-av-rechazado{background:#f3d9d5;color:#8a2f27;}
.ch-tag{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:10px;font-size:11px;font-weight:700;letter-spacing:0.2px;}
.ch-tag-vip{background:rgba(194,141,57,0.18);color:var(--gold-ink);}
.ch-tag-general{background:rgba(44,106,133,0.12);color:#2c6a85;}
.ch-tag-closer{background:rgba(97,17,43,0.09);color:var(--burgundy);}
.ch-tag-rechazado{background:rgba(166,61,51,0.13);color:var(--danger);}
.ch-tag-salir{background:rgba(28,26,24,0.08);color:var(--ink-2);}
.ch-atiende{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:10px;font-size:11px;font-weight:600;background:rgba(28,26,24,0.06);color:var(--ink-2);}
.ch-atiende.yo{background:rgba(47,122,74,0.12);color:var(--success);}

/* ── Conversación (pantalla completa en el celular) ──────────── */
.ch-hilo{position:absolute;inset:0;z-index:5;background:var(--chat-bg);transform:translate3d(100%,0,0);transition:transform 0.3s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;min-height:0;}
.ch-app.ch-abierto .ch-hilo{transform:none;}
.ch-vacio{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--ink-2);text-align:center;padding:24px;}
.ch-vacio img{border-radius:16px;opacity:0.85;}
.ch-hilo-in{display:flex;flex-direction:column;height:100%;min-height:0;}

.ch-hilo-cab{flex:none;display:flex;align-items:center;gap:4px;padding:calc(6px + var(--safe-t)) 8px 6px 2px;background:rgba(255,253,250,0.94);-webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%);border-bottom:1px solid var(--line);}
.ch-atras{flex:none;width:44px;height:44px;border:0;background:transparent;color:var(--burgundy);display:inline-flex;align-items:center;justify-content:center;border-radius:50%;}
.ch-atras:active{background:rgba(97,17,43,0.08);}
.ch-h-persona{flex:1;min-width:0;display:flex;align-items:center;gap:10px;border:0;background:transparent;padding:4px 6px;border-radius:12px;text-align:left;}
.ch-h-persona:active{background:rgba(28,26,24,0.05);}
.ch-h-persona .ch-avatar{width:40px;height:40px;font-size:14px;}
.ch-h-quien{min-width:0;display:flex;flex-direction:column;}
.ch-h-quien strong{font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ch-h-quien span{font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ch-h-quien .ch-tag{height:17px;font-size:10px;padding:0 6px;}
.ch-h-acciones{flex:none;display:flex;align-items:center;gap:6px;}
.ch-tomar{height:34px;padding:0 13px;border-radius:17px;border:1px solid rgba(97,17,43,0.25);background:#fff;color:var(--burgundy);font-size:13px;font-weight:600;white-space:nowrap;}
.ch-tomar:active{background:rgba(97,17,43,0.08);}
#ch-mover,.ch-solo-pc{display:none;}

.ch-msgs{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:12px 10px 10px;display:flex;flex-direction:column;
  background-color:var(--chat-bg);background-image:radial-gradient(rgba(97,17,43,0.05) 1px,transparent 1px);background-size:18px 18px;}
.ch-dia{align-self:center;margin:10px 0 6px;}
.ch-dia span{display:inline-block;padding:4px 11px;border-radius:9px;background:rgba(255,253,250,0.92);font-size:12px;color:var(--ink-2);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,0.05);}
.ch-dia span::first-letter{text-transform:uppercase;}
.ch-m{max-width:min(82%,560px);margin:2px 0;padding:7px 10px 5px;border-radius:17px;font-size:15.5px;line-height:1.38;box-shadow:0 1px 1.5px rgba(0,0,0,0.08);word-wrap:break-word;overflow-wrap:anywhere;position:relative;}
.ch-in{align-self:flex-start;background:#fff;border-bottom-left-radius:6px;}
.ch-out{align-self:flex-end;background:var(--burgundy);color:#fdf6ec;border-bottom-right-radius:6px;}
.ch-out a{color:#f3d9a4;}
.ch-out.ch-tpl{background:#7d2a45;}
.ch-out.ch-falla{background:#fbe9e6;color:#5a1f19;}
.ch-in + .ch-out,.ch-out + .ch-in{margin-top:8px;}
.ch-rot{display:block;font-size:11px;font-weight:700;letter-spacing:0.2px;opacity:0.72;margin-bottom:2px;}
.ch-txt{white-space:normal;}
.ch-meta{display:flex;align-items:center;justify-content:flex-end;gap:3px;font-size:11px;opacity:0.65;margin-top:2px;}
.ch-tick{display:inline-flex;}
.ch-tick-leido{color:#9fd8ff;opacity:1;}
.ch-out .ch-tick-leido svg{color:#9fd8ff;}
.ch-tick-fallido{color:var(--danger);}
.ch-err{margin-top:4px;font-size:12px;color:var(--danger);}
.ch-img{display:block;max-width:100%;max-height:340px;border-radius:12px;margin:2px 0 4px;}
.ch-m audio,.ch-m video{max-width:100%;display:block;margin:2px 0 4px;}
.ch-doc{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:10px;background:rgba(0,0,0,0.06);text-decoration:none;font-weight:600;}
.ch-cargando{align-self:center;display:flex;gap:6px;margin:auto;}
.ch-cargando i{width:8px;height:8px;border-radius:50%;background:var(--burgundy);opacity:0.35;animation:cx-punto 1s infinite;}
.ch-cargando i:nth-child(2){animation-delay:0.15s;}
.ch-cargando i:nth-child(3){animation-delay:0.3s;}
@keyframes cx-punto{50%{opacity:1;transform:translateY(-3px);}}

/* ── Escribir ────────────────────────────────────────────────── */
.ch-compo{flex:none;padding:8px 8px calc(8px + var(--safe-b));background:rgba(255,253,250,0.96);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--line);}
.ch-escribe{display:flex;align-items:flex-end;gap:8px;}
.ch-escribe textarea{flex:1;min-height:44px;max-height:160px;resize:none;border:1px solid var(--line);border-radius:22px;padding:11px 16px;font-size:16px;line-height:1.35;background:#fff;outline:none;-webkit-appearance:none;appearance:none;}
.ch-escribe textarea:focus{border-color:rgba(97,17,43,0.4);}
.ch-enviar{flex:none;width:44px;height:44px;border-radius:50%;border:0;background:var(--burgundy);color:#fdf6ec;display:inline-flex;align-items:center;justify-content:center;transition:transform 0.15s;}
.ch-enviar:active{transform:scale(0.92);}
.ch-enviar.is-loading svg{opacity:0;}
.ch-enviar.is-loading{position:relative;}
.ch-enviar.is-loading::after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;border:2px solid rgba(253,246,236,0.35);border-top-color:#fdf6ec;animation:cx-gira 0.7s linear infinite;}
@keyframes cx-gira{to{transform:rotate(360deg);}}
.ch-ventana{padding:4px 4px 2px;display:flex;flex-direction:column;gap:10px;}
.ch-ventana p{margin:0;font-size:13.5px;color:var(--ink-2);}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 18px;border-radius:14px;border:0;font-size:15px;font-weight:600;}
.btn-primary{background:var(--burgundy);color:#fdf6ec;}
.btn-primary:disabled{opacity:0.5;}
.btn.is-loading{opacity:0.7;pointer-events:none;}

/* ── Datos de la persona: hoja que sube desde abajo ──────────── */
.ch-velo{position:fixed;inset:0;z-index:20;background:rgba(20,8,12,0.38);opacity:0;pointer-events:none;transition:opacity 0.25s;}
.ch-app.ch-info-on .ch-velo{opacity:1;pointer-events:auto;}
.ch-info{position:fixed;left:0;right:0;bottom:0;z-index:21;max-height:82%;display:flex;flex-direction:column;background:var(--surface);border-radius:22px 22px 0 0;box-shadow:0 -10px 40px rgba(0,0,0,0.18);transform:translate3d(0,105%,0);transition:transform 0.32s cubic-bezier(.2,.8,.2,1);padding-bottom:var(--safe-b);}
.ch-app.ch-info-on #ch-info{transform:none;}
.ch-info-asa{width:38px;height:5px;border-radius:3px;background:rgba(28,26,24,0.18);margin:8px auto 0;flex:none;}
.ch-info-cab{display:flex;align-items:center;justify-content:space-between;padding:8px 12px 6px 18px;flex:none;}
.ch-info-cab strong{font-size:15px;}
.ch-ic-btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;min-width:40px;padding:0 12px;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:14px;font-weight:600;}
.ch-info-cab .ch-ic-btn{border:0;background:rgba(28,26,24,0.06);border-radius:50%;padding:0;}
.ch-info-cuerpo{overflow-y:auto;padding:4px 18px 18px;-webkit-overflow-scrolling:touch;}
.ch-ficha{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;padding:6px 0 14px;}
.ch-ficha strong{font-size:18px;margin-top:6px;}
.ch-ficha span{font-size:13.5px;color:var(--ink-2);}
.ch-ficha .ch-consent{margin-top:8px;padding:4px 10px;border-radius:10px;font-size:12px;font-weight:600;}
.ch-consent.si{background:rgba(47,122,74,0.12);color:var(--success);}
.ch-consent.no{background:rgba(28,26,24,0.06);color:var(--ink-2);}
.ch-info-cuerpo h4{margin:14px 0 8px;font-size:11.5px;letter-spacing:0.6px;text-transform:uppercase;color:var(--ink-2);}
.ch-ordenes,.ch-envios{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.ch-ordenes li{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:center;padding:10px 12px;border-radius:12px;background:#fff;border:1px solid var(--line);font-size:13px;}
.ch-ordenes li strong{font-size:14px;}
.ch-ordenes li span:not(.badge){grid-column:1/-1;color:var(--ink-2);}
.badge{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:10px;font-size:11px;font-weight:700;background:rgba(28,26,24,0.07);color:var(--ink-2);}
.badge.paid{background:rgba(47,122,74,0.13);color:var(--success);}
.badge.failed,.badge.cancelled{background:rgba(166,61,51,0.12);color:var(--danger);}
.badge.pending{background:rgba(194,141,57,0.18);color:var(--gold-ink);}
.ch-envios li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:13px;padding:8px 0;border-bottom:1px solid var(--line);}
.ch-envios li time{margin-left:auto;color:var(--ink-2);font-size:12px;}
.ch-envios li small{width:100%;color:var(--ink-2);}
.ch-env-enviado{color:var(--success);font-weight:600;}
.ch-env-fallido{color:var(--danger);font-weight:600;}
.ch-env-omitido{color:var(--ink-2);font-weight:600;}
.ch-acciones-movil{display:flex;flex-direction:column;gap:8px;}
.ch-acciones-movil .ch-ic-btn{justify-content:flex-start;width:100%;min-height:46px;}
.ch-nota-24{margin:16px 0 0;font-size:12.5px;color:var(--ink-2);}
.empty{color:var(--ink-2);font-size:14px;}

/* ── Aviso flotante ──────────────────────────────────────────── */
.ch-toast{position:fixed;left:50%;bottom:calc(84px + var(--safe-b));z-index:40;transform:translate(-50%,20px);max-width:min(92vw,440px);padding:12px 16px;border-radius:14px;background:#2a1a1f;color:#fdf6ec;font-size:14px;box-shadow:0 10px 30px rgba(0,0,0,0.25);opacity:0;pointer-events:none;transition:opacity 0.25s,transform 0.25s;}
.ch-toast.on{opacity:1;transform:translate(-50%,0);}
.ch-toast.ok{background:#1f3d2b;}

/* ── Tablet y computador: lista y chat lado a lado ───────────── */
@media (min-width:900px){
  .ch-app{grid-template-columns:380px minmax(0,1fr);}
  .ch-lista{border-right:1px solid var(--line);}
  .ch-hilo{position:relative;inset:auto;transform:none;transition:none;z-index:auto;}
  .ch-atras{display:none;}
  .ch-hilo-cab{padding-left:12px;}
  #ch-mover{display:block;height:34px;border-radius:17px;border:1px solid var(--line);background:#fff;padding:0 10px;font-size:13px;}
  .ch-solo-pc{display:inline-flex;align-items:center;}
  .ch-msgs{padding:16px 6%;}
  .ch-compo{padding:10px 6% 12px;}
  .ch-info{left:auto;top:0;bottom:0;width:360px;max-height:none;border-radius:0;transform:translate3d(105%,0,0);}
  .ch-app.ch-info-on #ch-info{transform:none;}
  .ch-info-asa{display:none;}
  .ch-acciones-movil{display:none;}
}
@media (prefers-reduced-motion:reduce){*{transition:none !important;animation:none !important;}}

/* ══ Segunda etapa: secciones, contactos, adjuntos, notas, hojas ══ */
.ch-vista{display:flex;flex-direction:column;flex:1;min-height:0;}
.ch-scroll{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;position:relative;}
.ch-linea{margin:0 16px 8px;font-size:12.5px;line-height:1.4;color:var(--ink-2);}

/* Esqueletos mientras carga */
.ch-esq i{flex:none;width:48px;height:48px;border-radius:50%;}
.ch-esq span{flex:1;display:flex;flex-direction:column;gap:8px;}
.ch-esq b{display:block;height:11px;border-radius:6px;}
.ch-esq b:first-child{width:46%;}
.ch-esq b:last-child{width:78%;}
.ch-esq i,.ch-esq b,.ch-esq-msgs i,.ch-img-caja:not(.lista){background:linear-gradient(90deg,rgba(28,26,24,0.05) 25%,rgba(28,26,24,0.11) 37%,rgba(28,26,24,0.05) 63%);background-size:400% 100%;animation:cx-brillo 1.3s ease infinite;}
.ch-esq:nth-child(2) b:last-child{width:62%;}
.ch-esq:nth-child(3) b:first-child{width:38%;}
.ch-esq-msgs{display:flex;flex-direction:column;gap:10px;padding:10px 4px;}
.ch-esq-msgs i{display:block;height:38px;border-radius:17px;width:58%;}
.ch-esq-msgs i.b{align-self:flex-end;width:44%;background-color:rgba(97,17,43,0.08);}
.ch-esq-msgs i.c{width:36%;height:56px;}
.ch-esq-msgs i.d{width:52%;}
.ch-giro{display:inline-block;width:22px;height:22px;border-radius:50%;border:2.5px solid rgba(97,17,43,0.15);border-top-color:var(--burgundy);animation:cx-gira 0.75s linear infinite;}
.ch-carga-hoja,.ch-mas-cargar{display:flex;justify-content:center;padding:34px 0;}
.ch-mas-cargar{padding:18px 0;}

/* Deslizar hacia abajo para actualizar */
.ch-ptr{height:0;overflow:hidden;display:flex;align-items:center;justify-content:center;transition:height 0.25s cubic-bezier(.2,.8,.2,1);}
.ch-ptr.arrastre{transition:none;}
.ch-ptr-ico{width:30px;height:30px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,0.12);position:relative;transform:rotate(var(--giro,0deg));transition:background 0.2s;}
.ch-ptr-ico::before{content:"";position:absolute;inset:7px;border-radius:50%;border:2.2px solid rgba(97,17,43,0.3);border-top-color:transparent;}
.ch-ptr-ico::after{content:"";position:absolute;top:5px;left:50%;width:0;height:0;border:4px solid transparent;border-left-color:rgba(97,17,43,0.45);transform:translateX(1px);}
.ch-ptr.listo .ch-ptr-ico::before{border-color:var(--burgundy);border-top-color:transparent;}
.ch-ptr.listo .ch-ptr-ico::after{border-left-color:var(--burgundy);}
.ch-ptr.cargando .ch-ptr-ico{animation:cx-gira 0.7s linear infinite;}
.ch-ptr.cargando .ch-ptr-ico::after{display:none;}
.ch-ptr.cargando .ch-ptr-ico::before{border-color:var(--burgundy);border-top-color:transparent;}

/* Pestañas de abajo */
.ch-tabs{flex:none;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);background:rgba(255,253,250,0.96);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:4px 6px calc(4px + var(--safe-b));}
.ch-tabs button{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0 4px;border:0;background:transparent;color:var(--ink-2);font-size:11px;font-weight:600;border-radius:12px;}
.ch-tabs button.on{color:var(--burgundy);}
.ch-tabs button:active{background:rgba(97,17,43,0.06);}
.ch-tabs b{position:absolute;top:2px;left:calc(50% + 6px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--danger);color:#fff;font-size:10.5px;display:inline-flex;align-items:center;justify-content:center;}
.ch-tabs b:empty{display:none;}

/* Más */
.ch-menu{list-style:none;margin:6px 0;padding:0 12px 20px;display:flex;flex-direction:column;gap:8px;}
.ch-menu button,.ch-menu a{display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px;border-radius:16px;border:1px solid var(--line);background:#fff;text-align:left;text-decoration:none;color:var(--ink);}
.ch-menu button:active,.ch-menu a:active{background:rgba(97,17,43,0.05);}
.ch-menu-ic{flex:none;width:40px;height:40px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:rgba(97,17,43,0.08);color:var(--burgundy);}
.ch-menu span:not(.ch-menu-ic){flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.ch-menu b{font-size:15px;}
.ch-menu small{font-size:12.5px;color:var(--ink-2);line-height:1.35;}
.ch-menu svg:last-child{flex:none;color:var(--ink-2);}

/* Lista: espera y estados */
.ch-espera{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:10px;font-size:11px;font-weight:700;background:rgba(194,141,57,0.18);color:var(--gold-ink);}
.ch-espera.urg{background:rgba(166,61,51,0.13);color:var(--danger);}
.ch-tag-ok{background:rgba(47,122,74,0.12);color:var(--success);}
.badge.used{background:rgba(28,26,24,0.07);color:var(--ink-2);}

/* Cabecera del chat */
.ch-resolver{flex:none;display:inline-flex;align-items:center;gap:6px;height:34px;min-width:34px;padding:0 7px;border-radius:17px;border:1px solid var(--line);background:#fff;color:var(--success);font-size:13px;font-weight:600;}
.ch-resolver span{display:none;}
.ch-resolver.on{background:rgba(47,122,74,0.12);border-color:rgba(47,122,74,0.3);}
.ch-resolver.is-loading{opacity:0.5;pointer-events:none;}

/* Escribir */
.ch-compo-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 6px;}
.ch-reloj{display:flex;align-items:center;gap:5px;padding:0 6px 0 0;font-size:11.5px;font-weight:600;color:var(--ink-2);white-space:nowrap;}
.ch-reloj.pronto{color:var(--gold-ink);}
.ch-modo{display:inline-flex;flex:none;gap:2px;padding:2px;margin:0 0 0 4px;border-radius:12px;background:rgba(28,26,24,0.06);}
.ch-modo button{border:0;background:transparent;padding:5px 12px;border-radius:10px;font-size:12px;font-weight:600;color:var(--ink-2);}
.ch-modo button.on{background:#fff;color:var(--burgundy);box-shadow:0 1px 3px rgba(0,0,0,0.08);}
.ch-modo button[data-modo="nota"].on{color:#7a5a12;background:#fff3c9;}
.ch-ic{flex:none;width:40px;height:44px;border:0;background:transparent;color:var(--ink-2);display:inline-flex;align-items:center;justify-content:center;border-radius:12px;}
.ch-ic:active{background:rgba(28,26,24,0.06);color:var(--burgundy);}
.ch-escribe{gap:2px;}
.ch-escribe textarea{margin:0 4px;}
.ch-escribe.es-nota textarea{background:#fff8dd;border-color:rgba(194,141,57,0.45);}
.ch-escribe.es-nota .ch-enviar{background:#a07a22;}
.ch-ventana-acc{display:flex;gap:8px;flex-wrap:wrap;}
.ch-ventana-acc .btn{flex:1;min-width:140px;}
.btn-sec{background:#fff;color:var(--burgundy);border:1px solid rgba(97,17,43,0.22);}
.btn-sec:active{background:rgba(97,17,43,0.06);}

/* Respuestas rápidas (menú sobre el campo) */
.ch-pop{max-height:min(260px,40vh);overflow-y:auto;margin:0 2px 8px;border-radius:16px;background:#fff;box-shadow:0 10px 30px rgba(0,0,0,0.16);border:1px solid var(--line);animation:cx-sube 0.18s ease-out;}
.ch-pop button{display:flex;flex-direction:column;gap:2px;width:100%;padding:10px 14px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;}
.ch-pop button:active,.ch-pop button:hover{background:rgba(97,17,43,0.05);}
.ch-pop b{font-size:13px;color:var(--burgundy);}
.ch-pop span{font-size:13.5px;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.ch-pop .ch-pop-admin{font-size:13px;font-weight:600;color:var(--ink-2);align-items:center;border-bottom:0;}
.ch-pop-vacio{margin:0;padding:14px;font-size:13.5px;color:var(--ink-2);}
.ch-pop-vacio button{display:inline;width:auto;padding:0;border:0;color:var(--burgundy);font-weight:600;}
@keyframes cx-sube{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}

/* Archivo listo para enviar */
.ch-adj{margin:0 2px 8px;}
.ch-adj-fila{display:flex;align-items:center;gap:10px;padding:8px 8px 8px 10px;border-radius:14px;background:#fff;border:1px solid var(--line);font-size:13px;color:var(--ink-2);}
.ch-adj-fila img{width:46px;height:46px;border-radius:10px;object-fit:cover;flex:none;}
.ch-adj-doc{width:46px;height:46px;border-radius:10px;flex:none;display:inline-flex;align-items:center;justify-content:center;background:rgba(97,17,43,0.08);color:var(--burgundy);}
.ch-adj-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
.ch-adj-txt b{font-size:13.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ch-adj-barra{height:4px;border-radius:2px;background:rgba(97,17,43,0.12);overflow:hidden;}
.ch-adj-barra i{display:block;height:100%;background:var(--burgundy);transition:width 0.2s;}

/* Mensajes: notas, fotos y documentos */
.ch-m.ch-nota{align-self:center;max-width:min(88%,560px);background:#fff6d8;border:1px dashed rgba(194,141,57,0.6);color:#4a3a12;box-shadow:none;margin:8px 0;}
.ch-m.ch-nota .ch-rot{color:#8a6a1c;opacity:1;}
.ch-con-img{padding:4px 4px 5px;}
.ch-con-img .ch-txt,.ch-con-img .ch-rot{padding:0 6px;}
.ch-img-caja{display:block;min-width:180px;min-height:140px;border-radius:13px;overflow:hidden;}
.ch-img-caja.lista{min-width:0;min-height:0;}
.ch-img-caja.rota{min-height:60px;background:rgba(28,26,24,0.06);}
.ch-img-caja .ch-img{margin:0;border-radius:13px;opacity:0;transition:opacity 0.3s;}
.ch-img-caja.lista .ch-img{opacity:1;}
.ch-doc{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;background:rgba(0,0,0,0.06);text-decoration:none;font-weight:600;color:inherit;max-width:280px;}
.ch-doc span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ch-out .ch-doc{background:rgba(255,255,255,0.14);color:#fdf6ec;}

/* Hojas (paneles que suben desde abajo) */
.ch-app.ch-hoja-on .ch-velo{opacity:1;pointer-events:auto;}
.ch-hoja{z-index:23;}
.ch-app.ch-hoja-on .ch-hoja{transform:none;}
.ch-explica{margin:10px 0;font-size:13px;line-height:1.5;color:var(--ink-2);}
.ch-ancho{width:100%;margin:6px 0 4px;}
.ch-hoja-acc{margin-bottom:6px;}
.ch-confirma{margin:0 0 14px;padding:14px;border-radius:16px;background:#fff;border:1px solid var(--line);animation:cx-sube 0.2s ease-out;}
.ch-confirma h4{margin:0 0 8px;}
.ch-cita{margin:0;padding:12px 14px;border-radius:14px 14px 14px 4px;background:#f1ebe2;font-size:14px;line-height:1.45;}
.ch-confirma-acc{display:flex;gap:8px;margin-top:10px;}
.ch-confirma-acc .btn{flex:1;}
.ch-entradas{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.ch-entradas li{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;align-items:center;padding:10px 12px;border-radius:12px;background:#fff;border:1px solid var(--line);font-size:13px;}
.ch-entradas li strong{font-size:14px;}
.ch-entradas li > span:not(.badge){grid-column:1/-1;color:var(--ink-2);}
.ch-entradas .ch-enviar-qr{grid-column:1/-1;justify-content:center;margin-top:6px;color:var(--burgundy);border-color:rgba(97,17,43,0.25);}
.ch-entradas .ch-enviar-qr:disabled{opacity:0.45;}
.ch-ic-btn.is-loading{opacity:0.55;pointer-events:none;}
.ch-rapidas{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:10px;}
.ch-rapidas li{padding:12px 14px;border-radius:14px;background:#fff;border:1px solid var(--line);}
.ch-rapidas li > div:first-child{display:flex;justify-content:space-between;gap:8px;align-items:baseline;}
.ch-rapidas b{color:var(--burgundy);font-size:14px;}
.ch-rapidas small{font-size:11.5px;color:var(--ink-2);}
.ch-rapidas p{margin:6px 0 10px;font-size:13.5px;line-height:1.45;white-space:pre-wrap;}
.ch-rapidas-acc{display:flex;gap:8px;}
.ch-rapidas-acc .ch-ic-btn{min-height:34px;font-size:13px;}
.ch-peligro{color:var(--danger) !important;}
.ch-form{display:flex;flex-direction:column;gap:14px;}
.ch-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--ink-2);}
.ch-form input,.ch-form textarea{font-size:16px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:#fff;outline:none;resize:vertical;}
.ch-form input:focus,.ch-form textarea:focus{border-color:var(--burgundy);}
.ch-prefijo{display:flex;align-items:center;gap:4px;font-size:16px;color:var(--burgundy);}
.ch-prefijo input{flex:1;}
.ch-filtros-hoja{padding:0 0 12px;margin:0 -2px;}
.ch-kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.ch-kpis div{padding:14px;border-radius:14px;background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;gap:4px;}
.ch-kpis b{font-size:22px;color:var(--burgundy);letter-spacing:-0.3px;}
.ch-kpis span{font-size:12px;color:var(--ink-2);line-height:1.3;}
.ch-tabla,.ch-pendientes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.ch-tabla li,.ch-pendientes button{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:#fff;border:1px solid var(--line);}
.ch-pendientes button{width:100%;text-align:left;}
.ch-tabla .ch-avatar,.ch-pendientes .ch-avatar{width:38px;height:38px;font-size:13px;}
.ch-tabla div,.ch-pendientes span:not(.ch-avatar){flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.ch-tabla small,.ch-pendientes small{font-size:12px;color:var(--ink-2);}
.ch-tabla strong{font-size:15px;color:var(--burgundy);}
.ch-pendientes em{font-style:normal;font-size:12.5px;font-weight:700;color:var(--gold-ink);}
.ch-pendientes em.urg{color:var(--danger);}
.ch-guia{list-style:none;counter-reset:g;margin:6px 0 14px;padding:0;display:flex;flex-direction:column;gap:10px;}
.ch-guia li{counter-increment:g;position:relative;padding:12px 14px 12px 50px;border-radius:14px;background:#fff;border:1px solid var(--line);animation:cx-sube 0.3s ease-out both;}
.ch-guia li::before{content:counter(g);position:absolute;left:14px;top:12px;width:26px;height:26px;border-radius:50%;background:var(--burgundy);color:#fdf6ec;font-size:12.5px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.ch-guia b{font-size:14.5px;}
.ch-guia p{margin:4px 0 0;font-size:13.5px;line-height:1.5;color:var(--ink-2);}

/* Pantalla de carga */
.ch-splash{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;
  background:radial-gradient(120% 70% at 50% 0%,#7a1838 0%,#4a0d21 60%,#2a0713 100%);transition:opacity 0.45s ease,transform 0.45s ease;}
.ch-splash.fuera{opacity:0;transform:scale(1.04);pointer-events:none;}
.ch-splash-logo{position:relative;width:84px;height:84px;}
.ch-splash-logo img{position:relative;z-index:1;border-radius:22px;box-shadow:0 14px 34px rgba(0,0,0,0.35);animation:cx-latido 1.6s ease-in-out infinite;}
.ch-splash-anillo{position:absolute;inset:0;border-radius:24px;border:2px solid rgba(220,176,99,0.55);animation:cx-onda 1.8s ease-out infinite;}
.ch-splash-anillo.dos{animation-delay:0.9s;}
.ch-splash p{margin:0;color:#f3e3c4;font-size:15px;font-weight:600;letter-spacing:2px;text-transform:uppercase;}
.ch-splash-barra{width:120px;height:3px;border-radius:2px;background:rgba(243,227,196,0.18);overflow:hidden;}
.ch-splash-barra i{display:block;width:40%;height:100%;border-radius:2px;background:#dcb063;animation:cx-barra 1.1s ease-in-out infinite;}
@keyframes cx-latido{50%{transform:scale(1.05);}}
@keyframes cx-onda{0%{transform:scale(1);opacity:0.9;}100%{transform:scale(1.7);opacity:0;}}
@keyframes cx-barra{0%{transform:translateX(-110%);}100%{transform:translateX(260%);}}

@media (min-width:900px){
  .ch-resolver span{display:inline;}
  .ch-resolver{padding:0 12px 0 9px;}
  .ch-hoja{width:400px;}
}
