.table-container {
    position: relative;
    width: 100%;
    max-width: 100%;
    margin-bottom: 1rem;
    overflow-x: auto;
}

table {
    border-collapse: collapse;
    font-family: helvetica;
    width: 100%;
    table-layout: auto;
    background: #f9f9f9;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    border-radius: 5px;
    overflow: hidden;
}

td, th {
    border: 1px solid #ddd;
    padding: 10px;
    min-width: 120px;
    background: white;
    box-sizing: border-box;
    text-align: left;
}

thead th {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 2;
    background: #4CAF50;
    color: white;
}

thead th:first-child {
    left: 0;
    z-index: 3;
}

tfoot {
    position: -webkit-sticky;
    bottom: 0;
    z-index: 2;
}

tfoot td {
    position: sticky;
    bottom: 0;
    z-index: 2;
    background: #4CAF50;
    color: white;
}

tfoot td:first-child {
    z-index: 3;
}

tr > :first-child {
    position: -webkit-sticky;
    position: sticky;
    background: #f1f1f1;
    left: 0;
}

tr > :first-child {
    box-shadow: inset 0px 1px black;
}

.past-date {
    background-color: #f8d7da;
    color: #721c24;
}

.current-date {
    background-color: #fff3cd;
    color: #856404;
}

.future-date {
    background-color: #e2eafc;
    color: #004085;
}

.next-date {
    background-color: #cce5ff;
    color: #004085;
    font-weight: bold;
    border: 2px solid #004085;
}

.completed {
    background-color: #d4edda;
    color: #155724;
    font-weight: bold;
    border: 2px solid #155724;
}

.missed {
    background-color: #f8d7da;
    color: #ff0018;
    font-weight: bold;
}

.hidden-checkbox {
    display: none;
}

/* Responsive Styling */
@media screen and (max-width: 768px) {
    td, th {
        padding: 5px;
        min-width: 80px;
    }

    .table-container {
        overflow-x: auto;
    }

    table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }
}
