/* Shared GPS route / location tracking splash for public and admin pages. */
body.page-loading { overflow: hidden; }
.site-loader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: grid;
  place-items: center;
  padding: 24px;
  background:
    radial-gradient(ellipse 58% 52% at 72% 24%, rgba(195,132,96,.13), transparent 70%),
    radial-gradient(ellipse 45% 44% at 20% 80%, rgba(161,78,49,.055), transparent 75%),
    #fcfaf8;
  color: #242326;
  opacity: 1;
  visibility: visible;
  transition: opacity .45s ease, visibility .45s ease;
  isolation: isolate;
}
.site-loader.is-finished {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.loader-shell { width: min(430px, 95vw); text-align: center; }
.loader-monogram {
  display: inline-grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid #e5c5b3;
  border-radius: 11px;
  color: #a14e31;
  background: #fff8f3;
  font: 800 19px/1 "Manrope",system-ui,sans-serif;
  letter-spacing: -.11em;
  padding-right: 3px;
}
.loader-company {
  font: 800 15px/1.5 "Manrope",system-ui,sans-serif;
  margin: 15px 0 5px;
  color: #813721;
  letter-spacing: .12em;
}
.loader-company-sub { font: 700 9px/1.5 "DM Sans",system-ui,sans-serif; letter-spacing: .18em; color: #9d8a80; }
.loader-route {
  display: block;
  width: 100%;
  max-width: 430px;
  height: auto;
  margin: 20px auto 3px;
  overflow: visible;
}
.loader-map-grid { fill: #d9c8be; opacity: .3; }
.loader-base-path { fill: none; stroke: #dfcdc2; stroke-width: 3; stroke-linecap: round; stroke-dasharray: 5 8; }
.loader-active-path { fill: none; stroke: #a14e31; stroke-width: 3.2; stroke-linecap: round; stroke-dasharray: 11 9; animation: aj-loader-route 2.5s linear infinite; }
.loader-start-ring { fill: #fff; stroke: #b97856; stroke-width: 2; }
.loader-destination-halo { fill: rgba(161,78,49,.12); transform-box: fill-box; transform-origin: center; animation: aj-loader-pulse 2.8s ease-in-out infinite; }
.loader-destination-ring { fill: #a14e31; stroke: #fff; stroke-width: 4; }
.loader-moving-halo { fill: #a14e31; opacity: .12; }
.loader-moving-marker { fill: #a14e31; stroke: #fff; stroke-width: 3; }
.loader-map-label { font: 700 10px/1 "DM Sans",system-ui,sans-serif; letter-spacing: .11em; fill: #6f6b68; }
.loader-route-heading {
  font: 800 clamp(19px,4vw,24px)/1.3 "Manrope",system-ui,sans-serif;
  letter-spacing: -.045em;
  margin: 0 0 7px;
}
.loader-subheading { font: 500 12px/1.5 "DM Sans",system-ui,sans-serif; color: #81766e; letter-spacing: .04em; margin: 0; }
.loader-progress {
  position: relative;
  overflow: hidden;
  background: #e9e0da;
  width: min(190px, 70%);
  height: 3px;
  border-radius: 5px;
  margin: 25px auto 0;
}
.loader-progress::before {
  content: "";
  position: absolute;
  inset: 0;
  width: 40%;
  background: linear-gradient(90deg, #c98e70, #a14e31);
  border-radius: inherit;
  animation: aj-loader-progress 1.8s cubic-bezier(.4,0,.2,1) infinite;
}
@keyframes aj-loader-route { to { stroke-dashoffset: -80; } }
@keyframes aj-loader-pulse { 0%,100% { opacity: .4; transform: scale(.85); } 50% { opacity: 1; transform: scale(1.22); } }
@keyframes aj-loader-progress { 0% { transform: translateX(-120%); } 100% { transform: translateX(390%); } }
@media (max-width: 480px) {
  .loader-shell { width: min(355px,95vw); }
  .loader-route { margin-top: 13px; margin-bottom: 0; }
  .loader-route-heading { font-size: 19px; }
}
@media (prefers-reduced-motion: reduce) {
  .site-loader { transition: none; }
  .loader-active-path,.loader-destination-halo,.loader-progress::before { animation: none; }
  .loader-moving-tracker { display: none; }
  .loader-progress::before { width: 100%; transform: none; }
}
