/* TRINITY motion: feedback only; selection remains owned by the app. */
:root { --tf-motion-ease: cubic-bezier(.22,1,.36,1); }
:where(button, a.primary, a.secondary, [role="button"]) {
  -webkit-tap-highlight-color: transparent;
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, box-shadow 220ms ease;
}
:where(button, a.primary, a.secondary, [role="button"]):focus-visible {
  outline: 2px solid var(--green, #9ee65b); outline-offset: 4px;
}
@media (hover:hover) and (pointer:fine) {
  :where(.primary,.secondary,.iconBtn,.filterChip,.dayTabs button,.adminTabs button):not(:disabled):not([aria-disabled="true"]):hover {
    box-shadow: 0 5px 22px #9ee65b24; border-color: #9ee65b88;
  }
}
.bottomNav button { border-radius: 16px; margin: 5px 2px; }
.bottomNav button.active {
  background: radial-gradient(ellipse at 50% 30%, #9ee65b26, transparent 75%);
  box-shadow: inset 0 2px 0 #9ee65b88;
}
.bottomNav button.active svg { filter: drop-shadow(0 0 7px #9ee65b80); }
:where(.dayTabs,.adminTabs,.dayPicker) button.active,
:where(.choices,.trackChoices) button.selected,
.chatChoice.active { box-shadow: 0 5px 22px #9ee65b1c, inset 0 1px 0 #e8ffd638; }
.tf-motion-flash,.tf-motion-travel {
  position: fixed; pointer-events: none; z-index: 2147483000;
  border-radius: 16px; contain: layout style; will-change: transform, opacity;
}
.tf-motion-flash {
  border: 1px solid #cfffaa90;
  background: radial-gradient(ellipse at center, #cfffaa30, #9ee65b08 70%);
  box-shadow: 0 0 22px #9ee65b30;
}
.tf-motion-travel {
  background: radial-gradient(ellipse, #b8ff7055, #9ee65b08 70%, transparent);
  box-shadow: inset 0 2px 0 #cfffaa99;
}
@media (prefers-reduced-motion: no-preference) {
  .modalCard { animation: tf-modal-in 240ms var(--tf-motion-ease) both; }
  @keyframes tf-modal-in { from { opacity: 0; translate: 0 10px; } to { opacity: 1; translate: 0 0; } }
}
@media (prefers-reduced-motion: reduce) {
  :where(button,a.primary,a.secondary,[role="button"]) { transition: none; }
  .tf-motion-flash,.tf-motion-travel { display: none; }
}
