/* assist.js: the helper */
.as-btn{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:75;display:flex;gap:6px;align-items:center;
  font:inherit;font-weight:800;font-size:15px;color:var(--panel);background:var(--ink);border:0;border-radius:999px;padding:11px 16px;
  box-shadow:0 6px 20px rgba(43,35,80,.28);cursor:pointer}
.as-btn[aria-expanded=true]{opacity:.85}
.as-box{position:fixed;right:16px;bottom:calc(72px + env(safe-area-inset-bottom,0px));z-index:75;width:min(380px,calc(100vw - 32px));
  max-height:min(560px,calc(100vh - 110px));display:flex;flex-direction:column;background:var(--panel);color:var(--ink);
  border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 36px rgba(43,35,80,.3);overflow:hidden}
.as-box[hidden]{display:none}
.as-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line)}
.as-x{background:none;border:0;font-size:24px;line-height:1;color:var(--muted);cursor:pointer;padding:2px 6px}
.as-log{flex:1;overflow:auto;padding:10px 12px;display:flex;flex-direction:column;gap:8px;min-height:120px}
.as-m{max-width:88%;border-radius:14px;padding:8px 11px;font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.as-m p{margin:0}
.as-me{align-self:flex-end;background:var(--ink);color:var(--panel)}
.as-bot{align-self:flex-start;background:var(--ground)}
.as-busy{opacity:.6}
.as-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.as-sug{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 8px}
.as-sug .chip{font-size:13px}
.as-form{display:flex;gap:6px;padding:10px 12px;border-top:1px solid var(--line)}
.as-form input{flex:1;min-width:0;font:inherit;font-size:15px;color:var(--ink);background:var(--ground);border:2px solid var(--line);border-radius:12px;padding:8px 10px}
@media (max-width:480px){.as-box{right:8px;left:8px;width:auto;bottom:calc(66px + env(safe-area-inset-bottom,0px))}.as-btn{right:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px))}}
@media print{.as-btn,.as-box{display:none}}
