.chat-launcher { position:fixed; z-index:90; top:auto; bottom:max(24px,env(safe-area-inset-bottom)); left:0; right:0; width:max-content; max-width:calc(100% - 32px); margin-inline:auto; display:flex; align-items:center; gap:12px; min-height:66px; padding:11px 17px 11px 12px; border:1px solid #aaa0ed; border-radius:16px; background:#17162e; color:#fff; box-shadow:0 10px 30px #17162e30; font:600 14px Manrope,sans-serif; text-align:left; cursor:pointer; animation:chat-arrive .6s cubic-bezier(.2,.8,.2,1) both; transition:transform .2s,box-shadow .2s; }
body:has(.chat-launcher:not([hidden])) { padding-bottom:110px; }
.chat-launcher:hover { transform:translateY(-3px); box-shadow:0 14px 36px #17162e50; }
.chat-launcher-icon { display:grid; place-items:center; width:38px; height:38px; background:#b9b0ff; color:#17162e; border-radius:10px; font:600 18px 'IBM Plex Mono',monospace; }
.chat-launcher-caption { display:block; margin-top:2px; color:#c9c5df; font-size:10px; font-weight:400; }
.chat-launcher-arrow { margin-left:6px; color:#b9b0ff; font-size:22px; }
.chat-dialog { position:fixed; inset:0; margin:auto; padding:0; width:min(600px,calc(100vw - 48px)); height:min(790px,calc(100dvh - 48px)); max-width:none; max-height:none; overflow:hidden; border:1px solid #777096; border-radius:22px; color:#f7f7fa; background:#111222; box-shadow:0 28px 100px #08091866; font-family:Manrope,sans-serif; }
.chat-dialog[open] { display:flex; flex-direction:column; animation:chat-arrive .3s cubic-bezier(.2,.8,.2,1) both; }
.chat-dialog::backdrop { background:#10112555; backdrop-filter:blur(3px); animation:chat-backdrop .25s ease-out; }
body.chat-open { overflow:hidden; }
.chat-header { display:flex; flex-shrink:0; justify-content:space-between; align-items:center; gap:12px; padding:20px 24px; border-bottom:1px solid #ffffff17; background:#1b1a32; }
.chat-brand { display:flex; align-items:center; gap:12px; }
.chat-brand img { border-radius:6px; }
.chat-brand h2 { margin:0; font:600 18px Oxanium,sans-serif; letter-spacing:.02em; }
.chat-brand p { margin:5px 0 0; font:400 10px 'IBM Plex Mono',monospace; color:#c7c1df; }
.chat-status-dot { display:inline-block; width:6px; height:6px; margin-right:6px; border-radius:50%; background:#9be2d2; }
.chat-header-actions { display:flex; align-items:center; gap:16px; }
.chat-reset,.chat-close { font-family:inherit; cursor:pointer; color:#dad5ed; border:0; background:transparent; }
.chat-reset { padding:10px 0; font-size:11px; }
.chat-close { display:grid; place-items:center; width:36px; height:36px; border:1px solid #ffffff29; border-radius:50%; font-size:26px; line-height:1; }
.chat-close:hover { background:#ffffff12; }
.chat-feed { flex:1; min-height:80px; overflow-y:auto; overscroll-behavior:contain; padding:26px 28px; scrollbar-color:#625b80 transparent; }
.chat-terminal-label { margin:0 0 16px; font:400 10px 'IBM Plex Mono',monospace; letter-spacing:.12em; color:#9be2d2; }
.chat-welcome h3 { margin:0; font:500 clamp(25px,2.5vw,34px)/1.15 Oxanium,sans-serif; letter-spacing:-.025em; }
.chat-welcome h3 span { color:#b9b0ff; }
.chat-welcome > p:not(.chat-terminal-label) { margin:16px 0 22px; max-width:440px; color:#bcb8ce; font-size:13px; line-height:1.7; }
.chat-prompts { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.chat-prompts button { position:relative; text-align:left; border:1px solid #ffffff22; border-radius:12px; padding:13px 24px 13px 14px; background:#ffffff04; color:#f1edf9; font:500 12px/1.5 Manrope,sans-serif; cursor:pointer; transition:background .18s,border-color .18s,transform .18s; }
.chat-prompts button:hover { background:#b9b0ff16; border-color:#a599e8; transform:translateY(-2px); }
.chat-prompts button > span { display:block; margin-bottom:7px; color:#a9a2c3; font:400 8px 'IBM Plex Mono',monospace; letter-spacing:.06em; }
.chat-prompts b { position:absolute; right:12px; bottom:13px; color:#b9b0ff; font-weight:400; }
.chat-messages { display:grid; gap:18px; }
.chat-message { max-width:94%; animation:chat-message-in .25s ease-out; }
.chat-message-label { margin:0 0 7px; font:400 9px 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.08em; color:#a9a2c3; }
.chat-message-content { margin:0; padding:15px 17px; font-size:13px; line-height:1.75; white-space:pre-wrap; overflow-wrap:anywhere; border-radius:3px 14px 14px; background:#212137; }
.chat-message-user { justify-self:end; }
.chat-message-user .chat-message-label { text-align:right; }
.chat-message-user .chat-message-content { background:#b9b0ff; color:#161329; border-radius:14px 3px 14px 14px; }
.chat-thinking { color:#c6c0dc; font-size:12px; margin:20px 0 0; }
.chat-thinking span { color:#b9b0ff; margin-right:7px; animation:chat-thinking 1.2s ease-in-out infinite; }
.chat-compose-area { flex-shrink:0; padding:16px 24px 18px; border-top:1px solid #ffffff17; background:#17172a; }
.chat-verification { display:flex; align-items:center; flex-wrap:wrap; gap:8px 14px; margin-bottom:12px; }
.chat-verify { border:1px solid #a99be7; border-radius:7px; background:transparent; color:#d6ceff; padding:8px 11px; font:600 11px Manrope,sans-serif; cursor:pointer; }
.chat-verify span { margin-left:10px; }
.chat-verify:disabled { cursor:wait; opacity:.55; }
.chat-verification p { margin:0; color:#b6b0cc; font:400 10px/1.5 Manrope,sans-serif; }
#chat-turnstile { width:100%; }
#chat-turnstile:empty { display:none; }
.chat-input-label { display:block; margin-bottom:7px; color:#d3cde5; font-size:11px; }
.chat-input-wrap { display:flex; align-items:flex-end; gap:10px; padding:11px 10px 10px 14px; border:1px solid #6e6689; border-radius:12px; background:#10111f; }
.chat-input-wrap:focus-within { border-color:#c4baff; box-shadow:0 0 0 2px #b9b0ff25; }
.chat-input-wrap textarea { display:block; width:100%; min-width:0; min-height:42px; max-height:100px; margin:0; padding:0; resize:vertical; background:transparent; border:0; border-radius:0; outline:0; color:#f7f7fa; font:400 13px/1.6 Manrope,sans-serif; box-shadow:none; }
.chat-input-wrap textarea::placeholder { color:#9992af; }
.chat-send { width:38px; height:38px; flex-shrink:0; border:0; border-radius:9px; background:#b9b0ff; color:#161329; font:400 26px Manrope,sans-serif; cursor:pointer; }
.chat-send:disabled { opacity:.35; cursor:not-allowed; }
.chat-input-help { margin:6px 0 0; color:#aaa3be; font-size:9px; }
.chat-disclosure { margin:12px 0 0; color:#aaa3be; font-size:10px; line-height:1.65; }
.chat-disclosure a { color:#d2c9ff; text-underline-offset:3px; }
.chat-human { display:flex; justify-content:space-between; gap:8px; margin-top:13px; padding-top:12px; border-top:1px solid #ffffff13; font-size:11px; }
.chat-human > span { color:#b1aac5; }
.chat-human a { color:#eee9ff; text-decoration:none; }
.chat-error { margin:10px 0 0; color:#ffd6b6; font-size:12px; line-height:1.5; }
.chat-dialog button:focus-visible,.chat-dialog a:focus-visible,.chat-launcher:focus-visible,.chat-feed:focus-visible { outline:2px solid #b9b0ff; outline-offset:4px; }
.chat-dialog [hidden],.chat-launcher[hidden] { display:none !important; }
@keyframes chat-arrive { from { opacity:0; transform:translateY(12px) scale(.97); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes chat-message-in { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
@keyframes chat-backdrop { from { opacity:0; } to { opacity:1; } }
@keyframes chat-thinking { 50% { opacity:.35; } }
@media(max-width:760px) {
  .chat-launcher { bottom:max(16px,env(safe-area-inset-bottom)); min-height:48px; gap:8px; padding:8px 11px 8px 8px; font-size:12px; border-radius:12px; }
  .chat-launcher-icon { width:30px; height:30px; font-size:15px; border-radius:7px; }
  .chat-launcher-caption { display:none; }
  .chat-launcher-arrow { font-size:18px; margin-left:0; }
  .chat-dialog { width:calc(100vw - 24px); height:calc(100dvh - 24px); border-radius:18px; }
  .chat-header { padding:16px 18px; }
  .chat-feed { padding:23px 20px; }
  .chat-compose-area { padding:14px 18px; }
  .chat-welcome h3 { font-size:30px; }
  .chat-input-wrap textarea { font-size:16px; }
  .chat-input-help { display:none; }
}
@media(max-width:360px) {
  .chat-header { padding:13px; }
  .chat-brand { gap:8px; }
  .chat-brand h2 { font-size:16px; }
  .chat-header-actions { gap:8px; }
  .chat-feed { padding:20px 16px; }
  .chat-compose-area { padding:12px; }
  .chat-human { font-size:10px; }
}
@media(max-height:600px) {
  .chat-dialog { height:calc(100dvh - 20px); }
  .chat-header { padding-block:10px; }
  .chat-compose-area { padding-block:10px; max-height:60%; overflow:auto; }
  .chat-disclosure,.chat-input-help { display:none; }
}
@media(prefers-reduced-motion:reduce) {
  .chat-launcher,.chat-dialog[open],.chat-dialog::backdrop,.chat-message,.chat-thinking span { animation:none; }
  .chat-launcher,.chat-prompts button { transition:none; }
}
