/* ROSES v24ETG2W — Global No Flicker Stabilizer
   Prinsip: jangan sorok body/content; matikan transition/animation semasa boot sahaja. */
:root{--roses-no-flicker:v24ETG2W;}
html.roses-noflicker-boot,html.roses-noflicker-boot body{visibility:visible!important;opacity:1!important;}
html.roses-noflicker-boot *,html.roses-noflicker-boot *::before,html.roses-noflicker-boot *::after{transition:none!important;animation:none!important;scroll-behavior:auto!important;}
/* Spinner rasmi ROSES ialah lapisan boot; animasi orbitnya mesti kekal hidup. */
html.roses-noflicker-boot #roses-spinner-loader .roses-spinner-ring--outer{animation:roses-spinner-turn 12s linear infinite!important;}
html.roses-noflicker-boot #roses-spinner-loader .roses-spinner-ring--middle{animation:roses-spinner-turn-reverse 16s linear infinite!important;}
html.roses-noflicker-boot #roses-spinner-loader .roses-spinner-arc--gold{animation:roses-spinner-orbit-gold 2.8s ease-in-out infinite alternate!important;}
html.roses-noflicker-boot #roses-spinner-loader .roses-spinner-arc--blue{animation:roses-spinner-orbit-blue 4.8s linear infinite!important;}
html.roses-noflicker-boot #roses-spinner-loader .roses-spinner-dot{animation:roses-spinner-pulse 1.7s ease-in-out infinite!important;}
html.roses-noflicker-boot #roses-spinner-loader[data-indeterminate="1"] .roses-spinner-progress{animation:roses-spinner-progress 1.2s ease-in-out infinite!important;}
html.roses-noflicker-boot #roses-spinner-loader .roses-spinner-typing i{animation:roses-spinner-typing 1.1s ease-in-out infinite!important;}
html.roses-noflicker-boot .page-loader:not([data-keep-loader]),
html.roses-noflicker-boot .roses-loader:not([data-keep-loader]),
html.roses-noflicker-boot .skeleton-screen:not([data-keep-loader]){display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important;}
#roses-spinner-loader[data-keep-loader]{visibility:visible!important;opacity:1!important;pointer-events:auto!important;}
body.erph-harian-2-page.erph2-booting #rphTabsContent,
body.erph-harian-2-page.erph2-booting .tab-content,
body.erph-harian-2-page.erph2-booting [id^="container-"]{visibility:visible!important;opacity:1!important;}
body.erph-harian-2-page.erph2-booting .rph-card::after{display:none!important;content:""!important;}
html.upload-xml-booting body{visibility:visible!important;opacity:1!important;}
html.upload-xml-booting .upload-xml-compact{visibility:visible!important;opacity:1!important;}
body.sar-auto-relif-page,body[data-page-title="Jadual Induk Relief"],body.roses-app-home{visibility:visible!important;opacity:1!important;}
/* Debug/developer UI is allowed to beat the production guard only after explicit opt-in. */
html[data-roses-debug-opt-in="1"] body .roses-rdm-root{display:block!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important;max-height:none!important;overflow:visible!important;}
html[data-roses-debug-opt-in="1"] body .roses-rdm-root .roses-rdm-btn{display:inline-flex!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important;max-height:none!important;overflow:visible!important;}
html[data-roses-debug-opt-in="1"] body .roses-rdm-root .roses-rdm-panel{visibility:visible!important;opacity:1!important;pointer-events:auto!important;max-height:min(74vh,650px)!important;overflow:hidden!important;}
html[data-roses-debug-opt-in="1"] body .roses-rdm-root:not(.is-open) .roses-rdm-panel{display:none!important;}
html[data-roses-debug-opt-in="1"] body .roses-rdm-root.is-open .roses-rdm-panel{display:block!important;}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}}
@media print{.roses-rdm-root{display:none!important}}
