:root{--astra-layer-raven-chat:900}
body.raven-chat-open{overscroll-behavior:none}
.raven-chat-backdrop{position:fixed;inset:0;z-index:var(--astra-layer-raven-chat);pointer-events:auto;touch-action:none;background:rgba(2,6,16,.7);animation:raven-chat-backdrop-in .16s ease-out both}
.raven-chat{position:fixed;z-index:calc(var(--astra-layer-raven-chat) + 1);box-sizing:border-box;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;min-width:0;overflow:hidden;border:1px solid rgba(132,178,255,.24);border-radius:26px;background:radial-gradient(circle at 12% 0,rgba(72,154,226,.12),transparent 34%),linear-gradient(158deg,rgba(9,18,36,.985),rgba(10,9,27,.985));box-shadow:0 26px 80px rgba(0,0,0,.58),inset 0 1px rgba(255,255,255,.055);color:#f5f8ff;overscroll-behavior:contain;pointer-events:auto;touch-action:auto;animation:raven-chat-shell-in .18s cubic-bezier(.18,.78,.22,1) both}
.raven-chat-header{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:90px;box-sizing:border-box;padding:14px 14px 14px 94px;border-bottom:1px solid rgba(255,255,255,.085);background:linear-gradient(180deg,rgba(26,43,70,.32),rgba(9,17,33,.06))}
.raven-chat-identity{display:grid;min-width:0;gap:3px}.raven-chat-header h2{min-width:0;margin:0;color:#f7f9ff;font-size:18px;line-height:1.2;letter-spacing:.01em;overflow-wrap:anywhere}.raven-chat-status{min-width:0;margin:0;color:#83cef4;font-size:12px;line-height:1.3;overflow-wrap:anywhere}
.raven-chat-token-balance{justify-self:start;padding:3px 8px;border:1px solid rgba(116,199,255,.22);border-radius:999px;background:rgba(65,145,220,.12);color:#b8e5ff;font-size:11px;font-weight:700;line-height:1.25}.raven-chat-message-cost{display:block;margin-top:5px;color:rgba(183,218,244,.58);font-size:11px;font-weight:650;text-align:right}.raven-chat-token-state{display:grid;gap:5px;box-sizing:border-box;max-width:30rem;margin:12px auto;padding:14px 15px;border:1px solid rgba(137,178,236,.18);border-radius:17px;background:rgba(65,101,166,.12);color:rgba(229,238,252,.78);font-size:13px;line-height:1.45}.raven-chat-token-state strong{color:#f3f7ff;font-size:14px}.raven-chat-token-state span{display:block}
.raven-chat-close,.raven-chat-composer button{min-width:44px;min-height:44px;border:1px solid rgba(143,179,243,.18);border-radius:14px;color:#f7f8ff;background:rgba(102,132,210,.14);touch-action:manipulation}
.raven-chat-close{flex:0 0 44px;margin-left:10px;padding:0;font-size:25px;line-height:1}.raven-chat-close:focus-visible,.raven-chat-composer button:focus-visible,.raven-chat-composer textarea:focus-visible{outline:2px solid rgba(101,217,255,.82);outline-offset:2px}
.raven-chat-messages{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:18px 16px;overflow-wrap:anywhere;scrollbar-gutter:stable;touch-action:pan-y}.raven-chat-messages.is-empty{display:grid;align-content:center;justify-items:center;text-align:center}
.raven-chat-message{box-sizing:border-box;width:fit-content;max-width:min(88%,36rem);margin:0 0 11px;padding:11px 13px;border:1px solid rgba(255,255,255,.055);border-radius:17px;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;unicode-bidi:plaintext;font-size:14px;line-height:1.5}
.raven-chat-message--user{margin-left:auto;border-bottom-right-radius:6px;background:linear-gradient(145deg,rgba(56,126,215,.34),rgba(78,84,185,.27))}.raven-chat-message--assistant{max-width:min(96%,38rem);border-bottom-left-radius:6px;background:rgba(255,255,255,.075)}
.raven-chat-empty{max-width:18rem;margin:0;padding:16px;color:rgba(225,235,250,.72);font-size:14px;line-height:1.55}.raven-chat-loading{color:#87c9ef}.raven-chat-error,.raven-chat-thinking{margin:0;padding:10px 16px;color:rgba(235,241,255,.72);font-size:13px}.raven-chat-error{color:#ffc7c7}
.raven-chat[data-state="THINKING"] .raven-chat-thinking::after{content:"";display:inline-block;width:1.1rem;height:.35rem;margin-left:.45rem;background:radial-gradient(circle,#9fc9ff 35%,transparent 40%) 0 50%/33% 100% repeat-x;animation:raven-thinking-dots .8s ease-in-out infinite alternate}
.raven-chat-composer{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:end;gap:8px;box-sizing:border-box;padding:12px max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));border-top:1px solid rgba(255,255,255,.085);background:linear-gradient(180deg,rgba(6,12,25,.9),rgba(4,8,19,.98))}
.raven-chat-composer textarea{box-sizing:border-box;width:100%;min-width:0;min-height:46px;max-height:120px;resize:none;border:1px solid rgba(139,189,238,.25);border-radius:15px;padding:12px 13px;background:rgba(255,255,255,.065);box-shadow:inset 0 1px 8px rgba(0,0,0,.15);color:#fff;font-family:inherit;font-size:16px!important;font-weight:400;line-height:1.35;transform:none;-webkit-text-size-adjust:100%;caret-color:#70d2ff;touch-action:manipulation}.raven-chat-composer textarea::placeholder{color:rgba(210,222,240,.48)}.raven-chat-composer textarea:focus{border-color:rgba(101,217,255,.58);box-shadow:0 0 0 3px rgba(65,184,235,.1),inset 0 1px 8px rgba(0,0,0,.15)}
.raven-chat-composer button{padding:0 13px;font-size:13px;font-weight:700}.raven-chat-composer button:not(:disabled):active{transform:translateY(1px);background:rgba(104,151,232,.25)}.raven-chat-composer button:disabled{opacity:.42}
.raven-bubble--chat-owned{z-index:calc(var(--astra-layer-raven-chat) + 2);pointer-events:none;transition:left .18s cubic-bezier(.18,.78,.22,1),top .18s cubic-bezier(.18,.78,.22,1);filter:drop-shadow(0 8px 16px rgba(0,0,0,.28))}
@keyframes raven-chat-backdrop-in{from{opacity:0}to{opacity:1}}@keyframes raven-chat-shell-in{from{opacity:0;transform:translateY(8px) scale(.992)}to{opacity:1;transform:none}}@keyframes raven-thinking-dots{to{opacity:.35;transform:translateY(-1px)}}
@media(max-width:380px){.raven-chat-header{min-height:86px;padding-left:90px;padding-right:10px}.raven-chat-status{font-size:11px}.raven-chat-messages{padding:14px 12px}.raven-chat-composer{gap:6px;padding-left:9px;padding-right:9px}.raven-chat-composer button{padding:0 10px}}
@media(min-width:720px){.raven-chat{border-radius:28px}.raven-chat-header{padding-right:18px}.raven-chat-messages{padding:22px 20px}.raven-chat-composer{padding:14px 16px}}
@media(prefers-reduced-motion:reduce){.raven-chat-backdrop,.raven-chat,.raven-bubble--chat-owned,.raven-chat[data-state="THINKING"] .raven-chat-thinking::after{animation:none;transition:none}}
