/* V2.48.6 — navigation smoothness, low-jank interactions, and MPA view transitions. */
:root{
  --ui-fast:120ms;
  --ui-normal:170ms;
  --ui-slow:220ms;
  --ui-ease:cubic-bezier(.2,.75,.25,1);
}

/* Chrome/Edge can animate same-origin full-page navigations natively. Browsers
   without cross-document View Transitions simply ignore this block. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:110ms ease-out both mtsn-page-out}
::view-transition-new(root){animation:150ms ease-out both mtsn-page-in}
@keyframes mtsn-page-out{to{opacity:.985}}
@keyframes mtsn-page-in{from{opacity:.985}to{opacity:1}}

/* Keep the admin chrome visually stationary while page content changes. */
.admin-sidebar{view-transition-name:mtsn-admin-sidebar}
.admin-topbar{view-transition-name:mtsn-admin-topbar}
.admin-content{view-transition-name:mtsn-admin-content}
::view-transition-old(mtsn-admin-sidebar),::view-transition-new(mtsn-admin-sidebar),
::view-transition-old(mtsn-admin-topbar),::view-transition-new(mtsn-admin-topbar){animation:none}
::view-transition-old(mtsn-admin-content){animation:90ms ease-out both mtsn-content-out}
::view-transition-new(mtsn-admin-content){animation:150ms var(--ui-ease) both mtsn-content-in}
@keyframes mtsn-content-out{to{opacity:.985;transform:translateY(-1px)}}
@keyframes mtsn-content-in{from{opacity:.985;transform:translateY(1px)}to{opacity:1;transform:none}}

/* Avoid broad transition:all rules on the most frequently interacted controls. */
:is(a,button,summary,.button,.icon-button,.admin-nav a,.admin-nav summary,.mobile-bottom-nav__item){
  -webkit-tap-highlight-color:transparent;
}
.button,.icon-button,.admin-nav a,.admin-nav summary,.mobile-bottom-nav__item,.tinta-header-button{
  transition:transform var(--ui-fast) var(--ui-ease),background-color var(--ui-normal) ease,color var(--ui-normal) ease,border-color var(--ui-normal) ease,box-shadow var(--ui-normal) ease,opacity var(--ui-fast) ease;
}
:is(.button,.icon-button,.admin-nav a,.admin-nav summary,.mobile-bottom-nav__item,.tinta-header-button):active{
  transform:scale(.985);
}

/* Do not blank the current admin shell at click time. Target pages are already
   protected by admin-booting, so this eliminates a visible intermediate frame. */
html.admin-navigation-pending .admin-shell{visibility:visible!important;opacity:1!important}
html.admin-navigation-pending:not(.page-loading-enabled) .site-page-loader{opacity:0!important;visibility:hidden!important;pointer-events:none!important}

/* Reduce compositing churn in long dashboards and listing pages. */
.admin-content,.admin-sidebar,.admin-topbar,#main-content,#tinta-main{backface-visibility:hidden}
.admin-body .admin-card,.admin-body .table-card,.admin-body .settings-card{will-change:auto;contain:layout style}

/* Make scrolling responsive without forcing animated scrolling for every code path. */
html{scroll-padding-top:6rem}
@media (pointer:coarse){
  :is(button,a,summary,[role="button"]){touch-action:manipulation}
}

@media(prefers-reduced-motion:reduce){
  @view-transition{navigation:auto}
  ::view-transition-old(root),::view-transition-new(root),
  ::view-transition-old(mtsn-admin-sidebar),::view-transition-new(mtsn-admin-sidebar),
  ::view-transition-old(mtsn-admin-topbar),::view-transition-new(mtsn-admin-topbar),
  ::view-transition-old(mtsn-admin-content),::view-transition-new(mtsn-admin-content){animation:none!important}
  .button,.icon-button,.admin-nav a,.admin-nav summary,.mobile-bottom-nav__item,.tinta-header-button{transition:none!important}
}
