.rf-ethan { font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 15px; color: #172033; text-align: left; color-scheme: light; }
.rf-ethan, .rf-ethan * { box-sizing: border-box; }
.rf-ethan [hidden] { display: none !important; }
.rf-ethan.ethan-conversation, .rf-ethan .ethan-conversation { display: flex; flex-direction: column; border-radius: 22px; background: #fff; overflow: hidden; }
.rf-ethan.ethan-conversation, .rf-ethan .ethan-conversation { border: 1px solid rgb(207 217 231 / 70%); outline: 0; box-shadow: 0 6px 24px rgb(19 35 63 / 7%); }
.rf-ethan.ethan-conversation:focus-within, .rf-ethan .ethan-conversation:focus-within { box-shadow: 0 0 0 1px #aebdd1, 0 0 0 5px rgb(119 153 196 / 9%), 0 8px 30px rgb(68 101 150 / 12%); }
.rf-ethan .ethan-form { display: block; flex: 0 0 auto; padding: 16px 20px; margin: 0; background: transparent; border: 0; border-radius: 0; color: #172033; }
.rf-ethan textarea { display: block; width: 100%; min-width: 0; min-height: 64px; max-height: 180px; padding: 0 4px; resize: none; border: 0; outline: 0; border-radius: 0; box-shadow: none; background: transparent; color: #172033; font: inherit; font-size: 16px; line-height: 1.5; }
.rf-ethan textarea::placeholder { color: #737b89; }
/* The classic header forces an input outline; keep keyboard focus on the shared frame. */
.rf-ethan textarea:focus-visible { outline: 0 !important; box-shadow: none; }
.rf-ethan .ethan-composer-actions { display: flex; justify-content: flex-end; align-items: center; gap: 8px; margin-top: 8px; }
.rf-ethan .ethan-disclosure { flex: 1; margin: 0; color: #697386; font-size: 11px; line-height: 1.5; }
.rf-ethan .ethan-result-link { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.rf-ethan button { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 10px; border: 0; border-radius: 50%; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.rf-ethan button:focus-visible { outline: 0 !important; box-shadow: 0 0 0 1px #aebdd1, 0 0 0 4px rgb(119 153 196 / 14%); }
.rf-ethan button svg { width: 22px; height: 22px; flex-shrink: 0; }
.rf-ethan #ethanSpeak { background: #f2f3f5; }
.rf-ethan #ethanSpeak[aria-pressed=true] { background: #dbe8ff; color: #174595; box-shadow: 0 0 0 3px #e9f0fd; }
.rf-ethan #ethanSpeak:disabled { opacity: .45; cursor: default; }
.rf-ethan .ethan-submit { background: #111827; color: white; }
.rf-ethan .ethan-submit:hover { background: #273750; }
.rf-ethan .ethan-status { margin: 0; padding: 0 20px 16px; color: #596475; font-size: 13px; line-height: 1.5; }
.rf-ethan .ethan-retry { min-height: 32px; padding: 5px 10px; border: 1px solid #dfe5ed; border-radius: 9px; background: #f4f6f9; font-size: 12px; }
.rf-ethan .ethan-messages { min-height: 0; max-height: 280px; padding: 20px 20px 8px; margin: 0; overflow-y: auto; overscroll-behavior: contain; border-radius: 0; background: transparent; scrollbar-width: thin; }
.rf-ethan .ethan-message { margin: 0 0 14px; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14px; line-height: 1.6; }
.rf-ethan .ethan-message:last-child { margin-bottom: 0; }
.rf-ethan .ethan-message strong { display: block; margin-bottom: 3px; color: #697386; font-size: 11px; font-weight: 600; }
.rf-ethan .ethan-message p { margin: 0; font: inherit; }
.rf-ethan .ethan-message-user { width: fit-content; max-width: 90%; margin-left: auto; padding: 10px 14px; border-radius: 16px 16px 4px 16px; background: #edf1f7; }
.rf-ethan .ethan-message-assistant { padding: 0 2px; }
.ethan-floating { position: fixed; right: 24px; bottom: max(20px, env(safe-area-inset-bottom)); z-index: 1100; }
.rf-ethan .ethan-launcher { min-height: 48px; margin-left: auto; padding: 12px 18px; gap: 8px; border-radius: 28px; background: #111c32; color: #fff; box-shadow: 0 6px 24px rgb(0 0 0 / 20%); font-weight: 600; }
.rf-ethan .ethan-panel { display: flex; flex-direction: column; width: min(390px, calc(100vw - 32px)); max-height: min(540px, calc(100dvh - 100px)); border-radius: 22px; background: #fff; box-shadow: 0 10px 50px rgb(12 24 42 / 25%); overflow: hidden; }
.rf-ethan .ethan-panel-header { display: flex; align-items: center; gap: 4px; padding: 14px 12px 10px 20px; color: #172033; background: #fff; border: 0; }
.rf-ethan .ethan-panel-header div { flex: 1; }
.rf-ethan .ethan-panel-header strong { display: block; font-size: 17px; }
.rf-ethan .ethan-panel-header span { display: block; font-size: 12px; color: #6b7485; }
.rf-ethan .ethan-panel-header button { font-size: 24px; }
.rf-ethan .ethan-panel .ethan-messages { flex: 1 1 auto; min-height: 60px; max-height: 320px; border-radius: 0; margin: 0; padding: 16px 20px; }
.rf-ethan .ethan-panel .ethan-form { margin: 0; padding: 12px 20px 16px; border-radius: 0; background: transparent; }
.rf-ethan .ethan-panel textarea { min-height: 48px; font-size: 16px; }
.rf-ethan .ethan-panel .ethan-status { flex: 0 0 auto; margin: 0; padding: 0 20px 14px; color: #596475; }
@media (max-width: 640px) {
  .ethan-floating { right: 16px; bottom: max(16px, env(safe-area-inset-bottom)); }
  .rf-ethan .ethan-panel { max-height: min(480px, 66dvh); }
  .rf-ethan .ethan-panel .ethan-messages { max-height: 260px; }
}
@media (prefers-reduced-motion: no-preference) {
  .rf-ethan button { transition: background .15s, box-shadow .15s; }
  .rf-ethan.ethan-conversation, .rf-ethan .ethan-conversation { transition: box-shadow .18s; }
}
@media (forced-colors: active) {
  .rf-ethan.ethan-conversation:focus-within, .rf-ethan .ethan-conversation:focus-within { outline: 2px solid Highlight; outline-offset: 2px; }
  .rf-ethan button:focus-visible { outline: 2px solid Highlight !important; outline-offset: 2px; }
}
