.gflc-confirmation-wrapper,
.gflc-confirmation-message {
    margin: 0 !important;
    padding: 0 !important;
}

.gflc-modal {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(var(--gflc-overlay-rgb, 51, 39, 82), var(--gflc-overlay-opacity, .42));
    backdrop-filter: blur(var(--gflc-blur, 8px));
    -webkit-backdrop-filter: blur(var(--gflc-blur, 8px));
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .3s ease, visibility .3s ease;
    box-sizing: border-box;
}

.gflc-modal.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.gflc-card {
    position: relative;
    width: 100%;
    max-width: var(--gflc-max-width, 520px);
    padding: 46px 38px 38px;
    text-align: center;
    background: var(--gflc-card-bg, #fff);
    color: var(--gflc-text, #52525b);
    border: var(--gflc-border-width, 1px) solid var(--gflc-border, #e5e7eb);
    border-radius: var(--gflc-radius, 28px);
    box-shadow: var(--gflc-shadow, 0 30px 80px -25px rgba(51,39,82,.45));
    opacity: 0;
    transform: translateY(24px) scale(.96);
    transition: opacity .4s ease, transform .4s cubic-bezier(.2,.7,.3,1);
    font-family: var(--gflc-font, inherit);
    box-sizing: border-box;
}

.gflc-modal.is-visible .gflc-card {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.gflc-close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: var(--gflc-border-width, 1px) solid var(--gflc-border, transparent);
    border-radius: 50%;
    background: var(--gflc-close-bg, #f4f4f5);
    color: var(--gflc-close, #6b7280);
    cursor: pointer;
    transition: background .25s ease, color .25s ease, transform .2s ease, box-shadow .25s ease;
    box-sizing: border-box;
}

.gflc-close:hover { transform: rotate(90deg); }
.gflc-close:active { transform: scale(.92); }
.gflc-close:focus-visible,
.gflc-manual-download:focus-visible { outline: 3px solid var(--gflc-loader, #8fb8f6); outline-offset: 3px; }
.gflc-close svg { width: 18px; height: 18px; pointer-events: none; }

.gflc-icon {
    width: 82px;
    height: 82px;
    margin: 0 auto 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gflc-icon, #1c7a4a);
    background: var(--gflc-icon-bg, #b9f8cf);
    border-radius: 50%;
    transform: scale(0);
}

.gflc-modal.is-visible .gflc-icon {
    animation: gflcIconIn .5s .2s forwards cubic-bezier(.2,.8,.3,1.3);
}

.gflc-icon svg { width: 42px; height: 42px; }

.gflc-card h3 {
    margin: 0 0 12px !important;
    color: var(--gflc-title, #332752) !important;
    font-family: var(--gflc-font, inherit) !important;
    font-size: clamp(1.35rem, 3vw, 1.8rem) !important;
    font-weight: 700;
    line-height: 1.3;
}

.gflc-description,
.gflc-description p {
    color: var(--gflc-text, #52525b) !important;
    font-family: var(--gflc-font, inherit) !important;
    font-size: 1rem !important;
    line-height: 1.65 !important;
}

.gflc-description p { margin: 0 !important; }
.gflc-description p + p { margin-top: 10px !important; }

.gflc-manual-download {
    display: inline-block;
    margin-top: 20px;
    color: var(--gflc-text, #52525b) !important;
    font-family: var(--gflc-font, inherit) !important;
    font-size: .95rem;
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid var(--gflc-loader, #8fb8f6);
}

.gflc-loader {
    width: 100%;
    height: 5px;
    margin-top: 30px;
    overflow: hidden;
    background: var(--gflc-loader-track, #f0f0f2);
    border-radius: 999px;
}

.gflc-loader span {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--gflc-loader, #8fb8f6);
    border-radius: inherit;
    transform: scaleX(0);
    transform-origin: left center;
}

.gflc-modal.is-visible .gflc-loader span {
    animation-name: gflcLoader;
    animation-timing-function: linear;
    animation-fill-mode: forwards;
}

body.gflc-modal-open { overflow: hidden !important; }

@keyframes gflcIconIn { to { transform: scale(1); } }
@keyframes gflcLoader { from { transform: scaleX(0); } to { transform: scaleX(1); } }

@media (max-width: 600px) {
    .gflc-modal { padding: 18px; }
    .gflc-card { padding: 46px 24px 30px; border-radius: min(var(--gflc-radius, 28px), 24px); }
    .gflc-close { top: 14px; right: 14px; width: 38px; height: 38px; }
    .gflc-icon { width: 72px; height: 72px; }
    .gflc-icon svg { width: 36px; height: 36px; }
}

@media (prefers-reduced-motion: reduce) {
    .gflc-modal,
    .gflc-card,
    .gflc-close { transition: none !important; }
    .gflc-modal.is-visible .gflc-icon,
    .gflc-modal.is-visible .gflc-loader span { animation-duration: .001ms !important; animation-delay: 0ms !important; }
}
