/* Theme-aware button feedback; switches keep their own visual contract. */
:root { --ygy-button-accent: var(--primary, var(--accent-coral, #1677ff)); }
:is(button,[role="button"],a.btn):not(.toggle):not(.frosted-switch):not([role="switch"]):not([data-ygy-no-feedback]) {
  transition: filter 180ms ease, translate 180ms ease;
}
@media (hover:hover) {
  :is(button,[role="button"],a.btn):not(:disabled):not([aria-disabled="true"]):not(.toggle):not(.frosted-switch):not([role="switch"]):not([data-ygy-no-feedback]):hover {
    translate: 0 -1px;
  }
}
:is(button,[role="button"],a.btn):not(:disabled):not([aria-disabled="true"]):not(.toggle):not(.frosted-switch):not([role="switch"]):not([data-ygy-no-feedback]):active { translate: 0 0; filter:brightness(.98); }
/* Resize grips are geometry controls, not action buttons. */
:root button.file-layout-object-handle { box-shadow:none; translate:none; filter:none; transition:none; }
.ygy-ripple-surface { position:fixed; pointer-events:none; overflow:hidden; z-index:2147483647; contain:strict; }
.ygy-ripple-wave { position:absolute; pointer-events:none; border-radius:50%; background:var(--ygy-button-accent); opacity:.13; transform:scale(0); animation:ygy-button-ripple 520ms ease-out forwards; }
@keyframes ygy-button-ripple { to { transform:scale(1); opacity:0; } }
@media(prefers-reduced-motion:reduce) {
  :is(button,[role="button"],a.btn) { transition:none!important; translate:none!important; }
  .ygy-ripple-surface { display:none; }
}
