/* Independent kitchens: compact match strip, warm tickets and large play fields. */
.race-scoreboard { display: grid; grid-template-columns: 1fr 140px 1fr; flex: none; align-items: center; gap: 12px; min-height: 51px; margin: 0 8px 5px; padding: 4px 14px; border: 1px solid #4a5b4e; border-radius: 7px; background: linear-gradient(100deg,#2e4035,#222a26 47%,#3c332d); }
.race-team-score { display: flex; align-items: center; gap: 10px; min-width: 0; }
.race-team-score>span { color: #b4dec5; font-size: 12px; font-weight: 550; white-space: nowrap; }
.race-team-score>span:before { content: ''; display: inline-block; width: 6px; height: 6px; margin-right: 6px; background: var(--cyan); border-radius: 50%; }
.race-team-score strong { color: #edf0dd; font-size: 29px; font-weight: 550; line-height: 1.15; font-variant-numeric: tabular-nums; }
.race-team-score>small { font-size: 10px; color: #98b59d; white-space: nowrap; }
.race-team-score[data-team="1"] { justify-content: flex-end; }
.race-team-score[data-team="1"]>span { color: #e8baa3; }
.race-team-score[data-team="1"]>span:before { background: var(--coral); }
.race-team-score[data-team="1"]>small { color: #b9a18b; }
.race-match-clock { text-align: center; color: #acbda6; }
.race-match-clock>span, .race-match-clock small { display: none; }
.race-match-clock strong { display: block; color: #e3e9d5; font-size: 24px; font-weight: 500; line-height: 1.2; font-variant-numeric: tabular-nums; }
.canvas-wrap.is-kitchen-race { display: flex; flex-direction: column; margin-inline: 8px; }
.kitchen-race-view { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: minmax(0,1fr); gap: 8px; width: 100%; height: 100%; min-height: 0; flex: 1; }
.race-kitchen { display: grid; grid-template-rows: 24px max-content minmax(0,1fr); min-width: 0; min-height: 0; overflow: hidden; border: 1px solid #52654f; border-radius: 7px; background: #263526; }
.race-kitchen[data-team="1"] { border-color: #77604d; }
.race-kitchen>header { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 3px 9px; color: #b7dab3; background: #30442f; font-size: 11px; line-height: 1.2; }
.race-kitchen>header strong { font-weight: 500; }
.race-kitchen>header span { font-size: 10px; color: #9db693; white-space: nowrap; }
.race-kitchen[data-team="1"]>header { color: #edc1a3; background: #4a3b2c; }
.race-kitchen[data-team="1"]>header span { color: #c2aa8e; }
.race-kitchen canvas { display: block; width: 100%; height: 100%; min-height: 0; touch-action: none; cursor: default; }
.race-orders { display: flex; align-items: stretch; gap: 5px; min-height: 56px; padding: 5px; background: #202b21; overflow-x: auto; scrollbar-width: thin; }
.race-order { display: grid; grid-template-columns: minmax(0,1fr) auto; grid-template-rows: 17px 13px 3px; gap: 2px 5px; flex: 1 0 75px; min-width: 0; padding: 4px 6px; border: 1px solid #bdbea1; border-radius: 4px; background: #e9e5cc; color: #4b533a; }
.race-order strong { grid-row: 1; grid-column: 1; align-self: center; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; font-weight: 650; color: #465237; line-height: 1.2; }
.race-order .race-order-food { grid-column: 2; grid-row: 1/3; align-self: center; display: block; margin: 0; font-size: 19px; letter-spacing: 1px; line-height: 1.15; white-space: nowrap; }
.race-order small { grid-column: 1; grid-row: 2; display: block; color: #858767; font-size: 9px; line-height: 1.2; white-space: nowrap; }
.race-order .progress-track { grid-row: 3; grid-column: 1/-1; height: 3px; background: #cad0a6; margin: 0; }
.race-order .progress-track>span { background: #839e6b; }
.race-order.is-next { border-color: #a5b387; box-shadow: inset 2px 0 #8caa6d; }
.race-order.is-urgent { background: #edddbb; border-color: #c39f6c; }
.race-order.is-urgent small { color: #aa7448; }
.race-order.is-urgent .progress-track>span { background: #c48b57; }
.kitchen-race-view[data-focus="0"], .kitchen-race-view[data-focus="1"] { grid-template-columns: 1fr; grid-template-rows: minmax(0,1fr); }
.kitchen-race-view[data-focus="0"] .race-kitchen[data-team="1"], .kitchen-race-view[data-focus="1"] .race-kitchen[data-team="0"] { display: none; }
.race-camera-controls { display: flex; align-items: center; gap: 2px; padding: 2px; border: 1px solid #47574a; border-radius: 7px; background: #19231c; }
.race-camera-controls .toggle-control { min-height: 40px; padding: 7px 13px; border-color: transparent; background: transparent; color: #9caf98; }
.race-camera-controls .is-active { color: #ecf3df; background: #3a5237; border-color: #58754d; }
#spectator-panel[data-camera-mode="free"] canvas { cursor: grab; }
#spectator-panel[data-camera-mode="free"] canvas:active { cursor: grabbing; }
#spectator-panel[data-camera-mode="fixed"] .canvas-wrap:has(#kitchen3d-canvas:not([hidden])), #spectator-panel[data-camera-mode="fixed"] .canvas-wrap:has(#race3d-a:not([hidden])) { touch-action: pan-y; }
#spectator-panel[data-camera-mode="fixed"] #kitchen3d-canvas, #spectator-panel[data-camera-mode="fixed"] #race3d-a, #spectator-panel[data-camera-mode="fixed"] #race3d-b { touch-action: pan-y !important; }
.canvas-wrap.is-kitchen-race:has(>#arena-canvas:not([hidden])) .kitchen-race-view { height: auto; flex: 0; grid-template-rows: auto; }
.canvas-wrap.is-kitchen-race>#arena-canvas:not([hidden]) { flex: 1; min-height: 0; height: 0; }
.race-learning { margin-bottom: 16px; background: #222e23; border-color: #4a6147; }
.race-learning>header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px; }
.race-learning h3 { font-size: 18px; font-weight: 550; }
.race-learning header p { display: flex; gap: 12px; flex-wrap: wrap; font-size: 12px; color: #a6bd9e; margin-top: 6px; }
.race-learning-facts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-block: 1px solid #41583d; }
.race-learning-facts>div { padding: 14px 18px; border-right: 1px solid #41583d; }
.race-learning-facts>div:last-child { border-right: 0; }
.race-learning-facts span { color: #a3b899; font-size: 11px; }
.race-learning-facts strong { display: block; margin-top: 6px; font-size: 27px; color: #e2e8d1; font-weight: 500; font-variant-numeric: tabular-nums; }
.race-course { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 14px 18px; }
.race-course strong { font-size: 12px; font-weight: 500; color: #c3d5b4; }
.race-course>span { color: #a3b698; font-size: 12px; }
.race-admission-note { padding: 0 18px 15px; color: #c7d3ae; font-size: 12px; line-height: 1.8; }
.race-learning>details { padding-block: 12px; border-top: 1px solid #41583d; }
.race-learning summary { padding-inline: 18px; color: #a8bc9b; font-size: 12px; }
.race-learning details p { margin: 12px 18px 0; color: #95ab87; font-size: 11px; line-height: 1.8; }
.race-learning details th, .race-learning details td { padding: 10px 15px; font-size: 11px; }
.race-training-options { margin: 18px 0; padding: 14px; border: 1px solid #496444; border-radius: 7px; background: #283c27; }
.race-training-options summary { color: #bad4ac; font-size: 12px; }
.race-training-options .form-grid { margin: 15px 0; }
.race-training-options p { color: #9bb98c; font-size: 11px; line-height: 1.8; }
@media(max-width:700px) {
  .race-scoreboard { min-height: 43px; grid-template-columns: 1fr 67px 1fr; gap: 4px; margin: 0 4px 4px; padding: 3px 7px; }
  .race-team-score { gap: 6px; flex-wrap: nowrap; }
  .race-team-score>span { font-size: 10px; }
  .race-team-score>span:before { width: 5px; height: 5px; margin-right: 4px; }
  .race-team-score strong { font-size: 24px; }
  .race-team-score>small { display: none; }
  .race-match-clock strong { font-size: 20px; }
  .canvas-wrap.is-kitchen-race { margin-inline: 4px; }
  .kitchen-race-view { grid-template-columns: 1fr; grid-template-rows: repeat(2,minmax(0,1fr)); gap: 5px; }
  .race-kitchen { grid-template-rows: 21px max-content minmax(0,1fr); border-radius: 5px; }
  .race-kitchen>header { padding: 3px 7px; font-size: 10px; }
  .race-kitchen>header span { font-size: 9px; }
  .race-orders { min-height: 49px; gap: 4px; padding: 4px; }
  .race-order { flex-basis: 74px; grid-template-rows: 14px 11px 3px; gap: 2px 4px; padding: 3px 5px; }
  .race-order strong { font-size: 9px; }
  .race-order small { font-size: 8px; }
  .race-order .race-order-food { font-size: 17px; letter-spacing: 0; }
  .race-camera-controls { order: 3; padding: 0; height: 46px; flex: 1; }
  .race-camera-controls .toggle-control { flex: 1; min-height: 44px; min-width: 0; padding: 7px 9px; font-size: 11px; }
  .race-learning>header { padding: 15px 14px; }
  .race-learning h3 { font-size: 16px; }
  .race-learning header p { font-size: 11px; gap: 5px 12px; }
  .race-learning-facts { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .race-learning-facts>div { padding: 13px 14px; }
  .race-learning-facts>div:nth-child(2) { border-right: 0; }
  .race-learning-facts>div:nth-child(-n+2) { border-bottom: 1px solid #41583d; }
  .race-learning-facts strong { font-size: 24px; }
  .race-course { padding: 13px 14px; }
  .race-learning summary, .race-admission-note { padding-inline: 14px; }
  .race-learning details p { margin-inline: 14px; }
}
/* A phone ticket gives the recipe its own line instead of truncating its name. */
@media(max-width:700px) and (orientation:portrait) {
  .race-order { grid-template-rows: 12px 15px 3px; gap: 2px 3px; padding: 2px 5px; }
  .race-order strong { grid-column: 1/-1; grid-row: 1; font-size: 9px; }
  .race-order .race-order-food { grid-column: 1; grid-row: 2; font-size: 14px; line-height: 1; letter-spacing: 0; }
  .race-order small { grid-column: 2; grid-row: 2; align-self: center; font-size: 9px; }
}
@media(max-height:600px) and (orientation:landscape) {
  .kitchen-race-view { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: minmax(0,1fr); }
  .kitchen-race-view:not([data-focus="all"]) { grid-template-columns: 1fr; }
}

.human-course-detail{padding:0 18px 14px;color:var(--muted,#a3b698);font-size:12px;line-height:1.7}.human-course-detail strong{color:#d1e6ca;font-weight:500}.human-course-detail p{margin:4px 0 0}
