.cai-assistant {
  --cai-primary: #005ea8;
  --cai-primary-dark: #004577;
  --cai-text: #17324d;
  --cai-muted: #455b71;
  --cai-surface: #ffffff;
  --cai-surface-alt: #f3f6f9;
  --cai-border: #c8d2dc;
  --cai-focus: #ffcc00;
  box-sizing: border-box;
  position: fixed;
  z-index: 99990;
  right: max(16px, env(safe-area-inset-right));
  bottom: max(16px, env(safe-area-inset-bottom));
  color: var(--cai-text);
  font: 400 1rem/1.5 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.cai-assistant *, .cai-assistant *::before, .cai-assistant *::after { box-sizing: inherit; }
.cai-assistant button, .cai-assistant a, .cai-assistant textarea { font: inherit; }
.cai-assistant button, .cai-assistant__action { min-height: 44px; min-width: 44px; }
.cai-assistant__launcher {
  display: inline-flex; align-items: center; gap: .55rem; border: 0; border-radius: 999px; padding: .7rem 1rem;
  background: var(--cai-primary); color: #fff; cursor: pointer; box-shadow: 0 6px 24px rgba(23,50,77,.22);
}
.cai-assistant__launcher:hover { background: var(--cai-primary-dark); }
.cai-assistant__launcher-icon { display:inline-grid; place-items:center; width:1.6rem; height:1.6rem; border:2px solid currentColor; border-radius:50%; font-weight:700; }
.cai-assistant__panel {
  position: fixed;
  right: max(16px, env(safe-area-inset-right));
  bottom: calc(max(16px, env(safe-area-inset-bottom)) + 72px);
  width: min(760px, calc(100vw - 40px));
  height: min(620px, calc(100dvh - 104px));
  max-height: min(620px, calc(100dvh - 104px));
  overflow: hidden;
  border: 1px solid var(--cai-border);
  border-radius: 16px;
  background: var(--cai-surface);
  box-shadow: 0 16px 48px rgba(23,50,77,.25);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
}
.cai-assistant__panel[hidden] { display: none; }
.cai-assistant__header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.8rem 1rem; border-bottom:1px solid var(--cai-border); background:var(--cai-surface); }
.cai-assistant__header-copy { min-width:0; flex:1 1 auto; }
.cai-assistant__header-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:nowrap; gap:.5rem; flex:0 0 auto; }
.cai-assistant__title { margin:0; font-size:1.12rem; line-height:1.25; }
.cai-assistant__close { border:0; border-radius:8px; background:transparent; color:var(--cai-text); cursor:pointer; font-size:1.6rem; line-height:1; }
.cai-assistant__log { min-height:0; overflow:auto; padding:1rem 1.1rem; overscroll-behavior:contain; scroll-padding:1rem; }
.cai-assistant__message { margin:0 0 1rem; max-width:88%; }
.cai-assistant__message--user { margin-left:auto; }
.cai-assistant__message-label { margin:0 0 .25rem; font-size:.8rem; font-weight:700; }
.cai-assistant__message-body { padding:.75rem .85rem; border-radius:12px; background:var(--cai-surface-alt); overflow-wrap:anywhere; }
.cai-assistant__message--user .cai-assistant__message-body { background:#e8f2fb; }
.cai-assistant__message--pending .cai-assistant__message-body { font-style:italic; color:var(--cai-muted); }
.cai-assistant__message--pending .cai-assistant__message-body::after { content:'  ···'; letter-spacing:.08em; }
.cai-assistant__message-body p { margin:.2rem 0 .65rem; }
.cai-assistant__message-body p:last-child { margin-bottom:.2rem; }
.cai-assistant__citation { font-weight:700; }
.cai-assistant__actions { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:.5rem; }
.cai-assistant__action { display:inline-flex; align-items:center; padding:.5rem .75rem; border:2px solid var(--cai-primary); border-radius:8px; color:var(--cai-primary-dark); text-decoration:none; font-weight:700; }
.cai-assistant__action:hover { background:#eef7ff; }
.cai-assistant__sources { margin-top:.6rem; font-size:.875rem; }
.cai-assistant__sources summary { cursor:pointer; font-weight:700; min-height:44px; display:flex; align-items:center; }
.cai-assistant__sources ul { margin:.35rem 0 0; padding-left:1.25rem; }
.cai-assistant__sources li { margin:.35rem 0; }
.cai-assistant__system { padding:.75rem; border-left:4px solid #b53b00; background:#fff3ed; }
.cai-assistant__form { padding:.85rem 1rem 1rem; border-top:1px solid var(--cai-border); background:var(--cai-surface); }
.cai-assistant__label { display:block; font-weight:700; margin-bottom:.35rem; }
.cai-assistant__input { width:100%; resize:vertical; min-height:74px; max-height:150px; padding:.65rem; border:2px solid #66788a; border-radius:8px; color:var(--cai-text); background:var(--cai-surface); }
.cai-assistant__controls { display:flex; justify-content:space-between; align-items:center; gap:.6rem; margin-top:.65rem; flex-wrap:wrap; }
.cai-assistant__reset, .cai-assistant__send { border-radius:8px; padding:.62rem .95rem; cursor:pointer; }
.cai-assistant__reset--secondary { margin-right:auto; }
.cai-assistant__reset { border:2px solid var(--cai-primary); background:#fff; color:var(--cai-primary-dark); font-weight:700; white-space:nowrap; }
.cai-assistant__reset:hover { background:#eef7ff; }
.cai-assistant__send { border:2px solid var(--cai-primary); background:var(--cai-primary); color:#fff; font-weight:700; }
.cai-assistant__send:hover { background:var(--cai-primary-dark); border-color:var(--cai-primary-dark); }
.cai-assistant button:disabled, .cai-assistant textarea:disabled { opacity:.65; cursor:not-allowed; }
.cai-assistant__sr-only, .cai-assistant__sr-status { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.cai-assistant :focus-visible { outline:4px solid var(--cai-focus); outline-offset:3px; box-shadow:0 0 0 2px #000; }

@media (max-width: 900px) {
  .cai-assistant { left: 12px; right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); }
  .cai-assistant__panel { left:12px; right:12px; bottom: calc(max(12px, env(safe-area-inset-bottom)) + 72px); width:auto; height:min(620px, calc(100dvh - 96px)); max-height:calc(100dvh - 96px); }
  .cai-assistant__header-actions { flex-wrap:wrap; justify-content:flex-end; }
}
@media (max-width: 560px) {
  .cai-assistant__panel { left:8px; right:8px; width:auto; bottom:72px; height:calc(100dvh - 88px); max-height:calc(100dvh - 88px); border-radius:14px; }
  .cai-assistant__launcher-label { display:none; }
  .cai-assistant__header { padding:.7rem .8rem; }
  .cai-assistant__header-copy { flex:1 1 auto; }
  .cai-assistant__header-actions { width:auto; flex-wrap:nowrap; }
  .cai-assistant__header-actions .cai-assistant__reset { font-size:.82rem; padding:.5rem .65rem; }
  .cai-assistant__controls { flex-direction:row; align-items:center; }
  .cai-assistant__reset--secondary { flex:1 1 auto; }
  .cai-assistant__send { flex:0 0 auto; }
  .cai-assistant__message { max-width:96%; }
}
@media (prefers-reduced-motion: reduce) {
  .cai-assistant *, .cai-assistant *::before, .cai-assistant *::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}
@media (forced-colors: active) {
  .cai-assistant__launcher, .cai-assistant__send, .cai-assistant__action, .cai-assistant__reset, .cai-assistant__input { forced-color-adjust:auto; border:2px solid ButtonText; }
  .cai-assistant :focus-visible { outline:3px solid Highlight; box-shadow:none; }
}
