/* The in-app assistant drawer. Tokens come from styles.css. */
.asst-fab{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:44;width:48px;height:48px;border-radius:50%;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow-pop);transition:transform .15s var(--ease),background-color .15s}
.asst-fab:hover{background:var(--accent-hover);transform:translateY(-1px)}
.asst{position:fixed;top:0;right:0;bottom:0;z-index:46;width:min(420px,100vw);background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow-pop);display:flex;flex-direction:column;animation:asst-in .22s var(--ease)}
@keyframes asst-in{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
.asst-h{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.asst-h b{display:block;font-stretch:85%;font-weight:700;font-size:16px}
.asst-h .hint{display:block;font-size:12.5px}
.asst-list{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.asst-empty{display:flex;flex-direction:column;gap:12px;padding-top:6px}
.asst-suggest{display:flex;flex-wrap:wrap;gap:6px}
.asst-suggest .chip{cursor:pointer;border:1px solid var(--line);background:var(--surface);padding:6px 10px;font-weight:500;color:var(--ink)}
.asst-suggest .chip:hover{border-color:var(--accent);color:var(--accent)}
.asst-msg{max-width:92%;padding:9px 12px;border-radius:12px;font-size:14px;line-height:1.5;overflow-wrap:anywhere;white-space:pre-wrap}
.asst-msg.user{align-self:flex-end;background:var(--accent-soft);color:var(--ink);border-bottom-right-radius:4px}
.asst-msg.assistant{align-self:flex-start;background:var(--surface-2);border-bottom-left-radius:4px;white-space:normal}
.asst-msg.assistant p{margin:0 0 8px}
.asst-msg.assistant p:last-child{margin-bottom:0}
.asst-msg.assistant ul{margin:0 0 8px;padding-left:18px}
.asst-msg.assistant li{margin-bottom:3px}
.asst-wait{color:var(--muted)}
.thinking{display:inline-flex;gap:4px;align-items:center;height:1.2em}
.thinking i{width:6px;height:6px;border-radius:50%;background:var(--muted);opacity:.35;animation:think 1.1s ease-in-out infinite}
.thinking i:nth-child(2){animation-delay:.18s}
.thinking i:nth-child(3){animation-delay:.36s}
@keyframes think{0%,80%,100%{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
@media (prefers-reduced-motion:reduce){.thinking i{animation:none;opacity:.7}}
.asst-actions{display:flex;flex-direction:column;gap:6px}
.asst-action{display:flex;align-items:center;gap:8px;font-size:13px;padding:8px 10px;border-radius:8px;background:var(--accent-soft);color:var(--ink)}
.asst-action .icon{color:var(--accent)}
.asst-in{display:flex;gap:8px;align-items:flex-end;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line)}
.asst-in textarea{flex:1;min-width:0;resize:none;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:var(--bg);font:inherit;line-height:1.4}
.asst-in textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}
@media (max-width:820px){
  .asst-fab{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  .asst{width:100vw}
}
@media print{.asst,.asst-fab{display:none!important}}
