:root {
  --timing-blue: #1976b8;
  --timing-teal: #148477;
  --timing-amber: #b96d00;
  --timing-violet: #7356a5;
  --timing-green: #16804b;
  --timing-charcoal: #26364b;
}

.telemetry-wrap {
  max-width: 1760px;
}

.engineer-suite[hidden] { display: none; }

.engineer-suite {
  position: relative;
  margin: 18px 0 28px;
}

body.admin .boris-btn {
  border-color: var(--timing-green);
  background: var(--timing-green);
}

body.admin .boris-btn::after { content: " · вкл"; }

.session-console {
  display: flex;
  min-height: 52px;
  margin: 0;
  border: 1px solid var(--line);
  border-left: 4px solid var(--navy);
  border-radius: 8px 8px 0 0;
  background: #fff;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 10px 8px 12px;
}

.operational-alerts[hidden] { display: none; }

.operational-alerts {
  display: grid;
  min-height: 50px;
  grid-template-columns: max-content max-content minmax(0, 1fr);
  align-items: center;
  gap: 8px 14px;
  padding: 9px 14px;
  border: 1px solid #dfbd72;
  border-top: 0;
  border-left-width: 4px;
  background: #fff9eb;
  color: #654600;
}

.operational-alerts[data-severity="CRITICAL"] {
  border-color: #e6a8b4;
  background: #fff2f4;
  color: #971f37;
}

.operational-alert-kicker,
.operational-alert-title {
  font-family: var(--display);
  letter-spacing: 0;
  text-transform: uppercase;
}

.operational-alert-kicker {
  font-size: 9px;
  opacity: .72;
}

.operational-alert-title {
  font-size: 11px;
}

.operational-alert-text {
  min-width: 0;
  color: var(--navy);
  font-size: 12px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.session-launcher,
.session-summary,
.session-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.session-summary {
  margin-left: auto;
  justify-content: flex-end;
}

.session-console-label,
.session-summary-label,
.panel-eyebrow,
.decision-label,
.metric-label,
.section-kicker,
.field-label {
  color: var(--muted);
  font-family: var(--display);
  font-size: 10px;
  letter-spacing: 0;
  line-height: 1.2;
  text-transform: uppercase;
}

.session-mode-button,
.session-stop-button,
.panel-tab,
.competitor-trigger,
.competitor-auto,
.dialog-action,
.dialog-cancel,
.segmented-button {
  min-height: 34px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  color: var(--navy);
  cursor: pointer;
  font-family: var(--display);
  font-size: 10.5px;
  letter-spacing: 0;
  line-height: 1;
  text-transform: uppercase;
}

.session-mode-button,
.session-stop-button {
  padding: 8px 11px;
}

.session-mode-button:hover,
.session-mode-button:focus-visible,
.competitor-trigger:hover,
.competitor-trigger:focus-visible,
.dialog-cancel:hover,
.dialog-cancel:focus-visible,
.segmented-button:hover,
.segmented-button:focus-visible {
  border-color: var(--navy);
}

.session-mode-button.active,
.session-mode-button[aria-pressed="true"] {
  border-color: var(--navy);
  background: var(--navy);
  color: #fff;
}

.session-mode-button:disabled,
.session-stop-button:disabled,
.dialog-action:disabled {
  cursor: not-allowed;
  opacity: .46;
}

.session-stop-button {
  border-color: #f2b8c3;
  color: var(--red);
}

.session-badge,
.freshness-badge {
  display: inline-flex;
  min-height: 24px;
  padding: 4px 7px;
  border: 1px solid var(--line);
  border-radius: 4px;
  align-items: center;
  background: #f3f5f8;
  color: var(--muted);
  font-family: var(--display);
  font-size: 10px;
  letter-spacing: 0;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

.session-badge[data-status="active"],
.freshness-badge[data-status="LIVE"] {
  border-color: #acd8c0;
  background: #eef8f2;
  color: #14633c;
}

.freshness-badge[data-status="STALE"] {
  border-color: #ead099;
  background: #fff8e8;
  color: #795100;
}

.freshness-badge[data-status="OFFLINE"],
.freshness-badge[data-status="CONNECTING"] {
  border-color: #efc3cb;
  background: #fff3f5;
  color: #a8273f;
}

.session-clock {
  color: var(--navy);
  font-family: var(--display);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  white-space: nowrap;
}

.timing-workspace.embed-wrap {
  height: calc(100vh - 235px);
  min-height: 590px;
  border-radius: 8px;
}

.timing-frame-stage {
  position: absolute;
  inset: 4px 0 0;
  overflow: hidden;
  background: #fff;
}

.timing-workspace .timing-frame-stage iframe {
  inset: 0;
  height: 100%;
}

.engineer-panel {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: visible;
  border: 1px solid #ced7e3;
  border-top: 0;
  border-radius: 0 0 8px 8px;
  background: #fff;
  box-shadow: 0 14px 36px rgba(17, 34, 58, .1);
}

.panel-flag-strip {
  min-height: 27px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 4px 12px;
  background: var(--timing-charcoal);
  color: #fff;
  font-family: var(--display);
  font-size: 10px;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  text-transform: uppercase;
}

.panel-flag-strip[data-flag="GREEN"] { background: #16784a; }
.panel-flag-strip[data-flag="YELLOW"],
.panel-flag-strip[data-flag="FCY"],
.panel-flag-strip[data-flag="SC"] { background: #b8860b; color: #111c2d; }
.panel-flag-strip[data-flag="RED"] { background: #c91f3d; }
.panel-flag-strip[data-flag="FINISH"] { background: var(--timing-charcoal); }

.panel-header {
  padding: 14px 16px 13px;
  border-bottom: 1px solid var(--line);
}

.panel-title {
  overflow: hidden;
  margin: 2px 0 3px;
  color: var(--navy);
  font-family: var(--display);
  font-size: 19px;
  letter-spacing: 0;
  line-height: 1.15;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.panel-session-meta {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  color: var(--muted);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

.decision-strip {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  border-bottom: 1px solid var(--line);
  background: #f7f9fb;
}

.decision-item {
  min-width: 0;
  min-height: 72px;
  padding: 11px 12px 9px;
  border-right: 1px solid var(--line);
}

.decision-item:last-child { border-right: 0; }

.decision-value {
  display: block;
  overflow: hidden;
  margin-top: 4px;
  color: var(--navy);
  font-family: var(--display);
  font-size: 16px;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.panel-tabs {
  display: flex;
  min-height: 43px;
  overflow-x: auto;
  border-bottom: 1px solid var(--line);
  background: #fff;
  scrollbar-width: none;
}

.panel-tabs::-webkit-scrollbar { display: none; }

.panel-tab {
  flex: 0 0 auto;
  min-height: 42px;
  padding: 9px 16px;
  border: 0;
  border-bottom: 3px solid transparent;
  border-radius: 0;
  background: transparent;
  color: var(--muted);
}

.panel-tab[aria-selected="true"] {
  border-bottom-color: var(--red);
  color: var(--navy);
}

.panel-toolbar {
  display: flex;
  min-height: 46px;
  padding: 8px 16px;
  border-bottom: 1px solid var(--line);
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  background: #fff;
}

.competitor-trigger {
  display: inline-flex;
  max-width: min(520px, 56vw);
  padding: 7px 9px;
  align-items: center;
  gap: 7px;
}

.competitor-trigger-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.series-swatches {
  display: inline-flex;
  gap: 3px;
  flex: none;
}

.series-swatch,
.legend-line {
  --series-color: var(--timing-blue);
  display: inline-block;
  width: 13px;
  height: 4px;
  border-radius: 1px;
  background: var(--series-color);
}

.series-swatch[data-series="ours"],
.legend-line[data-series="ours"] { --series-color: var(--red); }
.series-swatch[data-series="blue"],
.legend-line[data-series="blue"] { --series-color: var(--timing-blue); }
.series-swatch[data-series="teal"],
.legend-line[data-series="teal"] { --series-color: var(--timing-teal); }
.series-swatch[data-series="amber"],
.legend-line[data-series="amber"] { --series-color: var(--timing-amber); }
.series-swatch[data-series="violet"],
.legend-line[data-series="violet"] { --series-color: var(--timing-violet); }

.panel-scroll {
  min-height: 0;
  overflow: visible;
}

.panel-view[hidden] { display: none; }

.panel-view {
  min-height: 360px;
  background: #fff;
}

.panel-section {
  padding: 18px 16px;
  border-bottom: 1px solid var(--line);
}

.panel-section:last-child { border-bottom: 0; }

.section-heading {
  display: flex;
  margin-bottom: 10px;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}

.section-heading h3 {
  margin: 0;
  color: var(--navy);
  font-family: var(--display);
  font-size: 12px;
  letter-spacing: 0;
  line-height: 1.2;
  text-transform: uppercase;
}

.section-heading span {
  color: var(--muted);
  font-size: 11px;
}

.battle-row,
.metric-row,
.class-row,
.event-row,
.pit-row {
  display: grid;
  min-width: 0;
  border-top: 1px solid var(--line);
}

.battle-row {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  padding: 10px 0;
}

.battle-row:first-of-type,
.metric-row:first-of-type,
.pit-row:first-of-type { border-top: 0; }

.battle-name {
  display: -webkit-box;
  overflow: hidden;
  font-weight: 700;
  line-height: 1.3;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.battle-context,
.metric-context {
  margin-top: 3px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.35;
}

.battle-trend {
  display: flex;
  min-width: 0;
  margin-top: 6px;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 3px 9px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.35;
}

.battle-trend b {
  color: var(--navy);
  font-family: var(--display);
  font-size: 12px;
  letter-spacing: 0;
  text-transform: uppercase;
}

.battle-trend[data-tone="good"] b { color: #167545; }
.battle-trend[data-tone="bad"] b { color: var(--red); }

.battle-number {
  color: var(--navy);
  font-family: var(--display);
  font-size: 18px;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  text-align: right;
}

.metric-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.metric-cell {
  min-width: 0;
  min-height: 70px;
  padding: 10px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.metric-number {
  display: block;
  overflow: hidden;
  margin-top: 6px;
  color: var(--navy);
  font-family: var(--display);
  font-size: 18px;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  line-height: 1.05;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.timing-chart {
  position: relative;
  width: 100%;
  height: 320px;
  overflow: hidden;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fbfcfd;
}

.timing-chart-empty {
  position: absolute;
  inset: 0;
  display: flex;
  padding: 20px;
  align-items: center;
  justify-content: center;
  color: var(--muted);
  font-size: 12px;
  text-align: center;
}

.timing-chart-empty[hidden] { display: none; }

.chart-point-tooltip {
  position: absolute;
  z-index: 5;
  width: min(320px, calc(100% - 16px));
  padding: 13px 14px;
  border: 1px solid #cbd5e1;
  border-left: 4px solid var(--navy);
  border-radius: 6px;
  background: rgba(255, 255, 255, .98);
  color: var(--navy);
  box-shadow: 0 12px 32px rgba(10, 25, 45, .2);
  font-size: 13px;
  line-height: 1.4;
  pointer-events: none;
}

.chart-point-tooltip[hidden] { display: none; }

.chart-point-tooltip strong,
.chart-point-tooltip span {
  display: block;
}

.chart-point-tooltip strong {
  margin-bottom: 4px;
  font-family: var(--display);
  font-size: 20px;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
}

.chart-point-tooltip span + span { margin-top: 3px; }

.chart-point-tooltip .chart-tooltip-kicker {
  color: var(--muted);
  font-family: var(--display);
  font-size: 10px;
  text-transform: uppercase;
}

.chart-point-tooltip .chart-tooltip-team {
  display: block;
  margin: 8px 0 3px;
  color: var(--navy);
  font-family: var(--display);
  font-size: 15px;
  line-height: 1.2;
  text-transform: uppercase;
}

.chart-point-tooltip .chart-tooltip-value {
  color: var(--red);
  font-family: var(--display);
  font-size: 22px;
  font-variant-numeric: tabular-nums;
}

.chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 12px;
  margin: 9px 0 0;
  color: var(--muted);
  font-size: 11px;
}

.chart-legend-item {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: 6px;
}

.chart-legend-item b {
  overflow: hidden;
  color: var(--navy);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sector-comparison > .chart-legend {
  padding: 0 12px 10px;
}

.sector-chart-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.sector-chart-block {
  min-width: 0;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.sector-chart-block[hidden] { display: none; }

.sector-chart-block h4 {
  min-height: 38px;
  margin: 0;
  padding: 11px 12px 8px;
  color: var(--navy);
  font-family: var(--display);
  font-size: 12px;
  letter-spacing: 0;
  text-transform: uppercase;
}

.timing-chart.sector-chart {
  height: 260px;
  border-bottom: 0;
}

.uplot {
  font-family: var(--body);
}

.uplot .u-legend {
  display: none;
}

.panel-empty {
  display: flex;
  min-height: 290px;
  padding: 28px 22px;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

.panel-empty h3 {
  margin: 0 0 8px;
  color: var(--navy);
  font-family: var(--display);
  font-size: 18px;
  letter-spacing: 0;
  text-transform: uppercase;
}

.panel-empty p {
  max-width: 370px;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.class-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 11px;
}

.class-table th,
.class-table td {
  padding: 8px 5px;
  border-bottom: 1px solid var(--line);
  overflow: hidden;
  font-variant-numeric: tabular-nums;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.class-table th {
  position: sticky;
  z-index: 1;
  top: 0;
  background: #f5f7fa;
  color: var(--muted);
  font-family: var(--display);
  font-size: 8px;
  letter-spacing: 0;
  text-transform: uppercase;
}

.class-table th:nth-child(2),
.class-table td:nth-child(2) { text-align: left; }
.class-table th:first-child,
.class-table td:first-child { width: 38px; text-align: center; }
.class-table th:nth-child(3),
.class-table td:nth-child(3) { width: 50px; }
.class-table th:nth-child(4),
.class-table td:nth-child(4) { width: 72px; }
.class-table th:nth-child(5),
.class-table td:nth-child(5) { display: none; }
.class-table th:nth-child(6),
.class-table td:nth-child(6) { width: 48px; }
.class-table th:nth-child(7),
.class-table td:nth-child(7) { width: 43px; }
.class-table th:last-child,
.class-table td:last-child { width: 42px; text-align: center; }
.class-table .ours-row { background: #fff1f4; }
.class-table .ours-row td { color: #a81532; font-weight: 700; }

.class-team {
  display: block;
  overflow: hidden;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.class-car {
  display: block;
  overflow: hidden;
  margin-top: 2px;
  color: var(--muted);
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.eye-button {
  width: 32px;
  height: 32px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: #fff;
  color: var(--muted);
  cursor: pointer;
  font-size: 15px;
}

.eye-button[aria-pressed="true"] {
  border-color: var(--timing-blue);
  color: var(--timing-blue);
}

.event-row {
  grid-template-columns: 64px 8px minmax(0, 1fr);
  gap: 9px;
  padding: 10px 0;
  align-items: start;
}

.event-filters {
  display: flex;
  margin: -2px 0 10px;
  overflow-x: auto;
  gap: 5px;
  scrollbar-width: none;
}

.event-filters::-webkit-scrollbar { display: none; }

.event-filter {
  min-height: 34px;
  flex: 0 0 auto;
  padding: 7px 9px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: #fff;
  color: var(--muted);
  cursor: pointer;
  font-family: var(--display);
  font-size: 9px;
  letter-spacing: 0;
  text-transform: uppercase;
}

.event-filter[aria-pressed="true"] {
  border-color: var(--navy);
  background: var(--navy);
  color: #fff;
}

.event-time {
  color: var(--muted);
  font-family: var(--display);
  font-size: 9px;
  font-variant-numeric: tabular-nums;
}

.event-mark {
  width: 7px;
  height: 7px;
  margin-top: 3px;
  border-radius: 50%;
  background: var(--timing-blue);
}

.event-mark[data-kind="flag"] { background: #e7b51b; }
.event-mark[data-kind="pit"] { background: var(--timing-violet); }
.event-mark[data-kind="ours"] { background: var(--red); }

.pit-row {
  grid-template-columns: 38px minmax(0, 1fr) auto;
  gap: 8px;
  padding: 9px 0;
  align-items: center;
}

.pit-number {
  font-family: var(--display);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}

.pit-duration {
  font-family: var(--display);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}

.panel-empty.compact {
  min-height: 88px;
  padding: 18px 0;
}

.stint-timeline {
  min-width: 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.stint-timeline-axis-row,
.stint-timeline-row {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(132px, 190px) minmax(0, 1fr);
}

.stint-timeline-axis-row {
  min-height: 38px;
  background: #f7f9fb;
  color: var(--muted);
}

.stint-axis-label {
  display: flex;
  padding: 8px 10px;
  align-items: center;
  border-right: 1px solid var(--line);
  font-family: var(--display);
  font-size: 9px;
  letter-spacing: 0;
  text-transform: uppercase;
}

.stint-axis {
  position: relative;
  min-width: 0;
}

.stint-axis-tick {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  color: var(--muted);
}

.stint-axis-tick i {
  position: absolute;
  top: 20px;
  bottom: 0;
  left: 0;
  border-left: 1px solid #cbd4e0;
}

.stint-axis-tick b {
  position: absolute;
  top: 7px;
  left: 0;
  font-family: var(--display);
  font-size: 9px;
  font-variant-numeric: tabular-nums;
  font-weight: 400;
  letter-spacing: 0;
  transform: translateX(-50%);
  white-space: nowrap;
}

.stint-axis-tick[data-edge="start"] b { transform: none; }
.stint-axis-tick[data-edge="end"] { margin-left: -1px; }
.stint-axis-tick[data-edge="end"] b { transform: translateX(-100%); }

.stint-timeline-row {
  min-height: 54px;
  border-top: 1px solid var(--line);
}

.stint-timeline-row[data-ours="true"] { background: #fffafb; }

.stint-row-label {
  display: flex;
  min-width: 0;
  padding: 8px 10px;
  align-items: center;
  border-right: 1px solid var(--line);
  gap: 7px;
}

.stint-row-label > span { min-width: 0; }

.stint-row-label b,
.stint-row-label small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stint-row-label b {
  color: var(--navy);
  font-size: 10px;
}

.stint-row-label small {
  margin-top: 2px;
  color: var(--muted);
  font-size: 9px;
}

.stint-track {
  position: relative;
  min-width: 0;
  overflow: hidden;
  background: #f7f9fb;
}

.stint-flag-band,
.stint-segment,
.stint-now {
  position: absolute;
  top: 0;
  bottom: 0;
}

.stint-flag-band {
  z-index: 0;
  background: #edf1f5;
  pointer-events: none;
}

.stint-flag-band[data-flag="GREEN"] { background: #e8f4ed; }
.stint-flag-band[data-flag="YELLOW"],
.stint-flag-band[data-flag="FCY"],
.stint-flag-band[data-flag="SC"] { background: #fff2c7; }
.stint-flag-band[data-flag="RED"] { background: #fde5e9; }
.stint-flag-band[data-flag="FINISH"] { background: #e7ebf0; }

.stint-segment {
  z-index: 2;
  top: 12px;
  bottom: auto;
  min-width: 3px;
  height: 28px;
  overflow: hidden;
  padding: 5px 6px;
  border: 1px solid var(--timeline-series);
  border-radius: 4px;
  background: var(--timeline-fill);
  color: var(--timeline-series);
  cursor: help;
  font-size: 9px;
  font-variant-numeric: tabular-nums;
  line-height: 16px;
  text-overflow: clip;
  white-space: nowrap;
}

.stint-segment[data-kind="pit"] {
  z-index: 3;
  top: 7px;
  min-width: 14px;
  height: 38px;
  padding: 10px 4px;
  border-color: var(--timeline-series);
  background: var(--timing-charcoal);
  color: #fff;
  line-height: 16px;
}

.stint-segment:focus-visible {
  z-index: 4;
  outline: 2px solid var(--navy);
  outline-offset: -2px;
}

.stint-now {
  z-index: 4;
  right: 1px;
  width: 0;
  border-left: 2px dashed var(--navy);
  pointer-events: none;
}

.stint-timeline-legend {
  display: flex;
  min-height: 36px;
  padding: 8px 10px;
  align-items: center;
  background: #fff;
  color: var(--muted);
  flex-wrap: wrap;
  font-size: 9px;
  gap: 8px 16px;
}

.stint-timeline-legend span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.stint-timeline-legend i {
  display: inline-block;
  width: 18px;
  height: 8px;
  border: 1px solid var(--timing-blue);
  border-radius: 2px;
  background: rgba(25, 118, 184, .18);
}

.stint-timeline-legend i[data-legend="pit"] {
  height: 12px;
  border-color: var(--timing-charcoal);
  background: var(--timing-charcoal);
}

.stint-timeline-legend i[data-legend="flag"] {
  border-color: #e5ca73;
  background: #fff2c7;
}

.stint-timeline-legend i[data-legend="now"] {
  width: 2px;
  height: 14px;
  border: 0;
  border-left: 2px dashed var(--navy);
  border-radius: 0;
  background: transparent;
}

.competitor-popover {
  position: absolute;
  z-index: 20;
  right: 16px;
  width: min(520px, calc(100% - 32px));
  display: none;
  max-height: min(480px, calc(100vh - 32px));
  overflow: hidden;
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(17, 34, 58, .24);
}

.competitor-popover.open { display: flex; flex-direction: column; }

.competitor-popover-header {
  display: flex;
  padding: 9px;
  border-bottom: 1px solid var(--line);
  align-items: center;
  gap: 8px;
}

.competitor-search {
  min-width: 0;
  min-height: 36px;
  flex: 1;
  border: 1px solid var(--line);
  border-radius: 5px;
  padding: 7px 9px;
  color: var(--navy);
  font: 13px var(--body);
}

.competitor-auto {
  min-height: 36px;
  padding: 7px 10px;
}

.competitor-auto[aria-pressed="true"] {
  border-color: var(--navy);
  background: var(--navy);
  color: #fff;
}

.competitor-list {
  min-height: 0;
  overflow: auto;
}

.competitor-option {
  display: grid;
  grid-template-columns: 15px 38px minmax(0, 1fr) auto;
  gap: 8px;
  min-height: 54px;
  padding: 8px 10px;
  border-bottom: 1px solid var(--line);
  align-items: center;
  cursor: pointer;
}

.competitor-option:last-child { border-bottom: 0; }
.competitor-option:hover { background: #f6f8fb; }
.competitor-option input { width: 16px; height: 16px; margin: 0; accent-color: var(--timing-blue); }
.competitor-pic { font-family: var(--display); font-size: 11px; font-variant-numeric: tabular-nums; }
.competitor-name { min-width: 0; }
.competitor-name b,
.competitor-name span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.competitor-name b { font-size: 11px; }
.competitor-name span { margin-top: 2px; color: var(--muted); font-size: 9px; }
.competitor-facts { color: var(--muted); font-size: 9px; font-variant-numeric: tabular-nums; text-align: right; }
.competitor-limit { margin: 0; padding: 8px 10px; border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; }

.timing-dialog {
  width: min(460px, calc(100vw - 28px));
  max-height: calc(100vh - 28px);
  padding: 0;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  color: var(--navy);
  background: #fff;
  box-shadow: 0 28px 80px rgba(9, 21, 38, .34);
}

.timing-dialog::backdrop { background: rgba(8, 18, 31, .58); }

.timing-dialog-form { display: flex; flex-direction: column; }

.timing-dialog-header {
  padding: 17px 18px 14px;
  border-bottom: 1px solid var(--line);
}

.timing-dialog-header h2 {
  margin: 0;
  font-family: var(--display);
  font-size: 18px;
  letter-spacing: 0;
  text-transform: uppercase;
}

.timing-dialog-header p {
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.timing-dialog-body {
  display: grid;
  gap: 17px;
  padding: 17px 18px;
}

.dialog-fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.dialog-fieldset legend { margin-bottom: 8px; }

.segmented-control {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
}

.segmented-button {
  min-height: 42px;
  padding: 8px 5px;
}

.segmented-button[aria-pressed="true"] {
  border-color: var(--navy);
  background: var(--navy);
  color: #fff;
}

.pit-stepper {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 44px;
  border: 1px solid var(--line);
  border-radius: 6px;
  overflow: hidden;
}

.pit-stepper button {
  min-height: 44px;
  border: 0;
  background: #f3f5f8;
  color: var(--navy);
  cursor: pointer;
  font-family: var(--display);
  font-size: 20px;
}

.pit-stepper output {
  display: flex;
  min-width: 0;
  border-right: 1px solid var(--line);
  border-left: 1px solid var(--line);
  align-items: center;
  justify-content: center;
  color: var(--navy);
  font-family: var(--display);
  font-size: 19px;
  font-variant-numeric: tabular-nums;
}

.engineer-token-input {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 9px 11px;
  color: var(--navy);
  font: 14px var(--body);
}

.dialog-error {
  min-height: 18px;
  margin: 0;
  color: #b21f3a;
  font-size: 11px;
}

.timing-dialog-actions {
  display: flex;
  padding: 12px 18px 17px;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.dialog-action,
.dialog-cancel {
  min-height: 40px;
  padding: 9px 14px;
}

.dialog-action {
  border-color: var(--red);
  background: var(--red);
  color: #fff;
}

.dialog-action:hover,
.dialog-action:focus-visible { background: var(--red-2); border-color: var(--red-2); }

.timing-tooltip {
  position: fixed;
  z-index: 200;
  display: none;
  max-width: min(360px, calc(100vw - 20px));
  padding: 9px 11px;
  border: 1px solid #cbd5e1;
  border-radius: 5px;
  background: #fff;
  color: var(--navy);
  box-shadow: 0 10px 28px rgba(10, 25, 45, .2);
  font-size: 12px;
  line-height: 1.45;
  pointer-events: none;
  white-space: pre-line;
}

.timing-tooltip.visible { display: block; }

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

@media (max-width: 1100px) {
  .decision-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sector-chart-grid { grid-template-columns: minmax(0, 1fr); }
  .decision-item:nth-child(4n) { border-right: 0; }
  .decision-item:nth-child(-n+4) { border-bottom: 1px solid var(--line); }
}

@media (max-width: 980px) {
  .session-console { align-items: flex-start; flex-direction: column; }
  .session-summary { width: 100%; margin-left: 0; justify-content: flex-start; }
  .timing-workspace.embed-wrap { height: calc(100vh - 250px); min-height: 560px; }
}

@media (max-width: 767px) {
  .telemetry-wrap { padding-right: 12px; padding-left: 12px; }
  .engineer-suite { margin-top: 14px; }
  .session-launcher { width: 100%; flex-wrap: wrap; }
  .session-console-label { width: 100%; }
  .session-mode-button { flex: 1 1 29%; min-height: 42px; }
  .session-summary { flex-wrap: wrap; }
  .operational-alerts {
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 5px 10px;
    padding: 10px 11px;
  }
  .operational-alert-text { grid-column: 1 / -1; }
  .timing-workspace.embed-wrap { height: min(680px, calc(100dvh - 250px)); min-height: 520px; }
  .panel-header { padding-top: 11px; }
  .decision-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .decision-item { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .decision-item:nth-child(4n) { border-right: 0; }
  .decision-item:nth-child(2n) { border-right: 0; }
  .decision-item:nth-child(-n+4) { border-bottom: 1px solid var(--line); }
  .decision-item:nth-last-child(-n+2) { border-bottom: 0; }
  .decision-item { min-height: 56px; }
  .panel-tab { min-height: 48px; padding: 10px 12px; }
  .event-filter { min-height: 44px; }
  .panel-toolbar { min-height: 52px; }
  .competitor-trigger { min-height: 44px; }
  .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .timing-chart { height: 280px; }
  .timing-chart.sector-chart { height: 260px; }
  .competitor-popover { right: 8px; width: calc(100% - 16px); }
  .stint-timeline-axis-row,
  .stint-timeline-row { grid-template-columns: minmax(102px, 122px) minmax(0, 1fr); }
  .stint-axis-label,
  .stint-row-label { padding-right: 7px; padding-left: 7px; }
  .stint-row-label b { font-size: 9px; }
  .stint-row-label small { font-size: 8px; }
  .stint-segment { padding-right: 4px; padding-left: 4px; font-size: 8px; }
}

@media (max-width: 480px) {
  .session-console { padding: 9px; }
  .session-mode-button { padding-right: 6px; padding-left: 6px; font-size: 9.5px; }
  .session-summary-label { display: none; }
  .panel-title { font-size: 14px; }
  .panel-session-meta { flex-wrap: wrap; font-size: 11px; }
  .panel-toolbar { align-items: flex-start; flex-direction: column; }
  .competitor-trigger { width: 100%; max-width: none; justify-content: space-between; }
  .metric-number { font-size: 16px; }
  .segmented-control { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stint-axis-tick:nth-child(2) b,
  .stint-axis-tick:nth-child(4) b { display: none; }
  .stint-timeline-legend { gap: 7px 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .timing-frame-stage { transition: none; }
}
