/* STEP A: common overlay only. No business-flow trigger. */
.jc-loading-overlay {
    --jc-safe-top: env(safe-area-inset-top, 0px);
    --jc-safe-right: env(safe-area-inset-right, 0px);
    --jc-safe-bottom: env(safe-area-inset-bottom, 0px);
    --jc-safe-left: env(safe-area-inset-left, 0px);
    position: fixed;
    inset: 0;
    z-index: 11000;
    background: transparent;
    isolation: isolate;
    display: grid;
    place-items: center;
    overflow: hidden;
    touch-action: none;
    overscroll-behavior: none;
    outline: none;
    color: #fff;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    box-sizing: border-box;
    padding: var(--jc-safe-top) var(--jc-safe-right) var(--jc-safe-bottom) var(--jc-safe-left);
}
.jc-loading-overlay[hidden] { display: none !important; }
.jc-loading-canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
.jc-loading-ui { position: relative; z-index: 2; text-align: center; pointer-events: none; padding: 16px; text-shadow: 0 4px 12px rgba(0,0,0,.5); }
.jc-loading-brand { color: #fff; font-size: 1.2rem; font-weight: 700; letter-spacing: 4px; margin: 0 0 2rem; opacity: .9; }
.jc-loading-progress { font-size: 4rem; font-weight: 800; line-height: 1; margin-bottom: .5rem; }
.jc-loading-percent { font-size: 2rem; color: #ff6b00; margin-left: 4px; }
.jc-loading-label { font-size: .85rem; font-weight: 600; letter-spacing: 3px; color: #ff6b00; margin-bottom: 1.5rem; }
.jc-loading-message { font-size: .95rem; color: rgba(255,255,255,.85); font-weight: 400; max-width: 280px; margin: auto; }
.jc-loading-fallback .jc-loading-ui { background: rgba(18,18,18,.72); border-radius: 20px; }
.jc-loading-manual-close { position: absolute; z-index: 3; top: max(16px, env(safe-area-inset-top)); right: max(16px, env(safe-area-inset-right)); padding: 12px 16px; color: #fff; background: #262626; border: 1px solid #ff6b00; border-radius: 8px; cursor: pointer; }
@media (max-height: 450px) { .jc-loading-brand { margin-bottom: 1rem; } .jc-loading-label { margin-bottom: .75rem; } }
