/* Programme choices occupy the available viewport; every other view keeps its layout. */
body.programme-menu-open { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
body.programme-menu-open > .header,
body.programme-menu-open > .footer { flex-shrink: 0; }
body.programme-menu-open > main { flex: 1; display: flex; flex-direction: column; padding-block: 24px; }
body.programme-menu-open > main > .warning { flex-shrink: 0; }
body.programme-menu-open .header .nav,
body.programme-menu-open .header .all-skills-button,
body.programme-menu-open .header .scoring-lock-button,
body.programme-menu-open .footer .main-menu-button { display: none; }
body.programme-menu-open .header-inner { flex-wrap: nowrap; }
body.programme-menu-open .utilities { margin-left: auto; }
.programme-menu { flex: 1; display: flex; flex-direction: column; width: 100%; max-width: 1100px; margin: 0 auto; padding: clamp(12px, 3vh, 30px) 0; font-family: var(--font-ui, "Plus Jakarta Sans", system-ui, sans-serif); }
.programme-menu[hidden] { display: none; }
.programme-heading { margin-bottom: 26px; }
.programme-heading h1 { font-size: clamp(30px, 4vw, 42px); font-weight: 750; line-height: 1.15; letter-spacing: -.045em; margin: 0; }
.programme-cards { flex: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.programme-card { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 20px; grid-template-rows: auto auto; align-content: center; align-items: start; column-gap: 14px; row-gap: 11px; min-width: 0; min-height: 240px; padding: clamp(25px, 4vw, 48px); border: 1px solid var(--p40-soft-edge); border-radius: 17px; background: var(--p40-surface); color: var(--text); font-family: inherit; text-align: left; cursor: pointer; box-shadow: 0 4px 16px #00000014; transition: border-color .2s ease, background-color .2s ease, transform .2s ease; }
.programme-card-title { grid-column: 1; grid-row: 1; font-size: clamp(26px, 3.2vw, 36px); font-weight: 750; letter-spacing: -.035em; line-height: 1.2; }
.programme-card-copy { grid-column: 1; grid-row: 2; color: var(--muted); font-size: 13px; font-weight: 450; line-height: 1.7; }
.programme-card-chevron { grid-column: 2; grid-row: 1; align-self: center; display: block; width: 18px; height: 18px; color: var(--purple); opacity: .75; transition: transform .2s ease, opacity .2s ease; }
.programme-card-chevron svg { display: block; width: 100%; height: 100%; }
.programme-card:focus-visible, .entry-filters > summary:focus-visible { outline: 2px solid var(--purple); outline-offset: 4px; }
.entry-filters { margin: 0 0 18px; min-width: 0; border: 1px solid var(--p40-edge); border-radius: 13px; background: var(--p40-surface); box-shadow: var(--p40-shadow); }
.entry-filters > summary { display: flex; align-items: center; gap: 14px; min-width: 0; min-height: 52px; padding: 12px 17px; list-style: none; cursor: pointer; border-radius: 13px; }
.entry-filters > summary::-webkit-details-marker { display: none; }
.entry-filter-label { color: var(--text); font-size: 13px; font-weight: 750; flex-shrink: 0; }
.entry-filter-summary { min-width: 0; flex: 1; color: var(--muted); font-size: 11px; line-height: 1.5; }
.entry-filter-chevron { margin-left: auto; color: var(--purple); transition: transform .2s; }
.entry-filters[open] .entry-filter-chevron { transform: rotate(180deg); }
.entry-filter-content { padding: 18px; border-top: 1px solid var(--p40-edge); }
#leaderboardFilters .board-filter-controls { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 16px; margin: 0; }
#leaderboardFilters .board-age-filter { width: 100%; min-width: 0; max-width: none; }
#leaderboardFilters select { width: 100%; min-width: 0; max-width: 100%; }
.entry-filter-footer { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 16px; }
.entry-filter-footer p { margin: 0; font-size: 11px; color: var(--muted); line-height: 1.6; }
.entry-filter-footer button { flex-shrink: 0; min-height: 40px; font-size: 11px; }
#dashboard .apparatus-toolbar { margin-bottom: 12px; }
@media (hover: hover) {
 .programme-card:hover { transform: translateY(-1px); border-color: #bd9bff70; background: var(--p40-subtle); }
 .programme-card:hover .programme-card-chevron { transform: translateX(2px); opacity: 1; }
 .entry-filters > summary:hover { background: var(--p40-subtle); }
}
@media (max-width: 600px) {
 body.programme-menu-open > main { padding-block: 18px; }
 .programme-menu { padding-block: 14px; }
 .programme-heading { margin-bottom: 22px; }
 .programme-cards { grid-template-columns: minmax(0, 1fr); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 12px; }
 .programme-card { min-height: 150px; padding: 24px; border-radius: 15px; row-gap: 9px; }
 .programme-card-title { font-size: 26px; }
 .programme-card-copy { font-size: 12px; }
 .entry-filters > summary { gap: 10px; padding: 12px 14px; }
 .entry-filter-summary { font-size: 10px; }
 .entry-filter-content { padding: 14px; }
 #leaderboardFilters .board-filter-controls { grid-template-columns: minmax(0, 1fr); gap: 12px; }
 .entry-filter-footer { align-items: flex-start; flex-direction: column; gap: 10px; }
}
body.no-motion .programme-card, body.no-motion .programme-card-chevron, body.no-motion .entry-filter-chevron { transition: none; }
body.no-motion .programme-card:hover, body.no-motion .programme-card:hover .programme-card-chevron { transform: none; }
@media (prefers-reduced-motion: reduce) {
 .programme-card, .programme-card-chevron, .entry-filter-chevron { transition: none; }
 .programme-card:hover, .programme-card:hover .programme-card-chevron { transform: none; }
}
@media (max-width: 600px) and (max-height: 680px) {
 body.programme-menu-open > main { padding-block: 12px; }
 .programme-menu { padding-block: 8px; }
 .programme-heading { margin-bottom: 18px; }
 .programme-heading h1 { font-size: 29px; }
 .programme-cards { gap: 10px; }
 .programme-card { min-height: 116px; padding: 18px; }
 .programme-card-title { font-size: 22px; }
 .programme-card-copy { font-size: 11px; line-height: 1.6; }
}
