.gc-launcher, .gc-panel { font-family: Arial, Helvetica, sans-serif; }
.gc-launcher {
  position: fixed; right: 22px; bottom: 22px; z-index: 35;
  display: inline-flex; align-items: center; gap: 12px;
  min-height: 58px; padding: 12px 20px; border-radius: 999px;
  border: 1px solid #3c82ff; background: #151a23; color: #f4f6f8;
  font-size: 0.95rem; font-weight: 800; cursor: pointer;
  box-shadow: 0 8px 30px #0006;
}
.gc-launcher img { width: 64px; height: auto; }
.gc-launcher:hover { background: #172b4d; }
.gc-panel {
  position: fixed; right: 22px; bottom: 94px; z-index: 36;
  display: flex; flex-direction: column; width: 390px;
  height: min(600px, calc(100dvh - 120px));
  background: #15191f; color: #f4f6f8; border: 1px solid #3c4450;
  border-radius: 22px; overflow: hidden; box-shadow: 0 18px 60px #0009;
}
.gc-panel[hidden] { display: none; }
.carousel-lightbox { z-index: 40; }
.gc-header {
  display: flex; align-items: center; gap: 12px; flex-shrink: 0;
  padding: 18px; background: #1c222c; border-bottom: 1px solid #343d4b;
}
.gc-header img { width: 72px; height: auto; }
.gc-header .gc-title { font-size: 1.05rem; line-height: 1.2; margin: 0 0 4px; text-transform: none; }
.gc-header p { margin: 0; color: #b7bec8; font-size: 0.76rem; }
.gc-close { margin-left: auto; border: 0; background: transparent; color: #dfe3e8; font-size: 1.8rem; min-width: 40px; min-height: 40px; cursor: pointer; }
.gc-history { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 18px; }
.gc-message { margin: 0 0 14px; padding: 14px 16px; border-radius: 18px 18px 18px 4px; background: #262d38; font-size: 0.9rem; line-height: 1.55; overflow-wrap: anywhere; }
.gc-visitor { margin-left: 24px; background: #153c7e; border-radius: 18px 18px 4px 18px; }
.gc-disclosure { margin: 14px 0 0; padding: 12px; border-radius: 12px; background: #1b2029; color: #b7bec8; font-size: 0.75rem; line-height: 1.5; }
.gc-quick { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 16px; border-top: 1px solid #343d4b; }
.gc-quick button { padding: 9px 12px; border: 1px solid #3c82ff; border-radius: 999px; background: transparent; color: #bcd4ff; font-size: 0.79rem; font-weight: 700; cursor: pointer; min-height: 36px; }
.gc-quick button:hover { background: #172b4d; }
.gc-handoff { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; padding: 0 18px 12px; }
.gc-handoff a, .gc-estimate-link { color: #a9caff; font-size: 0.78rem; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.gc-estimate-link { display: inline-block; margin-bottom: 14px; }
.gc-form { display: flex; gap: 10px; padding: 12px 16px 16px; margin: 0; border-top: 1px solid #343d4b; }
.gc-quick, .gc-handoff, .gc-form { flex-shrink: 0; }
.gc-form input { min-width: 0; flex: 1; border: 1px solid #485367; border-radius: 999px; background: #10141b; color: #f4f6f8; font: inherit; font-size: 16px; padding: 11px 14px; }
.gc-form button { width: 44px; min-height: 44px; flex-shrink: 0; border: 0; border-radius: 50%; background: #075dff; color: #fff; font-size: 1.5rem; cursor: pointer; }
.gc-launcher:focus-visible, .gc-panel button:focus-visible, .gc-panel a:focus-visible, .gc-panel input:focus-visible { outline: 2px solid #8eb5ff; outline-offset: 3px; }
.gc-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
/* A light conversation surface distinguishes the widget from the dark site. */
.gc-panel { background: #f6f8fc; color: #182438; border: 2px solid #94b9ff; box-shadow: 0 20px 70px #0009, 0 0 0 5px #ffffff1f; }
.gc-header { background: #19263c; border-bottom: 3px solid #3c82ff; color: #fff; }
.gc-header p { color: #d2dff2; }
.gc-message { background: #fff; color: #182438; border: 1px solid #d9e2ef; box-shadow: 0 2px 6px #18355b08; }
.gc-visitor { background: #0754d6; color: #fff; border-color: #0754d6; }
.gc-reply-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 8px; }
.gc-reply-actions a { display: inline-flex; align-items: center; min-height: 44px; color: #335b91; font-size: 0.78rem; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.gc-reply-actions a:hover { color: #003d9f; }
.gc-disclosure { background: #e8eef7; color: #46556b; }
.gc-quick { border-color: #d6dfed; background: #fff; }
.gc-quick button { color: #124b9d; border-color: #79a5eb; background: #f1f6ff; }
.gc-quick button:hover { background: #dfebff; }
.gc-quick button:disabled, .gc-form button:disabled { opacity: 0.55; cursor: wait; }
.gc-handoff { background: #fff; }
.gc-handoff a, .gc-estimate-link { color: #104caa; }
.gc-form { background: #fff; border-color: #d6dfed; }
.gc-form input { background: #f6f8fc; color: #182438; border-color: #b7c5da; }
.gc-form input::placeholder { color: #5c6b80; opacity: 1; }
.gc-typing { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; color: #46556b; font-size: 0.75rem; }
.gc-dots { display: inline-flex; gap: 4px; }
.gc-dots i { width: 6px; height: 6px; border-radius: 50%; background: #0754d6; animation: gc-dot 1s ease-in-out infinite; }
.gc-dots i:nth-child(2) { animation-delay: 0.15s; }
.gc-dots i:nth-child(3) { animation-delay: 0.3s; }
@keyframes gc-dot { 0%, 70%, 100% { transform: translateY(0); opacity: 0.4; } 35% { transform: translateY(-4px); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .gc-dots i { animation: none; opacity: 1; } }
@media (max-width: 767px) {
  .gc-launcher { right: 14px; bottom: calc(76px + env(safe-area-inset-bottom)); min-height: 48px; padding: 10px 16px; gap: 8px; font-size: 0.85rem; }
  .gc-launcher img { width: 48px; }
  .gc-panel { right: 12px; bottom: calc(160px + env(safe-area-inset-bottom)); width: calc(100% - 24px); height: min(560px, calc(100dvh - 180px - env(safe-area-inset-bottom))); border-radius: 18px; }
  .gc-header { padding: 12px; gap: 10px; }
  .gc-header img { width: 56px; }
  .gc-history { padding: 14px; }
  .gc-message { padding: 12px 14px; font-size: 0.86rem; }
}
@media (max-height: 500px) {
  .gc-panel { top: 8px; bottom: 8px; height: auto; }
  .gc-launcher[aria-expanded="true"] { visibility: hidden; }
  .gc-header { padding: 8px 12px; }
  .gc-quick { padding: 8px 12px; gap: 6px; }
  .gc-handoff { padding-bottom: 8px; }
  .gc-form { padding: 8px 12px; }
}
