/* Adfure assistant (chat step S3): the bubble and its panel. Only tokens from /ui/tokens.css, so light and dark follow the app. z 45 = above the page's floating buttons (40), under the modals (.ov 50); the panel goes to 56 where the bottom bar (55) shows. */
:root{--adf-bot:22px}
@media(max-width:860px){:root{--adf-bot:calc(var(--shell-bot) + env(safe-area-inset-bottom) + var(--s-3))}}   /* where the bottom bar shows, ride above it */
.adf-ab{position:fixed;right:22px;bottom:var(--adf-bot);z-index:45;width:54px;height:54px;padding:0;border:0;border-radius:50%;display:grid;place-items:center;background:var(--grad);color:var(--c-on-accent);box-shadow:var(--e-2);cursor:pointer}
.adf-ab .ic{width:24px;height:24px;stroke-width:1.9}
.adf-ab[hidden],.adf-ap[hidden]{display:none}
.adf-ab:focus-visible,.adf-ap :focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}
.adf-ab-on .nudge{bottom:calc(var(--adf-bot) + 54px + var(--s-3))}   /* the "complete your profile" button sits above the bubble, not under it */
.adf-ap{position:fixed;inset:0;z-index:45;display:flex;flex-direction:column;background:var(--c-surface);color:var(--c-ink);font:inherit}
@media(max-width:860px){.adf-ap{z-index:56}body.adf-ap-on{overflow:hidden}}   /* the bottom bar is 55: the full-screen panel covers it, or its input would sit under the bar */
@media(min-width:861px){.adf-ap{inset:var(--shell-top) 0 0 auto;width:400px;border-left:1px solid var(--c-line);box-shadow:var(--e-2)}}   /* a drawer BELOW the header: its controls stay reachable */
.adf-ap-on #planPill{visibility:hidden}   /* the plan pill (z 70) would float over the panel; visibility, because the SPA sets its display inline */
.adf-ah{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-2) var(--s-2) var(--s-4);padding-top:max(var(--s-2),env(safe-area-inset-top));border-bottom:1px solid var(--c-line)}
.adf-at{flex:1;min-width:0}
.adf-at h2{margin:0;font-size:15px;font-weight:700}
.adf-aw{font-size:12.5px;color:var(--c-ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adf-ax{width:44px;height:44px;border:0;border-radius:var(--r-sm);background:none;color:var(--c-ink-2);font-size:28px;line-height:1;cursor:pointer}
.adf-ax:hover{background:var(--c-accent-soft);color:var(--c-ink)}
.adf-al{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-3)}
.adf-m{max-width:92%;padding:10px 13px;border-radius:var(--r-md);font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.adf-m.u{align-self:flex-end;background:var(--grad);color:var(--c-on-accent);white-space:pre-wrap;border-bottom-right-radius:4px}
.adf-m.a{align-self:flex-start;background:var(--c-accent-soft);border:1px solid var(--c-accent-line);border-bottom-left-radius:4px}
.adf-m.adf-note{align-self:stretch;max-width:none;padding:var(--s-1) 0;background:none;border:0;color:var(--c-ink-2);font-size:13px}
.adf-m.adf-note.err{color:var(--c-bad-ink)}
.adf-wait{color:var(--c-ink-2);font-style:italic}
.adf-tools{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.adf-chip{padding:2px 8px;border:1px solid var(--c-accent-line);border-radius:var(--r-pill);background:var(--c-surface);color:var(--c-accent-ink);font-size:12px}
.adf-chip.bad{background:none;border-color:var(--c-line-3);color:var(--c-mut)}
.adf-cap{margin-top:6px;color:var(--c-ink-2);font-size:12px}
.adf-undo{display:inline-block;margin:8px 6px 0 0;cursor:pointer;font:inherit;font-size:12px;text-align:left;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adf-undo:disabled{opacity:.6;cursor:default}
.adf-af{display:flex;align-items:flex-end;gap:var(--s-2);padding:var(--s-3) var(--s-4);padding-bottom:max(var(--s-3),env(safe-area-inset-bottom));border-top:1px solid var(--c-line)}
.adf-af textarea{flex:1;box-sizing:border-box;min-height:44px;max-height:120px;padding:11px 12px;resize:none;border:1px solid var(--c-mut);border-radius:var(--r-md);background:var(--c-surface);color:var(--c-ink);font:inherit;font-size:16px}   /* --c-mut: the box edge passes 3:1 in both themes (--c-line-3 was 1.35:1 on white) */
.adf-af textarea::placeholder{color:var(--c-ink-2);opacity:1}
.adf-as{min-height:44px;padding:0 16px;border:0;border-radius:var(--r-md);background:var(--grad);color:var(--c-on-accent);font:inherit;font-weight:700;cursor:pointer}
.adf-as:disabled,.adf-af textarea:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:860px){.adf-m{font-size:16px}.adf-m.adf-note{font-size:14px}}   /* full-screen panel = phone body text; after the base .adf-m so it wins by order */
@media print{.adf-ab,.adf-ap{display:none!important}}
