/* Shared shell density keeps navigation stable between courses and lessons. */
.site-header{height:64px}
main{padding-top:12px}
.catalog-bar{margin-bottom:8px;align-items:center}
.catalog-bar label{font-size:10px}
.catalog-bar select{padding:7px;margin-top:3px}
.catalog-bar>button{padding:9px 14px}
.page-heading{margin-bottom:10px;flex-direction:row;align-items:center;gap:12px}
.page-heading .eyebrow,.page-heading p{display:none}
.page-heading h1{font-size:24px;line-height:1.15;margin:4px 0;letter-spacing:-.7px}
.page-heading>.primary{padding:10px 14px}
.race-overview{padding:10px 12px;margin-bottom:10px;display:flex;align-items:center;gap:14px}
.race-heading{flex:0 0 155px;display:block}
.race-heading .eyebrow{font-size:8px;letter-spacing:1px}
.race-heading h2{font-size:13px;margin:5px 0}
.race-heading>.quiet,.race-overview>.hint{display:none}
.race-scoreboard{flex:1;min-width:0;padding-bottom:2px;gap:8px}
.race-score{min-width:200px;padding:7px 9px;gap:8px}
.race-score .team-emblem{width:32px;height:32px;padding:3px;font-size:13px}
.race-team-name b{font-size:11px}
.race-score small{font-size:9px;margin-top:3px}
.race-score>strong{font-size:18px}
.board{max-width:none}
.board-toolbar{min-height:36px;padding-inline:14px}
.board-tabs{gap:10px}
.board-tabs button{padding:7px 9px;font-size:11px}
.selected-tab{font-size:11px}
.map-canvas{margin-inline:auto;max-height:none;aspect-ratio:3/2;container-type:inline-size}
.board-bottom{padding:9px 14px;min-height:32px}
.mission-pin>span{width:clamp(24px,5cqw,46px);height:clamp(24px,5cqw,46px);font-size:clamp(11px,2cqw,18px)}
.mission-pin small{top:calc(clamp(24px,5cqw,46px) + 5px);font-size:clamp(8px,1.2cqw,11px)}
.racing-map .mission-pin>span{width:22px;height:22px;font-size:10px}
.team-race-pin{width:clamp(30px,5.6cqw,56px);height:clamp(46px,7.5cqw,72px)}
.team-race-pin .team-emblem{width:clamp(30px,5.4cqw,52px);height:clamp(30px,5.4cqw,52px);padding:3px;font-size:14px}
.race-pin-points{top:calc(clamp(30px,5.4cqw,52px) + 4px);font-size:clamp(8px,1.15cqw,11px);padding:3px 5px}
.race-rank{font-size:9px;padding:3px 5px;right:-4px;top:-7px}
.racing-map .map-legend{display:none}
@media(max-width:850px){.race-heading{display:none}.page-heading h1{font-size:20px}}
@media(max-width:700px){.site-header{height:54px}.player-panel{padding:6px 12px;grid-template-columns:42px 1fr 90px;gap:3px}.portrait{height:42px}.portrait>svg{width:42px;height:42px}.player-name strong{font-size:14px;margin:2px 0}.player-stats{padding:3px 0}.player-panel nav{gap:2px}.nav-item{padding:6px;margin-bottom:0}main{padding:8px 12px 25px}.catalog-bar{flex-wrap:nowrap;gap:6px;margin-bottom:6px}.catalog-bar label{min-width:0}.catalog-bar>button{font-size:10px;padding:8px}.page-heading{margin-bottom:7px}.page-heading h1{font-size:18px}.page-heading>.primary{font-size:10px;padding:8px;white-space:normal}.race-overview{padding:6px;margin-bottom:7px}.race-score{min-width:190px;padding:5px 7px}.board-toolbar{padding-inline:7px}.board-tabs{gap:0}.board-tabs button,.selected-tab{font-size:9px}.board-bottom>span{display:none}.board-bottom{padding:7px 10px;min-height:26px}.board-bottom strong{margin-left:0}.board-bottom progress{flex:1}.map-legend{font-size:7px}}
.map-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}
.map-layout:has(>.race-overview){grid-template-columns:minmax(0,1fr) 220px}
.map-layout>.board{min-width:0}
.map-layout>.race-overview{display:flex;flex-direction:column;align-items:stretch;gap:16px;margin:0;padding:16px;max-height:var(--map-board-height,70vh);overflow-y:auto}
.map-layout .race-heading{display:block;flex:0 0 auto}
.map-layout .race-heading .eyebrow{font-size:9px}
.map-layout .race-heading h2{font-size:17px;line-height:1.3;margin:8px 0 12px}
.map-layout .race-heading>.quiet{display:inline-block;padding:0;font-size:11px;color:var(--cyan)}
.map-layout .race-scoreboard{display:flex;flex-direction:column;flex:0 0 auto;overflow:visible;gap:10px;padding:0}
.map-layout .race-score{min-width:0;width:100%;display:grid;grid-template-columns:36px minmax(0,1fr);padding:12px;gap:10px}
.map-layout .race-score .team-emblem{width:36px;height:36px}
.map-layout .race-team-name b{font-size:12px}
.map-layout .race-score>strong{grid-column:1/-1;border-top:1px solid var(--line);padding-top:10px;text-align:left;font-size:25px}
.map-layout .race-score>strong small{display:inline;margin-left:5px;font-size:10px}
.map-layout .race-overview>.hint{display:block;font-size:10px;line-height:1.5;margin:0}
@media(max-width:1000px){.map-layout:has(>.race-overview){grid-template-columns:minmax(0,1fr)}.map-layout>.race-overview{max-height:none;overflow:visible}.map-layout .race-scoreboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.map-layout .race-score{min-width:0}}

html{scrollbar-gutter:stable}.map-layout{grid-template-columns:minmax(0,1fr) 220px}.learning-layout{grid-template-columns:minmax(0,1fr) 220px;gap:14px;align-items:start}.page-heading{min-height:42px}.page-heading h1{max-width:100%;overflow-wrap:anywhere}.catalog-bar{min-height:50px}.catalog-bar label{flex:1;min-width:0}.catalog-bar select{width:100%}.lesson.panel{padding:18px}.lesson.panel>h2{font-size:20px;margin:5px 0 12px}.lesson.panel>.eyebrow{display:none}.lesson-summary{padding:18px}.lesson-summary .quiet{display:block;text-align:left}.player-panel{padding-top:16px}.portrait{height:120px}.portrait>svg{width:120px;height:120px}.player-name{padding:10px 8px}.player-name strong{font-size:18px}.player-stats{padding:10px 0;margin-bottom:10px}.nav-item{padding:10px;margin-bottom:2px}.side-progress{margin-top:14px}.sidebar-note{display:none}@media(max-width:1000px){.learning-layout,.map-layout{grid-template-columns:minmax(0,1fr)}}@media(max-width:700px){.portrait{height:42px}.portrait>svg{width:42px;height:42px}.player-name{padding:3px}.player-panel{padding:6px 12px}.nav-item{padding:6px}.catalog-bar{min-height:45px}.page-heading{min-height:38px}.lesson.panel{padding:12px}.lesson.panel>h2{font-size:16px}}
