/* Smart Wait Button - public styles */
.swb-wrapper {
    margin: 16px 0;
    width: 100%;
}
.swb-wrapper[data-align="left"]   { text-align: left; }
.swb-wrapper[data-align="center"] { text-align: center; }
.swb-wrapper[data-align="right"]  { text-align: right; }

.swb-container {
    display: inline-block;
    max-width: 100%;
    vertical-align: top;
}

.swb-btn {
    position: relative;
    border: none;
    cursor: pointer;
    transition: background-color .2s ease, transform .12s ease, opacity .2s ease;
    line-height: 1.2;
    font-family: inherit;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    isolation: isolate;
    min-width: 160px;
}
.swb-btn:active { transform: translateY(1px); }
.swb-btn:disabled {
    cursor: progress;
    opacity: 1;
}
.swb-btn .swb-icon { margin-right: 6px; }
.swb-btn .swb-btn-text {
    position: relative;
    z-index: 2;
    display: inline-block;
}
.swb-btn .swb-btn-fill {
    position: absolute;
    inset: 0 auto 0 0;
    width: 0%;
    z-index: 1;
    transition: width .9s linear;
    opacity: .9;
}
.swb-btn.is-counting .swb-btn-text {
    mix-blend-mode: normal;
}
.swb-btn.is-paused {
    animation: swbPulse 1.4s ease-in-out infinite;
}
.swb-btn.is-paused .swb-btn-fill {
    transition: none;
    opacity: .55;
}
@keyframes swbPulse {
    0%, 100% { opacity: 1; }
    50%      { opacity: .75; }
}

.swb-revealed {
    margin-top: 16px;
    padding: 16px 18px;
    border: 1px dashed #d1d5db;
    border-radius: 8px;
    background: #f9fafb;
    animation: swbFadeIn .35s ease;
    text-align: left;
}
.swb-complete-text {
    font-weight: 600;
    margin-bottom: 10px;
    color: #047857;
}

.swb-error {
    padding: 8px 12px;
    border: 1px solid #fca5a5;
    background: #fef2f2;
    color: #b91c1c;
    border-radius: 6px;
    font-size: 14px;
}

.swb-footer-injected {
    margin: 24px 0;
}

@keyframes swbFadeIn {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}
