/* Cornellis Group Chatbot v15 */
#cgc-root, #cgc-root * {
  box-sizing: border-box !important;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
  line-height: normal !important; letter-spacing: normal !important; margin: 0 !important;
}

/* ── Floating toggle ── */
#cgc-btn {
  position: fixed !important; bottom: 24px !important; right: 24px !important;
  width: 56px !important; height: 56px !important; border-radius: 50% !important;
  background: #2563eb !important; border: none !important; outline: none !important;
  cursor: pointer !important; z-index: 2147483647 !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  box-shadow: 0 4px 24px rgba(37,99,235,.5) !important; padding: 0 !important;
  transition: transform .2s, box-shadow .2s !important;
}
#cgc-btn:hover { transform: scale(1.1) !important; }
#cgc-btn .cgc-ico-chat { display: flex !important; align-items: center !important; justify-content: center !important; font-size: 24px !important; }
#cgc-btn .cgc-ico-min  { display: none !important; align-items: center !important; justify-content: center !important; }
#cgc-btn.cgc-open .cgc-ico-chat { display: none !important; }
#cgc-btn.cgc-open .cgc-ico-min  { display: flex !important; }

/* ── Chat window ── */
#cgc-win {
  position: fixed !important; bottom: 90px !important; right: 24px !important;
  width: 365px !important; max-height: 600px !important;
  background: #fff !important; border-radius: 16px !important;
  box-shadow: 0 8px 48px rgba(0,0,0,.18), 0 0 0 1px rgba(0,0,0,.07) !important;
  display: flex !important; flex-direction: column !important;
  z-index: 2147483646 !important; overflow: hidden !important;
  opacity: 0 !important; transform: translateY(12px) scale(.96) !important;
  pointer-events: none !important;
  transition: opacity .22s ease, transform .28s cubic-bezier(.34,1.2,.64,1) !important;
}
#cgc-win.cgc-open { opacity: 1 !important; transform: none !important; pointer-events: all !important; }

/* ── Header ── */
#cgc-head {
  background: #2563eb !important; padding: 11px 12px !important;
  display: flex !important; align-items: center !important; gap: 7px !important; flex-shrink: 0 !important;
}
.cgc-head-info { flex: 1 !important; min-width: 0 !important; }
.cgc-av { width: 34px !important; height: 34px !important; border-radius: 50% !important; background: rgba(255,255,255,.22) !important; display: flex !important; align-items: center !important; justify-content: center !important; font-weight: 700 !important; font-size: 15px !important; color: #fff !important; flex-shrink: 0 !important; }
.cgc-hname { font-size: 14px !important; font-weight: 600 !important; color: #fff !important; }
.cgc-hsub { font-size: 11px !important; color: rgba(255,255,255,.72) !important; margin-top: 1px !important; display: flex !important; align-items: center !important; gap: 4px !important; }
.cgc-green { width: 6px !important; height: 6px !important; border-radius: 50% !important; background: #4ade80 !important; flex-shrink: 0 !important; display: inline-block !important; }

.cgc-head-btn { width: 30px !important; height: 30px !important; border-radius: 7px !important; border: 1px solid rgba(255,255,255,.3) !important; background: transparent !important; color: rgba(255,255,255,.85) !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; padding: 0 !important; transition: all .15s !important; flex-shrink: 0 !important; }
.cgc-head-btn:hover { background: rgba(255,255,255,.18) !important; color: #fff !important; }
.cgc-head-btn.cgc-vm-active { background: rgba(255,255,255,.28) !important; border-color: rgba(255,255,255,.7) !important; }
.cgc-head-btn:disabled { opacity: .35 !important; cursor: not-allowed !important; }
.cgc-head-btn svg { width: 15px !important; height: 15px !important; display: block !important; }

#cgc-endbtn { background: rgba(239,68,68,.2) !important; border: 1px solid rgba(252,165,165,.55) !important; color: #fecaca !important; border-radius: 6px !important; padding: 5px 8px !important; font-size: 11px !important; font-weight: 700 !important; cursor: pointer !important; white-space: nowrap !important; flex-shrink: 0 !important; transition: all .15s !important; font-family: inherit !important; }
#cgc-endbtn:hover:not(:disabled) { background: rgba(239,68,68,.38) !important; border-color: #fca5a5 !important; color: #fff !important; }
#cgc-endbtn:disabled { opacity: .35 !important; cursor: not-allowed !important; }

/* ── Banner ── */
#cgc-banner { background: #fffbeb !important; border-bottom: 1px solid #fde68a !important; padding: 8px 14px !important; font-size: 13px !important; color: #92400e !important; font-weight: 500 !important; flex-shrink: 0 !important; }

/* ── Shared modal buttons ── */
.cgc-to-primary { display: block !important; width: 100% !important; padding: 10px 16px !important; border-radius: 9px !important; border: none !important; background: #2563eb !important; color: #fff !important; font-size: 13.5px !important; font-weight: 600 !important; cursor: pointer !important; transition: opacity .15s !important; font-family: inherit !important; }
.cgc-to-primary:hover { opacity: .88 !important; }
.cgc-to-secondary { display: block !important; width: 100% !important; padding: 9px 16px !important; border-radius: 9px !important; border: 1px solid #e2e8f0 !important; background: #f8fafc !important; color: #475569 !important; font-size: 13px !important; cursor: pointer !important; font-family: inherit !important; }
.cgc-to-secondary:hover { background: #f1f5f9 !important; }

/* ── Voice bar ── */
#cgc-voicebar { display: none !important; background: #f0f9ff !important; border-bottom: 1px solid #bae6fd !important; padding: 10px 14px !important; flex-shrink: 0 !important; align-items: center !important; gap: 8px !important; flex-wrap: wrap !important; }
#cgc-vb-mic, #cgc-vb-stop { font-size: 13px !important; padding: 6px 13px !important; border-radius: 8px !important; border: none !important; cursor: pointer !important; font-weight: 600 !important; flex-shrink: 0 !important; font-family: inherit !important; }
#cgc-vb-mic  { background: #2563eb !important; color: #fff !important; }
#cgc-vb-stop { background: #fee2e2 !important; color: #b91c1c !important; }

/* ── Messages ── */
#cgc-msgs { flex: 1 !important; overflow-y: auto !important; padding: 14px !important; display: flex !important; flex-direction: column !important; gap: 10px !important; scroll-behavior: smooth !important; background: #fff !important; }
#cgc-msgs::-webkit-scrollbar { width: 3px; }
#cgc-msgs::-webkit-scrollbar-thumb { background: #e2e8f0; border-radius: 4px; }

.cgc-row { display: flex !important; gap: 8px !important; align-items: flex-end !important; animation: cgcIn .22s ease both !important; }
.cgc-row.cgc-u { flex-direction: row-reverse !important; }
.cgc-row.cgc-sys { justify-content: center !important; }
@keyframes cgcIn { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:none} }

.cgc-rav { width: 26px !important; height: 26px !important; border-radius: 50% !important; background: #eff6ff !important; border: 1px solid #dbeafe !important; display: flex !important; align-items: center !important; justify-content: center !important; font-size: 11px !important; font-weight: 700 !important; color: #2563eb !important; flex-shrink: 0 !important; }
.cgc-row.cgc-u .cgc-rav { background: #f1f5f9 !important; border-color: #e2e8f0 !important; color: #64748b !important; }

.cgc-bbl { max-width: 76% !important; padding: 9px 13px !important; border-radius: 14px !important; font-size: 13.5px !important; line-height: 1.55 !important; color: #1e293b !important; background: #f1f5f9 !important; border-bottom-left-radius: 3px !important; word-wrap: break-word !important; }
.cgc-row.cgc-u .cgc-bbl { background: #2563eb !important; color: #fff !important; border-bottom-left-radius: 14px !important; border-bottom-right-radius: 3px !important; }
.cgc-sysbbl { background: #f0fdf4 !important; border: 1px solid #bbf7d0 !important; color: #166534 !important; font-size: 12.5px !important; padding: 8px 14px !important; border-radius: 10px !important; text-align: center !important; line-height: 1.5 !important; max-width: 90% !important; }
.cgc-voice-badge { font-size: 11px !important; opacity: .65 !important; }

/* Typing */
.cgc-typing .cgc-bbl { display:flex !important; gap:4px !important; align-items:center !important; padding:12px 14px !important; }
.cgc-dot { width:7px !important; height:7px !important; border-radius:50% !important; background:#94a3b8 !important; animation:cgcDot 1s ease-in-out infinite !important; }
.cgc-dot:nth-child(2){animation-delay:.15s !important}.cgc-dot:nth-child(3){animation-delay:.3s !important}
@keyframes cgcDot{0%,80%,100%{transform:scale(.55);opacity:.35}40%{transform:scale(1);opacity:1}}

/* ── Quick replies ── */
#cgc-qr { padding:2px 14px 10px !important; display:flex !important; flex-wrap:wrap !important; gap:6px !important; flex-shrink:0 !important; background:#fff !important; }
.cgc-q { font-size:12px !important; padding:5px 11px !important; border-radius:20px !important; border:1px solid #cbd5e1 !important; background:#fff !important; color:#475569 !important; cursor:pointer !important; white-space:nowrap !important; transition:all .15s !important; font-family:inherit !important; }

/* ── Pinned calendar bar ── */
/* Note: display is controlled by JS (style.display='flex') — do NOT use !important here */
#cgc-calbar {
  background: #f0fdf4 !important;
  border-top: 1px solid #bbf7d0 !important;
  padding: 10px 14px !important;
  flex-shrink: 0 !important;
  align-items: center !important;
  gap: 10px !important;
  /* display intentionally omitted — JS sets it to flex when needed */
}

/* ── Input row ── */
#cgc-irow { padding:10px 12px !important; border-top:1px solid #f1f5f9 !important; display:flex !important; gap:8px !important; align-items:flex-end !important; flex-shrink:0 !important; background:#fff !important; }
#cgc-inp { flex:1 !important; border:1px solid #e2e8f0 !important; border-radius:10px !important; padding:8px 12px !important; font-size:13.5px !important; color:#1e293b !important; resize:none !important; min-height:36px !important; max-height:80px !important; outline:none !important; background:#f8fafc !important; transition:border-color .15s !important; font-family:inherit !important; }
#cgc-inp:focus { border-color:#2563eb !important; background:#fff !important; }
#cgc-inp::placeholder { color:#94a3b8 !important; }
#cgc-inp:disabled { opacity:.5 !important; cursor:not-allowed !important; }
#cgc-vbtn { width:34px !important; height:34px !important; border-radius:8px !important; border:1px solid #e2e8f0 !important; background:#f8fafc !important; cursor:pointer !important; display:flex !important; align-items:center !important; justify-content:center !important; flex-shrink:0 !important; color:#64748b !important; transition:all .15s !important; padding:0 !important; }
#cgc-vbtn svg { width:17px !important; height:17px !important; display:block !important; }
#cgc-vbtn:hover { border-color:#2563eb !important; color:#2563eb !important; background:#eff6ff !important; }
#cgc-vbtn.cgc-listening { border-color:#ef4444 !important; background:#fef2f2 !important; color:#ef4444 !important; animation:cgcPulse 1s ease-in-out infinite !important; }
#cgc-vbtn:disabled { opacity:.35 !important; cursor:not-allowed !important; }
@keyframes cgcPulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.3)}50%{box-shadow:0 0 0 6px rgba(239,68,68,0)}}
#cgc-sbtn { width:36px !important; height:36px !important; border-radius:9px !important; background:#2563eb !important; border:none !important; outline:none !important; cursor:pointer !important; display:flex !important; align-items:center !important; justify-content:center !important; flex-shrink:0 !important; padding:0 !important; transition:opacity .15s !important; }
#cgc-sbtn:hover { opacity:.85 !important; }
#cgc-sbtn:disabled { opacity:.3 !important; cursor:not-allowed !important; }
#cgc-sbtn svg { width:16px !important; height:16px !important; display:block !important; }

/* ── Footer ── */
#cgc-foot { text-align:center !important; padding:5px !important; font-size:10px !important; color:#94a3b8 !important; border-top:1px solid #f8fafc !important; flex-shrink:0 !important; background:#fff !important; }

/* ── Mobile ── */
@media(max-width:420px){
  #cgc-win { right:10px !important; left:10px !important; width:auto !important; bottom:84px !important; }
  #cgc-btn { right:16px !important; bottom:16px !important; }
}
