/* AI Tools Vault 1.9.0 — "New tools added" toast (vault-fresh.js). Theme tokens from vault.css (#aitv-root). */
#aitv-root .avf-toast {
  position: fixed; left: calc(16px + env(safe-area-inset-left, 0px)); bottom: 16px; z-index: 99961; width: min(340px, calc(100vw - 24px)); max-width: 340px;
  padding: 11px 12px 13px; border-radius: 16px; border: 3px solid var(--ink); background: var(--surface, #fff); color: var(--ink);
  box-shadow: 6px 6px 0 var(--ink), 0 22px 50px rgba(0,0,0,.22); overflow: hidden;
  animation: avf-in .55s cubic-bezier(.2,1.3,.4,1) both;
}
@keyframes avf-in { from { opacity: 0; transform: translate(-60px, 26px) scale(.94); } to { opacity: 1; transform: none; } }
#aitv-root .avf-toast.is-out { animation: avf-out .36s cubic-bezier(.4,0,.2,1) both; }
@keyframes avf-out { to { opacity: 0; transform: translateX(-120%); } }
#aitv-root .avf-h { display: flex; align-items: flex-start; gap: 10px; }
#aitv-root .avf-t { flex: 1; font-size: 16px; font-weight: 800; letter-spacing: -.01em; line-height: 1.3; }
#aitv-root .avf-x { flex: 0 0 34px; height: 34px; margin: -4px -4px 0 0; border-radius: 50%; border: 2px solid var(--line-2); background: var(--soft); color: var(--ink); cursor: pointer; font-size: 15px; }
#aitv-root .avf-x:hover, #aitv-root .avf-x:focus-visible { border-color: var(--ink); outline: none; }
#aitv-root .avf-list { list-style: none; margin: 10px 0 12px; padding: 0; display: grid; gap: 6px; }
#aitv-root .avf-list li { display: flex; align-items: center; gap: 10px; padding: 5px; border-radius: 12px; background: var(--soft); animation: avf-li .4s cubic-bezier(.2,1.3,.4,1) both; }
@keyframes avf-li { from { opacity: 0; transform: translateX(-18px); } to { opacity: 1; transform: none; } }
#aitv-root .avf-th { flex: 0 0 38px; width: 38px; height: 46px; border-radius: 8px; overflow: hidden; border: 2px solid var(--ink); background: var(--surface); display: grid; place-items: center; font-size: 20px; }
#aitv-root .avf-th img { width: 100%; height: 100%; object-fit: cover; }
#aitv-root .avf-n { font-size: 13.5px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
#aitv-root .avf-list li.avf-more { justify-content: center; font-size: 12.5px; font-weight: 700; color: var(--muted); padding: 6px; }
#aitv-root .avf-acts { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
#aitv-root .avf-see { border: 2px solid var(--ink) !important; box-shadow: 3px 3px 0 var(--ink); }
#aitv-root .avf-pv { font-size: 12px; font-weight: 600; color: var(--muted); }
#aitv-root .avf-bar { position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--soft); }
#aitv-root .avf-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--accent), var(--yellow, #ffd60a)); transform-origin: left; animation: avf-time 10s linear both; }
#aitv-root .avf-toast.is-paused .avf-bar i { animation-play-state: paused; }
@keyframes avf-time { from { transform: scaleX(1); } to { transform: scaleX(0); } }
#aitv-root .av-card.avf-hl { animation: avf-hl 1.1s ease-in-out 3; outline: 3px solid var(--accent); outline-offset: 3px; }
@keyframes avf-hl { 0%, 100% { box-shadow: 0 0 0 0 rgba(255,90,31,.0); } 50% { box-shadow: 0 0 0 10px rgba(255,90,31,.35); } }
@media (max-width: 600px) { #aitv-root .avf-toast { left: 12px; width: min(340px, calc(100vw - 24px)); box-shadow: 4px 4px 0 var(--ink), 0 18px 40px rgba(0,0,0,.22); } }
/* 2.2.0 fix: compact like a social-proof pop-up, and a change of spot slides (never jumps) */
#aitv-root .avf-toast.is-placed { transition: left .3s cubic-bezier(.2,.8,.2,1), bottom .3s cubic-bezier(.2,.8,.2,1); }
#aitv-root .avf-t { font-size: 14.5px; }
#aitv-root .avf-x { flex-basis: 30px; height: 30px; font-size: 13px; }
#aitv-root .avf-list { margin: 8px 0 10px; gap: 4px; }
#aitv-root .avf-list li { padding: 3px 4px; gap: 8px; }
#aitv-root .avf-th { flex-basis: 30px; width: 30px; height: 36px; font-size: 16px; }
#aitv-root .avf-n { font-size: 13px; }
#aitv-root .avf-see { min-height: 36px; padding: 6px 14px; font-size: 13.5px; }
#aitv-root.av-rm .avf-toast.is-placed { transition: none; }
@media (prefers-reduced-motion: reduce) { #aitv-root .avf-toast.is-placed { transition: none; } }
#aitv-root.av-rm .avf-toast, #aitv-root.av-rm .avf-list li, #aitv-root.av-rm .av-card.avf-hl { animation: none !important; }
#aitv-root.av-rm .avf-bar i { animation-name: avf-time !important; }
@media (prefers-reduced-motion: reduce) {
  #aitv-root .avf-toast, #aitv-root .avf-toast.is-out, #aitv-root .avf-list li, #aitv-root .av-card.avf-hl { animation: none !important; }
}
