/* ===== Brand bar ===== */
.gfl-nav {
    background: linear-gradient(90deg, #2c3e50, #18bc9c);
}

    .gfl-nav .navbar-brand,
    .gfl-nav .nav-link {
        color: #fff !important;
    }

        .gfl-nav .nav-link:hover {
            opacity: .9;
        }

/* ===== Footer ===== */
.gfl-footer {
    background: linear-gradient(90deg, #2c3e50, #1a252f);
}

/* ===== Filters ===== */
.gfl-filters .form-label {
    font-weight: 600;
    color: #566;
}

.gfl-filters .form-select, .gfl-filters .form-check-label {
    font-size: .95rem;
}

/* ===== Scoreboard table look ===== */
.table.gfl-board > thead th {
    white-space: nowrap;
    font-size: .9rem;
    color: #567;
}

.table.gfl-board tbody tr {
    transition: transform .08s ease, box-shadow .08s ease;
    border-bottom: 1px solid rgba(0,0,0,.05);
}

    .table.gfl-board tbody tr:hover {
        transform: translateY(-1px);
        box-shadow: 0 6px 18px rgba(0,0,0,.08);
    }

/* ===== Badges ===== */
.badge-type {
    font-variant: all-small-caps;
    letter-spacing: .5px;
}

.badge-final {
    background: #e74c3c;
}

.badge-scheduled {
    background: #95a5a6;
}

/* ===== Team styles ===== */
.team-name {
    font-weight: 700;
}

.team-sub {
    color: #869;
}

.fav-row {
    outline: 2px solid rgba(24,188,156,.5);
    outline-offset: -2px;
    background: rgba(24,188,156,.06);
}

.btn-star {
    border: none;
    background: transparent;
    cursor: pointer;
    line-height: 1;
    color: #bdc3c7;
}

    .btn-star.active, .btn-star:hover {
        color: #f1c40f;
    }

.score-cell {
    font-family: ui-monospace, Menlo, Consolas, monospace;
}

.score-win {
    color: #27ae60;
    font-weight: 700;
}

.score-lose {
    color: #c0392b;
    font-weight: 700;
}

.score-dash {
    color: #95a5a6;
}

/* ===== Sticky date header (future grouping) ===== */
.sticky-date {
    position: sticky;
    top: 68px;
    z-index: 10;
    background: #fff;
    padding: .5rem 0;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
}

/* ===== Utilities ===== */
.text-xxs {
    font-size: .8rem;
}

.minw-0 {
    min-width: 0;
}

.text-truncate {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ===== Hero + Cards ===== */
.gfl-hero {
    /* image layering / turf vibe */
    background: radial-gradient(circle at 20% 20%, rgba(0,0,0,.25), transparent 50%), radial-gradient(circle at 80% 0%, rgba(255,255,255,.12), transparent 40%), repeating-linear-gradient(90deg, rgba(255,255,255,.08) 0 2px, transparent 2px 50px), linear-gradient(135deg, #1a472a, #0d2a15);
    background-color: #0d2a15; /* fallback */
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    min-height: 420px;
    border-radius: 1rem;
    position: relative;
}

.hero-overlay {
    background: linear-gradient(0deg, rgba(0,0,0,.45), rgba(0,0,0,.45));
}

.title-font {
    font-family: 'Anton', Impact, sans-serif;
    letter-spacing: .5px;
}

.text-shadow {
    text-shadow: 0 2px 8px rgba(0,0,0,.6);
}

.gfl-card {
    border-radius: 1rem;
}

    .gfl-card .card-header {
        border-top-left-radius: 1rem;
        border-top-right-radius: 1rem;
    }

@media (min-width:768px) {
    .gfl-hero {
        min-height: 420px;
    }
}

@media (min-width:1200px) {
    .gfl-hero {
        min-height: 500px;
    }
}

/* Friendlier hero + headings on phones */
@media (max-width: 575.98px) {
    .gfl-hero {
        min-height: 160px;
        background-size: cover;
        background-position: center;
    }

        .gfl-hero .display-5 {
            font-size: 1.5rem;
        }

        .gfl-hero .lead {
            font-size: .95rem;
        }
}

/* ===== Tables & cells ===== */
.col-score {
    width: 72px;
}

.col-score-wide {
    width: 110px;
}

.table tr.row-link {
    cursor: pointer;
}

    .table tr.row-link:hover {
        background-color: var(--bs-table-hover-bg, #f8f9fa);
    }

/* Let text wrap instead of forcing horizontal scroll on small screens */
.gfl-card table th, .gfl-card table td {
    white-space: normal;
    word-break: break-word;
}

/* Truncate long team names gracefully (schedule/table default) */
.team-cell {
    max-width: 12rem;
}

@media (min-width: 992px) {
    .team-cell {
        max-width: 16rem;
    }
}

/* Tappable rows: bigger touch target on coarse pointers */
@media (pointer: coarse) {
    .table.table-sm .align-middle > :is(td, th) {
        padding-top: .9rem;
        padding-bottom: .9rem;
    }
}

/* Compact, readable “Rank” chip on cards */
.rank-chip {
    width: 52px;
    border-radius: .5rem;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    padding: .25rem .25rem;
    line-height: 1;
}

.rank-num {
    font-weight: 700;
    font-size: 1.15rem;
}

.rank-label {
    font-size: .65rem;
    color: var(--bs-secondary-color);
}

/* Smaller gutters for the filter row on phones */
@media (max-width: 575.98px) {
    .gfl-filters .form-label {
        margin-bottom: .25rem;
    }
}

/* ===== Phone-only polish for the Week controls (preserves desktop) ===== */
@media (max-width: 576px) {
    /* stretch items nicely */
    form.gfl-filters .col-12.col-md-4 .d-flex.flex-wrap {
        align-items: stretch;
    }

        /* keep Prev/Next side-by-side evenly */
        form.gfl-filters .col-12.col-md-4 .d-flex.flex-wrap > a.btn.btn-outline-primary.btn-sm.flex-fill {
            flex: 1 1 calc(50% - .5rem);
            height: 44px;
            border-radius: .375rem;
        }

    /* date becomes a full-width “pill” under the buttons */
    form.gfl-filters .week-badge {
        order: 3;
        width: 100%;
        height: 44px;
        display: flex;
        align-items: center;
        justify-content: center;
        border: 1px solid rgba(0,0,0,.125);
        border-radius: .375rem;
        background: var(--bs-light, #f8f9fa);
        font-weight: 600;
    }
}