/* Branded startup screen shown while Supabase restores/checks the session. */
body.app-booting > .topbar,
body.app-booting > #bannerHost,
body.app-booting > main,
body.app-booting > .actionbar,
body.app-booting > .toast,
body.app-booting > #printDoc {
  visibility: hidden;
}

.novara-splash {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: 24px;
  background:
    radial-gradient(circle at 18% 18%, rgba(74, 190, 235, .22), transparent 34%),
    radial-gradient(circle at 86% 82%, rgba(0, 133, 202, .20), transparent 36%),
    linear-gradient(145deg, #003d66 0%, #005f8f 52%, #0085ca 100%);
  color: #fff;
  opacity: 1;
  transition: opacity .32s ease, visibility .32s ease;
}

.novara-splash::before,
.novara-splash::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 50%;
  pointer-events: none;
}
.novara-splash::before { width: 460px; height: 460px; top: -250px; right: -130px; }
.novara-splash::after { width: 360px; height: 360px; bottom: -230px; left: -120px; }

.novara-splash.is-leaving {
  opacity: 0;
  visibility: hidden;
}

.novara-splash-card {
  position: relative;
  width: min(440px, 92vw);
  text-align: center;
  padding: 38px 30px 32px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 28px;
  background: rgba(3, 47, 78, .33);
  box-shadow: 0 24px 70px rgba(0, 30, 52, .28);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.novara-splash-mark {
  width: 78px;
  height: 78px;
  margin: 0 auto 20px;
  display: grid;
  place-items: center;
  border-radius: 23px;
  background: #fff;
  color: #0077b5;
  box-shadow: 0 18px 42px rgba(0, 28, 49, .22);
  font-family: 'Archivo', system-ui, sans-serif;
  font-size: 37px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: -.08em;
  transform: translateZ(0);
  animation: novara-mark-in .55s cubic-bezier(.2,.8,.2,1) both;
}

.novara-splash-company {
  margin: 0;
  font-family: 'Archivo', system-ui, sans-serif;
  font-weight: 800;
  font-size: clamp(26px, 5vw, 36px);
  letter-spacing: -.025em;
}

.novara-splash-product {
  margin: 7px 0 26px;
  color: rgba(255,255,255,.74);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .18em;
}

.novara-splash-loader {
  display: flex;
  justify-content: center;
  gap: 7px;
  min-height: 10px;
}

.novara-splash-loader span {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  animation: novara-dot 1.05s ease-in-out infinite;
}
.novara-splash-loader span:nth-child(2) { animation-delay: .13s; }
.novara-splash-loader span:nth-child(3) { animation-delay: .26s; }

.novara-splash-status {
  margin: 13px 0 0;
  color: rgba(255,255,255,.7);
  font-size: 12px;
}

@keyframes novara-dot {
  0%, 60%, 100% { transform: translateY(0); opacity: .45; }
  30% { transform: translateY(-5px); opacity: 1; }
}
@keyframes novara-mark-in {
  from { opacity: 0; transform: translateY(10px) scale(.92); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .novara-splash-mark,
  .novara-splash-loader span { animation: none; }
  .novara-splash { transition: none; }
}
