/* Shared motion: short, quiet responses; hover belongs only to mouse-like devices. */
:root{--motion-fast:150ms;--motion-panel:240ms;--motion-ease:cubic-bezier(.2,.75,.25,1);--motion-spring:cubic-bezier(.2,.9,.3,1.18)}
button,a,input,select,textarea{transition:background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,color var(--motion-fast) ease,box-shadow var(--motion-fast) ease}
:is(.galleryTreeToggle,.pa413NavigatorToggle) svg{transition:transform var(--motion-panel) var(--motion-ease)}
:is(.galleryPhoto,.jobRecordCard,.invoiceRecordCard,.receiptCard,.clientHubPanelCard,.clientHubPropertyCard,.clientHubJobCard,.clientHubInvoiceCard,.clientRecord){transition:box-shadow var(--motion-panel) ease,border-color var(--motion-fast) ease}
.galleryPhotoOpen{overflow:hidden}.galleryPhoto{position:relative;transform-origin:50% 50%;transition:transform 360ms var(--motion-spring),box-shadow var(--motion-panel) ease,border-color var(--motion-fast) ease}
@media(hover:hover) and (pointer:fine){
 .galleryPhoto:hover{transform:translateY(-2px) scale(1.025);z-index:1}
 .galleryPhoto:hover{box-shadow:0 8px 20px #0003;border-color:#83b499}
 :is(.dashboardAction,.dashboardImageShortcut,.galleryHero>button,.receiptsPrimaryAction,.invoicesPrimaryAction,.clientHubPrimaryButton,.jobRecordActions button,.invoiceCardAction,.receiptCardButton):not(:disabled){transition:transform var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) ease,background-color var(--motion-fast) ease}
 :is(.dashboardAction,.dashboardImageShortcut,.galleryHero>button,.receiptsPrimaryAction,.invoicesPrimaryAction,.clientHubPrimaryButton,.jobRecordActions button,.invoiceCardAction,.receiptCardButton):not(:disabled):hover{transform:translateY(-1px)}
}
:is(.dashboardAction,.dashboardImageShortcut,.galleryHero>button,.clientHubPrimaryButton,.invoiceCardAction,.receiptCardButton):not(:disabled):active{transform:scale(.985)}
.galleryPhoto:has(.galleryPhotoOpen:focus-visible){transform:translateY(-2px) scale(1.025);z-index:1}
dialog[open]{animation:pa413-dialog-in var(--motion-panel) var(--motion-ease)}
dialog[open]::backdrop{animation:pa413-backdrop-in 180ms ease}
@keyframes pa413-dialog-in{from{opacity:0;translate:0 9px;scale:.99}to{opacity:1;translate:0 0;scale:1}}
@keyframes pa413-backdrop-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.galleryPhoto:hover,.galleryPhoto:has(.galleryPhotoOpen:focus-visible){transform:none!important}}
@media print{*,*::before,*::after{animation:none!important;transition:none!important;translate:none!important;scale:none!important;transform:none!important}}
