/* Loading bulat dengan logo di tengah (MySMAPAL). Warna mengikuti warna dasar tema (--primary). */
.loader-logo { position: relative; width: 104px; height: 104px; }
.loader-logo__ring { position: absolute; inset: 0; border-radius: 50%; border: 4px solid rgba(3, 169, 244, .18); border-top-color: var(--primary, #03a9f4); border-right-color: var(--primary-hover, #039be5); animation: loader-logo-spin .9s linear infinite; }
.loader-logo__img { position: absolute; inset: 14px; width: calc(100% - 28px); height: calc(100% - 28px); object-fit: contain; border-radius: 50%; animation: loader-logo-pulse 1.8s ease-in-out infinite; }
.loader-logo__text { margin-top: 18px; text-align: center; font-weight: 600; font-size: .85rem; letter-spacing: .5px; color: var(--primary-dark, #01579b); }
#preloader { flex-direction: column; }
[data-theme-version="dark"] .loader-logo__ring { border-color: rgba(255, 255, 255, .15); border-top-color: var(--primary, #03a9f4); border-right-color: var(--primary-hover, #039be5); }
[data-theme-version="dark"] .loader-logo__text { color: #fff; }
@keyframes loader-logo-spin { to { transform: rotate(360deg); } }
@keyframes loader-logo-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(.92); } }
@media (prefers-reduced-motion: reduce) { .loader-logo__ring, .loader-logo__img { animation-duration: 3s; } }

/* Preloader halaman: seragam dengan overlay MyLoading (latar hampir transparan, hanya logo + putaran + teks) */
#preloader { background-color: rgba(255, 255, 255, .18) !important; cursor: progress; }
[data-theme-version="dark"] #preloader { background: rgba(23, 22, 34, .25) !important; }
#preloader .loader-logo__text { text-shadow: 0 0 6px #fff, 0 0 3px #fff; font-weight: 700; }
[data-theme-version="dark"] #preloader .loader-logo__text { text-shadow: 0 0 6px #171622; }
/* isi halaman ikut terlihat di balik overlay selagi memuat (sebelumnya disembunyikan sampai selesai) */
#main-wrapper:not(.show) { opacity: 1; }
