.assistant { width:min(520px,calc(100vw - 36px)); }
.assistant[inert] { visibility:hidden; }
.assistant-head small { color:#b9ced4; }
.assistant-head button { min-height:44px; }
.assistant-toolbar { display:flex; justify-content:flex-end; padding:.5rem 1rem 0; }
.assistant-reset { padding:.45rem .7rem; border:1px solid #b7c8cc; color:var(--navy); background:transparent; font-size:.875rem; cursor:pointer; min-height:44px; }
.assistant-body { min-height:0; overscroll-behavior:contain; scrollbar-color:#739394 #edf3f3; }
.assistant-turn { margin-block:1.5rem; overflow-wrap:anywhere; }
.assistant-question { margin:0 0 1rem 2rem; padding:.8rem 1rem; background:var(--navy); color:#fff; white-space:pre-wrap; }
.assistant-answer { color:var(--navy); font-size:1rem; line-height:1.6; }
.assistant-answer>p { margin:0 0 .75rem; }
.assistant-source { margin-block:1rem; padding-block:1rem; border-block-start:1px solid #cbd7da; }
.assistant-source h3 { margin:0 0 .4rem; font-size:1.05rem; letter-spacing:0; }
.assistant-source p { white-space:pre-line; margin:0 0 .6rem; }
.assistant-answer a { color:#00675f; text-decoration:underline; text-underline-offset:.2em; }
.assistant-suggestions { display:flex; flex-wrap:wrap; gap:.5rem; margin-block-start:1rem; }
.assistant-suggestions button,.assistant-retry { border:1px solid #9cbbbb; background:#fff; color:#075951; padding:.6rem .75rem; text-align:start; font-size:.875rem; min-height:44px; cursor:pointer; }
.assistant-retry { margin-inline-end:.75rem; }
.assistant button:hover { filter:brightness(.95); }
.assistant button:disabled { cursor:wait; opacity:.6; }
.assistant :focus-visible { outline:3px solid #007c75; outline-offset:3px; }
.assistant-input input { font-size:1rem; caret-color:#00675f; }
.assistant-input input::placeholder { color:#526773; }
.assistant-status { padding:0 1rem; margin:0; font-size:.875rem; color:#365660; background:#fff; }
.assistant-status:not(:empty) { padding-block:.5rem; }
.assistant-disclaimer { color:#526773; }
.assistant ::selection { background:#b4e8e2; color:#092b37; }
@media(max-width:560px) {
  .assistant { inset:0; width:100%; height:100dvh; }
  .assistant-head { padding:.75rem; }
  .assistant-head b { font-size:.95rem; }
  .assistant-body { padding:1rem; }
  .assistant-question { margin-inline-start:1rem; }
  .assistant-disclaimer { padding-block-end:max(.75rem,env(safe-area-inset-bottom)); }
}
@media(prefers-reduced-motion:reduce) { .assistant { transition:none; } }
