.cw { position:fixed; right:var(--s5); bottom:var(--s5); z-index:40; font-family:var(--font-body); }
.cw-launcher { display:inline-flex; align-items:center; gap:var(--s2); min-height:52px; padding:var(--s3) var(--s6); border:1px solid var(--ink); border-radius:999px; background:var(--ink); color:var(--paper); font-size:var(--sm); font-weight:700; box-shadow:0 14px 34px -14px #14171d99; transition:background .18s,transform .18s; }
.cw-launcher:before { content:''; width:.6rem; height:.6rem; border-radius:50%; background:var(--accent); }
.cw-launcher:hover { background:var(--signal); border-color:var(--signal); color:var(--surface); transform:translateY(-1px); }
.cw-panel { display:flex; flex-direction:column; width:min(390px,calc(100vw - 2rem)); max-height:min(600px,calc(100vh - 2rem)); background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:6px; box-shadow:0 26px 60px -24px #14171d99; overflow:hidden; }
.cw-head { display:flex; align-items:center; justify-content:space-between; gap:var(--s3); padding:var(--s4) var(--s5); background:var(--night); color:var(--on-night); }
.cw-title { display:flex; flex-direction:column; line-height:1.3; }
.cw-title strong { font:700 var(--base)/1.3 var(--font-display); }
.cw-title span { font-size:var(--xs); color:#ffac85; letter-spacing:.06em; }
.cw-close { min-height:44px; min-width:44px; padding:0 var(--s3); background:transparent; color:var(--on-night); border:1px solid #687378; border-radius:2px; font-size:var(--xs); }
.cw-close:hover { border-color:var(--on-night); }
.cw-log { flex:1; min-height:120px; overflow-y:auto; padding:var(--s4) var(--s5); display:flex; flex-direction:column; gap:var(--s3); }
.cw-msg { display:flex; flex-direction:column; gap:var(--s2); max-width:88%; }
.cw-msg p { margin:0; padding:var(--s3) var(--s4); font-size:var(--sm); line-height:1.55; border-radius:4px; white-space:pre-wrap; overflow-wrap:anywhere; }
.cw-ai { align-self:flex-start; }
.cw-ai p { background:var(--muted-surface); }
.cw-user { align-self:flex-end; }
.cw-user p { background:var(--ink); color:var(--paper); }
.cw-links { display:flex; flex-wrap:wrap; gap:var(--s2); }
.cw-link { display:inline-flex; align-items:center; min-height:44px; padding:var(--s2) var(--s4); border:1px solid var(--signal); border-radius:999px; color:var(--signal); font-size:var(--sm); font-weight:700; text-decoration:none; }
.cw-link:hover { background:var(--signal); color:var(--surface); }
.cw-chips { display:flex; flex-wrap:wrap; gap:var(--s2); padding:0 var(--s5) var(--s3); }
.cw-chip { min-height:44px; padding:var(--s2) var(--s4); border:1px solid var(--line); border-radius:999px; background:transparent; color:var(--ink); font-size:var(--sm); }
.cw-chip:hover { border-color:var(--ink); background:var(--muted-surface); }
.cw-form { display:flex; gap:var(--s2); padding:var(--s3) var(--s5); border-top:1px solid var(--line); }
.cw-form input { flex:1; min-width:0; }
.cw-send { min-height:48px; padding:0 var(--s5); border:1px solid var(--ink); border-radius:2px; background:var(--ink); color:var(--paper); font-size:var(--sm); font-weight:700; }
.cw-send:hover { background:var(--signal); border-color:var(--signal); color:var(--surface); }
.cw-send:disabled { opacity:.6; cursor:not-allowed; }
.cw-note { margin:0; padding:0 var(--s5) var(--s4); font-size:var(--xs); line-height:1.5; color:var(--slate); }
.cw-menu-trigger { display:none; }
@media(max-width:600px) {
  .cw-menu-trigger { display:inline-flex; align-items:center; justify-content:center; }
  .cw { position:relative; right:auto; bottom:auto; display:flex; justify-content:flex-end; padding:var(--s4); background:var(--paper); }
  .cw-panel { position:fixed; right:var(--s4); bottom:var(--s4); max-height:calc(100dvh - 2rem); }
}
@media print { .cw { display:none; } }
