@inventure71/paddockjs 3.0.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/CHANGELOG.md +146 -1
  2. package/INSTALL_AND_UPDATE.md +15 -4
  3. package/README.md +84 -562
  4. package/docs/architecture.md +28 -18
  5. package/docs/composable-layouts.md +77 -0
  6. package/docs/custom_model_controller.md +4 -4
  7. package/docs/data-helpers.md +50 -0
  8. package/docs/data_contract.md +9 -7
  9. package/docs/getting-started.md +75 -0
  10. package/docs/headless-environment.md +68 -0
  11. package/docs/index.md +17 -4
  12. package/docs/rules.md +6 -2
  13. package/docs/system_specs.md +49 -6
  14. package/docs/theming.md +64 -0
  15. package/docs/training.md +20 -14
  16. package/docs/troubleshooting.md +76 -0
  17. package/docs/upgrading-hosts-to-3.md +42 -0
  18. package/examples/python/README.md +6 -0
  19. package/examples/python/base_policy_server.py +19 -0
  20. package/package.json +10 -3
  21. package/src/api/PaddockSimulatorController.js +78 -22
  22. package/src/api/runtimeTheme.js +59 -0
  23. package/src/app/F1SimulatorApp.js +24 -3
  24. package/src/app/readouts/timingTowerRenderer.js +203 -42
  25. package/src/app/runtime/frameLoop.js +5 -1
  26. package/src/config/defaultOptions.js +8 -1
  27. package/src/config/themeOptions.js +5 -0
  28. package/src/data/index.d.ts +212 -0
  29. package/src/data/index.js +14 -0
  30. package/src/environment/episode.js +11 -1
  31. package/src/environment/metrics.js +59 -16
  32. package/src/environment/observationVector.js +50 -33
  33. package/src/environment/observations.js +89 -20
  34. package/src/environment/runtime.js +41 -0
  35. package/src/environment/sensors/carRays.js +48 -37
  36. package/src/environment/sensors/index.js +501 -97
  37. package/src/environment/sensors/indexedRayBands.js +134 -46
  38. package/src/environment/sensors/rayBandTrace.js +1171 -0
  39. package/src/environment/sensors/rayChannels.js +108 -0
  40. package/src/environment/sensors/rayConfig.js +71 -25
  41. package/src/environment/sensors/rayGeometry.js +23 -17
  42. package/src/environment/sensors/sensorTargets.js +67 -1
  43. package/src/environment/sensors/surfaceRays.js +130 -89
  44. package/src/environment/sensors/trackRays.js +115 -1
  45. package/src/index.d.ts +43 -0
  46. package/src/index.js +27 -2
  47. package/src/simulation/collisionGeometry.js +260 -96
  48. package/src/simulation/pit/pitFlow.js +21 -9
  49. package/src/simulation/pit/pitQueue.js +5 -3
  50. package/src/simulation/pit/pitRouteMovement.js +9 -4
  51. package/src/simulation/pit/pitRouting.js +77 -42
  52. package/src/simulation/pit/pitState.js +1 -0
  53. package/src/simulation/pit/pitTireService.js +7 -3
  54. package/src/simulation/race/raceFinish.js +25 -8
  55. package/src/simulation/race/raceOrder.js +189 -32
  56. package/src/simulation/race/raceProgress.js +129 -37
  57. package/src/simulation/race/raceSetup.js +2 -0
  58. package/src/simulation/race/raceStep.js +25 -13
  59. package/src/simulation/raceSimulation.js +20 -17
  60. package/src/simulation/rules/collisionSteward.js +40 -23
  61. package/src/simulation/rules/rulesReview.js +77 -56
  62. package/src/simulation/snapshots/raceSnapshots.js +37 -0
  63. package/src/simulation/timing/drsTiming.js +143 -30
  64. package/src/simulation/timing/gapEstimation.js +25 -3
  65. package/src/simulation/timing/lapTelemetry.js +115 -36
  66. package/src/simulation/timing/raceTiming.js +5 -1
  67. package/src/simulation/timing/sectorPerformance.js +104 -26
  68. package/src/simulation/timing/timingHistory.js +229 -14
  69. package/src/simulation/timing/timingLines.js +65 -7
  70. package/src/simulation/track/pitLaneLayout.js +23 -0
  71. package/src/simulation/track/pitLaneState.js +218 -19
  72. package/src/simulation/track/spatialQueries.js +67 -11
  73. package/src/simulation/track/trackMath.js +91 -24
  74. package/src/simulation/track/trackModel.js +2 -0
  75. package/src/simulation/track/trackQueryIndex.js +1334 -100
  76. package/src/simulation/track/trackQueryPitIndex.js +138 -14
  77. package/src/simulation/track/trackQueryScratch.js +7 -0
  78. package/src/simulation/track/trackQueryStats.js +25 -0
  79. package/src/simulation/track/trackSnapshotJson.js +139 -0
  80. package/src/simulation/track/trackStatePolicy.js +249 -1
  81. package/src/simulation/vehicle/contactResolution.js +96 -59
  82. package/src/simulation/vehicle/mainTrackWheelSurface.js +73 -34
  83. package/src/simulation/vehicle/pitWheelSurface.js +81 -28
  84. package/src/simulation/vehicle/runoffResponse.js +54 -29
  85. package/src/simulation/vehicle/vehicleGeometry.js +245 -51
  86. package/src/simulation/vehicle/vehiclePhysics.js +42 -27
  87. package/src/simulation/vehicle/vehicleSnapshots.js +23 -0
  88. package/src/simulation/vehicle/vehicleState.js +6 -0
  89. package/src/simulation/vehicle/wheelSurface.js +807 -92
  90. package/src/styles.css +497 -497
package/src/styles.css CHANGED
@@ -1,5 +1,3 @@
1
- @import url('https://fonts.googleapis.com/css2?family=Archivo:wdth,wght@85,500;100,700;110,900&family=IBM+Plex+Mono:wght@500;600;700&display=swap');
2
-
3
1
  .f1-sim-component {
4
2
  container-type: inline-size;
5
3
  color-scheme: dark;
@@ -22,8 +20,8 @@
22
20
  --blue: var(--paddock-color-info, var(--paddock-blue-color, #39a7ff));
23
21
  --track: var(--paddock-color-track, var(--paddock-track-color, #262a31));
24
22
  --track-edge: var(--paddock-color-track-edge, var(--paddock-track-edge-color, #f4f7fb));
25
- --font-display: 'Archivo', sans-serif;
26
- --font-mono: 'IBM Plex Mono', monospace;
23
+ --font-display: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
24
+ --font-mono: 'SFMono-Regular', Consolas, 'Liberation Mono', ui-monospace, monospace;
27
25
  --timing-columns: 1.9rem 2.1rem minmax(4.6rem, 1fr) 4.55rem 1.6rem;
28
26
  --paddock-entry-count: 10;
29
27
  --timing-board-max-width: var(--paddock-timing-tower-max-width, 390px);
@@ -471,7 +469,7 @@
471
469
  min-inline-size: 0;
472
470
  }
473
471
 
474
- .sim-shell {
472
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell {
475
473
  min-height: 100svh;
476
474
  padding:
477
475
  max(clamp(0.85rem, 2vw, 1.4rem), var(--paddock-safe-area-top))
@@ -481,14 +479,14 @@
481
479
  background: #000;
482
480
  }
483
481
 
484
- .sim-workspace {
482
+ :where(.f1-sim-component, .f1-sim-component *).sim-workspace {
485
483
  min-height: calc(100svh - clamp(1.7rem, 4vw, 2.8rem));
486
484
  display: flex;
487
485
  flex-direction: column;
488
486
  gap: 0.9rem;
489
487
  }
490
488
 
491
- .sim-topbar {
489
+ :where(.f1-sim-component, .f1-sim-component *).sim-topbar {
492
490
  position: relative;
493
491
  display: grid;
494
492
  grid-template-columns: auto minmax(0, 1fr) auto;
@@ -499,8 +497,8 @@
499
497
  box-shadow: 0 18px 34px rgba(0, 0, 0, 0.24);
500
498
  }
501
499
 
502
- .sim-backlink,
503
- .sim-control {
500
+ :where(.f1-sim-component, .f1-sim-component *).sim-backlink,
501
+ :where(.f1-sim-component, .f1-sim-component *).sim-control {
504
502
  min-height: 44px;
505
503
  min-width: 44px;
506
504
  overflow: hidden;
@@ -518,30 +516,30 @@
518
516
  cursor: pointer;
519
517
  }
520
518
 
521
- .sim-backlink:hover,
522
- .sim-control:hover {
519
+ :where(.f1-sim-component, .f1-sim-component *).sim-backlink:hover,
520
+ :where(.f1-sim-component, .f1-sim-component *).sim-control:hover {
523
521
  border-color: var(--text);
524
522
  background: rgba(255, 255, 255, 0.1);
525
523
  }
526
524
 
527
- .sim-control--safety.is-active {
525
+ :where(.f1-sim-component, .f1-sim-component *).sim-control--safety.is-active {
528
526
  color: #0a0b0d;
529
527
  background: var(--yellow);
530
528
  border-color: var(--yellow);
531
529
  }
532
530
 
533
- .camera-controls button.is-active,
534
- .camera-controls button[aria-pressed='true'] {
531
+ :where(.f1-sim-component, .f1-sim-component *).camera-controls button.is-active,
532
+ :where(.f1-sim-component, .f1-sim-component *).camera-controls button[aria-pressed='true'] {
535
533
  color: #08090b;
536
534
  background: var(--text);
537
535
  border-color: var(--text);
538
536
  }
539
537
 
540
- .sim-title-block {
538
+ :where(.f1-sim-component, .f1-sim-component *).sim-title-block {
541
539
  min-width: 0;
542
540
  }
543
541
 
544
- .sim-kicker {
542
+ :where(.f1-sim-component, .f1-sim-component *).sim-kicker {
545
543
  margin: 0 0 0.2rem;
546
544
  color: var(--red);
547
545
  font-family: var(--font-mono);
@@ -559,7 +557,7 @@
559
557
  letter-spacing: 0;
560
558
  }
561
559
 
562
- .sim-controls {
560
+ :where(.f1-sim-component, .f1-sim-component *).sim-controls {
563
561
  min-width: 0;
564
562
  display: flex;
565
563
  gap: 0.6rem;
@@ -567,37 +565,38 @@
567
565
  }
568
566
 
569
567
  @container (max-width: 860px) {
570
- .sim-topbar {
568
+ :where(.f1-sim-component, .f1-sim-component *).sim-topbar {
571
569
  grid-template-columns: minmax(0, 1fr);
572
570
  align-items: stretch;
573
571
  }
574
572
 
575
- .sim-controls,
576
- .sim-backlink {
573
+ :where(.f1-sim-component, .f1-sim-component *).sim-controls,
574
+ :where(.f1-sim-component, .f1-sim-component *).sim-backlink {
577
575
  justify-content: stretch;
578
576
  }
579
577
 
580
- .sim-controls {
578
+ :where(.f1-sim-component, .f1-sim-component *).sim-controls {
581
579
  display: grid;
582
580
  grid-template-columns: repeat(2, minmax(0, 1fr));
583
581
  }
584
582
 
585
- .sim-topbar h1 {
586
- line-height: 1.06;
583
+ :where(.f1-sim-component, .f1-sim-component *).sim-topbar h1 {
584
+ line-height: 0.92;
585
+ min-height: 1.08em;
587
586
  }
588
587
 
589
- .sim-control,
590
- .sim-backlink {
588
+ :where(.f1-sim-component, .f1-sim-component *).sim-control,
589
+ :where(.f1-sim-component, .f1-sim-component *).sim-backlink {
591
590
  text-align: center;
592
591
  }
593
592
  }
594
593
 
595
- .sim-external-camera-controls {
594
+ :where(.f1-sim-component, .f1-sim-component *).sim-external-camera-controls {
596
595
  display: flex;
597
596
  justify-content: flex-start;
598
597
  }
599
598
 
600
- .sim-grid {
599
+ :where(.f1-sim-component, .f1-sim-component *).sim-grid {
601
600
  flex: 1;
602
601
  min-height: 0;
603
602
  position: relative;
@@ -606,8 +605,8 @@
606
605
  gap: 0.9rem;
607
606
  }
608
607
 
609
- .sim-shell--left-tower-overlay .sim-grid,
610
- .sim-shell--left-tower-overlay.sim-grid {
608
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .sim-grid,
609
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay.sim-grid {
611
610
  --timing-board-width: max(255px, calc((100cqw - 1.8rem) * 0.78 / 4.68));
612
611
  --race-data-safe-left: calc(2rem + var(--timing-board-width));
613
612
  --race-data-right-gutter: 1rem;
@@ -617,11 +616,11 @@
617
616
  grid-template-columns: minmax(620px, 1fr) minmax(270px, 0.9fr);
618
617
  }
619
618
 
620
- .sim-shell--left-tower-overlay .sim-canvas-panel {
619
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .sim-canvas-panel {
621
620
  grid-column: 1;
622
621
  }
623
622
 
624
- .sim-canvas-panel--with-timing-tower {
623
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--with-timing-tower {
625
624
  --timing-board-width: min(var(--timing-board-max-width), max(255px, calc((100cqw - 1.8rem) * 0.78 / 4.68)));
626
625
  --race-data-safe-left: calc(2rem + var(--timing-board-width));
627
626
  --race-data-right-gutter: 1rem;
@@ -629,15 +628,15 @@
629
628
  container-type: inline-size;
630
629
  }
631
630
 
632
- .sim-shell--left-tower-overlay.sim-shell--timing-expand-race-view .sim-canvas-panel {
631
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay.sim-shell--timing-expand-race-view .sim-canvas-panel {
633
632
  min-height: max(var(--paddock-race-view-min-height, 620px), var(--timing-board-min-height));
634
633
  }
635
634
 
636
- .sim-canvas-panel--with-timing-tower.sim-canvas-panel--timing-expand-race-view {
635
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--with-timing-tower.sim-canvas-panel--timing-expand-race-view {
637
636
  min-height: max(var(--paddock-race-view-min-height, 620px), var(--timing-board-min-height));
638
637
  }
639
638
 
640
- .sim-shell--left-tower-overlay .sim-timing {
639
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .sim-timing {
641
640
  position: absolute;
642
641
  z-index: 5;
643
642
  top: 1rem;
@@ -652,7 +651,7 @@
652
651
  pointer-events: auto;
653
652
  }
654
653
 
655
- .sim-canvas-panel--with-timing-tower > .sim-timing {
654
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--with-timing-tower > .sim-timing {
656
655
  position: absolute;
657
656
  z-index: 5;
658
657
  top: 1rem;
@@ -668,7 +667,7 @@
668
667
  pointer-events: auto;
669
668
  }
670
669
 
671
- .timing-panel-toggle {
670
+ :where(.f1-sim-component, .f1-sim-component *).timing-panel-toggle {
672
671
  position: absolute;
673
672
  z-index: 14;
674
673
  top: 0.75rem;
@@ -689,13 +688,13 @@
689
688
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.24);
690
689
  }
691
690
 
692
- .timing-panel-toggle[aria-expanded='true'] {
691
+ :where(.f1-sim-component, .f1-sim-component *).timing-panel-toggle[aria-expanded='true'] {
693
692
  color: transparent;
694
693
  background: rgba(8, 10, 16, 0.82);
695
694
  border-color: color-mix(in srgb, var(--green) 74%, rgba(255, 255, 255, 0.22));
696
695
  }
697
696
 
698
- .timing-panel-toggle[aria-expanded='true'] {
697
+ :where(.f1-sim-component, .f1-sim-component *).timing-panel-toggle[aria-expanded='true'] {
699
698
  width: 44px;
700
699
  min-width: 44px;
701
700
  padding: 0;
@@ -704,8 +703,8 @@
704
703
  font-size: 0;
705
704
  }
706
705
 
707
- .timing-panel-toggle[aria-expanded='true']::before,
708
- .timing-panel-toggle[aria-expanded='true']::after {
706
+ :where(.f1-sim-component, .f1-sim-component *).timing-panel-toggle[aria-expanded='true']::before,
707
+ :where(.f1-sim-component, .f1-sim-component *).timing-panel-toggle[aria-expanded='true']::after {
709
708
  content: "";
710
709
  position: absolute;
711
710
  left: 50%;
@@ -716,107 +715,107 @@
716
715
  border-radius: 999px;
717
716
  }
718
717
 
719
- .timing-panel-toggle[aria-expanded='true']::before {
718
+ :where(.f1-sim-component, .f1-sim-component *).timing-panel-toggle[aria-expanded='true']::before {
720
719
  transform: translate(-50%, -50%) rotate(45deg);
721
720
  }
722
721
 
723
- .timing-panel-toggle[aria-expanded='true']::after {
722
+ :where(.f1-sim-component, .f1-sim-component *).timing-panel-toggle[aria-expanded='true']::after {
724
723
  transform: translate(-50%, -50%) rotate(-45deg);
725
724
  }
726
725
 
727
- .sim-shell--left-tower-overlay.sim-shell--timing-scroll .sim-timing {
726
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay.sim-shell--timing-scroll .sim-timing {
728
727
  overflow: hidden;
729
728
  }
730
729
 
731
- .sim-canvas-panel--timing-scroll .sim-timing {
730
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--timing-scroll .sim-timing {
732
731
  overflow: hidden;
733
732
  }
734
733
 
735
- .sim-shell--left-tower-overlay .sim-canvas-panel > .camera-controls {
734
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .sim-canvas-panel > .camera-controls {
736
735
  left: calc(2rem + var(--timing-board-width));
737
736
  max-width: calc(100% - (2rem + var(--timing-board-width)) - 1rem);
738
737
  }
739
738
 
740
- .sim-canvas-panel--with-timing-tower > .camera-controls {
739
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--with-timing-tower > .camera-controls {
741
740
  left: calc(2rem + var(--timing-board-width));
742
741
  max-width: calc(100% - (2rem + var(--timing-board-width)) - 1rem);
743
742
  }
744
743
 
745
- .sim-shell--left-tower-overlay .start-lights {
744
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .start-lights {
746
745
  left: calc((2rem + var(--timing-board-width)) + (100% - (2rem + var(--timing-board-width))) / 2);
747
746
  }
748
747
 
749
- .sim-canvas-panel--with-timing-tower > .start-lights {
748
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--with-timing-tower > .start-lights {
750
749
  left: calc((2rem + var(--timing-board-width)) + (100% - (2rem + var(--timing-board-width))) / 2);
751
750
  }
752
751
 
753
- .sim-shell--left-tower-overlay .race-data-panel {
752
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .race-data-panel {
754
753
  z-index: 12;
755
754
  grid-template-columns: clamp(4.6rem, 7.5cqw, 7rem) minmax(0, 1fr) auto;
756
755
  }
757
756
 
758
- .sim-canvas-panel--with-timing-tower .race-data-panel {
757
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--with-timing-tower .race-data-panel {
759
758
  z-index: 12;
760
759
  grid-template-columns: clamp(4.6rem, 7.5cqw, 7rem) minmax(0, 1fr) auto;
761
760
  }
762
761
 
763
762
  @container (min-width: 980px) {
764
- .sim-shell--left-tower-overlay .race-data-panel--auto,
765
- .sim-canvas-panel--with-timing-tower .race-data-panel--auto {
763
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .race-data-panel--auto,
764
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--with-timing-tower .race-data-panel--auto {
766
765
  --race-data-banner-left: calc(var(--race-data-safe-left) + (var(--race-data-available-width) / 2));
767
766
  --race-data-banner-width: min(860px, calc(var(--race-data-available-width) - 0.5rem));
768
767
  --race-data-banner-translate-x: -50%;
769
768
  }
770
769
  }
771
770
 
772
- .sim-shell--left-tower-overlay .race-data-copy {
771
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .race-data-copy {
773
772
  padding-inline: 0.45rem 0.8rem;
774
773
  }
775
774
 
776
- .sim-canvas-panel--with-timing-tower .race-data-copy {
775
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--with-timing-tower .race-data-copy {
777
776
  padding-inline: 0.45rem 0.8rem;
778
777
  }
779
778
 
780
- .sim-shell--left-tower-overlay .race-data-number {
779
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .race-data-number {
781
780
  padding-inline: 0.45rem;
782
781
  font-size: clamp(3.2rem, 6cqw, 5.3rem);
783
782
  }
784
783
 
785
- .sim-canvas-panel--with-timing-tower .race-data-number {
784
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--with-timing-tower .race-data-number {
786
785
  padding-inline: 0.45rem;
787
786
  font-size: clamp(3.2rem, 6cqw, 5.3rem);
788
787
  }
789
788
 
790
- .sim-shell--left-tower-overlay .race-data-link {
789
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .race-data-link {
791
790
  min-width: clamp(104px, 10cqw, 140px);
792
791
  margin-right: 0.55rem;
793
792
  padding-inline: 0.75rem;
794
793
  font-size: 0.64rem;
795
794
  }
796
795
 
797
- .sim-canvas-panel--with-timing-tower .race-data-link {
796
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--with-timing-tower .race-data-link {
798
797
  min-width: clamp(104px, 10cqw, 140px);
799
798
  margin-right: 0.55rem;
800
799
  padding-inline: 0.75rem;
801
800
  font-size: 0.64rem;
802
801
  }
803
802
 
804
- .sim-timing,
805
- .sim-telemetry,
806
- .sim-canvas-panel {
803
+ :where(.f1-sim-component, .f1-sim-component *).sim-timing,
804
+ :where(.f1-sim-component, .f1-sim-component *).sim-telemetry,
805
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel {
807
806
  min-height: 0;
808
807
  background: color-mix(in srgb, var(--surface-raised) 92%, transparent);
809
808
  border: 1px solid var(--line);
810
809
  }
811
810
 
812
- .sim-timing,
813
- .sim-telemetry {
811
+ :where(.f1-sim-component, .f1-sim-component *).sim-timing,
812
+ :where(.f1-sim-component, .f1-sim-component *).sim-telemetry {
814
813
  position: relative;
815
814
  padding: 0.9rem;
816
815
  overflow: hidden;
817
816
  }
818
817
 
819
- .telemetry-stack {
818
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-stack {
820
819
  display: grid;
821
820
  grid-auto-rows: max-content;
822
821
  align-content: start;
@@ -827,15 +826,15 @@
827
826
  scrollbar-width: thin;
828
827
  }
829
828
 
830
- .telemetry-stack > .sim-telemetry {
829
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-stack > .sim-telemetry {
831
830
  min-height: auto;
832
831
  }
833
832
 
834
- .telemetry-component {
833
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-component {
835
834
  width: 100%;
836
835
  }
837
836
 
838
- .sim-timing.broadcast-tower {
837
+ :where(.f1-sim-component, .f1-sim-component *).sim-timing.broadcast-tower {
839
838
  position: relative;
840
839
  width: min(100%, var(--timing-board-max-width));
841
840
  max-width: var(--timing-board-max-width);
@@ -847,15 +846,15 @@
847
846
  overflow: hidden;
848
847
  }
849
848
 
850
- .sim-shell--left-tower-overlay .sim-timing.broadcast-tower,
851
- .sim-canvas-panel--with-timing-tower > .sim-timing.broadcast-tower {
849
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .sim-timing.broadcast-tower,
850
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--with-timing-tower > .sim-timing.broadcast-tower {
852
851
  position: absolute;
853
852
  width: var(--timing-board-width);
854
853
  max-width: var(--timing-board-width);
855
854
  height: auto;
856
855
  }
857
856
 
858
- .broadcast-tower-frame {
857
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-tower-frame {
859
858
  position: relative;
860
859
  height: 100%;
861
860
  min-height: 0;
@@ -874,7 +873,7 @@
874
873
  0 24px 70px rgba(0, 0, 0, 0.42);
875
874
  }
876
875
 
877
- .broadcast-tower-frame::before {
876
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-tower-frame::before {
878
877
  content: '';
879
878
  position: absolute;
880
879
  inset: 0;
@@ -886,16 +885,16 @@
886
885
  opacity: 0.7;
887
886
  }
888
887
 
889
- .broadcast-brand,
890
- .broadcast-lap,
891
- .broadcast-race-control-banner,
892
- .broadcast-column-head,
893
- .timing-list {
888
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-brand,
889
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-lap,
890
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-race-control-banner,
891
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-column-head,
892
+ :where(.f1-sim-component, .f1-sim-component *).timing-list {
894
893
  position: relative;
895
894
  z-index: 1;
896
895
  }
897
896
 
898
- .broadcast-brand {
897
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-brand {
899
898
  display: flex;
900
899
  align-items: center;
901
900
  justify-content: center;
@@ -905,7 +904,7 @@
905
904
  text-transform: uppercase;
906
905
  }
907
906
 
908
- .broadcast-f1-logo {
907
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-f1-logo {
909
908
  display: block;
910
909
  width: 6.9rem;
911
910
  max-width: 74%;
@@ -913,7 +912,7 @@
913
912
  object-fit: contain;
914
913
  }
915
914
 
916
- .broadcast-lap {
915
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-lap {
917
916
  display: flex;
918
917
  align-items: baseline;
919
918
  justify-content: center;
@@ -930,14 +929,14 @@
930
929
  text-transform: uppercase;
931
930
  }
932
931
 
933
- .broadcast-lap strong {
932
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-lap strong {
934
933
  color: #fff;
935
934
  font-size: 1.62rem;
936
935
  font-weight: 900;
937
936
  letter-spacing: -0.04em;
938
937
  }
939
938
 
940
- .broadcast-race-control-banner {
939
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-race-control-banner {
941
940
  display: grid;
942
941
  grid-template-columns: 3.4rem minmax(0, 1fr);
943
942
  align-items: center;
@@ -947,21 +946,21 @@
947
946
  text-transform: uppercase;
948
947
  }
949
948
 
950
- .broadcast-race-control-banner.is-safety-car {
949
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-race-control-banner.is-safety-car {
951
950
  background: #e0ce00;
952
951
  color: #0a0b0d;
953
952
  }
954
953
 
955
- .broadcast-race-control-banner.is-red-flag {
954
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-race-control-banner.is-red-flag {
956
955
  background: var(--race-control-red);
957
956
  color: #fff;
958
957
  }
959
958
 
960
- .broadcast-race-control-banner[hidden] {
959
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-race-control-banner[hidden] {
961
960
  display: none;
962
961
  }
963
962
 
964
- .broadcast-race-control-banner span {
963
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-race-control-banner span {
965
964
  display: grid;
966
965
  place-items: center;
967
966
  min-height: 2.65rem;
@@ -972,14 +971,14 @@
972
971
  letter-spacing: -0.06em;
973
972
  }
974
973
 
975
- .broadcast-race-control-banner strong {
974
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-race-control-banner strong {
976
975
  padding: 0 0.65rem;
977
976
  font-size: 1.1rem;
978
977
  font-weight: 900;
979
978
  line-height: 0.9;
980
979
  }
981
980
 
982
- .broadcast-gap-mode-toggle {
981
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-gap-mode-toggle {
983
982
  position: relative;
984
983
  isolation: isolate;
985
984
  justify-self: end;
@@ -1002,7 +1001,7 @@
1002
1001
  cursor: pointer;
1003
1002
  }
1004
1003
 
1005
- .broadcast-gap-mode-toggle::before {
1004
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-gap-mode-toggle::before {
1006
1005
  content: '';
1007
1006
  position: absolute;
1008
1007
  inset: 11px 4px;
@@ -1017,24 +1016,24 @@
1017
1016
  transform 160ms ease;
1018
1017
  }
1019
1018
 
1020
- .broadcast-gap-mode-toggle.is-active,
1021
- .broadcast-gap-mode-toggle[aria-pressed='true'] {
1019
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-gap-mode-toggle.is-active,
1020
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-gap-mode-toggle[aria-pressed='true'] {
1022
1021
  color: #f5f6f8;
1023
1022
  }
1024
1023
 
1025
- .broadcast-gap-mode-toggle.is-active::before,
1026
- .broadcast-gap-mode-toggle[aria-pressed='true']::before {
1024
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-gap-mode-toggle.is-active::before,
1025
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-gap-mode-toggle[aria-pressed='true']::before {
1027
1026
  background: rgba(255, 255, 255, 0.12);
1028
1027
  border-color: rgba(255, 255, 255, 0.24);
1029
1028
  box-shadow: inset 0 0 0 1px rgba(244, 247, 251, 0.05);
1030
1029
  }
1031
1030
 
1032
- .broadcast-gap-mode-toggle:hover::before {
1031
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-gap-mode-toggle:hover::before {
1033
1032
  background: rgba(255, 255, 255, 0.1);
1034
1033
  border-color: rgba(255, 255, 255, 0.24);
1035
1034
  }
1036
1035
 
1037
- .broadcast-gap-mode-toggle:active::before {
1036
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-gap-mode-toggle:active::before {
1038
1037
  transform: scale(0.96);
1039
1038
  }
1040
1039
 
@@ -1047,7 +1046,7 @@
1047
1046
  outline-offset: 1px;
1048
1047
  }
1049
1048
 
1050
- .broadcast-column-head {
1049
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-column-head {
1051
1050
  display: grid;
1052
1051
  grid-template-columns: var(--timing-columns);
1053
1052
  align-items: center;
@@ -1063,55 +1062,55 @@
1063
1062
  text-transform: uppercase;
1064
1063
  }
1065
1064
 
1066
- .broadcast-column-head span:nth-child(1),
1067
- .broadcast-column-head span:nth-child(2),
1068
- .broadcast-column-head span:nth-child(5) {
1065
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-column-head span:nth-child(1),
1066
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-column-head span:nth-child(2),
1067
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-column-head span:nth-child(5) {
1069
1068
  text-align: center;
1070
1069
  }
1071
1070
 
1072
- .broadcast-column-head span:nth-child(1),
1073
- .timing-position {
1071
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-column-head span:nth-child(1),
1072
+ :where(.f1-sim-component, .f1-sim-component *).timing-position {
1074
1073
  grid-column: 1;
1075
1074
  }
1076
1075
 
1077
- .broadcast-column-head span:nth-child(2),
1078
- .timing-icon {
1076
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-column-head span:nth-child(2),
1077
+ :where(.f1-sim-component, .f1-sim-component *).timing-icon {
1079
1078
  grid-column: 2;
1080
1079
  }
1081
1080
 
1082
- .broadcast-column-head span:nth-child(3),
1083
- .timing-name {
1081
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-column-head span:nth-child(3),
1082
+ :where(.f1-sim-component, .f1-sim-component *).timing-name {
1084
1083
  grid-column: 3;
1085
1084
  }
1086
1085
 
1087
- .broadcast-column-head span:nth-child(4),
1088
- .broadcast-gap-mode-toggle,
1089
- .timing-gap {
1086
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-column-head span:nth-child(4),
1087
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-gap-mode-toggle,
1088
+ :where(.f1-sim-component, .f1-sim-component *).timing-gap {
1090
1089
  grid-column: 4;
1091
1090
  }
1092
1091
 
1093
- .broadcast-column-head span:nth-child(5),
1094
- .timing-tire {
1092
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-column-head span:nth-child(5),
1093
+ :where(.f1-sim-component, .f1-sim-component *).timing-tire {
1095
1094
  grid-column: 5;
1096
1095
  }
1097
1096
 
1098
- .broadcast-column-head span:nth-child(3) {
1097
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-column-head span:nth-child(3) {
1099
1098
  padding-inline: 0.45rem;
1100
1099
  }
1101
1100
 
1102
- .broadcast-column-head span:nth-child(4),
1103
- .broadcast-gap-mode-toggle {
1101
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-column-head span:nth-child(4),
1102
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-gap-mode-toggle {
1104
1103
  padding-right: 0.25rem;
1105
1104
  text-align: right;
1106
1105
  }
1107
1106
 
1108
- .broadcast-gap-mode-toggle {
1107
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-gap-mode-toggle {
1109
1108
  padding-right: 0;
1110
1109
  text-align: center;
1111
1110
  }
1112
1111
 
1113
- .timing-header,
1114
- .telemetry-header {
1112
+ :where(.f1-sim-component, .f1-sim-component *).timing-header,
1113
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-header {
1115
1114
  display: flex;
1116
1115
  align-items: center;
1117
1116
  justify-content: space-between;
@@ -1121,21 +1120,21 @@
1121
1120
  text-transform: uppercase;
1122
1121
  }
1123
1122
 
1124
- .timing-header span,
1125
- .telemetry-header span {
1123
+ :where(.f1-sim-component, .f1-sim-component *).timing-header span,
1124
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-header span {
1126
1125
  color: var(--muted);
1127
1126
  font-family: var(--font-mono);
1128
1127
  font-size: 0.72rem;
1129
1128
  letter-spacing: 0.12em;
1130
1129
  }
1131
1130
 
1132
- .timing-header strong {
1131
+ :where(.f1-sim-component, .f1-sim-component *).timing-header strong {
1133
1132
  color: var(--green);
1134
1133
  font-family: var(--font-mono);
1135
1134
  font-size: 0.74rem;
1136
1135
  }
1137
1136
 
1138
- .timing-list {
1137
+ :where(.f1-sim-component, .f1-sim-component *).timing-list {
1139
1138
  flex: 1 1 auto;
1140
1139
  list-style: none;
1141
1140
  padding: 0;
@@ -1150,72 +1149,72 @@
1150
1149
  scrollbar-width: thin;
1151
1150
  }
1152
1151
 
1153
- .timing-list > li {
1152
+ :where(.f1-sim-component, .f1-sim-component *).timing-list > li {
1154
1153
  min-width: 0;
1155
1154
  overflow: hidden;
1156
1155
  }
1157
1156
 
1158
- .sim-shell--left-tower-overlay .timing-list {
1157
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .timing-list {
1159
1158
  overflow-x: hidden;
1160
1159
  overflow-y: auto;
1161
1160
  }
1162
1161
 
1163
- .sim-shell--left-tower-overlay .broadcast-column-head,
1164
- .sim-shell--left-tower-overlay .timing-row {
1162
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .broadcast-column-head,
1163
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .timing-row {
1165
1164
  grid-template-columns: 1.7rem 1.8rem minmax(0, 1fr) minmax(44px, 3.45rem) 1.25rem;
1166
1165
  }
1167
1166
 
1168
- .sim-shell--left-tower-overlay .broadcast-column-head {
1167
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .broadcast-column-head {
1169
1168
  overflow: hidden;
1170
1169
  }
1171
1170
 
1172
- .sim-shell--left-tower-overlay .broadcast-column-head span {
1171
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .broadcast-column-head span {
1173
1172
  min-width: 0;
1174
1173
  overflow: hidden;
1175
1174
  text-overflow: ellipsis;
1176
1175
  }
1177
1176
 
1178
1177
  @container (max-width: 255px) {
1179
- .sim-timing.broadcast-tower .broadcast-column-head,
1180
- .sim-timing.broadcast-tower .timing-row {
1178
+ :where(.f1-sim-component, .f1-sim-component *).sim-timing.broadcast-tower .broadcast-column-head,
1179
+ :where(.f1-sim-component, .f1-sim-component *).sim-timing.broadcast-tower .timing-row {
1181
1180
  grid-template-columns: 1.45rem 1.55rem minmax(2.25rem, 1fr) minmax(2.75rem, 3rem) minmax(0.9rem, 1rem);
1182
1181
  }
1183
1182
 
1184
- .sim-timing.broadcast-tower .broadcast-column-head {
1183
+ :where(.f1-sim-component, .f1-sim-component *).sim-timing.broadcast-tower .broadcast-column-head {
1185
1184
  font-size: 0.48rem;
1186
1185
  letter-spacing: 0.06em;
1187
1186
  }
1188
1187
 
1189
- .sim-timing.broadcast-tower .broadcast-column-head span:nth-child(3),
1190
- .sim-timing.broadcast-tower .timing-name {
1188
+ :where(.f1-sim-component, .f1-sim-component *).sim-timing.broadcast-tower .broadcast-column-head span:nth-child(3),
1189
+ :where(.f1-sim-component, .f1-sim-component *).sim-timing.broadcast-tower .timing-name {
1191
1190
  padding-inline: 0.28rem;
1192
1191
  }
1193
1192
 
1194
- .sim-timing.broadcast-tower .broadcast-column-head span:nth-child(4),
1195
- .sim-timing.broadcast-tower .broadcast-gap-mode-toggle,
1196
- .sim-timing.broadcast-tower .timing-gap {
1193
+ :where(.f1-sim-component, .f1-sim-component *).sim-timing.broadcast-tower .broadcast-column-head span:nth-child(4),
1194
+ :where(.f1-sim-component, .f1-sim-component *).sim-timing.broadcast-tower .broadcast-gap-mode-toggle,
1195
+ :where(.f1-sim-component, .f1-sim-component *).sim-timing.broadcast-tower .timing-gap {
1197
1196
  padding-right: 0.1rem;
1198
1197
  }
1199
1198
 
1200
- .sim-timing.broadcast-tower .timing-position {
1199
+ :where(.f1-sim-component, .f1-sim-component *).sim-timing.broadcast-tower .timing-position {
1201
1200
  font-size: 0.72rem;
1202
1201
  }
1203
1202
 
1204
- .sim-timing.broadcast-tower .timing-name {
1203
+ :where(.f1-sim-component, .f1-sim-component *).sim-timing.broadcast-tower .timing-name {
1205
1204
  gap: 0.16rem;
1206
1205
  font-size: 0.7rem;
1207
1206
  }
1208
1207
 
1209
- .sim-timing.broadcast-tower .timing-gap {
1208
+ :where(.f1-sim-component, .f1-sim-component *).sim-timing.broadcast-tower .timing-gap {
1210
1209
  font-size: 0.62rem;
1211
1210
  }
1212
1211
 
1213
- .sim-timing.broadcast-tower .timing-tire {
1212
+ :where(.f1-sim-component, .f1-sim-component *).sim-timing.broadcast-tower .timing-tire {
1214
1213
  font-size: 0.68rem;
1215
1214
  }
1216
1215
  }
1217
1216
 
1218
- .timing-row {
1217
+ :where(.f1-sim-component, .f1-sim-component *).timing-row {
1219
1218
  display: grid;
1220
1219
  grid-template-columns: var(--timing-columns);
1221
1220
  gap: 0;
@@ -1231,26 +1230,26 @@
1231
1230
  cursor: pointer;
1232
1231
  }
1233
1232
 
1234
- .broadcast-column-head,
1235
- .timing-row {
1233
+ :where(.f1-sim-component, .f1-sim-component *).broadcast-column-head,
1234
+ :where(.f1-sim-component, .f1-sim-component *).timing-row {
1236
1235
  min-width: 0;
1237
1236
  }
1238
1237
 
1239
- .timing-row > * {
1238
+ :where(.f1-sim-component, .f1-sim-component *).timing-row > * {
1240
1239
  min-width: 0;
1241
1240
  }
1242
1241
 
1243
- .sim-shell--left-tower-overlay .timing-row {
1242
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .timing-row {
1244
1243
  min-width: 0;
1245
1244
  }
1246
1245
 
1247
- .timing-row:hover {
1246
+ :where(.f1-sim-component, .f1-sim-component *).timing-row:hover {
1248
1247
  background:
1249
1248
  linear-gradient(90deg, color-mix(in srgb, var(--driver-color, var(--red)) 22%, transparent), transparent 52%),
1250
1249
  rgba(28, 31, 38, 0.86);
1251
1250
  }
1252
1251
 
1253
- .timing-row.is-selected {
1252
+ :where(.f1-sim-component, .f1-sim-component *).timing-row.is-selected {
1254
1253
  color: #08090b;
1255
1254
  outline: 0;
1256
1255
  background: #f5f6f8;
@@ -1259,37 +1258,37 @@
1259
1258
  0 0 0 1px rgba(255, 255, 255, 0.68);
1260
1259
  }
1261
1260
 
1262
- .timing-row.is-dnf {
1261
+ :where(.f1-sim-component, .f1-sim-component *).timing-row.is-dnf {
1263
1262
  color: rgba(244, 247, 251, 0.56);
1264
1263
  background:
1265
1264
  linear-gradient(90deg, rgba(148, 163, 184, 0.14), transparent 42%),
1266
1265
  rgba(10, 12, 17, 0.58);
1267
1266
  }
1268
1267
 
1269
- .timing-row.is-dnf .timing-icon,
1270
- .timing-row.is-dnf .timing-tire {
1268
+ :where(.f1-sim-component, .f1-sim-component *).timing-row.is-dnf .timing-icon,
1269
+ :where(.f1-sim-component, .f1-sim-component *).timing-row.is-dnf .timing-tire {
1271
1270
  filter: grayscale(1);
1272
1271
  opacity: 0.64;
1273
1272
  }
1274
1273
 
1275
- .timing-row.is-dnf .timing-position {
1274
+ :where(.f1-sim-component, .f1-sim-component *).timing-row.is-dnf .timing-position {
1276
1275
  color: rgba(244, 247, 251, 0.68);
1277
1276
  background: rgba(30, 35, 44, 0.78);
1278
1277
  }
1279
1278
 
1280
- .timing-row.is-dnf .timing-gap {
1279
+ :where(.f1-sim-component, .f1-sim-component *).timing-row.is-dnf .timing-gap {
1281
1280
  color: rgba(244, 247, 251, 0.68);
1282
1281
  }
1283
1282
 
1284
- .timing-position,
1285
- .timing-icon,
1286
- .timing-tire,
1287
- .timing-gap {
1283
+ :where(.f1-sim-component, .f1-sim-component *).timing-position,
1284
+ :where(.f1-sim-component, .f1-sim-component *).timing-icon,
1285
+ :where(.f1-sim-component, .f1-sim-component *).timing-tire,
1286
+ :where(.f1-sim-component, .f1-sim-component *).timing-gap {
1288
1287
  font-family: var(--font-mono);
1289
1288
  font-weight: 700;
1290
1289
  }
1291
1290
 
1292
- .timing-position {
1291
+ :where(.f1-sim-component, .f1-sim-component *).timing-position {
1293
1292
  align-self: stretch;
1294
1293
  display: grid;
1295
1294
  place-items: center;
@@ -1299,16 +1298,16 @@
1299
1298
  font-size: 0.78rem;
1300
1299
  }
1301
1300
 
1302
- .timing-row:first-child .timing-position {
1301
+ :where(.f1-sim-component, .f1-sim-component *).timing-row:first-child .timing-position {
1303
1302
  background: var(--red);
1304
1303
  }
1305
1304
 
1306
- .timing-row.is-selected .timing-position {
1305
+ :where(.f1-sim-component, .f1-sim-component *).timing-row.is-selected .timing-position {
1307
1306
  color: #fff;
1308
1307
  background: var(--red);
1309
1308
  }
1310
1309
 
1311
- .timing-icon {
1310
+ :where(.f1-sim-component, .f1-sim-component *).timing-icon {
1312
1311
  display: grid;
1313
1312
  place-items: center;
1314
1313
  justify-self: center;
@@ -1322,11 +1321,11 @@
1322
1321
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.32);
1323
1322
  }
1324
1323
 
1325
- .timing-team-icon {
1324
+ :where(.f1-sim-component, .f1-sim-component *).timing-team-icon {
1326
1325
  background: var(--team-color, var(--driver-color, var(--red)));
1327
1326
  }
1328
1327
 
1329
- .timing-name {
1328
+ :where(.f1-sim-component, .f1-sim-component *).timing-name {
1330
1329
  min-width: 0;
1331
1330
  display: flex;
1332
1331
  align-items: center;
@@ -1342,13 +1341,13 @@
1342
1341
  text-transform: uppercase;
1343
1342
  }
1344
1343
 
1345
- .timing-name > span:first-child {
1344
+ :where(.f1-sim-component, .f1-sim-component *).timing-name > span:first-child {
1346
1345
  min-width: 0;
1347
1346
  overflow: hidden;
1348
1347
  text-overflow: ellipsis;
1349
1348
  }
1350
1349
 
1351
- .timing-penalty-badge {
1350
+ :where(.f1-sim-component, .f1-sim-component *).timing-penalty-badge {
1352
1351
  flex: 0 0 auto;
1353
1352
  display: grid;
1354
1353
  place-items: center;
@@ -1365,7 +1364,7 @@
1365
1364
  box-shadow: 0 0 14px rgba(225, 6, 0, 0.42);
1366
1365
  }
1367
1366
 
1368
- .timing-gap {
1367
+ :where(.f1-sim-component, .f1-sim-component *).timing-gap {
1369
1368
  color: rgba(244, 247, 251, 0.76);
1370
1369
  font-size: 0.66rem;
1371
1370
  overflow: hidden;
@@ -1375,36 +1374,36 @@
1375
1374
  white-space: nowrap;
1376
1375
  }
1377
1376
 
1378
- .timing-row.is-selected .timing-gap {
1377
+ :where(.f1-sim-component, .f1-sim-component *).timing-row.is-selected .timing-gap {
1379
1378
  color: #08090b;
1380
1379
  }
1381
1380
 
1382
- .timing-tire {
1381
+ :where(.f1-sim-component, .f1-sim-component *).timing-tire {
1383
1382
  justify-self: center;
1384
1383
  color: #f3e35f;
1385
1384
  font-size: 0.72rem;
1386
1385
  text-align: center;
1387
1386
  }
1388
1387
 
1389
- .timing-tire--s {
1388
+ :where(.f1-sim-component, .f1-sim-component *).timing-tire--s {
1390
1389
  color: #ff3b30;
1391
1390
  }
1392
1391
 
1393
- .timing-tire--m {
1392
+ :where(.f1-sim-component, .f1-sim-component *).timing-tire--m {
1394
1393
  color: #f3e35f;
1395
1394
  }
1396
1395
 
1397
- .timing-tire--h {
1396
+ :where(.f1-sim-component, .f1-sim-component *).timing-tire--h {
1398
1397
  color: #e9eef5;
1399
1398
  }
1400
1399
 
1401
- .timing-row.is-selected .timing-tire--h,
1402
- .timing-row.is-selected .timing-tire--m,
1403
- .timing-row.is-selected .timing-tire--s {
1400
+ :where(.f1-sim-component, .f1-sim-component *).timing-row.is-selected .timing-tire--h,
1401
+ :where(.f1-sim-component, .f1-sim-component *).timing-row.is-selected .timing-tire--m,
1402
+ :where(.f1-sim-component, .f1-sim-component *).timing-row.is-selected .timing-tire--s {
1404
1403
  color: #08090b;
1405
1404
  }
1406
1405
 
1407
- .sim-canvas-panel {
1406
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel {
1408
1407
  position: relative;
1409
1408
  min-height: var(--paddock-race-view-min-height, 620px);
1410
1409
  overflow: hidden;
@@ -1413,7 +1412,7 @@
1413
1412
  0 24px 70px rgba(0, 0, 0, 0.32);
1414
1413
  }
1415
1414
 
1416
- .track-canvas {
1415
+ :where(.f1-sim-component, .f1-sim-component *).track-canvas {
1417
1416
  position: absolute;
1418
1417
  inset: 0;
1419
1418
  z-index: 0;
@@ -1423,13 +1422,13 @@
1423
1422
  touch-action: auto;
1424
1423
  }
1425
1424
 
1426
- .track-canvas canvas {
1425
+ :where(.f1-sim-component, .f1-sim-component *).track-canvas canvas {
1427
1426
  width: 100% !important;
1428
1427
  height: 100% !important;
1429
1428
  display: block;
1430
1429
  }
1431
1430
 
1432
- .physics-mode-indicator {
1431
+ :where(.f1-sim-component, .f1-sim-component *).physics-mode-indicator {
1433
1432
  position: absolute;
1434
1433
  z-index: 18;
1435
1434
  top: 0.85rem;
@@ -1441,15 +1440,15 @@
1441
1440
  pointer-events: none;
1442
1441
  }
1443
1442
 
1444
- .physics-mode-indicator--arcade {
1443
+ :where(.f1-sim-component, .f1-sim-component *).physics-mode-indicator--arcade {
1445
1444
  background: #168cff;
1446
1445
  }
1447
1446
 
1448
- .physics-mode-indicator--advanced {
1447
+ :where(.f1-sim-component, .f1-sim-component *).physics-mode-indicator--advanced {
1449
1448
  background: #e10600;
1450
1449
  }
1451
1450
 
1452
- .race-telemetry-drawer {
1451
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer {
1453
1452
  --telemetry-drawer-width: min(390px, max(300px, 30cqw));
1454
1453
  --race-toolbar-height: 3.4rem;
1455
1454
  position: relative;
@@ -1465,50 +1464,50 @@
1465
1464
  }
1466
1465
 
1467
1466
  @container (max-width: 520px) {
1468
- .race-telemetry-drawer--responsive-narrow {
1467
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer--responsive-narrow {
1469
1468
  --telemetry-drawer-width: min(88%, 360px);
1470
1469
  height: auto;
1471
1470
  }
1472
1471
 
1473
- .race-telemetry-drawer--responsive-narrow .race-telemetry-drawer__toolbar {
1472
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer--responsive-narrow .race-telemetry-drawer__toolbar {
1474
1473
  flex-direction: column;
1475
1474
  align-items: stretch;
1476
1475
  gap: 0.5rem;
1477
1476
  }
1478
1477
 
1479
- .race-telemetry-drawer--responsive-narrow .race-telemetry-drawer__toolbar .camera-controls--external {
1478
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer--responsive-narrow .race-telemetry-drawer__toolbar .camera-controls--external {
1480
1479
  width: 100%;
1481
1480
  flex: 0 0 auto;
1482
1481
  justify-content: stretch;
1483
1482
  }
1484
1483
 
1485
- .race-telemetry-drawer--responsive-narrow .race-telemetry-drawer__toolbar .camera-controls--external button {
1484
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer--responsive-narrow .race-telemetry-drawer__toolbar .camera-controls--external button {
1486
1485
  flex: 1 1 min(9.25rem, 44%);
1487
1486
  }
1488
1487
 
1489
- .race-telemetry-drawer--responsive-narrow .race-telemetry-drawer__controls {
1488
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer--responsive-narrow .race-telemetry-drawer__controls {
1490
1489
  display: grid;
1491
1490
  grid-template-columns: repeat(2, minmax(0, 1fr));
1492
1491
  gap: 0.45rem;
1493
1492
  width: 100%;
1494
1493
  }
1495
1494
 
1496
- .race-telemetry-drawer--responsive-narrow .race-telemetry-drawer__controls .sim-control,
1497
- .race-telemetry-drawer--responsive-narrow .race-telemetry-drawer__controls .telemetry-drawer-toggle {
1495
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer--responsive-narrow .race-telemetry-drawer__controls .sim-control,
1496
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer--responsive-narrow .race-telemetry-drawer__controls .telemetry-drawer-toggle {
1498
1497
  width: 100%;
1499
1498
  min-width: 0;
1500
1499
  white-space: nowrap;
1501
1500
  }
1502
1501
 
1503
- .race-telemetry-drawer--responsive-narrow .race-telemetry-drawer__race,
1504
- .race-telemetry-drawer--responsive-narrow.is-telemetry-open .race-telemetry-drawer__race {
1502
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer--responsive-narrow .race-telemetry-drawer__race,
1503
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer--responsive-narrow.is-telemetry-open .race-telemetry-drawer__race {
1505
1504
  flex: 0 0 auto;
1506
1505
  margin-right: 0;
1507
1506
  padding-right: 0;
1508
1507
  margin-bottom: 0;
1509
1508
  }
1510
1509
 
1511
- .race-telemetry-drawer--responsive-narrow .telemetry-drawer {
1510
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer--responsive-narrow .telemetry-drawer {
1512
1511
  top: 0.75rem;
1513
1512
  right: 0.75rem;
1514
1513
  bottom: 0.75rem;
@@ -1524,12 +1523,12 @@
1524
1523
  transform 320ms cubic-bezier(0.2, 0.8, 0.2, 1);
1525
1524
  }
1526
1525
 
1527
- .race-telemetry-drawer--responsive-narrow.is-telemetry-open .telemetry-drawer {
1526
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer--responsive-narrow.is-telemetry-open .telemetry-drawer {
1528
1527
  transform: translate3d(0, 0, 0);
1529
1528
  }
1530
1529
  }
1531
1530
 
1532
- .race-telemetry-drawer__toolbar {
1531
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer__toolbar {
1533
1532
  position: relative;
1534
1533
  z-index: 13;
1535
1534
  display: flex;
@@ -1542,11 +1541,11 @@
1542
1541
  border-bottom: 1px solid var(--line);
1543
1542
  }
1544
1543
 
1545
- .race-telemetry-drawer__toolbar .camera-controls--external {
1544
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer__toolbar .camera-controls--external {
1546
1545
  flex: 1 1 auto;
1547
1546
  }
1548
1547
 
1549
- .race-telemetry-drawer__race {
1548
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer__race {
1550
1549
  position: relative;
1551
1550
  min-width: 0;
1552
1551
  display: flex;
@@ -1558,17 +1557,17 @@
1558
1557
  transition: padding-right 320ms cubic-bezier(0.2, 0.8, 0.2, 1);
1559
1558
  }
1560
1559
 
1561
- .race-telemetry-drawer.is-telemetry-open .race-telemetry-drawer__race {
1560
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer.is-telemetry-open .race-telemetry-drawer__race {
1562
1561
  padding-right: var(--telemetry-drawer-width);
1563
1562
  }
1564
1563
 
1565
- .race-telemetry-drawer__race > .sim-canvas-panel {
1564
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer__race > .sim-canvas-panel {
1566
1565
  flex: 1 1 auto;
1567
1566
  min-height: 0;
1568
1567
  height: 100%;
1569
1568
  }
1570
1569
 
1571
- .race-telemetry-drawer__controls {
1570
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer__controls {
1572
1571
  min-width: 0;
1573
1572
  display: flex;
1574
1573
  flex-wrap: wrap;
@@ -1576,13 +1575,13 @@
1576
1575
  gap: 0.45rem;
1577
1576
  }
1578
1577
 
1579
- .race-telemetry-drawer__controls .sim-control,
1580
- .race-telemetry-drawer__controls .telemetry-drawer-toggle {
1578
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer__controls .sim-control,
1579
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer__controls .telemetry-drawer-toggle {
1581
1580
  min-height: 44px;
1582
1581
  padding: 0.62rem 0.72rem;
1583
1582
  }
1584
1583
 
1585
- .telemetry-drawer-toggle {
1584
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-drawer-toggle {
1586
1585
  border: 1px solid rgba(255, 255, 255, 0.26);
1587
1586
  color: #08090b;
1588
1587
  background: var(--green);
@@ -1594,7 +1593,7 @@
1594
1593
  cursor: pointer;
1595
1594
  }
1596
1595
 
1597
- .telemetry-drawer {
1596
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-drawer {
1598
1597
  position: absolute;
1599
1598
  z-index: 11;
1600
1599
  top: 0;
@@ -1620,14 +1619,14 @@
1620
1619
  opacity 180ms ease;
1621
1620
  }
1622
1621
 
1623
- .race-telemetry-drawer.is-telemetry-open .telemetry-drawer {
1622
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer.is-telemetry-open .telemetry-drawer {
1624
1623
  clip-path: inset(0);
1625
1624
  transform: translate3d(0, 0, 0);
1626
1625
  opacity: 1;
1627
1626
  pointer-events: auto;
1628
1627
  }
1629
1628
 
1630
- .telemetry-drawer__content {
1629
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-drawer__content {
1631
1630
  height: 100%;
1632
1631
  padding: 0.72rem;
1633
1632
  min-height: 0;
@@ -1635,11 +1634,11 @@
1635
1634
  scrollbar-width: thin;
1636
1635
  }
1637
1636
 
1638
- .telemetry-drawer__content > .telemetry-stack {
1637
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-drawer__content > .telemetry-stack {
1639
1638
  height: 100%;
1640
1639
  }
1641
1640
 
1642
- .camera-controls {
1641
+ :where(.f1-sim-component, .f1-sim-component *).camera-controls {
1643
1642
  position: absolute;
1644
1643
  top: 1rem;
1645
1644
  left: 1rem;
@@ -1653,7 +1652,7 @@
1653
1652
  backdrop-filter: blur(14px);
1654
1653
  }
1655
1654
 
1656
- .camera-controls--external {
1655
+ :where(.f1-sim-component, .f1-sim-component *).camera-controls--external {
1657
1656
  position: relative;
1658
1657
  top: auto;
1659
1658
  left: auto;
@@ -1662,7 +1661,7 @@
1662
1661
  background: rgba(8, 9, 11, 0.84);
1663
1662
  }
1664
1663
 
1665
- .camera-controls button {
1664
+ :where(.f1-sim-component, .f1-sim-component *).camera-controls button {
1666
1665
  min-width: 44px;
1667
1666
  min-height: 44px;
1668
1667
  border: 1px solid rgba(255, 255, 255, 0.22);
@@ -1677,11 +1676,11 @@
1677
1676
  cursor: pointer;
1678
1677
  }
1679
1678
 
1680
- .camera-controls button:hover {
1679
+ :where(.f1-sim-component, .f1-sim-component *).camera-controls button:hover {
1681
1680
  border-color: var(--text);
1682
1681
  }
1683
1682
 
1684
- .steward-message {
1683
+ :where(.f1-sim-component, .f1-sim-component *).steward-message {
1685
1684
  --steward-panel-bg: rgba(8, 9, 11, 0.92);
1686
1685
  --steward-chip-bg: color-mix(in srgb, var(--steward-color, var(--yellow)) 18%, rgba(8, 9, 11, 0.94));
1687
1686
  --steward-chip-color: var(--steward-color, var(--yellow));
@@ -1709,24 +1708,24 @@
1709
1708
  transform 160ms ease;
1710
1709
  }
1711
1710
 
1712
- .steward-message.is-penalty {
1711
+ :where(.f1-sim-component, .f1-sim-component *).steward-message.is-penalty {
1713
1712
  --steward-panel-bg: linear-gradient(110deg, rgba(68, 6, 8, 0.96), rgba(8, 9, 11, 0.94) 58%);
1714
1713
  --steward-chip-bg: #e10600;
1715
1714
  --steward-chip-color: #fff;
1716
1715
  }
1717
1716
 
1718
- .steward-message.is-warning {
1717
+ :where(.f1-sim-component, .f1-sim-component *).steward-message.is-warning {
1719
1718
  --steward-panel-bg: linear-gradient(110deg, rgba(70, 56, 8, 0.96), rgba(8, 9, 11, 0.94) 58%);
1720
1719
  --steward-chip-bg: var(--yellow);
1721
1720
  --steward-chip-color: #111318;
1722
1721
  }
1723
1722
 
1724
- .steward-message.is-hidden {
1723
+ :where(.f1-sim-component, .f1-sim-component *).steward-message.is-hidden {
1725
1724
  opacity: 0;
1726
1725
  transform: translate(-50%, -0.55rem);
1727
1726
  }
1728
1727
 
1729
- .steward-message__kicker {
1728
+ :where(.f1-sim-component, .f1-sim-component *).steward-message__kicker {
1730
1729
  grid-row: span 2;
1731
1730
  align-self: center;
1732
1731
  min-width: 4.9rem;
@@ -1743,7 +1742,7 @@
1743
1742
  text-transform: uppercase;
1744
1743
  }
1745
1744
 
1746
- .steward-message strong {
1745
+ :where(.f1-sim-component, .f1-sim-component *).steward-message strong {
1747
1746
  min-width: 0;
1748
1747
  overflow-wrap: anywhere;
1749
1748
  overflow: hidden;
@@ -1754,7 +1753,7 @@
1754
1753
  white-space: normal;
1755
1754
  }
1756
1755
 
1757
- .steward-message span:last-child {
1756
+ :where(.f1-sim-component, .f1-sim-component *).steward-message span:last-child {
1758
1757
  min-width: 0;
1759
1758
  overflow-wrap: anywhere;
1760
1759
  overflow: hidden;
@@ -1764,7 +1763,7 @@
1764
1763
  white-space: normal;
1765
1764
  }
1766
1765
 
1767
- .fps-counter {
1766
+ :where(.f1-sim-component, .f1-sim-component *).fps-counter {
1768
1767
  position: absolute;
1769
1768
  top: 1rem;
1770
1769
  right: 1rem;
@@ -1785,12 +1784,12 @@
1785
1784
  backdrop-filter: blur(10px);
1786
1785
  }
1787
1786
 
1788
- .fps-counter strong {
1787
+ :where(.f1-sim-component, .f1-sim-component *).fps-counter strong {
1789
1788
  color: #fff;
1790
1789
  font-size: 0.74rem;
1791
1790
  }
1792
1791
 
1793
- .race-finish-panel {
1792
+ :where(.f1-sim-component, .f1-sim-component *).race-finish-panel {
1794
1793
  position: absolute;
1795
1794
  z-index: 9;
1796
1795
  left: 50%;
@@ -1813,7 +1812,7 @@
1813
1812
  text-transform: uppercase;
1814
1813
  }
1815
1814
 
1816
- .race-finish-panel span {
1815
+ :where(.f1-sim-component, .f1-sim-component *).race-finish-panel span {
1817
1816
  color: var(--muted);
1818
1817
  font-family: var(--font-mono);
1819
1818
  font-size: 0.66rem;
@@ -1821,14 +1820,14 @@
1821
1820
  letter-spacing: 0.12em;
1822
1821
  }
1823
1822
 
1824
- .race-finish-panel > strong {
1823
+ :where(.f1-sim-component, .f1-sim-component *).race-finish-panel > strong {
1825
1824
  grid-column: 1;
1826
1825
  font-size: clamp(1.45rem, 3vw, 2.4rem);
1827
1826
  font-weight: 900;
1828
1827
  line-height: 0.92;
1829
1828
  }
1830
1829
 
1831
- .race-finish-panel ol {
1830
+ :where(.f1-sim-component, .f1-sim-component *).race-finish-panel ol {
1832
1831
  grid-column: 2;
1833
1832
  grid-row: 1 / span 2;
1834
1833
  display: grid;
@@ -1839,7 +1838,7 @@
1839
1838
  list-style: none;
1840
1839
  }
1841
1840
 
1842
- .race-finish-panel li {
1841
+ :where(.f1-sim-component, .f1-sim-component *).race-finish-panel li {
1843
1842
  display: grid;
1844
1843
  grid-template-columns: 2.2rem minmax(0, 1fr);
1845
1844
  gap: 0.45rem;
@@ -1848,25 +1847,25 @@
1848
1847
  font-size: 0.72rem;
1849
1848
  }
1850
1849
 
1851
- .race-finish-panel li strong {
1850
+ :where(.f1-sim-component, .f1-sim-component *).race-finish-panel li strong {
1852
1851
  min-width: 0;
1853
1852
  overflow: hidden;
1854
1853
  text-overflow: ellipsis;
1855
1854
  white-space: nowrap;
1856
1855
  }
1857
1856
 
1858
- .standalone-control {
1857
+ :where(.f1-sim-component, .f1-sim-component *).standalone-control {
1859
1858
  display: inline-flex;
1860
1859
  align-items: center;
1861
1860
  justify-content: center;
1862
1861
  min-width: 0;
1863
1862
  }
1864
1863
 
1865
- .standalone-control > .sim-control {
1864
+ :where(.f1-sim-component, .f1-sim-component *).standalone-control > .sim-control {
1866
1865
  width: 100%;
1867
1866
  }
1868
1867
 
1869
- .start-lights {
1868
+ :where(.f1-sim-component, .f1-sim-component *).start-lights {
1870
1869
  position: absolute;
1871
1870
  top: 4.15rem;
1872
1871
  left: 50%;
@@ -1887,24 +1886,24 @@
1887
1886
  backdrop-filter: blur(14px);
1888
1887
  }
1889
1888
 
1890
- .start-lights[hidden] {
1889
+ :where(.f1-sim-component, .f1-sim-component *).start-lights[hidden] {
1891
1890
  display: none;
1892
1891
  }
1893
1892
 
1894
- .start-lights__label {
1893
+ :where(.f1-sim-component, .f1-sim-component *).start-lights__label {
1895
1894
  color: rgba(244, 247, 251, 0.78);
1896
1895
  font-size: 0.62rem;
1897
1896
  font-weight: 900;
1898
1897
  letter-spacing: 0.16em;
1899
1898
  }
1900
1899
 
1901
- .start-lights__gantry {
1900
+ :where(.f1-sim-component, .f1-sim-component *).start-lights__gantry {
1902
1901
  display: grid;
1903
1902
  grid-template-columns: repeat(5, 1.35rem);
1904
1903
  gap: 0.34rem;
1905
1904
  }
1906
1905
 
1907
- .start-lights__gantry span {
1906
+ :where(.f1-sim-component, .f1-sim-component *).start-lights__gantry span {
1908
1907
  width: 1.35rem;
1909
1908
  height: 1.35rem;
1910
1909
  border-radius: 50%;
@@ -1916,7 +1915,7 @@
1916
1915
  transition: background 80ms linear, box-shadow 80ms linear, border-color 80ms linear;
1917
1916
  }
1918
1917
 
1919
- .start-lights__gantry span.is-lit {
1918
+ :where(.f1-sim-component, .f1-sim-component *).start-lights__gantry span.is-lit {
1920
1919
  background: #e10600;
1921
1920
  border-color: rgba(255, 210, 210, 0.86);
1922
1921
  box-shadow:
@@ -1924,17 +1923,17 @@
1924
1923
  0 0 18px rgba(225, 6, 0, 0.72);
1925
1924
  }
1926
1925
 
1927
- .start-lights.is-lights-out .start-lights__label {
1926
+ :where(.f1-sim-component, .f1-sim-component *).start-lights.is-lights-out .start-lights__label {
1928
1927
  color: #fff;
1929
1928
  }
1930
1929
 
1931
- .start-lights.is-lights-out .start-lights__gantry span {
1930
+ :where(.f1-sim-component, .f1-sim-component *).start-lights.is-lights-out .start-lights__gantry span {
1932
1931
  background: #08090b;
1933
1932
  border-color: rgba(255, 255, 255, 0.12);
1934
1933
  box-shadow: inset 0 0 16px rgba(0, 0, 0, 0.9);
1935
1934
  }
1936
1935
 
1937
- .paddock-loading {
1936
+ :where(.f1-sim-component, .f1-sim-component *).paddock-loading {
1938
1937
  position: absolute;
1939
1938
  inset: 0;
1940
1939
  z-index: 30;
@@ -1955,13 +1954,13 @@
1955
1954
  backdrop-filter: blur(10px);
1956
1955
  }
1957
1956
 
1958
- .paddock-loading__lights {
1957
+ :where(.f1-sim-component, .f1-sim-component *).paddock-loading__lights {
1959
1958
  display: grid;
1960
1959
  grid-template-columns: repeat(5, 1rem);
1961
1960
  gap: 0.28rem;
1962
1961
  }
1963
1962
 
1964
- .paddock-loading__lights span {
1963
+ :where(.f1-sim-component, .f1-sim-component *).paddock-loading__lights span {
1965
1964
  width: 1rem;
1966
1965
  height: 1rem;
1967
1966
  border-radius: 50%;
@@ -1973,31 +1972,31 @@
1973
1972
  animation: paddock-loading-pulse 900ms ease-in-out infinite;
1974
1973
  }
1975
1974
 
1976
- .paddock-loading__lights span:nth-child(2) {
1975
+ :where(.f1-sim-component, .f1-sim-component *).paddock-loading__lights span:nth-child(2) {
1977
1976
  animation-delay: 90ms;
1978
1977
  }
1979
1978
 
1980
- .paddock-loading__lights span:nth-child(3) {
1979
+ :where(.f1-sim-component, .f1-sim-component *).paddock-loading__lights span:nth-child(3) {
1981
1980
  animation-delay: 180ms;
1982
1981
  }
1983
1982
 
1984
- .paddock-loading__lights span:nth-child(4) {
1983
+ :where(.f1-sim-component, .f1-sim-component *).paddock-loading__lights span:nth-child(4) {
1985
1984
  animation-delay: 270ms;
1986
1985
  }
1987
1986
 
1988
- .paddock-loading__lights span:nth-child(5) {
1987
+ :where(.f1-sim-component, .f1-sim-component *).paddock-loading__lights span:nth-child(5) {
1989
1988
  animation-delay: 360ms;
1990
1989
  }
1991
1990
 
1992
- .paddock-loading__label {
1991
+ :where(.f1-sim-component, .f1-sim-component *).paddock-loading__label {
1993
1992
  text-shadow: 0 0 16px rgba(225, 6, 0, 0.48);
1994
1993
  }
1995
1994
 
1996
- [data-paddock-component].is-loaded > .paddock-loading {
1995
+ :where(.f1-sim-component, .f1-sim-component *)[data-paddock-component].is-loaded > .paddock-loading {
1997
1996
  opacity: 0;
1998
1997
  }
1999
1998
 
2000
- .paddock-unsupported-size {
1999
+ :where(.f1-sim-component, .f1-sim-component *).paddock-unsupported-size {
2001
2000
  position: absolute;
2002
2001
  inset: 0;
2003
2002
  z-index: 60;
@@ -2015,14 +2014,14 @@
2015
2014
  text-transform: uppercase;
2016
2015
  }
2017
2016
 
2018
- .paddock-unsupported-size strong {
2017
+ :where(.f1-sim-component, .f1-sim-component *).paddock-unsupported-size strong {
2019
2018
  color: var(--yellow);
2020
2019
  font-size: 0.82rem;
2021
2020
  font-weight: 900;
2022
2021
  letter-spacing: 0.12em;
2023
2022
  }
2024
2023
 
2025
- .paddock-unsupported-size span {
2024
+ :where(.f1-sim-component, .f1-sim-component *).paddock-unsupported-size span {
2026
2025
  max-width: 28rem;
2027
2026
  color: var(--muted);
2028
2027
  font-size: 0.68rem;
@@ -2031,29 +2030,29 @@
2031
2030
  line-height: 1.35;
2032
2031
  }
2033
2032
 
2034
- [data-paddock-size-unsupported='true'] {
2033
+ :where(.f1-sim-component, .f1-sim-component *)[data-paddock-size-unsupported='true'] {
2035
2034
  position: relative;
2036
2035
  min-block-size: 7rem;
2037
2036
  overflow: hidden;
2038
2037
  }
2039
2038
 
2040
- [data-paddock-size-unsupported='true'] > :not(.paddock-unsupported-size) {
2039
+ :where(.f1-sim-component, .f1-sim-component *)[data-paddock-size-unsupported='true'] > :not(.paddock-unsupported-size) {
2041
2040
  visibility: hidden;
2042
2041
  pointer-events: none;
2043
2042
  }
2044
2043
 
2045
- [data-paddock-size-unsupported='true'] > .paddock-unsupported-size {
2044
+ :where(.f1-sim-component, .f1-sim-component *)[data-paddock-size-unsupported='true'] > .paddock-unsupported-size {
2046
2045
  display: grid;
2047
2046
  visibility: visible;
2048
2047
  pointer-events: auto;
2049
2048
  }
2050
2049
 
2051
- [data-f1-simulator-shell][data-paddock-size-unsupported='true'] {
2050
+ :where(.f1-sim-component, .f1-sim-component *)[data-f1-simulator-shell][data-paddock-size-unsupported='true'] {
2052
2051
  display: grid;
2053
2052
  min-block-size: min(100svh, 24rem);
2054
2053
  }
2055
2054
 
2056
- [data-f1-simulator-shell][data-paddock-size-unsupported='true'] > .sim-workspace {
2055
+ :where(.f1-sim-component, .f1-sim-component *)[data-f1-simulator-shell][data-paddock-size-unsupported='true'] > .sim-workspace {
2057
2056
  display: none;
2058
2057
  }
2059
2058
 
@@ -2095,7 +2094,7 @@
2095
2094
  }
2096
2095
  }
2097
2096
 
2098
- .race-data-panel {
2097
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel {
2099
2098
  --race-data-banner-left: 50%;
2100
2099
  --race-data-banner-width: min(1080px, calc(100% - 1.5rem));
2101
2100
  --race-data-banner-translate-x: -50%;
@@ -2123,19 +2122,19 @@
2123
2122
  transition: opacity 180ms ease, transform 180ms ease, width 180ms ease, min-height 180ms ease, background-color 180ms ease;
2124
2123
  }
2125
2124
 
2126
- .race-data-panel.is-hidden {
2125
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel.is-hidden {
2127
2126
  opacity: 0;
2128
2127
  pointer-events: none;
2129
2128
  transform: translate(var(--race-data-banner-translate-x), 18px);
2130
2129
  }
2131
2130
 
2132
- .race-data-panel--custom {
2131
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel--custom {
2133
2132
  --race-data-banner-left: 50%;
2134
2133
  --race-data-banner-width: min(1080px, calc(100% - 1.5rem));
2135
2134
  --race-data-banner-translate-x: -50%;
2136
2135
  }
2137
2136
 
2138
- .race-data-panel::before {
2137
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel::before {
2139
2138
  content: "";
2140
2139
  position: absolute;
2141
2140
  inset: 0;
@@ -2146,7 +2145,7 @@
2146
2145
  pointer-events: none;
2147
2146
  }
2148
2147
 
2149
- .race-data-panel::after {
2148
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel::after {
2150
2149
  content: "";
2151
2150
  position: absolute;
2152
2151
  top: 0;
@@ -2157,15 +2156,15 @@
2157
2156
  pointer-events: none;
2158
2157
  }
2159
2158
 
2160
- .race-data-copy,
2161
- .race-data-number,
2162
- .race-data-link,
2163
- .race-data-dismiss {
2159
+ :where(.f1-sim-component, .f1-sim-component *).race-data-copy,
2160
+ :where(.f1-sim-component, .f1-sim-component *).race-data-number,
2161
+ :where(.f1-sim-component, .f1-sim-component *).race-data-link,
2162
+ :where(.f1-sim-component, .f1-sim-component *).race-data-dismiss {
2164
2163
  position: relative;
2165
2164
  z-index: 1;
2166
2165
  }
2167
2166
 
2168
- .race-data-dismiss {
2167
+ :where(.f1-sim-component, .f1-sim-component *).race-data-dismiss {
2169
2168
  --race-data-dismiss-icon-color: rgba(244, 247, 251, 0.9);
2170
2169
  --race-data-dismiss-fill: rgba(8, 10, 16, 0.58);
2171
2170
  --race-data-dismiss-ring: rgba(244, 247, 251, 0.2);
@@ -2194,8 +2193,8 @@
2194
2193
  z-index: 4;
2195
2194
  }
2196
2195
 
2197
- .race-data-dismiss::before,
2198
- .race-data-dismiss::after {
2196
+ :where(.f1-sim-component, .f1-sim-component *).race-data-dismiss::before,
2197
+ :where(.f1-sim-component, .f1-sim-component *).race-data-dismiss::after {
2199
2198
  content: "";
2200
2199
  position: absolute;
2201
2200
  left: 50%;
@@ -2206,32 +2205,32 @@
2206
2205
  border-radius: 999px;
2207
2206
  }
2208
2207
 
2209
- .race-data-dismiss::before {
2208
+ :where(.f1-sim-component, .f1-sim-component *).race-data-dismiss::before {
2210
2209
  transform: translate(-50%, -50%) rotate(45deg);
2211
2210
  }
2212
2211
 
2213
- .race-data-dismiss::after {
2212
+ :where(.f1-sim-component, .f1-sim-component *).race-data-dismiss::after {
2214
2213
  transform: translate(-50%, -50%) rotate(-45deg);
2215
2214
  }
2216
2215
 
2217
- .race-data-dismiss:hover {
2216
+ :where(.f1-sim-component, .f1-sim-component *).race-data-dismiss:hover {
2218
2217
  --race-data-dismiss-icon-color: #fff;
2219
2218
  --race-data-dismiss-fill: color-mix(in srgb, var(--driver-color, var(--red)) 48%, rgba(8, 10, 16, 0.72));
2220
2219
  --race-data-dismiss-ring: color-mix(in srgb, var(--driver-color, var(--red)) 64%, #ffffff);
2221
2220
  color: transparent;
2222
2221
  }
2223
2222
 
2224
- .race-data-dismiss:focus-visible {
2223
+ :where(.f1-sim-component, .f1-sim-component *).race-data-dismiss:focus-visible {
2225
2224
  outline: 2px solid var(--driver-color, var(--red));
2226
2225
  outline-offset: 2px;
2227
2226
  }
2228
2227
 
2229
- .race-data-panel--with-telemetry .race-data-dismiss,
2230
- .race-data-panel.is-radio-mode .race-data-dismiss {
2228
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel--with-telemetry .race-data-dismiss,
2229
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel.is-radio-mode .race-data-dismiss {
2231
2230
  z-index: 4;
2232
2231
  }
2233
2232
 
2234
- .race-data-copy {
2233
+ :where(.f1-sim-component, .f1-sim-component *).race-data-copy {
2235
2234
  grid-column: 2;
2236
2235
  grid-row: 1;
2237
2236
  min-width: 0;
@@ -2239,7 +2238,7 @@
2239
2238
  padding: 0.92rem 1.45rem 0.98rem 0.55rem;
2240
2239
  }
2241
2240
 
2242
- .race-data-kicker {
2241
+ :where(.f1-sim-component, .f1-sim-component *).race-data-kicker {
2243
2242
  display: block;
2244
2243
  margin-bottom: 0.22rem;
2245
2244
  color: var(--driver-color, var(--red));
@@ -2250,7 +2249,7 @@
2250
2249
  text-transform: uppercase;
2251
2250
  }
2252
2251
 
2253
- .race-data-copy strong {
2252
+ :where(.f1-sim-component, .f1-sim-component *).race-data-copy strong {
2254
2253
  display: block;
2255
2254
  overflow: hidden;
2256
2255
  text-overflow: ellipsis;
@@ -2261,7 +2260,7 @@
2261
2260
  text-shadow: 0 2px 0 rgba(0, 0, 0, 0.45), 0 0 24px color-mix(in srgb, var(--driver-color, var(--red)) 28%, transparent);
2262
2261
  }
2263
2262
 
2264
- .race-data-subtitle {
2263
+ :where(.f1-sim-component, .f1-sim-component *).race-data-subtitle {
2265
2264
  display: block;
2266
2265
  overflow: hidden;
2267
2266
  text-overflow: ellipsis;
@@ -2275,7 +2274,7 @@
2275
2274
  text-transform: uppercase;
2276
2275
  }
2277
2276
 
2278
- .race-data-number {
2277
+ :where(.f1-sim-component, .f1-sim-component *).race-data-number {
2279
2278
  grid-column: 1;
2280
2279
  grid-row: 1;
2281
2280
  display: grid;
@@ -2297,16 +2296,16 @@
2297
2296
  transition: opacity 160ms ease, transform 160ms ease;
2298
2297
  }
2299
2298
 
2300
- .race-data-panel.is-project-mode .race-data-number {
2299
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel.is-project-mode .race-data-number {
2301
2300
  transform: translateX(-8px);
2302
2301
  }
2303
2302
 
2304
- .race-data-panel--with-telemetry {
2303
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel--with-telemetry {
2305
2304
  grid-template-columns: clamp(6.5rem, 11vw, 8.7rem) minmax(0, 1fr) minmax(150px, 0.48fr) auto;
2306
2305
  min-height: 112px;
2307
2306
  }
2308
2307
 
2309
- .race-data-telemetry {
2308
+ :where(.f1-sim-component, .f1-sim-component *).race-data-telemetry {
2310
2309
  position: relative;
2311
2310
  z-index: 1;
2312
2311
  grid-column: 3;
@@ -2319,53 +2318,53 @@
2319
2318
  border-left: 1px solid var(--line);
2320
2319
  }
2321
2320
 
2322
- .race-data-telemetry__bars {
2321
+ :where(.f1-sim-component, .f1-sim-component *).race-data-telemetry__bars {
2323
2322
  display: grid;
2324
2323
  grid-template-columns: repeat(3, minmax(0, 1fr));
2325
2324
  gap: 0.28rem;
2326
2325
  min-width: 0;
2327
2326
  }
2328
2327
 
2329
- .race-data-sector-bar {
2328
+ :where(.f1-sim-component, .f1-sim-component *).race-data-sector-bar {
2330
2329
  min-height: 3.85rem;
2331
2330
  padding: 0.52rem 0.42rem;
2332
2331
  }
2333
2332
 
2334
- .race-data-panel--with-telemetry .race-data-link {
2333
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel--with-telemetry .race-data-link {
2335
2334
  grid-column: 4;
2336
2335
  }
2337
2336
 
2338
- .race-data-panel.is-radio-mode .race-data-telemetry {
2337
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel.is-radio-mode .race-data-telemetry {
2339
2338
  display: none;
2340
2339
  }
2341
2340
 
2342
- .race-data-panel.is-radio-mode {
2341
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel.is-radio-mode {
2343
2342
  grid-template-columns: minmax(0, 1fr);
2344
2343
  }
2345
2344
 
2346
- .race-data-panel.is-radio-mode .race-data-copy {
2345
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel.is-radio-mode .race-data-copy {
2347
2346
  grid-column: 1;
2348
2347
  padding-left: 1.45rem;
2349
2348
  }
2350
2349
 
2351
- .race-data-panel.is-radio-mode .race-data-copy strong {
2350
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel.is-radio-mode .race-data-copy strong {
2352
2351
  color: #f8fafc;
2353
2352
  font-size: clamp(1.6rem, 3.2vw, 2.35rem);
2354
2353
  }
2355
2354
 
2356
- .race-data-panel[data-idle-mode="quote"] .race-data-copy {
2355
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel[data-idle-mode="quote"] .race-data-copy {
2357
2356
  padding-top: 0.8rem;
2358
2357
  padding-bottom: 0.88rem;
2359
2358
  }
2360
2359
 
2361
- .race-data-panel[data-idle-mode="quote"] .race-data-copy strong {
2360
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel[data-idle-mode="quote"] .race-data-copy strong {
2362
2361
  color: rgba(244, 247, 251, 0.78);
2363
2362
  font-size: clamp(0.95rem, 1.55vw, 1.2rem);
2364
2363
  letter-spacing: 0.05em;
2365
2364
  line-height: 1;
2366
2365
  }
2367
2366
 
2368
- .race-data-panel[data-idle-mode="quote"] .race-data-subtitle {
2367
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel[data-idle-mode="quote"] .race-data-subtitle {
2369
2368
  max-width: 100%;
2370
2369
  margin-top: 0.34rem;
2371
2370
  color: #fff;
@@ -2377,15 +2376,15 @@
2377
2376
  text-shadow: 0 2px 0 rgba(0, 0, 0, 0.52), 0 0 22px color-mix(in srgb, var(--driver-color, var(--red)) 30%, transparent);
2378
2377
  }
2379
2378
 
2380
- .race-data-panel.is-radio-mode .race-data-number {
2379
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel.is-radio-mode .race-data-number {
2381
2380
  display: none;
2382
2381
  }
2383
2382
 
2384
- .race-data-panel.is-radio-mode .race-data-link {
2383
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel.is-radio-mode .race-data-link {
2385
2384
  display: none;
2386
2385
  }
2387
2386
 
2388
- .race-data-link {
2387
+ :where(.f1-sim-component, .f1-sim-component *).race-data-link {
2389
2388
  grid-column: 3;
2390
2389
  grid-row: 1;
2391
2390
  display: grid;
@@ -2421,12 +2420,12 @@
2421
2420
  line-height: 1;
2422
2421
  }
2423
2422
 
2424
- .race-data-link:hover {
2423
+ :where(.f1-sim-component, .f1-sim-component *).race-data-link:hover {
2425
2424
  color: #fff;
2426
2425
  filter: brightness(1.12);
2427
2426
  }
2428
2427
 
2429
- .telemetry-grid dt {
2428
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-grid dt {
2430
2429
  display: block;
2431
2430
  min-width: 0;
2432
2431
  overflow: hidden;
@@ -2440,7 +2439,7 @@
2440
2439
  text-transform: uppercase;
2441
2440
  }
2442
2441
 
2443
- .telemetry-grid dd {
2442
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-grid dd {
2444
2443
  min-width: 0;
2445
2444
  overflow: hidden;
2446
2445
  text-overflow: ellipsis;
@@ -2450,18 +2449,18 @@
2450
2449
  font-size: clamp(0.86rem, 1.6vw, 1.15rem);
2451
2450
  }
2452
2451
 
2453
- .telemetry-header {
2452
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-header {
2454
2453
  align-items: flex-start;
2455
2454
  }
2456
2455
 
2457
- .telemetry-header strong {
2456
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-header strong {
2458
2457
  min-width: 0;
2459
2458
  text-align: right;
2460
2459
  font-size: 0.92rem;
2461
2460
  text-transform: uppercase;
2462
2461
  }
2463
2462
 
2464
- .telemetry-grid {
2463
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-grid {
2465
2464
  margin: 1rem 0 0;
2466
2465
  display: grid;
2467
2466
  grid-template-columns: 1fr;
@@ -2469,7 +2468,7 @@
2469
2468
  background: var(--line);
2470
2469
  }
2471
2470
 
2472
- .telemetry-grid > div {
2471
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-grid > div {
2473
2472
  min-width: 0;
2474
2473
  display: flex;
2475
2474
  justify-content: space-between;
@@ -2478,12 +2477,12 @@
2478
2477
  background: var(--surface-panel);
2479
2478
  }
2480
2479
 
2481
- .telemetry-grid dd {
2480
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-grid dd {
2482
2481
  color: var(--text);
2483
2482
  text-align: right;
2484
2483
  }
2485
2484
 
2486
- .telemetry-module-header {
2485
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-module-header {
2487
2486
  display: flex;
2488
2487
  align-items: baseline;
2489
2488
  justify-content: space-between;
@@ -2492,7 +2491,7 @@
2492
2491
  text-transform: uppercase;
2493
2492
  }
2494
2493
 
2495
- .telemetry-module-header span {
2494
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-module-header span {
2496
2495
  color: var(--muted);
2497
2496
  font-family: var(--font-mono);
2498
2497
  font-size: 0.66rem;
@@ -2500,7 +2499,7 @@
2500
2499
  letter-spacing: 0.14em;
2501
2500
  }
2502
2501
 
2503
- .telemetry-module-header strong {
2502
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-module-header strong {
2504
2503
  color: var(--green);
2505
2504
  font-family: var(--font-mono);
2506
2505
  font-size: 0.7rem;
@@ -2508,13 +2507,13 @@
2508
2507
  letter-spacing: 0.08em;
2509
2508
  }
2510
2509
 
2511
- .telemetry-sector-bars {
2510
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-bars {
2512
2511
  display: grid;
2513
2512
  grid-template-columns: repeat(3, minmax(0, 1fr));
2514
2513
  gap: 0.35rem;
2515
2514
  }
2516
2515
 
2517
- .telemetry-sector-bar {
2516
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-bar {
2518
2517
  --sector-status-color: var(--green);
2519
2518
  --sector-status-bg: color-mix(in srgb, var(--sector-status-color) 10%, rgba(8, 10, 14, 0.94));
2520
2519
  position: relative;
@@ -2530,49 +2529,49 @@
2530
2529
  box-shadow: inset 0 -2px 0 rgba(255, 255, 255, 0.05);
2531
2530
  }
2532
2531
 
2533
- .telemetry-sector-bar.is-active {
2532
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-bar.is-active {
2534
2533
  border-color: color-mix(in srgb, var(--green) 65%, rgba(255, 255, 255, 0.22));
2535
2534
  box-shadow:
2536
2535
  inset 0 -2px 0 var(--green),
2537
2536
  0 0 24px rgba(20, 199, 132, 0.12);
2538
2537
  }
2539
2538
 
2540
- .telemetry-sector-bar.is-complete {
2539
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-bar.is-complete {
2541
2540
  color: #08090b;
2542
2541
  }
2543
2542
 
2544
- .telemetry-sector-bar.is-overall-best,
2545
- .telemetry-sector-table td.is-overall-best {
2543
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-bar.is-overall-best,
2544
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-table td.is-overall-best {
2546
2545
  --sector-status-color: #c77dff;
2547
2546
  --sector-status-bg: color-mix(in srgb, #c77dff 23%, rgba(8, 10, 14, 0.94));
2548
2547
  color: #fff;
2549
2548
  }
2550
2549
 
2551
- .telemetry-sector-bar.is-personal-best,
2552
- .telemetry-sector-table td.is-personal-best {
2550
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-bar.is-personal-best,
2551
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-table td.is-personal-best {
2553
2552
  --sector-status-color: var(--green);
2554
2553
  --sector-status-bg: color-mix(in srgb, var(--green) 20%, rgba(8, 10, 14, 0.94));
2555
2554
  color: #ecfff7;
2556
2555
  }
2557
2556
 
2558
- .telemetry-sector-bar.is-slower,
2559
- .telemetry-sector-table td.is-slower {
2557
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-bar.is-slower,
2558
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-table td.is-slower {
2560
2559
  --sector-status-color: var(--yellow);
2561
2560
  --sector-status-bg: color-mix(in srgb, var(--yellow) 16%, rgba(8, 10, 14, 0.94));
2562
2561
  color: #fff2b8;
2563
2562
  }
2564
2563
 
2565
- .telemetry-sector-table td.is-overall-best,
2566
- .telemetry-sector-table td.is-personal-best,
2567
- .telemetry-sector-table td.is-slower {
2564
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-table td.is-overall-best,
2565
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-table td.is-personal-best,
2566
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-table td.is-slower {
2568
2567
  background:
2569
2568
  linear-gradient(90deg, color-mix(in srgb, var(--sector-status-color) 28%, transparent), transparent 72%),
2570
2569
  var(--sector-status-bg);
2571
2570
  box-shadow: inset 3px 0 0 var(--sector-status-color);
2572
2571
  }
2573
2572
 
2574
- .telemetry-sector-bar span,
2575
- .telemetry-sector-bar strong {
2573
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-bar span,
2574
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-bar strong {
2576
2575
  position: relative;
2577
2576
  z-index: 1;
2578
2577
  display: block;
@@ -2581,14 +2580,14 @@
2581
2580
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.32);
2582
2581
  }
2583
2582
 
2584
- .telemetry-sector-bar span {
2583
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-bar span {
2585
2584
  margin-bottom: 0.4rem;
2586
2585
  font-size: 0.58rem;
2587
2586
  font-weight: 900;
2588
2587
  letter-spacing: 0.16em;
2589
2588
  }
2590
2589
 
2591
- .telemetry-sector-bar strong {
2590
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-bar strong {
2592
2591
  overflow: hidden;
2593
2592
  font-size: 0.72rem;
2594
2593
  font-weight: 900;
@@ -2596,7 +2595,7 @@
2596
2595
  white-space: nowrap;
2597
2596
  }
2598
2597
 
2599
- .telemetry-sector-banner {
2598
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-banner {
2600
2599
  --sector-status-color: var(--green);
2601
2600
  --sector-banner-color: var(--driver-color, var(--green));
2602
2601
  position: absolute;
@@ -2608,6 +2607,7 @@
2608
2607
  gap: 0.65rem;
2609
2608
  align-items: stretch;
2610
2609
  width: min(560px, calc(100% - 2rem));
2610
+ min-height: 88px;
2611
2611
  padding: 0.65rem;
2612
2612
  color: var(--text);
2613
2613
  background:
@@ -2619,17 +2619,17 @@
2619
2619
  box-shadow: 0 16px 42px rgba(0, 0, 0, 0.42), inset 0 1px rgba(255, 255, 255, 0.12);
2620
2620
  }
2621
2621
 
2622
- .sim-canvas-panel:has(.race-data-panel:not(.is-hidden)) .telemetry-sector-banner {
2622
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel:has(.race-data-panel:not(.is-hidden)) .telemetry-sector-banner {
2623
2623
  bottom: 8.3rem;
2624
2624
  }
2625
2625
 
2626
- .telemetry-sector-banner__copy {
2626
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-banner__copy {
2627
2627
  min-width: 0;
2628
2628
  padding: 0.28rem 0.35rem;
2629
2629
  text-transform: uppercase;
2630
2630
  }
2631
2631
 
2632
- .telemetry-sector-banner__copy span {
2632
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-banner__copy span {
2633
2633
  display: block;
2634
2634
  color: var(--sector-banner-color);
2635
2635
  font-family: var(--font-mono);
@@ -2638,12 +2638,12 @@
2638
2638
  letter-spacing: 0.14em;
2639
2639
  }
2640
2640
 
2641
- .telemetry-sector-banner__copy b {
2641
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-banner__copy b {
2642
2642
  color: inherit;
2643
2643
  font: inherit;
2644
2644
  }
2645
2645
 
2646
- .telemetry-sector-banner__copy strong {
2646
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-banner__copy strong {
2647
2647
  display: block;
2648
2648
  margin-top: 0.2rem;
2649
2649
  overflow: hidden;
@@ -2654,7 +2654,7 @@
2654
2654
  white-space: nowrap;
2655
2655
  }
2656
2656
 
2657
- .telemetry-sector-banner__copy em {
2657
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-banner__copy em {
2658
2658
  display: block;
2659
2659
  margin-top: 0.28rem;
2660
2660
  color: rgba(244, 247, 251, 0.68);
@@ -2665,15 +2665,15 @@
2665
2665
  letter-spacing: 0.12em;
2666
2666
  }
2667
2667
 
2668
- .telemetry-sector-banner__bars {
2668
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-banner__bars {
2669
2669
  align-self: stretch;
2670
2670
  display: grid;
2671
2671
  grid-template-columns: repeat(3, minmax(0, 1fr));
2672
2672
  gap: 0.32rem;
2673
2673
  }
2674
2674
 
2675
- .telemetry-lap-table,
2676
- .telemetry-sector-table {
2675
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-lap-table,
2676
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-table {
2677
2677
  width: 100%;
2678
2678
  min-width: 0;
2679
2679
  table-layout: fixed;
@@ -2683,20 +2683,20 @@
2683
2683
  font-family: var(--font-mono);
2684
2684
  }
2685
2685
 
2686
- .telemetry-lap-table tr,
2687
- .telemetry-sector-table tr {
2686
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-lap-table tr,
2687
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-table tr {
2688
2688
  border-bottom: 1px solid rgba(255, 255, 255, 0.075);
2689
2689
  }
2690
2690
 
2691
- .telemetry-lap-table tr:last-child,
2692
- .telemetry-sector-table tr:last-child {
2691
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-lap-table tr:last-child,
2692
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-table tr:last-child {
2693
2693
  border-bottom: 0;
2694
2694
  }
2695
2695
 
2696
- .telemetry-lap-table th,
2697
- .telemetry-lap-table td,
2698
- .telemetry-sector-table th,
2699
- .telemetry-sector-table td {
2696
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-lap-table th,
2697
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-lap-table td,
2698
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-table th,
2699
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-table td {
2700
2700
  overflow: hidden;
2701
2701
  padding: 0.55rem 0.5rem;
2702
2702
  font-size: 0.68rem;
@@ -2706,8 +2706,8 @@
2706
2706
  white-space: nowrap;
2707
2707
  }
2708
2708
 
2709
- .telemetry-lap-table th,
2710
- .telemetry-sector-table th {
2709
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-lap-table th,
2710
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-table th {
2711
2711
  color: var(--muted);
2712
2712
  font-weight: 800;
2713
2713
  letter-spacing: 0.09em;
@@ -2715,20 +2715,20 @@
2715
2715
  text-transform: uppercase;
2716
2716
  }
2717
2717
 
2718
- .telemetry-lap-table td,
2719
- .telemetry-sector-table td {
2718
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-lap-table td,
2719
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-table td {
2720
2720
  color: var(--text);
2721
2721
  font-weight: 900;
2722
2722
  }
2723
2723
 
2724
- .car-overview {
2724
+ :where(.f1-sim-component, .f1-sim-component *).car-overview {
2725
2725
  position: relative;
2726
2726
  margin-top: 1rem;
2727
2727
  padding-top: 0.85rem;
2728
2728
  border-top: 1px solid var(--line);
2729
2729
  }
2730
2730
 
2731
- .car-overview-header {
2731
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-header {
2732
2732
  display: flex;
2733
2733
  align-items: center;
2734
2734
  justify-content: space-between;
@@ -2737,7 +2737,7 @@
2737
2737
  text-transform: uppercase;
2738
2738
  }
2739
2739
 
2740
- .car-overview-header span {
2740
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-header span {
2741
2741
  color: var(--muted);
2742
2742
  font-family: var(--font-mono);
2743
2743
  font-size: 0.64rem;
@@ -2745,21 +2745,21 @@
2745
2745
  letter-spacing: 0.12em;
2746
2746
  }
2747
2747
 
2748
- .car-overview-header strong {
2748
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-header strong {
2749
2749
  color: var(--driver-color, var(--red));
2750
2750
  font-family: var(--font-mono);
2751
2751
  font-size: 0.72rem;
2752
2752
  letter-spacing: 0.08em;
2753
2753
  }
2754
2754
 
2755
- .car-overview-toggle {
2755
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-toggle {
2756
2756
  display: grid;
2757
2757
  grid-template-columns: repeat(2, minmax(0, 1fr));
2758
2758
  gap: 0.35rem;
2759
2759
  margin-bottom: 0.7rem;
2760
2760
  }
2761
2761
 
2762
- .car-overview-toggle button {
2762
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-toggle button {
2763
2763
  min-width: 0;
2764
2764
  min-height: 44px;
2765
2765
  color: var(--muted);
@@ -2773,14 +2773,14 @@
2773
2773
  cursor: pointer;
2774
2774
  }
2775
2775
 
2776
- .car-overview-toggle button.is-active,
2777
- .car-overview-toggle button[aria-pressed='true'] {
2776
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-toggle button.is-active,
2777
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-toggle button[aria-pressed='true'] {
2778
2778
  color: #fff;
2779
2779
  background: color-mix(in srgb, var(--driver-color, var(--red)) 30%, rgba(255, 255, 255, 0.075));
2780
2780
  border-color: color-mix(in srgb, var(--driver-color, var(--red)) 72%, rgba(255, 255, 255, 0.18));
2781
2781
  }
2782
2782
 
2783
- .car-overview-diagram {
2783
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-diagram {
2784
2784
  --arrow-line: color-mix(in srgb, var(--driver-color, var(--red)) 72%, rgba(255, 255, 255, 0.36));
2785
2785
  position: relative;
2786
2786
  display: grid;
@@ -2796,7 +2796,7 @@
2796
2796
  border: 1px solid rgba(255, 255, 255, 0.12);
2797
2797
  }
2798
2798
 
2799
- .car-overview-diagram::before {
2799
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-diagram::before {
2800
2800
  content: '';
2801
2801
  position: absolute;
2802
2802
  inset: 0.55rem;
@@ -2809,7 +2809,7 @@
2809
2809
  opacity: 0.62;
2810
2810
  }
2811
2811
 
2812
- .car-overview-diagram::after {
2812
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-diagram::after {
2813
2813
  content: '';
2814
2814
  position: absolute;
2815
2815
  inset: 0;
@@ -2822,7 +2822,7 @@
2822
2822
  opacity: 0.44;
2823
2823
  }
2824
2824
 
2825
- .car-overview-car {
2825
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-car {
2826
2826
  position: relative;
2827
2827
  z-index: 1;
2828
2828
  grid-column: 1 / -1;
@@ -2837,7 +2837,7 @@
2837
2837
  transform: skewX(-10deg);
2838
2838
  }
2839
2839
 
2840
- .car-overview-car::before {
2840
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-car::before {
2841
2841
  content: '';
2842
2842
  position: absolute;
2843
2843
  inset: 0;
@@ -2851,7 +2851,7 @@
2851
2851
  0 0 28px color-mix(in srgb, var(--driver-color, var(--red)) 44%, transparent);
2852
2852
  }
2853
2853
 
2854
- .car-overview-car::after {
2854
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-car::after {
2855
2855
  content: '';
2856
2856
  position: absolute;
2857
2857
  inset: 0.58rem 0.86rem;
@@ -2862,7 +2862,7 @@
2862
2862
  opacity: 0.34;
2863
2863
  }
2864
2864
 
2865
- .car-overview-car-image {
2865
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-car-image {
2866
2866
  position: absolute;
2867
2867
  z-index: 2;
2868
2868
  inset: 0.25rem 0.2rem;
@@ -2876,9 +2876,9 @@
2876
2876
  transform: skewX(10deg);
2877
2877
  }
2878
2878
 
2879
- .car-overview-icon,
2880
- .car-overview-number,
2881
- .car-overview-core-stat {
2879
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-icon,
2880
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-number,
2881
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-core-stat {
2882
2882
  position: relative;
2883
2883
  z-index: 3;
2884
2884
  transform: skewX(10deg);
@@ -2886,12 +2886,12 @@
2886
2886
  font-weight: 900;
2887
2887
  }
2888
2888
 
2889
- .car-overview-icon {
2889
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-icon {
2890
2890
  font-size: 0.86rem;
2891
2891
  letter-spacing: -0.07em;
2892
2892
  }
2893
2893
 
2894
- .car-overview-number {
2894
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-number {
2895
2895
  position: absolute;
2896
2896
  right: 0.42rem;
2897
2897
  bottom: 0.18rem;
@@ -2899,7 +2899,7 @@
2899
2899
  font-size: 0.54rem;
2900
2900
  }
2901
2901
 
2902
- .car-overview-core-stat {
2902
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-core-stat {
2903
2903
  position: absolute;
2904
2904
  left: 50%;
2905
2905
  bottom: -1.05rem;
@@ -2910,7 +2910,7 @@
2910
2910
  transform: translateX(-50%) skewX(10deg);
2911
2911
  }
2912
2912
 
2913
- .car-overview-cell {
2913
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell {
2914
2914
  position: relative;
2915
2915
  z-index: 1;
2916
2916
  min-width: 0;
@@ -2920,7 +2920,7 @@
2920
2920
  box-shadow: inset 3px 0 0 color-mix(in srgb, var(--driver-color, var(--red)) 78%, transparent);
2921
2921
  }
2922
2922
 
2923
- .car-overview-cell::after {
2923
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell::after {
2924
2924
  content: '';
2925
2925
  position: absolute;
2926
2926
  width: 0.42rem;
@@ -2929,76 +2929,76 @@
2929
2929
  transform: rotate(45deg);
2930
2930
  }
2931
2931
 
2932
- .car-overview-cell--slot-1 {
2932
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-1 {
2933
2933
  grid-column: 1;
2934
2934
  grid-row: 1;
2935
2935
  justify-self: stretch;
2936
2936
  width: auto;
2937
2937
  }
2938
2938
 
2939
- .car-overview-cell--slot-1::after,
2940
- .car-overview-cell--slot-2::after {
2939
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-1::after,
2940
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-2::after {
2941
2941
  right: 50%;
2942
2942
  bottom: -0.25rem;
2943
2943
  transform: translateX(50%) rotate(45deg);
2944
2944
  }
2945
2945
 
2946
- .car-overview-cell--slot-2 {
2946
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-2 {
2947
2947
  grid-column: 2;
2948
2948
  grid-row: 1;
2949
2949
  justify-self: stretch;
2950
2950
  width: auto;
2951
2951
  }
2952
2952
 
2953
- .car-overview-cell--slot-3 {
2953
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-3 {
2954
2954
  grid-column: 1;
2955
2955
  grid-row: 2;
2956
2956
  justify-self: stretch;
2957
2957
  width: auto;
2958
2958
  }
2959
2959
 
2960
- .car-overview-cell--slot-4 {
2960
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-4 {
2961
2961
  grid-column: 2;
2962
2962
  grid-row: 2;
2963
2963
  justify-self: stretch;
2964
2964
  width: auto;
2965
2965
  }
2966
2966
 
2967
- .car-overview-cell--slot-3::after,
2968
- .car-overview-cell--slot-4::after {
2967
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-3::after,
2968
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-4::after {
2969
2969
  top: 50%;
2970
2970
  transform: translateY(-50%) rotate(45deg);
2971
2971
  }
2972
2972
 
2973
- .car-overview-cell--slot-3::after {
2973
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-3::after {
2974
2974
  right: -0.25rem;
2975
2975
  }
2976
2976
 
2977
- .car-overview-cell--slot-4::after {
2977
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-4::after {
2978
2978
  left: -0.25rem;
2979
2979
  }
2980
2980
 
2981
- .car-overview-cell--slot-5,
2982
- .car-overview-cell--slot-6 {
2981
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-5,
2982
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-6 {
2983
2983
  grid-row: 4;
2984
2984
  }
2985
2985
 
2986
- .car-overview-cell--slot-5 {
2986
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-5 {
2987
2987
  grid-column: 1;
2988
2988
  }
2989
2989
 
2990
- .car-overview-cell--slot-6 {
2990
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-6 {
2991
2991
  grid-column: 2;
2992
2992
  }
2993
2993
 
2994
- .car-overview-cell--slot-5::after,
2995
- .car-overview-cell--slot-6::after {
2994
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-5::after,
2995
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-6::after {
2996
2996
  right: 50%;
2997
2997
  top: -0.25rem;
2998
2998
  transform: translateX(50%) rotate(45deg);
2999
2999
  }
3000
3000
 
3001
- .car-overview-cell--slot-7 {
3001
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-7 {
3002
3002
  grid-column: 1 / -1;
3003
3003
  grid-row: 5;
3004
3004
  justify-self: stretch;
@@ -3009,21 +3009,21 @@
3009
3009
  width: auto;
3010
3010
  }
3011
3011
 
3012
- .car-overview-cell--slot-7::after {
3012
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-7::after {
3013
3013
  left: 50%;
3014
3014
  top: -0.25rem;
3015
3015
  transform: translateX(-50%) rotate(45deg);
3016
3016
  }
3017
3017
 
3018
- .car-overview-cell--slot-7 > span {
3018
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-7 > span {
3019
3019
  margin-bottom: 0;
3020
3020
  }
3021
3021
 
3022
- .car-overview-cell--slot-7 strong {
3022
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-7 strong {
3023
3023
  text-align: right;
3024
3024
  }
3025
3025
 
3026
- .car-overview-cell > span {
3026
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell > span {
3027
3027
  display: block;
3028
3028
  margin-bottom: 0.18rem;
3029
3029
  color: var(--muted);
@@ -3034,7 +3034,7 @@
3034
3034
  text-transform: uppercase;
3035
3035
  }
3036
3036
 
3037
- .car-overview-cell strong {
3037
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell strong {
3038
3038
  display: block;
3039
3039
  overflow: hidden;
3040
3040
  color: #fff;
@@ -3046,7 +3046,7 @@
3046
3046
  white-space: nowrap;
3047
3047
  }
3048
3048
 
3049
- .car-overview-cell strong span {
3049
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell strong span {
3050
3050
  display: inline;
3051
3051
  margin: 0;
3052
3052
  color: inherit;
@@ -3056,31 +3056,31 @@
3056
3056
  }
3057
3057
 
3058
3058
  @media (max-width: 1120px) {
3059
- .sim-grid,
3060
- .sim-shell--left-tower-overlay .sim-grid,
3061
- .sim-shell--left-tower-overlay.sim-grid {
3059
+ :where(.f1-sim-component, .f1-sim-component *).sim-grid,
3060
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .sim-grid,
3061
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay.sim-grid {
3062
3062
  grid-template-columns: 1fr;
3063
3063
  }
3064
3064
 
3065
- .sim-canvas-panel,
3066
- .sim-shell--left-tower-overlay .sim-canvas-panel {
3065
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel,
3066
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .sim-canvas-panel {
3067
3067
  min-height: 62svh;
3068
3068
  grid-column: auto;
3069
3069
  order: -1;
3070
3070
  }
3071
3071
 
3072
- .sim-shell--left-tower-overlay.sim-shell--timing-expand-race-view .sim-canvas-panel {
3072
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay.sim-shell--timing-expand-race-view .sim-canvas-panel {
3073
3073
  min-height: 62svh;
3074
3074
  }
3075
3075
 
3076
- .sim-shell--left-tower-overlay .sim-timing {
3076
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .sim-timing {
3077
3077
  position: static;
3078
3078
  width: auto;
3079
3079
  max-width: 390px;
3080
3080
  clip-path: none;
3081
3081
  }
3082
3082
 
3083
- .sim-shell--left-tower-overlay .sim-timing.broadcast-tower {
3083
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .sim-timing.broadcast-tower {
3084
3084
  position: relative;
3085
3085
  inset: auto;
3086
3086
  width: min(100%, var(--timing-board-max-width));
@@ -3089,41 +3089,41 @@
3089
3089
  clip-path: none;
3090
3090
  }
3091
3091
 
3092
- .sim-shell--left-tower-overlay .sim-canvas-panel > .camera-controls {
3092
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .sim-canvas-panel > .camera-controls {
3093
3093
  left: 1rem;
3094
3094
  max-width: calc(100% - 2rem);
3095
3095
  }
3096
3096
 
3097
- .sim-shell--left-tower-overlay .start-lights {
3097
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .start-lights {
3098
3098
  left: 50%;
3099
3099
  }
3100
3100
 
3101
- .sim-shell--left-tower-overlay .race-data-panel {
3101
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .race-data-panel {
3102
3102
  --race-data-banner-left: 50%;
3103
3103
  --race-data-banner-width: min(1080px, calc(100% - 1.5rem));
3104
3104
  left: 50%;
3105
3105
  }
3106
3106
 
3107
- .sim-timing,
3108
- .sim-telemetry {
3107
+ :where(.f1-sim-component, .f1-sim-component *).sim-timing,
3108
+ :where(.f1-sim-component, .f1-sim-component *).sim-telemetry {
3109
3109
  min-height: auto;
3110
3110
  }
3111
3111
 
3112
- .sim-telemetry:not(.telemetry-component) {
3112
+ :where(.f1-sim-component, .f1-sim-component *).sim-telemetry:not(.telemetry-component) {
3113
3113
  display: grid;
3114
3114
  grid-template-columns: minmax(0, 0.9fr) minmax(280px, 1.1fr);
3115
3115
  gap: 1rem;
3116
3116
  }
3117
3117
 
3118
- .telemetry-header {
3118
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-header {
3119
3119
  grid-column: 1 / -1;
3120
3120
  }
3121
3121
 
3122
- .telemetry-grid {
3122
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-grid {
3123
3123
  margin-top: 0;
3124
3124
  }
3125
3125
 
3126
- .car-overview {
3126
+ :where(.f1-sim-component, .f1-sim-component *).car-overview {
3127
3127
  margin-top: 0;
3128
3128
  padding-top: 0;
3129
3129
  border-top: 0;
@@ -3131,65 +3131,65 @@
3131
3131
  }
3132
3132
 
3133
3133
  @media (max-width: 760px) {
3134
- .sim-shell {
3134
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell {
3135
3135
  padding: 0.75rem;
3136
3136
  }
3137
3137
 
3138
- .sim-grid,
3139
- .sim-shell--left-tower-overlay .sim-grid,
3140
- .sim-shell--left-tower-overlay.sim-grid {
3138
+ :where(.f1-sim-component, .f1-sim-component *).sim-grid,
3139
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .sim-grid,
3140
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay.sim-grid {
3141
3141
  grid-template-columns: minmax(0, 1fr);
3142
3142
  }
3143
3143
 
3144
- .sim-shell--left-tower-overlay .sim-timing,
3145
- .sim-canvas-panel--with-timing-tower > .sim-timing {
3144
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .sim-timing,
3145
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--with-timing-tower > .sim-timing {
3146
3146
  width: min(100%, var(--timing-board-max-width));
3147
3147
  }
3148
3148
 
3149
- .sim-shell--left-tower-overlay .sim-timing {
3149
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .sim-timing {
3150
3150
  width: 100%;
3151
3151
  max-width: 100%;
3152
3152
  }
3153
3153
 
3154
- .sim-topbar {
3154
+ :where(.f1-sim-component, .f1-sim-component *).sim-topbar {
3155
3155
  grid-template-columns: 1fr;
3156
3156
  align-items: stretch;
3157
3157
  }
3158
3158
 
3159
- .sim-controls,
3160
- .sim-backlink {
3159
+ :where(.f1-sim-component, .f1-sim-component *).sim-controls,
3160
+ :where(.f1-sim-component, .f1-sim-component *).sim-backlink {
3161
3161
  justify-content: stretch;
3162
3162
  }
3163
3163
 
3164
- .sim-controls {
3164
+ :where(.f1-sim-component, .f1-sim-component *).sim-controls {
3165
3165
  display: grid;
3166
3166
  grid-template-columns: 1fr 1fr;
3167
3167
  }
3168
3168
 
3169
- .sim-control,
3170
- .sim-backlink {
3169
+ :where(.f1-sim-component, .f1-sim-component *).sim-control,
3170
+ :where(.f1-sim-component, .f1-sim-component *).sim-backlink {
3171
3171
  text-align: center;
3172
3172
  }
3173
3173
 
3174
- .sim-canvas-panel {
3174
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel {
3175
3175
  min-height: 58svh;
3176
3176
  }
3177
3177
 
3178
- .race-telemetry-drawer--responsive-narrow {
3178
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer--responsive-narrow {
3179
3179
  --telemetry-drawer-width: min(88%, 360px);
3180
3180
  }
3181
3181
 
3182
- .race-telemetry-drawer--responsive-narrow .race-telemetry-drawer__race,
3183
- .race-telemetry-drawer--responsive-narrow.is-telemetry-open .race-telemetry-drawer__race {
3182
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer--responsive-narrow .race-telemetry-drawer__race,
3183
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer--responsive-narrow.is-telemetry-open .race-telemetry-drawer__race {
3184
3184
  margin-right: 0;
3185
3185
  padding-right: 0;
3186
3186
  }
3187
3187
 
3188
- .race-telemetry-drawer--responsive-narrow.is-telemetry-open .race-telemetry-drawer__race {
3188
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer--responsive-narrow.is-telemetry-open .race-telemetry-drawer__race {
3189
3189
  margin-bottom: 0;
3190
3190
  }
3191
3191
 
3192
- .race-telemetry-drawer--responsive-narrow .telemetry-drawer {
3192
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer--responsive-narrow .telemetry-drawer {
3193
3193
  top: 0.75rem;
3194
3194
  right: 0.75rem;
3195
3195
  bottom: 0.75rem;
@@ -3205,58 +3205,58 @@
3205
3205
  transform 320ms cubic-bezier(0.2, 0.8, 0.2, 1);
3206
3206
  }
3207
3207
 
3208
- .race-telemetry-drawer--responsive-narrow.is-telemetry-open .telemetry-drawer {
3208
+ :where(.f1-sim-component, .f1-sim-component *).race-telemetry-drawer--responsive-narrow.is-telemetry-open .telemetry-drawer {
3209
3209
  transform: translate3d(0, 0, 0);
3210
3210
  }
3211
3211
 
3212
- .camera-controls {
3212
+ :where(.f1-sim-component, .f1-sim-component *).camera-controls {
3213
3213
  max-width: calc(100% - 1.5rem);
3214
3214
  }
3215
3215
 
3216
- .race-data-panel {
3216
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel {
3217
3217
  left: 50%;
3218
- bottom: 0.75rem;
3218
+ bottom: 1.1rem;
3219
3219
  grid-template-columns: minmax(4.6rem, 0.26fr) minmax(0, 1fr) minmax(6.5rem, 7rem);
3220
3220
  width: calc(100% - 1.5rem);
3221
3221
  min-height: 88px;
3222
3222
  }
3223
3223
 
3224
- .telemetry-sector-banner {
3224
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-sector-banner {
3225
3225
  right: 0.75rem;
3226
3226
  bottom: 0.75rem;
3227
3227
  grid-template-columns: 1fr;
3228
3228
  width: calc(100% - 1.5rem);
3229
3229
  }
3230
3230
 
3231
- .sim-canvas-panel:has(.race-data-panel:not(.is-hidden)) .telemetry-sector-banner {
3231
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel:has(.race-data-panel:not(.is-hidden)) .telemetry-sector-banner {
3232
3232
  bottom: 8rem;
3233
3233
  }
3234
3234
 
3235
- .race-data-panel.is-radio-mode {
3235
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel.is-radio-mode {
3236
3236
  grid-template-columns: minmax(0, 1fr);
3237
3237
  }
3238
3238
 
3239
- .race-data-panel--with-telemetry {
3239
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel--with-telemetry {
3240
3240
  --race-data-action-rail: 0.45rem;
3241
3241
  grid-template-columns: minmax(4.6rem, 0.26fr) minmax(0, 1fr) minmax(6.5rem, 7rem);
3242
3242
  grid-template-rows: auto auto;
3243
3243
  }
3244
3244
 
3245
- .race-data-panel:not(.race-data-panel--with-telemetry):not(.is-radio-mode) {
3245
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel:not(.race-data-panel--with-telemetry):not(.is-radio-mode) {
3246
3246
  grid-template-columns: minmax(4.2rem, 0.24fr) minmax(0, 1fr) minmax(8.85rem, 8.85rem);
3247
3247
  }
3248
3248
 
3249
- .race-data-copy {
3249
+ :where(.f1-sim-component, .f1-sim-component *).race-data-copy {
3250
3250
  grid-column: 2;
3251
3251
  padding: 0.78rem 0.7rem 0.85rem 0.45rem;
3252
3252
  }
3253
3253
 
3254
- .race-data-panel--with-telemetry .race-data-copy {
3254
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel--with-telemetry .race-data-copy {
3255
3255
  grid-column: 2;
3256
3256
  padding-bottom: 0.35rem;
3257
3257
  }
3258
3258
 
3259
- .race-data-telemetry {
3259
+ :where(.f1-sim-component, .f1-sim-component *).race-data-telemetry {
3260
3260
  grid-column: 1 / -1;
3261
3261
  grid-row: 2;
3262
3262
  align-self: start;
@@ -3265,35 +3265,35 @@
3265
3265
  border-left: 0;
3266
3266
  }
3267
3267
 
3268
- .race-data-telemetry__bars {
3268
+ :where(.f1-sim-component, .f1-sim-component *).race-data-telemetry__bars {
3269
3269
  align-items: start;
3270
3270
  gap: 0.32rem;
3271
3271
  }
3272
3272
 
3273
- .race-data-sector-bar {
3273
+ :where(.f1-sim-component, .f1-sim-component *).race-data-sector-bar {
3274
3274
  min-height: 2.75rem;
3275
3275
  padding: 0.42rem 0.42rem 0.38rem;
3276
3276
  }
3277
3277
 
3278
- .race-data-sector-bar span {
3278
+ :where(.f1-sim-component, .f1-sim-component *).race-data-sector-bar span {
3279
3279
  margin-bottom: 0.22rem;
3280
3280
  }
3281
3281
 
3282
- .race-data-sector-bar strong {
3282
+ :where(.f1-sim-component, .f1-sim-component *).race-data-sector-bar strong {
3283
3283
  font-size: 0.68rem;
3284
3284
  }
3285
3285
 
3286
- .race-data-panel--with-telemetry .race-data-link {
3286
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel--with-telemetry .race-data-link {
3287
3287
  grid-column: 3;
3288
3288
  grid-row: 1;
3289
3289
  }
3290
3290
 
3291
- .race-data-panel.is-radio-mode .race-data-copy {
3291
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel.is-radio-mode .race-data-copy {
3292
3292
  grid-column: 1;
3293
3293
  padding-left: 0.95rem;
3294
3294
  }
3295
3295
 
3296
- .race-data-number {
3296
+ :where(.f1-sim-component, .f1-sim-component *).race-data-number {
3297
3297
  grid-column: 1;
3298
3298
  min-width: 4.8rem;
3299
3299
  height: auto;
@@ -3301,10 +3301,10 @@
3301
3301
  font-size: clamp(2.9rem, 11cqw, 3.4rem);
3302
3302
  }
3303
3303
 
3304
- .race-data-link,
3305
- .f1-sim-component .race-data-link,
3306
- .sim-shell--left-tower-overlay .race-data-link,
3307
- .sim-canvas-panel--with-timing-tower .race-data-link {
3304
+ :where(.f1-sim-component, .f1-sim-component *).race-data-link,
3305
+ .f1-sim-component .race-data-link,
3306
+ :where(.f1-sim-component, .f1-sim-component *).sim-shell--left-tower-overlay .race-data-link,
3307
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--with-timing-tower .race-data-link {
3308
3308
  grid-column: 3;
3309
3309
  grid-row: 1;
3310
3310
  min-width: 5.4rem;
@@ -3317,102 +3317,102 @@
3317
3317
  letter-spacing: 0.055em;
3318
3318
  }
3319
3319
 
3320
- .race-data-dismiss {
3320
+ :where(.f1-sim-component, .f1-sim-component *).race-data-dismiss {
3321
3321
  top: 0;
3322
3322
  right: var(--race-data-action-rail, 0.45rem);
3323
3323
  width: 44px;
3324
3324
  height: 44px;
3325
3325
  }
3326
3326
 
3327
- .sim-telemetry {
3327
+ :where(.f1-sim-component, .f1-sim-component *).sim-telemetry {
3328
3328
  display: block;
3329
3329
  }
3330
3330
 
3331
- .telemetry-grid {
3331
+ :where(.f1-sim-component, .f1-sim-component *).telemetry-grid {
3332
3332
  margin-top: 1rem;
3333
3333
  }
3334
3334
 
3335
- .car-overview {
3335
+ :where(.f1-sim-component, .f1-sim-component *).car-overview {
3336
3336
  margin-top: 1rem;
3337
3337
  padding-top: 0.85rem;
3338
3338
  border-top: 1px solid var(--line);
3339
3339
  }
3340
3340
 
3341
- .car-overview-diagram {
3341
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-diagram {
3342
3342
  grid-template-columns: 1fr;
3343
3343
  grid-template-rows: repeat(2, auto) 5.3rem repeat(4, auto);
3344
3344
  }
3345
3345
 
3346
- .car-overview-diagram::before {
3346
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-diagram::before {
3347
3347
  background:
3348
3348
  linear-gradient(var(--arrow-line), var(--arrow-line)) 50% 18% / 1px 16% no-repeat,
3349
3349
  linear-gradient(var(--arrow-line), var(--arrow-line)) 50% 82% / 1px 16% no-repeat;
3350
3350
  }
3351
3351
 
3352
- .car-overview-cell,
3353
- .car-overview-car {
3352
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell,
3353
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-car {
3354
3354
  grid-column: 1;
3355
3355
  justify-self: stretch;
3356
3356
  width: auto;
3357
3357
  }
3358
3358
 
3359
- .car-overview-cell--slot-1 {
3359
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-1 {
3360
3360
  grid-row: 1;
3361
3361
  }
3362
3362
 
3363
- .car-overview-cell--slot-2 {
3363
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-2 {
3364
3364
  grid-row: 2;
3365
3365
  }
3366
3366
 
3367
- .car-overview-car {
3367
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-car {
3368
3368
  grid-row: 3;
3369
3369
  justify-self: center;
3370
3370
  }
3371
3371
 
3372
- .car-overview-cell--slot-3 {
3372
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-3 {
3373
3373
  grid-row: 4;
3374
3374
  }
3375
3375
 
3376
- .car-overview-cell--slot-4 {
3376
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-4 {
3377
3377
  grid-row: 5;
3378
3378
  }
3379
3379
 
3380
- .car-overview-cell--slot-5 {
3380
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-5 {
3381
3381
  grid-row: 6;
3382
3382
  }
3383
3383
 
3384
- .car-overview-cell--slot-6 {
3384
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-6 {
3385
3385
  grid-row: 7;
3386
3386
  }
3387
3387
 
3388
- .car-overview-cell--slot-7 {
3388
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-7 {
3389
3389
  grid-row: 8;
3390
3390
  display: block;
3391
3391
  }
3392
3392
 
3393
- .car-overview-cell--slot-7 strong {
3393
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell--slot-7 strong {
3394
3394
  text-align: left;
3395
3395
  }
3396
3396
 
3397
- .car-overview-cell::after {
3397
+ :where(.f1-sim-component, .f1-sim-component *).car-overview-cell::after {
3398
3398
  display: none;
3399
3399
  }
3400
3400
  }
3401
3401
 
3402
3402
  @media (max-width: 520px) {
3403
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower {
3403
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower {
3404
3404
  --race-overlay-banner-clearance: 0px;
3405
3405
  min-height: max(var(--paddock-race-view-min-height, 620px), var(--timing-board-min-height));
3406
3406
  }
3407
3407
 
3408
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower.sim-canvas-panel--needs-banner-clearance {
3408
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower.sim-canvas-panel--needs-banner-clearance {
3409
3409
  min-height: max(
3410
3410
  calc(var(--paddock-race-view-min-height, 620px) + var(--race-overlay-banner-clearance)),
3411
3411
  calc(var(--timing-board-min-height) + var(--race-overlay-banner-clearance))
3412
3412
  );
3413
3413
  }
3414
3414
 
3415
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .sim-timing {
3415
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .sim-timing {
3416
3416
  position: absolute;
3417
3417
  top: 0.75rem;
3418
3418
  bottom: 0.75rem;
@@ -3429,40 +3429,40 @@
3429
3429
  transform 320ms cubic-bezier(0.2, 0.8, 0.2, 1);
3430
3430
  }
3431
3431
 
3432
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .sim-timing.broadcast-tower {
3432
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .sim-timing.broadcast-tower {
3433
3433
  position: absolute;
3434
3434
  width: min(82%, var(--timing-board-max-width));
3435
3435
  max-width: var(--timing-board-max-width);
3436
3436
  height: auto;
3437
3437
  }
3438
3438
 
3439
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower.sim-canvas-panel--needs-banner-clearance > .sim-timing {
3439
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower.sim-canvas-panel--needs-banner-clearance > .sim-timing {
3440
3440
  bottom: var(--race-overlay-banner-clearance);
3441
3441
  }
3442
3442
 
3443
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower.is-timing-panel-open > .sim-timing {
3443
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower.is-timing-panel-open > .sim-timing {
3444
3444
  transform: translate3d(0, 0, 0);
3445
3445
  opacity: 1;
3446
3446
  pointer-events: auto;
3447
3447
  }
3448
3448
 
3449
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .timing-panel-toggle {
3449
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .timing-panel-toggle {
3450
3450
  display: grid;
3451
3451
  place-items: center;
3452
3452
  }
3453
3453
 
3454
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .camera-controls {
3454
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .camera-controls {
3455
3455
  left: 0.75rem;
3456
3456
  top: 4.45rem;
3457
3457
  max-width: calc(100% - 1.5rem);
3458
3458
  }
3459
3459
 
3460
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .start-lights {
3460
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .start-lights {
3461
3461
  top: 7.2rem;
3462
3462
  left: 50%;
3463
3463
  }
3464
3464
 
3465
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .steward-message {
3465
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .steward-message {
3466
3466
  top: 4.1rem;
3467
3467
  left: 0.75rem;
3468
3468
  right: 0.75rem;
@@ -3478,39 +3478,39 @@
3478
3478
  transform: none;
3479
3479
  }
3480
3480
 
3481
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .steward-message.is-hidden {
3481
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .steward-message.is-hidden {
3482
3482
  transform: translateY(-0.55rem);
3483
3483
  }
3484
3484
 
3485
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .steward-message .steward-message__kicker {
3485
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .steward-message .steward-message__kicker {
3486
3486
  min-width: 4.7rem;
3487
3487
  padding: 0.44rem 0.52rem;
3488
3488
  font-size: 0.92rem;
3489
3489
  }
3490
3490
 
3491
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .steward-message strong {
3491
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .steward-message strong {
3492
3492
  font-size: 0.86rem;
3493
3493
  }
3494
3494
 
3495
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .steward-message span:last-child {
3495
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .steward-message span:last-child {
3496
3496
  font-size: 0.66rem;
3497
3497
  }
3498
3498
  }
3499
3499
 
3500
3500
  @container (max-width: 520px) {
3501
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower {
3501
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower {
3502
3502
  --race-overlay-banner-clearance: 0px;
3503
3503
  min-height: max(var(--paddock-race-view-min-height, 620px), var(--timing-board-min-height));
3504
3504
  }
3505
3505
 
3506
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower.sim-canvas-panel--needs-banner-clearance {
3506
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower.sim-canvas-panel--needs-banner-clearance {
3507
3507
  min-height: max(
3508
3508
  calc(var(--paddock-race-view-min-height, 620px) + var(--race-overlay-banner-clearance)),
3509
3509
  calc(var(--timing-board-min-height) + var(--race-overlay-banner-clearance))
3510
3510
  );
3511
3511
  }
3512
3512
 
3513
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .sim-timing {
3513
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .sim-timing {
3514
3514
  position: absolute;
3515
3515
  top: 0.75rem;
3516
3516
  bottom: 0.75rem;
@@ -3524,40 +3524,40 @@
3524
3524
  clip-path: inset(0 round 1.25rem);
3525
3525
  }
3526
3526
 
3527
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .sim-timing.broadcast-tower {
3527
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .sim-timing.broadcast-tower {
3528
3528
  position: absolute;
3529
3529
  width: min(82%, var(--timing-board-max-width));
3530
3530
  max-width: var(--timing-board-max-width);
3531
3531
  height: auto;
3532
3532
  }
3533
3533
 
3534
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower.sim-canvas-panel--needs-banner-clearance > .sim-timing {
3534
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower.sim-canvas-panel--needs-banner-clearance > .sim-timing {
3535
3535
  bottom: var(--race-overlay-banner-clearance);
3536
3536
  }
3537
3537
 
3538
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower.is-timing-panel-open > .sim-timing {
3538
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower.is-timing-panel-open > .sim-timing {
3539
3539
  transform: translate3d(0, 0, 0);
3540
3540
  opacity: 1;
3541
3541
  pointer-events: auto;
3542
3542
  }
3543
3543
 
3544
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .timing-panel-toggle {
3544
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .timing-panel-toggle {
3545
3545
  display: grid;
3546
3546
  place-items: center;
3547
3547
  }
3548
3548
 
3549
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .camera-controls {
3549
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .camera-controls {
3550
3550
  left: 0.75rem;
3551
3551
  top: 4.45rem;
3552
3552
  max-width: calc(100% - 1.5rem);
3553
3553
  }
3554
3554
 
3555
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .start-lights {
3555
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .start-lights {
3556
3556
  top: 7.2rem;
3557
3557
  left: 50%;
3558
3558
  }
3559
3559
 
3560
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .steward-message {
3560
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .steward-message {
3561
3561
  top: 4.1rem;
3562
3562
  left: 0.75rem;
3563
3563
  right: 0.75rem;
@@ -3573,26 +3573,26 @@
3573
3573
  transform: none;
3574
3574
  }
3575
3575
 
3576
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .steward-message.is-hidden {
3576
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .steward-message.is-hidden {
3577
3577
  transform: translateY(-0.55rem);
3578
3578
  }
3579
3579
 
3580
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .steward-message .steward-message__kicker {
3580
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .steward-message .steward-message__kicker {
3581
3581
  min-width: 4.7rem;
3582
3582
  padding: 0.44rem 0.52rem;
3583
3583
  font-size: 0.92rem;
3584
3584
  }
3585
3585
 
3586
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .steward-message strong {
3586
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .steward-message strong {
3587
3587
  font-size: 0.86rem;
3588
3588
  }
3589
3589
 
3590
- .sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .steward-message span:last-child {
3590
+ :where(.f1-sim-component, .f1-sim-component *).sim-canvas-panel--responsive-narrow.sim-canvas-panel--with-timing-tower > .steward-message span:last-child {
3591
3591
  font-size: 0.66rem;
3592
3592
  }
3593
3593
  }
3594
3594
 
3595
- .race-data-panel--standalone {
3595
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel--standalone {
3596
3596
  position: relative;
3597
3597
  left: auto;
3598
3598
  right: auto;
@@ -3604,29 +3604,29 @@
3604
3604
  min-height: 0;
3605
3605
  }
3606
3606
 
3607
- .race-data-panel--standalone .race-data-copy {
3607
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel--standalone .race-data-copy {
3608
3608
  grid-column: 2;
3609
3609
  grid-row: 1;
3610
3610
  min-width: 0;
3611
3611
  padding: 0.75rem 0.68rem 0.55rem;
3612
3612
  }
3613
3613
 
3614
- .race-data-panel--standalone .race-data-kicker {
3614
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel--standalone .race-data-kicker {
3615
3615
  font-size: 0.54rem;
3616
3616
  letter-spacing: 0.12em;
3617
3617
  }
3618
3618
 
3619
- .race-data-panel--standalone .race-data-copy strong {
3619
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel--standalone .race-data-copy strong {
3620
3620
  font-size: clamp(1.05rem, 3vw, 1.45rem);
3621
3621
  line-height: 0.98;
3622
3622
  }
3623
3623
 
3624
- .race-data-panel--standalone .race-data-subtitle {
3624
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel--standalone .race-data-subtitle {
3625
3625
  font-size: 0.55rem;
3626
3626
  letter-spacing: 0.06em;
3627
3627
  }
3628
3628
 
3629
- .race-data-panel--standalone .race-data-number {
3629
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel--standalone .race-data-number {
3630
3630
  grid-column: 1;
3631
3631
  grid-row: 1;
3632
3632
  min-width: 0;
@@ -3634,7 +3634,7 @@
3634
3634
  font-size: clamp(2.3rem, 5vw, 3.9rem);
3635
3635
  }
3636
3636
 
3637
- .race-data-panel--standalone .race-data-link {
3637
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel--standalone .race-data-link {
3638
3638
  grid-column: 1 / -1;
3639
3639
  grid-row: 2;
3640
3640
  margin: 0;
@@ -3643,16 +3643,16 @@
3643
3643
  font-size: 0.62rem;
3644
3644
  }
3645
3645
 
3646
- .race-data-panel--standalone.race-data-panel--with-telemetry {
3646
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel--standalone.race-data-panel--with-telemetry {
3647
3647
  grid-template-columns: minmax(4.6rem, 0.35fr) minmax(0, 1fr);
3648
3648
  }
3649
3649
 
3650
- .race-data-panel--standalone.race-data-panel--with-telemetry .race-data-copy {
3650
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel--standalone.race-data-panel--with-telemetry .race-data-copy {
3651
3651
  grid-column: 2;
3652
3652
  padding-bottom: 0.35rem;
3653
3653
  }
3654
3654
 
3655
- .race-data-panel--standalone .race-data-telemetry {
3655
+ :where(.f1-sim-component, .f1-sim-component *).race-data-panel--standalone .race-data-telemetry {
3656
3656
  grid-column: 1 / -1;
3657
3657
  grid-row: auto;
3658
3658
  padding: 0 0.68rem 0.65rem;