/* Sticky Footer Layout */
html {
    height: 100%;
}
body {
    min-height: 100%;
    display: flex;
    flex-direction: column;
}
/* Main content area grows to push footer down */
.container-fluid.top-bar {
    flex-shrink: 0;
}
.container-fluid.px-5 {
    flex: 1 0 auto;
    padding-bottom: 3rem; /* Space before footer */
}
.site-footer {
    flex-shrink: 0;
}
.nav-logo-div { height: 99px; width: 275px; background: url('../img/kchs-horizontal-color-small.svg'); background-repeat: no-repeat; background-size: 275px 99px; }
.navbar-brand { font-size: 2rem; }
.navbar-light .navbar-nav .nav-link { color: #007bff; }
.navbar-dark .navbar-nav .nav-link { color: #fff; }
.nav-link { color: #007bff; }
.top-bar { background-color: rgba(0,0,0,.05); border-bottom: solid 1px #ccc; }
.welcome-header { height:40px; line-height:40px; background-color: #6F9DCF; }
.activity-th { background-color: #283754; }
.error { color: red; }
.btn-secondary { color: #fff; background-color: #283754; border-color: #283754; transition: all 0.2s ease; box-shadow: 0 2px 4px rgba(0,0,0,0.2); }
.btn-secondary:hover { background-color: #3a4d70; border-color: #3a4d70; transform: translateY(-1px); box-shadow: 0 4px 8px rgba(0,0,0,0.3); color: #fff; text-decoration: none; }
.btn-outline-dark { color: #283754; border-color: #283754; }
.fixed-table-loading { min-height: 30px; }
.fixed-table-pagination { border-top: solid 1px #ccc; padding-top: 25px; }
span.page-list { padding-left: 35px; }
.page-item.active .page-link { background-color: #283754; border-color: #283754; }
.page-item .page-link { color: #283754; }
.float-right.search { width: 100%; padding-bottom: 15px; }
#daily_freq, #weekly_freq, #tot_occurrences, #end_date, #weekly_freq_day_num, #weekly_freq_day_month, #weekly_freq_day2_num, #weekly_freq_day2_day, #weekly_freq_day2_num_mon { width: auto; display: inline; }
#ocr, #ocrend, #wfd, #wfd2 { margin-top: .9rem; }
.recur-radio { padding-bottom: 15px; }
div#dTable_info { padding-top: 20px; }
div#dTable_paginate { padding-top: 11px; }
table#dTable { padding-bottom: 10px; }
.striped-bg { background-color: rgba(0,0,0,.05); }
.btn-bt { color: #fff; background-color: #F3871B; border-color: #fff; }
.stat-pad { padding: .25rem; }
.help-button { color: #283754; }
.stat-btn { margin: 5px; }
.stat-btn-mb { margin: 5px; }
.table td, .table th { padding: .25rem; }
.sport-header { border-bottom: solid 1px #ccc; padding-bottom: 3px; margin-bottom: 15px; }
.team-header { font-size: 32px; font-weight: 500; }
.leaders-heading { font-size: 24px; }
.school-heading { font-size: 18px; }
.player-class { font-size: 20px; }
.season-header { border-bottom: solid 1px #ccc; padding-bottom: 3px; font-size: 24px; margin-bottom: 15px; }
.statstable-header { background-color: #010d37; color: #fff; }
/* .statstable-header { cursor: pointer; } */
.stats-row-ml { margin-left: 0; margin-right: 0; }
.sort-hint { font-size: small; }
.little-go { padding: 0 .5rem; margin-bottom: 5px; }
.back-to-top { background-color: #000000; color: #FFFFFF; opacity: 0; transition: opacity .6s ease-in-out; z-index: 999; position: fixed; right: 20px; bottom: 20px; width: 50px; height: 50px; box-sizing: border-box; border-radius: 50%; }
a.back-to-top { font-weight: 1000; letter-spacing: 2px; font-size: 14px; text-transform: uppercase; text-align: center; line-height: 1.6; padding-left: 2px; padding-top: 14px; }
.back-to-top:hover, .back-to-top:focus, .back-to-top:visited { color: #FFFFFF; }
.back-to-top.show { opacity: 1; }
.sgh-header { font-size: 22px; font-weight: 600; }
.btn-nav { width: 133px; /*height: 38px;*/ }
.hidden { display: none; }
.StripeElement { box-sizing: border-box; height: 40px; padding: 10px 12px; line-height: 1.5; border: 1px solid transparent; border-radius: 4px; background-color: white; box-shadow: 0 0 0 1px #e0e0e0, 0 2px 4px 0 rgba(0,0,0,.07), 0 1px 1.5px 0 rgba(0,0,0,.05); -webkit-transition: box-shadow 150ms ease; transition: box-shadow .08s ease-in,color .08s ease-in; }
.btnSub { color: #fff; background-color: #007bff; border-color: #007bff; width: 100%; border-radius: 5px; font-size: 16px; margin-top: 16px; padding: 5px; }
.ad-img { max-width: 250px; }
.ad-img-sm { max-width: 150px; }
.pin-it { position: absolute; bottom: 0; }
.social { width: 25px; }
.player-header { background-color: lightskyblue; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2); }
/* Reason: 3:4 portrait aspect ratio with rounded corners for player profile images */
.player-img { width: 225px; height: 300px; border-radius: 8px; object-fit: cover; }
/* Old footer styles removed - using .site-footer in inc/footer.php instead */
.prem-btn { color: #fff; padding-right: .5rem; padding-left: .5rem; display: block; padding: .5rem 1rem; }
.badge-notify{ background:red; position:relative; top:-12px; border-radius: 5px; left: -10px; padding: 3px; color: #fff; }
.btnSub { background: #007bff; color: #ffffff; font-family: Arial, sans-serif; border-radius: 0 0 4px 4px; border: 0; padding: 12px 16px; font-size: 16px; font-weight: 600; cursor: pointer; display: block; transition: all 0.2s ease; box-shadow: 0px 4px 5.5px 0px rgba(0, 0, 0, 0.07); width: 100%; }
.btnSub:hover { filter: contrast(115%); }
.btnSub:disabled { opacity: 0.5; cursor: default; }
/* spinner/processing state, errors */
.spinner, .spinner:before, .spinner:after { border-radius: 50%; }
.spinner { color: #ffffff; font-size: 22px; text-indent: -99999px; margin: 0px auto; position: relative; width: 20px; height: 20px; box-shadow: inset 0 0 0 2px; -webkit-transform: translateZ(0); -ms-transform: translateZ(0); transform: translateZ(0); }
.spinner:before, .spinner:after { position: absolute; content: ""; }
.spinner:before { width: 10.4px; height: 20.4px; background: #5469d4; border-radius: 20.4px 0 0 20.4px; top: -0.2px; left: -0.2px; -webkit-transform-origin: 10.4px 10.2px; transform-origin: 10.4px 10.2px; -webkit-animation: loading 2s infinite ease 1.5s; animation: loading 2s infinite ease 1.5s; }
.spinner:after { width: 10.4px; height: 10.2px; background: #5469d4; border-radius: 0 10.2px 10.2px 0; top: -0.1px; left: 10.2px; -webkit-transform-origin: 0px 10.2px; transform-origin: 0px 10.2px; -webkit-animation: loading 2s infinite ease; animation: loading 2s infinite ease; }
/* ===========================================
   MODERNIZED NAVIGATION STYLES
   =========================================== */

/* Menu Toggle Button */
.navbar-toggler {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1rem;
    background: #283754;
    border: none;
    border-radius: 8px;
    color: #fff;
    font-size: 0.95rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
}
.navbar-toggler:hover {
    background: #3a4d70;
    transform: translateY(-1px);
}
.navbar-toggler:focus {
    outline: 2px solid #f5a623;
    outline-offset: 2px;
}
.navbar-toggler .menu-icon {
    width: 20px;
    height: 20px;
}

/* Backdrop Overlay */
.nav-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    z-index: 1040;
}
.nav-backdrop.open {
    opacity: 1;
    visibility: visible;
}

/* Off-canvas Menu */
.offcanvas-menu {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 320px;
    max-width: 85vw;
    background: linear-gradient(180deg, #1e2a3a 0%, #283754 100%);
    transform: translateX(100%);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1050;
    display: flex;
    flex-direction: column;
    box-shadow: -4px 0 20px rgba(0, 0, 0, 0.3);
}
.offcanvas-menu.open {
    transform: translateX(0);
}

/* Off-canvas Header */
.offcanvas-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(0, 0, 0, 0.2);
}
.offcanvas-title {
    font-size: 1.1rem;
    font-weight: 600;
    color: #fff;
    letter-spacing: 0.5px;
}
.offcanvas-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: rgba(255, 255, 255, 0.1);
    border: none;
    border-radius: 8px;
    color: #fff;
    cursor: pointer;
    transition: all 0.2s ease;
}
.offcanvas-close:hover {
    background: rgba(255, 255, 255, 0.2);
    transform: scale(1.05);
}

/* Off-canvas Body */
.offcanvas-body {
    flex: 1;
    overflow-y: auto;
    padding: 1rem 0;
}

/* Navigation Sections */
.nav-section {
    padding: 0.5rem 1.5rem 1rem;
}
.nav-section-title {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: rgba(255, 255, 255, 0.4);
    margin-bottom: 0.75rem;
    padding-left: 0.5rem;
}
.nav-section-premium {
    margin-top: auto;
    background: rgba(245, 166, 35, 0.1);
    border-top: 1px solid rgba(245, 166, 35, 0.2);
    padding-top: 1rem;
}

/* Navigation Links */
.offcanvas-menu .navbar-nav {
    list-style: none;
    padding: 0;
    margin: 0;
}
.offcanvas-menu .nav-item {
    margin-bottom: 2px;
}
.offcanvas-menu .nav-link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.7rem 1rem;
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    border-radius: 8px;
    font-size: 0.95rem;
    transition: all 0.2s ease;
}
.offcanvas-menu .nav-link:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    transform: translateX(4px);
}
.offcanvas-menu .nav-link.active {
    background: rgba(245, 166, 35, 0.15);
    color: #f5a623;
    font-weight: 500;
}
.offcanvas-menu .nav-link.active .nav-icon {
    color: #f5a623;
}

/* Navigation Icons */
.nav-icon {
    flex-shrink: 0;
    opacity: 0.7;
    transition: opacity 0.2s ease;
}
.offcanvas-menu .nav-link:hover .nav-icon {
    opacity: 1;
}

/* Postseason Link Special Styling */
.nav-link-postseason {
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.15) 0%, rgba(37, 99, 235, 0.08) 100%);
    border: 1px solid rgba(37, 99, 235, 0.3);
}
.nav-link-postseason:hover {
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.25) 0%, rgba(37, 99, 235, 0.15) 100%) !important;
}
.nav-badge-new {
    display: inline-block;
    margin-left: auto;
    padding: 0.1rem 0.45rem;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.5px;
    color: #fff;
    background: #2563eb;
    border-radius: 4px;
    text-transform: uppercase;
    vertical-align: middle;
}

/* Premium Link Special Styling */
.nav-link-premium {
    background: linear-gradient(135deg, rgba(245, 166, 35, 0.2) 0%, rgba(245, 166, 35, 0.1) 100%);
    border: 1px solid rgba(245, 166, 35, 0.3);
}
.nav-link-premium:hover {
    background: linear-gradient(135deg, rgba(245, 166, 35, 0.3) 0%, rgba(245, 166, 35, 0.2) 100%) !important;
}

/* Hide body scroll when menu is open */
body.nav-open {
    overflow: hidden;
}

/* Responsive adjustments */
@media (max-width: 576px) {
    .offcanvas-menu {
        width: 100%;
        max-width: 100%;
    }
    .navbar-toggler span {
        display: none;
    }
    .navbar-toggler {
        padding: 0.6rem;
    }
}
.sponsor-row { display: flex; flex-wrap: wrap; gap: 1rem; }
.sponsor-box { border: 1px solid #ccc; display: flex; align-items: center; justify-content: center; padding: 1rem; text-align: center; background: #fff; width: 330px; min-height: var(--sponsor-box-height, auto); }
.sponsor-box img { max-width: 90%; height: auto; }
@media (max-width: 991.98px) { .sponsor-box { flex: 0 0 calc(50% - 1rem); width: auto; } }
@media (max-width: 668px) { .prem-btn { display: inline; } /*.btn-nav { height: 62px; }*/ }
@media (max-width: 576px) { .btn-nav { width: 100%; } .navbar-brand { font-size: 1.25rem; } .nav-logo-div { height: 76px; width: 212px; background: url('../img/kchs-horizontal-color-small.svg'); background-repeat: no-repeat; background-size: 212px 76px; } .player-name { font-size: 1.65rem; } .sgh-top { font-size: 22px; } .sgh-header { font-size: 20px; } .team-header { font-size: 28px; } .player-img { width: 180px; height: 240px; } footer { width: auto; } .tb-form { position: relative; bottom: -15px; } /*.stats-row-ml { margin-left: -15px; }*/ }
@media (max-width: 575.98px) { .sponsor-box { flex: 0 0 100%; } }
@media print { body { margin: 0; } .btn-secondary { color: #000; background-color: #fff; border-color: #000; } #btnAvg { display: none; } .px-5 { padding: 0; } }

/* Modern top performers table styles */
.top-performers-table {
    border-collapse: collapse;
    margin-bottom: 0;
}

.top-performers-table thead th {
    border-bottom: 2px solid #dee2e6;
    font-weight: bold;
    padding: 0.5rem 0.25rem;
}

.top-performers-table tbody tr {
    border-bottom: 1px solid #dee2e6;
}

.top-performers-table tbody tr.striped-bg {
    background-color: rgba(0,0,0,.05);
}

.top-performers-table tbody tr:hover {
    background-color: rgba(0,123,255,0.1);
}

.top-performers-table td {
    padding: 0.5rem 0.25rem;
}

/* Screen reader only class for accessibility */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}

/* Focus styles for keyboard navigation */
a:focus,
button:focus,
select:focus,
input:focus {
    outline: 2px solid #007bff;
    outline-offset: 2px;
}