@keyframes loaderAmbient{0%{transform:scale(.92) rotate(0deg);opacity:.72}100%{transform:scale(1.08) rotate(8deg);opacity:1}}
@keyframes loaderSheen{0%{transform:translate3d(-100%,0,0)}45%,100%{transform:translate3d(100%,0,0)}}
@keyframes loaderHalo{0%,100%{transform:scale(.82);opacity:.55}50%{transform:scale(1.14);opacity:1}}
@keyframes loaderOrbitA{0%{transform:rotate(-18deg) scale(.92)}50%{transform:rotate(162deg) scale(1.04)}100%{transform:rotate(342deg) scale(.92)}}
@keyframes loaderOrbitB{0%{transform:rotate(42deg) scale(.96)}50%{transform:rotate(-138deg) scale(1.05)}100%{transform:rotate(-318deg) scale(.96)}}
@keyframes loaderOrbitC{to{transform:rotate(342deg)}}
@keyframes markFloat{0%,100%{transform:translate3d(0,0,0) scale(.98)}50%{transform:translate3d(0,-5px,0) scale(1.035)}}
@keyframes markShine{0%,18%{transform:translate3d(-55%,0,0)}58%,100%{transform:translate3d(55%,0,0)}}
@keyframes dotFlow{0%,100%{transform:translateY(0) scale(.65);opacity:.35}45%{transform:translateY(-7px) scale(1);opacity:1}}
@keyframes loaderProgress{0%{transform:translateX(-125%)}100%{transform:translateX(300%)}}
@keyframes badgePulse{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
@keyframes badgeRing{0%{transform:scale(1);opacity:.7}60%,100%{transform:scale(1.75);opacity:0}}
@keyframes themeGlow{0%{opacity:0;transform:translate3d(-50%,-50%,0) scale(.18)}12%{opacity:.72}34%{opacity:.82}68%{opacity:.32}100%{opacity:0;transform:translate3d(-50%,-50%,0) scale(8.5)}}
@keyframes themeWash{0%{opacity:1}100%{opacity:0}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes errShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}50%{transform:translateX(6px)}75%{transform:translateX(-3px)}}
@keyframes viewEnter{from{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes fadeInUp{from{opacity:0;transform:translate3d(0,18px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes fadeOutDown{from{opacity:1;transform:translate3d(0,0,0)}to{opacity:0;transform:translate3d(0,-18px,0)}}
@keyframes fadeInScale{from{opacity:0;transform:scale(.94) translate3d(0,12px,0)}to{opacity:1;transform:scale(1) translate3d(0,0,0)}}
@keyframes fadeOutScale{from{opacity:1;transform:scale(1) translate3d(0,0,0)}to{opacity:0;transform:scale(.97) translate3d(0,-12px,0)}}
@keyframes fadeInSoft{from{opacity:0;transform:translate3d(0,10px,0) scale(.98)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}
@keyframes fadeOutSoft{from{opacity:1;transform:translate3d(0,0,0) scale(1)}to{opacity:0;transform:translate3d(0,-10px,0) scale(.98)}}
@keyframes blurFadeIn{from{opacity:0;filter:blur(8px);transform:translate3d(0,16px,0)}to{opacity:1;filter:blur(0);transform:translate3d(0,0,0)}}
@keyframes blurFadeOut{from{opacity:1;filter:blur(0);transform:translate3d(0,0,0)}to{opacity:0;filter:blur(8px);transform:translate3d(0,-16px,0)}}
@keyframes menuEnter{0%{opacity:0;transform:translate3d(0,-14px,0) scale(.9) perspective(800px) rotateX(-6deg);filter:blur(10px)}60%{opacity:1;filter:blur(0)}100%{opacity:1;transform:translate3d(0,0,0) scale(1) perspective(800px) rotateX(0);filter:blur(0)}}
@keyframes menuItemEnter{0%{opacity:0;transform:translate3d(0,-8px,0) scale(.96)}100%{opacity:1;transform:translate3d(0,0,0) scale(1)}}
@keyframes tabShine{0%{transform:translate3d(-100%,0,0)}60%,100%{transform:translate3d(100%,0,0)}}
#loadingScreen::before{content:"";position:absolute;inset:-35%;background:radial-gradient(circle at 50% 50%,rgba(37,99,235,.16),transparent 30%),radial-gradient(circle at 30% 65%,rgba(96,165,250,.08),transparent 25%);animation:loaderAmbient 5s ease-in-out infinite alternate;will-change:transform,opacity}
#loadingScreen::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 20%,rgba(255,255,255,.035) 48%,rgba(96,165,250,.055) 50%,transparent 65%);transform:translate3d(-100%,0,0);animation:loaderSheen 2.8s cubic-bezier(.16,1,.3,1) infinite;will-change:transform}
.loader-content{position:relative;z-index:2;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.15rem;will-change:transform,opacity}
.loader-stage{position:relative;width:148px;height:148px;display:grid;place-items:center}
.loader-stage::before{content:"";position:absolute;width:118px;height:118px;border-radius:50%;background:radial-gradient(circle,rgba(96,165,250,.22),rgba(37,99,235,.08) 42%,transparent 72%);animation:loaderHalo 2.6s ease-in-out infinite}
.loader-orbit{position:absolute;border:1px solid rgba(96,165,250,.22);border-radius:50%;transform:rotate(-18deg);will-change:transform}
.loader-orbit.one{width:132px;height:58px;animation:loaderOrbitA 3.2s cubic-bezier(.45,.05,.55,.95) infinite}
.loader-orbit.two{width:58px;height:132px;animation:loaderOrbitB 4s cubic-bezier(.45,.05,.55,.95) infinite}
.loader-orbit.three{width:108px;height:108px;border-color:rgba(255,255,255,.08);animation:loaderOrbitC 5.5s linear infinite}
.loader-orbit::after{content:"";position:absolute;width:6px;height:6px;left:50%;top:-3px;border-radius:50%;background:#93c5fd;box-shadow:0 0 18px 5px rgba(96,165,250,.6)}
.loader-mark{position:relative;z-index:2;width:68px;height:68px;border-radius:21px;background:linear-gradient(135deg,#2563eb 0%,#60a5fa 100%);display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 20px 60px rgba(37,99,235,.38),0 0 40px rgba(96,165,250,.18);animation:markFloat 2.4s cubic-bezier(.45,.05,.55,.95) infinite;will-change:transform}
.loader-mark::after{content:"";position:absolute;inset:-40%;background:linear-gradient(120deg,transparent 38%,rgba(255,255,255,.48) 50%,transparent 62%);transform:translate3d(-55%,0,0);animation:markShine 2.2s cubic-bezier(.16,1,.3,1) infinite}
.loader-mark img{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit}
.loader-dots{display:flex;gap:.5rem;align-items:center;justify-content:center;margin-top:.1rem}
.loader-dots span{width:6px;height:6px;border-radius:50%;background:#93c5fd;box-shadow:0 0 12px rgba(96,165,250,.55);animation:dotFlow 1.35s cubic-bezier(.45,.05,.55,.95) infinite;will-change:transform,opacity}
.loader-dots span:nth-child(2){animation-delay:.16s}
.loader-dots span:nth-child(3){animation-delay:.32s}
.loader-name{font-size:.82rem;font-weight:750;letter-spacing:.22em;color:rgba(255,255,255,.78);text-transform:uppercase;opacity:.92}
.loader-status{width:112px;height:2px;border-radius:99px;overflow:hidden;background:rgba(255,255,255,.07);position:relative}
.loader-status::after{content:"";position:absolute;inset:0;width:42%;border-radius:inherit;background:linear-gradient(90deg,transparent,#60a5fa,#dbeafe,transparent);animation:loaderProgress 1.65s cubic-bezier(.45,.05,.55,.95) infinite}
.auto-fade-in{animation:fadeInUp .5s var(--ease) both}
.auto-fade-in-soft{animation:fadeInSoft .42s var(--ease) both}
.auto-fade-in-scale{animation:fadeInScale .5s var(--ease) both}
.auto-fade-in-blur{animation:blurFadeIn .55s var(--ease) both}
.auto-fade-out{animation:fadeOutDown .22s var(--ease-soft) both}
.auto-fade-out-soft{animation:fadeOutSoft .2s var(--ease-soft) both}
.auto-fade-out-scale{animation:fadeOutScale .22s var(--ease-soft) both}
.auto-fade-out-blur{animation:blurFadeOut .25s var(--ease-soft) both}
.year-block-fade-in{animation:blurFadeIn .52s var(--ease) both}
.year-block-fade-out{animation:blurFadeOut .22s var(--ease-soft) both}
.panel-fade-in{animation:fadeInScale .5s var(--ease) both}
.panel-fade-out{animation:fadeOutScale .2s var(--ease-soft) both}
.student-year-tab{position:relative;overflow:hidden}
.student-year-tab::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent,rgba(96,165,250,.18),transparent);transform:translate3d(-100%,0,0);pointer-events:none}
.student-year-tab.active::after{animation:tabShine 1.8s var(--ease) infinite}
.res-table tbody tr{animation:fadeInUp .4s var(--ease) both}
.res-table tbody tr:nth-child(1){animation-delay:.02s}
.res-table tbody tr:nth-child(2){animation-delay:.04s}
.res-table tbody tr:nth-child(3){animation-delay:.06s}
.res-table tbody tr:nth-child(4){animation-delay:.08s}
.res-table tbody tr:nth-child(5){animation-delay:.1s}
.res-table tbody tr:nth-child(6){animation-delay:.12s}
.res-table tbody tr:nth-child(7){animation-delay:.14s}
.res-table tbody tr:nth-child(8){animation-delay:.16s}
.res-table tbody tr:nth-child(9){animation-delay:.18s}
.res-table tbody tr:nth-child(10){animation-delay:.2s}
.res-table tbody tr:nth-child(n+11){animation-delay:.22s}
.peer-chip,.device-badge,.badge{animation:fadeInScale .42s var(--ease) both}
.btn-main,.btn-ghost,.btn-sm,.icon-btn,.lang-toggle-btn,.nav-link,.admin-tools-item,.user-tools-item{position:relative;overflow:hidden}
.btn-main::before,.btn-ghost::before,.btn-sm::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--ripple-x,50%) var(--ripple-y,50%),rgba(255,255,255,.25),transparent 60%);opacity:0;pointer-events:none;transition:opacity .5s var(--ease)}
.btn-main:active::before,.btn-ghost:active::before,.btn-sm:active::before{opacity:1;transition:opacity .15s ease}
.lang-menu,.custom-select-menu,.role-picker-menu,.admin-tools-menu,.user-tools-menu{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translate3d(0,-14px,0) scale(.9) perspective(800px) rotateX(-6deg)!important;filter:blur(10px)!important;transition:opacity .42s cubic-bezier(.16,1,.3,1),visibility .42s cubic-bezier(.16,1,.3,1),transform .52s cubic-bezier(.16,1,.3,1),filter .42s cubic-bezier(.16,1,.3,1)!important;transform-origin:top center!important;will-change:transform,opacity,filter!important}
[dir="rtl"] .lang-menu,[dir="rtl"] .custom-select-menu,[dir="rtl"] .role-picker-menu,[dir="rtl"] .admin-tools-menu,[dir="rtl"] .user-tools-menu{transform-origin:top center!important}
.lang-menu.open,.custom-select.open .custom-select-menu,.custom-select-menu.open,.role-picker-menu.open,.admin-tools-dropdown.open .admin-tools-menu,.user-tools-dropdown.open .user-tools-menu{opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:translate3d(0,0,0) scale(1) perspective(800px) rotateX(0)!important;filter:blur(0)!important;animation:menuEnter .55s cubic-bezier(.16,1,.3,1) both!important}
.lang-menu.open .lang-option,.custom-select.open .custom-select-menu .custom-select-option,.custom-select-menu.open .custom-select-option,.role-picker-menu.open .role-picker-option,.admin-tools-dropdown.open .admin-tools-menu .admin-tools-item,.user-tools-dropdown.open .user-tools-menu .user-tools-item{animation:menuItemEnter .42s cubic-bezier(.16,1,.3,1) both}
.lang-menu.open .lang-option:nth-child(1),.custom-select.open .custom-select-menu .custom-select-option:nth-child(1),.role-picker-menu.open .role-picker-option:nth-child(1),.admin-tools-dropdown.open .admin-tools-menu .admin-tools-item:nth-child(1),.user-tools-dropdown.open .user-tools-menu .user-tools-item:nth-child(1){animation-delay:.04s}
.lang-menu.open .lang-option:nth-child(2),.custom-select.open .custom-select-menu .custom-select-option:nth-child(2),.role-picker-menu.open .role-picker-option:nth-child(2),.admin-tools-dropdown.open .admin-tools-menu .admin-tools-item:nth-child(2),.user-tools-dropdown.open .user-tools-menu .user-tools-item:nth-child(2){animation-delay:.08s}
.lang-menu.open .lang-option:nth-child(3),.custom-select.open .custom-select-menu .custom-select-option:nth-child(3),.role-picker-menu.open .role-picker-option:nth-child(3),.admin-tools-dropdown.open .admin-tools-menu .admin-tools-item:nth-child(3),.user-tools-dropdown.open .user-tools-menu .user-tools-item:nth-child(3){animation-delay:.12s}
.lang-menu.open .lang-option:nth-child(4),.custom-select.open .custom-select-menu .custom-select-option:nth-child(4),.role-picker-menu.open .role-picker-option:nth-child(4),.admin-tools-dropdown.open .admin-tools-menu .admin-tools-item:nth-child(4),.user-tools-dropdown.open .user-tools-menu .user-tools-item:nth-child(4){animation-delay:.16s}
.lang-menu.open .lang-option:nth-child(5),.custom-select.open .custom-select-menu .custom-select-option:nth-child(5),.role-picker-menu.open .role-picker-option:nth-child(5),.admin-tools-dropdown.open .admin-tools-menu .admin-tools-item:nth-child(5),.user-tools-dropdown.open .user-tools-menu .user-tools-item:nth-child(5){animation-delay:.2s}
.lang-menu.open .lang-option:nth-child(6),.custom-select.open .custom-select-menu .custom-select-option:nth-child(6),.role-picker-menu.open .role-picker-option:nth-child(6),.admin-tools-dropdown.open .admin-tools-menu .admin-tools-item:nth-child(6),.user-tools-dropdown.open .user-tools-menu .user-tools-item:nth-child(6){animation-delay:.24s}
.lang-menu.open .lang-option:nth-child(n+7),.custom-select.open .custom-select-menu .custom-select-option:nth-child(n+7),.role-picker-menu.open .role-picker-option:nth-child(n+7),.admin-tools-dropdown.open .admin-tools-menu .admin-tools-item:nth-child(n+7),.user-tools-dropdown.open .user-tools-menu .user-tools-item:nth-child(n+7){animation-delay:.28s}
#loadingScreen.hidden{opacity:0!important;visibility:hidden!important;pointer-events:none!important;display:none!important}
html.low-end .loader-status::after{width:100%!important;transform:none!important;background:#60a5fa!important;opacity:.8}
html.low-end #loadingScreen{background:#050911}
html.low-end .glass,html.low-end .stat-card,html.low-end .notif-card,html.low-end .nav-inner,html.low-end #breadcrumb,html.low-end .modal-box{box-shadow:0 4px 16px -12px rgba(0,0,0,.45)!important}
@media (prefers-reduced-motion:reduce){
  #loadingScreen::before,#loadingScreen::after,.loader-orbit,.loader-stage::before,.loader-mark,.loader-mark::after,.loader-dots span,.loader-status::after{animation:none!important}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .auto-fade-in,.auto-fade-in-soft,.auto-fade-in-scale,.auto-fade-in-blur,.auto-fade-out,.auto-fade-out-soft,.auto-fade-out-scale,.auto-fade-out-blur,.year-block-fade-in,.year-block-fade-out,.panel-fade-in,.panel-fade-out,.view-entering,.view-leaving,.res-table tbody tr,.peer-chip,.device-badge,.badge,.lang-menu,.custom-select-menu,.role-picker-menu,.admin-tools-menu,.user-tools-menu{animation-duration:.01ms!important;animation-iteration-count:1!important}
}
@keyframes rowSlideIn{from{opacity:0;transform:translate3d(0,-10px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes valueFlash{0%{transform:scale(1);filter:brightness(1)}40%{transform:scale(1.09);filter:brightness(1.4)}100%{transform:scale(1);filter:brightness(1)}}
@keyframes valueFlashLight{0%{transform:scale(1);filter:brightness(1)}40%{transform:scale(1.09);filter:brightness(.78)}100%{transform:scale(1);filter:brightness(1)}}
@keyframes statPop{0%{transform:scale(1)}50%{transform:scale(1.06)}100%{transform:scale(1)}}
@keyframes notifSlide{from{opacity:0;transform:translate3d(-10px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes menuStagger{from{opacity:0;transform:translate3d(0,-6px,0) scale(.97)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}
@keyframes modalContentIn{0%{opacity:0;transform:scale(.92) translate3d(0,22px,0)}100%{opacity:1;transform:scale(1) translate3d(0,0,0)}}
@keyframes glowPulse{0%,100%{box-shadow:0 0 0 0 rgba(96,165,250,0)}50%{box-shadow:0 0 22px 4px rgba(96,165,250,.32)}}
@keyframes successRipple{0%{box-shadow:0 0 0 0 rgba(96,165,250,.45)}100%{box-shadow:0 0 0 22px rgba(96,165,250,0)}}
@keyframes shimmerSweep{0%{transform:translate3d(-100%,0,0)}100%{transform:translate3d(100%,0,0)}}
@keyframes vtFadeOut{from{opacity:1;transform:translate3d(0,0,0)}to{opacity:0;transform:translate3d(0,-14px,0)}}
@keyframes vtFadeIn{from{opacity:0;transform:translate3d(0,18px,0) scale(.98)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}
.value-flash{animation:valueFlash .5s cubic-bezier(.22,1,.36,1);will-change:transform,filter}
[data-theme="light"] .value-flash{animation-name:valueFlashLight}
.stat-pop{animation:statPop .42s cubic-bezier(.22,1,.36,1);will-change:transform}
.row-slide-in{animation:rowSlideIn .42s cubic-bezier(.22,1,.36,1) both;will-change:transform,opacity}
.notif-slide-in{animation:notifSlide .38s cubic-bezier(.22,1,.36,1) both;will-change:transform,opacity}
.menu-stagger-item{animation:menuStagger .34s cubic-bezier(.22,1,.36,1) both;will-change:transform,opacity}
.modal-content-in{animation:modalContentIn .5s cubic-bezier(.22,1,.36,1) both;will-change:transform,opacity}
.glow-pulse{animation:glowPulse 1.4s ease-in-out infinite}
.success-ripple{animation:successRipple .8s cubic-bezier(.22,1,.36,1)}
.shimmer-sweep{position:relative;overflow:hidden}
.shimmer-sweep::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 32%,rgba(96,165,250,.18) 50%,transparent 68%);animation:shimmerSweep 1.6s cubic-bezier(.45,.05,.55,.95) infinite;pointer-events:none}
::view-transition-old(root){animation:vtFadeOut .32s cubic-bezier(.4,0,.2,1) both}
::view-transition-new(root){animation:vtFadeIn .5s cubic-bezier(.22,1,.36,1) both}
html.anim-off ::view-transition-old(root),html.anim-off ::view-transition-new(root){animation:none!important}
#simulTable input{transition:border-color .28s cubic-bezier(.22,1,.36,1),box-shadow .3s cubic-bezier(.22,1,.36,1),background .25s ease,transform .2s cubic-bezier(.22,1,.36,1);will-change:transform}
#simulTable input:focus{transform:translate3d(0,-1px,0) scale(1.02);border-color:var(--teal-bright);box-shadow:0 0 0 3px rgba(96,165,250,.18),0 4px 18px -8px rgba(37,99,235,.55)}
#sim_moy_gen,[id^="sim_moy_"]{transition:color .35s cubic-bezier(.22,1,.36,1),text-shadow .35s ease;display:inline-block}
#sim_moy_gen.value-flash,[id^="sim_moy_"].value-flash{text-shadow:0 0 18px rgba(96,165,250,.7)}
.peer-detail-wrapper{transition:max-height .55s cubic-bezier(.22,1,.36,1),opacity .35s ease}
#modulesBody tr,#modulesBody3eme tr,#modulesBody2eme tr{transition:background .3s ease}
#modulesBody tr:hover td,#modulesBody3eme tr:hover td,#modulesBody2eme tr:hover td{background:rgba(96,165,250,.06)}
#moduleRankingTable tbody tr{animation:rowSlideIn .38s cubic-bezier(.22,1,.36,1) both}
#notifsList .notif-card{animation:notifSlide .36s cubic-bezier(.22,1,.36,1) both}
#messagesList .glass{animation:notifSlide .34s cubic-bezier(.22,1,.36,1) both}
.admin-tools-dropdown.open .admin-tools-item,.user-tools-dropdown.open .user-tools-item{animation:menuStagger .32s cubic-bezier(.22,1,.36,1) both}
.admin-tools-dropdown.open .admin-tools-item:nth-child(1),.user-tools-dropdown.open .user-tools-item:nth-child(1){animation-delay:.02s}
.admin-tools-dropdown.open .admin-tools-item:nth-child(2),.user-tools-dropdown.open .user-tools-item:nth-child(2){animation-delay:.05s}
.admin-tools-dropdown.open .admin-tools-item:nth-child(3),.user-tools-dropdown.open .user-tools-item:nth-child(3){animation-delay:.08s}
.admin-tools-dropdown.open .admin-tools-item:nth-child(4),.user-tools-dropdown.open .user-tools-item:nth-child(4){animation-delay:.11s}
.admin-tools-dropdown.open .admin-tools-item:nth-child(5),.user-tools-dropdown.open .user-tools-item:nth-child(5){animation-delay:.14s}
.modal-overlay:not(.hidden) .modal-box{animation:modalContentIn .5s cubic-bezier(.22,1,.36,1) both}
.lang-menu.open .lang-option,.custom-select-menu.open .custom-select-option,.role-picker-menu.open .role-picker-option{animation:menuStagger .32s cubic-bezier(.22,1,.36,1) both}
.stat-card:hover .stat-val{transition:transform .4s cubic-bezier(.22,1,.36,1),color .3s ease;transform:scale(1.03)}
.btn-main:not(:disabled):active,.btn-ghost:not(:disabled):active,.btn-sm:not(:disabled):active{transition:transform .08s cubic-bezier(.4,0,.2,1)}
#studentName,#adminTotalStudents,#statMoy,#statRank,#statTotal,#statMoy3eme,#statRank3eme,#statMoy2eme,#statRank2eme,#statMoy1eme,#statRank1eme{transition:color .3s ease,transform .35s cubic-bezier(.22,1,.36,1)}
html.anim-off .value-flash,html.anim-off .stat-pop,html.anim-off .row-slide-in,html.anim-off .notif-slide-in,html.anim-off .menu-stagger-item,html.anim-off .modal-content-in,html.anim-off .glow-pulse,html.anim-off .success-ripple,html.anim-off .shimmer-sweep::after{animation:none!important}
html.anim-off #moduleRankingTable tbody tr,html.anim-off #notifsList .notif-card,html.anim-off #messagesList .glass{animation:none!important}
html.low-end .value-flash,html.low-end .stat-pop,html.low-end .row-slide-in,html.low-end .notif-slide-in,html.low-end .menu-stagger-item,html.low-end .modal-content-in{animation-duration:.25s!important}
@media (prefers-reduced-motion:reduce){.value-flash,.stat-pop,.row-slide-in,.notif-slide-in,.menu-stagger-item,.modal-content-in,.glow-pulse,.success-ripple,.shimmer-sweep::after,#moduleRankingTable tbody tr,#notifsList .notif-card,#messagesList .glass{animation:none!important}#simulTable input:focus{transform:none}}
@media (pointer:coarse){#simulTable input:focus{transform:none}.stat-card:hover .stat-val{transform:none}}
