.bg-login{
    background-image: url('assets/background/logo-background.png') !important;
    /*background-color: #cccccc;*/
}

.btn-navy-force{
    /* Subtle gradient for a more professional hero background */
    background: linear-gradient(180deg, #2b1a5e 0%, #24134f 100%) !important;
    color: #f2f2f2 !important;
}

.btn-navy-force:hover{
    color: #f2f2f2 !important;
    /*font-size: large !important;*/
}

.bg-navy-force{
    background-color: #2b1a5e !important;
    color: #f2f2f2 !important;
}

.bg-navy-force:hover{
    color: #f2f2f2 !important;
    /*font-size: large !important;*/
}

.text-gold{
    color: #fdbf0c !important;
}

.text-navy{
    color: #2b1a5e !important;
}

/* Ensure readable text on dark hero background */
.btn-navy-force h1,
.btn-navy-force h2,
.btn-navy-force h3,
.btn-navy-force h4,
.btn-navy-force h5,
.btn-navy-force h6,
.btn-navy-force .lead,
.btn-navy-force p,
.btn-navy-force .text-muted {
    color: #f2f2f2 !important;
}

/* Subtle secondary text tone on dark background */
.btn-navy-force .text-muted { opacity: 1; }

/* Links on dark background */
.btn-navy-force a:not(.btn) { color: #ffffff; text-decoration: underline; }
.btn-navy-force a:not(.btn):hover { color: #fdbf0c; }

/* Outline buttons on dark background should be visible */
.btn-navy-force .btn-outline-secondary {
    color: #f2f2f2;
    border-color: #cfd3d8;
}
.btn-navy-force .btn-outline-secondary:hover {
    background-color: #cfd3d8;
    color: #2b1a5e;
}

/* Outline primary for better contrast on dark bg */
.btn-navy-force .btn-outline-primary {
    color: #e4ecff;
    border-color: #82a5ff;
}
.btn-navy-force .btn-outline-primary:hover {
    background-color: #82a5ff;
    color: #1b1b1b;
}

/* Reset text colors for light surfaces (cards/white boxes) inside dark section */
.btn-navy-force .card,
.btn-navy-force .card-body,
.btn-navy-force .bg-white,
.btn-navy-force .border.bg-white {
    color: #2d2d2d !important;
}
.btn-navy-force .card .card-title,
.btn-navy-force .bg-white .card-title { color: #1b1b1b !important; }
.btn-navy-force .card .text-muted,
.btn-navy-force .bg-white .text-muted { color: #6c757d !important; opacity: 1 !important; }

/* Tone down accent colors inside feature cards for a consistent professional palette */
.btn-navy-force .card .text-info   { color: #2563eb !important; }  /* professional blue */
.btn-navy-force .card .text-warning{ color: #d97706 !important; }  /* warm amber */
.btn-navy-force .card .text-danger { color: #dc2626 !important; }  /* disciplined red */

/* Soften card appearance */
.btn-navy-force .card { border: 1px solid rgba(0,0,0,0.06); border-radius: .5rem; }
.btn-navy-force .card .btn { border-radius: .4rem; }

/* Quick links at the bottom should be clearly visible on dark bg */
.btn-navy-force .btn-outline-secondary {
    color: #e7e9ef;
    border-color: rgba(231,233,239,0.6);
}
.btn-navy-force .btn-outline-secondary:hover {
    background-color: rgba(231,233,239,0.9);
    color: #1f2937;
}


.custom-borders-table td, .custom-borders-table th{
    border: 1px solid #666 !important;
    padding: 0px !important;
}



















/* Container for horizontal scrolling */
.table-container {
    width: 100%;
    overflow-x: auto; /* Enable horizontal scrolling */
    position: relative; /* Needed for sticky positioning context */
}

/* Basic cell styling for ALL th and td */
.table-container table th,
.table-container table td {
     text-align: center; /* Center align content in cells */
     padding: 0.5rem; /* Adjust padding */
     border: 1px solid #dee2e6; /* Ensure borders are visible */
}

/* Sticky first column (Student Name) */
.table-container table th:first-child,
.table-container table td:first-child {
    position: sticky;
    left: 0;
    background-color: #fff; /* White background for sticky column */
    z-index: 2; /* Ensure it's above scrolling content */
    box-shadow: 2px 0 5px -2px rgba(0,0,0,0.3); /* Optional: subtle shadow for effect */
    min-width: 180px; /* Specific width for the sticky column */
    text-align: left; /* Align names to the left */
    padding-left: 1rem; /* Add some left padding */
    border-left: none; /* Remove default left border if table-bordered adds one */
}

/* Styling for ALL th and td *EXCEPT* the first child */
.table-container table th:not(:first-child),
.table-container table td:not(:first-child) {
    min-width: 25px; /* Standard width for all non-sticky columns */
    /* Ensure text alignment is centered for these columns (already in general rule, but good to be explicit if needed) */
     text-align: center;
}


/* Sticky table header (Week and Day rows) - applies to all th in thead */
 .table-container table thead th {
    position: sticky;
    top: 0; /* Stick header to the top */
    background-color: #fff; /* White background for header */
    z-index: 1; /* Ensure header is above tbody when scrolling vertically */
}

 /* Ensure the sticky top-left corner (Student Name header) is on top of everything */
 .table-container table thead th:first-child {
     z-index: 3;
 }

 /* Remove right border for the last header in each row if Bootstrap adds one */
 .table-container table thead tr th:last-child {
     border-right: none;
 }


/* --- CSS for Week Stripe Colors --- */
/* Define distinct background colors for weeks */
/* Using lighter shades for better readability of content */
/* You might want fewer colors if you only display a few weeks at a time */
.week-color-0 { background-color: #e0f7fa; } /* Light Cyan */
.week-color-1 { background-color: #fff9c4; } /* Light Yellow */
.week-color-2 { background-color: #f8bbd0; } /* Light Pink */
.week-color-3 { background-color: #dcedc8; } /* Light Green */
.week-color-4 { background-color: #bbdefb; } /* Light Blue */
.week-color-5 { background-color: #ffecb3; } /* Light Orange */
.week-color-6 { background-color: #f3e5f5; } /* Light Purple */
.week-color-7 { background-color: #ffe0b2; } /* Light Peach */
.week-color-8 { background-color: #c8e6c9; } /* Lighter Green */
.week-color-9 { background-color: #b2ebf2; } /* Lighter Cyan */
.week-color-10 { background-color: #ffccbc; } /* Lighter Orange */
.week-color-11 { background-color: #d1c4e9; } /* Lighter Purple */


/* Apply color classes to week headers, day headers, and data cells */
/* Week headers */
.week-header {
    /* You can add borders or other styles here if needed */
     border-right: 1px solid rgba(0,0,0,0.1); /* Subtle border between weeks */
     font-weight: bold;
}
 .week-header:last-child {
     border-right: none; /* Remove border for the last week header */
 }


/* Day headers and Data cells inherit week color */
.day-cell, .attendance-cell {
    /* Base styles for day and attendance cells */
}

/* Use the color classes defined above for background */
.day-cell.week-color-0, .attendance-cell.week-color-0 { background-color: #e0f7fa; }
.day-cell.week-color-1, .attendance-cell.week-color-1 { background-color: #fff9c4; }
.day-cell.week-color-2, .attendance-cell.week-color-2 { background-color: #f8bbd0; }
.day-cell.week-color-3, .attendance-cell.week-color-3 { background-color: #dcedc8; }
.day-cell.week-color-4, .attendance-cell.week-color-4 { background-color: #bbdefb; }
.day-cell.week-color-5, .attendance-cell.week-color-5 { background-color: #ffecb3; }
.day-cell.week-color-6, .attendance-cell.week-color-6 { background-color: #f3e5f5; }
.day-cell.week-color-7, .attendance-cell.week-color-7 { background-color: #ffe0b2; }
.day-cell.week-color-8, .attendance-cell.attendance-cell.week-color-8 { background-color: #c8e6c9; }
.day-cell.week-color-9, .attendance-cell.week-color-9 { background-color: #b2ebf2; }
.day-cell.week-color-10, .attendance-cell.week-color-10 { background-color: #ffccbc; }
.day-cell.week-color-11, .attendance-cell.week-color-11 { background-color: #d1c4e9; }

 /* Ensure text is readable on colored backgrounds */
 .week-header, .day-cell, .attendance-cell {
     color: #333; /* Darker text for readability */
 }

 /* Style for the presence count display */
 .presence-count {
     font-weight: bold;
     margin-right: 5px; /* Space between count and name */
 }

/* ======================= */
/* Homepage Cards Polishing */
/* ======================= */

/* Card image consistency */
.btn-navy-force .card-img-top {
    height: 170px;           /* Uniform height across all cards */
    object-fit: cover;       /* Keep aspect-ratio while filling area */
    border-bottom: 1px solid rgba(0,0,0,0.06);
}

/* Refine card body spacing and typography */
.btn-navy-force .card-body {
    padding: 0.95rem 1rem 1rem 1rem;
}
.btn-navy-force .card-title {
    font-weight: 600;
}
.btn-navy-force .card .text-muted.small {
    line-height: 1.35;
}

/* Subtle card hover elevation */
.btn-navy-force .card {
    transition: transform 180ms ease, box-shadow 180ms ease;
}
.btn-navy-force .card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.08), 0 2px 6px rgba(0,0,0,0.06);
}

/* Button polish inside cards */
.btn-navy-force .card .btn {
    transition: transform 120ms ease, box-shadow 120ms ease;
}
.btn-navy-force .card .btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(0,0,0,0.07);
}

/* Icon color refinement to match theme */
.btn-navy-force .card i.fs-3.text-primary {
    color: #6ea8fe !important; /* softer primary for icons */
}

/* Responsive adjustments */
@media (max-width: 991.98px) { /* md/lg breakpoint */
    .btn-navy-force .card-img-top {
        height: 160px;
    }
}

@media (max-width: 575.98px) { /* xs breakpoint */
    .btn-navy-force .card-img-top {
        height: 150px;
    }
}
