/* RadioGx BYOK AI: settings dialog, header pill and floating dock. Self-contained so partner apps can load it. */
.rgxai-dialog, .rgxai-dock, .rgxai-pill {
  --ai-ink: #0b2545; --ai-ink2: #33475e; --ai-muted: #56687c; --ai-bg: #fff; --ai-bg2: #f4f7fa; --ai-line: #d6dee7;
  --ai-teal: #14b8a6; --ai-teal-ink: #0f766e; --ai-orange: #f26b1d; --ai-warn-bg: #fdf3dc; --ai-warn: #9a4a07;
  font-family: "Instrument Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color: var(--ai-ink); box-sizing: border-box;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .rgxai-dialog, :root:not([data-theme="light"]) .rgxai-dock, :root:not([data-theme="light"]) .rgxai-pill { --ai-ink: #e6eef7; --ai-ink2: #c4d3e3; --ai-muted: #93a7bd; --ai-bg: #0e2038; --ai-bg2: #0a1829; --ai-line: #24405f; --ai-warn-bg: #3a2a10; --ai-warn: #f5c56b; }
}
:root[data-theme="dark"] .rgxai-dialog, :root[data-theme="dark"] .rgxai-dock, :root[data-theme="dark"] .rgxai-pill { --ai-ink: #e6eef7; --ai-ink2: #c4d3e3; --ai-muted: #93a7bd; --ai-bg: #0e2038; --ai-bg2: #0a1829; --ai-line: #24405f; --ai-warn-bg: #3a2a10; --ai-warn: #f5c56b; }
.rgxai-dialog *, .rgxai-dock * { box-sizing: border-box; }
.rgxai-dialog { width: min(760px, calc(100vw - 24px)); max-height: calc(100vh - 32px); padding: 0; border: 3px solid var(--ai-ink); border-radius: 4px; background: var(--ai-bg); box-shadow: 6px 6px 0 rgba(11, 37, 69, .35); }
.rgxai-dialog::backdrop { background: rgba(6, 22, 41, .55); }
.rgxai-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px; background: linear-gradient(#1e4275, #13315c); color: #fff; border-bottom: 3px solid var(--ai-ink); position: sticky; top: 0; z-index: 1; }
.rgxai-head h2 { margin: 0; font: 700 1.15rem/1.2 "Bricolage Grotesque", system-ui, sans-serif; display: flex; gap: 10px; align-items: center; color: #fff; }
.rgxai-chip { font: 400 .7rem/1 "Silkscreen", monospace; background: var(--ai-orange); color: #fff; padding: 4px 6px; border: 2px solid #fff; letter-spacing: .04em; }
.rgxai-x { background: transparent; border: 2px solid currentColor; color: inherit; width: 30px; height: 30px; font-size: 1.2rem; line-height: 1; cursor: pointer; border-radius: 3px; }
.rgxai-body { padding: 14px 18px 18px; overflow: auto; }
.rgxai-body h3 { font: 700 .98rem/1.3 "Bricolage Grotesque", system-ui, sans-serif; margin: 18px 0 8px; color: var(--ai-ink); }
.rgxai-lede { margin: 0; color: var(--ai-ink2); }
.rgxai-small { font-size: .84rem; color: var(--ai-muted); margin: 6px 0 0; }
.rgxai-warn { font-size: .85rem; background: var(--ai-warn-bg); color: var(--ai-warn); padding: 8px 10px; border-left: 4px solid var(--ai-orange); margin: 8px 0 0; }
.rgxai-providers { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.rgxai-prov { display: grid; gap: 2px; text-align: left; padding: 10px 12px; border: 2px solid var(--ai-line); border-radius: 3px; background: var(--ai-bg2); color: var(--ai-ink); cursor: pointer; font: inherit; box-shadow: inset -2px -2px 0 rgba(0, 0, 0, .08), inset 2px 2px 0 rgba(255, 255, 255, .5); }
.rgxai-prov small { color: var(--ai-muted); font-size: .75rem; }
.rgxai-prov.is-on { border-color: var(--ai-teal); background: color-mix(in srgb, var(--ai-teal) 14%, var(--ai-bg)); }
.rgxai-prov:focus-visible, .rgxai-btn:focus-visible, .rgxai-input:focus-visible, .rgxai-fab:focus-visible, .rgxai-pill:focus-visible { outline: 3px solid var(--ai-teal); outline-offset: 2px; }
.rgxai-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; margin-top: 10px; }
.rgxai-field { display: grid; gap: 4px; font-size: .86rem; color: var(--ai-ink2); }
.rgxai-field a { color: var(--ai-teal-ink); }
.rgxai-row { display: flex; gap: 6px; align-items: center; }
.rgxai-grow { flex: 1; }
.rgxai-input { width: 100%; min-width: 0; padding: 8px 10px; border: 2px solid var(--ai-line); border-radius: 3px; background: var(--ai-bg); color: var(--ai-ink); font: inherit; font-size: .92rem; }
select.rgxai-input { width: auto; max-width: 100%; }
textarea.rgxai-input { resize: vertical; }
.rgxai-btn { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border: 2px solid var(--ai-ink); border-radius: 3px; background: var(--ai-bg2); color: var(--ai-ink); font: 600 .9rem/1 inherit; font-family: inherit; cursor: pointer; white-space: nowrap; box-shadow: 2px 2px 0 var(--ai-ink); }
.rgxai-btn:active { transform: translate(2px, 2px); box-shadow: none; }
.rgxai-btn[disabled] { opacity: .55; cursor: default; }
.rgxai-btn-sm { padding: 5px 9px; font-size: .8rem; box-shadow: 1px 1px 0 var(--ai-ink); }
.rgxai-btn-primary { background: var(--ai-teal); color: #04221f; }
.rgxai-btn-quiet { background: transparent; box-shadow: none; border-color: var(--ai-line); }
.rgxai-seg { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.rgxai-radio, .rgxai-check { display: flex; gap: 8px; align-items: flex-start; font-size: .9rem; color: var(--ai-ink2); margin-top: 8px; }
.rgxai-check input, .rgxai-radio input { margin-top: 3px; accent-color: var(--ai-teal); }
.rgxai-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; padding-top: 14px; border-top: 2px dashed var(--ai-line); }
.rgxai-status { min-height: 1.2em; font-size: .88rem; margin: 10px 0 0; color: var(--ai-ink2); word-break: break-word; }
.rgxai-pill { display: inline-flex; align-items: center; gap: 7px; padding: 6px 10px; border: 2px solid var(--ai-line); border-radius: 3px; background: var(--ai-bg); color: var(--ai-ink); font: 600 .8rem/1 "Instrument Sans", system-ui, sans-serif; cursor: pointer; white-space: nowrap; }
.rgxai-dot { width: 9px; height: 9px; background: #94a3b8; display: inline-block; box-shadow: 0 0 0 2px rgba(0, 0, 0, .12); }
.rgxai-dot.is-on { background: #22c55e; box-shadow: 0 0 0 2px rgba(34, 197, 94, .3), 0 0 8px #22c55e; }
/* dock */
.rgxai-dock { position: fixed; right: 16px; bottom: 16px; z-index: 900; display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.rgxai-fab { display: inline-flex; gap: 8px; align-items: center; padding: 11px 16px; border: 3px solid #061629; border-radius: 3px; background: linear-gradient(#ff8a3d, #f26b1d); color: #fff; font: 700 .9rem/1 "Bricolage Grotesque", system-ui, sans-serif; cursor: pointer; box-shadow: 4px 4px 0 #061629; }
.rgxai-fab span[aria-hidden] { font-size: 1.1rem; }
.rgxai-fab:active { transform: translate(3px, 3px); box-shadow: 1px 1px 0 #061629; }
.rgxai-panel { width: min(420px, calc(100vw - 32px)); height: min(560px, calc(100vh - 110px)); display: flex; flex-direction: column; background: var(--ai-bg); border: 3px solid #061629; border-radius: 3px; box-shadow: 6px 6px 0 rgba(6, 22, 41, .5); overflow: hidden; }
.rgxai-panel[hidden] { display: none; }
.rgxai-panel-head { display: flex; gap: 8px; align-items: center; padding: 8px 10px; background: linear-gradient(#1e4275, #13315c); color: #fff; }
.rgxai-panel-head .rgxai-btn { box-shadow: none; border-color: #fff; background: transparent; color: #fff; }
.rgxai-who { flex: 1; font-size: .74rem; opacity: .85; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rgxai-log { flex: 1; overflow: auto; padding: 12px; display: grid; align-content: start; gap: 10px; background: var(--ai-bg2); }
.rgxai-msg { padding: 10px 12px; border: 2px solid var(--ai-line); border-radius: 3px; background: var(--ai-bg); font-size: .9rem; line-height: 1.45; max-width: 100%; overflow-wrap: anywhere; }
.rgxai-msg p { margin: 0 0 6px; } .rgxai-msg p:last-child { margin-bottom: 0; }
.rgxai-msg ul { margin: 4px 0 6px; padding-left: 20px; }
.rgxai-msg a { color: var(--ai-teal-ink); }
.rgxai-msg code { font-size: .85em; background: var(--ai-bg2); padding: 1px 4px; }
.rgxai-msg-me { background: color-mix(in srgb, var(--ai-teal) 14%, var(--ai-bg)); border-color: var(--ai-teal); justify-self: end; }
.rgxai-meta { display: block; margin-top: 6px; color: var(--ai-muted); font-size: .72rem; }
.rgxai-copy { margin-top: 6px; }
.rgxai-compose { padding: 10px; border-top: 2px solid var(--ai-line); display: grid; gap: 8px; background: var(--ai-bg); }
@media (max-width: 520px) { .rgxai-dock { right: 10px; bottom: 10px; } .rgxai-fab span:last-child { display: none; } }
@media print { .rgxai-dock { display: none; } }
.rgxai-home { display: inline-flex; align-items: center; padding: 11px 12px; border: 3px solid #061629; border-radius: 3px; background: #13315c; color: #fff; font: 700 .85rem/1 "Bricolage Grotesque", system-ui, sans-serif; text-decoration: none; box-shadow: 4px 4px 0 #061629; }
.rgxai-home:hover { background: #1e4275; }
.rgxai-pill-t { max-width: 16ch; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 600px) { .rgxai-pill-t { display: none; } .rgxai-pill { padding: 9px; } }
