/* Conversation sheet: one focused layer, the same spacing and controls on every device. */
.chat-launcher{
 position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));left:auto;z-index:40;
 display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:8px 18px 8px 10px;border:1px solid #d8a84b70;border-radius:99px;
 background:linear-gradient(145deg,#132347f2,#0a1733fa);color:var(--cream);font:600 .875rem var(--body);cursor:pointer;
 box-shadow:var(--e2);backdrop-filter:blur(16px);transition:transform .18s,box-shadow .18s;
}
.chat-launcher:hover{transform:translateY(-2px)}.chat-launcher:active{transform:translateY(1px)}
.chat-launcher-icon,.chat-identity{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;background:linear-gradient(145deg,var(--gold-light),var(--gold));color:var(--brand-navy-deep);box-shadow:var(--surface-light)}
.chat-launcher svg,.chat-panel svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.chat-panel{
 position:fixed;inset:calc(var(--viewport-top,0px) + 16px) 16px calc(var(--keyboard-inset,0px) + 16px) auto;margin:0;width:480px;max-width:calc(100vw - 32px);height:calc(var(--frame-height,100dvh) - 32px);max-height:calc(var(--frame-height,100dvh) - 32px);
 display:flex;flex-direction:column;min-height:0;padding:0;overflow:hidden;border:1px solid var(--surface-edge);border-radius:24px;container:conversation/size;
 background:linear-gradient(145deg,#132347f5,#0a1733fc);color:var(--cream);box-shadow:var(--surface-light),var(--e3);
 transform-origin:right center;animation:chat-sheet-in .32s var(--motion-arrive) both;
}
.chat-panel[hidden]{display:none}.chat-panel::backdrop{background:#020916b8;backdrop-filter:blur(5px)}
.chat-panel.is-closing{animation:chat-sheet-out .18s ease-in both;pointer-events:none}
.chat-head{display:flex;align-items:center;gap:12px;flex:none;padding:20px;border-bottom:1px solid var(--surface-edge)}
.chat-identity{width:40px;height:40px}.chat-titles{flex:1;min-width:0}
.chat-head strong{display:block;font:600 1.6rem/1.1 var(--display)}
.chat-head small{display:block;max-width:34ch;margin-top:6px;color:#bdcbe0;font-size:.75rem;line-height:1.5}
.chat-close,.chat-icon-button{display:inline-grid;place-items:center;flex:none;min-width:44px;min-height:44px;padding:8px;border:1px solid var(--surface-edge);border-radius:var(--r3);background:#ffffff05;color:var(--cream);cursor:pointer;transition:background .18s,transform .18s}
.chat-close:hover,.chat-icon-button:hover{background:#ffffff10}.chat-close:active,.chat-icon-button:active{transform:translateY(1px)}
.chat-list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:24px 20px;display:flex;flex-direction:column;gap:16px;scrollbar-width:thin;scrollbar-color:#536885 #ffffff04}
.chat-welcome{margin-block:auto;padding:16px 0}.chat-welcome h3{max-width:13ch;margin:0 0 16px;font:600 2.4rem/1.05 var(--display);letter-spacing:-.02em}
.chat-welcome p{max-width:34ch;font-size:.9rem;line-height:1.65;color:#c5d3e5}
.chat-prompts{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}
.chat-prompt{min-height:44px;padding:10px 12px;border:1px solid var(--surface-edge);border-radius:var(--r3);background:#ffffff06;color:var(--cream);font:600 .75rem var(--body);text-align:left;cursor:pointer}
.chat-prompt:hover{background:#ffffff12}
.chat-msg{max-width:92%;font-size:.9rem;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}
.chat-msg-body{padding:12px 16px;border:1px solid var(--surface-edge);border-radius:18px;box-shadow:var(--surface-light),var(--e1)}
.chat-visitor{align-self:flex-end;transform-origin:right bottom;animation:chat-send-arrive .28s var(--motion-arrive) both}
.chat-visitor .chat-msg-body{background:linear-gradient(145deg,#f0d48a,#d8a84b);color:#0a1733;border-color:#f0d48a80;border-bottom-right-radius:6px}
.chat-assistant,.chat-owner{align-self:flex-start;transform-origin:left bottom;animation:chat-answer-arrive .28s var(--motion-arrive) both}
.chat-assistant .chat-msg-body,.chat-owner .chat-msg-body{background:#ffffff06;border-bottom-left-radius:6px}
.chat-owner .chat-msg-body{border-color:#d8a84b80}
.chat-msg-footer{display:flex;align-items:center;gap:8px;padding-inline:2px;color:#b7c8df;font-size:.68rem;white-space:normal}
.chat-visitor .chat-msg-footer{justify-content:flex-end}
.chat-copy{display:grid;place-items:center;min-width:44px;min-height:44px;padding:8px;border:0;background:none;color:inherit;cursor:pointer}.chat-copy svg{width:14px;height:14px}
.chat-msg strong{font-weight:750}.chat-msg mark,.chat-format-preview mark{background:#efd394;color:#0a1733;padding:.08em .18em;border-radius:3px}
.chat-msg u,.chat-format-preview u{text-underline-offset:.2em}.chat-msg a{color:inherit;text-decoration:underline;text-underline-offset:.2em}
.message-tone-gold{color:#f0d48a}.message-tone-blue{color:#9ed7ff}.message-tone-rose{color:#ffbce7}
.chat-visitor .message-tone-gold{color:#4b3105}.chat-visitor .message-tone-blue{color:#14385c}.chat-visitor .message-tone-rose{color:#612446}
.chat-typing{display:flex;align-items:center;gap:5px;min-height:44px;padding:8px;color:#c5d3e5;font-size:.8rem}.chat-typing span{margin-left:8px}
.chat-typing i{width:4px;height:16px;border-radius:5px;background:#f0d48a;animation:chat-thought 1.1s ease-in-out infinite}.chat-typing i:nth-child(2){animation-delay:.15s}.chat-typing i:nth-child(3){animation-delay:.3s}
.chat-note{flex:none;margin:0;padding:8px 20px;color:#b5c6dd;font-size:.68rem;line-height:1.5}.chat-note a{color:var(--gold-light);text-underline-offset:3px}
.chat-form{flex:none;padding:0 16px 16px}.chat-composer{border:1px solid var(--surface-edge);border-radius:var(--r4);background:#060f2480;box-shadow:var(--inset-1);transition:border-color .18s,box-shadow .18s}
.chat-composer:focus-within{border-color:#d8a84b88;box-shadow:0 0 0 2px #d8a84b15,var(--inset-1)}
.chat-form textarea{display:block;width:100%;min-height:72px;max-height:150px;resize:none;border:0;background:none;color:var(--cream);padding:12px 16px 6px;font:16px/1.55 var(--body);outline:none}
.chat-form textarea::placeholder{color:#afc1db}.chat-composer-actions{display:flex;align-items:center;gap:6px;padding:6px 8px 8px}
.chat-character-count{margin-left:auto;color:#b5c6dd;font-size:.68rem;font-variant-numeric:tabular-nums}
.chat-send{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;padding:10px 14px;border:1px solid #f0d48a90;border-radius:var(--r3);background:linear-gradient(145deg,var(--gold-light),var(--gold));color:#0a1733;font:750 .8rem var(--body);box-shadow:var(--surface-light),0 2px 0 #a87a28;cursor:pointer;transition:transform .18s,box-shadow .18s}
.chat-send:hover{transform:translateY(-1px)}.chat-send:active{transform:translateY(1px);box-shadow:var(--surface-light)}
.chat-send:disabled{opacity:.55;cursor:wait;transform:none}.chat-send svg{width:16px;height:16px}
.chat-format-tools{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:3px;padding:6px 8px;border-top:1px solid var(--surface-edge);animation:composer-layer-in .2s var(--motion-arrive) both}
.chat-format-tools[hidden],.chat-format-preview[hidden],.chat-files[hidden]{display:none}
.chat-format-tools button{flex:none;width:44px;min-height:44px;padding:5px;border:1px solid #b9cdea22;border-radius:var(--r2);background:#ffffff04;color:var(--cream);font:700 14px/1 var(--body);cursor:pointer}
.chat-format-tools button:hover{background:#ffffff10}.chat-format-tools [aria-label="Highlight text"]{background:#e7c77e;color:#0a1733}
.chat-format-tools .tone-gold{color:#f0d48a}.chat-format-tools .tone-blue{color:#9ed7ff}.chat-format-tools .tone-rose{color:#ffbce7}
.chat-format-preview{max-height:100px;overflow:auto;border-top:1px solid var(--surface-edge);padding:8px 16px;font:.85rem/1.6 var(--body);white-space:pre-wrap;overflow-wrap:anywhere;color:#d5e0ef;animation:composer-layer-in .2s var(--motion-arrive) both}
.chat-attachment{display:flex;align-items:center;gap:10px;padding:8px;border:1px solid var(--surface-edge);border-radius:var(--r3);margin-top:8px;font-size:.75rem;background:#ffffff05;white-space:normal;animation:composer-layer-in .2s var(--motion-arrive) both}
.chat-attachment img{height:56px;width:56px;object-fit:cover;border-radius:var(--r2)}.chat-attachment span{min-width:0;overflow-wrap:anywhere}.chat-attachment small{display:block;color:#b5c6dd}.chat-attachment button{margin-left:auto}.chat-files{padding:0 8px 8px}
.chat-feedback{margin:0;padding:8px;color:var(--gold-light);font-size:.75rem;line-height:1.5}.chat-feedback:empty{display:none}
.chat-trap{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.chat-panel :focus-visible,.chat-launcher:focus-visible{outline:2px solid var(--gold-light);outline-offset:3px}.chat-panel textarea:focus-visible{outline:none}
@keyframes chat-sheet-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
@keyframes chat-sheet-out{to{opacity:0;transform:scale(.975)}}
@keyframes chat-send-arrive{from{opacity:0;transform:translate(8px,12px) scale(.97)}to{opacity:1;transform:none}}
@keyframes chat-answer-arrive{from{opacity:0;transform:translate(-6px,10px)}to{opacity:1;transform:none}}
@keyframes composer-layer-in{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}
@keyframes chat-thought{0%,100%{opacity:.45;transform:scaleY(.35)}50%{opacity:1;transform:scaleY(1.1)}}
/* Respond to the space the conversation actually has, including an open keyboard. */
@container conversation (max-height:500px){
 .chat-head{padding:8px 12px}.chat-head strong{font-size:1.2rem}.chat-head small{display:none}
 .chat-list{padding:12px}.chat-format-preview{display:none}
 .chat-form{padding-bottom:8px}.chat-form textarea{min-height:52px;max-height:80px}
 .chat-note{padding:6px 12px}
}
@media(max-width:600px){
 .chat-panel{inset:calc(var(--viewport-top,0px) + 8px) 8px calc(var(--keyboard-inset,0px) + 8px);max-width:calc(100vw - 16px);width:calc(100vw - 16px);height:calc(var(--frame-height,100dvh) - 16px);max-height:calc(var(--frame-height,100dvh) - 16px);border-radius:var(--r4)}
 .chat-head{padding:16px}.chat-list{padding:20px 16px}.chat-form{padding:0 12px max(12px,env(safe-area-inset-bottom))}
 .chat-launcher[aria-expanded=true]{visibility:hidden}
}
@media(prefers-reduced-motion:reduce){
 .chat-panel,.chat-panel.is-closing,.chat-msg,.chat-visitor,.chat-assistant,.chat-owner,.chat-typing i,.chat-format-tools,.chat-format-preview,.chat-attachment{animation:none}
 .chat-panel *,.chat-launcher{transition:none}
}
body.motion-off :is(.chat-panel,.chat-msg,.chat-typing i,.chat-format-tools,.chat-format-preview,.chat-attachment){animation:none}
body.motion-off .chat-panel *,body.motion-off .chat-launcher{transition:none}
