﻿/*
  File: wwwroot/css/physical-fitness.css
  Scope: Views/Resources/PhysicalFitness.cshtml ONLY
  Author: Jessie Martin | Last Updated: 2026-05
  Design: Concept K — Dark Intel
  Palette: #060c18 base · #0B1424 raised · #1F419B blue · #DB4F30 orange · #D7D5CF grey
*/

/* ============================================================
   1. CSS CUSTOM PROPERTIES
   ============================================================ */
:root {
    --pt-bg-base: #060c18;
    --pt-bg-raised: #0B1424;
    --pt-bg-deep: #000;
    --pt-blue: #6482C8;
    --pt-blue-dim: rgba(31, 65, 155, 0.22);
    --pt-blue-mid: rgba(31, 65, 155, 0.45);
    --pt-orange: #DB4F30;
    --pt-orange-dim: rgba(219, 79, 48, 0.18);
    --pt-grey: #D7D5CF;
    --pt-text: #C8D4E8;
    --pt-text-muted: rgba(200, 212, 232, 0.65);
    --pt-border: rgba(31, 65, 155, 0.22);
    --pt-border-bright: rgba(31, 65, 155, 0.45);
    --pt-rule-blue: 2px solid var(--pt-blue);
    --pt-rule-orange: 2px solid var(--pt-orange);
    --pt-rule-grey: 2px solid rgba(215, 213, 207, 0.3);
}

/* ============================================================
   2. SHARED SECTION TYPOGRAPHY
   ============================================================ */
.pt-section-eyebrow {
	font-family: 'Oswald', sans-serif;
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase !important;
	letter-spacing: 0.12em !important;
	color: var(--pt-blue);
	margin-bottom: 0.5rem;
}

.pt-section-heading {
	font-family: 'Oswald', sans-serif;
	font-size: 2.25rem;
	font-weight: 700;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
	color: #FFF;
	margin-bottom: 0.75rem;
	line-height: 1.1;
}

.pt-section-sub {
	font-size: 0.9rem;
	color: var(--pt-text-muted);
	margin-bottom: 2rem;
	max-width: 640px;
	line-height: 1.7;
}

/* =====================================================
    3. HERO SECTION
   ===================================================== */

.pt-hero {
    padding: 5rem 0 4rem;
    border-bottom: 0.5px solid var(--pt-border);
}

.pt-hero__eyebrow {
	font-family: 'Oswald', sans-serif;
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase !important;
	letter-spacing: 0.12em !important;
	color: var(--pt-orange);
	margin-bottom: 0.75rem;
}

.pt-hero__title {
	font-family: 'Oswald', sans-serif;
	font-size: 2.3rem;
	font-weight: 700;
	text-transform: uppercase !important;
	letter-spacing: 0.05em !important;
	color: #fff;
	line-height: 1.05;
	margin-bottom: 0.75rem;
}

.pt-hero__subtitle {
	font-size: 0.9rem;
	color: var(--pt-text-muted);
	max-width: 800px;
	line-height: 1.7;
	margin-bottom: 2.5rem;
}

/* Standards — top-border accent, no card background */
.pt-standards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	margin-bottom: 2rem;
	max-width: 640px;
}

.pt-standard {
	padding-top: 0.875rem;
}

.pt-standard--blue {
	border-top: var(--pt-rule-blue);
}

.pt-standard--orange {
	border-top: var(--pt-rule-orange);
}

.pt-standard__num {
	display: block;
	font-family: 'Oswald', sans-serif;
	font-size: 2rem;
	font-weight: 700;
	color: #FFF;
	line-height: 1;
	margin-bottom: 0.35rem;
}

.pt-standard__label {
	display: block;
	font-family: 'Oswald', sans-serif;
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase !important;
	letter-spacing: 0.07rem !important;
	margin-bottom: 0.2rem;
}

.pt-standard--blue .pt-standard__label {
	color: var(--pt-blue);
}

.pt-standard--orange .pt-standard__label {
	color: var(--pt-orange);
}

.pt-standard__detail {
	display: block;
	font-size: 0.75rem;
	color: var(--pt-text-muted);
}

/* Alert strip */
.pt-alert {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
    padding: 0.875rem 0;
    border-top: 0.5px solid rgba(255, 255, 255, 0.08);
    max-width: 640px;
}

.pt-alert__text {
    font-size: 0.8rem;
    color: var(--pt-text-muted);
    line-height: 1.6;
}

.pt-alert__text i {
    color: var(--pt-orange);
}

.pt-alert__link {
    font-family: 'Oswald', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--pt-blue);
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.15s ease;
}

.pt-alert__link:hover,
.pt-alert__link:focus-visible {
    color: #fff;
}

.pt-alert__link:focus-visible {
    outline: 2px solid var(--pt-grey);
    outline-offset: 3px;
    border-radius: 2px;
}


/* ============================================================
     4. VIDEO SECTION
   ============================================================ */
.pt-video {
	background: var(--pt-bg-deep);
	padding: 4rem 0;
	border-top: 0.5px solid var(--pt-border);
	border-bottom: 0.5px solid var(--pt-border);
}

.pt-video__wrap {
	max-width: 860px;
	margin: 0 auto;
	border-radius: 6px;
	overflow: hidden;
	border: 0.5px solid var(--pt-border-bright);
}

.pt-video__player {
	width: 100%;
	display: block;
	background: var(--pt-bg-base);
}

.pt-video__iframe {
	width: 100%;
	aspect-ratio: 16 / 9;
	display: block;
	border: none;
}

/* =====================================================
   PT SCHEDULE SECTION
===================================================== */

.pt-schedule {
	background: var(--pt-bg-base);
	padding: 4rem 0;
	border-bottom: 0.5px solid var(--pt-border);
}

.pt-schedule .pt-section-sub {
    margin-bottom: 0;
}

.pt-schedule-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    padding-bottom: 1.25rem;
    margin-bottom: 1.5rem;
    border-bottom: 0.5px solid var(--pt-border-bright);
}

/* ev-toggle overrides scoped to this page */
.pt-schedule .ev-toggle {
    width: fit-content;
	border-radius: 3px;
}

.pt-career-toggle-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.4rem;
    flex-shrink: 0;
}

.pt-career-toggle-label {
    font-family: 'Oswald', sans-serif;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    color: var(--pt-blue);
}

.pt-schedule-header .ev-toggle__pill {
    font-size: 0.875rem;
    padding: 0.25rem 1.5rem;
    font-weight: 600;
    letter-spacing: 0.04em !important;
}


/* Filters — underline style, no box */
.pt-filters {
	background: transparent;
	border: none;
	border-radius: 0;
	padding: 0;
	backdrop-filter: none;
}

.pt-filters .form-label {
	font-family: 'Oswald', sans-serif;
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase !important;
	letter-spacing: 0.07em !important;
	color: var(--pt-blue);
	margin-bottom: 0.4rem;
}

.pt-filters .form-select {
	background: var(--pt-bg-deep);		
	border: none;
	border-bottom: 1px solid var(--pt-border-bright);
	border-radius: 0;
	font-size: 0.85rem;
	color: var(--pt-text);
	padding: 0.5rem 2rem 0.5rem 0.5rem;
}

.pt-filters .form-select:focus {
	background: var(--pt-bg-raised);
	border-bottom-color: var(--pt-blue);
	border-radius: 0;
	color: #FFF;
	box-shadow: none;
	outline: none;
}

.pt-filters .form-select option {
	background: var(--pt-bg-raised);
	color: #FFF;
}

/* Reset Filters button — WCAG fix: Bootstrap btn-outline-secondary #6c757d = 4.17:1 FAIL
   on #060c18. Override text color to #7A7A7A = 4.56:1 PASS. */
#resetFilters,
#cveResetFilters {
	color: #7A7A7A;
	border-color: rgba(255, 255, 255, 0.15);
	background: transparent;
}

#resetFilters:hover,
#cveResetFilters:hover {
	color: #fff;
	background: rgba(255, 255, 255, 0.06);
	border-color: rgba(255, 255, 255, 0.25);
}

#resetFilters:focus-visible,
#cveResetFilters:focus-visible {
	outline: 2px solid var(--pt-grey);
	outline-offset: 3px;
	color: #fff;
}

/* Actions bar */
.pt-actions {
	padding: 0.75rem 0;
}

/* Schedule notice — replaces download button */
.pt-schedule-notice {
    font-family: 'Oswald', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--pt-orange); /* orange = attention, not blue = info */
    display: flex;
    align-items: center;
}

.btn-download {
	background: transparent;
	color: var(--pt-blue);
	border: 0.5px solid var(--pt-border-bright);
	font-family: 'Oswald', sans-serif;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.06em !important;
	text-transform: uppercase !important;
	padding: 0.5rem 1.25rem;
	border-radius: 3px;
	transition: background 0.15s ease, color 0.15s ease;
}

.btn-download:hover,
.btn-download:focus-visible {
	background: var(--pt-blue);
	color: #FFF;
	border-color: var(--pt-blue);
}

.calendar-text-muted {
	color: var(--pt-text-muted);
}

/* PT Table */
.pt-table {
	width: 100%;
	border-collapse: collapse;
	border-spacing: 0;
	background: transparent;
}

.pt-table thead {
	background: transparent;
}

.pt-table th {
	padding: 0.625rem 0.75rem;
	font-family: 'Oswald', sans-serif;
	font-size: 0.65rem;
	font-weight: 600;
	text-align: left;
	text-transform: uppercase !important;
	letter-spacing: 0.08em !important;
	color: var(--pt-blue);
	border-bottom: 0.5px solid var(--pt-border-bright);
}

.pt-table tbody tr {
	border-bottom: 0.5px solid rgba(255, 255, 255, 0.06);
	transition: background 0.15s ease;
}

.pt-table tbody tr:hover{
	background: rgba(31, 65, 155, 0.07);
}

.pt-table tbody tr.next-pt-date {
	background: rgba(74, 222, 128, 0.05);
}

.pt-table td {
	padding: 1rem 0.75rem;
	vertical-align: top;
	color: var(--pt-text);
	font-size: 0.85rem;
}

/* Date Badge — stripped down, no gold */
.date-badge {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	background: var(--pt-bg-raised);
	border: 0.5px solid var(--pt-border);
	color: #FFF;
	padding: 0.5rem 0.875rem;
	border-radius: 4px;
	min-width: 80px;
}

.date-badge__day {
	font-family: 'Oswald', sans-serif;
	font-size: 0.6rem;
	font-weight: 600;
	text-transform: uppercase !important;
	letter-spacing: 0.06em !important;
	color: var(--pt-text-muted);
}

.date-badge__date {
	font-family: 'Oswald', sans-serif;
	font-size: 1rem;
	font-weight: 700;
	color: #FFF;
	margin: 0.2rem 0;
}

.date-badge__time {
	font-size: 0.7rem;
	color: var(--pt-text-muted);
}

/* Recruiter Info */
.recruiter-info strong {
	color: #FFF;
	font-size: 0.875rem;
}

.recruiter-info .badge.bg-primary {
	background: var(--pt-blue-dim) !important;
	color: var(--pt-blue);
	border: 0.5px solid var(--pt-border-bright);
	font-size: 0.65rem;
	font-weight: 600;
	letter-spacing: 0.04em !important;
}

/* Contact Link */
.contact-link {
	color: var(--pt-blue);
	text-decoration: none;
	font-size: 0.85rem;
	font-weight: 500;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	transition: color 0.15s ease;
}

.contact-link:hover,
.contact-link:focus-visible {
	color: #FFF;
}

.contact-link:focus-visible {
	outline: 2px solid var(--pt-grey);
	outline-offset: 3px;
	border-radius: 2px;
}

/* Next available row highlight */
.next-pt-date .date-badge {
	border-color: rgba(74, 222, 128, 0.4);
}

.next-pt-date .date-badge__date {
	color: #4ADE80;
}

/* Pagination */
.pagination {
	margin-top: 2rem;
	gap: 4px;
}

.pagination .page-link {
	background: transparent;
	border: 0.5px solid var(--pt-border);
	color: var(--pt-text-muted);
	padding: 0.4rem 0.75rem;
	font-size: 0.8rem;
	border-radius: 3px;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.pagination .page-item.active .page-link {
	background: #1F419B !important;
	border-color: #1F419B !important;
	color: #FFFFFF !important;
}

.pagination .page-link:hover {
	background: var(--pt-blue-dim);
	border-color: var(--pt-blue-bright);
	color: #FFF;
}

.pagination .page-item.disabled .page-link {
	background: transparent;
	border-color: var(--pt-border);
	color: #7A7A7A;
}

/* No results alert */
#noResults,
#cveNoResults {
    background: var(--pt-bg-raised);
    border: 0.5px solid var(--pt-border);
    color: var(--pt-text-muted);
    border-radius: 4px;
    font-size: 0.85rem;
}

#noResults .alert-link,
#cveNoResults .alert-link {
    color: var(--pt-blue);
}

/* No PT Dates */
.pt-notice {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
    background: var(--color-surface, #0D1B2A);
    border: 1px solid var(--dps-blue, #1A3A5C);
    border-left: 4px solid rgba(215, 213, 207, 0.4);
    border-radius: 8px;
    padding: 1.5rem;
    margin-top: 1rem;
}

.pt-notice__icon {
    font-size: 1.75rem;
    color: rgba(215, 213, 207, 0.7);
    flex-shrink: 0;
    line-height: 1;
    padding-top: 0.1rem;
}

.pt-notice__content {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.pt-notice__heading {
    font-family: 'Oswald', sans-serif;
    font-size: 1.1rem;
    font-weight: 600;
    color: #e2e8f0;
    letter-spacing: 0.03em !important;
    text-transform: uppercase !important;
    margin: 0;
}

.pt-notice__body {
    font-size: 0.9rem;
    color: var(--color-text-secondary, #a0aec0);
    margin: 0;
    line-height: 1.6;
}

/* Address map links — WCAG fix: Bootstrap default #0d6efd = 4.35:1 FAIL on #060c18
   Using var(--pt-blue-text) #6482C8 = 5.2:1 PASS */
.address-map-link {
	color: var(--pt-blue-text);
	text-decoration: none;
	font-size: 0.85rem;
	transition: color 0.15s ease;
}

.address-map-link:hover,
.address-map-link:focus-visible {
	color: #fff;
	text-decoration: underline;
}

.address-map-link:focus-visible {
	outline: 2px solid var(--pt-grey);
	outline-offset: 3px;
	border-radius: 2px;
}

/* Contact card inside notice */
.pt-contact {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    margin-top: 0.75rem;
    padding: 0.75rem 1rem;
    background: rgba(255, 255, 255, 0.04);
    border-radius: 6px;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.pt-contact__name {
    font-weight: 600;
    color: var(--color-text-primary, #e2e8f0);
    font-size: 0.95rem;
}

.pt-contact__role {
    font-size: 0.8rem;
    color: var(--color-text-secondary, #a0aec0);
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
}

.pt-contact__email {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.4rem;
    color: var(--dps-blue-light, #4a9eda);
    font-size: 0.9rem;
    text-decoration: none;
    width: fit-content;
}

.pt-contact__email:hover,
.pt-contact__email:focus-visible {
    color: #ffffff;
    text-decoration: underline;
}

.pt-contact__email:focus-visible {
    outline: 2px solid #e2e8f0;
    outline-offset: 2px;
    border-radius: 3px;
}

/* ============================================================
     6. CONDITIONING PROGRAM SECTION
   ============================================================ */

.pt-conditioning {
    background: var(--pt-bg-base);
    padding: 4rem 0;
    border-bottom: 0.5px solid var(--pt-border);
    position: relative;
    overflow: hidden;
}

.pt-conditioning::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url('/images/dpsPpl/GSP/Academy/GSP_academy_7.jpg') center center / cover no-repeat;
    background-attachment: fixed;
    filter: grayscale(100%);
    opacity: 0.06;
    z-index: 0;
}

.pt-conditioning .container {
    position: relative;
    z-index: 1;
}

.pt-conditioning .btn-primary {
    background: #1F419B !important;
    border: 0.5px solid #1F419B !important;
    color: #FFF;
    font-family: 'Oswald', sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    padding: 0.5rem 1.25rem;
    border-radius: 3px;
    transition: background 0.15s ease;
}

.pt-conditioning .btn-primary:hover {
    background: #2A52C0;
    border-color: #2A52C0;
}

/* Phase track header */
.pt-phase-track {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	border-radius: 4px;
	overflow: hidden;
	max-width: 560px;
    margin-bottom: 1.25rem;
}

.pt-phase {
	padding: 0.75rem 1rem;
	text-align: center;
}

.pt-phase--blue {
	border-top: var(--pt-rule-blue);
	background: rgba(31, 65, 155, 0.12);
}

.pt-phase--orange {
	border-top: var(--pt-rule-orange);
	background: rgba(219, 79, 48, 0.1);
}

.pt-phase--grey {
	border-top: var(--pt-rule-grey);
	background: rgba(215, 213, 207, 0.05);
}

.pt-phase__label {
	display: block;
	font-family: 'Oswald', sans-serif;
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase !important;
	letter-spacing: 0.06em !important;
}

.pt-phase--blue .pt-phase__label {
	color: var(--pt-blue);
}

.pt-phase--orange .pt-phase__label {
	color: var(--pt-orange);
}

.pt-phase--grey .pt-phase__label {
	color: rgba(215, 213, 207, 0.6);
}

.pt-phase__weeks {
    display: block;
    font-size: 0.7rem;
    color: var(--pt-text-muted);
    margin-top: 0.2rem;
}

/* Program controls */
.program-controls {
	background: transparent;
	border: none;
	border-radius: 0;
	padding: 0;
	backdrop-filter: none;
    margin-bottom: 1.5rem;
}

.program-controls .form-label {
    font-family: 'Oswald', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase !important;
    letter-spacing: 0.07em !important;
    color: var(--pt-blue);
    margin-bottom: 0.4rem;
}

.program-controls .form-select {
    background: var(--pt-bg-deep);
    border: none;
    border-bottom: 1px solid var(--pt-border-bright);
    border-radius: 0;
    color: var(--pt-text);
    font-size: 0.85rem;
    padding: 0.5rem 2rem 0.5rem 0;
}

.program-controls .form-select:focus {
    background: var(--pt-bg-base);
    border-bottom-color: var(--pt-blue);
    color: #fff;
    box-shadow: none;
    outline: none;
    border-radius: 0;
}

.program-controls .form-select option {
    background: var(--pt-bg-base);
    color: #fff;
}

/* Week cards */
.week-program-card {
    background: transparent;
    border: none;
    border-bottom: 0.5px solid rgba(255, 255, 255, 0.07);
    border-radius: 0;
    margin-bottom: 0;
    overflow: visible;
    backdrop-filter: none;
    transition: none;
}

.week-program-card:first-child {
    border-top: 0.5px solid rgba(255, 255, 255, 0.07);
}

.week-program-card:hover {
    background: rgba(31, 65, 155, 0.04);
    box-shadow: none;
}

.week-program-card__header {
    background: transparent;
    padding: 1.125rem 0;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    border-bottom: none;
}

.week-program-card__header:hover {
    background: transparent;
}

.week-program-card__title {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    flex: 1;
    min-width: 0;
}

.week-program-card__title-left {
    display: flex;
    align-items: center;
    gap: 0.875rem;
}

.week-program-card__subtitle {
    font-size: 0.75rem;
    color: var(--pt-text-muted);
    margin-top: 0;
}

.week-number {
    font-family: 'Oswald', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    color: var(--pt-blue);
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
}

.week-level {
    font-size: 0.6rem;
    font-weight: 600;
    letter-spacing: 0.05em !important;
    padding: 0.25rem 0.625rem;
    border-radius: 20px;
}

/* Override Bootstrap badge colors to match palette */
.week-level.badge.bg-success {
    background: rgba(31, 65, 155, 0.2) !important;
    color: var(--pt-blue) !important;
    border: 0.5px solid var(--pt-border-bright);
}

.week-level.badge.bg-warning {
    background: var(--pt-orange-dim) !important;
    color: var(--pt-orange) !important;
    border: 0.5px solid rgba(219, 79, 48, 0.35);
}

.week-level.badge.bg-danger {
    background: rgba(215, 213, 207, 0.08) !important;
    color: rgba(215, 213, 207, 0.7) !important;
    border: 0.5px solid rgba(215, 213, 207, 0.2);
}

.week-expand-btn {
    background: none;
    border: none;
    color: var(--pt-text-muted);
    font-size: 0.875rem;
    cursor: pointer;
    padding: 0.25rem;
    flex-shrink: 0;
    line-height: 1;
    transition: color 0.15s ease;
}

.week-expand-btn:hover,
.week-expand-btn:focus-visible {
    color: var(--pt-blue);
}

.week-expand-btn:focus-visible {
    outline: 2px solid var(--pt-grey);
    outline-offset: 3px;
    border-radius: 2px;
}

.week-program-card__body {
    padding: 0 0 1.5rem;
    border-top: none;
}

.week-details h5 {
    font-family: 'Oswald', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    color: var(--pt-blue);
    margin-bottom: 0.875rem;
    margin-top: 1.25rem;
}

.week-details ul {
    list-style: none;
    padding: 0;
    margin-bottom: 1rem;
}

.week-details li {
    padding-left: 1.25rem;
    position: relative;
    margin-bottom: 0.5rem;
    color: var(--pt-text);
    font-size: 0.85rem;
}

.week-details li::before {
    content: "—";
    position: absolute;
    left: 0;
    color: var(--pt-blue);
    font-weight: 700;
}

.week-details strong {
    color: #fff;
}

.week-details__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    margin-bottom: 1.25rem;
}

.week-details__overview h5,
.week-details__schedule h5 {
    font-family: 'Oswald', sans-serif;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    color: var(--pt-blue);
    margin-bottom: 0.875rem;
    margin-top: 1.25rem;
}

.week-schedule {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.schedule-day {
    display: grid;
    grid-template-columns: 40px 1fr;
    gap: 0.75rem;
    align-items: baseline;
    padding: 0.4rem 0;
    border-bottom: 0.5px solid rgba(255, 255, 255, 0.05);
}

.schedule-day:last-child {
    border-bottom: none;
}

.schedule-day__name {
    font-family: 'Oswald', sans-serif;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    color: var(--pt-blue);
}

.schedule-day__detail {
    font-size: 0.82rem;
    color: var(--pt-text);
    line-height: 1.5;
}

.week-schedule p {
    margin-bottom: 0.4rem;
    color: var(--pt-text);
    font-size: 0.85rem;
}

.week-schedule p strong {
    color: #fff;
}

.week-actions {
    display: flex;
    gap: 0.75rem;
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 0.5px solid rgba(255, 255, 255, 0.06);
}

.week-actions .btn-outline-primary {
    background: transparent;
    border: 0.5px solid var(--pt-border-bright);
    color: var(--pt-blue);
    font-family: 'Oswald', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    padding: 0.4rem 1rem;
    border-radius: 3px;
    transition: background 0.15s ease, color 0.15s ease;
}

.week-actions .btn-outline-primary:hover,
.week-actions .btn-outline-primary:focus-visible {
    background: var(--pt-blue-dim);
    border-color: var(--pt-border-bright);
    color: #fff;
}

.week-actions .btn-primary {
    background: var(--pt-blue);
    border: 0.5px solid var(--pt-blue);
    color: #fff;
    font-family: 'Oswald', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    padding: 0.4rem 1rem;
    border-radius: 3px;
    transition: background 0.15s ease;
}

.week-actions .btn-primary:hover,
.week-actions .btn-primary:focus-visible {
    background: #2a52c0;
    border-color: #2a52c0;
    color: #fff;
}

/* Week 10 success alert */
.week-details .alert-success {
	background: rgba(31, 65, 155, 0.12);
	border: 0.5px solid var(--pt-border-bright);
	color: var(--pt-text);
	border-radius: 4px;
	font-size: 0.85rem;
}


/* ============================================================
   7. PDF PREVIEW MODAL
   ============================================================ */

.modal-content {
    background: var(--pt-bg-raised);
    border: 0.5px solid var(--pt-border-bright);
    border-radius: 6px;
    color: #fff;
}

.modal-header {
    background: var(--pt-bg-base);
    border-bottom: 0.5px solid var(--pt-border);
    padding: 1rem 1.25rem;
}

.modal-title {
    font-family: 'Oswald', sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: uppercase !important;
    letter-spacing: 0.07em !important;
    color: var(--pt-blue);
}

.modal-header .btn-close {
    filter: invert(1) brightness(0.6);
}

.modal-footer {
    border-top: 0.5px solid var(--pt-border);
    background: var(--pt-bg-base);
}

.modal-footer .btn-secondary {
    background: transparent;
    border: 0.5px solid var(--pt-border-bright);
    color: var(--pt-text-muted);
    font-family: 'Oswald', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    padding: 0.4rem 1rem;
    border-radius: 3px;
}

.modal-footer .btn-secondary:hover {
    background: var(--pt-blue-dim);
    color: #fff;
    border-color: var(--pt-border-bright);
}


/* ============================================================
   8. TRAINING TIPS SECTION
   ============================================================ */
.pt-tips {
	background: var(--pt-bg-base);
	padding: 4rem 0;
}

.pt-tips__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2.5rem;
}

.pt-tip {
	padding-top: 1rem;
}

.pt-tip__rule {
	display: block;
	width: 32px;
	height: 2px;
	background: var(--pt-blue);
	margin-bottom: 1rem;
}

.pt-tip__title {
	font-family: 'Oswald', sans-serif;
	font-size: 1rem;
	font-weight: 600;
	text-transform: uppercase !important;
	letter-spacing: 0.05em !important;
	color: #fff;
	margin-bottom: 0.625rem;
}

.pt-tip__text {
	font-size: 0.85rem;
	color: var(--pt-text-muted);
	line-height: 1.7;
	margin: 0;
}

/* Bootstrap overrides */

.pt-hero .text-muted,
.pt-schedule .text-muted,
.pt-conditioning .text-muted,
.pt-tips .text-muted,
.pt-video .text-muted,
.recruiter-info .text-muted,
.pt-table .text-muted {
    color: var(--pt-text-muted) !important;
}

/* ============================================================
   9. RESPONSIVE — TABLET  (max-width: 991px)
   ============================================================ */
@media (max-width: 991px) {
    .pt-hero__title {
        font-size: 2.75rem;
    }

    .pt-standards {
        gap: 1.5rem;
    }

    .pt-tips__grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 1.5rem;
    }

    .pt-phase-track {
        max-width: 100%;
    }
}


/* ============================================================
   10. RESPONSIVE — MOBILE  (max-width: 767px)
   ============================================================ */
@media (max-width: 767px) {
    .pt-hero {
        padding: 3.5rem 0 3rem;
    }

    .pt-hero__title {
        font-size: 2.25rem;
    }

    .pt-standards {
        grid-template-columns: repeat(3, 1fr);
        gap: 1rem;
        max-width: 100%;
    }

    .pt-standard__num {
        font-size: 1.5rem;
    }

    .pt-alert {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
        max-width: 100%;
    }

    .pt-section-heading {
        font-size: 1.75rem;
    }

    .pt-tips__grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .pt-phase-track {
        max-width: 100%;
    }

    /* Table — card layout on mobile */
    .pt-table {
        display: block;
    }

    .pt-table thead {
        display: none;
    }

    .pt-table tbody,
    .pt-table tr {
        display: block;
        width: 100%;
    }

    .pt-table tr {
        background: var(--pt-bg-raised);
        border: 0.5px solid var(--pt-border);
        border-radius: 4px;
        margin-bottom: 0.875rem;
        padding: 0.875rem;
    }

    .pt-table td {
        display: block;
        text-align: left;
        padding: 0.5rem 0;
        border: none;
        font-size: 0.85rem;
    }

    .pt-table td::before {
        content: attr(data-label);
        font-family: 'Oswald', sans-serif;
        font-size: 0.6rem;
        font-weight: 600;
        color: var(--pt-blue);
        display: block;
        margin-bottom: 0.35rem;
        text-transform: uppercase;
        letter-spacing: 0.07em;
    }

    .date-badge {
        width: auto;
        display: inline-flex;
    }

    .week-actions {
        flex-direction: column;
    }

    .week-program-card__header {
        padding: 1rem 0;
    }
}

/* ============================================================
   11. RESPONSIVE — MEDIUM MOBILE  (max-width: 576px)
   ============================================================ */
@media (max-width: 576px) {
    .pt-cpd-notice {
        flex-direction: column;
        gap: 0.75rem;
    }
}


/* ============================================================
   11. RESPONSIVE — SMALL MOBILE  (max-width: 480px)
   ============================================================ */
@media (max-width: 480px) {
    .pt-hero__title {
        font-size: 1.875rem;
    }

    .pt-standards {
        grid-template-columns: repeat(3, 1fr);
        gap: 0.75rem;
    }

    .pt-standard__num {
        font-size: 1.375rem;
    }

    .pt-standard__label {
        font-size: 0.6rem;
    }

    .pt-standard__detail {
        display: none;
    }

    .pt-section-heading {
        font-size: 1.5rem;
    }
}
