.ec-qr-page{
    background:#f5f7fb;
    min-height:100vh;
}

/* =========================================================
HEADER
========================================================= */

.ec-qr-header{
    margin-bottom:1.5rem;
}

.ec-qr-topbar{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
}

.ec-qr-badge{
    display:inline-flex;
    align-items:center;
    padding:.45rem .9rem;
    border-radius:999px;
    background:#edf8f2;
    border:1px solid rgba(25,135,84,.12);
    color:#198754;
    font-size:.78rem;
    font-weight:600;
    margin-bottom:.9rem;
}

.ec-qr-title{
    font-size:1.55rem;
    font-weight:700;
    color:#111827;
    margin-bottom:.35rem;
    letter-spacing:-.5px;
}

.ec-qr-subtitle{
    color:#6b7280;
    font-size:.92rem;
    line-height:1.5;
}

.ec-qr-back-btn{
    height:42px;
    padding:0 1rem;
    border-radius:14px;
    background:#fff;
    border:1px solid rgba(15,23,42,.08);
    color:#111827;
    font-size:.88rem;
    font-weight:600;
    white-space:nowrap;
    box-shadow:0 2px 8px rgba(15,23,42,.04);
}

.ec-qr-back-btn:hover{
    background:#f8fafc;
    color:#111827;
}

/* =========================================================
MAIN CARD
========================================================= */

.ec-qr-main-card{
    background:#fff;
    border-radius:28px;
    border:1px solid rgba(15,23,42,.06);
    box-shadow:
        0 10px 30px rgba(15,23,42,.05),
        0 2px 8px rgba(15,23,42,.04);
    overflow:hidden;
}

.ec-qr-main-body{
    padding:1.6rem;
}

/* =========================================================
STATUS
========================================================= */

.ec-qr-status-row{
    display:flex;
    align-items:center;
    gap:.8rem;
    padding:.9rem 1rem;
    border-radius:18px;
    background:#fff8e8;
    border:1px solid rgba(255,193,7,.14);
    flex-wrap:wrap;
}

.ec-qr-status-dot{
    width:10px;
    height:10px;
    border-radius:50%;
    background:#f59e0b;
    flex-shrink:0;
}

.ec-qr-status-text{
    font-size:.88rem;
    font-weight:600;
    color:#111827;
}

.ec-qr-status-divider{
    width:1px;
    height:16px;
    background:rgba(0,0,0,.08);
}

.ec-qr-status-time{
    font-size:.84rem;
    color:#6b7280;
}

#qrCountdown{
    font-weight:700;
    color:#dc3545;
    margin-left:.2rem;
}

/* =========================================================
INFO
========================================================= */

.ec-qr-info-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.9rem;
}

.ec-qr-info-card,
.ec-qr-total-card{
    padding:1rem 1.1rem;
    border-radius:20px;
    border:1px solid rgba(15,23,42,.06);
    background:#fff;
    box-shadow:0 2px 8px rgba(15,23,42,.03);
}

.ec-qr-total-card{
    background:#f8fafc;
}

.ec-qr-info-label{
    display:block;
    font-size:.68rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.8px;
    color:#6b7280;
    margin-bottom:.45rem;
}

.ec-qr-order-code{
    display:inline-flex;
    align-items:center;
    min-height:38px;
    padding:.5rem .8rem;
    border-radius:12px;
    background:#f8fafc;
    border:1px solid rgba(15,23,42,.06);
    font-size:.86rem;
    font-weight:600;
    font-family:monospace;
    color:#111827;
    letter-spacing:.2px;
}

.ec-qr-total-value{
    font-size:1.45rem;
    font-weight:700;
    color:#198754;
    line-height:1.1;
    letter-spacing:-.4px;
}

/* =========================================================
QR
========================================================= */

.ec-qr-wrapper{
    display:flex;
    justify-content:center;
}

.ec-qr-box{
    width:100%;
    max-width:380px;
    padding:1.5rem;
    border-radius:28px;
    background:#fff;
    border:1px solid rgba(15,23,42,.06);
    box-shadow:
        0 12px 28px rgba(15,23,42,.06),
        0 2px 6px rgba(15,23,42,.03);
    text-align:center;
}

.ec-qr-bank-brand{
    margin-bottom:1.3rem;
}

.ec-qr-bank-logo{
    width:100%;
    max-width:190px;
    object-fit:contain;
}

.ec-qr-loading{
    min-height:260px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
}

.ec-qr-image{
    width:100%;
    max-width:280px;
    object-fit:contain;
}

/* =========================================================
DESCRIPTION
========================================================= */

.ec-qr-description{
    max-width:500px;
    margin:auto;
}

.ec-qr-description p{
    color:#6b7280;
    font-size:.9rem;
    line-height:1.6;
}

/* =========================================================
BUTTONS
========================================================= */

.ec-qr-btn-primary,
.ec-qr-btn-secondary,
.ec-qr-support-btn{
    height:46px;
    border-radius:14px;
    font-size:.9rem;
    font-weight:600;
    transition:.2s ease;
}

.ec-qr-btn-primary{
    background:#198754;
    color:#fff;
    border:none;
    box-shadow:0 6px 16px rgba(25,135,84,.14);
}

.ec-qr-btn-primary:hover{
    background:#157347;
    color:#fff;
    transform:translateY(-1px);
}

.ec-qr-btn-secondary{
    background:#fff;
    border:1px solid rgba(15,23,42,.08);
    color:#111827;
}

.ec-qr-btn-secondary:hover{
    background:#f8fafc;
    color:#111827;
}

.ec-qr-support-btn{
    background:#111827;
    color:#fff;
    border:none;
}

.ec-qr-support-btn:hover{
    background:#000;
    color:#fff;
}

/* =========================================================
SIDEBAR
========================================================= */

.ec-qr-side-card{
    background:#fff;
    border-radius:24px;
    border:1px solid rgba(15,23,42,.06);
    box-shadow:
        0 8px 24px rgba(15,23,42,.04),
        0 2px 6px rgba(15,23,42,.03);
}

.ec-qr-side-body{
    padding:1.3rem;
}

.ec-qr-side-header{
    display:flex;
    align-items:center;
    gap:.9rem;
    margin-bottom:1rem;
}

.ec-qr-side-icon{
    width:46px;
    height:46px;
    border-radius:14px;
    background:#edf8f2;
    color:#198754;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.1rem;
    flex-shrink:0;
}

.ec-qr-side-header h5{
    font-size:.96rem;
    font-weight:700;
    color:#111827;
}

.ec-qr-side-header small{
    color:#6b7280;
    font-size:.78rem;
}

.ec-qr-side-list{
    list-style:none;
    padding:0;
    margin:0;
    display:flex;
    flex-direction:column;
    gap:.9rem;
}

.ec-qr-side-list li{
    display:flex;
    align-items:flex-start;
    gap:.65rem;
    font-size:.86rem;
    color:#4b5563;
    line-height:1.5;
}

.ec-qr-side-list i{
    color:#198754;
    margin-top:2px;
    flex-shrink:0;
}

.ec-qr-help-text{
    color:#6b7280;
    font-size:.85rem;
    line-height:1.5;
    margin-bottom:1rem;
}

/* =========================================================
RESPONSIVE
========================================================= */

@media (max-width:991.98px){

    .ec-qr-topbar{
        flex-direction:column;
        align-items:flex-start;
    }

    .ec-qr-back-btn{
        width:100%;
        justify-content:center;
    }
}

@media (max-width:575.98px){

    .ec-qr-main-body{
        padding:1.2rem;
    }

    .ec-qr-title{
        font-size:1.35rem;
    }

    .ec-qr-subtitle{
        font-size:.86rem;
    }

    .ec-qr-info-grid{
        grid-template-columns:1fr;
    }

    .ec-qr-box{
        padding:1.2rem;
        border-radius:24px;
    }

    .ec-qr-bank-logo{
        max-width:175px;
    }

    .ec-qr-image{
        max-width:240px;
    }

    .ec-qr-loading{
        min-height:220px;
    }

    .ec-qr-total-value{
        font-size:1.3rem;
    }

    .ec-qr-btn-primary,
    .ec-qr-btn-secondary,
    .ec-qr-support-btn{
        height:44px;
        font-size:.88rem;
    }
}