.global-loading { position: fixed; inset: 0; z-index: 10000; pointer-events: none; color: #005a4d; }
.global-loading-progress { height: 4px; overflow: hidden; background: #dceee9; }
.global-loading-progress::after { content: ''; display: block; height: 100%; width: 35%; background: #005a4d; animation: global-loading-progress 1.4s ease-in-out infinite; }
.global-loading-message { position: absolute; bottom: max(24px, env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 14px; width: max-content; max-width: calc(100vw - 32px); padding: 16px 24px; border: 1px solid #c9ded8; border-radius: 12px; background: #fff; box-shadow: 0 8px 32px #131b2e26; font-family: sans-serif; font-size: 14px; font-weight: 600; line-height: 1.6; }
.global-loading-message small { display: block; color: #3e4946; font-size: 12px; font-weight: 400; }
.global-loading-spinner { display: inline-block; flex-shrink: 0; width: 24px; height: 24px; border: 3px solid #dceee9; border-top-color: #005a4d; border-radius: 50%; animation: global-loading-spin .8s linear infinite; }
@keyframes global-loading-spin { to { transform: rotate(360deg); } }
@keyframes global-loading-progress { from { transform: translateX(-100%); } to { transform: translateX(390%); } }
@media (prefers-reduced-motion: reduce) { .global-loading-spinner, .global-loading-progress::after { animation: none; } .global-loading-progress::after { width: 100%; } }
