/* Shared EN/ES composer. One microphone, explicit discard/send, 44px targets. */
#chat-form{display:flex;gap:8px;align-items:center;min-width:0;background:var(--glass);-webkit-backdrop-filter:blur(14px) saturate(1.5);backdrop-filter:blur(14px) saturate(1.5);border:1px solid var(--glass-brd);box-shadow:0 8px 26px rgba(22,40,63,.10),inset 0 1px 0 rgba(255,255,255,.9);border-radius:30px;padding:6px 6px 6px 16px;transition:border-color .15s}
#chat-form:focus-within{border-color:var(--steel)}
#chat-input{flex:1;min-width:0;width:100%;border:0;background:transparent;outline:none;font:16px 'Archivo',system-ui,sans-serif;color:var(--ink);padding:8px 0}
#chat-input::placeholder{color:var(--muted)}
#chat-form button{flex:0 0 44px;width:44px;height:44px;padding:0;border:0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--steel),var(--steel-deep));color:#fff;cursor:pointer;font-size:20px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;user-select:none}
#chat-form button:active{transform:scale(.94)}
#chat-form button:focus-visible{outline:3px solid var(--steel);outline-offset:3px}
#chat-form button:disabled{opacity:.4;cursor:not-allowed;transform:none}
#chat-form [hidden],#chat-form #chat-send,#chat-form #chat-note-send,#chat-rec{display:none}
#chat-form.has-text #chat-send{display:flex}
#chat-form.has-text:not(.recording) #chat-mic{display:none}
#chat-form.recording #chat-input,#chat-form.recording #chat-send{display:none}
#chat-form.recording{border-color:rgba(224,67,60,.6)}
#chat-form.recording #chat-mic{display:flex;background:rgba(22,40,63,.08);color:var(--ink)}
#chat-form.recording #chat-note-send:not([hidden]){display:flex}
#chat-form.recording #chat-rec{display:flex;flex:1;min-width:0;align-items:center;gap:8px;font:600 15px 'Archivo',system-ui,sans-serif;color:var(--ink-soft);user-select:none}
#chat-rec-dot{flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:#C7332D}
#chat-rec-time{font-variant-numeric:tabular-nums}
#chat-rec-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#chat-form.pending #chat-rec-dot{background:var(--steel)}
#chat-form.pending #chat-rec-time{display:none}
#chat-mic .ico-cancel,#chat-mic .ico-stop{display:none}
#chat-form.recording #chat-mic .ico-mic,#chat-form.responding #chat-mic .ico-mic{display:none}
#chat-form.recording #chat-mic .ico-cancel,#chat-form.responding:not(.recording) #chat-mic .ico-stop{display:block}
#chat-feedback{font:14px/1.4 'Archivo',system-ui,sans-serif;color:var(--ink-soft);margin:6px 12px 0}
#chat-feedback:empty{display:none}
#face-wrap{touch-action:manipulation}
/* New replies grow into the transcript, never push the input under the pointer. */
#chat-log:not(:empty){position:absolute;left:0;right:0;bottom:100%;margin-bottom:10px;max-height:min(28svh,210px);overflow-y:auto;overscroll-behavior:contain}
#chat{margin-bottom:24px}
#chat{overflow-anchor:none}
#hero{overflow-anchor:none}
/* overflow:hidden makes the hero a second scroll container. Focusing a text
   field can pan that container sideways and vertically even with pageY=0. */
@supports(overflow:clip){#hero{overflow:clip}}
