/* Shared motion for DE/BE portals, login and customer upload pages.
   Visual enhancement only: native navigation, details and form actions remain intact. */
:root{
  --eva-motion-fast:150ms;
  --eva-motion-normal:220ms;
  --eva-motion-ease:cubic-bezier(.2,.7,.2,1);
}
@keyframes eva-content-in{from{opacity:.55}to{opacity:1}}
@keyframes eva-surface-in{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}

@media(prefers-reduced-motion:no-preference){
  /* No transforms on the workspace: sticky headers and fixed dialogs keep their anchors. */
  main{animation:eva-content-in var(--eva-motion-normal) ease-out}
  :is(button,.btn,.be-btn,.btn-small,.upload-choice,summary,
      .eva-navigation a,.bea-sidebar nav a,.sidebar nav a,.sales-sidebar nav a){
    transition:background-color var(--eva-motion-fast) ease,
      border-color var(--eva-motion-fast) ease,color var(--eva-motion-fast) ease,
      box-shadow var(--eva-motion-fast) ease,scale var(--eva-motion-fast) ease;
  }
  :is(input:not([type=hidden]),select,textarea){
    transition:border-color var(--eva-motion-fast) ease,box-shadow var(--eva-motion-fast) ease;
  }
  :is(.eva-chevron,.eva-section-chevron,.bea-nav-chevron){
    transition:transform var(--eva-motion-normal) var(--eva-motion-ease);
  }
  :is(.btn,.be-btn,.btn-small,.eva-row-toggle):active:not(:disabled):not([aria-disabled=true]){scale:.98}
  :is(.card,.be-card,.nxl-chart-card,.settings-status-card){
    transition:box-shadow var(--eva-motion-fast) ease,border-color var(--eva-motion-fast) ease;
  }
  :is(dialog[open],.modal.show .modal-dialog,.eva-realtime-panel:not([hidden]),
      .eva-realtime-toasts>a,.eva-mobile-more[open]>.eva-mobile-more-menu,
      .be-alert,.alert,.flash,.bea-energy:not([hidden])){
    animation:eva-surface-in var(--eva-motion-normal) var(--eva-motion-ease);
  }
  dialog[open]::backdrop{animation:eva-content-in var(--eva-motion-fast) ease-out}
  /* Newly revealed content; no row cloning or delayed submit handlers. */
  main details[open]>:not(summary),[data-sale-panel]:not([hidden]),
  .eva-mobile-expanded>.eva-mobile-detail,.eva-filters-open>.eva-filter-extra{
    animation:eva-content-in var(--eva-motion-fast) ease-out;
  }

  /* Native details animation also works with keyboard activation and programmatic
     accordion closing. Older browsers retain the same accessible native menus. */
  @supports (interpolate-size:allow-keywords) and selector(details::details-content){
    :is(.eva-nav-group,.eva-nav-section,.bea-nav-group){interpolate-size:allow-keywords}
    :is(.eva-nav-group,.eva-nav-section,.bea-nav-group)::details-content{
      block-size:0;opacity:0;overflow:clip;
      transition:block-size var(--eva-motion-normal) var(--eva-motion-ease),
        opacity var(--eva-motion-fast) ease,
        content-visibility var(--eva-motion-normal) allow-discrete;
    }
    :is(.eva-nav-group,.eva-nav-section,.bea-nav-group)[open]::details-content{
      block-size:auto;opacity:1;
    }
  }
  @media(max-width:991.98px){
    /* Keep the closing drawer visible for its slide, but inert immediately. */
    :root body :is(.sidebar,.sales-sidebar,.eva-sidebar,.bea-sidebar){
      transition:transform var(--eva-motion-normal) var(--eva-motion-ease),
        visibility 0s linear var(--eva-motion-normal)!important;
    }
    :root body.menu-open :is(.sidebar,.sales-sidebar,.eva-sidebar,.bea-sidebar){transition-delay:0s!important}
    :root body .eva-nav-backdrop{
      opacity:0;
      transition:opacity var(--eva-motion-normal) ease,
        display var(--eva-motion-normal) allow-discrete;
    }
    :root body .eva-nav-backdrop:not([hidden]){opacity:1}
    :root body .eva-nav-backdrop[hidden]{pointer-events:none}
    @starting-style{:root body .eva-nav-backdrop:not([hidden]){opacity:0}}
  }
}
/* Includes legacy theme motion, not just the new effects. Functional indicators
   remain present; no animation is required to finish an action. */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  dialog::backdrop{animation:none!important;transition:none!important}
  details::details-content{animation:none!important;transition:none!important}
}
@media print{
  *,*::before,*::after{animation:none!important;transition:none!important}
}
