.cw-root{
  --cw-accent:var(--gulf,#126493);
  --cw-accent-ink:#fff;
  --cw-accent-dark:var(--navy,#0a2d56);
  --cw-header:var(--navy,#0a2d56);
  --cw-header-ink:#fff;
  --cw-surface:var(--enamel,#f7f8f9);
  --cw-card:var(--paper,#fff);
  --cw-ink:var(--ink,#0a2d56);
  --cw-muted:var(--muted,#4a5e78);
  --cw-line:var(--line,rgba(10,45,86,.12));
  --cw-user:var(--gulf,#126493);
  --cw-user-ink:#fff;
  --cw-radius:18px;
  --cw-font:'Hanken Grotesk',system-ui,-apple-system,sans-serif;
  --cw-display:'Fraunces',Georgia,serif;
  --cw-shadow:var(--shadow-lg,0 40px 90px -30px rgba(10,45,86,.40));
}
.cw-launch{
  position:fixed;right:22px;bottom:22px;z-index:9300;
  display:inline-flex;align-items:center;gap:10px;
  height:56px;padding:0 22px 0 18px;border-radius:999px;border:none;cursor:pointer;
  background:var(--cw-accent);color:var(--cw-accent-ink);
  font-family:var(--cw-font);font-weight:700;font-size:1rem;
  box-shadow:0 16px 34px -12px rgba(0,0,0,.4);
  max-width:calc(100vw - 32px);transition:transform .2s,filter .2s;
}
.cw-launch i{font-size:25px;flex:none}
.cw-launch-label{white-space:nowrap}
.cw-launch:hover{filter:brightness(.94);transform:translateY(-2px)}
.cw-launch:focus-visible{outline:3px solid var(--cw-accent-dark);outline-offset:3px}
.cw-launch.cw-hide{display:none}

.cw-panel{
  position:fixed;right:22px;bottom:22px;z-index:9301;
  width:380px;max-width:calc(100vw - 32px);
  height:min(560px,calc(100dvh - 40px));max-height:calc(100dvh - 40px);
  background:var(--cw-surface);border:1px solid var(--cw-line);border-radius:20px;
  box-shadow:var(--cw-shadow);display:flex;flex-direction:column;overflow:hidden;
  font-family:var(--cw-font);
}
.cw-panel[hidden]{display:none}
.cw-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:14px 16px;background:var(--cw-header);color:var(--cw-header-ink);flex:none;
}
.cw-head-id{display:flex;align-items:center;gap:10px;min-width:0}
.cw-head-id i{font-size:22px;flex:none}
.cw-title{font-family:var(--cw-display);font-weight:600;font-size:1.08rem;line-height:1.1;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cw-close{background:transparent;border:none;color:inherit;cursor:pointer;font-size:1.3rem;line-height:1;padding:4px;border-radius:8px}
.cw-close:hover{opacity:.75}
.cw-close:focus-visible{outline:2px solid var(--cw-accent-ink);outline-offset:2px}

.cw-log{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}
.cw-msg{display:flex}
.cw-msg.cw-user{justify-content:flex-end}
.cw-bubble{
  max-width:84%;padding:11px 14px;border-radius:16px;
  font-size:.96rem;line-height:1.55;
  white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;
}
.cw-bot .cw-bubble{background:var(--cw-card);border:1px solid var(--cw-line);color:var(--cw-ink);border-bottom-left-radius:5px}
.cw-user .cw-bubble{background:var(--cw-user);color:var(--cw-user-ink);font-weight:600;border-bottom-right-radius:5px}
.cw-bubble strong{font-weight:800}
.cw-bot .cw-bubble a{color:var(--cw-accent);font-weight:700;text-decoration:underline}
.cw-user .cw-bubble a{color:var(--cw-user-ink);text-decoration:underline}

.cw-typing .cw-bubble{display:inline-flex;gap:5px;align-items:center}
.cw-typing .cw-bubble span{width:7px;height:7px;border-radius:50%;background:var(--cw-muted);opacity:.5;animation:cw-blink 1.2s infinite}
.cw-typing .cw-bubble span:nth-child(2){animation-delay:.2s}
.cw-typing .cw-bubble span:nth-child(3){animation-delay:.4s}
@keyframes cw-blink{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}

.cw-sugg{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 8px}
.cw-chip{
  background:var(--cw-card);border:1px solid var(--cw-line);color:var(--cw-ink);
  border-radius:999px;padding:8px 13px;font-size:.85rem;font-weight:600;cursor:pointer;font-family:var(--cw-font);
}
.cw-chip:hover{border-color:var(--cw-accent);color:var(--cw-accent)}
.cw-chip:focus-visible{outline:2px solid var(--cw-accent);outline-offset:2px}

.cw-form{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--cw-line);background:var(--cw-surface);flex:none}
.cw-input{
  flex:1;border:1px solid var(--cw-line);border-radius:999px;padding:11px 16px;font-size:.95rem;
  font-family:var(--cw-font);color:var(--cw-ink);background:var(--cw-card);outline:none;
}
.cw-input:focus{border-color:var(--cw-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--cw-accent) 22%,transparent)}
.cw-input:disabled{opacity:.6}
.cw-send{
  flex:none;width:46px;height:46px;border-radius:50%;border:none;cursor:pointer;
  background:var(--cw-accent);color:var(--cw-accent-ink);display:grid;place-items:center;font-size:1.2rem;
}
.cw-send:hover{filter:brightness(.94)}
.cw-send:disabled{opacity:.5;cursor:default}
.cw-send:focus-visible{outline:2px solid var(--cw-accent-dark);outline-offset:2px}
.cw-foot{text-align:center;color:var(--cw-muted);font-size:.72rem;padding:0 16px 12px}

@media (max-width:520px){
  .cw-panel{left:8px;right:8px;bottom:8px;width:auto;max-width:none;height:calc(100dvh - 16px);max-height:none;border-radius:16px}
  .cw-launch{right:16px;bottom:16px}
}
@media (max-width:360px){
  .cw-launch{padding:0;width:56px;height:56px;justify-content:center}
  .cw-launch-label{display:none}
}
@media (max-height:540px){
  .cw-panel{top:8px;bottom:8px;height:auto;max-height:none}
  .cw-head{padding:10px 14px}
  .cw-foot{padding:0 16px 8px}
}
@media (prefers-reduced-motion:reduce){
  .cw-launch{transition:none}
  .cw-typing .cw-bubble span{animation:none}
}
