/* ================= LIST CARD ================= */

.listCard{
    background:#ffffff;
    border-radius:24px;
    padding:24px;
    margin-top:24px;
    box-shadow:0 4px 20px rgba(0,0,0,0.05);
    border:1px solid #eef2f7;
}

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

.listHeader{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:24px;
}

.listHeader h3{
    margin:0;
    font-size:24px;
    font-weight:700;
    color:#111827;
}

.sub{
    margin-top:6px;
    font-size:14px;
    color:#6b7280;
}

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

.editAttendanceBtn{
    border:none;
    background:#4f46e5;
    color:#ffffff;
    padding:12px 18px;
    border-radius:14px;
    font-size:14px;
    font-weight:600;
    cursor:pointer;
    transition:0.2s ease;
    box-shadow:0 4px 12px rgba(79,70,229,0.25);
}

.editAttendanceBtn:hover{
    background:#4338ca;
    transform:translateY(-1px);
}

/* ================= NOTICE ================= */

.refundNotice{
    background:#fef3c7;
    color:#92400e;
    padding:16px 18px;
    border-radius:16px;
    margin-bottom:22px;
    font-size:14px;
    font-weight:500;
    border:1px solid #fde68a;
}

/* ================= EMPTY ================= */

.emptyState{
    background:#f9fafb;
    border:1px dashed #d1d5db;
    border-radius:18px;
    padding:40px;
    text-align:center;
    color:#6b7280;
    font-size:15px;
}

/* ================= PARTICIPANT ROW ================= */

.participantRow{
    display:flex;
    justify-content:space-between;
    align-items:center;
    background:#f8fafc;
    border-radius:18px;
    padding:18px 20px;
    margin-bottom:14px;
    transition:0.2s ease;
    border:1px solid transparent;
}

.participantRow:hover{
    background:#ffffff;
    border-color:#e5e7eb;
    transform:translateY(-2px);
    box-shadow:0 4px 16px rgba(0,0,0,0.04);
}

.participantLeft{
    display:flex;
    align-items:center;
    gap:16px;
}

/* ================= AVATAR ================= */

.avatar{
    width:54px;
    height:54px;
    border-radius:18px;
    background:#eef2ff;
    color:#4338ca;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:22px;
    font-weight:700;
    flex-shrink:0;
}

/* ================= PARTICIPANT INFO ================= */

.participantName{
    font-size:16px;
    font-weight:700;
    color:#111827;
}

.participantMeta{
    margin-top:5px;
    font-size:13px;
    color:#6b7280;
}

/* ================= RIGHT SECTION ================= */

.participantRight{
    text-align:right;
    min-width:200px;
}

/* EMAIL */

.participantEmail{
    font-size:14px;
    color:#111827;
    font-weight:500;
}

/* ATTENDANCE */

.attendanceTime{
    font-size:14px;
    font-weight:600;
    color:#111827;
    margin-top:5px;
}

.attendanceSubtext{
    margin-top:5px;
    font-size:12px;
    color:#6b7280;
}

/* REFUND */

.refundText{
    font-size:14px;
    font-weight:700;
    color:#dc2626;
}

.refundAmount{
    margin-top:4px;
    font-size:16px;
    font-weight:700;
    color:#111827;
}

.refundPhone{
    margin-top:6px;
    font-size:13px;
    color:#374151;
}

.refundEmail{
    margin-top:4px;
    font-size:12px;
    color:#6b7280;
}

/* ================= MODAL ================= */

.attendanceModal{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(0,0,0,0.45);
    z-index:9999;
    justify-content:center;
    align-items:center;
    backdrop-filter:blur(4px);
}

/* ================= MODAL CONTENT ================= */

.attendanceModalContent{
    width:92%;
    max-width:760px;
    background:#ffffff;
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 10px 40px rgba(0,0,0,0.18);
    animation:fadeModal 0.2s ease;
}

@keyframes fadeModal{

    from{
        opacity:0;
        transform:translateY(20px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }
}

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

.attendanceModalHeader{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:22px 26px;
    border-bottom:1px solid #e5e7eb;
}

.attendanceModalHeader h3{
    margin:0;
    font-size:22px;
    font-weight:700;
    color:#111827;
}

.closeModalBtn{
    border:none;
    background:none;
    font-size:30px;
    cursor:pointer;
    color:#6b7280;
    transition:0.2s;
}

.closeModalBtn:hover{
    color:#111827;
}

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

.attendanceModalBody{
    max-height:500px;
    overflow-y:auto;
    padding:20px 26px;
}

/* ================= EDIT ROW ================= */

.attendanceEditRow{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:14px 0;
    border-bottom:1px solid #f1f5f9;
}

.editName{
    font-size:15px;
    font-weight:600;
    color:#111827;
}

.editMatric{
    margin-top:4px;
    font-size:13px;
    color:#6b7280;
}

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

.attendanceSelect{
    padding:10px 14px;
    border-radius:12px;
    border:1px solid #d1d5db;
    font-size:14px;
    background:#ffffff;
    min-width:130px;
    outline:none;
}

.attendanceSelect:focus{
    border-color:#4f46e5;
}

/* ================= MODAL FOOTER ================= */

.attendanceModalFooter{
    display:flex;
    justify-content:flex-end;
    gap:12px;
    padding:20px 26px;
    border-top:1px solid #e5e7eb;
    background:#fafafa;
}

/* CANCEL BUTTON */

.cancelAttendanceBtn{
    border:none;
    background:#e5e7eb;
    color:#111827;
    padding:12px 18px;
    border-radius:14px;
    font-size:14px;
    font-weight:600;
    cursor:pointer;
    transition:0.2s ease;
}

.cancelAttendanceBtn:hover{
    background:#d1d5db;
}

/* SAVE BUTTON */

.saveAttendanceBtn{
    border:none;
    background:#16a34a;
    color:#ffffff;
    padding:12px 22px;
    border-radius:14px;
    font-size:14px;
    font-weight:600;
    cursor:pointer;
    transition:0.2s ease;
    box-shadow:0 4px 12px rgba(22,163,74,0.25);
}

.saveAttendanceBtn:hover{
    background:#15803d;
    transform:translateY(-1px);
}

/* =========================================================
   LIST HEADER ACTIONS
========================================================= */

.listHeaderActions{
    display:flex;
    align-items:center;
    gap:12px;
}

/* =========================================================
   EXPORT BUTTON
========================================================= */

.tableExportDropdown{
    position:relative;
}

.tableExportBtn{
    border:none;
    outline:none;
    cursor:pointer;
    background:#ffffff;
    color:#111827;
    border:1px solid #e5e7eb;
    padding:11px 16px;
    border-radius:14px;
    font-size:13px;
    font-weight:600;
    transition:0.2s ease;
}

.tableExportBtn:hover{
    background:#f9fafb;
}

.tableExportMenu{
    position:absolute;
    top:52px;
    right:0;
    min-width:180px;
    background:#ffffff;
    border-radius:18px;
    overflow:hidden;
    border:1px solid #eef2f7;
    box-shadow:
    0 10px 24px rgba(15,23,42,0.08);
    display:none;
    z-index:1000;
}

.tableExportMenu.show{
    display:block;
}

.tableExportMenu a{
    display:block;
    padding:14px 16px;
    text-decoration:none;
    font-size:13px;
    font-weight:500;
    color:#374151;
    transition:0.2s;
}

.tableExportMenu a:hover{
    background:#f8fafc;
    color:#111827;
}

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

@media(max-width:768px){

    .participantRow{
        flex-direction:column;
        align-items:flex-start;
        gap:16px;
    }

    .participantRight{
        width:100%;
        text-align:left;
    }

    .listHeader{
        flex-direction:column;
        align-items:flex-start;
        gap:14px;
    }

    .attendanceEditRow{
        flex-direction:column;
        align-items:flex-start;
        gap:12px;
    }

    .attendanceSelect{
        width:100%;
    }
}