.form-label.required::after {
    content: " *";
    color: red;
    font-weight: bold;
}

/* show password */
.toggle-password {
    position: absolute;
    top: 50%;
    right: 15px;
    transform: translateY(-50%);
    cursor: pointer;
    color: #6c757d;
    z-index: 5;
}

.toggle-password:hover {
    color: #0d6efd;
}

/* Workers table scroll area */
.workers-scroll-wrapper {
    max-height: 55vh;      /* adjust: 50-60vh is ideal */
    overflow-y: auto;
    overflow-x: hidden;
}

/* Sticky table header */
.workers-scroll-wrapper thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #f8f9fa;
}

/* Better checkbox alignment */
.workers-scroll-wrapper td,
.workers-scroll-wrapper th {
    vertical-align: middle;
}

@media (max-width: 768px) {
    .workers-scroll-wrapper {
        max-height: 65vh;
    }
}

/* printable area */

/* calendar hover */
.calendar-day {
    height: 95px;
    vertical-align: top;
    font-size: 12px;
    padding: 4px;
    border-radius: 6px;
}

.calendar-date {
    font-weight: 600;
    margin-bottom: 4px;
    color: #333;
}

.calendar-shift {
    cursor: pointer;
    margin: 4px 0;
    padding: 5px 6px;
    border-radius: 6px;
    transition: all 0.2s ease;
    font-size: 11px;
    border: 1px solid rgba(0,0,0,0.05);
}

.calendar-available {
    background: #d1f2e0;
    border-left: 4px solid #198754;
    /* color: #0f5132; */
    color: #000;
}

.calendar-full {
    background: #f8d7da;
    border-left: 4px solid #dc3545;
    color: #842029;
}

.calendar-reallocated {
    background: #ffe5d0;
    border-left: 4px solid #fd7e14;
    color: #7a3e00;
}

.calendar-disabled {
    background: #e9ecef;
    /* color: #6c757d; */
    color: #000;
}

.calendar-sunday-disabled {
    background: #f8f9fa;
    opacity: 0.6;
}

.calendar-shift:hover:not(.calendar-disabled):not(.calendar-full) {
    filter: brightness(0.95);
    transform: scale(1.02);
}

/* selected shift */
.calendar-selected {
    background-color: #0d6efd !important;
    color: #fff !important;
    box-shadow: 0 0 0 2px rgba(13,110,253,0.4);
}

.calendar-selected .badge {
    background-color: #fff !important;
    color: #0d6efd !important;
}

.calendar-shift .badge {
    background: transparent !important;
    color: inherit !important;
    font-weight: 600;
    padding: 0;
}

/* attendance */
.attendance-table-container {
    /* max-height: 500px; */
    max-height: 60vh;
    overflow-y: auto;
    overflow-x: auto;
    border: 1px solid #dee2e6;
}

.attendance-table-container thead th {
    position: sticky;
    top: 0;
    z-index: 10;
    background: #f8f9fa;
}

.attendance-table-container::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

.attendance-table-container::-webkit-scrollbar-thumb {
    background: #adb5bd;
    border-radius: 10px;
}

/* lateness */
#lateness-table-container::-webkit-scrollbar {
    width: 6px;
}
#lateness-table-container::-webkit-scrollbar-thumb {
    background-color: #888;
    border-radius: 10px;
}

/* print */
@media print {

    .no-print,
    .modal-header,
    .modal-footer,
    .card-header,
    .main-header,
    .card-tools,
    .main-sidebar,
    .content-header,
    .fa-file-signature,
    .main-footer,
    .btn,
    button {
        display: none !important;
    }

    .content-wrapper,
    .card,
    .card-body {
        margin: 0 !important;
        padding: 0 !important;
        box-shadow: none !important;
        border: none !important;
    }

    body {
        font-family: Arial, Helvetica, sans-serif;
        font-size:12px;
        padding:20px;
        color:#000;
    }

    /* Portrait Letter */
    @page{
        size:A4 portrait;
        margin:15mm;
    }

    /* Bootstrap-like row/cols for printing */
    .row{
        display:flex;
        flex-wrap:wrap;
        margin-left:-8px;
        margin-right:-8px;
    }

    [class^="col-"],
    [class*=" col-"]{
        padding-left:8px;
        padding-right:8px;
        box-sizing:border-box;
    }

    /* Common Bootstrap column widths */
    .col-md-12{width:100%;}
    .col-md-8{width:66.666667%;}
    .col-md-6{width:50%;}
    .col-md-4{width:33.333333%;}
    .col-md-3{width:25%;}
    .col-md-2{width:16.666667%;}

    table {
        width:100%;
        border-collapse:collapse;
        margin-top:10px;
    }

    table th,
    table td{
        border:1px solid #ccc;
        padding:6px;
        vertical-align:top;
    }

    .text-center{ text-align:center; }
    .text-end,
    .text-right{ text-align:right; }

    .fw-bold,
    .font-weight-bold{
        font-weight:bold;
    }

    .mt-3{margin-top:1rem;}
    .mt-4{margin-top:1.5rem;}
    .mt-5{margin-top:3rem;}
    .mb-3{margin-bottom:1rem;}
    .mb-4{margin-bottom:1.5rem;}

    .badge{
        border:1px solid #000;
        padding:2px 6px;
        font-size:11px;
    }
}



