/* ============================================================
   player_availability.css
   Styles for the Player Availability page.
   Built to complement Bootstrap 3.
   ============================================================ */

/* ── Page chrome ─────────────────────────────────────────── */
body {
    background-color: #f4f6f9;
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

/* ── Page header ─────────────────────────────────────────── */
#roster_page_header {
    color: #091c3a;
    font-weight: bold;
    font-size: 52px;
    text-align: center;
}

/* ── Availability-reason group wrapper ───────────────────── */
.availability-group {
    margin-bottom: 36px;
}

/* ── Reason label (desktop left column) ─────────────────── */
.reason-label-col {
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    padding-right: 20px;
}

.reason-label {
    font-size: 50px;
    font-weight: 700;
    color: #091c3a;
    text-align: center;
    line-height: 1.0;
    word-break: break-word;
}

.reason-label-col {
    display: flex;
    justify-content: center;
    align-items: center; /* optional but usually looks better */
}


/* ── Reason header (mobile – shown above stacked cards) ──── */
.reason-header-mobile {
    display: none;          /* hidden on desktop */
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #ffffff;
    background-color: #001540;
    border-radius: 6px;
    padding: 6px 14px;
    margin-bottom: 14px;
    text-align: center;
}

/* ── Cards grid (holds up to 3 per row) ─────────────────── */
.cards-col {
    /* uses Bootstrap col-md-10 on desktop, full-width on mobile */
}

/* flex-row so cards within a group sit in equal-height rows */
.cards-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-left: -10px;
    margin-right: -10px;
}

/* Each card slot */
.card-slot {
    width: 33.333%;
    padding-left: 10px;
    padding-right: 10px;
    margin-bottom: 20px;
    display: flex;
    flex-direction: column;
}

/* ── Player card ─────────────────────────────────────────── */
.player-card-custom {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.10);
    overflow: hidden;
    flex: 1;               /* fill height of slot */
    display: flex;
    flex-direction: row;   /* Horizontal layout: image left, details right */
    align-items: stretch;
    text-align: left;
}

/* ── Image frame ─────────────────────────────────────────── */
.img-frame {
    position: relative;
    width: 45%;            /* Image takes up 45% on desktop */
    flex-shrink: 0;        /* Prevent shrinking */
    background-image: url('https://assets.cdn.thewebconsole.com/S3WEB6803/images/25-Panther-Head-60.png');
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    overflow: hidden;
}

.img-frame .row {
    display: flex;
    margin-left: 0;
    margin-right: 0;
}

/* Jumper-number column */
.jumper-number-container {
    padding: 5px 0 5px 10px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.jumper-number-txt {
    font-size: 40px;
    line-height: 1;
    font-weight: 800;
    color: #001540;
    z-index: 2;
    text-align: left;
}

/* Player image column */
.player-image-container {
    padding-left: 0;
}

.player-photo {
    width: 100%;
    height: auto;
    display: block;
}

/* Gradient fade at foot of photo */
.bottom-fade {
    display: none;
}

/* ── Card details / text section ─────────────────────────── */
.card-details {
    width: 55%;            /* Details take up 55% on desktop */
    padding: 10px 15px;
    color: #001540;
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.firstname-txt {
    font-size: 18px;
    margin-bottom: 0;
    font-weight: 400;
}

.surname-txt {
    font-size: 24px;
    font-weight: 800;
    margin-top: 0;
    margin-bottom: 5px;
    text-transform: capitalize;
    line-height: 1.1;
}

.custom-divider {
    border-top: 3px solid #001540;
    width: 50%;
    margin: 8px 0;
}



/* Availability reason displayed under name */
.availability-reason-txt {
    font-size: 13px;
    color: #6c757d;
    margin-top: 6px;
    font-style: italic;
}

/* Group divider between reason sections */
.group-divider {
    border: 0;
    border-top: 2px solid #dee2e6;
    margin: 10px 0 30px;
}

/* ── Responsive: tablet (≤991px) ─────────────────────────── */
@media (max-width: 991px) {
    .card-slot {
        width: 100%;
    }

    .player-card-custom {
        display: flex;
        flex-direction: row;
        align-items: stretch;
        text-align: left;
        margin-bottom: 15px;
        min-height: 100px;
    }

    .player-card-custom .img-frame {
        width: 50%;
        flex-shrink: 0;
    }

    .player-card-custom .card-details {
        width: 50%;
        padding: 10px 15px;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: flex-start;
    }

    .player-card-custom .firstname-txt {
        font-size: 14px;
    }

    .player-card-custom .surname-txt {
        font-size: 18px;
    }

    .player-card-custom .custom-divider {
        margin: 8px 0;
        width: 50%;
    }

    .player-card-custom .availability-reason-txt {
        font-size: 12px;
    }

    .player-card-custom .jumper-number-container {
        padding: 5px 0 5px 5px;
        justify-content: center;
    }

    .player-card-custom .jumper-number-txt {
        font-size: 35px;
    }

    .reason-label-col {
        display: none;
    }

    .reason-header-mobile {
        display: block;
    }

    .cards-col {
        width: 100% !important;
    }
}

/* ── Responsive: phone (≤575px) ─────────────────────────── */
@media (max-width: 575px) {
    .card-slot {
        width: 100%;
    }

    .player-card-custom {
        display: flex;
        flex-direction: row;
        align-items: stretch;
        min-height: 90px;
        margin-bottom: 12px;
    }

    .player-card-custom .img-frame {
        width: 50%;
    }

    .player-card-custom .card-details {
        width: 50%;
        padding: 8px 10px;
    }

    .player-card-custom .firstname-txt {
        font-size: 12px;
    }

    .player-card-custom .surname-txt {
        font-size: 16px;
        margin-bottom: 3px;
    }

    .player-card-custom .jumper-number-txt {
        font-size: 28px;
    }

    .player-card-custom .availability-reason-txt {
        font-size: 11px;
    }
}

/* ── Empty-state message ─────────────────────────────────── */
.no-players-message {
    text-align: center;
    color: #6c757d;
    font-size: 18px;
    padding: 60px 20px;
}
