.upload-overlay[hidden] { display: none; }
.upload-overlay {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: grid;
    place-items: center;
    padding: 1.5rem;
    background: rgba(11, 13, 16, .88);
    backdrop-filter: blur(8px);
    cursor: wait;
}
.upload-overlay-card {
    width: min(520px, 100%);
    padding: 2rem;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 24px;
    background: #15191f;
    color: #fff;
    text-align: center;
    box-shadow: 0 30px 90px rgba(0,0,0,.42);
}
.upload-overlay-card h2 { margin: .9rem 0 .45rem; font-size: 1.6rem; }
.upload-overlay-card p { margin: 0; color: #c7ccd4; }
.upload-spinner {
    width: 52px;
    height: 52px;
    margin: 0 auto;
    border: 5px solid rgba(255,255,255,.18);
    border-top-color: #d8322f;
    border-radius: 50%;
    animation: fastfords-spin .8s linear infinite;
}
.upload-locked { overflow: hidden !important; }
.photo-selection-error {
    margin-top: .6rem;
    padding: .75rem .85rem;
    border: 1px solid rgba(169,45,45,.35);
    border-radius: 10px;
    background: #fff5f4;
    color: #872321;
    font-weight: 700;
}
@keyframes fastfords-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
    .upload-spinner { animation-duration: 1.8s; }
}
