/* The in-app assistant (site/assistant.js, 2026-10-10): the round button, and "Ask COTA90" as a bottom sheet on phones, a side panel on
   desktop (>=721px). Colours are the app's own tokens, so light and dark follow the theme. */
.askbtn{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:var(--askb,calc(24px + env(safe-area-inset-bottom)));z-index:65;width:46px;height:46px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--ln2);background:var(--p2);color:var(--tx);box-shadow:0 6px 18px rgba(0,0,0,.28);cursor:pointer;-webkit-tap-highlight-color:transparent}
.askbtn[hidden]{display:none}
.askbtn svg{width:23px;height:23px}
.askbtn:focus-visible{outline:2px solid var(--up);outline-offset:2px}
.askscrim{position:fixed;inset:0;z-index:1500;background:rgba(8,8,8,.45);opacity:0;pointer-events:none;transition:opacity .18s}
.askscrim.on{opacity:1;pointer-events:auto}
.asksheet{position:fixed;left:0;right:0;bottom:0;z-index:1501;display:flex;flex-direction:column;height:min(78vh,620px);height:min(78dvh,620px);background:var(--p1);color:var(--tx);
  border-top:1px solid var(--ln2);border-radius:18px 18px 0 0;box-shadow:0 -12px 40px rgba(0,0,0,.35);transform:translateY(105%);visibility:hidden;transition:transform .22s ease,visibility 0s linear .22s;padding-bottom:env(safe-area-inset-bottom);box-sizing:border-box;max-width:100vw}
.asksheet.on{transform:none;visibility:visible;transition:transform .22s ease}
.askhd{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 12px 10px 18px;border-bottom:1px solid var(--ln)}
.askhd h2{margin:0;font-size:17px;font-weight:700;letter-spacing:-.01em}
.askx{width:40px;height:40px;border-radius:50%;border:0;background:transparent;color:var(--mu);font-size:26px;line-height:1;cursor:pointer;flex:none}
.askx:hover{background:var(--p2);color:var(--tx)}
.asklog{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:14px 14px 6px;display:flex;flex-direction:column;gap:10px;min-height:0}
.askm{max-width:86%;padding:10px 13px;border-radius:16px;font-size:15px;line-height:1.42;white-space:pre-wrap;overflow-wrap:anywhere}
.askm.bot{align-self:flex-start;background:var(--p2);border-bottom-left-radius:6px}
.askm.me{align-self:flex-end;background:var(--tx);color:var(--bg);border-bottom-right-radius:6px}
.askm.err{color:var(--mu)}
.askm.typing{display:flex;gap:5px;padding:13px 14px}
.askm.typing i{width:7px;height:7px;border-radius:50%;background:var(--mu);animation:askdot 1s infinite ease-in-out}
.askm.typing i:nth-child(2){animation-delay:.15s}.askm.typing i:nth-child(3){animation-delay:.3s}
@keyframes askdot{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.askchips{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.askchip{border:1px solid var(--ln2);background:transparent;color:var(--tx);border-radius:999px;padding:9px 13px;font:inherit;font-size:14px;line-height:1.2;cursor:pointer;text-align:left;min-height:40px}
.askchip:hover{background:var(--p2)}
.askacts{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:9px;white-space:normal}
.askact{border:0;background:var(--up);color:var(--onup,#0B0C0E);border-radius:999px;padding:9px 14px;font:inherit;font-size:14px;font-weight:700;cursor:pointer;min-height:40px;text-align:left;max-width:100%}
.askform{display:flex;align-items:flex-end;gap:8px;padding:10px 12px 12px;border-top:1px solid var(--ln)}
.askform textarea{flex:1;min-width:0;resize:none;border:1px solid var(--ln2);background:var(--p2);color:var(--tx);border-radius:14px;padding:10px 12px;font:inherit;font-size:16px;line-height:1.3;max-height:120px;box-sizing:border-box}
.askform textarea:focus{outline:2px solid var(--up);outline-offset:0;border-color:transparent}
.asksend{width:42px;height:42px;border-radius:50%;border:0;background:var(--up);color:var(--onup,#0B0C0E);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none;padding:0}
.asksend svg{width:20px;height:20px}
.asksend:disabled{opacity:.45;cursor:default}
.askchip:focus-visible,.askact:focus-visible,.askx:focus-visible,.asksend:focus-visible{outline:2px solid var(--up);outline-offset:2px}
@media(min-width:721px){
  .askbtn{right:24px;bottom:24px;width:52px;height:52px}
  .askbtn svg{width:25px;height:25px}
  .askscrim{background:rgba(8,8,8,.12)}
  /* owner 10 Oct: a small panel anchored bottom-right, where the button is (not a full-height side panel) */
  .asksheet{left:auto;top:auto;right:24px;bottom:24px;width:380px;height:min(560px,calc(100vh - 48px));border-radius:16px;border:1px solid var(--ln2);padding-bottom:0;
    transform:translateY(16px) scale(.98);transform-origin:100% 100%;opacity:0;transition:transform .18s ease,opacity .18s ease,visibility 0s linear .18s;box-shadow:0 18px 50px rgba(0,0,0,.35)}
  .asksheet.on{transform:none;opacity:1;transition:transform .18s ease,opacity .18s ease}
  .askhd{padding:18px 14px 14px 22px}.askhd h2{font-size:18px}
  .asklog{padding:18px 18px 8px}
  .askm{font-size:14.5px}
}
@media(prefers-reduced-motion:reduce){.asksheet,.asksheet.on,.askscrim{transition:none}.askm.typing i{animation:none}}
/* while the chat is open, the Demo next-match tab on the right edge steps aside (it would poke out beside the desktop panel) */
.ask-open #demoNext{visibility:hidden}
