.chat-launcher-wrap { position:fixed; left:max(16px,env(safe-area-inset-left)); bottom:max(86px,calc(env(safe-area-inset-bottom) + 74px)); z-index:80; }
.chat-launcher { display:grid; place-items:center; width:56px; height:56px; border:2px solid #df303b; border-radius:50%; background:#151515; color:#fff; font:700 15px/1 sans-serif; cursor:pointer; box-shadow:0 8px 24px #0005; }
.chat-panel { box-sizing:border-box; position:fixed; z-index:100; left:max(16px,env(safe-area-inset-left)); bottom:max(16px,env(safe-area-inset-bottom)); width:min(390px,calc(100vw - 32px)); height:min(650px,calc(var(--ivy-viewport-height,100dvh) - 32px)); display:grid; grid-template-rows:auto minmax(0,1fr) auto auto auto auto auto; border:1px solid #444; border-radius:20px; overflow:hidden; background:#141414; color:#fff; direction:rtl; box-shadow:0 20px 60px #0008; font-family:inherit; }
.chat-panel[hidden],.chat-actions[hidden],.chat-actions a[hidden],.chat-quick-actions[hidden],.chat-recovery[hidden],.chat-retry[hidden] { display:none !important; }
body.chat-open { overflow:hidden; }
.chat-open .chat-launcher-wrap { visibility:hidden; }
.chat-header { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; background:#090909; border-bottom:1px solid #444; }
.chat-header div { display:grid; gap:4px; }
.chat-header strong { font-size:18px; }
.chat-header span { color:#ccc; font-size:13px; }
.chat-close { width:44px; height:44px; border:0; border-radius:50%; background:#292929; color:#fff; font-size:28px; cursor:pointer; }
.chat-messages { display:flex; flex-direction:column; gap:12px; overflow:auto; padding:14px; overscroll-behavior:contain; }
.chat-message { max-width:90%; padding:10px 12px; border-radius:14px; line-height:1.55; white-space:pre-wrap; overflow-wrap:anywhere; font-size:15px; }
.chat-message-assistant { align-self:flex-start; background:#292929; }
.chat-message-user { align-self:flex-end; background:#a31c26; }
.chat-quick-actions { display:flex; gap:6px; overflow:auto; padding:8px 12px; }
.chat-quick-actions button { flex:0 0 auto; min-height:44px; padding:8px; border:1px solid #666; border-radius:20px; background:#222; color:#fff; font:inherit; cursor:pointer; }
.chat-actions { display:flex; flex-wrap:wrap; gap:8px; padding:8px 12px; }
.chat-actions a { padding:10px; min-height:44px; box-sizing:border-box; border-radius:10px; background:#b3212c; color:#fff; text-decoration:none; }
.chat-recovery { display:flex; align-items:center; gap:8px; padding:8px 12px; background:#352c14; }
.chat-recovery p { margin:0; font-size:14px; }
.chat-retry { min-height:44px; flex-shrink:0; border:1px solid #999; border-radius:8px; padding:8px; background:#222; color:#fff; cursor:pointer; }
.chat-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; padding:12px; border-top:1px solid #444; }
.chat-form .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.chat-form textarea { box-sizing:border-box; width:100%; min-height:48px; max-height:100px; resize:none; padding:10px; border:1px solid #777; border-radius:10px; background:#222; color:#fff; font:16px/1.4 sans-serif; }
.chat-form button { min-width:64px; min-height:48px; border:0; border-radius:10px; background:#bd2330; color:#fff; font:700 14px sans-serif; cursor:pointer; }
.chat-form button:disabled { opacity:.6; cursor:wait; }
.chat-disclaimer { margin:0; padding:0 12px 10px; font-size:12px; color:#ccc; }
.chat-panel :focus-visible,.chat-launcher:focus-visible { outline:3px solid #f2cc66; outline-offset:2px; }
@media(max-width:600px) { .chat-panel { left:8px; right:8px; bottom:max(8px,env(safe-area-inset-bottom)); width:calc(100% - 16px); height:min(680px,calc(var(--ivy-viewport-height,100dvh) - 16px)); border-radius:18px; } }
