/* حركات قصيرة مرتبطة بالفعل، دون مؤثرات متكررة أو تأخير لطلب الشبكة. */
.route-loading{min-height:240px;padding-block:24px;color:var(--muted)}
.loading-lines{display:grid;gap:14px;max-width:680px;margin-top:24px}
.loading-lines span{display:block;height:58px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.loading-lines span:last-child{width:70%}
@media(prefers-reduced-motion:no-preference){
 .card{transition:transform 160ms cubic-bezier(.2,.8,.2,1),border-color 160ms,box-shadow 160ms}
 button,.primary,.secondary,nav a{transition:transform 120ms cubic-bezier(.2,.8,.2,1),border-color 140ms,box-shadow 140ms}
 button:active:not(:disabled):not([data-floating-handle]),a.primary:active{transform:scale(.985)}
 .floating-navigation{transition:border-radius 180ms cubic-bezier(.2,.8,.2,1)}
 .floating-navigation.is-dragging{will-change:transform;transition:none}
 .mobile-menu[open]::backdrop{animation:backdrop-enter 170ms ease-out}
 #status.visible{animation:status-enter 150ms ease-out}
 @keyframes backdrop-enter{from{opacity:0}to{opacity:1}}
 @keyframes status-enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
}
@media(hover:none){.card:hover{transform:none}}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
