/* WP Hybrid SPA - loading screen. Deep navy backdrop, light card, MedQBank mint accent. */
.wphs-overlay {
	--wphs-navy: #0a1b3d; --wphs-ink: #0f2147; --wphs-mint: #49bc86; --wphs-mint-soft: #bfe6d2; --wphs-muted: #6b7a99; --wphs-track: #dfe6f1;
	font-family: Poppins, Outfit, Inter, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
	position: fixed; inset: 0; z-index: 2147483000; display: flex; align-items: center; justify-content: center; box-sizing: border-box;
	padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
	background:
		radial-gradient(60% 45% at 50% 42%, rgba(46, 94, 170, .55) 0%, rgba(46, 94, 170, 0) 70%),
		radial-gradient(45% 35% at 0% 0%, rgba(30, 64, 120, .55) 0%, rgba(30, 64, 120, 0) 70%),
		linear-gradient(180deg, #1b3a6d 0%, #14305f 38%, #0a1b3d 100%);
	opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility 0s linear .2s;
	-webkit-tap-highlight-color: transparent;
}
.wphs-overlay.wphs-on { opacity: 1; visibility: visible; transition: opacity .2s ease; }
.wphs-ld-card {
	position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: center; gap: 14px; box-sizing: border-box;
	width: min(100%, 440px); padding: 30px clamp(22px, 7vw, 46px) 34px; border-radius: 26px; text-align: center; color: var(--wphs-ink);
	background: linear-gradient(180deg, #fbfdff 0%, #f1f5fb 100%);
	box-shadow: 0 34px 80px rgba(2, 9, 28, .55), 0 6px 18px rgba(2, 9, 28, .25);
	transform: translateY(6px) scale(.985); transition: transform .3s cubic-bezier(.2, .7, .2, 1);
}
.wphs-overlay.wphs-on .wphs-ld-card { transform: none; }
/* soft mint arcs in two opposite corners */
.wphs-ld-card::before, .wphs-ld-card::after { content: ""; position: absolute; width: 86px; height: 86px; border-radius: 50%; border: 12px solid var(--wphs-mint); opacity: .16; pointer-events: none; }
.wphs-ld-card::before { left: -44px; top: -44px; }
.wphs-ld-card::after { right: -44px; bottom: -44px; }
.wphs-ld-brand { font-size: 1.5rem; line-height: 1; font-weight: 600; letter-spacing: .06em; color: var(--wphs-ink); }
.wphs-ld-brand b { font-weight: 800; color: var(--wphs-mint); }
.wphs-ld-brand:empty { display: none; }
.wphs-ld-emblem { position: relative; display: flex; align-items: center; justify-content: center; width: 76px; height: 76px; margin: 6px 0 2px; }
.wphs-ld-emblem svg { position: absolute; inset: 0; display: block; }
.wphs-ld-emblem img { position: relative; display: block; width: 30px; height: auto; }
.wphs-ld-ring-bg { fill: none; stroke: #e4eaf3; stroke-width: 4; }
.wphs-ld-ring { fill: none; stroke: var(--wphs-mint); stroke-width: 4; stroke-linecap: round; stroke-dasharray: 60 116; transform-origin: 38px 38px; animation: wphs-ld-spin 1.4s cubic-bezier(.5, .1, .5, .9) infinite; }
.wphs-overlay-title { font-size: clamp(1.2rem, 4.6vw, 1.5rem); line-height: 1.25; font-weight: 800; letter-spacing: -.005em; color: var(--wphs-ink); }
.wphs-overlay-sub { font-size: clamp(.9rem, 3.4vw, 1rem); color: var(--wphs-muted); }
.wphs-overlay-sub:empty { display: none; }
.wphs-ld-bar { position: relative; display: block; width: 100%; height: 8px; margin-top: 10px; overflow: hidden; border-radius: 8px; background: var(--wphs-track); }
.wphs-ld-bar i { position: absolute; top: 0; bottom: 0; left: 0; width: 40%; border-radius: 8px; background: var(--wphs-mint); animation: wphs-ld-sweep 1.5s cubic-bezier(.45, .05, .35, 1) infinite; }
@keyframes wphs-ld-spin { to { transform: rotate(360deg); } }
@keyframes wphs-ld-sweep { 0% { transform: translateX(-110%); } 100% { transform: translateX(260%); } }
@media (prefers-reduced-motion: reduce) {
	.wphs-overlay, .wphs-ld-card { transition: none; }
	.wphs-ld-ring { animation-duration: 3.4s; }
	.wphs-ld-bar i { animation-duration: 3.2s; }
}
@media (min-width: 900px) { .wphs-ld-card { width: 480px; padding-top: 36px; padding-bottom: 40px; } .wphs-ld-emblem { width: 88px; height: 88px; } .wphs-ld-emblem img { width: 36px; } }
@media (max-width: 360px) { .wphs-ld-brand { font-size: 1.3rem; } }
