/* Replaceable presentation layer. Keep data-qa hooks; no business rules in CSS. */
:root{--qa-paper:#f7f1e5;--qa-ink:#392e27;--qa-accent:#8f302b;--qa-line:#dfd2bd;--qa-caption:#766b5e;--qa-width:440px}
.qa-entry{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:6px 0;color:var(--qa-accent);font:inherit;font-size:13px;border:0;background:none;cursor:pointer}
.qa-dialog{position:fixed;inset:0 0 0 auto;margin:0;width:min(var(--qa-width),100vw);max-width:100vw;height:100dvh;max-height:100dvh;padding:0;border:0;border-left:1px solid var(--qa-line);background:var(--qa-paper);color:var(--qa-ink);box-shadow:-12px 0 50px #392e2720;font:15px/1.8 system-ui,sans-serif}
.qa-dialog::backdrop{background:#231c1838}
.qa-shell{height:100%;display:flex;flex-direction:column;overflow:hidden}
.qa-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--qa-line)}
.qa-title{margin:0;font:22px/1.4 'KaiTi','STKaiti',serif}.qa-kicker{margin:0;color:var(--qa-caption);font-size:11px;letter-spacing:2px}
.qa-dialog button{cursor:pointer}.qa-close{height:44px;width:44px;border:0;background:none;color:var(--qa-caption);font-size:22px;flex-shrink:0}
.qa-body{flex:1;overflow:auto;overscroll-behavior:contain;padding:24px;overflow-wrap:anywhere}
.qa-welcome{margin:22px 0 30px}.qa-welcome p{margin:0 0 8px}.qa-examples{display:flex;flex-wrap:wrap;gap:4px 16px}.qa-examples button{min-height:44px;padding:0;border:0;background:none;color:var(--qa-accent);font:inherit;font-size:13px}
.qa-turn{margin:0 0 26px;white-space:pre-wrap}.qa-turn.is-user{margin-left:30px;padding:12px 16px;background:#ece3d3;border-radius:12px 12px 2px 12px}.qa-turn p{margin:0}
.qa-caption{display:block;margin-top:8px;color:var(--qa-caption);font-size:11px;line-height:1.6}
.qa-sources{margin-top:8px;font-size:12px;white-space:normal}.qa-sources summary{display:flex;align-items:center;min-height:44px;cursor:pointer;color:var(--qa-caption);list-style:none}.qa-sources summary::before{content:'·';margin-right:6px;color:var(--qa-accent)}
.qa-source{margin:6px 0 16px;padding-left:12px;border-left:1px solid var(--qa-line)}.qa-source blockquote{margin:6px 0;color:var(--qa-caption)}.qa-source a{color:var(--qa-accent);text-decoration:underline;text-underline-offset:3px}
.qa-status{margin:0;padding:0 24px 8px;color:var(--qa-caption);font-size:12px}.qa-retry{margin-left:8px;min-height:44px;border:0;background:none;color:var(--qa-accent);font:inherit}
.qa-form{display:flex;gap:8px;align-items:flex-end;padding:14px 20px max(16px,env(safe-area-inset-bottom));border-top:1px solid var(--qa-line)}
.qa-input{flex:1;min-width:0;resize:none;max-height:120px;min-height:48px;background:transparent;border:0;padding:12px 4px;color:var(--qa-ink);font:16px/1.5 system-ui,sans-serif}.qa-send{width:44px;height:44px;border:0;border-radius:50%;background:var(--qa-accent);color:var(--qa-paper);font-size:24px}.qa-send:disabled{opacity:.45}
.qa-dialog :focus-visible,.qa-entry:focus-visible{outline:2px solid var(--qa-accent);outline-offset:3px}
@media(max-width:600px){.qa-dialog{inset:auto 0 0;margin:0;width:100%;height:88dvh;border-left:0;border-radius:20px 20px 0 0}.qa-head{padding:14px 18px}.qa-body{padding:20px}.qa-title{font-size:21px}}
@media(prefers-reduced-motion:no-preference){.qa-dialog[open]{animation:qa-enter .18s ease-out}@keyframes qa-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}}
