/* Layout and specialized behavior. Shared visual rules: /design-system.css. */
#gsp-chat{color:var(--gsp-ink);position:fixed;right:24px;bottom:24px;z-index:450;--chat-accent:var(--gsp-accent)}
#gsp-chat *{box-sizing:border-box}
#gsp-chat [hidden]{display:none!important}
#gsp-chat button,#gsp-chat textarea{}
#gsp-chat button{cursor:pointer}
#gsp-chat button:disabled{opacity:.5;cursor:wait}
#gsp-chat button:focus-visible,#gsp-chat a:focus-visible,#gsp-chat textarea:focus-visible{}
.gsp-chat-launch{border:1px solid #353839;background:var(--gsp-ink);color:white;box-shadow:0 6px 24px #0003;border-radius:28px;min-height:52px;padding:var(--gsp-space-12) var(--gsp-space-20);display:flex;align-items:center;gap:var(--gsp-space-8);}
.gsp-chat-launch svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.gsp-chat-panel{position:absolute;right:0;bottom:66px;width:380px;height:min(610px,calc(100dvh - 120px));min-height:320px;border:1px solid var(--gsp-line);border-radius:18px;background:#fbfcfa;box-shadow:0 18px 65px #1113;display:flex;flex-direction:column;overflow:hidden}
.gsp-chat-header{display:flex;align-items:center;justify-content:space-between;padding:var(--gsp-space-20) var(--gsp-space-20);background:var(--gsp-ink);color:white;flex-shrink:0;border-bottom:3px solid var(--chat-accent)}
.gsp-chat-header .gsp-chat-logo{display:block;width:120px;height:40px;object-fit:contain;flex-shrink:0}
.gsp-chat-close{border:0;background:transparent;color:white;min-width:38px;min-height:38px;border-radius:5px}
.gsp-chat-feed{flex:1;min-height:70px;overflow-y:auto;overscroll-behavior:contain;padding:var(--gsp-space-20) var(--gsp-space-16) var(--gsp-space-4);display:flex;flex-direction:column;gap:var(--gsp-space-12);scrollbar-width:thin}
.gsp-chat-message{max-width:94%;padding:var(--gsp-space-12) var(--gsp-space-12);border-radius:13px;white-space:pre-wrap;overflow-wrap:anywhere;flex-shrink:0}
.gsp-chat-assistant{background:#edf0ed;align-self:flex-start;border-bottom-left-radius:3px}
.gsp-chat-user{background:var(--gsp-ink);color:var(--gsp-surface);align-self:flex-end;border-bottom-right-radius:3px}
.gsp-chat-message a{color:inherit;text-decoration:underline;}
.gsp-chat-suggestions{display:flex;gap:var(--gsp-space-8);padding:var(--gsp-space-8) var(--gsp-space-16);flex-wrap:wrap}
.gsp-chat-suggestions button{background:var(--gsp-surface);border:1px solid #c5ceca;border-radius:15px;padding:var(--gsp-space-8) var(--gsp-space-8);color:var(--gsp-ink)}
.gsp-chat-status{margin:0;padding:0 var(--gsp-space-16);color:#6a302c;max-height:66px;overflow:auto}
.gsp-chat-status:not(:empty){padding-top:var(--gsp-space-4);padding-bottom:var(--gsp-space-8)}
.gsp-chat-form{display:flex;gap:var(--gsp-space-8);margin:var(--gsp-space-8) var(--gsp-space-16) var(--gsp-space-8);padding:var(--gsp-space-8);border:1px solid #b8c3bf;border-radius:12px;background:white;flex-shrink:0}
.gsp-chat-form textarea{border:0;border-radius:4px;resize:none;width:100%;min-width:0;padding:var(--gsp-space-4) var(--gsp-space-4);background:white;color:var(--gsp-ink);}
.gsp-chat-form button{align-self:flex-end;border:0;border-radius:8px;background:var(--gsp-ink);color:white;width:38px;height:38px;flex-shrink:0}
.gsp-chat-actions{padding:0 var(--gsp-space-16) var(--gsp-space-12);display:flex;justify-content:space-between;align-items:center;gap:var(--gsp-space-8);flex-shrink:0}
.gsp-chat-actions a{color:var(--gsp-ink);text-decoration:underline;text-underline-offset:3px}
.gsp-chat-reset{border:0;background:transparent;color:#515c57;padding:var(--gsp-space-4) 0;}
.gsp-chat-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:480px){#gsp-chat{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom))}.gsp-chat-panel{width:100%;height:min(610px,calc(100dvh - 94px));bottom:64px}.gsp-chat-header{padding:var(--gsp-space-12) var(--gsp-space-16)}.gsp-chat-launch{margin-left:auto;min-height:48px;padding:var(--gsp-space-8) var(--gsp-space-16)}}
@media(max-height:550px){.gsp-chat-panel{height:calc(100dvh - 90px);min-height:0}.gsp-chat-feed{min-height:36px}.gsp-chat-suggestions{display:none}.gsp-chat-header{padding:var(--gsp-space-8) var(--gsp-space-12)}}
@media print{#gsp-chat{display:none}}
