/* Motion is progressive enhancement: no navigation interception or loading curtain. */
:root {
    --sws-motion-fast: 160ms;
    --sws-motion-base: 260ms;
    --sws-motion-slow: 420ms;
    --sws-ease: cubic-bezier(.22,.68,0,1.01);
}
@view-transition { navigation: auto; }
.sws-header, .sws-entry-error-header { view-transition-name: sws-header; }
::view-transition-group(sws-header) { animation-duration: 260ms; animation-timing-function: ease; }
::view-transition-old(root) { animation: sws-page-away 160ms ease both; }
::view-transition-new(root) { animation: sws-page-arrive 320ms var(--sws-ease) both; }
::view-transition-old(sws-header), ::view-transition-new(sws-header) { animation-duration: 160ms; }
@keyframes sws-page-away { to { opacity: 0; transform: translateY(-7px); } }
@keyframes sws-page-arrive { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

/* Independent translate/scale preserve each component's own transforms. */
.sws-site :is(.sws-workspace-action, .sws-secondary-action, .sws-entry__submit, .sws-entry__secondary, .sws-folio-start, .sws-home-instrument__start) {
    transition: background-color var(--sws-motion-fast) ease, border-color var(--sws-motion-fast) ease, color var(--sws-motion-fast) ease, transform var(--sws-motion-base) var(--sws-ease), translate var(--sws-motion-base) var(--sws-ease), scale var(--sws-motion-fast) var(--sws-ease);
}
.sws-site :is(.sws-workspace-action, .sws-secondary-action, .sws-entry__submit, .sws-entry__secondary, .sws-folio-start, .sws-home-instrument__start):active:not(:disabled) { scale: .98; }
.sws-site [data-motion-magnet] { translate: var(--sws-pointer-x, 0px) var(--sws-pointer-y, 0px); }
.sws-site :is(a, button, input, textarea, select, summary):focus-visible { transition-duration: 0s; }
.sws-site :is(.sws-nav__link, .sws-record-action, .sws-admin-open-link, .sws-file-picker__button, .sws-chat-attachment) { transition: color var(--sws-motion-fast) ease, border-color var(--sws-motion-fast) ease, background-color var(--sws-motion-fast) ease; }
.sws-site .sws-menu-toggle__line { transition: transform var(--sws-motion-base) var(--sws-ease), opacity var(--sws-motion-fast) ease; transform-origin: center; }
.sws-site .sws-menu-toggle[aria-expanded="true"] .sws-menu-toggle__line:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.sws-site .sws-menu-toggle[aria-expanded="true"] .sws-menu-toggle__line:nth-child(2) { opacity: 0; }
.sws-site .sws-menu-toggle[aria-expanded="true"] .sws-menu-toggle__line:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.sws-nav[data-motion-owned] { max-height: calc(100dvh - 76px); overflow-y: auto; overscroll-behavior: contain; }
html:has(.sws-modal[open], .sws-work-drawer[open]) { overflow-y: hidden; }
.sws-modal[data-sws-modal-owner="shared"][open] { animation: none; }
.sws-site .sws-field { transition: color var(--sws-motion-fast) ease; }
.sws-site .sws-field:focus-within > :is(label, .sws-label) { color: #ac1748; }
.sws-site .sws-input { transition: border-color var(--sws-motion-fast) ease, background-color var(--sws-motion-fast) ease, box-shadow var(--sws-motion-fast) ease; }
.sws-site .sws-file-picker:has(input:focus-visible) { outline: 2px solid #c81754; outline-offset: 4px; }
@media (hover: hover) and (pointer: fine) {
    .sws-site :is(.sws-project-ledger tbody tr, .sws-admin-suite tbody tr) { transition: background-color var(--sws-motion-fast) ease; }
    .sws-site :is(.sws-project-ledger tbody tr, .sws-admin-suite tbody tr):hover { background-color: #a67c450b; }
}
@media (prefers-reduced-motion: reduce) {
    @view-transition { navigation: none; }
    ::view-transition-old(*), ::view-transition-new(*), ::view-transition-group(*) { animation: none !important; }
    .sws-site *, .sws-site *::before, .sws-site *::after { scroll-behavior: auto !important; transition-duration: 0s !important; animation-duration: 0s !important; animation-delay: 0s !important; }
    .sws-site [data-motion-magnet] { translate: none !important; }
}
