/* ======================================================
   1. RESET
====================================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

:root{

    --primary:#2563eb;
    --primary-dark:#1d4ed8;

    --bg:#f4f7fb;
    --card:#ffffff;

    --text:#111827;
    --text-light:#6b7280;

    --border:#e5e7eb;

    --success:#16a34a;
    --danger:#dc2626;

    --shadow:
    0 10px 30px rgba(15,23,42,0.06);
}

body{

    background:
    linear-gradient(
        180deg,
        #f8fafc 0%,
        #eef4ff 100%
    );

    font-family:'Segoe UI',sans-serif;

    color:var(--text);

    overflow-x:hidden;
}


/* ======================================================
   2. CONTENT
====================================================== */

.content{

    margin-left:260px;

    margin-top:90px;

    min-height:100vh;
}


/* ======================================================
   3. TAB BAR
====================================================== */

.tabBar{

    display:flex;

    gap:12px;

    margin-bottom:24px;

    flex-wrap:wrap;
}

.tabBar a{

    text-decoration:none;

    padding:11px 18px;

    border-radius:14px;

    background:white;

    border:1px solid #dbeafe;

    color:#1e3a8a;

    font-size:13px;

    font-weight:700;

    transition:0.25s ease;

    box-shadow:
    0 3px 10px rgba(37,99,235,0.05);
}

.tabBar a:hover{

    background:#eff6ff;

    transform:translateY(-2px);
}

.tabBar a.active{

    background:
    linear-gradient(
        135deg,
        var(--primary-dark),
        var(--primary)
    );

    color:white;

    border-color:transparent;

    box-shadow:
    0 12px 25px rgba(37,99,235,0.28);
}


/* ======================================================
   4. CARD
====================================================== */

.bankCard{

    background:var(--card);

    border-radius:24px;

    border:1px solid #edf2f7;

    box-shadow:var(--shadow);

    overflow:hidden;
    margin-top:60px;
    margin-right:20px;
    margin-bottom:30px;
}


/* ======================================================
   5. HEADER
====================================================== */

.cardHeader{

    padding:26px;

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:20px;

    flex-wrap:wrap;

    border-bottom:1px solid #f1f5f9;
}

.cardTitle{

    font-size:22px;

    font-weight:700;

    margin-bottom:4px;

    color:var(--text);
}

.cardSub{

    font-size:13px;

    color:var(--text-light);
}


/* ======================================================
   6. SEARCH
====================================================== */

.searchBox{

    position:relative;

    width:320px;

    max-width:100%;
}

.searchIcon{

    position:absolute;

    top:50%;
    left:15px;

    transform:translateY(-50%);

    color:#94a3b8;

    font-size:14px;
}

.inputSearch{

    width:100%;

    height:48px;

    padding:0 16px 0 42px;

    border-radius:14px;

    border:1px solid #dbe2ea;

    background:#f8fafc;

    outline:none;

    font-size:14px;

    transition:0.25s ease;
}

.inputSearch:focus{

    background:white;

    border-color:var(--primary);

    box-shadow:
    0 0 0 4px rgba(37,99,235,0.10);
}


/* ======================================================
   TABLE WRAPPER
====================================================== */

.tableWrapper{

    width:100%;

    overflow-x:auto;

    -webkit-overflow-scrolling:touch;
}


/* ======================================================
   TABLE
====================================================== */

.table{

    width:100%;

    border-collapse:collapse;

    table-layout:auto;
}


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

.table thead th{

    background:#f8fafc;

    padding:16px 18px;

    text-align:left;

    font-size:12px;

    font-weight:700;

    color:#475569;

    border-bottom:1px solid #e2e8f0;

    text-transform:uppercase;

    letter-spacing:0.4px;

    white-space:nowrap;
}


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

.table tbody td{

    padding:18px;

    font-size:14px;

    border-bottom:1px solid #f1f5f9;

    vertical-align:middle;

    transition:0.2s ease;

    word-break:break-word;
}

.table tbody tr:hover td{
    background:#f8fbff;
}

.table tbody tr:last-child td{
    border-bottom:none;
}

.table tbody tr:nth-child(even){
    background:#fafbfc;
}

/* ======================================================
   8. ACCOUNT NUMBER
====================================================== */

.acc{

    font-family:monospace;

    font-size:14px;

    font-weight:700;

    letter-spacing:1px;

    color:#0f172a;
}


/* ======================================================
   9. BUTTONS
====================================================== */

.btn{

    border:none;

    border-radius:12px;

    height:42px;

    padding:0 18px;

    cursor:pointer;

    font-size:13px;

    font-weight:700;

    transition:0.25s ease;

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:8px;
}

.btnBlue{

    background:blueviolet;

    color:white;

    box-shadow:
    0 8px 18px rgba(15,23,42,0.18);
}

.btnBlue:hover{

    transform:translateY(-2px);

    box-shadow:
    0 12px 22px rgba(15,23,42,0.24);
}

.btnGreen{

    background:
    linear-gradient(
        135deg,
        #22c55e,
        #16a34a
    );

    color:white;
}

.btnGreen:hover{

    transform:translateY(-2px);
}

.btnGray{

    background:#e5e7eb;

    color:#111827;
}

.btnGray:hover{

    background:#d1d5db;
}

.editIcon{

    color:#facc15;
}


/* ======================================================
   10. PAGINATION
====================================================== */

.paginationWrap{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:12px;

    padding:22px;

    border-top:1px solid #f1f5f9;

    flex-wrap:wrap;
}

.pageBtn,
.pageNumber{

    min-width:42px;

    height:42px;

    border:none;

    border-radius:12px;

    background:white;

    border:1px solid #dbe2ea;

    padding:0 14px;

    cursor:pointer;

    font-size:13px;

    font-weight:700;

    transition:0.25s ease;
}

.pageBtn:hover,
.pageNumber:hover{

    background:#eff6ff;

    border-color:#93c5fd;
}

.pageNumber.active{

    background:black;

    color:white;

    border-color:transparent;

    box-shadow:
    0 10px 20px rgba(37,99,235,0.25);
}

#paginationNumbers{

    display:flex;

    gap:8px;

    flex-wrap:wrap;
}


/* ======================================================
   11. MODAL
====================================================== */

.modal{

    position:fixed;

    inset:0;

    background:rgba(15,23,42,0.55);

    display:none;

    align-items:center;

    justify-content:center;

    z-index:9999;

    padding:20px;

    backdrop-filter:blur(5px);
}

.modalBox{

    width:100%;

    max-width:460px;

    background:white;

    border-radius:24px;

    padding:28px;

    box-shadow:
    0 24px 60px rgba(0,0,0,0.18);

    animation:popup 0.25s ease;
}

@keyframes popup{

    from{

        opacity:0;

        transform:
        translateY(10px)
        scale(0.97);
    }

    to{

        opacity:1;

        transform:
        translateY(0)
        scale(1);
    }
}

.modalBox h3{

    font-size:24px;

    margin-bottom:20px;

    color:#0f172a;
}

.modalBox label{

    display:block;

    margin-bottom:8px;
    margin-top:16px;

    font-size:13px;

    font-weight:700;

    color:#374151;
}

.modalBox input,
.modalBox select{

    width:100%;

    height:48px;

    padding:0 14px;

    border-radius:14px;

    border:1px solid #dbe2ea;

    background:#f8fafc;

    outline:none;

    font-size:14px;

    transition:0.25s ease;
}

.modalBox input:focus,
.modalBox select:focus{

    background:white;

    border-color:var(--primary);

    box-shadow:
    0 0 0 4px rgba(37,99,235,0.10);
}

.modalActions{

    display:flex;

    justify-content:flex-end;

    gap:10px;

    margin-top:26px;
}


/* ======================================================
   12. TOAST
====================================================== */

#toastContainer{

    position:fixed;

    top:24px;
    right:24px;

    display:flex;

    flex-direction:column;

    gap:12px;

    z-index:10000;
}

.toast{

    min-width:300px;

    background:white;

    border-radius:16px;

    padding:15px 16px;

    display:flex;

    align-items:center;

    gap:12px;

    box-shadow:
    0 18px 40px rgba(0,0,0,0.12);

    transform:translateX(120%);

    opacity:0;

    transition:0.35s ease;
}

.toast.show{

    transform:translateX(0);

    opacity:1;
}

.toast.success{

    border-left:5px solid var(--success);
}

.toast.error{

    border-left:5px solid var(--danger);
}

.toastIcon{

    width:34px;
    height:34px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:#f8fafc;

    font-weight:700;
}


/* ======================================================
   13. SCROLLBAR
====================================================== */

.tableWrapper::-webkit-scrollbar{

    height:8px;
}

.tableWrapper::-webkit-scrollbar-track{

    background:#f1f5f9;
}

.tableWrapper::-webkit-scrollbar-thumb{

    background:#cbd5e1;

    border-radius:999px;
}


/* ======================================================
   14. RESPONSIVE
====================================================== */
@media(max-width:768px){

    .content{
        margin-left:0;
        padding:15px;
    }

    .bankCard{
        margin-right:0;
        border-radius:16px;
    }

    /* Tabs */
    .tabBar{

        flex-wrap:nowrap;

        overflow-x:auto;

        gap:8px;

        padding-bottom:4px;

        scrollbar-width:none;
    }

    .tabBar::-webkit-scrollbar{
        display:none;
    }

    .tabBar a{

        flex-shrink:0;

        white-space:nowrap;
    }

    /* Search */
    .searchBox{
        width:100%;
    }

    .inputSearch{

        height:56px;

        font-size:16px;

        padding-left:46px;
    }

    /* Table */
    .tableWrapper{
        overflow-x:auto;
    }

    .table{
        min-width:650px;
    }

    .table thead th{

        padding:12px 10px;

        font-size:11px;
    }

    .table tbody td{

        padding:12px 10px;

        font-size:12px;

        white-space:nowrap;
    }

    /* Buttons */
    .btn{

        height:38px;

        padding:0 12px;

        font-size:12px;
    }

    .modalActions{
        flex-direction:column;
    }

    .modalActions .btn{
        width:100%;
    }

    .paginationWrap{
        justify-content:center;
    }

    .toast{

        width:calc(100vw - 30px);

        min-width:unset;
    }
}