.timezone-selector {
  display: grid;
  gap: var(--ir-space-2);
  min-width: 0;
}

.timezone-selector select {
  max-width: 42rem;
}

.timezone-search {
  max-width: 42rem;
}

.timezone-filter-status {
  margin: calc(var(--ir-space-1) * -1) 0 0;
}

.timezone-selector select.timezone-filtered-results {
  min-height: 5.5rem;
}

.timezone-help,
.timezone-browser-suggestion {
  margin: 0;
}

.timezone-suggestion-actions {
  justify-content: flex-start;
}

.match-review-layout,
.review-summary-grid,
.review-full-width-rows,
.territory-layout,
.source-setup-layout {
  align-items: start;
  display: grid;
  gap: var(--ir-space-4);
}

.match-review-layout {
  align-items: stretch;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
}

.page.match-review-page {
  max-width: 90rem;
  padding-inline: clamp(0.75rem, 2vw, 2rem);
}

.review-overview-panel {
  height: clamp(34rem, 72vh, 46rem);
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.review-overview-panel > :first-child {
  background: var(--ir-color-surface);
  position: sticky;
  top: 0;
  z-index: 2;
}

.review-overview-panel:focus-visible {
  box-shadow: var(--ir-focus-ring);
  outline: 2px solid var(--ir-color-accent-strong);
  outline-offset: 2px;
}

.review-summary-grid,
.territory-layout {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.review-full-width-rows {
  grid-template-columns: minmax(0, 1fr);
}

.review-full-width-panel {
  min-width: 0;
  width: 100%;
}

.source-setup-layout {
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
}

.source-setup-player-frame {
  margin-top: var(--ir-space-3);
}

.source-time-controls {
  align-items: end;
  display: grid;
  gap: var(--ir-space-2);
  grid-template-columns: minmax(10rem, 1fr) auto auto;
  margin-top: var(--ir-space-3);
}

.compact-grid {
  align-items: end;
  grid-template-columns: minmax(0, 1fr) auto;
}

.field-action {
  align-self: end;
}

.source-setup-preview {
  background: var(--ir-color-surface-inset);
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-md);
  margin-top: var(--ir-space-3);
  padding: var(--ir-space-3);
}

.review-source-select {
  min-width: 12rem;
}

.review-player-frame {
  margin-top: var(--ir-space-3);
}

.review-filter-form {
  align-items: end;
  display: grid;
  gap: var(--ir-space-3);
  grid-template-columns: repeat(4, minmax(9rem, 1fr)) auto;
  margin-bottom: var(--ir-space-4);
}

.specialist-event-list {
  display: grid;
  gap: var(--ir-space-4);
}

.specialist-event {
  padding: var(--ir-space-4);
}

.specialist-evidence-filters {
  grid-template-columns: repeat(3, minmax(9rem, 1fr)) auto;
}

.specialist-event-details {
  margin-top: var(--ir-space-3);
}

.specialist-event-details > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  font-weight: 800;
  min-height: 2.75rem;
}

.specialist-event-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--ir-space-2);
  justify-content: flex-end;
}

.specialist-event-grid {
  display: grid;
  gap: var(--ir-space-4);
  grid-template-columns: minmax(260px, 0.85fr) minmax(0, 1.15fr);
  margin-top: var(--ir-space-3);
}

.specialist-facts {
  font-size: 0.95rem;
}

.review-field {
  min-height: 14rem;
}

.review-field-sample-area {
  cursor: default;
  pointer-events: auto;
}

.territory-marker {
  background: var(--ir-field-marker);
  border: 2px solid var(--ir-field-marker-border);
  border-radius: var(--ir-radius-pill);
  box-shadow: 0 1px 4px var(--ir-color-shadow);
  height: 0.7rem;
  position: absolute;
  transform: translate(-50%, -50%);
  width: 0.7rem;
}

.territory-marker.linked {
  background: var(--ir-field-marker-linked);
}

.territory-marker:focus-visible {
  box-shadow: 0 0 0 4px var(--ir-color-surface-contrast);
  outline: 3px solid var(--ir-color-accent-strong);
  outline-offset: 2px;
}

.territory-counts {
  margin-top: var(--ir-space-3);
}

.territory-heatmap {
  border: 1px solid var(--ir-color-border-strong);
  border-radius: var(--ir-radius-md);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: var(--ir-space-3);
  min-height: 10rem;
  overflow: hidden;
}

.territory-heatmap-zone {
  align-content: end;
  background:
    linear-gradient(
      to top,
      var(--ir-color-accent-muted) 0 var(--territory-share),
      var(--ir-color-surface-inset) var(--territory-share) 100%
    );
  display: grid;
  gap: var(--ir-space-1);
  padding: var(--ir-space-3);
  position: relative;
}

.territory-heatmap-zone + .territory-heatmap-zone {
  border-left: 1px solid var(--ir-color-border-strong);
}

.territory-heatmap-zone-name {
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.territory-time-disclosure,
.possession-disclosure,
.momentum-direction-key {
  display: grid;
  gap: var(--ir-space-2);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-block: var(--ir-space-3);
}

.territory-time-disclosure {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.territory-time-disclosure > div,
.possession-disclosure > div,
.momentum-direction-key > div {
  background: var(--ir-color-surface-inset);
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-sm);
  padding: var(--ir-space-2) var(--ir-space-3);
}

.territory-time-disclosure dt,
.possession-disclosure dt,
.momentum-direction-key dt {
  color: var(--ir-color-text-muted);
  font-size: 0.8rem;
  font-weight: 800;
}

.territory-time-disclosure dd,
.possession-disclosure dd,
.momentum-direction-key dd {
  margin: var(--ir-space-1) 0 0;
}

.visual-filter-form {
  align-items: end;
  display: flex;
  flex-wrap: wrap;
  gap: var(--ir-space-3);
  margin-block: var(--ir-space-3);
}

.visual-filter-form fieldset {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--ir-space-2);
}

.analytics-slicer-panel {
  background: var(--ir-color-surface-inset);
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-md);
  display: grid;
  gap: var(--ir-space-3);
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  padding: var(--ir-space-3);
}

.analytics-slicer-heading,
.analytics-slicer-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--ir-space-2);
  grid-column: 1 / -1;
  justify-content: space-between;
}

.analytics-slicer {
  align-content: start;
  border: 0;
  display: grid;
  gap: var(--ir-space-1);
  margin: 0;
  min-width: 0;
  padding: 0;
}

.analytics-slicer legend {
  color: var(--ir-color-text-muted);
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0.035em;
  margin-bottom: var(--ir-space-1);
  text-transform: uppercase;
}

.analytics-slicer-list {
  max-height: 13rem;
  overflow: auto;
  padding-right: var(--ir-space-1);
  scrollbar-gutter: stable;
}

.analytics-slicer-tiles {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.analytics-slicer-tiles.compact {
  grid-template-columns: repeat(2, minmax(5rem, 1fr));
}

.analytics-slicer-item {
  align-items: center;
  background: var(--ir-color-surface);
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-sm);
  cursor: pointer;
  display: flex;
  font-size: 0.84rem;
  gap: var(--ir-space-2);
  justify-content: space-between;
  min-height: 2.25rem;
  padding: var(--ir-space-1) var(--ir-space-2);
  position: relative;
  transition: background 120ms ease, border-color 120ms ease, color 120ms ease;
}

.analytics-slicer-item input {
  height: 1px;
  opacity: 0;
  position: absolute;
  width: 1px;
}

.analytics-slicer-item:has(input:checked) {
  background: var(--ir-color-accent-surface);
  border-color: var(--ir-color-accent-strong);
  box-shadow: inset 3px 0 0 var(--ir-color-accent-strong);
  color: var(--ir-color-accent-strong);
  font-weight: 800;
}

.analytics-slicer-item:focus-within {
  box-shadow: var(--ir-focus-ring);
  outline: 2px solid var(--ir-color-accent-strong);
  outline-offset: 2px;
}

.analytics-slicer-item small {
  background: var(--ir-color-surface-inset);
  border-radius: var(--ir-radius-pill);
  color: var(--ir-color-text-muted);
  font-size: 0.7rem;
  min-width: 1.5rem;
  padding: 0.1rem 0.35rem;
  text-align: center;
}

.analytics-slicer-panel[aria-busy="true"] {
  opacity: 0.68;
  pointer-events: none;
}

#field-position-heatmap .review-field {
  margin-top: var(--ir-space-3);
  min-height: 18rem;
}

.field-heatmap-grid {
  display: grid;
  grid-template-columns: repeat(20, minmax(0, 1fr));
  grid-template-rows: repeat(12, minmax(0, 1fr));
  pointer-events: none;
}

.field-heatmap-cell {
  background: var(--ir-color-accent-strong);
  border: 1px solid rgb(255 255 255 / 14%);
  opacity: calc(0.06 + (var(--heatmap-intensity) * 0.88));
}

.heatmap-direction-label {
  background: rgb(14 26 23 / 82%);
  border-radius: var(--ir-radius-pill);
  bottom: var(--ir-space-2);
  color: var(--ir-color-text);
  font-size: 0.78rem;
  font-weight: 800;
  left: 50%;
  padding: var(--ir-space-1) var(--ir-space-2);
  position: absolute;
  transform: translateX(-50%);
  z-index: 4;
}

.heatmap-disclosure,
.goal-attempt-counts {
  display: grid;
  gap: var(--ir-space-2);
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-block: var(--ir-space-3);
}

.heatmap-disclosure > div,
.goal-attempt-counts > div {
  background: var(--ir-color-surface-inset);
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-sm);
  padding: var(--ir-space-2) var(--ir-space-3);
}

.heatmap-disclosure dt,
.goal-attempt-counts dt {
  color: var(--ir-color-text-muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.heatmap-disclosure dd,
.goal-attempt-counts dd {
  margin: var(--ir-space-1) 0 0;
}

.heatmap-accessible-table table {
  font-size: 0.78rem;
  min-width: 74rem;
}

.heatmap-accessible-table td,
.heatmap-accessible-table th {
  padding: var(--ir-space-1);
  text-align: right;
}

.goal-attempt-layout {
  align-items: start;
  display: grid;
  gap: var(--ir-space-4);
  grid-template-columns: minmax(0, 2fr) minmax(16rem, 1fr);
}

.goal-frame-figure {
  margin: 0;
}

.goal-frame-figure figcaption {
  color: var(--ir-color-text-muted);
  font-size: 0.82rem;
  margin-top: var(--ir-space-2);
}

.goal-attempt-frame {
  aspect-ratio: 2 / 1;
  border: 1px solid var(--ir-color-border-strong);
  border-radius: var(--ir-radius-md);
  display: block;
  height: auto;
  max-height: 30rem;
  width: 100%;
}

.goal-attempt-surface {
  fill: var(--ir-color-surface-inset);
}

.goal-success-region {
  fill: var(--ir-color-success-surface);
  opacity: 0.72;
}

.goal-frame-line {
  stroke: var(--ir-color-text);
  stroke-width: 5;
}

.goal-ground-line {
  stroke: var(--ir-color-border-strong);
  stroke-width: 2;
}

.goal-attempt-marker {
  cursor: pointer;
}

.goal-attempt-marker :is(circle, path) {
  fill: var(--goal-attempt-fill);
  stroke: var(--goal-attempt-stroke);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 4;
}

.goal-attempt-marker text {
  fill: var(--ir-color-text);
  font-size: 10px;
  font-weight: 900;
  pointer-events: none;
  text-anchor: middle;
}

.goal-attempt-marker.consistent_success,
.goal-legend-symbol.consistent_success,
.goal-kick-location-marker.consistent_success {
  --goal-attempt-fill: var(--ir-color-success-surface);
  --goal-attempt-stroke: var(--ir-color-success-strong);
}

.goal-attempt-marker.near_miss,
.goal-legend-symbol.near_miss,
.goal-kick-location-marker.near_miss {
  --goal-attempt-fill: var(--ir-color-warning-surface);
  --goal-attempt-stroke: var(--ir-color-warning-strong);
}

.goal-attempt-marker.miss,
.goal-legend-symbol.miss,
.goal-kick-location-marker.miss {
  --goal-attempt-fill: var(--ir-color-danger-surface);
  --goal-attempt-stroke: var(--ir-color-danger-strong);
}

.goal-attempt-marker.unknown,
.goal-legend-symbol.unknown,
.goal-kick-location-marker.unknown {
  --goal-attempt-fill: var(--ir-color-surface-inset);
  --goal-attempt-stroke: var(--ir-color-text-muted);
}

.goal-attempt-marker.unknown path {
  stroke-dasharray: 4 3;
}

.goal-attempt-marker a:focus-visible,
.goal-attempt-frame a:focus-visible .goal-attempt-marker {
  outline: none;
  filter: drop-shadow(0 0 5px var(--ir-color-accent-strong));
}

.goal-attempt-counts {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.goal-legend-symbol {
  align-items: center;
  background: var(--goal-attempt-fill);
  border: 2px solid var(--goal-attempt-stroke);
  display: inline-flex;
  font-size: 0.7rem;
  font-weight: 900;
  height: 1.5rem;
  justify-content: center;
  margin-right: var(--ir-space-1);
  width: 1.5rem;
}

.goal-legend-symbol.consistent_success { border-radius: 50%; }
.goal-legend-symbol.near_miss { clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.goal-legend-symbol.unknown { clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); }

.goal-kick-location-field {
  aspect-ratio: 5 / 3;
  background:
    linear-gradient(to right, transparent 49.8%, rgb(255 255 255 / 54%) 49.8% 50.2%, transparent 50.2%),
    repeating-linear-gradient(to right, transparent 0 9.8%, rgb(255 255 255 / 22%) 9.8% 10%),
    var(--ir-field-play);
  border: 2px solid var(--ir-field-line);
  border-radius: var(--ir-radius-md);
  margin-top: var(--ir-space-4);
  max-height: 28rem;
  overflow: hidden;
  position: relative;
}

.goal-kick-field-figure {
  margin: var(--ir-space-4) 0 0;
}

.goal-kick-field-figure figcaption {
  color: var(--ir-color-text-muted);
  font-size: 0.82rem;
  margin-top: var(--ir-space-2);
}

.goal-field-halfway,
.goal-field-22 {
  background: var(--ir-field-line);
  bottom: 0;
  opacity: 0.72;
  position: absolute;
  top: 0;
  width: 2px;
}

.goal-field-halfway { left: 50%; }
.goal-field-22.left { left: 22%; }
.goal-field-22.right { right: 22%; }

.goal-field-target-post {
  height: 16%;
  position: absolute;
  right: 0;
  top: 42%;
  width: 2rem;
}

.goal-field-target-post i,
.goal-field-target-post b {
  background: var(--ir-field-posts);
  display: block;
  position: absolute;
}

.goal-field-target-post i {
  border-radius: 50%;
  height: 0.55rem;
  right: 0.2rem;
  width: 0.55rem;
}

.goal-field-target-post i:first-child { top: 0; }
.goal-field-target-post i:nth-child(2) { bottom: 0; }

.goal-field-target-post b {
  bottom: 0.25rem;
  right: 0.43rem;
  top: 0.25rem;
  width: 2px;
}

.goal-field-target-label {
  background: rgb(14 26 23 / 82%);
  border-radius: var(--ir-radius-pill);
  color: var(--ir-color-text);
  font-size: 0.72rem;
  font-weight: 800;
  padding: 0.15rem 0.45rem;
  position: absolute;
  right: var(--ir-space-2);
  top: var(--ir-space-2);
}

.goal-kick-location-marker {
  align-items: center;
  background: var(--goal-attempt-fill);
  border: 2px solid var(--goal-attempt-stroke);
  border-radius: 50%;
  color: var(--ir-color-text);
  display: flex;
  font-size: 0.65rem;
  font-weight: 900;
  height: 1.35rem;
  justify-content: center;
  position: absolute;
  transform: translate(-50%, -50%);
  width: 1.35rem;
}

.goal-kick-location-marker:focus-visible {
  box-shadow: var(--ir-focus-ring);
  outline: 2px solid var(--ir-color-accent-strong);
}

.possession-metrics {
  display: grid;
  gap: var(--ir-space-3);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.possession-team-metric strong {
  font-size: 2rem;
}

.review-visual-notice {
  margin-top: var(--ir-space-3);
}

.review-evidence-appendix {
  scroll-margin-top: var(--ir-space-4);
}

.review-evidence-appendix > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: var(--ir-space-3);
  justify-content: space-between;
}

.review-evidence-appendix > summary::marker {
  color: var(--ir-color-accent-strong);
}

.review-evidence-summary-meta {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--ir-space-2);
  justify-content: flex-end;
}

.review-evidence-appendix-body {
  border-top: 1px solid var(--ir-color-border);
  margin-top: var(--ir-space-3);
  padding-top: var(--ir-space-4);
}

.review-evidence-appendix [id^="event-"] {
  scroll-margin-top: var(--ir-space-4);
}

.momentum-panel {
  display: grid;
  gap: 0.85rem;
  min-width: 0;
  width: 100%;
}

.momentum-overview {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--ir-space-4);
  justify-content: space-between;
}

.momentum-value-card {
  min-width: min(100%, 14rem);
}

.momentum-value {
  font-size: 2.2rem;
  line-height: 1;
}

.momentum-chart-layout {
  display: grid;
  gap: var(--ir-space-2);
  min-width: 0;
  width: 100%;
}

.possession-threshold-summary,
.possession-season-actions,
.possession-configuration-body {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ir-space-2) var(--ir-space-3);
}

.possession-threshold-summary {
  align-items: center;
}

.possession-configuration,
.possession-spell-evidence {
  border-top: 1px solid var(--ir-color-border);
  margin-top: var(--ir-space-3);
  padding-top: var(--ir-space-3);
}

.possession-configuration > summary,
.possession-spell-evidence > summary {
  cursor: pointer;
  font-weight: 800;
}

.possession-configuration-body {
  align-items: end;
  margin-top: var(--ir-space-3);
}

.possession-season-actions {
  align-items: end;
}

.possession-distributions,
.ruck-speed-card {
  border-top: 1px solid var(--ir-color-border);
  margin-top: var(--ir-space-4);
  padding-top: var(--ir-space-4);
  scroll-margin-top: var(--ir-space-4);
}

.possession-distribution-filters {
  background: var(--ir-color-surface-inset);
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-md);
  display: grid;
  gap: var(--ir-space-3);
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  padding: var(--ir-space-3);
}

.possession-distribution-filters fieldset {
  align-content: start;
  border: 0;
  display: grid;
  gap: var(--ir-space-1);
  margin: 0;
  min-width: 0;
  padding: 0;
}

.possession-distribution-filters legend {
  font-weight: 800;
  margin-bottom: var(--ir-space-2);
  width: 100%;
}

.choice-inline {
  align-items: center;
  display: inline-flex;
  gap: var(--ir-space-1);
}

.possession-filter-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--ir-space-3);
  grid-column: 1 / -1;
}

.possession-analysis-grid {
  display: grid;
  gap: var(--ir-space-3);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: var(--ir-space-3);
}

.possession-analysis-card {
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-md);
  min-width: 0;
  padding: var(--ir-space-3);
}

.possession-analysis-card:focus-within,
.ruck-speed-card:focus-within {
  border-color: var(--ir-color-accent-strong);
}

.distribution-bars {
  display: grid;
  gap: var(--ir-space-3);
  list-style: none;
  margin: var(--ir-space-3) 0;
  padding: 0;
}

.distribution-bar-item {
  display: grid;
  gap: var(--ir-space-1);
  min-width: 0;
}

.distribution-bar-heading {
  align-items: baseline;
  display: flex;
  font-variant-numeric: tabular-nums;
  gap: var(--ir-space-2);
  justify-content: space-between;
}

.distribution-bar-track {
  background: var(--ir-chart-surface);
  border: 1px solid var(--ir-color-border);
  border-radius: 999px;
  display: block;
  height: 0.75rem;
  overflow: hidden;
}

.distribution-bar-fill {
  background: var(--ir-color-accent-strong);
  display: block;
  height: 100%;
  min-width: 0;
  width: var(--distribution-width);
}

.distribution-bar-detail,
.distribution-evidence {
  overflow-wrap: anywhere;
}

.distribution-evidence {
  font-size: var(--ir-font-size-xs);
}

.distribution-exclusions,
.ruck-speed-observations {
  border-top: 1px solid var(--ir-color-border);
  margin-top: var(--ir-space-3);
  padding-top: var(--ir-space-2);
}

.distribution-exclusions > summary,
.ruck-speed-observations > summary {
  cursor: pointer;
  font-weight: 800;
}

.ruck-speed-metrics {
  display: grid;
  gap: var(--ir-space-2);
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.ruck-speed-metrics > div {
  background: var(--ir-color-surface-inset);
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-sm);
  padding: var(--ir-space-2);
}

.ruck-speed-metrics dt {
  color: var(--ir-color-text-muted);
  font-size: var(--ir-font-size-xs);
  font-weight: 800;
}

.ruck-speed-metrics dd {
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  margin: var(--ir-space-1) 0 0;
}

[id^="possession-spell-"] {
  scroll-margin-top: var(--ir-space-4);
}

.momentum-plot {
  display: grid;
  gap: var(--ir-space-2) var(--ir-space-3);
  grid-template-areas:
    "y-axis chart"
    ". x-axis";
  grid-template-columns: auto minmax(0, 1fr);
  min-width: 0;
  width: 100%;
}

.momentum-y-axis-label {
  align-self: center;
  color: var(--ir-chart-axis);
  font-size: var(--ir-font-size-xs);
  grid-area: y-axis;
  line-height: 1.2;
  text-align: center;
  transform: rotate(180deg);
  writing-mode: vertical-rl;
}

.momentum-chart-shell {
  background: var(--ir-chart-surface);
  border: 1px solid var(--ir-color-border-strong);
  border-radius: var(--ir-radius-md);
  display: grid;
  grid-area: chart;
  grid-template-columns: 2.75rem minmax(0, 1fr);
  min-height: 12rem;
  overflow: hidden;
  padding: var(--ir-space-3);
  width: 100%;
}

.momentum-y-scale {
  color: var(--ir-chart-axis);
  display: flex;
  flex-direction: column;
  font-size: var(--ir-font-size-xs);
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  justify-content: space-between;
  padding-block: 0.85rem;
  text-align: right;
}

.momentum-chart {
  display: block;
  height: 12rem;
  width: 100%;
}

.momentum-chart-band.selected-team {
  fill: var(--ir-chart-selected-band);
}

.momentum-chart-band.opponent {
  fill: var(--ir-chart-opponent-band);
}

.momentum-chart-grid {
  stroke: var(--ir-chart-grid);
  stroke-width: 0.45;
}

.momentum-chart-grid.neutral {
  stroke: var(--ir-chart-grid-neutral);
  stroke-dasharray: 2 2;
}

.momentum-chart-line {
  fill: none;
  stroke: var(--ir-chart-line);
  stroke-linecap: butt;
  stroke-linejoin: miter;
  stroke-width: 2.2;
  vector-effect: non-scaling-stroke;
}

.momentum-chart-gap {
  fill: var(--ir-color-warning-surface);
  opacity: 0.48;
  stroke: var(--ir-chart-gap);
  stroke-dasharray: 2 2;
  stroke-width: 0.75;
  vector-effect: non-scaling-stroke;
}

.momentum-chart-undefined-time {
  fill: var(--ir-color-surface-raised);
  opacity: 0.72;
  stroke: var(--ir-color-text-muted);
  stroke-dasharray: 1 1;
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.momentum-x-axis {
  align-items: start;
  color: var(--ir-chart-axis);
  display: grid;
  font-size: var(--ir-font-size-xs);
  gap: var(--ir-space-2);
  grid-area: x-axis;
  grid-template-columns: auto minmax(0, 1fr) auto;
}

.momentum-x-axis strong {
  text-align: center;
}

.momentum-gap-note {
  background: var(--ir-color-warning-surface);
  border-left: 3px solid var(--ir-chart-gap);
  color: var(--ir-color-warning-strong);
  margin: 0;
  padding: var(--ir-space-2) var(--ir-space-3);
}

.momentum-undefined-time-note {
  border-left: 3px solid var(--ir-color-text-muted);
  color: var(--ir-color-text-muted);
  margin: 0;
  padding: var(--ir-space-2) var(--ir-space-3);
}

.momentum-component-availability {
  border-top: 1px solid var(--ir-color-border);
  display: grid;
  gap: var(--ir-space-2);
  padding-top: var(--ir-space-3);
}

.momentum-component-availability > :is(h3, p) {
  margin: 0;
}

.momentum-component-list {
  display: grid;
  gap: var(--ir-space-2);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
}

.momentum-component-list li {
  background: var(--ir-color-surface-inset);
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-sm);
  display: grid;
  gap: var(--ir-space-1);
  padding: var(--ir-space-2);
}

.momentum-component-list span {
  color: var(--ir-color-text-muted);
  font-size: var(--ir-font-size-xs);
}

.event-edit-stack,
.analysis-layout,
.playback-panel {
  display: grid;
  gap: var(--ir-space-4);
}

.readonly-value {
  background: var(--ir-color-surface-muted);
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-sm);
  display: block;
  min-height: 2.5rem;
  padding: 0.65rem 0.75rem;
}

.possession-evidence {
  line-height: 1.35;
}

.visually-hidden {
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.page.analysis-page {
  max-width: 100rem;
  padding-inline: clamp(0.75rem, 2vw, 2rem);
}

.analysis-workspace {
  background: var(--ir-color-surface-inset);
  border: 1px solid var(--ir-color-border-strong);
  border-radius: var(--ir-radius-md);
  display: grid;
  grid-template-areas:
    "mode header"
    "rail video"
    "status playback";
  grid-template-columns: clamp(19rem, 24vw, 22rem) minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr) auto;
  height: min(48rem, calc(100vh - 2rem));
  min-height: 36rem;
  overflow: hidden;
}

.analysis-workspace-mode {
  align-items: center;
  background: var(--ir-color-surface);
  border-bottom: 1px solid var(--ir-color-border-strong);
  border-right: 1px solid var(--ir-color-border-strong);
  display: flex;
  grid-area: mode;
  justify-content: flex-start;
  padding: var(--ir-space-3);
}

.analysis-mode-switch {
  display: inline-grid;
  background: var(--ir-color-surface-inset);
  border: 1px solid var(--ir-color-border-strong);
  border-radius: 999px;
  gap: 0;
  grid-template-columns: repeat(2, max-content);
  padding: 0.15rem;
  width: fit-content;
}

.analysis-workspace-header {
  align-items: center;
  background: var(--ir-color-navy);
  border-bottom: 1px solid var(--ir-color-border-strong);
  color: var(--ir-color-cream);
  display: grid;
  gap: var(--ir-space-3);
  grid-area: header;
  grid-template-columns: auto minmax(9rem, 1fr) minmax(7rem, 1fr) minmax(7rem, 1fr) minmax(9rem, 1.2fr);
  min-width: 0;
  padding: var(--ir-space-2) var(--ir-space-4);
}

.analysis-workspace-mark {
  height: 2.2rem;
  object-fit: contain;
  width: 2.8rem;
}

.analysis-workspace-clock,
.analysis-workspace-score,
.analysis-workspace-source {
  display: grid;
  line-height: 1.15;
  min-width: 0;
}

.analysis-workspace-clock span,
.analysis-workspace-clock strong,
.analysis-workspace-score span,
.analysis-workspace-source span {
  color: var(--ir-color-text-muted);
  font-size: var(--ir-font-size-xs);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.analysis-workspace-clock span output,
.analysis-workspace-score output,
.analysis-workspace-source strong {
  font-size: 1rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.analysis-workspace-clock > output {
  color: var(--ir-color-cream);
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  font-weight: 800;
}

.analysis-workspace-source select {
  max-width: 15rem;
  min-width: 0;
}

.analysis-workspace-clock strong {
  font-weight: 600;
  text-transform: uppercase;
}

.tagging-controls {
  align-content: stretch;
  background: var(--ir-color-surface);
  border-right: 1px solid var(--ir-color-border-strong);
  display: grid;
  gap: var(--ir-space-3);
  grid-area: rail;
  grid-template-rows: minmax(0, 1fr);
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: var(--ir-space-3);
  scrollbar-gutter: auto;
}

.analysis-layout[data-analysis-mode="first_pass"] .tagging-controls {
  overflow-y: hidden;
}

.analysis-video-stage {
  align-items: center;
  background: var(--ir-color-video-bg);
  display: grid;
  grid-area: video;
  grid-template-rows: auto minmax(0, 1fr);
  min-height: 0;
  min-width: 0;
  overflow: hidden;
  padding: var(--ir-space-3);
  position: relative;
}

.analysis-video-stage > .video-capability-status {
  margin: 0;
  position: static;
}

.video-unavailable-message {
  align-items: center;
  background: var(--ir-color-video-bg);
  color: var(--ir-color-cream);
  display: flex;
  font-size: 1.1rem;
  font-weight: 700;
  inset: 0;
  justify-content: center;
  padding: var(--ir-space-4);
  position: absolute;
  text-align: center;
  z-index: 4;
}

.video-unavailable-message[hidden] {
  display: none;
}

.analysis-video-stage .player-frame {
  margin: auto;
  max-height: 100%;
  max-width: 100%;
}

.analysis-video-stage .local-player {
  display: grid;
  max-height: 100%;
  min-height: 0;
  overflow-y: auto;
}

.analysis-workspace-status {
  align-items: center;
  background: var(--ir-color-surface);
  border-right: 1px solid var(--ir-color-border-strong);
  border-top: 1px solid var(--ir-color-border-strong);
  display: grid;
  gap: var(--ir-space-1);
  grid-area: status;
  grid-template-columns: 1fr;
  min-width: 0;
  padding: var(--ir-space-2) var(--ir-space-3);
}

.analysis-workspace-status span,
.analysis-workspace-status p {
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.player-frame,
.local-video-frame video {
  aspect-ratio: 16 / 9;
  background: var(--ir-color-video-bg);
  border-radius: var(--ir-radius-md);
  overflow: hidden;
  width: 100%;
}

.player-frame {
  isolation: isolate;
  position: relative;
}

.player-frame iframe,
.local-video-frame video {
  border: 0;
  display: block;
  height: 100%;
  inset: 0;
  position: absolute;
  width: 100%;
  z-index: 1;
}

.analysis-layout[data-player-interaction-mode="analysis"] .player-frame iframe,
.analysis-layout[data-player-interaction-mode="analysis"] .local-video-frame video {
  pointer-events: none;
}

.analysis-layout[data-player-interaction-mode="native"] .player-frame iframe,
.analysis-layout[data-player-interaction-mode="native"] .local-video-frame video {
  pointer-events: auto;
}

.analysis-video-click-target {
  background: transparent;
  border: 0;
  border-radius: inherit;
  cursor: pointer;
  inset: 0;
  padding: 0;
  position: absolute;
  z-index: 3;
}

.analysis-video-click-target:hover {
  background: transparent;
}

.analysis-video-click-target::after {
  background: var(--ir-color-overlay-light);
  border-radius: var(--ir-radius-pill);
  box-shadow: 0 8px 30px var(--ir-color-shadow-strong);
  content: "";
  height: 3.25rem;
  left: 50%;
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: opacity 0.12s ease;
  width: 3.25rem;
}

.analysis-video-click-target::before {
  border-bottom: 0.72rem solid transparent;
  border-left: 1.05rem solid var(--ir-color-video-bg);
  border-top: 0.72rem solid transparent;
  content: "";
  left: calc(50% + 0.15rem);
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: opacity 0.12s ease;
  z-index: 1;
}

.analysis-video-click-target:hover::after,
.analysis-video-click-target:hover::before,
.analysis-video-click-target:focus-visible::after,
.analysis-video-click-target:focus-visible::before {
  opacity: 1;
}

.analysis-video-click-target:focus-visible {
  box-shadow: inset var(--ir-focus-ring);
  outline: 0;
}

.analysis-video-click-target[aria-disabled="true"] {
  cursor: not-allowed;
}

.analysis-layout[data-player-interaction-mode="native"] .analysis-video-click-target {
  pointer-events: none;
}

.analysis-video-toolbar {
  align-items: center;
  background: var(--ir-color-surface);
  border-top: 1px solid var(--ir-color-border-strong);
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  grid-area: playback;
  justify-content: center;
  padding: var(--ir-space-2) var(--ir-space-3);
}

.video-capability-status {
  color: var(--ir-color-text-muted);
  font-size: 0.88rem;
  margin: 0;
}

.video-capability-status[data-focus-recovery="limited"] {
  color: var(--ir-color-warning-strong);
}

.time-state-incomplete {
  color: var(--ir-color-warning-strong);
  font-size: var(--ir-font-size-xs);
}

.analysis-layout.analysis-fullscreen,
.analysis-layout:fullscreen {
  background: var(--ir-color-bg);
  height: 100vh;
  overflow: auto;
  padding: var(--ir-space-2);
}

.analysis-layout.analysis-fullscreen .analysis-workspace,
.analysis-layout:fullscreen .analysis-workspace {
  height: calc(100vh - var(--ir-space-4));
  min-height: 0;
}

.current-time,
.save-status,
.assignment-brief {
  font-weight: 800;
}

.compact-controls {
  margin-bottom: 0.85rem;
}

.event-button-grid {
  display: grid;
  gap: 0.6rem;
  grid-auto-rows: minmax(0, 1fr);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  height: 100%;
  min-height: 0;
}

[data-first-pass-controls] {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  height: 100%;
  min-height: 0;
}

.event-button {
  align-items: center;
  display: grid;
  gap: var(--ir-space-2);
  grid-template-columns: auto minmax(0, 1fr);
  height: 100%;
  max-width: 100%;
  min-height: 0;
  min-width: 0;
  padding-inline: clamp(0.45rem, 1vw, 0.75rem);
  position: relative;
  width: 100%;
}

.event-button .hotkey-hint {
  margin-left: 0;
}

.event-button-label {
  font-size: clamp(0.78rem, 0.7rem + 0.25vw, 0.95rem);
  line-height: 1.15;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-scope-fine-print {
  font-size: 0.68rem;
  line-height: 1.25;
  margin: 0 0 var(--ir-space-2);
}

.event-instruction-marker {
  color: var(--ir-color-accent-strong);
  font-size: 1.05em;
  font-weight: 900;
  position: absolute;
  right: 0.4rem;
  top: 0.2rem;
}

.second-pass-panel,
.review-form,
.tackle-enrichment-fields,
.event-participant-fields,
.substitution-enrichment-fields,
.failure-observations {
  display: grid;
  gap: var(--ir-space-3);
}

.event-participant-fields,
.position-change-editor {
  display: grid;
  gap: 0.65rem;
  padding: var(--ir-space-3);
}

.event-participant-role {
  border-top: 1px solid var(--ir-color-border);
  display: grid;
  gap: 0.65rem;
  padding-top: 0.65rem;
}

.event-participant-role:first-child {
  border-top: 0;
  padding-top: 0;
}

.event-participant-role h5,
.position-change-editor h5 {
  margin: 0 0 0.2rem;
}

.position-change-list,
.event-participant-list,
.scrum-participant-grid,
.scrum-position-grid {
  display: grid;
}

.position-change-list,
.event-participant-row,
.position-change-row,
.failure-selected-list {
  gap: var(--ir-space-2);
}

.event-participant-list {
  gap: 0.65rem;
}

.event-participant-row {
  align-items: stretch;
  display: grid;
  gap: var(--ir-space-2);
  grid-template-columns: 1fr;
}

.position-change-row {
  align-items: stretch;
  display: grid;
  gap: var(--ir-space-2);
  grid-template-columns: 1fr;
}

.event-participant-row button,
.position-change-row button {
  justify-self: start;
}

.ruck-commitment-groups,
.ruck-commitment-group {
  display: grid;
  gap: var(--ir-space-2);
}

.ruck-commitment-group {
  background: var(--ir-color-surface-muted);
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-md);
  padding: var(--ir-space-3);
}

.ruck-order-controls {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--ir-space-2);
}

.ruck-order-controls strong {
  min-width: 7rem;
}

.scrum-participant-grid,
.scrum-position-grid {
  gap: 0.55rem;
}

.scrum-position-row {
  align-items: end;
  display: grid;
  gap: var(--ir-space-2);
  grid-template-columns: minmax(8rem, 0.9fr) minmax(0, 1.4fr);
}

.scrum-position-label {
  color: var(--ir-color-text);
  font-weight: 800;
  padding-bottom: 0.45rem;
}

.ranked-choice-list {
  display: grid;
  gap: 0.35rem;
  margin: 0.5rem 0 0 1.25rem;
  padding: 0;
}

.ranked-choice-list li {
  align-items: start;
  display: flex;
  gap: var(--ir-space-2);
  justify-content: space-between;
}

.ranked-choice-list li::marker {
  color: var(--ir-color-text-muted);
  font-weight: 800;
}

.ranked-choice-label {
  flex: 1 1 auto;
  min-width: 0;
}

.ranked-choice-actions {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: flex-end;
}

.ball-position-review {
  display: grid;
  gap: 0.65rem;
}

.ball-position-header,
.ball-position-meta {
  align-items: center;
  display: flex;
  gap: var(--ir-space-2);
  justify-content: space-between;
}

.ball-position-header h4 {
  margin: 0;
}

.ball-position-meta {
  color: var(--ir-color-text-muted);
  font-size: 0.88rem;
}

.last-known-position {
  align-items: center;
  background: var(--ir-color-neutral-surface);
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-md);
  display: flex;
  flex-wrap: wrap;
  gap: var(--ir-space-2);
  padding: var(--ir-space-2);
}

.last-known-position [data-use-last-position-reason] {
  flex: 1 1 12rem;
}

.playhead-position-details {
  color: var(--ir-color-text-muted);
  font-size: var(--ir-font-size-sm);
}

.playhead-position-details summary {
  color: var(--ir-color-text);
  cursor: pointer;
  font-weight: 700;
}

.ball-position-status,
.event-ball-status {
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-pill);
  color: var(--ir-color-text-muted);
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1;
  padding: 0.3rem 0.45rem;
}

.ball-position-status {
  font-size: var(--ir-font-size-xs);
  padding: 0.35rem 0.5rem;
  text-transform: uppercase;
}

.event-ball-status {
  display: inline-block;
  white-space: nowrap;
}

.ball-position-status[data-status="green"],
.event-ball-status[data-status="green"] {
  background: var(--ir-color-success-surface);
  border-color: var(--ir-color-success);
  color: var(--ir-color-success-strong);
}

.ball-position-status[data-status="yellow"],
.ball-position-status[data-status="unsaved"],
.event-ball-status[data-status="yellow"] {
  background: var(--ir-color-warning-surface);
  border-color: var(--ir-color-warning);
  color: var(--ir-color-warning-strong);
}

.ball-position-status[data-status="red"],
.event-ball-status[data-status="red"] {
  background: var(--ir-color-danger-surface);
  border-color: var(--ir-color-danger);
  color: var(--ir-color-danger-strong);
}

.ball-position-status[data-status="gray"],
.event-ball-status[data-status="gray"] {
  background: var(--ir-color-neutral-surface);
  border-color: var(--ir-color-border-strong);
  color: var(--ir-color-neutral);
}

.ball-field-shell {
  aspect-ratio: var(--ball-field-aspect, 120 / 60);
  background: var(--ir-field-play);
  border: 1px solid var(--ir-color-accent);
  border-radius: var(--ir-radius-md);
  overflow: hidden;
  position: relative;
  width: 100%;
}

.rugby-field-svg,
.ball-field-ad-layer,
.ball-field-play-area {
  height: 100%;
  inset: 0;
  position: absolute;
  width: 100%;
}

.rugby-field-svg {
  display: block;
}

.field-play {
  fill: var(--ir-field-play);
}

.field-in-goal {
  fill: var(--ir-field-in-goal);
}

.field-border {
  fill: none;
  stroke: var(--ir-field-border);
  stroke-width: 0.35;
}

.field-line {
  stroke: var(--ir-field-line);
  stroke-width: 0.28;
  vector-effect: non-scaling-stroke;
}

.field-line.strong {
  stroke-width: 0.42;
}

.field-line.dashed {
  stroke-dasharray: 1.6 1.2;
}

.field-posts line {
  stroke: var(--ir-field-posts);
  stroke-linecap: round;
  stroke-width: 0.7;
  vector-effect: non-scaling-stroke;
}

.ball-field-ad-layer {
  pointer-events: none;
  z-index: 1;
}

.ball-field-play-area {
  cursor: crosshair;
  inset: auto;
  top: 0;
  z-index: 2;
}

.ball-marker {
  --ball-marker-color: var(--ir-color-neutral);
  aspect-ratio: 1;
  background: var(--ball-marker-color);
  border: 2px solid var(--ir-color-surface-contrast);
  border-radius: 50%;
  box-shadow: 0 2px 8px var(--ir-color-shadow);
  min-height: 0;
  padding: 0;
  position: absolute;
  transform: translate(-50%, -50%);
  width: 1rem;
  z-index: 3;
}

.ball-marker:hover,
.ball-marker:focus {
  background: var(--ball-marker-color);
}

button.ball-marker {
  background: transparent;
  border: 0;
  box-shadow: none;
  height: 2rem;
  width: 2rem;
}

button.ball-marker::after {
  background: var(--ball-marker-color);
  border: 2px solid var(--ir-color-surface-contrast);
  border-radius: 50%;
  box-shadow: 0 2px 8px var(--ir-color-shadow);
  content: "";
  height: 1rem;
  inset: 50% auto auto 50%;
  position: absolute;
  transform: translate(-50%, -50%);
  width: 1rem;
}

button.ball-marker:hover,
button.ball-marker:focus {
  background: transparent;
  outline: 2px solid var(--ir-color-focus);
  outline-offset: 1px;
}

.ball-marker[data-status="green"] {
  --ball-marker-color: var(--ir-color-success);
  pointer-events: none;
  z-index: 4;
}

.ball-marker[data-status="yellow"],
.ball-marker[data-status="unsaved"] {
  --ball-marker-color: var(--ir-color-warning);
  z-index: 5;
}

.ball-marker[data-status="red"] {
  --ball-marker-color: var(--ir-color-danger);
}

.ball-marker[data-status="gray"] {
  --ball-marker-color: var(--ir-color-neutral);
  pointer-events: none;
}

.ranked-choice-move {
  font-size: 1rem;
  font-weight: 900;
  line-height: 1;
}

.ball-position-legend {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ir-space-3);
}

.review-write-scope {
  border: 0;
  display: grid;
  gap: var(--ir-space-3);
  margin: 0;
  min-width: 0;
  padding: 0;
}

.ball-position-key {
  background: var(--ir-color-neutral);
  border: 1px solid var(--ir-color-surface-contrast);
  border-radius: 50%;
  display: inline-block;
  height: 0.75rem;
  margin-right: 0.25rem;
  width: 0.75rem;
}

.ball-position-key[data-status="green"] {
  background: var(--ir-color-success);
}

.ball-position-key[data-status="yellow"] {
  background: var(--ir-color-warning);
}

.review-event-navigation-actions,
.suggestion-box {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--ir-space-2);
}

.failure-option-grid {
  display: grid;
  gap: 0.45rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.failure-selected-list {
  display: grid;
  margin: 0;
  padding-left: 1.25rem;
}

.failure-selected-list li {
  align-items: center;
  display: grid;
  gap: var(--ir-space-2);
  grid-template-columns: minmax(0, 1fr) auto;
}

.hotkey-hint {
  align-items: center;
  background: var(--ir-color-cream);
  border: 1px solid var(--ir-color-navy);
  border-bottom-width: 3px;
  border-radius: 0.3rem;
  box-shadow:
    inset 0 -1px 0 rgb(6 16 28 / 24%),
    0 1px 0 rgb(227 218 208 / 24%);
  color: var(--ir-color-navy);
  display: inline-flex;
  font-family: ui-monospace, "Cascadia Mono", "Segoe UI Mono", Consolas, monospace;
  font-size: 0.72em;
  font-weight: 900;
  justify-content: center;
  line-height: 1;
  margin-left: var(--ir-space-1);
  min-height: 1.45rem;
  min-width: 1.45rem;
  padding: 0.14rem 0.38rem;
  white-space: nowrap;
}

.review-queue-menu {
  background: var(--ir-color-surface-inset);
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-md);
  display: grid;
  gap: var(--ir-space-2);
  padding: var(--ir-space-3);
}

.review-queue-menu[hidden],
.review-active-pane[hidden] {
  display: none;
}

.review-queue-links {
  display: grid;
  gap: var(--ir-space-2);
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
}

.review-queue-link {
  background: var(--ir-color-surface);
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-sm);
  color: inherit;
  display: grid;
  gap: 0.15rem;
  min-width: 0;
  padding: 0.55rem 0.65rem;
  text-decoration: none;
}

.review-queue-link span {
  color: var(--ir-color-text-muted);
  font-size: 0.76rem;
}

.review-queue-link.selected {
  border-color: var(--ir-color-accent);
  box-shadow: inset 0 0 0 1px var(--ir-color-accent);
}

.review-empty-queues {
  margin: 0;
}

.second-pass-panel {
  align-content: start;
  min-height: 0;
}

.review-active-pane {
  display: grid;
  min-height: 0;
}

.review-pane-toolbar {
  align-items: center;
  background: var(--ir-color-surface);
  border-bottom: 1px solid var(--ir-color-border-strong);
  display: grid;
  gap: var(--ir-space-2);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: calc(var(--ir-space-3) * -1) calc(var(--ir-space-3) * -1) 0;
  padding: var(--ir-space-3);
  position: sticky;
  top: calc(var(--ir-space-3) * -1);
  z-index: 8;
}

.review-pane-toolbar > .muted {
  font-size: var(--ir-font-size-xs);
  grid-column: 1 / -1;
  margin: 0;
}

.review-pane-toolbar [data-review-loop][aria-pressed="true"],
.review-pane-toolbar [data-review-loop][aria-pressed="true"]:hover {
  background: var(--ir-color-accent-strong);
  border-color: var(--ir-color-accent-strong);
  box-shadow: 0 0 0 3px var(--ir-color-accent-muted);
  color: var(--ir-color-navy);
}

.review-pane-body {
  display: grid;
  gap: var(--ir-space-3);
  padding-top: var(--ir-space-3);
}

.review-event-primary {
  display: grid;
  gap: var(--ir-space-2);
}

.review-event-primary h3 {
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  margin: 0;
}

.review-scrum-put-in {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: var(--ir-space-1);
}

.review-event-navigation-actions {
  display: grid;
  gap: var(--ir-space-2);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.review-event-details {
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-md);
  overflow: clip;
}

.review-event-details > summary {
  background: var(--ir-color-surface-inset);
  cursor: pointer;
  font-weight: 800;
  padding: var(--ir-space-2) var(--ir-space-3);
}

.review-event-details-body {
  display: grid;
  gap: var(--ir-space-3);
  padding: var(--ir-space-3);
}

.review-event-details .event-clip-editor {
  margin: 0;
  min-width: 0;
}

.event-clip-boundary {
  display: grid;
  gap: var(--ir-space-1);
}

.event-clip-boundary-control {
  align-items: stretch;
  display: grid;
  gap: var(--ir-space-1);
  grid-template-columns: minmax(0, 1fr) auto;
}

.event-clip-boundary-control > input {
  min-width: 0;
  width: 100%;
}

.event-clip-stepper {
  display: grid;
  gap: 1px;
  grid-template-rows: repeat(2, minmax(0, 1fr));
}

.event-clip-stepper .button,
.event-clip-stepper button {
  min-height: 2rem;
  min-width: 2.75rem;
  padding: 0.05rem 0.45rem;
}

.field-error {
  color: var(--ir-color-danger-strong);
  font-size: var(--ir-font-size-sm);
  font-weight: 800;
  margin: 0;
}

.local-save-status[data-tone="success"] {
  color: var(--ir-color-success-strong);
  font-weight: 800;
}

.local-save-status[data-tone="error"] {
  color: var(--ir-color-danger-strong);
  font-weight: 800;
}

.local-save-status[data-tone="warning"] {
  color: var(--ir-color-warning-strong);
  font-weight: 800;
}

@media (pointer: coarse) {
  .event-clip-stepper .button,
  .event-clip-stepper button {
    min-height: 2.75rem;
  }

  button.ball-marker {
    height: 2.75rem;
    width: 2.75rem;
  }

  .review-form button,
  .review-form select,
  .review-form input,
  .tagged-events-scroll-region button {
    min-height: 2.75rem;
  }

  .inline-help-disclosure summary {
    align-items: center;
    display: inline-flex;
    min-height: 2.75rem;
  }
}

.review-first-pass-correction {
  background: var(--ir-color-surface-inset);
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-md);
  display: grid;
  gap: var(--ir-space-3);
  padding: var(--ir-space-3);
}

.review-first-pass-correction[hidden] {
  display: none;
}

.review-first-pass-correction h4,
.review-first-pass-correction p {
  margin: 0;
}

.review-correction-note {
  grid-column: 1 / -1;
}

[data-review-correction-status][data-tone="success"] {
  color: var(--ir-color-success-strong);
  font-weight: 800;
}

[data-review-correction-status][data-tone="error"] {
  color: var(--ir-color-danger-strong);
  font-weight: 800;
}

.event-clip-actions {
  justify-content: flex-end;
  margin-top: var(--ir-space-2);
}

[data-event-table-filter-status] {
  border: 1px solid var(--ir-color-border);
  border-radius: 999px;
  padding: 0.2rem 0.55rem;
}

.tagged-events-scroll-region {
  max-height: clamp(22rem, 48vh, 36rem);
  overflow: auto;
}

.tagged-events-scroll-region table {
  overflow: visible;
}

.tagged-events-scroll-region thead,
.tagged-events-scroll-region th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--ir-color-surface);
}

.tagged-events-scroll-region .editing-row input[type="number"] {
  min-width: 5.5rem;
}

.tagged-events-scroll-region .editing-row select {
  min-width: 8rem;
}

.tagged-events-scroll-region .event-edit-possession {
  min-width: 14rem;
}

.tagged-events-scroll-region tr.playback-nearest-event:not(.selected-review-event) {
  box-shadow: inset 4px 0 0 var(--ir-color-warning);
}

@media (max-width: 680px) {
  .tagged-events-heading {
    grid-template-columns: minmax(0, 1fr);
  }

  .tagged-events-scroll-region {
    max-height: min(52vh, 30rem);
  }
}

.substitution-actions {
  display: grid;
  gap: var(--ir-space-3);
}

.substitution-action-row {
  align-items: end;
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-md);
  display: grid;
  gap: var(--ir-space-2);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: var(--ir-space-3);
}

@media (max-width: 46rem) {
  .substitution-action-row {
    grid-template-columns: minmax(0, 1fr);
  }
}

.review-event-navigation-actions .disabled {
  opacity: 0.5;
  pointer-events: none;
}

.hotkey-hint.inverse {
  margin-left: 0;
}

.hotkey-guide {
  color: var(--ir-color-text-muted);
  font-size: 0.9rem;
  margin: 0;
}

.event-brief {
  color: var(--ir-color-text-muted);
  font-size: 0.9rem;
  grid-column: 1 / -1;
  margin: -0.35rem 0 0.35rem;
}

.modal-backdrop {
  align-items: center;
  background: var(--ir-color-overlay-soft);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: var(--ir-space-4);
  position: fixed;
  z-index: 20;
}

.tagging-dialog {
  background: var(--ir-color-surface);
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-md);
  box-shadow: var(--ir-shadow-dialog);
  display: grid;
  gap: 0.85rem;
  max-width: 460px;
  padding: var(--ir-space-4);
  width: min(100%, 460px);
}

.dialog-field,
.choice-row,
.observation-field {
  display: grid;
}

.dialog-field,
.choice-row {
  gap: 0.55rem;
}

.observation-field {
  gap: 0.45rem;
}

.equal-choice-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
}

.equal-choice-grid .inline-check {
  align-items: center;
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-sm);
  min-height: 2.75rem;
  padding: var(--ir-space-2);
}

.outcome-perspective-status {
  border-inline-start: 0.2rem solid var(--ir-color-accent-strong);
  margin: 0;
  padding-inline-start: var(--ir-space-2);
}

.outcome-perspective-status[data-tone="warning"] {
  border-color: var(--ir-color-warning);
  color: var(--ir-color-text);
}

.field-label {
  font-weight: 800;
  margin: 0;
}

.choice-row {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.choice-row [data-dialog-possession] {
  align-items: center;
  display: flex;
  gap: var(--ir-space-2);
  justify-content: center;
}

.choice-row [data-dialog-possession][aria-pressed="true"],
.choice-row [data-dialog-possession][aria-pressed="true"]:hover {
  background: var(--ir-color-accent-strong);
  border-color: var(--ir-color-accent-strong);
  box-shadow: 0 0 0 3px var(--ir-color-accent-muted);
  color: var(--ir-color-navy);
}

.choice-row [data-dialog-possession][aria-pressed="true"]::after {
  content: "\2713";
  font-size: 1.05rem;
  font-weight: 900;
  line-height: 1;
}

.choice-row [data-dialog-possession][aria-pressed="true"]:focus-visible {
  box-shadow: var(--ir-focus-ring);
}

@media (max-width: 680px) {
  .match-review-layout,
  .review-summary-grid,
  .review-filter-form,
  .goal-attempt-layout,
  .territory-layout,
  .source-setup-layout,
  .source-time-controls,
  .compact-grid,
  .event-button-grid,
  .failure-option-grid,
  .specialist-event-grid {
    grid-template-columns: 1fr;
  }

  .analysis-workspace {
    grid-template-areas:
      "mode"
      "header"
      "rail"
      "video"
      "status"
      "playback";
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto auto auto auto auto;
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  .momentum-direction-key,
  .momentum-component-list,
  .possession-analysis-grid,
  .possession-distribution-filters,
  .possession-disclosure,
  .possession-metrics,
  .ruck-speed-metrics,
  .heatmap-disclosure,
  .goal-attempt-counts,
  .territory-time-disclosure {
    grid-template-columns: 1fr;
  }

  .review-overview-panel {
    height: auto;
    max-height: min(44rem, 80vh);
  }

  .momentum-plot {
    grid-template-areas:
      "chart"
      "x-axis";
    grid-template-columns: minmax(0, 1fr);
  }

  .momentum-y-axis-label {
    grid-area: chart;
    justify-self: start;
    margin: var(--ir-space-2);
    transform: none;
    writing-mode: horizontal-tb;
    z-index: 1;
  }

  .territory-heatmap {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .territory-heatmap-zone:nth-child(3) {
    border-left: 0;
  }

  .territory-heatmap-zone:nth-child(n + 3) {
    border-top: 1px solid var(--ir-color-border-strong);
  }

  #field-position-heatmap .review-field {
    min-height: 11rem;
  }

  .review-evidence-appendix > summary {
    align-items: flex-start;
    flex-direction: column;
  }

  .review-evidence-summary-meta {
    justify-content: flex-start;
  }

  .analysis-workspace-mode,
  .tagging-controls,
  .analysis-workspace-status {
    border-right: 0;
  }

  .analysis-workspace-header {
    grid-template-columns: auto repeat(2, minmax(0, 1fr));
  }

  .analysis-workspace-source {
    grid-column: span 2;
  }

  .tagging-controls {
    grid-template-rows: auto;
    max-height: none;
    overflow-y: visible;
  }

  [data-first-pass-controls],
  .event-button-grid {
    height: auto;
  }

  .event-button-grid {
    grid-auto-rows: minmax(2.75rem, auto);
  }

  .event-button {
    height: auto;
    min-height: 2.75rem;
  }

  .analysis-video-stage {
    min-height: 18rem;
  }

  .analysis-layout.analysis-fullscreen .analysis-workspace,
  .analysis-layout:fullscreen .analysis-workspace {
    height: auto;
  }
}

.lineout-jump-units {
  gap: var(--ir-space-3);
}

.lineout-jump-unit {
  background: var(--ir-color-surface-muted);
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-md);
  display: grid;
  gap: var(--ir-space-2);
  padding: var(--ir-space-3);
}
.alignment-previews {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
  margin-block: 1rem;
}

.alignment-preview {
  border: 1px solid var(--color-border, #cbd5e1);
  border-radius: 0.5rem;
  padding: 0.75rem;
}

.alignment-preview-frame {
  align-items: center;
  aspect-ratio: 16 / 9;
  background: #111827;
  color: #f8fafc;
  display: flex;
  justify-content: center;
  margin-block: 0.5rem;
  overflow: hidden;
}

.alignment-preview-frame iframe { border: 0; height: 100%; width: 100%; }
.alignment-preview-inactive .alignment-preview-frame { opacity: 0.45; }
.alignment-toolbar { align-items: end; display: flex; flex-wrap: wrap; gap: 0.75rem; }
.alignment-history-controls, .alignment-zoom-controls { align-items: center; display: flex; gap: 0.5rem; }
.alignment-zoom-controls output { min-width: 3.5rem; text-align: center; }
.alignment-scroll { max-width: 100%; min-width: 0; overflow-x: auto; padding-block: 1rem; }
.alignment-chart { min-width: 760px; position: relative; }
.alignment-ruler { border-bottom: 1px solid #64748b; height: 2rem; margin-left: 15rem; }
.alignment-lane { display: grid; grid-template-columns: 14rem 1fr; gap: 1rem; min-height: 6rem; }
.alignment-lane-controls { display: flex; flex-direction: column; gap: 0.25rem; padding: 0.5rem; }
.alignment-track { background: #eef2f7; border-bottom: 1px solid #cbd5e1; margin-block: 0.75rem; position: relative; }
.timeline-item { background: #315a78; border: 2px solid #17344a; border-radius: 0.35rem; color: white; cursor: grab; height: 3.5rem; min-width: 2px; position: absolute; touch-action: none; user-select: none; }
.timeline-item:active { cursor: grabbing; }
.timeline-item-label { display: block; overflow: hidden; padding: 0.85rem 0.5rem; text-overflow: ellipsis; white-space: nowrap; }
.timeline-keyframe { bottom: -0.35rem; position: absolute; top: -0.35rem; width: 3px; z-index: 2; }
.timeline-keyframe-green { background: #16a34a; }
.timeline-keyframe-blue { background: #2563eb; }
.timeline-keyframe-magenta { background: #db2777; }
.timeline-keyframe-red { background: #dc2626; }
.timeline-keyframe-selected, .timeline-keyframe-aligned { box-shadow: 0 0 0 2px #fff, 0 0 0 4px #111827; width: 6px; }
.moment-slicer { background: #facc15; bottom: 0; cursor: ew-resize; margin-left: 15rem; position: absolute; top: 2rem; width: 3px; z-index: 5; }
.alignment-submit { justify-content: flex-end; }
.video-alignment { max-width: 100%; min-width: 0; }
.video-alignment-embedded { border-top: 1px solid var(--ir-color-border); margin-top: var(--ir-space-4); padding-top: var(--ir-space-4); }
.add-video-source-row td { background: var(--ir-color-accent-surface); }
.add-video-source-row .add-source-summary { margin: 0; }
.add-video-source-row .add-source[open] .add-source-summary { margin-bottom: var(--ir-space-3); }
.team-classification-heading { align-items: start; display: flex; gap: var(--ir-space-3); justify-content: space-between; }
.team-classification-heading h2 { margin-bottom: var(--ir-space-1); }
.classification-value { color: var(--ir-color-accent-strong); font-size: 1.1rem; }
.classification-settings { position: relative; }
.classification-settings-content { background: var(--ir-color-surface-raised); border: 1px solid var(--ir-color-border); border-radius: var(--ir-radius-md); margin-top: var(--ir-space-2); max-width: min(38rem, calc(100vw - 3rem)); padding: var(--ir-space-4); position: absolute; right: 0; width: 38rem; z-index: 4; }
.notification-card { border:1px solid var(--ir-color-border); border-radius:var(--ir-radius-md); background:var(--ir-color-surface); padding:var(--ir-tile-padding); }
.connection-code-panel { background: var(--ir-color-accent-surface); border: 1px solid var(--ir-color-accent); border-radius: var(--ir-radius-md); display: grid; gap: var(--ir-space-2); margin-block: var(--ir-space-4); padding: var(--ir-space-4); }
.connection-code-panel code { color: var(--ir-color-cream); font-size: clamp(0.9rem, 2vw, 1.15rem); overflow-wrap: anywhere; }
.connection-dialog { background: var(--ir-color-surface); border: 1px solid var(--ir-color-border); border-radius: var(--ir-radius-lg); box-shadow: var(--ir-shadow-dialog); color: var(--ir-color-text); max-height: min(90vh, 56rem); max-width: min(58rem, calc(100vw - 2rem)); overflow: auto; padding: var(--ir-space-5); width: 58rem; }
.connection-dialog::backdrop { background: var(--ir-color-overlay-soft); }
.dialog-heading, .connection-code-actions { align-items: start; display: flex; gap: var(--ir-space-3); justify-content: space-between; }
.connection-validation { margin: 0; }
.connection-validation[data-state="valid"] { color: var(--ir-color-success-strong); font-weight: 800; }
.connection-validation[data-state="invalid"] { color: var(--ir-color-danger-strong); font-weight: 800; }
.permission-matrix-fieldset { min-width: 0; }
.permission-matrix th, .permission-matrix td { vertical-align: top; }
.permission-matrix th:first-child { min-width: 12rem; }
.matrix-toggle { align-items: center; display: inline-flex; gap: var(--ir-space-2); font-weight: 800; }
.matrix-toggle input { margin: 0; }
.player-permission-card { border:1px solid var(--ir-color-border); border-radius:var(--ir-radius-md); background:var(--ir-color-surface); padding:var(--ir-tile-padding); }
.status-active { background: var(--ir-color-success-surface); border-color: var(--ir-color-success); color: var(--ir-color-success-strong); }
.status-pending { background: var(--ir-color-warning-surface); border-color: var(--ir-color-warning); color: var(--ir-color-warning-strong); }
@media (max-width: 760px) { .connection-dialog { padding: var(--ir-space-3); } .dialog-heading, .connection-code-actions { align-items: stretch; flex-direction: column; } .permission-matrix th:first-child { min-width: 9rem; } }
.assignment-set-card-heading { align-items: start; display: flex; gap: 1rem; justify-content: space-between; }
.assignments-advanced-help { margin: calc(-1 * var(--ir-space-2)) 0 var(--ir-space-4); }
.player-access-content > .panel { box-shadow: none; margin-top: var(--ir-space-3); }
.goal-kick-attempt-review {
  background: var(--ir-color-surface-muted);
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-md);
  display: grid;
  gap: var(--ir-space-4);
  padding: var(--ir-space-4);
}
.goal-kick-attempt-review[hidden] { display: none; }
.goal-plane-shell { margin-inline: auto; max-width: 42rem; width: 100%; }
.goal-plane-svg {
  background: var(--ir-color-surface-inset);
  border: 1px solid var(--ir-color-border-strong);
  border-radius: var(--ir-radius-md);
  display: block;
  height: auto;
  touch-action: none;
  width: 100%;
}
.goal-plane-svg:focus-visible { box-shadow: var(--ir-focus-ring); outline: none; }
.goal-plane-background { fill: var(--ir-color-surface-inset); }
.goal-plane-ground,
.goal-plane-post,
.goal-plane-crossbar,
.goal-plane-origin { fill: none; stroke: var(--ir-color-text-muted); stroke-width: 2; }
.goal-plane-crossbar { stroke-width: 3; }
.goal-plane-origin { stroke: var(--ir-color-accent-strong); }
.goal-plane-marker {
  pointer-events: none;
}
.goal-plane-marker[hidden] { display: none; }
.goal-plane-marker-halo {
  fill: var(--ir-color-accent);
  fill-opacity: 0.28;
  stroke: var(--ir-color-cream);
  stroke-width: 2;
}
.goal-plane-marker-centre {
  fill: var(--ir-color-cream);
  stroke: var(--ir-color-accent-strong);
  stroke-width: 2;
}
.goal-plane-marker-crosshair {
  stroke: var(--ir-color-accent-strong);
  stroke-linecap: round;
  stroke-width: 2;
}
.goal-plane-controls { display: flex; flex-wrap: wrap; gap: var(--ir-space-2); }
.goal-plane-readout { color: var(--ir-color-text); font-weight: 800; }
.assignment-set-grid { display: grid; gap: 0.75rem; margin-top: 0.75rem; }
.assignment-set-card { border:1px solid var(--ir-color-border); border-radius:var(--ir-radius-md); padding:var(--ir-tile-padding); }
.assignment-set-card h3 { margin: 0; }
.assignment-set-metadata { display: grid; gap: 0.5rem; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-block: 0.75rem; }
.assignment-set-metadata div { min-width: 0; }
.assignment-set-metadata dt { color: var(--color-muted, #64748b); font-size: 0.85rem; }
.assignment-set-metadata dd { margin: 0.15rem 0 0; }
.assignment-set-management summary { cursor: pointer; font-weight: 600; }

@media (max-width: 760px) {
  .assignment-set-metadata { grid-template-columns: 1fr; }
  .assignment-set-card-heading { align-items: stretch; flex-direction: column; }
  .classification-settings-content { position: static; width: min(38rem, calc(100vw - 5rem)); }
}

.lineup-view-toggle { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1rem; position: relative; z-index: 1; }
.lineup-view-toggle [aria-pressed="true"] { background: #315a78; color: #fff; }
.broadcast-lineup-view {
  display: grid;
  gap: 0;
  min-width: 0;
}
.broadcast-lineup-shell {
  aspect-ratio: var(--broadcast-half-field-aspect, 1 / 1);
  background: var(--ir-field-play);
  border: 1px solid var(--ir-color-border);
  border-radius: var(--ir-radius-md);
  box-sizing: border-box;
  isolation: isolate;
  margin-inline: auto;
  max-width: 48rem;
  overflow: hidden;
  position: relative;
  width: 100%;
}
.broadcast-lineup-shell > .rugby-field-svg { display: block; height: 100%; inset: 0; pointer-events: none; position: absolute; width: 100%; z-index: 0; }
.broadcast-lineup-grid {
  inset: 3%;
  padding: clamp(1.25rem, 3vw, 2rem);
  position: absolute;
  z-index: 2;
}
.broadcast-player-tile {
  background: rgb(255 255 255 / 92%);
  border: 1px solid rgb(15 23 42 / 25%);
  border-radius: 0.4rem;
  color: var(--ir-color-text-on-light);
  display: grid;
  gap: 0.1rem;
  left: var(--lineup-x);
  min-width: 0;
  padding: 0.15rem;
  text-align: center;
  top: var(--lineup-y);
  transform: translate(-50%, -50%);
  width: clamp(2.5rem, 4vw, 3.25rem);
}
.broadcast-portrait-frame {
  aspect-ratio: 2 / 3;
  background: var(--ir-color-surface-inset);
  border-radius: 0.3rem;
  overflow: hidden;
  position: relative;
  width: 100%;
}
.broadcast-portrait-frame img { display: block; height: 100%; object-fit: contain; width: 100%; }
.broadcast-shirt-fallback { display: grid; height: 100%; place-items: center; }
.broadcast-shirt-fallback svg { color: var(--ir-color-accent-strong); width: 75%; }
.broadcast-shirt-fallback path:first-child { fill: var(--ir-color-accent-surface); stroke: currentColor; stroke-linejoin: round; stroke-width: 4; }
.broadcast-shirt-fallback path:last-child { fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 4; }
.broadcast-shirt-number { background: rgb(15 23 42 / 85%); bottom: 0.2rem; color: #fff; font-weight: 800; padding: 0.1rem 0.3rem; position: absolute; right: 0.2rem; }
.broadcast-player-name, .broadcast-position-name { color: var(--ir-color-text-on-light); display: -webkit-box; overflow: hidden; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.broadcast-player-name { font-size: clamp(0.65rem, 1.1vw, 0.85rem); line-height: 1.15; margin-top: 0.2rem; max-height: 2.3em; min-height: 2.3em; }
.broadcast-position-name { font-size: clamp(0.58rem, 0.9vw, 0.75rem); line-height: 1.1; max-height: 2.2em; min-height: 2.2em; }
.broadcast-player-tile[class*="lineup-slot-"] { position: absolute; }
.lineup-slot-1 { --lineup-x: 28%; --lineup-y: 10%; } .lineup-slot-2 { --lineup-x: 50%; --lineup-y: 10%; } .lineup-slot-3 { --lineup-x: 72%; --lineup-y: 10%; }
.lineup-slot-4 { --lineup-x: 39%; --lineup-y: 20%; } .lineup-slot-5 { --lineup-x: 61%; --lineup-y: 20%; }
.lineup-slot-6 { --lineup-x: 28%; --lineup-y: 34%; } .lineup-slot-8 { --lineup-x: 50%; --lineup-y: 34%; } .lineup-slot-7 { --lineup-x: 72%; --lineup-y: 34%; }
.lineup-slot-9 { --lineup-x: 18%; --lineup-y: 20%; }
.lineup-slot-10 { --lineup-x: 28%; --lineup-y: 61%; } .lineup-slot-12 { --lineup-x: 48%; --lineup-y: 69%; } .lineup-slot-13 { --lineup-x: 68%; --lineup-y: 77%; } .lineup-slot-14 { --lineup-x: 91%; --lineup-y: 85%; }
.lineup-slot-11 { --lineup-x: 7%; --lineup-y: 85%; } .lineup-slot-15 { --lineup-x: 50%; --lineup-y: 90%; }
.broadcast-substitutes { margin-top: clamp(1.5rem, 3vw, 2rem); min-width: 0; }

@media (max-width: 760px) {
  .broadcast-lineup-shell { aspect-ratio: auto; }
  .broadcast-lineup-grid { align-items: start; display: grid; gap: 0.75rem; grid-template-columns: repeat(3, minmax(0, 1fr)); inset: auto; padding: 0.75rem; position: relative; }
  .broadcast-player-tile[class*="lineup-slot-"] { grid-area: auto; justify-self: center; left: auto; max-width: 7rem; position: relative; top: auto; transform: none; width: 100%; }
}

@media (max-width: 430px) {
  .broadcast-lineup-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.settings-grid {
  display: grid;
  gap: var(--ir-space-4);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
}

.dashboard-grid {
  display: grid;
  gap: var(--ir-space-4);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
}

.dashboard-layout {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(15rem, 1fr);
  gap: var(--ir-tile-gap);
  align-items: start;
}

.dashboard-main,
.dashboard-support {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--ir-tile-gap);
  min-width: 0;
  align-content: start;
}

.workspace-dashboard .panel { margin: 0; min-width: 0; }
.dashboard-layout.account-only { grid-template-columns: minmax(0, 1fr); max-width: 48rem; }
.dashboard-layout.account-only .dashboard-main { display: none; }
.workspace-dashboard .panel > :last-child { margin-bottom: 0; }
.dashboard-account p { margin: .4rem 0; }
.dashboard-account .detail-list { margin: .5rem 0; }
.dashboard-create-team { margin-top: .6rem; }
.dashboard-create-team > summary { cursor: pointer; font-weight: 600; }
.dashboard-create-form {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: .5rem;
}
.dashboard-create-form label { flex: 1 1 12rem; }

@media (max-width: 64rem) {
  .dashboard-layout { grid-template-columns: minmax(0, 1fr); }
}

.pagination {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--ir-space-3);
  justify-content: center;
  margin-top: var(--ir-space-4);
}

.account-photo-thumbnail {
  border: 1px solid var(--ir-color-border);
  border-radius: 50%;
  height: 3rem;
  object-fit: cover;
  width: 3rem;
}

.notice.warning,
.flash.warning {
  border-color: var(--ir-color-warning);
}

.assignment-lifecycle {
  display: grid;
  align-items: center;
  grid-template-columns: minmax(8rem, .55fr) minmax(15rem, 1.5fr) auto;
  gap: .6rem 1rem;
  padding: .75rem 1rem;
  border-inline-start: 3px solid var(--ir-color-accent);
  background: linear-gradient(110deg,
    color-mix(in srgb, var(--team-selected) 9%, var(--ir-color-surface)),
    color-mix(in srgb, var(--team-opponent) 9%, var(--ir-color-surface)));
}

.assignment-lifecycle > .section-heading { display: block; }
.assignment-lifecycle .eyebrow { font-size: .7rem; margin-bottom: .2rem; }
.assignment-lifecycle h2 { font-size: 1rem; margin: 0; }
.assignment-lifecycle > .notice,
.assignment-lifecycle > p { grid-column: 1 / -1; margin: 0; font-size: .78rem; }
.assignment-lifecycle > .notice { order: 2; }
.assignment-lifecycle > #submission-requirements { order: 3; }

.lifecycle-facts {
  grid-template-columns: auto minmax(0, 1fr);
  gap: .5rem 1rem;
  min-width: 0;
  font-size: .78rem;
}

.lifecycle-facts > div {
  align-content: start;
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
}

.lifecycle-review-progress dd { display: grid; gap: .3rem; }
.lifecycle-review-progress progress {
  display: block; width: 100%; height: .4rem; border: 0;
  border-radius: 999px; overflow: hidden;
  background: var(--ir-color-surface-inset); accent-color: var(--ir-color-accent);
}
.lifecycle-review-progress progress::-webkit-progress-bar { background: var(--ir-color-surface-inset); }
.lifecycle-review-progress progress::-webkit-progress-value { background: var(--ir-color-accent); }
.lifecycle-review-progress progress::-moz-progress-bar { background: var(--ir-color-accent); }
.lifecycle-actions { margin: 0; gap: .4rem; }
.lifecycle-actions button { font-size: .78rem; padding: .4rem .65rem; }

.lifecycle-actions {
  align-items: center;
}

.analysis-mode-switch .button {
  justify-content: center;
  min-height: 2rem;
  padding: 0.3rem 0.7rem;
  border-color: transparent;
  border-radius: 999px;
  font-size: var(--ir-font-size-sm);
  text-decoration: none;
}

.analysis-control-icon {
  fill: none;
  flex: 0 0 auto;
  height: 1rem;
  stroke: currentcolor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.75;
  width: 1rem;
}

.analysis-control-icon path[d="M8 5v14l11-7z"] {
  fill: currentcolor;
  stroke: none;
}

.analysis-video-toolbar [data-playback-command] {
  align-items: center;
  display: inline-flex;
  gap: var(--ir-space-2);
}

.analysis-video-toolbar .analysis-control-label {
  flex: 1 1 auto;
  text-align: center;
}

.analysis-mode-switch [aria-selected="true"] {
  background: var(--ir-color-accent-surface);
  border-color: var(--ir-color-accent-strong);
  color: var(--ir-color-accent-strong);
}

.analysis-feedback {
  border-inline-start: 0.25rem solid var(--ir-color-neutral);
  min-width: 0;
  padding-inline-start: var(--ir-space-2);
}

.analysis-feedback[data-tone="progress"] {
  border-color: var(--ir-color-warning);
}

.analysis-feedback[data-tone="success"] {
  border-color: var(--ir-color-success);
  color: var(--ir-color-success-strong);
}

.analysis-feedback[data-tone="error"] {
  border-color: var(--ir-color-danger);
  color: var(--ir-color-danger-strong);
}

.instructions-dialog {
  background: var(--ir-color-surface-raised);
  border: 1px solid var(--ir-color-border-strong);
  border-radius: var(--ir-radius-lg);
  box-shadow: var(--ir-shadow-dialog);
  color: var(--ir-color-text);
  max-height: min(90vh, 44rem);
  max-width: min(42rem, calc(100vw - 2rem));
  overflow: auto;
  padding: var(--ir-space-5);
}

.instructions-dialog::backdrop {
  background: var(--ir-color-overlay-soft);
}

.inline-help-disclosure {
  color: var(--ir-color-text-muted);
  font-size: var(--ir-font-size-sm);
}

.inline-help-disclosure summary {
  color: var(--ir-color-accent-strong);
  font-weight: 800;
  width: fit-content;
}

.inline-help-disclosure p {
  margin: var(--ir-space-2) 0 0;
}

@media (max-width: 760px) {
  .assignment-lifecycle { grid-template-columns: minmax(0, 1fr); }
  .lifecycle-facts { grid-template-columns: minmax(5rem, auto) minmax(0, 1fr); }
  .lifecycle-actions form,
  .lifecycle-actions button,
  .analysis-mode-switch .button,
  .analysis-video-toolbar button,
  .event-button-grid button {
    min-height: 2.75rem;
  }

  .inline-help-disclosure summary {
    align-items: center;
    display: inline-flex;
    min-height: 2.75rem;
  }

  .lifecycle-actions form,
  .lifecycle-actions button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .analysis-workspace *,
  .instructions-dialog * {
    scroll-behavior: auto;
    transition-duration: 0.01ms !important;
  }
}

@media (forced-colors: active) {
  .analysis-feedback,
  .analysis-mode-switch [aria-selected="true"],
  .review-pane-toolbar [data-review-loop][aria-pressed="true"],
  .choice-row [data-dialog-possession][aria-pressed="true"],
  .instructions-dialog {
    border-color: CanvasText;
  }

  .ball-position-status[data-status="green"],
  .event-ball-status[data-status="green"],
  .ball-marker[data-status="green"] {
    border-color: Highlight;
    border-style: solid;
    color: Highlight;
    forced-color-adjust: none;
  }

  .ball-position-status[data-status="gray"],
  .event-ball-status[data-status="gray"],
  .ball-marker[data-status="gray"] {
    background: Canvas;
    border-color: GrayText;
    border-style: dashed;
    color: GrayText;
    forced-color-adjust: none;
  }

  .ball-marker[data-status="yellow"],
  .ball-marker[data-status="unsaved"],
  button.ball-marker::after {
    background: Highlight;
    border-color: Canvas;
    border-style: double;
    forced-color-adjust: none;
  }

  .tagged-events-scroll-region tr.playback-nearest-event:not(.selected-review-event),
  .tagged-events-scroll-region tr.selected-review-event {
    forced-color-adjust: none;
    outline: 2px solid Highlight;
    outline-offset: -2px;
  }
}

/* V9 compact, keyboard-operable coaching insights. */
.observation-field .inline-check { align-items: flex-start; min-height: 2.5rem; }
.observation-field input[type="checkbox"] { box-sizing: border-box; flex: 0 0 1.125rem; inline-size: 1.125rem; block-size: 1.125rem; min-inline-size: 1.125rem; max-inline-size: 1.125rem; margin-block-start: .2rem; }
.info-tooltip { max-inline-size: 100%; margin-block: .25rem; }
.info-tooltip > summary { cursor: pointer; width: fit-content; min-height: 2rem; }
.info-tooltip-content { padding: var(--ir-space-2); border-inline-start: 2px solid var(--ir-color-accent); overflow-wrap: anywhere; font-weight: normal; }
.review-period-selector { display: flex; flex-wrap: wrap; gap: var(--ir-space-2); margin-block: var(--ir-space-3); }
.review-period-selector [aria-current] { border: 2px solid var(--ir-color-accent); text-decoration: underline; }
.momentum-statistics { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: var(--ir-space-3); }
.momentum-statistics dd { font-size: 1.4rem; margin: 0; }
.insight-chart { margin: var(--ir-space-2) 0; min-width: 0; }
.insight-chart svg { display: block; width: 100%; max-height: 30rem; overflow: hidden; }
.insight-chart text { fill: var(--ir-color-text); font-size: 12px; }
.insight-chart output { display: block; min-height: 2.5rem; overflow-wrap: anywhere; }
.chart-axis { fill: none; stroke: var(--ir-color-text-muted); stroke-width: 1; }
.chart-field { fill: var(--ir-color-surface); stroke: var(--ir-color-text-muted); }
.distribution-column, .momentum-point { fill: var(--ir-color-accent); }
.momentum-series, .density-series, .trajectory-path { fill: none; stroke: var(--ir-color-accent); stroke-width: 2; }
.density-first_half { stroke: var(--ir-color-text); stroke-dasharray: 8 4; }
.density-second_half { stroke: var(--ir-color-warning); stroke-dasharray: 2 4; }
.density-legend { display: inline-block; padding: .25rem .75rem; }
.density-legend.density-full::before { content: ''; }
.density-legend.density-first_half::before { content: ''; }
.density-legend.density-second_half::before { content: ''; }
.kick-map-selected_team { fill: var(--ir-color-accent); stroke: var(--ir-color-accent); }
.kick-map-opponent { fill: var(--ir-color-text); stroke: var(--ir-color-text); stroke-dasharray: 5 3; }
.kick-map-unknown { fill: var(--ir-color-text-muted); stroke: var(--ir-color-text-muted); stroke-dasharray: 2 4; }
.insight-chart [tabindex]:focus { outline: 2px solid var(--ir-color-focus-ring); outline-offset: 3px; }
@media (forced-colors: active) { .insight-chart path, .insight-chart rect, .insight-chart circle { stroke: CanvasText; } .distribution-column, .momentum-point { fill: Highlight; } }

.density-legend::before { display: inline-block; width: 1.5rem; border-top: 2px solid var(--ir-color-accent); vertical-align: middle; margin-inline-end: .4rem; }
.density-legend.density-first_half::before { border-color: var(--ir-color-text); border-top-style: dashed; }
.density-legend.density-second_half::before { border-color: var(--ir-color-warning); border-top-style: dotted; }

/* Kick flights retain distinct line patterns when colour is unavailable. */
.kick-fit-plausible { color: var(--ir-color-success); stroke: var(--ir-color-success); fill: var(--ir-color-success); }
.kick-fit-approximate { color: var(--ir-color-warning); stroke: var(--ir-color-warning); fill: var(--ir-color-warning); }
.kick-fit-low { color: var(--ir-color-danger); stroke: var(--ir-color-danger); fill: var(--ir-color-danger); }
.kick-flight-path { fill: none; stroke-width: 2.5; vector-effect: non-scaling-stroke; }
.kick-fit-approximate .kick-flight-path { stroke-dasharray: 8 4; }
.kick-fit-low .kick-flight-path { stroke-dasharray: 2 4; }
.kick-fit-legend { line-height: 1.8; }
#kick-flight .filter-form { display: flex; flex-wrap: wrap; gap: 1rem; align-items: end; }
#kick-flight .filter-form label { flex: 1 1 10rem; }
#kick-flight g:focus .kick-flight-path { stroke-width: 5; }
@media (forced-colors: active) {
  .kick-fit-plausible, .kick-fit-approximate, .kick-fit-low { color: CanvasText; stroke: CanvasText; fill: CanvasText; }
}

#kick-flight .chart-field { fill: var(--ir-color-accent-surface); stroke: var(--ir-field-line); }

/* Field and trajectories share metric SVG coordinates and non-scaling strokes. */
.kick-metric-field text { font-size: 3px; }
.kick-metric-field .chart-field { stroke-width: 1; vector-effect: non-scaling-stroke; }
.kick-metric-field .kick-surface-in-goal { fill: var(--ir-color-accent-surface); fill-opacity: .55; }
.kick-field-line, .kick-field-post { fill: none; stroke: var(--ir-field-line); stroke-width: 1; vector-effect: non-scaling-stroke; }
.kick-field-dashed { stroke-dasharray: 4 3; }
.kick-field-post { stroke: var(--ir-color-text); stroke-width: 2; }
.kick-metric-field .kick-flight-path { stroke-width: 2; vector-effect: non-scaling-stroke; }
.kick-metric-field .kick-fit-approximate .kick-flight-path { stroke-dasharray: 6 4; }
.kick-metric-field .kick-fit-low .kick-flight-path { stroke-dasharray: 2 3; }

.kick-field-viewport { overflow-x: auto; }
.insight-chart .kick-metric-field { min-width: 640px; max-height: 640px; }

/* V10: readable report proportions and natural page scrolling. */
.match-review-page .panel { min-width: 0; }
.match-review-page .insight-chart { max-width: 62rem; margin-inline: auto; }
.match-review-page .review-field { width: min(100%, 62rem); margin-inline: auto; }
.team-comparison { width: auto; min-width: min(100%, 36rem); margin-inline: auto; }
.team-comparison th:first-child { max-width: 30rem; }
.team-comparison th:not(:first-child), .team-comparison td { text-align: center; min-width: 8rem; max-width: 18rem; }
.branded-scroll-region, .table-wrap { overscroll-behavior-y: auto; }
.momentum-series { stroke-width: 1.6; vector-effect: non-scaling-stroke; }
.momentum-point { stroke: transparent; stroke-width: 8; fill-opacity: .55; }
.momentum-point:focus, .momentum-point:hover { fill-opacity: 1; }
.observation-category th, .observation-category td { background: var(--ir-color-surface-raised); font-weight: 700; }
.observation-child th { padding-left: 1.5rem; font-weight: 400; }
.observation-table td { text-align: center; }
.player-overview { max-width: 62rem; margin-inline: auto; }
.player-overview select { max-width: 30rem; }
.match-review-page .broadcast-lineup-shell { max-width: 54rem; margin-inline: auto; }

.event-button-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.event-button-grid > .last-odd-hotkey { grid-column: 1 / -1; justify-self: center; width: calc(50% - .3rem); }
.event-button-grid > [data-event-key="undefined_time"] { grid-column: 1; }
.event-action-cell { white-space: nowrap; text-align: right; vertical-align: middle; }
.event-action-cell button + button { margin-left: .4rem; }

.review-timeline-scroll { overflow-x: auto; }
.review-timeline { min-width: 45rem; }
.timeline-icon { fill: none; stroke: var(--ir-color-text); stroke-width: 1.6; }
.timeline-stem { stroke: var(--ir-color-border); stroke-width: 1; }
.timeline-yellow_card .timeline-card { fill: var(--ir-color-warning); }
.timeline-red_card .timeline-card { fill: var(--ir-color-danger); }
.timeline-orange_card .timeline-card { fill: color-mix(in srgb, var(--ir-color-warning), var(--ir-color-danger)); }
.squad-bench { display: flex; flex-wrap: wrap; gap: 1rem; list-style: none; padding: 0; }

.kick-review-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(16rem, 20rem); gap: 1rem; align-items: start; }
.kick-review-layout > * { min-width: 0; }
.kick-review-layout video, .kick-review-layout iframe { display: block; width: 100%; height: auto; min-height: 0; aspect-ratio: 16 / 9; object-fit: contain; background: var(--ir-color-surface-inset); border: 0; }
.kick-review-layout select { width: 100%; }
[data-kick-review]:fullscreen { background: var(--ir-color-bg); color: var(--ir-color-text); padding: 1.25rem; overflow: auto; }
[data-kick-review]:fullscreen .kick-review-layout { grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem); }
[data-kick-id] { cursor: pointer; }
[data-kick-id][aria-pressed="true"] .kick-flight-path { stroke-width: 4; }
[data-kick-id]:focus-visible { outline: 2px solid var(--ir-color-focus-ring); }
@media (max-width: 760px) { .kick-review-layout { grid-template-columns: minmax(0, 1fr); } }

.kick-flight-hit { fill: none; stroke: transparent; stroke-width: 12px; vector-effect: non-scaling-stroke; pointer-events: stroke; }

.kick-review-layout > .insight-chart { width: 100%; max-width: 100%; }
.kick-playback-controls { display: flex; flex-wrap: wrap; gap: var(--ir-space-3); align-items: center; }
.kick-playback-controls label { display: flex; align-items: center; gap: var(--ir-space-2); }
.kick-playback-controls input[type="checkbox"] { width: auto; margin: 0; }
[data-kick-file] { max-width: 100%; }
@media (max-width: 760px) { [data-kick-review]:fullscreen .kick-review-layout { grid-template-columns: minmax(0, 1fr); } }

/* V10 coach overview: a compact browser shell and a golden-ratio card grid. */
.highlights-topbar { height: 2.75rem; padding: .4rem max(1rem, calc((100vw - 100rem) / 2)); display: flex; align-items: center; gap: 1rem; border-bottom: 1px solid var(--ir-color-border); font-size: .8rem; }
.highlights-topbar img { display: block; width: 7rem; height: 1.8rem; object-fit: contain; }
.highlights-topbar > a:last-child { margin-left: auto; }
.page.highlights-page { max-width: 100rem; min-height: calc(100dvh - 2.75rem); padding: .65rem 1.25rem; display: flex; flex-direction: column; gap: .6rem; }
.highlights-heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.highlights-heading > div { min-width: 0; }
.highlights-heading h1 { font-size: 1.6rem; margin: 0; letter-spacing: -.035em; }
.highlights-heading p { color: var(--ir-color-text-muted); font-size: .75rem; margin: .2rem 0 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.highlights-period { display: flex; gap: .2rem; flex-shrink: 0; border: 1px solid var(--ir-color-border); padding: .15rem; border-radius: var(--ir-radius-md); }
.highlights-period a { padding: .35rem .6rem; color: var(--ir-color-text-muted); text-decoration: none; font-size: .8rem; border-radius: var(--ir-radius-sm); white-space: nowrap; }
.highlights-period a[aria-current] { background: var(--ir-color-accent-surface); color: var(--ir-color-accent-strong); }
.highlights-page .review-tabs { margin: 0; padding: 0; gap: .2rem; flex-shrink: 0; }
.highlights-page .review-tab { min-height: 1.9rem; padding: .3rem .6rem; font-size: .78rem; }
.highlights-score-strip { display: grid; grid-template-columns: minmax(0, 2.618fr) repeat(3, minmax(0, 1fr)); gap: .6rem; }
.highlight-card { min-width: 0; border: 1px solid var(--ir-color-border); border-radius: var(--ir-radius-lg); background: var(--ir-color-surface); padding: var(--ir-tile-padding); text-decoration: none; color: var(--ir-color-text); transition: border-color .15s; }
.highlight-card:hover, .highlight-card:focus-visible { color: var(--ir-color-text); border-color: var(--ir-color-accent-strong); }
.highlight-score { background: linear-gradient(115deg, var(--ir-color-accent-surface), var(--ir-color-surface)); }
.highlight-eyebrow { display: block; text-transform: uppercase; letter-spacing: .09em; font-size: .67rem; color: var(--ir-color-text-muted); }
.highlight-scoreline { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: .7rem; margin-top: .3rem; }
.highlight-scoreline > strong { display: flex; align-items: center; gap: .35rem; font-size: clamp(1.6rem, 2.7vw, 2.8rem); line-height: 1.1; font-variant-numeric: tabular-nums; }
.highlight-scoreline > strong .muted { font-size: .75rem; font-weight: 400; }
.highlight-score-separator { color: var(--ir-color-text-muted); font-weight: 400; font-size: .6em; }
.highlight-scoreline .highlight-team { font-weight: 600; font-size: .85rem; overflow-wrap: anywhere; line-height: 1.15; }
.highlight-scoreline .highlight-team:last-child { text-align: right; }
.highlight-values { display: flex; align-items: baseline; justify-content: center; gap: .5rem; font-size: clamp(1.15rem, 1.8vw, 1.9rem); font-variant-numeric: tabular-nums; }
.highlight-values .muted { font-size: .75rem; }
.highlight-kpi { text-align: center; padding-block: .4rem; }
.highlight-kpi small { display: block; font-size: .68rem; color: var(--ir-color-text-muted); }
.highlights-grid { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0, 1.618fr) minmax(0, 1fr); grid-template-rows: minmax(12rem, .618fr) minmax(20rem, 1fr); gap: .6rem; }
.highlights-territory-group { min-width: 0; min-height: 0; display: grid; grid-template-columns: minmax(0, 1.618fr) minmax(0, 1fr); gap: .6rem; }
.highlights-supporting-stats { min-width: 0; min-height: 0; display: grid; grid-template-rows: repeat(3, minmax(0, 1fr)); gap: .4rem; }
.highlights-supporting-stats .highlight-kpi { display: flex; flex-direction: column; justify-content: center; padding: .25rem .5rem; }
.highlights-supporting-stats .highlight-values { font-size: clamp(1.1rem, 1.6vw, 1.65rem); line-height: 1.15; }
.highlight-territory .highlight-card-heading { flex-wrap: wrap; gap: .15rem .5rem; }
.highlight-visual { display: flex; flex-direction: column; min-height: 0; }
.highlight-card-heading { display: flex; justify-content: space-between; gap: .7rem; align-items: baseline; flex-shrink: 0; }
.highlight-card-heading h2 { margin:0; font-size:var(--ir-tile-title-size); color:var(--ir-color-text-muted); text-transform:uppercase; letter-spacing:.06em; }
.highlight-card-heading > span { font-size: .7rem; color: var(--ir-color-accent-strong); white-space: nowrap; }
.highlight-visual > svg { display: block; flex: 1; min-height: 0; height: 0; width: 100%; margin: .3rem auto; }
.highlight-territory > .highlight-heatmap { flex: .8; width: 85%; margin: auto; }
.highlight-visual svg text { fill: var(--ir-color-text-muted); font-family: var(--ir-font-sans); }
.highlight-momentum text { font-size: 20px; }
.highlight-timeline text { font-size: 24px; }
.highlight-visual .kick-metric-field { min-width: 0; max-height: none; }
.highlight-caption { color: var(--ir-color-text-muted); font-size: .68rem; line-height: 1.3; margin: .15rem 0 0; }
.highlight-empty { margin: auto; padding: 1rem 0; font-size: .85rem; text-align: center; color: var(--ir-color-text-muted); }
.highlight-heat-cell { fill: var(--ir-color-accent-strong); opacity: calc(.06 + var(--heatmap-intensity) * .88); stroke: var(--ir-color-border); stroke-width: .15; }
.highlight-heat-key { float: right; }
.highlights-page .selected-team { color: var(--ir-color-accent-strong); }
.highlights-page .opponent-team { color: var(--ir-color-cream); }
.highlight-timeline .selected-team { stroke: var(--ir-color-accent-strong); }
.highlight-timeline .opponent-team { stroke: var(--ir-color-cream); }
.highlight-timeline .highlight-moment-count { stroke: none; font-size: 16px; font-weight: 700; fill: var(--ir-color-text); }
.highlights-footer { display: flex; justify-content: space-between; gap: 1rem; font-size: .68rem; color: var(--ir-color-text-muted); }
.highlights-footer > * { min-width: 0; }
/* Keep compact tables consistent across specialist sections and player details. */
.match-review-page table { width: auto; max-width: 100%; margin-inline: auto; }
.match-review-page .observation-table { min-width: min(100%, 34rem); }
.observation-table th:first-child { max-width: 26rem; }
.observation-table th:not(:first-child), .observation-table td { min-width: 7rem; max-width: 15rem; text-align: center; }
.observation-table .observation-child > * { background: var(--ir-color-surface); }
.observation-table .observation-child > th { padding-left: 1.5rem; }
.info-tooltip-content math { margin: .7rem 0; font-size: 1.3rem; }
@media (max-width: 1100px) and (min-width: 901px) {
  .highlights-score-strip { grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)); }
  .highlights-grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
  .highlight-scoreline { gap: .35rem; }
  .highlight-scoreline .highlight-team { font-size: .75rem; }
}
/* At small sizes or browser zoom, preserve readable content with natural scrolling. */
@media (max-width: 900px), (max-height: 600px) {
  .page.highlights-page { height: auto; min-height: calc(100dvh - 2.75rem); }
  .highlights-grid { grid-template-rows: 15rem 21rem; flex: none; }
  .highlights-heading { flex-wrap: wrap; }
  .highlights-heading p { white-space: normal; }
  .highlights-footer { flex-wrap: wrap; }
}
@media (max-width: 650px) {
  .page.highlights-page { padding: .75rem; }
  .highlights-topbar > span { display: none; }
  .highlights-topbar { padding-inline: .75rem; font-size: .7rem; }
  .highlights-score-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .highlight-score { grid-column: 1 / -1; }
  .highlight-card { padding: var(--ir-tile-padding); }
  .highlight-values { flex-wrap: wrap; gap: .2rem; }
  .highlights-grid { grid-template-columns: minmax(0, 1fr); grid-template-rows: 15rem 17rem 21rem 24rem; }
  .highlights-territory-group { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
}
.set-piece-overlay { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.set-piece-marker { --piece-owner: var(--ir-color-text-muted); --piece-winner: var(--ir-color-bg); pointer-events: auto; }
.set-piece-marker.owner-selected_team { --piece-owner: var(--ir-color-accent-strong); }
.set-piece-marker.owner-opponent { --piece-owner: var(--ir-color-cream); }
.set-piece-marker.winner-selected_team { --piece-winner: var(--ir-color-accent-strong); }
.set-piece-marker.winner-opponent { --piece-winner: var(--ir-color-cream); }
.set-piece-owner { fill: var(--ir-color-bg); stroke: var(--piece-owner); stroke-width: 1; paint-order: stroke; }
.set-piece-winner { fill: var(--piece-winner); }
.set-piece-leader { stroke: var(--ir-color-text); stroke-width: .25; }
.set-piece-marker text { font-size: 2.5px; fill: var(--ir-color-text); }
.set-piece-marker:focus { outline: none; }
.set-piece-marker:focus .set-piece-owner { stroke-width: 1.6; }
.set-piece-marker[role="button"] { cursor: pointer; }
.set-piece-dialog { width: min(76rem, calc(100vw - 2rem)); }
.set-piece-facts { display: grid; gap: .75rem; }
.set-piece-facts > div { display: grid; grid-template-columns: minmax(7rem, 1fr) minmax(0, 1.6fr); gap: 1rem; }
.set-piece-facts dt { color: var(--ir-color-text-muted); }
.set-piece-facts dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.carry-distribution-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.carry-evidence { margin-block: .75rem; padding: .75rem; border: 1px solid var(--ir-color-border); border-radius: var(--ir-radius-sm); }
@media (max-width: 760px) { .carry-distribution-grid { grid-template-columns: minmax(0, 1fr); } }
.set-piece-legend { color: var(--ir-color-text-muted); font-size: .8rem; margin: .4rem 0; }
.set-piece-legend.compact { font-size: .65rem; line-height: 1.2; margin: .2rem 0 0; }
.set-piece-team.selected { color: var(--ir-color-accent-strong); }
.set-piece-team.opponent { color: var(--ir-color-cream); }

/* A consistent Highlights composition across every match report. */
.page.review-dashboard { max-width: 100rem; padding: .65rem 1.25rem; }
.review-navigation { position: sticky; top: 0; z-index: 20; background: var(--ir-color-bg); padding-block: .25rem .5rem; flex-shrink: 0; }
.review-dashboard .review-tabs { display: flex; width: 100%; gap: .2rem; margin: .6rem 0 0; padding: 0; flex-wrap: wrap; scrollbar-gutter: auto; overflow: visible; }
.review-dashboard .review-tabs.branded-scroll-region .review-tab { flex: 1 1 auto; justify-content: center; text-align: center; min-height: 2rem; padding: .35rem .5rem; font-size: .78rem; }
.review-report-grid { columns: 2; column-gap: .75rem; }
.review-report-grid > * { min-width: 0; }
.review-report-grid > .panel { break-inside: avoid; margin: 0 0 .75rem; padding: 1rem; border-radius: var(--ir-radius-md); }
.review-report-grid > .panel > h2 { margin-top: 0; font-size: 1.1rem; }
.review-report-grid > #momentum, .review-report-grid > #field-position-heatmap,
.review-report-grid > #kick-flight, .review-report-grid > #carry-gain-line,
.review-report-grid > .review-summary-grid, .review-report-grid > #score-timeline,
.review-report-grid > .squad-lineup { column-span: all; }
.review-coverage { margin-block: .25rem .65rem; font-size: .8rem; }
.review-coverage:empty { display: none; }
.highlights-page .review-report-content { display: flex; flex-direction: column; flex: 1; min-height: 0; gap: .6rem; }
.statistic-clip { display: inline; background: transparent; border: 0; padding: .2rem .3rem; color: var(--ir-color-accent-strong); font: inherit; text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
[data-clip-ids] { cursor: pointer; }
.review-clip-dialog { width: min(76rem, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); overflow: auto; color: var(--ir-color-text); background: var(--ir-color-surface); border: 1px solid var(--ir-color-border); border-radius: var(--ir-radius-lg); padding: 1.25rem; box-shadow: var(--ir-shadow-dialog); }
.review-clip-dialog::backdrop { background: rgb(0 0 0 / 75%); }
.review-clip-layout { display: grid; grid-template-columns: minmax(0, 1.618fr) minmax(0, 1fr); gap: 1rem; align-items: start; }
.review-clip-layout > * { min-width: 0; }
[data-clip-media] video, [data-clip-media] iframe { display: block; width: 100%; aspect-ratio: 16 / 9; height: auto; background: var(--ir-color-bg); }
.review-clip-properties { width: 100%; font-size: .85rem; }
.review-clip-properties caption { text-align: left; font-weight: 700; margin-bottom: .5rem; }
.review-clip-properties td, .review-clip-properties th { white-space: normal; overflow-wrap: anywhere; text-align: left; }
@media (max-width: 900px) {
  .review-report-grid { columns: 1; }
  .review-clip-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .page.review-dashboard { padding: .75rem; }
  .review-navigation { position: static; }
  .review-dashboard .review-tabs.branded-scroll-region .review-tab { flex-basis: 25%; }
  .review-clip-dialog { padding: .75rem; }
}

/* Match kit colours are data, scoped to reports; application controls keep brand colours. */
.kit-color-input { display:grid; grid-template-columns:minmax(0,1fr) 6rem 2rem; gap:.5rem; align-items:end; }
.kit-color-input small { grid-column:1/-1; }
.kit-swatch { display:inline-block; width:1.5rem; height:1.5rem; border:1px solid var(--ir-color-text-muted); border-radius:50%; background:var(--kit-color); }
.kit-match-settings { min-width:0; display:grid; gap:.6rem; padding:.75rem; border:1px solid var(--ir-color-border); }
.kit-warnings { color:var(--ir-color-warning-strong); font-size:.8rem; }
.review-dashboard .selected-team { color:var(--team-selected-ink); --swatch:var(--team-selected); }
.review-dashboard .opponent-team { color:var(--team-opponent-ink); --swatch:var(--team-opponent); }
.team-swatch { display:inline-block; width:.65rem; height:.65rem; margin-right:.35rem; border-radius:50%; background:var(--swatch); outline:1px solid var(--ir-color-text-muted); }
.review-dashboard .highlight-card.highlight-score, .review-dashboard .report-stat-card {
 background:linear-gradient(110deg, color-mix(in srgb, var(--team-selected) 17%, var(--ir-color-surface)), var(--ir-color-surface) 50%, color-mix(in srgb, var(--team-opponent) 17%, var(--ir-color-surface)));
}
.review-dashboard .highlight-kpi { background:linear-gradient(110deg, color-mix(in srgb, var(--team-selected) 9%, var(--ir-color-surface)), color-mix(in srgb, var(--team-opponent) 9%, var(--ir-color-surface))); }
.review-dashboard .highlight-timeline .selected-team, .review-dashboard .timeline-icon.team-selected_team { stroke:var(--team-selected); }
.review-dashboard .highlight-timeline .opponent-team, .review-dashboard .timeline-icon.team-opponent { stroke:var(--team-opponent); }
.review-dashboard .set-piece-marker.owner-selected_team { --piece-owner:var(--team-selected); }
.review-dashboard .set-piece-marker.owner-opponent { --piece-owner:var(--team-opponent); }
.review-dashboard .set-piece-marker.winner-selected_team { --piece-winner:var(--team-selected); }
.review-dashboard .set-piece-marker.winner-opponent { --piece-winner:var(--team-opponent); }
.review-dashboard .set-piece-team.selected { color:var(--team-selected-ink); }
.review-dashboard .set-piece-team.opponent { color:var(--team-opponent-ink); }
.review-dashboard .kick-map-selected_team { fill:var(--team-selected); stroke:var(--team-selected); }
.review-dashboard .kick-map-opponent { fill:var(--team-opponent); stroke:var(--team-opponent); }
.review-dashboard .momentum-series { stroke:url(#momentum-team-gradient); stroke-width:2.5; }
.momentum-halo { fill:none; stroke:var(--ir-color-text); stroke-opacity:.3; stroke-width:4.5; vector-effect:non-scaling-stroke; }
.review-dashboard .momentum-point { fill:url(#momentum-team-gradient); }
.review-dashboard .team-selected_team .distribution-column { fill:var(--team-selected); }
.review-dashboard .team-opponent .distribution-column { fill:var(--team-opponent); }
.review-dashboard .team-selected_team .density-series { stroke:var(--team-selected); }
.review-dashboard .team-opponent .density-series { stroke:var(--team-opponent); }
.review-dashboard .team-selected_team .field-heatmap-cell { background:var(--team-selected); }
.review-dashboard .team-opponent .field-heatmap-cell { background:var(--team-opponent); }
.review-dashboard .team-all .distribution-column { fill:var(--ir-color-neutral); }
.review-dashboard .broadcast-shirt-fallback path { fill:var(--team-selected); stroke:var(--ir-color-text); }
.review-dashboard .kick-team-selected_team { stroke:var(--team-selected); fill:var(--team-selected); }
.review-dashboard .kick-team-opponent { stroke:var(--team-opponent); fill:var(--team-opponent); }
/* Dense, readable reports with room for the details below each headline. */
.review-report-content table { font-size:.8rem; line-height:1.35; width:100%; margin-block:.3rem; }
.review-report-content table th, .review-report-content table td { padding:.3rem .45rem; vertical-align:middle; }
.review-report-content table small, .review-report-content table .muted { font-size:.72rem; }
.review-report-content table .statistic-clip { min-height:1.5rem; padding:0 .1rem; }
.review-dashboard .team-comparison { min-width:0; }
.review-dashboard .team-comparison td, .review-dashboard .team-comparison th:not(:first-child) { min-width:4rem; }
.review-dashboard .observation-child th { padding-left:.9rem; }
.review-dashboard .review-report-grid > .panel { padding:var(--ir-tile-padding); }
.review-dashboard .panel h2 { font-size:var(--ir-tile-title-size); margin-block:0 .5rem; }
.review-dashboard .panel h3 { font-size:.9rem; margin-block:.6rem .3rem; }
.review-dashboard .panel p, .review-dashboard .panel details { font-size:.8rem; margin-block:.4rem; }
.review-dashboard .detail-list { gap:.4rem; }
.review-dashboard .detail-list > div { padding:.3rem; }
.review-dashboard .insight-chart { max-width:42rem; }
.review-dashboard .insight-chart svg { max-height:19rem; }
.review-dashboard .insight-chart output { min-height:1.5rem; font-size:.75rem; }
.review-dashboard .review-field { max-width:44rem; }
.review-dashboard .momentum-statistics { gap:.5rem; margin-block:.5rem; }
.review-dashboard .momentum-statistics dd { font-size:1.15rem; }
.report-stat-card { border:1px solid var(--ir-color-border); border-radius:var(--ir-radius-md); padding:var(--ir-tile-padding); margin:.4rem 0; }
.report-stat-card > strong { font-size:1.25rem; margin-right:1rem; }
.report-stat-card small { margin-left:.5rem; color:var(--ir-color-text-muted); }
.report-stat-pair { display:flex; justify-content:space-between; gap:1rem; }
.report-stat-pair > div { display:flex; flex-direction:column; gap:.25rem; }
.report-stat-pair > div:last-child { text-align:right; }
.report-stat-pair strong { font-size:1.5rem; font-variant-numeric:tabular-nums; }
.report-stat-team { font-size:.72rem; }
.report-stat-card .highlight-scoreline > div { display:flex; align-items:center; gap:.75rem; }
.report-stat-card .highlight-scoreline strong { font-size:2.4rem; }
.report-stat-card .highlight-scoreline { justify-content:center; }
.symbol-legend { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:.7rem; font-size:.8rem; margin:.3rem 0; }
.symbol-legend [title] { cursor:help; }
/* Legend icons are furniture, never chart-sized SVGs. */
.symbol-legend svg { display:block; width:1.25rem; height:1.25rem; min-width:0; flex:none; }
.chart-with-legend { display:grid; grid-template-columns:minmax(0,1fr) max-content; gap:var(--ir-space-2); align-items:center; }
.chart-with-legend > :first-child { min-width:0; width:100%; }
.chart-with-legend > .symbol-legend, .chart-side-legend, .chart-side-legend > .symbol-legend { display:flex; flex-direction:column; align-items:center; flex-wrap:nowrap; gap:var(--ir-space-2); margin:0; }
.chart-with-legend .symbol-legend > [title] { display:flex; align-items:center; justify-content:center; min-width:1.5rem; min-height:1.5rem; padding:0; white-space:nowrap; font-size:.7rem; }
.chart-with-legend .symbol-legend > [title]:is(:hover,:focus-visible)::after { left:auto; right:100%; bottom:auto; top:0; transform:none; max-width:min(14rem,60vw); }
.highlight-chart-body { flex:1; min-height:10rem; }
.highlight-chart-body > svg { height:100%; min-height:10rem; max-height:16rem; width:100%; }
.review-dashboard .chart-with-legend > svg { min-height:10rem; }
.review-summary-composition #score-timeline .chart-with-legend .review-timeline { min-height:10rem; max-height:none; }
.chart-side-legend .info-tooltip { font-size:.75rem; }
.chart-with-legend .density-legend::before { width:1rem; }
.report-expandable:has(> .chart-with-legend) { padding-top:1.5rem; }
.report-expandable { position:relative; min-width:0; }
.report-expand { position:absolute; top:.1rem; right:.1rem; z-index:2; padding:.1rem .35rem; min-height:1.6rem; line-height:1; background:var(--ir-color-surface-raised); color:var(--ir-color-text-muted); border:1px solid var(--ir-color-border); font-size:1rem; }
.report-expandable > .table-wrap, .report-expandable > .table-scroll, .report-expandable > table { padding-top:1.5rem; }
.highlight-expandable { display:flex; min-height:0; }
.highlight-expandable > .highlight-visual { flex:1; }
.highlight-expandable .highlight-card-heading { padding-right:1.8rem; }
.review-dashboard .report-expandable:fullscreen, .review-dashboard .report-expanded { width:100%; height:100%; max-width:none; padding:2.5rem 1.5rem 1.5rem; overflow:auto; background:var(--ir-color-bg); color:var(--ir-color-text); }
.review-dashboard .report-expanded { position:fixed; inset:0; z-index:1000; }
.report-has-expanded { overflow:hidden; }
.report-expandable:is(:fullscreen,.report-expanded) > .report-expand { position:fixed; top:.5rem; right:.5rem; }
.review-dashboard .report-expandable:is(:fullscreen,.report-expanded) :is(.insight-chart,.review-field,.broadcast-lineup-shell) { max-width:none; width:100%; }
.review-dashboard .report-expandable:is(:fullscreen,.report-expanded) svg { max-height:80vh; }
.review-dashboard .report-expandable:is(:fullscreen,.report-expanded) .highlight-visual { height:100%; }
@media (max-width:600px) {
 .review-report-content table th, .review-report-content table td { padding:.3rem; }
 .report-stat-card .highlight-scoreline > div { flex-direction:column; gap:.2rem; }
 .report-stat-card .highlight-scoreline strong { font-size:1.8rem; }
}
@media (forced-colors:active) {
 .review-dashboard .momentum-series, .review-dashboard .momentum-point { stroke:CanvasText; }
 .review-dashboard .team-swatch { outline:1px solid CanvasText; }
 .review-dashboard .selected-team, .review-dashboard .opponent-team { color:CanvasText; }
 .review-dashboard .opponent-team { text-decoration:underline; text-decoration-style:dashed; }
}

.review-dashboard #momentum .density-series { stroke:url(#momentum-density-gradient); }
.review-dashboard .report-stat-card .highlight-scoreline { justify-content:space-between; }
.review-dashboard .report-stat-card .highlight-scoreline strong { display:flex; gap:.4rem; }
.symbol-legend > [title] { position:relative; }
.symbol-legend > [title]:is(:hover,:focus-visible)::after { content:attr(title); position:absolute; bottom:100%; left:50%; transform:translateX(-50%); z-index:30; width:max-content; max-width:14rem; white-space:normal; padding:.4rem .55rem; background:var(--ir-color-surface-raised); color:var(--ir-color-text); border:1px solid var(--ir-color-border); border-radius:var(--ir-radius-sm); font-size:.75rem; line-height:1.4; }

.review-dashboard :is(.selected-team,.opponent-team) .statistic-clip { color:inherit; }
.review-summary-composition { column-span:all; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:var(--ir-tile-gap); align-items:start; margin-bottom:.75rem; }
.review-summary-composition > *, .review-summary-visuals { min-width:0; }
.review-summary-composition .panel { padding:var(--ir-tile-padding); margin:0 0 .75rem; }
.review-summary-composition .insight-chart svg { max-height:14rem; }
.review-summary-composition #score-timeline svg { min-width:0; max-height:9rem; }
.review-summary-composition .momentum-statistics { grid-template-columns:repeat(4,minmax(0,1fr)); font-size:.7rem; }
@media (max-width:900px) { .review-summary-composition { grid-template-columns:minmax(0,1fr); } }

/* Report explanations float over the page without resizing charts or tables. */
:is(.review-dashboard, .form-help-page) .info-tooltip { display:inline-block; position:relative; vertical-align:middle; max-inline-size:100%; }
:is(.review-dashboard, .form-help-page) .panel .info-tooltip { margin:.1rem .2rem; }
:is(.review-dashboard, .form-help-page) .info-tooltip > summary { display:inline-flex; align-items:center; justify-content:center; list-style:none; min-height:1.5rem; min-width:1.5rem; border-radius:50%; color:var(--ir-color-text-muted); }
:is(.review-dashboard, .form-help-page) .info-tooltip > summary::-webkit-details-marker { display:none; }
:is(.review-dashboard, .form-help-page) .info-tooltip-content { position:absolute; top:100%; left:0; z-index:100; width:min(26rem, calc(100vw - 24px)); max-height:min(26rem, calc(100dvh - 24px)); overflow:auto; padding:.75rem; background:var(--ir-color-surface-raised); color:var(--ir-color-text); border:1px solid var(--ir-color-border-strong); border-radius:var(--ir-radius-md); box-shadow:var(--ir-shadow-soft); font-size:.8rem; line-height:1.5; text-align:left; white-space:normal; }
:is(.review-dashboard, .form-help-page) [data-tooltip-ready] > .info-tooltip-content { position:fixed; }
:is(.review-dashboard, .form-help-page) .info-tooltip-content:focus-visible { outline:2px solid var(--ir-color-accent-strong); }
.report-help-tools { display:flex; gap:.1rem; align-items:center; }
/* The 3D stage has its own size, independent of selected-kick prose or video. */
#kick-flight .kick-flight-chart { width:100%; max-width:none; margin:0; }
#kick-flight .kick-chart-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.3rem .6rem; min-height:2.25rem; padding-right:1.8rem; }
#kick-flight .kick-chart-count { font-size:.75rem; color:var(--ir-color-text-muted); white-space:nowrap; }
#kick-flight .symbol-legend { margin:0; gap:.5rem; }
#kick-flight .kick-field-viewport { height:clamp(28rem, 64svh, 46rem); overflow:hidden; }
#kick-flight .kick-metric-field { width:100%; height:100%; min-width:0; max-height:none; }
#kick-flight .kick-metric-field text { font-size:3px; }
#kick-flight .kick-review-video { padding:.6rem; border:1px solid var(--ir-color-border); border-radius:var(--ir-radius-md); }
#kick-flight [data-kick-detail] h3 { overflow-wrap:anywhere; }
#kick-flight [data-kick-values] { font-variant-numeric:tabular-nums; }
#kick-flight [data-kick-status]:empty { display:none; }
#kick-flight:fullscreen .kick-field-viewport { height:clamp(24rem, calc(100dvh - 13rem), 65rem); }
#kick-flight .report-expandable:is(:fullscreen,.report-expanded) .kick-field-viewport { height:calc(100dvh - 7rem); }
@media (max-width:900px) {
 #kick-flight .kick-review-layout, #kick-flight:fullscreen .kick-review-layout { grid-template-columns:minmax(0,1fr); }
 #kick-flight .kick-field-viewport { height:clamp(18rem, 65vw, 34rem); }
 #kick-flight .kick-review-video { max-width:none; }
}

/* V11 workspace and season review composition. */
.season-overview { display:grid; gap:1rem; }
.season-kit-preview { order:-1; }
.season-kit-swatches { display:flex; gap:1.5rem; flex-wrap:wrap; }
.season-kit-swatches > div { display:flex; align-items:center; gap:.5rem; }
.season-kit-swatches small { display:block; color:var(--ir-color-text-muted); }
.settings-dialog { width:min(38rem,calc(100vw - 2rem)); max-height:85dvh; overflow:auto; background:var(--ir-color-surface); color:var(--ir-color-text); border:1px solid var(--ir-color-border); border-radius:.75rem; padding:1rem; }
.settings-dialog::backdrop { background:#0009; }
.match-create-shell { max-width:48rem; margin:auto; }
.season-slicers { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; }
.season-game-filter { display:flex; align-items:end; gap:.4rem; margin:0; }
.season-game-filter label { font-size:.75rem; }
.season-game-filter select { max-width:23rem; min-width:10rem; padding:.35rem; }
.season-coverage { display:flex; gap:.75rem; align-items:center; flex-wrap:wrap; font-size:.8rem; padding:.4rem 0; }
.season-report-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--ir-tile-gap); align-items:start; }
.season-report-grid > .panel { margin:0; padding:var(--ir-tile-padding); min-width:0; }
.season-report-grid #kick-flight { grid-column:1 / -1; }
.season-metric .report-stat-card { margin:.4rem 0; padding:.5rem; }
.season-metric .report-stat-pair strong { font-size:1.6rem; }
.season-metric-evidence { margin-top:.5rem; }
.season-metric-evidence > summary { font-size:.8rem; }
.season-sample-count { font-size:.7rem; color:var(--ir-color-text-muted); }
.season-report-grid[data-season-section="highlights"] { grid-template-columns:repeat(4,minmax(0,1fr)); }
.season-report-grid[data-season-section="highlights"] .season-spatial { grid-column:span 2; order:1; }
.season-report-grid[data-season-section="highlights"] .season-metric { order:2; }
.season-report-grid[data-season-section="highlights"] .season-metric:is([data-season-metric="points"], [data-season-metric="possession"], [data-season-metric="entries_22"]) { order:0; }
.season-report-grid[data-season-section="highlights"] [data-season-metric="points"] { grid-column:span 2; }
.season-review-page .season-heatmap svg.rugby-field-svg { width:100%; height:100%; max-height:none; }
.season-review-page .season-trend { width:100%; max-width:none; margin:.3rem 0; }
.season-trend svg { width:100%; height:15rem; }
.season-trend-line { fill:none; stroke:currentColor; stroke-width:2; }
.season-trend-line.opponent-team { stroke-dasharray:5 4; }
.season-trend-point { fill:currentColor; stroke:var(--ir-color-bg); stroke-width:1; }
.season-review-page .season-kicks { max-width:none; width:100%; }
.season-review-page .season-kicks svg { width:100%; height:26rem; max-height:none; min-width:0; }
.season-review-page .season-heatmap { width:100%; max-width:none; }
.season-review-page .season-heatmap svg { width:100%; height:auto; max-height:26rem; }
.season-review-page .report-expandable:is(:fullscreen,.report-expanded) .season-kicks svg,
.season-review-page .report-expandable:is(:fullscreen,.report-expanded) .season-heatmap svg,
.season-review-page .report-expandable:is(:fullscreen,.report-expanded) .season-trend svg { height:80dvh; max-height:none; }
@media(max-width:900px) {
 .season-report-grid, .season-report-grid[data-season-section="highlights"] { grid-template-columns:minmax(0,1fr); }
 .season-report-grid[data-season-section="highlights"] .season-spatial,
 .season-report-grid[data-season-section="highlights"] [data-season-metric="points"] { grid-column:auto; }
 .season-slicers { width:100%; }
 .season-game-filter { width:100%; }
 .season-game-filter label { flex:1; min-width:0; }
 .season-game-filter select { width:100%; max-width:none; min-width:0; }
 .season-review-page .highlights-heading { flex-wrap:wrap; }
}

/* The same compact surface and heading hierarchy applies outside reports. */
.notification-card, .player-permission-card, .assignment-set-card { background:var(--ir-tile-surface); box-shadow:var(--ir-shadow-card); }
.review-dashboard .panel, .review-dashboard .highlight-visual {
 background:linear-gradient(110deg, color-mix(in srgb, var(--team-selected) 5%, var(--ir-color-surface)), var(--ir-color-surface) 50%, color-mix(in srgb, var(--team-opponent) 5%, var(--ir-color-surface)));
}
.review-dashboard .highlight-card, .review-dashboard .report-stat-card { box-shadow:var(--ir-shadow-card); }
.report-stat-pair strong, .report-stat-card > strong { font-size:clamp(1.15rem,1.8vw,1.9rem); font-variant-numeric:tabular-nums; }
.report-stat-pair { gap:var(--ir-space-2); }
.report-stat-card > .highlight-eyebrow { margin-bottom:var(--ir-space-1); }
.review-dashboard .report-expandable:is(:fullscreen,.report-expanded) .highlight-chart-body { height:calc(100dvh - 8rem); }
.review-dashboard .report-expandable:is(:fullscreen,.report-expanded) .highlight-chart-body > svg { max-height:none; }
@media (max-width:600px) {
 .highlight-timeline > text { font-size:40px; }
 .highlight-timeline > text:nth-of-type(even) { display:none; }
 .highlight-moment-symbol { transform:scale(1.7); transform-origin:12px 24px; }
 .highlight-timeline .highlight-moment-count { font-size:30px; }
 .review-dashboard .insight-chart > svg:not(.kick-metric-field) text { font-size:20px; }
 .review-dashboard #score-timeline .review-timeline { min-width:36rem; }
}

/* Player reports share report furniture while retaining a personal scope. */
.player-report-selectors { display: flex; flex-wrap: wrap; gap: var(--ir-space-3); }
.player-report-selectors form { display: flex; align-items: end; gap: var(--ir-space-2); min-width: 0; }
.player-report-selectors label { min-width: 0; }
.player-report-selectors select { max-width: 24rem; width: 100%; }
.player-insights-page .review-report-content > * { margin-block: var(--ir-space-3); }
.player-insights-page .review-summary-grid > *, .privacy-team { min-width: 0; }
.player-trend-line { fill: none; stroke: var(--ir-color-accent); stroke-width: 2; }
.player-trend-point { fill: var(--ir-color-accent); stroke: var(--ir-color-text); }
.player-trend-point:focus, .player-insights-page svg a:focus circle { stroke-width: 4; }
.privacy-team { padding: var(--ir-space-2); border-top: 1px solid var(--ir-color-border); }
.privacy-team > summary { font-weight: 600; padding-block: var(--ir-space-2); }
@media (max-width: 600px) {
  .player-report-selectors, .player-report-selectors form { display: grid; width: 100%; }
  .player-report-selectors select { max-width: 100%; }
}

.player-access-content .section-heading { flex-wrap: wrap; }

.player-insights-page { --team-selected: var(--ir-color-accent); --team-opponent: var(--ir-color-text-muted); }
.participant-lookup {
  display: grid;
  gap: .35rem;
  min-width: 0;
}
/* Shared captured-coordinate views and accessible field/clip divider. */
.spatial-view-control { display:inline-flex; align-items:center; gap:.5rem; font-size:.8rem; }
.review-filter-status { position:fixed; bottom:1rem; left:50%; transform:translateX(-50%); z-index:100; max-width:calc(100% - 2rem); padding:.5rem .75rem; border:1px solid var(--ir-color-border); border-radius:var(--ir-radius-sm); background:var(--ir-color-surface); color:var(--ir-color-text); box-shadow:var(--ir-shadow-card); }
.review-filter-status[hidden], [data-review-filter] [hidden] { display:none; }
.spatial-view-control select { max-width:100%; }
[data-spatial-plot] { min-width:0; }
#kick-flight [data-spatial-plot] { height:100%; display:flex; flex-direction:column; }
#kick-flight [data-spatial-plot] > svg { flex:1; min-height:0; }
#kick-flight .kick-review-layout, #kick-flight:fullscreen .kick-review-layout { grid-template-columns:minmax(0,var(--kick-first,60fr)) 12px minmax(0,var(--kick-second,40fr)); gap:.4rem; align-items:stretch; }
#kick-flight .kick-review-layout > .report-expandable { min-width:0; }
.kick-splitter { background:var(--ir-color-border); border-radius:var(--ir-radius-sm); cursor:col-resize; touch-action:none; }
.kick-splitter:focus-visible, .kick-splitter:hover { background:var(--ir-color-accent); outline:2px solid var(--ir-color-focus-ring); }
.kick-bounce-path { fill:none; stroke-width:1.5; stroke-dasharray:3 2; vector-effect:non-scaling-stroke; }
.review-dashboard .kick-team-unknown { stroke:var(--ir-color-text-muted); fill:var(--ir-color-text-muted); }
[data-momentum-cursor] { pointer-events:none; }
[data-momentum-cursor][hidden] { display:none; }
[data-momentum-cursor] text { fill:var(--ir-color-text); font-size:13px; paint-order:stroke; stroke:var(--ir-color-surface); stroke-width:4px; }
.penalty-map-marker { fill:var(--ir-color-text-muted); stroke-width:.5; }
.penalty-map-marker.owner-selected_team { fill:var(--team-selected); }
.penalty-map-marker.owner-opponent { fill:var(--team-opponent); }
.penalty-flag { stroke:var(--ir-field-symbol-outline); stroke-linejoin:round; stroke-linecap:round; }
.penalty-card { stroke:var(--ir-color-text); }
.penalty-card.yellow_card { fill:var(--ir-color-warning); }
.penalty-card.red_card { fill:var(--ir-color-danger); }
.penalty-card.orange_card { fill:color-mix(in srgb, var(--ir-color-warning), var(--ir-color-danger)); }
@media (max-width:900px) {
 #kick-flight .kick-review-layout, #kick-flight:fullscreen .kick-review-layout { grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,var(--kick-first,60fr)) 12px minmax(0,var(--kick-second,40fr)); height:clamp(36rem,80dvh,56rem); }
 #kick-flight .kick-field-viewport, #kick-flight:fullscreen .kick-field-viewport { height:100%; min-height:0; }
 #kick-flight .kick-review-video { overflow:auto; }
 #kick-flight .kick-review-layout > .report-expandable { min-height:0; }
 #kick-flight .kick-flight-chart { height:100%; display:flex; flex-direction:column; }
 #kick-flight .kick-field-viewport { flex:1; }
 .kick-splitter { cursor:row-resize; }
}

/* Review membership is visible alongside the stronger selected-event marker. */
.tagged-events-scroll-region tr.current-review-set {
  background: var(--ir-color-accent-surface);
  box-shadow: inset 3px 0 var(--ir-color-accent);
}
.analysis-review-video-controls { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .65rem; flex-basis: 100%; min-width: 0; }
.analysis-review-video-controls[hidden] { display: none; }
.analysis-review-video-controls > strong { flex: 1 1 10rem; min-width: 0; font-size: .78rem; }
.analysis-clip-control { display: inline-flex; align-items: center; gap: .3rem; font-size: .78rem; white-space: nowrap; }
.analysis-clip-control output { font-variant-numeric: tabular-nums; }
.analysis-clip-stepper { display: inline-flex; flex-direction: column; gap: .1rem; }
.analysis-clip-stepper button { min-inline-size: 2rem; min-block-size: 1.4rem; padding: 0 .4rem; line-height: 1.2; }
.analysis-video-toolbar { justify-content: flex-start; gap: .3rem; padding: .4rem .6rem; }
.analysis-video-toolbar > button,
.analysis-review-video-controls > button,
.analysis-review-video-controls [data-review-loop] { font-size: .75rem; min-height: 2rem; padding: .25rem .45rem; }
.analysis-video-toolbar [data-playback-command] { gap: .3rem; }
.analysis-video-toolbar .analysis-control-icon { height: .85rem; width: .85rem; }
[data-video-clip-status] { font-size: .75rem; }
[data-video-clip-status]:empty { display: none; }
.analysis-video-stage { padding: .4rem; }
.analysis-page .page-header { margin-bottom: .75rem; }
.analysis-header-actions { margin: 0; gap: .4rem; }
.analysis-header-actions > * { font-size: .8rem; padding: .4rem .65rem; }
.analysis-page .tagging-controls h3,
.analysis-page .tagging-controls h4 { font-size: .85rem; letter-spacing: -.01em; }
.analysis-page .tagging-controls .section-heading { gap: .5rem; }
.analysis-review-video-controls [data-review-loop][aria-pressed="true"] {
  background: var(--ir-color-accent); color: var(--ir-color-bg);
  border-color: var(--ir-color-accent-strong); font-weight: 700;
}
.analysis-review-video-controls [data-review-loop][aria-pressed="false"] {
  background: var(--ir-color-surface); color: var(--ir-color-text-muted);
}
[data-assignment-guid] .info-tooltip { display: inline-block; vertical-align: middle; }
[data-assignment-guid] .info-tooltip > summary { display: inline-flex; align-items: center; justify-content: center; list-style: none; min-inline-size: 1.75rem; min-block-size: 1.75rem; border-radius: 50%; color: var(--ir-color-text-muted); }
[data-assignment-guid] .info-tooltip > summary::-webkit-details-marker { display: none; }
[data-assignment-guid] .info-tooltip-content { position: fixed; z-index: 100; width: min(26rem, calc(100vw - 24px)); max-height: calc(100dvh - 24px); overflow: auto; padding: var(--ir-space-3); background: var(--ir-color-surface-raised); color: var(--ir-color-text); border: 1px solid var(--ir-color-border-strong); border-radius: var(--ir-radius-md); box-shadow: var(--ir-shadow-soft); font-size: .8rem; line-height: 1.5; text-align: left; white-space: normal; }
@media (forced-colors: active) {
  .analysis-review-video-controls [data-review-loop][aria-pressed="true"] { outline: 2px solid Highlight; }
}
@media (max-width: 1100px) and (min-width: 761px) {
  .assignment-lifecycle { grid-template-columns: minmax(8rem, auto) minmax(0, 1fr); }
  .assignment-lifecycle .lifecycle-actions { grid-column: 1 / -1; }
}
@media (max-width: 760px), (pointer: coarse) {
  .analysis-video-toolbar button,
  .analysis-clip-stepper button { min-height: 2.75rem; min-inline-size: 2.75rem; }
}
