/* =========================================================
| ROOT
========================================================= */

.payment-wrapper,
.payment-wrapper *{
    box-sizing:border-box;
}

/* =========================================================
| PAGE
========================================================= */

.payment-wrapper{
    min-height:100vh;
    padding:100px 15px;
    background:
    linear-gradient(
        135deg,
        #0f172a,
        #111827,
        #1e293b
    );
}

/* =========================================================
| MAIN CARD
========================================================= */

.payment-main-card{
    overflow:hidden;
    border-radius:30px;
    background:#182235;
    border:1px solid rgba(255,255,255,.06);
    box-shadow:
    0 20px 50px rgba(0,0,0,.35);
}

/* =========================================================
| HEADER
========================================================= */

.payment-header{
    position:relative;
    padding:45px 30px;
    text-align:center;
    background:
    linear-gradient(
        135deg,
        rgba(37,99,235,.16),
        rgba(124,58,237,.12)
    );
}

.payment-header::after{
    content:'';
    position:absolute;
    left:40px;
    right:40px;
    bottom:0;
    height:1px;
    background:
    linear-gradient(
        to right,
        transparent,
        rgba(255,255,255,.08),
        transparent
    );
}

.payment-badge{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:12px 20px;
    border-radius:50px;
    background:rgba(255,255,255,.08);
    color:#93c5fd;
    font-size:13px;
    font-weight:700;
    margin-bottom:24px;
}

.payment-header h2{
    margin:0 0 14px;
    color:#ffffff;
    font-size:42px;
    font-weight:900;
}

.payment-header p{
    margin:0;
    color:#cbd5e1;
    font-size:16px;
}

/* =========================================================
| BODY
========================================================= */

.payment-body{
    padding:40px;
}

/* =========================================================
| LAYOUT
========================================================= */

.payment-layout{
    display:flex;
    gap:32px;
    align-items:flex-start;
}

.payment-left{
    flex:1;
    min-width:0;
}

.payment-right{
    width:380px;
    flex-shrink:0;
}

/* =========================================================
| STUDENT CARD
========================================================= */

.student-info-card{
    display:flex;
    align-items:center;
    gap:20px;
    padding:24px;
    margin-bottom:30px;
    border-radius:24px;
    background:rgba(255,255,255,.04);
}

.student-avatar{
    width:72px;
    height:72px;
    border-radius:20px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:
    linear-gradient(
        135deg,
        #2563eb,
        #3b82f6
    );
    color:#fff;
    font-size:28px;
    font-weight:800;
}

.student-meta{
    flex:1;
}

.student-meta h4{
    margin:0 0 5px;
    color:#fff;
    font-size:24px;
}

.student-meta p{
    margin:0;
    color:#cbd5e1;
}

.student-badge{
    padding:12px 18px;
    border-radius:50px;
    background:#22c55e;
    color:#fff;
    font-size:13px;
    font-weight:700;
}

/* =========================================================
| ALERT
========================================================= */

.payment-alert{
    display:flex;
    align-items:center;
    gap:12px;
    padding:18px;
    margin-bottom:24px;
    border-radius:18px;
    background:#dc2626;
    color:#fff;
}

/* =========================================================
| FORM GROUP
========================================================= */

.payment-group{
    margin-bottom:24px;
}

.payment-group label{
    display:block;
    margin-bottom:12px;
    color:#fff;
    font-size:15px;
    font-weight:700;
}

/* =========================================================
| INPUT
========================================================= */

.payment-group input{
    width:100%;
    height:60px;
    border:none;
    outline:none;
    border-radius:18px;
    background:#334155;
    color:#fff;
    padding:0 18px;
    font-size:15px;
    transition:.3s;
}

.payment-group input::placeholder{
    color:#cbd5e1;
}

.payment-group input:focus{
    background:#3f4c60;
    box-shadow:
    0 0 0 4px rgba(245,158,11,.12);
}

/* =========================================================
| CUSTOM SELECT SYSTEM
========================================================= */

.payment-select-group{

    margin-bottom:24px;
}

/* =========================================================
| LABEL
========================================================= */

.payment-select-group label{

    display:block;

    margin-bottom:12px;

    color:#ffffff;

    font-size:15px;

    font-weight:700;
}

/* =========================================================
| WRAPPER
========================================================= */

.payment-select-wrapper{

    position:relative;

    overflow:hidden;

    border-radius:18px;

    background:#334155;

    transition:
    all .3s ease;
}

/* =========================================================
| SELECT
========================================================= */

.payment-select-wrapper select{

    width:100%;

    height:60px;

    border:none !important;

    outline:none !important;

    box-shadow:none !important;

    appearance:none !important;

    -webkit-appearance:none !important;

    -moz-appearance:none !important;

    background:transparent !important;

    color:#ffffff;

    padding:0 20px;

    padding-right:55px;

    font-size:15px;

    font-weight:500;

    cursor:pointer;

    position:relative;

    z-index:2;
}

/* =========================================================
| OPTION
========================================================= */

.payment-select-wrapper select option{

    background:#0f172a;

    color:#ffffff;
}

/* =========================================================
| ICON
========================================================= */

.payment-select-icon{

    position:absolute;

    top:50%;

    right:18px;

    transform:translateY(-50%);

    color:#cbd5e1;

    font-size:13px;

    pointer-events:none;

    z-index:3;
}

/* =========================================================
| FOCUS
========================================================= */

.payment-select-wrapper:focus-within{

    background:#3f4c60;

    box-shadow:
    0 0 0 4px rgba(245,158,11,.14);
}

/* =========================================================
| REMOVE WINDOWS / EDGE UI
========================================================= */

.payment-select-wrapper select::-ms-expand{

    display:none;
}

/* =========================================================
| MOBILE
========================================================= */

@media(max-width:768px){

    .payment-select-wrapper{

        border-radius:16px;
    }

    .payment-select-wrapper select{

        height:56px;

        font-size:14px;
    }
}

/* =========================================================
| SECTION TITLE
========================================================= */

.payment-section-title{
    margin:0 0 24px;
    color:#fff;
    font-size:28px;
    font-weight:800;
}

.payment-section-spacing{
    margin-top:50px;
}

/* =========================================================
| SERVICES GRID
========================================================= */

.payment-services-grid{
    display:grid;
    grid-template-columns:
    repeat(2,1fr);
    gap:24px;
}

/* =========================================================
| CARD
========================================================= */

.fee-card{
    position:relative;
    padding:24px;
    border-radius:24px;
    background:#243244;
    border:2px solid transparent;
    cursor:pointer;
    transition:.3s;
}

.payment-card-spacing{
    margin-bottom:18px;
}

.fee-card:hover{
    transform:translateY(-2px);
}

.fee-card.active{
    border-color:#22c55e;
    background:#1f3a2d;
}

.fee-card h5{
    margin:0 0 10px;
    color:#fff;
}

.fee-card p{
    margin:0 0 14px;
    color:#cbd5e1;
}

.fee-price{
    color:#22c55e;
    font-size:28px;
    font-weight:800;
}

.optional-check{
    position:absolute;
    top:18px;
    right:18px;
    width:36px;
    height:36px;
    border-radius:12px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(255,255,255,.08);
    color:#fff;
}

/* =========================================================
| SUMMARY
========================================================= */

.payment-summary{
    position:sticky;
    top:20px;
    padding:30px;
    border-radius:28px;
    background:#243244;
}

.summary-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:30px;
}

.summary-title{
    margin:0;
    color:#fff;
    font-size:28px;
    font-weight:800;
}

.summary-icon{
    width:58px;
    height:58px;
    border-radius:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#334155;
    color:#fff;
    font-size:22px;
}

.breakdown-line{
    display:flex;
    justify-content:space-between;
    gap:20px;
    margin-bottom:16px;
    color:#e2e8f0;
}

.total-box{
    margin-top:24px;
    padding-top:24px;
    border-top:1px solid rgba(255,255,255,.08);
}

.summary-label{
    color:#cbd5e1;
}

.total-box h2{
    margin:8px 0 0;
    color:#22c55e;
    font-size:42px;
    font-weight:900;
}

/* =========================================================
| QR
========================================================= */

.qr-box{
    margin-top:28px;
    padding:24px;
    border-radius:24px;
    text-align:center;
    background:#334155;
}

.qr-box h5{
    margin:0 0 18px;
    color:#fff;
}

#qrcode{
    display:flex;
    justify-content:center;
}

/* =========================================================
| BUTTON
========================================================= */

.payment-btn{
    width:100%;
    height:60px;
    margin-top:28px;
    border:none;
    border-radius:18px;
    background:
    linear-gradient(
        135deg,
        #2563eb,
        #3b82f6
    );
    color:#fff;
    font-size:16px;
    font-weight:700;
    cursor:pointer;
    transition:.3s;
}

.payment-btn:hover{
    transform:translateY(-2px);
}

.payment-btn i{
    margin-right:10px;
}

/* =========================================================
| FILE
========================================================= */

.file-upload-wrapper input{
    padding-top:16px;
}

/* =========================================================
| RESPONSIVE
========================================================= */

@media(max-width:991px){

    .payment-layout{
        flex-direction:column;
    }

    .payment-right{
        width:100%;
    }

    .payment-summary{
        position:relative;
    }
}

@media(max-width:768px){

    .payment-wrapper{
        padding:70px 12px;
    }

    .payment-body{
        padding:24px;
    }

    .payment-header h2{
        font-size:30px;
    }

    .student-info-card{
        flex-direction:column;
        align-items:flex-start;
    }

    .student-badge{
        width:100%;
        text-align:center;
    }

    .payment-services-grid{
        grid-template-columns:1fr;
    }

    .payment-layout{
        gap:24px;
    }

    .payment-group input,
    .payment-select-wrapper select{
        height:56px;
        font-size:14px;
        border-radius:16px;
    }

    .payment-summary{
        padding:24px;
    }
}