/* CGN floating chat windows + conversation pane (CGN navy & purple) */
.cw-dock{--cw-navy:#0a1c42;--cw-navy2:#132c63;--cw-p:#6d28d9;--cw-p2:#4f46e5;--cw-line:#e5e7f0;--cw-mut:#64748b;
  position:fixed;right:16px;bottom:0;z-index:8800;display:flex;flex-direction:row-reverse;align-items:flex-end;gap:12px;pointer-events:none}
.cw-dock>*{pointer-events:auto}
.cw-wins{display:flex;flex-direction:row-reverse;align-items:flex-end;gap:12px}
.cw-win{width:350px;height:450px;background:#fff;border-radius:14px 14px 0 0;box-shadow:0 12px 40px rgba(10,28,66,.28),0 0 0 1px rgba(10,28,66,.08);overflow:hidden;display:flex}
.cw-win[hidden]{display:none}
.cw-win.cw-max{width:min(680px,calc(100vw - 420px));height:min(760px,calc(100vh - 90px))}
.cw-bubbles{display:flex;flex-direction:column-reverse;gap:10px;margin-bottom:18px}
.cw-bub{position:relative}
.cw-bub-open{border:0;padding:0;background:none;cursor:pointer;border-radius:50%;box-shadow:0 6px 18px rgba(10,28,66,.3);display:block;position:relative}
.cw-bub-open .cgn-av{border:2px solid #fff}
.cw-bub-n{position:absolute;top:-4px;right:-4px;background:#ef4444;color:#fff;font:700 11px/1 system-ui;border-radius:999px;padding:3px 6px;border:2px solid #fff}
.cw-bub-x{position:absolute;top:-6px;left:-6px;width:22px;height:22px;border-radius:50%;border:0;background:#fff;color:#334155;box-shadow:0 2px 8px rgba(0,0,0,.25);cursor:pointer;display:none;place-items:center;padding:4px}
.cw-bub:hover .cw-bub-x,.cw-bub:focus-within .cw-bub-x{display:grid}
.cw-bub-x svg{width:12px;height:12px}

/* pane */
.cw-pane{--cw-navy:#0a1c42;--cw-navy2:#132c63;--cw-p:#6d28d9;--cw-p2:#4f46e5;--cw-line:#e5e7f0;--cw-mut:#64748b;
  display:flex;flex-direction:column;width:100%;height:100%;min-height:0;min-width:0;background:#fff;position:relative;color:#0f172a}
.cw-pane svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cw-head{display:flex;align-items:center;gap:6px;padding:8px 8px 8px 10px;background:linear-gradient(135deg,var(--cw-navy),var(--cw-navy2));color:#fff;flex:none;position:relative}
.cw-page .cw-head{background:#fff;color:#0f172a;border-bottom:1px solid var(--cw-line)}
.cw-who{display:flex;align-items:center;gap:9px;min-width:0;flex:1;background:none;border:0;color:inherit;cursor:pointer;text-align:left;padding:2px;border-radius:10px;font:inherit}
.cw-who:hover{background:rgba(255,255,255,.08)}.cw-page .cw-who:hover{background:#f1f5f9}
.cw-nm{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.cw-nm b{font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cw-st{font-size:11.5px;opacity:.75}.cw-st.on{color:#4ade80;opacity:1}.cw-page .cw-st.on{color:#16a34a}
.cw-acts{display:flex;align-items:center;gap:2px;flex:none}
.cw-ib{width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer;display:grid;place-items:center;padding:0}
.cw-ib:hover,.cw-ib:focus-visible{background:rgba(255,255,255,.14);outline:none}.cw-page .cw-ib:hover{background:#f1f5f9}
.cw-ib svg{width:18px;height:18px}
.cw-back{display:none}
.cw-pop{position:absolute;right:8px;top:48px;background:#fff;color:#0f172a;border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.2);padding:6px;z-index:5;min-width:190px;display:flex;flex-direction:column}
.cw-pop[hidden]{display:none}
.cw-pop button{border:0;background:none;text-align:left;padding:9px 12px;border-radius:8px;font:inherit;font-size:14px;cursor:pointer;color:inherit}
.cw-pop button:hover{background:#f3f0ff}.cw-pop button.bad{color:#dc2626}

.cw-msgs{flex:1;min-height:0;overflow-y:auto;padding:12px 10px 6px;display:flex;flex-direction:column;gap:4px;background:#f7f7fb;overscroll-behavior:contain}
.cw-empty{margin:auto;text-align:center;color:var(--cw-mut);font-size:13.5px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px}
.cw-empty b{color:#0f172a;font-size:15px}
.cw-day{align-self:center;font-size:11px;color:var(--cw-mut);background:#eceaf6;border-radius:999px;padding:3px 10px;margin:8px 0 4px}
.cw-b{max-width:78%;padding:8px 12px 5px;border-radius:18px;font-size:14px;line-height:1.4;word-wrap:break-word;overflow-wrap:anywhere;position:relative}
.cw-b.me{align-self:flex-end;background:linear-gradient(135deg,#7c3aed,var(--cw-p2));color:#fff;border-bottom-right-radius:5px}
.cw-b.them{align-self:flex-start;background:#fff;color:#0f172a;border:1px solid var(--cw-line);border-bottom-left-radius:5px}
.cw-txt{white-space:pre-wrap}
.cw-b time{display:block;font-size:10px;opacity:.7;text-align:right;margin-top:2px}
.cw-seen{align-self:flex-end;font-size:10.5px;color:var(--cw-mut);margin:-1px 4px 2px}
.cw-typing{font-size:12px;color:var(--cw-mut);padding:0 12px;min-height:16px;background:#f7f7fb;font-style:italic;flex:none}
.cw-att{padding:4px}.cw-att .cw-txt{padding:4px 8px 0}.cw-att time{padding:0 8px 2px}
.cw-imgb{display:block;border:0;padding:0;background:#ddd;border-radius:14px;overflow:hidden;cursor:zoom-in;width:220px;max-width:100%}
.cw-imgb img{width:100%;height:100%;object-fit:cover;display:block}
.cw-voice{display:flex;align-items:center;gap:8px;padding:4px 8px 2px;min-width:190px}
.cw-vp{width:34px;height:34px;flex:none;border-radius:50%;border:0;display:grid;place-items:center;cursor:pointer;background:rgba(255,255,255,.22);color:inherit;padding:0}
.cw-b.them .cw-vp,.cw-prev .cw-vp{background:linear-gradient(135deg,#7c3aed,var(--cw-p2));color:#fff}
.cw-vp svg{width:16px;height:16px}
.cw-vbar{flex:1;height:6px;border-radius:4px;background:rgba(255,255,255,.35);cursor:pointer;position:relative;overflow:hidden}
.cw-b.them .cw-vbar,.cw-prev .cw-vbar{background:#e2def5}
.cw-vbar i{position:absolute;left:0;top:0;bottom:0;width:0;background:currentColor;border-radius:4px}
.cw-b.them .cw-vbar i,.cw-prev .cw-vbar i{background:var(--cw-p)}
.cw-vt{font-size:11.5px;font-variant-numeric:tabular-nums;white-space:nowrap}
.cw-file{display:flex;align-items:center;gap:9px;padding:6px 8px;min-width:200px}
.cw-fic{width:38px;height:44px;flex:none;border-radius:7px;background:#ede9fe;color:var(--cw-p);display:grid;place-items:center;font:800 10.5px/1 system-ui;letter-spacing:.3px}
.cw-b.me .cw-fic{background:rgba(255,255,255,.2);color:#fff}
.cw-fic-pdf{background:#fee2e2;color:#dc2626}.cw-fic-doc,.cw-fic-docx{background:#dbeafe;color:#1d4ed8}.cw-fic-xls,.cw-fic-xlsx,.cw-fic-csv{background:#dcfce7;color:#15803d}.cw-fic-ppt,.cw-fic-pptx{background:#ffedd5;color:#c2410c}
.cw-fmeta{display:flex;flex-direction:column;min-width:0;flex:1}
.cw-fmeta b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
.cw-fmeta small{font-size:11px;opacity:.75}
.cw-fbtns{display:flex;align-items:center;gap:4px;flex:none}
.cw-fbtns a{color:inherit;font-size:12px;font-weight:700;text-decoration:none;padding:6px 8px;border-radius:8px;background:rgba(0,0,0,.06);display:grid;place-items:center}
.cw-b.me .cw-fbtns a{background:rgba(255,255,255,.18)}
.cw-fbtns svg{width:16px;height:16px}
.cw-pend{opacity:.92;min-width:170px}
.cw-pimg{display:block;width:160px;max-height:160px;object-fit:cover;border-radius:12px;margin-bottom:4px}
.cw-pl{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.cw-prog{height:4px;border-radius:3px;background:rgba(255,255,255,.3);margin:6px 0 3px;overflow:hidden}
.cw-prog i{display:block;height:100%;width:0;background:#fff;transition:width .2s}
.cw-ps{font-size:11px;opacity:.9}
.cw-fail{background:#fef2f2!important;color:#991b1b!important;border:1px solid #fecaca}
.cw-pbtns{display:flex;gap:6px;margin-top:6px}
.cw-pbtns button{border:1px solid #fecaca;background:#fff;color:#991b1b;border-radius:8px;padding:4px 10px;font:inherit;font-size:12px;cursor:pointer}

/* composer */
.cw-comp{display:flex;align-items:flex-end;gap:4px;padding:8px;border-top:1px solid var(--cw-line);background:#fff;position:relative;flex:none}
.cw-comp[hidden]{display:none}
.cw-tools{display:flex;gap:0;flex:none;padding-bottom:2px}
.cw-tb{width:32px;height:34px;border:0;background:none;color:var(--cw-p);border-radius:8px;cursor:pointer;display:grid;place-items:center;padding:0}
.cw-tb:hover,.cw-tb:focus-visible{background:#f3f0ff;outline:none}
.cw-tb svg{width:21px;height:21px}
.cw-in{flex:1;min-width:0;resize:none;border:0;background:#f1f0f7;border-radius:18px;padding:9px 13px;font:inherit;font-size:14px;line-height:1.35;max-height:110px;outline:none;color:#0f172a}
.cw-in:focus{box-shadow:0 0 0 2px #c4b5fd}
.cw-send{width:38px;height:38px;flex:none;border:0;border-radius:50%;background:linear-gradient(135deg,#7c3aed,var(--cw-p2));color:#fff;cursor:pointer;display:grid;place-items:center;padding:0;box-shadow:0 4px 12px rgba(79,70,229,.35)}
.cw-send:hover{filter:brightness(1.08)}.cw-send svg{width:18px;height:18px;margin-left:2px}
.cw-tray{display:flex;gap:8px;padding:8px 10px 0;overflow-x:auto;background:#fff;border-top:1px solid var(--cw-line);flex:none}
.cw-tray[hidden]{display:none}
.cw-ti{position:relative;flex:none}
.cw-ti img{width:64px;height:64px;object-fit:cover;border-radius:10px;display:block}
.cw-ti>button{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;border:0;background:#0f172a;color:#fff;font-size:11px;cursor:pointer}
.cw-tf{display:flex;align-items:center;gap:8px;background:#f5f3ff;border-radius:10px;padding:8px 10px;max-width:220px}
.cw-tf span:last-of-type{display:flex;flex-direction:column;min-width:0}
.cw-tf b{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cw-tf small{font-size:11px;color:var(--cw-mut)}
.cw-tf .cw-fic{width:30px;height:34px;font-size:9px}
.cw-rec{display:flex;align-items:center;gap:8px;padding:8px;border-top:1px solid var(--cw-line);background:#fff;flex:none}
.cw-rec[hidden]{display:none}
.cw-rb{width:36px;height:36px;border:0;border-radius:50%;background:#f1f0f7;color:#334155;cursor:pointer;display:grid;place-items:center;padding:0;flex:none}
.cw-rb:hover{background:#ede9fe;color:var(--cw-p)}
.cw-rdot{width:10px;height:10px;border-radius:50%;background:#ef4444;animation:cwPulse 1s infinite}
@keyframes cwPulse{50%{opacity:.25}}
.cw-rt{font:700 14px/1 system-ui;font-variant-numeric:tabular-nums;color:#0f172a}
.cw-rl{flex:1;font-size:13px;color:var(--cw-mut)}
.cw-rec .cw-prev{flex:1;min-width:0;background:#f5f3ff;border-radius:18px;padding:4px 10px}
.cw-blocked{padding:12px;text-align:center;font-size:13px;color:var(--cw-mut);border-top:1px solid var(--cw-line);background:#fff}
.cw-blocked button{border:0;background:none;color:var(--cw-p);font-weight:700;cursor:pointer;font:inherit;font-weight:700}
.cw-emo{position:absolute;bottom:calc(100% + 6px);left:8px;width:min(300px,calc(100% - 16px));background:#fff;border-radius:14px;box-shadow:0 12px 32px rgba(0,0,0,.2);z-index:6;padding:6px}
.cw-emo[hidden]{display:none}
.cw-emo-tabs{display:flex;gap:4px;border-bottom:1px solid var(--cw-line);padding-bottom:6px;margin-bottom:6px}
.cw-emo-tabs button{border:0;background:none;font-size:18px;padding:4px 10px;border-radius:8px;cursor:pointer}
.cw-emo-tabs button.on{background:#ede9fe}
.cw-emo-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;max-height:170px;overflow-y:auto}
.cw-emo-grid button{border:0;background:none;font-size:21px;line-height:1;padding:5px 0;border-radius:8px;cursor:pointer}
.cw-emo-grid button:hover{background:#f3f0ff}
.cw-drop::after{content:"Drop to send";position:absolute;inset:0;background:rgba(109,40,217,.12);border:2px dashed var(--cw-p);display:grid;place-items:center;font-weight:800;color:var(--cw-p);z-index:7;border-radius:inherit}
.cw-lb{position:fixed;inset:0;z-index:9700;background:rgba(5,10,25,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:56px 16px 16px}
.cw-lb img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}
.cw-lb-bar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:8px;padding:10px 14px;color:#fff}
.cw-lb-bar span{flex:1;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cw-lb-btn{display:flex;align-items:center;gap:6px;border:0;background:rgba(255,255,255,.14);color:#fff;border-radius:999px;padding:8px 12px;cursor:pointer;font:inherit;font-size:13px;text-decoration:none}
.cw-lb-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* Messages page: the pane fills the right column */
.dm-chat>.cw-pane{height:100%}
/* radio mini player moves left while chats are docked at the bottom-right */
body.cw-has .radio-mini{right:auto;left:300px}
body.side-collapsed.cw-has .radio-mini{left:110px}

/* phones: one conversation at a time, full screen */
@media(max-width:900px){
  .cw-dock{right:12px;bottom:calc(140px + env(safe-area-inset-bottom))}
  .cw-wins{position:fixed;inset:0;display:block;pointer-events:none}
  .cw-win{position:fixed;inset:0;width:100%;height:100dvh;border-radius:0;z-index:9000;pointer-events:auto}
  .cw-win.cw-max{width:100%;height:100dvh}
  .cw-only-wide{display:none!important}
  .cw-back{display:grid}
  .cw-pane .cw-comp,.cw-pane .cw-rec{padding-bottom:calc(8px + env(safe-area-inset-bottom))}
  .cw-b{max-width:84%}
  .cw-in{font-size:16px}
  body.cw-has .radio-mini{left:auto;right:12px}
  body.cw-full{overflow:hidden}
}
