/* Pulso motion contract. Durations and curves originate in pulso.tokens.json. */
:is(.p-button,.p-selection,.p-tab,.p-icon-button,.p-header-icon,.p-user-control) {
 transition:background-color var(--p-motion-fast) var(--p-motion-standard),color var(--p-motion-fast) var(--p-motion-standard),box-shadow var(--p-motion-fast) var(--p-motion-standard),transform var(--p-motion-fast) var(--p-motion-standard);
}
:is(.p-input,.p-select,.p-input-shell) {transition:border-color var(--p-motion-fast) var(--p-motion-standard),box-shadow var(--p-motion-fast) var(--p-motion-standard)}
.p-ui-dialog[open] {animation:p-enter var(--p-motion-enter) var(--p-ease-enter) both}
.p-ui-dialog[open]::backdrop {animation:p-fade var(--p-motion-base) var(--p-ease-enter) both}
.p-ui-dialog[data-closing] {animation:p-exit var(--p-motion-exit) var(--p-ease-exit) both}
.p-ui-dialog.p-ui-drawer[open] {animation:p-drawer-enter var(--p-motion-page) var(--p-ease-enter) both}
.p-ui-dialog.p-ui-drawer[data-closing] {animation:p-drawer-exit var(--p-motion-exit) var(--p-ease-exit) both}
.p-ui-popup:popover-open {animation:p-enter var(--p-motion-base) var(--p-ease-enter) both}
.p-ui-toast:not([hidden]) {animation:p-enter var(--p-motion-enter) var(--p-ease-enter) both}
.p-ui-disclosure-body {display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--p-motion-slow) var(--p-motion-standard)}
.p-ui-disclosure-body>div {overflow:hidden;min-height:0}
.p-ui-disclosure[data-state=open]>.p-ui-disclosure-body {grid-template-rows:1fr}
.p-ui-disclosure-head svg {transition:transform var(--p-motion-base) var(--p-motion-standard)}
.p-ui-disclosure[data-state=open]>.p-ui-disclosure-head svg {transform:rotate(180deg)}
@keyframes p-enter {from {opacity:0;transform:translateY(8px)}to {opacity:1;transform:translateY(0)}}
@keyframes p-exit {to {opacity:0;transform:translateY(4px)}}
@keyframes p-fade {from {opacity:0}to {opacity:1}}
@keyframes p-drawer-enter {from {opacity:0;transform:translateX(24px)}to {opacity:1;transform:translateX(0)}}
@keyframes p-drawer-exit {to {opacity:0;transform:translateX(24px)}}
@keyframes p-ui-spin {to {transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce) {
 html {scroll-behavior:auto!important}
 *,*::before,*::after {animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
 .p-skeleton::after {display:none}
}
/* Local documentation preview never overrides a system preference. */
[data-motion=reduce] *,[data-motion=reduce] *::before,[data-motion=reduce] *::after {animation:none!important;transition:none!important;scroll-behavior:auto!important}

/* Shared layer lifecycle and status animation. */
.p-ui-overlay.open .p-ui-panel {animation:p-enter var(--p-motion-enter) var(--p-ease-enter) both;transition:none;transform:none}
.p-ui-overlay[data-closing] .p-ui-panel {animation:p-exit var(--p-motion-exit) var(--p-ease-exit) both}
.p-ui-overlay.open .p-ui-scrim {animation:p-fade var(--p-motion-base) var(--p-ease-enter) both}
.p-ui-overlay-back.open {animation:p-fade var(--p-motion-base) var(--p-ease-enter) both;transition:none}
.p-skeleton::after {animation-duration:var(--p-motion-skeleton)}

/* Compatibility names resolve to the same tokens; no parallel motion palette. */
:root {--m-instant:var(--p-motion-fast);--m-fast:var(--p-motion-fast);--m-normal:var(--p-motion-base);--m-slow:var(--p-motion-enter);--e-standard:var(--p-motion-standard);--e-decelerate:var(--p-ease-enter);--e-accelerate:var(--p-ease-exit);--e-spring:var(--p-motion-standard);--e-spring-soft:var(--p-motion-standard);--e-chev:var(--p-motion-standard)}
[data-pulso] .p-ui-nav-item {transition:background-color var(--p-motion-fast) var(--p-motion-standard),color var(--p-motion-fast) var(--p-motion-standard)}
[data-pulso] :is(.anim,.anim-baja,.vista-entra) {animation:p-enter var(--p-motion-enter) var(--p-ease-enter) both}
[data-pulso] .anim-lista>* {animation:p-fade var(--p-motion-base) var(--p-ease-enter) both;animation-delay:0ms}
[data-pulso] :is(button,[role=button]):active {transform:none}
