/* Phase 11: Global page transition loader for LMS reload/navigation actions. */
:root{
  --lms-loader-bg: rgba(2, 8, 18, .78);
  --lms-loader-card: rgba(8, 20, 35, .94);
  --lms-loader-line: rgba(255,255,255,.14);
  --lms-loader-text: #f6fbff;
  --lms-loader-muted: #b4c7d9;
  --lms-loader-cyan: #37f0d0;
  --lms-loader-blue: #58a6ff;
  --lms-loader-gold: #ffd36a;
}
.lms-page-loader{
  position:fixed;
  inset:0;
  z-index:2147482600;
  display:none;
  align-items:center;
  justify-content:center;
  padding:22px;
  background:
    radial-gradient(circle at 24% 20%, rgba(55,240,208,.18), transparent 30%),
    radial-gradient(circle at 78% 25%, rgba(88,166,255,.16), transparent 30%),
    var(--lms-loader-bg);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.lms-page-loader.show{display:flex;}
.lms-page-loader-card{
  width:min(440px, calc(100vw - 32px));
  border:1px solid var(--lms-loader-line);
  border-radius:28px;
  background:linear-gradient(145deg, var(--lms-loader-card), rgba(5,14,26,.98));
  color:var(--lms-loader-text);
  box-shadow:0 35px 110px rgba(0,0,0,.48);
  padding:26px;
  text-align:left;
  overflow:hidden;
  position:relative;
}
.lms-page-loader-card::before{
  content:"";
  position:absolute;
  inset:-90px auto auto -80px;
  width:190px;
  height:190px;
  border-radius:999px;
  background:rgba(55,240,208,.16);
  filter:blur(4px);
}
.lms-page-loader-top{
  position:fixed;
  left:0;
  top:0;
  width:100%;
  height:4px;
  z-index:2147482601;
  display:none;
  overflow:hidden;
  background:rgba(255,255,255,.08);
}
.lms-page-loader.show .lms-page-loader-top{display:block;}
.lms-page-loader-top span{
  display:block;
  width:42%;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg, var(--lms-loader-cyan), var(--lms-loader-blue), var(--lms-loader-gold));
  animation:lmsLoaderSlide 1.05s ease-in-out infinite;
}
.lms-page-loader-spinner{
  width:58px;
  height:58px;
  border-radius:999px;
  border:5px solid rgba(255,255,255,.12);
  border-top-color:var(--lms-loader-cyan);
  border-right-color:var(--lms-loader-gold);
  box-shadow:0 0 38px rgba(55,240,208,.18);
  animation:lmsLoaderSpin .82s linear infinite;
  position:relative;
  z-index:1;
}
.lms-page-loader-row{
  display:flex;
  gap:16px;
  align-items:center;
  position:relative;
  z-index:1;
}
.lms-page-loader-title{
  margin:0 0 4px;
  font-size:18px;
  line-height:1.2;
  font-weight:1000;
  letter-spacing:-.02em;
}
.lms-page-loader-text{
  margin:0;
  color:var(--lms-loader-muted);
  line-height:1.45;
  font-size:14px;
  font-weight:700;
}
.lms-page-loader-dots::after{
  content:"";
  display:inline-block;
  width:1.3em;
  text-align:left;
  animation:lmsLoaderDots 1.2s steps(4,end) infinite;
}
body.lms-is-loading{cursor:progress;}
body.lms-is-loading .lms-fixed-nav a,
body.lms-is-loading .lms-fixed-nav button,
body.lms-is-loading .topbar a,
body.lms-is-loading .topbar button{pointer-events:none;}
@keyframes lmsLoaderSpin{to{transform:rotate(360deg)}}
@keyframes lmsLoaderSlide{0%{transform:translateX(-110%)}55%{transform:translateX(125%)}100%{transform:translateX(260%)}}
@keyframes lmsLoaderDots{0%{content:""}25%{content:"."}50%{content:".."}75%,100%{content:"..."}}
@media(max-width:540px){
  .lms-page-loader-card{border-radius:22px;padding:22px;}
  .lms-page-loader-row{align-items:flex-start;}
  .lms-page-loader-spinner{width:48px;height:48px;border-width:4px;}
  .lms-page-loader-title{font-size:16px;}
}
