/* Stationary work surfaces: feedback stays local, even on long quotations. */
:root{--motion-spring:cubic-bezier(.22,1,.36,1)}
.btn,.nav-button,.room-card,.mode-option,.company-card{
 transition:background-color 140ms ease,border-color 140ms ease,color 140ms ease
}
.nav-icon{transition:transform 220ms var(--motion-spring),opacity 180ms ease}
.nav-button.active .nav-icon{opacity:1}
@media(hover:hover) and (pointer:fine){
 .btn:not(:disabled):hover{transform:none;box-shadow:none}
 .btn.quiet:hover{box-shadow:none}
 .nav-button:hover .nav-icon{transform:translateX(2px)}
 .room-card:hover,.mode-option:hover,.company-card:hover{transform:none;box-shadow:none}
 .login-submit:hover span{transform:translateX(4px)}
}
.btn:not(:disabled):active,.room-card:active,.mode-option:active{transform:none}
.login-submit span{transition:transform 220ms var(--motion-spring)}
#save-status.saving:before{animation:tcy-saving 1.2s ease-in-out infinite}
@keyframes tcy-saving{0%,100%{opacity:.35}50%{opacity:1}}
.login-page .chamber-frame img{animation:tcy-brand-float 4s ease-in-out 2}
@keyframes tcy-brand-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.fold-section summary{transition:color 180ms ease}
.fold-section summary:hover{color:var(--accent)}
.toast{transition:opacity 180ms ease,transform 240ms var(--motion-spring)}
@media(prefers-reduced-motion:reduce){
 *,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .btn:hover,.btn:active,.room-card:hover,.room-card:active,.mode-option:hover,.mode-option:active,.company-card:hover,.brand:hover .brand-mark img,.nav-button:hover .nav-icon,.login-submit:hover span{transform:none!important}
}
@media print{*,*:before,*:after{animation:none!important;transition:none!important}}

