#ron-chat { max-width: 596px; margin: 0 auto 24px; padding: 22px; border: 1px solid var(--line); border-radius: 12px; text-align: left; background: var(--paper); color: var(--ink); scroll-margin-top: var(--ron-chat-offset, 0px); }
#ron-chat h2 { margin: 0 0 12px; font-size: clamp(24px, 4vw, 32px); }
#ron-chat p { margin: 12px 0; font-size: 15px; line-height: 1.6; font-weight: 400; color: var(--ink); }
#ron-chat label { display: block; margin-top: 16px; font-weight: 700; }
#ron-chat textarea { box-sizing: border-box; display: block; width: 100%; min-height: 96px; resize: vertical; padding: 12px; border: 1px solid var(--ink); border-radius: 6px; font: inherit; font-size: 16px; color: var(--ink); background: var(--paper); }
#ron-chat button { min-height: 44px; padding: 9px 14px; border: 1px solid var(--ink); border-radius: 6px; background: var(--paper); color: var(--ink); font: inherit; font-size: 14px; cursor: pointer; }
#ron-chat button:disabled { opacity: .6; cursor: wait; }
#ron-chat :focus-visible { outline: 3px solid var(--acc-indigo); outline-offset: 3px; }
#ron-chat [hidden] { display: none; }
.ron-chat-actions, .ron-chat-suggestions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
#ron-chat [data-count] { display: block; text-align: right; font-size: 13px; }
#ron-chat [role=status] { min-height: 2em; }
#ron-chat .ron-chat-turn { border-top: 1px solid var(--line); padding-top: 16px; margin-top: 20px; overflow-wrap: anywhere; }
#ron-chat h3 { font-size: 18px; margin: 0; }
#ron-chat details { margin: 12px 0; }
#ron-chat summary { cursor: pointer; font-weight: 700; padding-block: 10px; }
#ron-chat blockquote { white-space: pre-wrap; color: var(--ink); font-size: 15px; line-height: 1.6; margin: 12px 0; padding-left: 14px; }
#ron-chat a { color: var(--ink); text-decoration: underline; }
@media (hover:hover) and (pointer:fine) { #ron-chat button:hover { box-shadow: 0 0 0 2px var(--ink); } }
@media (max-width: 390px) { #ron-chat { padding: 16px; } }
@media print { #ron-chat { display: none; } }

#ron-chat .ron-chat-resource { margin: 20px 0; max-width: 100%; }
#ron-chat .ron-chat-resource img { display: block; max-width: 100%; height: auto; margin-bottom: 10px; }
#ron-chat figcaption { font-size: 15px; line-height: 1.6; }

/* The root already supplies scroll-padding; avoid counting it twice. */
#ron-chat-title { scroll-margin-top: calc(var(--ron-chat-offset, 0px) + 23px); }

/* Avoid a native smooth-scroll animation racing the chat landing correction. */
html:has(#ron-chat:target), html:has(#ron-chat-title:target) { scroll-behavior: auto; }

#ron-chat .ron-testimonial { margin:24px 0 0; padding:20px; border:1px solid var(--line); border-radius:10px; background:var(--paper); }
#ron-chat .ron-testimonial figcaption { display:flex; align-items:center; gap:14px; }
#ron-chat .ron-testimonial img { width:60px; height:60px; border-radius:50%; object-fit:cover; flex:none; }
#ron-chat .ron-testimonial figcaption p { margin:4px 0 0; font-size:14px; }
#ron-chat .ron-testimonial blockquote { margin:18px 0; padding:0; border:0; font-size:16px; line-height:1.6; white-space:pre-wrap; }
#ron-chat .ron-testimonial-mark { display:block; font-size:40px; line-height:1; }
#ron-chat .ron-testimonial a:focus-visible { outline:3px solid var(--ink); outline-offset:4px; }
#ron-chat .ron-testimonial:hover { border-color:var(--ink); }
@media(max-width:390px) { #ron-chat .ron-testimonial { padding:14px; } #ron-chat .ron-testimonial figcaption { align-items:flex-start; gap:10px; } }

#ron-chat .ron-testimonial, #ron-chat .ron-testimonial figcaption { text-align:left; }

/* Stable suggestion slots keep neighboring controls still as follow-ups change. */
#ron-chat .ron-chat-suggestions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
#ron-chat .ron-chat-suggestions button { min-width: 0; min-height: 64px; overflow-wrap: anywhere; }
#ron-chat .ron-chat-suggestions button[aria-disabled=true] { opacity: .6; cursor: default; }

/* Conversation stays on the page; the composer is secondary to the latest reply. */
#ron-chat { padding:16px; }
#ron-chat h2 { font-size:24px; margin-bottom:10px; }
#ron-chat .ron-chat-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
#ron-chat [data-transcript] { position:relative; max-height:min(52vh,440px); overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; scroll-padding:8px; }
#ron-chat [data-transcript]:empty { display:none; }
#ron-chat .ron-chat-exchange { display:flow-root; padding:4px 4px 12px; }
#ron-chat .ron-chat-user { margin:4px 0 10px auto; max-width:85%; width:fit-content; padding:10px 14px; border-radius:16px 16px 3px 16px; background:var(--ink); color:var(--paper); }
#ron-chat .ron-chat-reply { clear:both; padding:12px 14px; border:1px solid var(--line); border-radius:3px 16px 16px 16px; overflow-wrap:anywhere; }
#ron-chat .is-pending { min-height:48px; display:flex; align-items:center; gap:10px; }
#ron-chat .is-pending::before { content:''; width:10px; height:10px; flex:none; border-radius:50%; background:currentColor; animation:ron-pending 1.2s ease-in-out infinite; }
@keyframes ron-pending { 50% { opacity:.3; } }
#ron-chat .ron-chat-turn { border:0; margin:0; padding:0; }
#ron-chat .ron-chat-speaker { font-size:12px; font-weight:700; }
#ron-chat .ron-chat-turn > p { margin:8px 0; }
#ron-chat .ron-chat-turn details { margin:4px 0; font-size:13px; }
#ron-chat .ron-chat-turn summary { font-size:13px; padding:8px 0; }
#ron-chat .ron-chat-composer { display:flex; gap:6px; align-items:flex-end; margin-top:12px; }
#ron-chat textarea { min-height:44px; max-height:120px; padding:10px; resize:vertical; }
#ron-chat textarea::placeholder { color:var(--ink); opacity:.6; }
#ron-chat .ron-chat-composer button { flex:none; min-width:44px; }
#ron-chat .ron-chat-meta { display:flex; justify-content:space-between; gap:8px; margin-top:5px; font-size:11px; line-height:1.4; }
#ron-chat [data-count] { font-size:11px; flex:none; }
#ron-chat .ron-chat-suggestions { margin-top:10px; gap:6px; }
#ron-chat .ron-chat-suggestions button { min-height:44px; padding:7px 10px; font-size:13px; }
#ron-chat > details { margin:8px 0 0; }
#ron-chat > details > summary { font-size:12px; padding:6px 0; }
@media(prefers-reduced-motion:reduce) { #ron-chat .is-pending::before { animation:none; } }
#ron-chat .ron-chat-user { overflow-wrap:anywhere; }
@media(max-width:480px) { #ron-chat [data-transcript] { max-height:42vh; } }

/* A bounded arrival cue; no automatic submission or persistent animation. */
#ron-chat button[type="submit"] svg { width:20px; height:20px; display:block; }
#ron-chat button[type="submit"].is-prefilled { outline:2px solid currentColor; outline-offset:4px; animation:ron-send-ready 1.4s ease-in-out 2; }
@keyframes ron-send-ready { 50% { outline-offset:7px; } }
@media(prefers-reduced-motion:reduce) { #ron-chat button[type="submit"].is-prefilled { animation:none; } }

#ron-chat [data-reset] { margin-top:12px; }
#ron-chat [data-history-notice] { font-size:13px; line-height:1.5; }
#ron-chat [data-sources] { border-top:1px solid var(--line); margin-top:12px; }
#ron-chat [data-sources] blockquote { border-left:2px solid var(--line); }
/* Hidden controls must remain hidden after layout rules, including without JS. Opt-in pages only. */
#ron-chat[data-ron-chat-conversation="true"] [hidden] { display:none !important; }
