/* bot_theme icons — mask-rendered glyphs that follow currentColor.
   Per-icon --bot-icon-url rules live in generated bot_icons_map.css. */

.bot-icon {
  display: inline-block;
  width: var(--bot-icon-size-md);
  height: var(--bot-icon-size-md);
  background-color: currentColor;
  -webkit-mask: var(--bot-icon-url) no-repeat center / contain;
  mask: var(--bot-icon-url) no-repeat center / contain;
  vertical-align: -0.18em;
  flex: none;
}
.bot-icon--sm { width: var(--bot-icon-size-sm); height: var(--bot-icon-size-sm); }
.bot-icon--lg { width: var(--bot-icon-size-lg); height: var(--bot-icon-size-lg); }

.bot-icon-btn {
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent; border: none; cursor: pointer;
  padding: 4px 5px; border-radius: var(--bot-radius-sm);
  color: var(--bot-icon-color);
  line-height: 1;
}
.bot-icon-btn:hover { color: var(--bot-icon-color-hover); background: var(--bot-surface-hover-bg); }
.bot-icon-btn:focus-visible { outline: 2px solid var(--bot-border-focus); outline-offset: 1px; }
.bot-icon-btn--primary { color: var(--bot-text-on-navy); background: var(--bot-brand-navy); }
.bot-icon-btn--primary:hover { color: var(--bot-text-on-navy); background: var(--bot-brand-navy-light); }
.bot-icon-btn--danger { color: var(--bot-status-danger); }

/* motion */
@keyframes bot-spin { to { transform: rotate(360deg); } }
@keyframes bot-pulse { 50% { opacity: .35; } }
@keyframes bot-pop { 0% { transform: scale(.6); } 60% { transform: scale(1.2); } 100% { transform: scale(1); } }
.bot-icon--spin { animation: bot-spin 1.6s linear infinite; }
.bot-icon--pulse { animation: bot-pulse 1.4s ease-in-out infinite; }
.bot-icon--pop { animation: bot-pop .3s ease-out; }
@media (prefers-reduced-motion: reduce) {
  .bot-icon--spin, .bot-icon--pulse, .bot-icon--pop { animation: none; }
}
