/* Feedback compartilhado. Somente apresentação; não interfere em handlers. */
body :is(.ui-button, .ui-icon-button, .technical-icon-action, .edital-icon-button,
         button.ui-filter-submit, .stage-arrow, .sidebar-toggle) {
    transition: background-color var(--motion-fast) var(--ease-standard),
                color var(--motion-fast) var(--ease-standard),
                border-color var(--motion-fast) var(--ease-standard),
                translate var(--motion-fast) var(--ease-standard);
}
:where(.ui-control, .ui-field input) {
    transition: border-color var(--motion-fast) var(--ease-standard);
}
:where(.sidebar .nav-link, .stats-tabs a, .list-shortcuts a, [role="tab"], summary) {
    transition: background-color var(--motion-fast) var(--ease-standard),
                color var(--motion-fast) var(--ease-standard),
                border-color var(--motion-fast) var(--ease-standard);
}
:where(.technical-table, .edital-table) tbody tr {
    transition: background-color var(--motion-fast) var(--ease-standard);
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
    body .ui-button:not(.ui-icon-only):not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]):hover:not(:active) {
        translate: 0 var(--motion-lift);
    }
}
@media (prefers-reduced-motion: no-preference) {
    body :is(.ui-button, .ui-icon-button, .technical-icon-action, .edital-icon-button,
             button.ui-filter-submit, .stage-arrow, .sidebar-toggle):active {
        translate: 0 1px;
        transition-duration: var(--motion-press);
    }
    :where(dialog[open]) {
        animation: ui-dialog-enter var(--motion-fast) var(--ease-standard);
    }
}
@keyframes ui-dialog-enter {
    from { opacity: .96; transform: translateY(var(--motion-dialog-offset)); }
    to { opacity: 1; transform: translateY(0); }
}
/* Ocupação pode ser declarada no próprio controle ou no formulário. */
body :is(.ui-button, .ui-icon-button, .technical-icon-action, .edital-icon-button,
         button.ui-filter-submit, .stage-arrow, .sidebar-toggle):is(:disabled, [aria-disabled="true"], [aria-busy="true"]),
body :where([aria-busy="true"], [data-submitting="true"]) :is(.ui-button, .ui-icon-button, .technical-icon-action, button.ui-filter-submit, .edital-icon-button, .stage-arrow, .sidebar-toggle) {
    transition: none !important;
    translate: none !important;
}
@media (prefers-reduced-motion: reduce) {
    body :is(.ui-button, .ui-icon-button, .technical-icon-action, .edital-icon-button,
             button.ui-filter-submit, .stage-arrow, .sidebar-toggle) {
        translate: none !important;
        transition: none;
    }
    :where(dialog[open]) { animation: none; }
}
