/* One motion vocabulary for public pages, workspaces and the admin console. */
:root{--rs-motion-fast:140ms;--rs-motion-panel:220ms;--rs-motion-page:240ms;--rs-motion-ease:cubic-bezier(.2,.75,.25,1)}
@media(prefers-reduced-motion:no-preference){
 @view-transition{navigation:auto}
 ::view-transition-group(root){animation-duration:var(--rs-motion-page);animation-timing-function:var(--rs-motion-ease)}
 ::view-transition-old(root){animation:rs-page-out 160ms var(--rs-motion-ease) both}
 ::view-transition-new(root){animation:rs-page-in var(--rs-motion-page) var(--rs-motion-ease) both}
 /* Keep the completed mode switch steady while the destination page arrives. */
 ::view-transition-group(workspace-mode){animation-duration:var(--rs-motion-page);animation-timing-function:var(--rs-motion-ease)}
 ::view-transition-old(workspace-mode){animation:none;opacity:0}
 ::view-transition-new(workspace-mode){animation:none}
 ::view-transition{pointer-events:none}
 @keyframes rs-page-out{to{opacity:0}}
 @keyframes rs-page-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
 @keyframes rs-panel-in{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
 :is(button,.button,.hospital-card,.group-tabs a,.context-tabs a,.staff-tabs a,.generation-tabs button,.rule-library-tabs button){transition-property:background-color,border-color,color,box-shadow,transform;transition-duration:var(--rs-motion-fast);transition-timing-function:var(--rs-motion-ease)}
 :is(input,select,textarea){transition:border-color var(--rs-motion-fast) var(--rs-motion-ease),box-shadow var(--rs-motion-fast) var(--rs-motion-ease)}
 .person-highlighted,.person-muted{transition:background-color var(--rs-motion-fast) var(--rs-motion-ease),opacity var(--rs-motion-fast) var(--rs-motion-ease)}
 .ui-toast{animation:rs-panel-in var(--rs-motion-panel) var(--rs-motion-ease) both}
 /* Native dialogs keep their focus, Escape and form behaviour. */
 dialog[open]{animation:rs-panel-in var(--rs-motion-panel) var(--rs-motion-ease)}
 @supports(transition-behavior:allow-discrete){
  dialog{opacity:0;translate:0 10px;transition:opacity var(--rs-motion-panel) var(--rs-motion-ease),translate var(--rs-motion-panel) var(--rs-motion-ease),display var(--rs-motion-panel) allow-discrete,overlay var(--rs-motion-panel) allow-discrete}
  dialog[open]{opacity:1;translate:0 0;animation:none}
  dialog:not([open]){pointer-events:none}
  dialog::backdrop{opacity:0;transition:opacity var(--rs-motion-panel) var(--rs-motion-ease),display var(--rs-motion-panel) allow-discrete,overlay var(--rs-motion-panel) allow-discrete}
  dialog[open]::backdrop{opacity:1}
  @starting-style{dialog[open]{opacity:0;translate:0 10px}dialog[open]::backdrop{opacity:0}}
 }
 @supports(interpolate-size:allow-keywords){
  details{interpolate-size:allow-keywords}
  details::details-content{block-size:0;opacity:0;overflow:clip;transition:block-size var(--rs-motion-panel) var(--rs-motion-ease),opacity var(--rs-motion-panel) var(--rs-motion-ease),content-visibility var(--rs-motion-panel) allow-discrete}
  details[open]::details-content{block-size:auto;opacity:1}
 }
 /* Page entry is handled once by the shared navigation layer. */
 .draft-workspace{animation:none}
}
@media(prefers-reduced-motion:reduce){
 @view-transition{navigation:none}
 ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
 html{scroll-behavior:auto!important}
 dialog,.ui-toast,details::details-content{animation:none!important;transition:none!important}
}
@media print{dialog,.ui-toast,details::details-content{animation:none!important;transition:none!important}::view-transition{display:none}}
