PGR2 Leaderboard tweaks for Insignia

Fix the leaderboard names; format times correctly; format kudos scores; highlight yourself if logged in; separator for top 10; style tweaks

// ==UserScript==
// @name         PGR2 Leaderboard tweaks for Insignia
// @namespace    https://insignia.live/
// @version      1.7.1
// @description  Fix the leaderboard names; format times correctly; format kudos scores; highlight yourself if logged in; separator for top 10; style tweaks
// @author       Aaron 'EmSixTeen' Gregg
// @match        https://insignia.live/games/4d53004b
// @grant        none
// ==/UserScript==

(function () {
  "use strict";

  const leaderboardNames = {
    "#001": "Xbox Live - Accumulated Kudos",
    "#002": "Xbox Live - Edinburgh - All Tracks Sum Of Best Kudos",
    "#003": "Xbox Live - Moscow - All Tracks Sum Of Best Kudos",
    "#004": "Xbox Live - Barcelona - All Tracks Sum Of Best Kudos",
    "#005": "Xbox Live - Washington DC - All Tracks Sum Of Best Kudos",
    "#006": "Xbox Live - Chicago - All Tracks Sum Of Best Kudos",
    "#007": "Xbox Live - Florence - All Tracks Sum Of Best Kudos",
    "#008": "Xbox Live - Nurburgring - Sum Of Best Kudos",
    "#009": "Xbox Live - Stockholm - All Tracks Sum Of Best Kudos",
    "#010": "Xbox Live - Hong Kong - All Tracks Sum Of Best Kudos",
    "#011": "Xbox Live - Yokohama - All Tracks Sum Of Best Kudos",
    "#012": "Xbox Live - Sydney - All Tracks Sum Of Best Kudos",
    "#013": "Xbox Live - Long Beach - All Tracks Sum Of Best Kudos",
    "#014": "Xbox Live - Paris - All Tracks Sum Of Best Kudos",
    "#015": "Geometry Wars High Score",
    "#016": "All Time Ghost Challenge - Stockholm Style",
    "#017": "All Time Ghost Challenge - Chicago Style",
    //"018": "??",
    //"019": "??",
    //"020": "??",
    //"021": "??",
    "#022": "Weekly Hot Lap Series",
    "#023": "Weekly Hot Lap Series",
    "#024": "Weekly Hot Lap Series",
    "#025": "Weekly Cone Challenge Series",
    "#026": "Weekly Cone Challenge Series",
    "#027": "Weekly Cone Challenge Series",
    "#028": "Weekly Cone Challenge Series",
    "#029": "Monthly Hot Lap",
    "#030": "Monthly Hot Lap",
    "#031": "Monthly Hot Lap",
    "#032": "Monthly Hot Lap",
    "#033": "Monthly Cone Challenge",
    "#034": "Monthly Cone Challenge",
    "#035": "Monthly Cone Challenge",
    "#036": "Monthly Cone Challenge",
    "#037": "All Time Ghost Challenge - Nurburgring Speed",
    "#038": "Kudos World Series - Compact Sport Series - Event 1 (Street Race)",
    "#039": "Kudos World Series - Compact Sport Series - Event 2 (One on One)",
    "#040":
      "Kudos World Series - Compact Sport Series - Event 3 (Cone Challenge)",
    "#041": "Kudos World Series - Compact Sport Series - Event 4 (One on One)",
    "#042": "Kudos World Series - Compact Sport Series - Event 5 (Street Race)",
    "#043":
      "Kudos World Series - Compact Sport Series - Event 6 (Speed Camera)",
    "#044": "Kudos World Series - Compact Sport Series - Event 7 (Street Race)",
    "#045":
      "Kudos World Series - Sports Convertible Series - Event 1 (Overtake)",
    "#046":
      "Kudos World Series - Sports Convertible Series - Event 2 (Street Race)",
    "#047":
      "Kudos World Series - Sports Convertible Series - Event 3 (Street Race)",
    "#048":
      "Kudos World Series - Sports Convertible Series - Event 4 (One on One)",
    "#049":
      "Kudos World Series - Sports Convertible Series - Event 5 (Cone Challenge)",
    "#050":
      "Kudos World Series - Sports Convertible Series - Event 6 (Speed Camera)",
    "#051":
      "Kudos World Series - Sports Convertible Series - Event 7 (Street Race)",
    "#052": "Kudos World Series - Coupe Series - Event 1 (Timed Run)",
    "#053": "Kudos World Series - Coupe Series - Event 2 (Street Race)",
    "#054": "Kudos World Series - Coupe Series - Event 3 (Speed Camera)",
    "#055": "Kudos World Series - Coupe Series - Event 4 (One on One)",
    "#056": "Kudos World Series - Coupe Series - Event 5 (Cone Challenge)",
    "#057": "Kudos World Series - Coupe Series - Event 6 (Overtake)",
    "#058": "Kudos World Series - Coupe Series - Event 7 (Hot Lap)",
    "#059": "Kudos World Series - Coupe Series - Event 8 (Street Race)",
    "#060": "Kudos World Series - Sport Utility Series - Event 1 (Hot Lap)",
    "#061":
      "Kudos World Series - Sport Utility Series - Event 2 (Speed Camera)",
    "#062": "Kudos World Series - Sport Utility Series - Event 3 (Street Race)",
    "#063": "Kudos World Series - Sport Utility Series - Event 4 (One on One)",
    "#064":
      "Kudos World Series - Sport Utility Series - Event 5 (Cone Challenge)",
    "#065": "Kudos World Series - Sport Utility Series - Event 6 (Overtake)",
    "#066": "Kudos World Series - Sport Utility Series - Event 7 (Street Race)",
    "#067": "Kudos World Series - Sport Utility Series - Event 8 (Street Race)",
    "#068":
      "Kudos World Series - Pacific Muscle Series - Event 1 (Street Race)",
    "#069":
      "Kudos World Series - Pacific Muscle Series - Event 2 (Street Race)",
    "#070":
      "Kudos World Series - Pacific Muscle Series - Event 3 (Street Race)",
    "#071":
      "Kudos World Series - Pacific Muscle Series - Event 4 (Cone Challenge)",
    "#072": "Kudos World Series - Pacific Muscle Series - Event 5 (Hot Lap)",
    "#073": "Kudos World Series - Pacific Muscle Series - Event 6 (One on One)",
    "#074":
      "Kudos World Series - Pacific Muscle Series - Event 7 (Street Race)",
    "#075":
      "Kudos World Series - Pacific Muscle Series - Event 8 (Street Race)",
    "#076":
      "Kudos World Series - Pacific Muscle Series - Event 9 (Speed Camera)",
    "#077":
      "Kudos World Series - Pacific Muscle Series - Event 10 (Street Race)",
    "#078": "Kudos World Series - Roadster Series - Event 1 (Timed Run)",
    "#079": "Kudos World Series - Roadster Series - Event 2 (Cone Challenge)",
    "#080": "Kudos World Series - Roadster Series - Event 3 (Street Race)",
    "#081": "Kudos World Series - Roadster Series - Event 4 (Timed Run)",
    "#082": "Kudos World Series - Roadster Series - Event 5 (Overtake)",
    "#083": "Kudos World Series - Roadster Series - Event 6 (Timed Run)",
    "#084": "Kudos World Series - Roadster Series - Event 7 (Cone Challenge)",
    "#085": "Kudos World Series - Roadster Series - Event 8 (One on One)",
    "#086": "Kudos World Series - Roadster Series - Event 9 (Street Race)",
    "#087": "Kudos World Series - Roadster Series - Event 10 (Speed Camera)",
    "#088": "Kudos World Series - Roadster Series - Event 11 (Street Race)",
    "#089": "Kudos World Series - Classics Series - Event 1 (Hot Lap)",
    "#090": "Kudos World Series - Classics Series - Event 2 (Timed Run)",
    "#091": "Kudos World Series - Classics Series - Event 3 (Street Race)",
    "#092": "Kudos World Series - Classics Series - Event 4 (One on One)",
    "#093": "Kudos World Series - Classics Series - Event 5 (Hot Lap)",
    "#094": "Kudos World Series - Classics Series - Event 6 (Cone Challenge)",
    "#095": "Kudos World Series - Classics Series - Event 7 (Overtake)",
    "#096": "Kudos World Series - Classics Series - Event 8 (One on One)",
    "#097": "Kudos World Series - Classics Series - Event 9 (Hot Lap)",
    "#098": "Kudos World Series - Classics Series - Event 10 (Speed Camera)",
    "#099": "Kudos World Series - Classics Series - Event 11 (Street Race)",
    "#100": "Kudos World Series - Sports Coupe Series - Event 1 (Timed Run)",
    "#101": "Kudos World Series - Sports Coupe Series - Event 2 (Overtake)",
    "#102": "Kudos World Series - Sports Coupe Series - Event 3 (Street Race)",
    "#103": "Kudos World Series - Sports Coupe Series - Event 4 (One on One)",
    "#104": "Kudos World Series - Sports Coupe Series - Event 5 (Overtake)",
    "#105": "Kudos World Series - Sports Coupe Series - Event 6 (Street Race)",
    "#106":
      "Kudos World Series - Sports Coupe Series - Event 7 (Cone Challenge)",
    "#107": "Kudos World Series - Sports Coupe Series - Event 8 (Speed Camera)",
    "#108": "Kudos World Series - Sports Coupe Series - Event 9 (One on One)",
    "#109": "Kudos World Series - Sports Coupe Series - Event 10 (Timed Run)",
    "#110": "Kudos World Series - Sports Coupe Series - Event 11 (Street Race)",
    "#111": "Kudos World Series - Sports Coupe Series - Event 12 (Street Race)",
    "#112": "Kudos World Series - Sports Coupe Series - Event 13 (Street Race)",
    "#113":
      "Kudos World Series - American Muscle Series - Event 1 (Street Race)",
    "#114":
      "Kudos World Series - American Muscle Series - Event 2 (Street Race)",
    "#115":
      "Kudos World Series - American Muscle Series - Event 3 (Cone Challenge)",
    "#116": "Kudos World Series - American Muscle Series - Event 4 (Hot Lap)",
    "#117":
      "Kudos World Series - American Muscle Series - Event 5 (One on One)",
    "#118":
      "Kudos World Series - American Muscle Series - Event 6 (Street Race)",
    "#119":
      "Kudos World Series - American Muscle Series - Event 7 (Cone Challenge)",
    "#120":
      "Kudos World Series - American Muscle Series - Event 8 (Street Race)",
    "#121": "Kudos World Series - American Muscle Series - Event 9 (Hot Lap)",
    "#122":
      "Kudos World Series - American Muscle Series - Event 10 (Timed Run)",
    "#123":
      "Kudos World Series - American Muscle Series - Event 11 (Street Race)",
    "#124":
      "Kudos World Series - American Muscle Series - Event 12 (Street Race)",
    "#125":
      "Kudos World Series - American Muscle Series - Event 13 (Speed Camera)",
    "#126":
      "Kudos World Series - American Muscle Series - Event 14 (Street Race)",
    "#127": "Kudos World Series - Super Car Series - Event 1 (Timed Run)",
    "#128": "Kudos World Series - Super Car Series - Event 2 (Overtake)",
    "#129": "Kudos World Series - Super Car Series - Event 3 (One on One)",
    "#130": "Kudos World Series - Super Car Series - Event 4 (Speed Camera)",
    "#131": "Kudos World Series - Super Car Series - Event 5 (Street Race)",
    "#132": "Kudos World Series - Super Car Series - Event 6 (Hot Lap)",
    "#133": "Kudos World Series - Super Car Series - Event 7 (Hot Lap)",
    "#134": "Kudos World Series - Super Car Series - Event 8 (Street Race)",
    "#135": "Kudos World Series - Super Car Series - Event 9 (One on One)",
    "#136": "Kudos World Series - Super Car Series - Event 10 (Hot Lap)",
    "#137": "Kudos World Series - Super Car Series - Event 11 (Overtake)",
    "#138": "Kudos World Series - Super Car Series - Event 12 (Street Race)",
    "#139": "Kudos World Series - Super Car Series - Event 13 (Street Race)",
    "#140": "Kudos World Series - Super Car Series - Event 14 (Street Race)",
    "#141": "Kudos World Series - Grand Touring Series - Event 1 (Timed Run)",
    "#142": "Kudos World Series - Grand Touring Series - Event 2 (Overtake)",
    "#143": "Kudos World Series - Grand Touring Series - Event 3 (Street Race)",
    "#144": "Kudos World Series - Grand Touring Series - Event 4 (One on One)",
    "#145":
      "Kudos World Series - Grand Touring Series - Event 5 (Cone Challenge)",
    "#146": "Kudos World Series - Grand Touring Series - Event 6 (Street Race)",
    "#147": "Kudos World Series - Grand Touring Series - Event 7 (Overtake)",
    "#148": "Kudos World Series - Grand Touring Series - Event 8 (Hot Lap)",
    "#149": "Kudos World Series - Grand Touring Series - Event 9 (Street Race)",
    "#150": "Kudos World Series - Grand Touring Series - Event 10 (One on One)",
    "#151": "Kudos World Series - Grand Touring Series - Event 11 (Overtake)",
    "#152": "Kudos World Series - Grand Touring Series - Event 12 (Hot Lap)",
    "#153": "Kudos World Series - Grand Touring Series - Event 13 (One on One)",
    "#154":
      "Kudos World Series - Grand Touring Series - Event 14 (Speed Camera)",
    "#155":
      "Kudos World Series - Grand Touring Series - Event 15 (Street Race)",
    "#156":
      "Kudos World Series - Grand Touring Series - Event 16 (Street Race)",
    "#157": "Kudos World Series - Track Specials Series - Event 1 (Hot Lap)",
    "#158":
      "Kudos World Series - Track Specials Series - Event 2 (Street Race)",
    "#159": "Kudos World Series - Track Specials Series - Event 3 (Hot Lap)",
    "#160": "Kudos World Series - Track Specials Series - Event 4 (Hot Lap)",
    "#161": "Kudos World Series - Track Specials Series - Event 5 (One on One)",
    "#162":
      "Kudos World Series - Track Specials Series - Event 6 (Street Race)",
    "#163": "Kudos World Series - Track Specials Series - Event 7 (Overtake)",
    "#164": "Kudos World Series - Track Specials Series - Event 8 (Timed Run)",
    "#165": "Kudos World Series - Track Specials Series - Event 9 (Hot Lap)",
    "#166":
      "Kudos World Series - Track Specials Series - Event 10 (One on One)",
    "#167": "Kudos World Series - Track Specials Series - Event 11 (Overtake)",
    "#168": "Kudos World Series - Track Specials Series - Event 12 (Timed Run)",
    "#169": "Kudos World Series - Track Specials Series - Event 13 (Hot Lap)",
    "#170":
      "Kudos World Series - Track Specials Series - Event 14 (Street Race)",
    "#171":
      "Kudos World Series - Track Specials Series - Event 15 (One on One)",
    "#172":
      "Kudos World Series - Track Specials Series - Event 16 (Speed Camera)",
    "#173":
      "Kudos World Series - Track Specials Series - Event 17 (Street Race)",
    "#174": "Kudos World Series - Extreme Series - Event 1 (Timed Run)",
    "#175": "Kudos World Series - Extreme Series - Event 2 (Overtake)",
    "#176": "Kudos World Series - Extreme Series - Event 3 (Street Race)",
    "#177": "Kudos World Series - Extreme Series - Event 4 (One on One)",
    "#178": "Kudos World Series - Extreme Series - Event 5 (One on One)",
    "#179": "Kudos World Series - Extreme Series - Event 6 (One on One)",
    "#180": "Kudos World Series - Extreme Series - Event 7 (Timed Run)",
    "#181": "Kudos World Series - Extreme Series - Event 8 (Cone Challenge)",
    "#182": "Kudos World Series - Extreme Series - Event 9 (Hot Lap)",
    "#183": "Kudos World Series - Extreme Series - Event 10 (Street Race)",
    "#184": "Kudos World Series - Extreme Series - Event 11 (Street Race)",
    "#185": "Kudos World Series - Extreme Series - Event 12 (Street Race)",
    "#186": "Kudos World Series - Extreme Series - Event 13 (Speed Camera)",
    "#187": "Kudos World Series - Extreme Series - Event 14 (One on One)",
    "#188": "Kudos World Series - Extreme Series - Event 15 (Street Race)",
    "#189": "Kudos World Series - Extreme Series - Event 16 (Street Race)",
    "#190": "Kudos World Series - Extreme Series - Event 17 (Street Race)",
    "#191": "Kudos World Series - Ultimate Series - Event 1 (Street Race)",
    "#192": "Kudos World Series - Ultimate Series - Event 2 (Street Race)",
    "#193": "Kudos World Series - Ultimate Series - Event 3 (Street Race)",
    "#194": "Kudos World Series - Ultimate Series - Event 4 (Street Race)",
    "#195": "Kudos World Series - Ultimate Series - Event 5 (Cone Challenge)",
    "#196": "Kudos World Series - Ultimate Series - Event 6 (Street Race)",
    "#197": "Kudos World Series - Ultimate Series - Event 7 (Cone Challenge)",
    "#198": "Kudos World Series - Ultimate Series - Event 8 (Street Race)",
    "#199": "Kudos World Series - Ultimate Series - Event 9 (Street Race)",
    "#200": "Kudos World Series - Ultimate Series - Event 10 (Street Race)",
    "#201": "Kudos World Series - Ultimate Series - Event 11 (Street Race)",
    "#202": "Kudos World Series - Ultimate Series - Event 12 (Cone Challenge)",
    "#203": "Kudos World Series - Ultimate Series - Event 13 (Street Race)",
    "#204": "Kudos World Series - Ultimate Series - Event 14 (Cone Challenge)",
    "#205": "Kudos World Series - Ultimate Series - Event 15 (Street Race)",
    "#206": "Kudos World Series - Ultimate Series - Event 16 (Speed Camera)",
    "#207": "Kudos World Series - Ultimate Series - Event 17 (Street Race)",
    "#208": "Kudos World Series - Ultimate Series - Event 18 (Street Race)",
    "#209": "Kudos World Series - Ultimate Series - Event 19 (Street Race)",
    "#210": "Arcade Racing - Street Race 1",
    "#211": "Arcade Racing - Street Race 2",
    "#212": "Arcade Racing - Street Race 3",
    "#213": "Arcade Racing - Street Race 4",
    "#214": "Arcade Racing - Street Race 5",
    "#215": "Arcade Racing - Street Race 6",
    "#216": "Arcade Racing - Street Race 7",
    "#217": "Arcade Racing - Street Race 8",
    "#218": "Arcade Racing - Street Race 9",
    "#219": "Arcade Racing - Street Race 10",
    "#220": "Arcade Racing - Street Race 11",
    "#221": "Arcade Racing - Street Race 12",
    "#222": "Arcade Racing - Street Race 13",
    "#223": "Arcade Racing - Street Race 14",
    "#224": "Arcade Racing - Street Race 15",
    "#225": "Arcade Racing - Street Race 16",
    "#226": "Arcade Racing - Street Race 17",
    "#227": "Arcade Racing - Street Race 18",
    "#228": "Arcade Racing - Street Race 19",
    "#229": "Arcade Racing - Street Race 20",
    "#230": "Arcade Racing - Timed Run 1",
    "#231": "Arcade Racing - Timed Run 2",
    "#232": "Arcade Racing - Timed Run 3",
    "#233": "Arcade Racing - Timed Run 4",
    "#234": "Arcade Racing - Timed Run 5",
    "#235": "Arcade Racing - Timed Run 6",
    "#236": "Arcade Racing - Timed Run 7",
    "#237": "Arcade Racing - Timed Run 8",
    "#238": "Arcade Racing - Timed Run 9",
    "#239": "Arcade Racing - Timed Run 10",
    "#240": "Arcade Racing - Timed Run 11",
    "#241": "Arcade Racing - Timed Run 12",
    "#242": "Arcade Racing - Timed Run 13",
    "#243": "Arcade Racing - Timed Run 14",
    "#244": "Arcade Racing - Timed Run 15",
    "#245": "Arcade Racing - Timed Run 16",
    "#246": "Arcade Racing - Timed Run 17",
    "#247": "Arcade Racing - Timed Run 18",
    "#248": "Arcade Racing - Timed Run 19",
    "#249": "Arcade Racing - Timed Run 20",
    "#250": "Arcade Racing - Cone Challenge 1",
    "#251": "Arcade Racing - Cone Challenge 2",
    "#252": "Arcade Racing - Cone Challenge 3",
    "#253": "Arcade Racing - Cone Challenge 4",
    "#254": "Arcade Racing - Cone Challenge 5",
    "#255": "Arcade Racing - Cone Challenge 6",
    "#256": "Arcade Racing - Cone Challenge 7",
    "#257": "Arcade Racing - Cone Challenge 8",
    "#258": "Arcade Racing - Cone Challenge 9",
    "#259": "Arcade Racing - Cone Challenge 10",
    "#260": "Arcade Racing - Cone Challenge 11",
    "#261": "Arcade Racing - Cone Challenge 12",
    "#262": "Arcade Racing - Cone Challenge 13",
    "#263": "Arcade Racing - Cone Challenge 14",
    "#264": "Arcade Racing - Cone Challenge 15",
    "#265": "Arcade Racing - Cone Challenge 16",
    "#266": "Arcade Racing - Cone Challenge 17",
    "#267": "Arcade Racing - Cone Challenge 18",
    "#268": "Arcade Racing - Cone Challenge 19",
    "#269": "Arcade Racing - Cone Challenge 20",
    //"270": "??",
    "#271":
      "Time Attack - Circuit Challenge - Washington D.C. - Capitol Thrill",
    "#272": "Time Attack - Circuit Challenge - Washington D.C. - Up and Over",
    "#273":
      "Time Attack - Circuit Challenge - Washington D.C. - Capitol Thrill 2",
    "#274":
      "Time Attack - Circuit Challenge - Washington D.C. - Square Dancin'",
    "#275": "Time Attack - Circuit Challenge - Washington D.C. - Ring Race",
    "#276": "Time Attack - Circuit Challenge - Washington D.C. - The Tour",
    "#277":
      "Time Attack - Circuit Challenge - Washington D.C. - Northside Slide",
    "#278": "Time Attack - Circuit Challenge - Chicago - Chicago River Tour",
    "#279": "Time Attack - Circuit Challenge - Chicago - The Miracle Mile",
    "#280":
      "Time Attack - Circuit Challenge - Chicago - North Wasbash Overpass",
    "#281": "Time Attack - Circuit Challenge - Chicago - River Crossing",
    "#282": "Time Attack - Circuit Challenge - Chicago - In The Loop",
    "#283": "Time Attack - Circuit Challenge - Chicago - Lower Wacker Run",
    "#284": "Time Attack - Circuit Challenge - Chicago - East Kinzie Crossover",
    "#285": "Time Attack - Circuit Challenge - Chicago - Wells & Lake",
    "#286": "Time Attack - Circuit Challenge - Chicago - East On Wacker",
    "#287": "Time Attack - Circuit Challenge - Chicago - West On Wacker",
    "#288": "Time Attack - Circuit Challenge - Edinburgh - Princes Street East",
    "#289": "Time Attack - Circuit Challenge - Edinburgh - Grassmarket East",
    "#290": "Time Attack - Circuit Challenge - Edinburgh - Grassmarket West",
    "#291": "Time Attack - Circuit Challenge - Edinburgh - Lothian Road Eight",
    "#292":
      "Time Attack - Circuit Challenge - Edinburgh - Lothian Road Eight Long",
    "#293": "Time Attack - Circuit Challenge - Edinburgh - Princes Street Loop",
    "#294": "Time Attack - Circuit Challenge - Edinburgh - Grassmarket Eight",
    "#295": "Time Attack - Circuit Challenge - Edinburgh - Princes Street Long",
    "#296": "Time Attack - Circuit Challenge - Edinburgh - Castle Eight",
    "#297": "Time Attack - Circuit Challenge - Edinburgh - Terrace Sprint",
    "#298":
      "Time Attack - Circuit Challenge - Florence - Piazza della Signoria 1",
    "#299": "Time Attack - Circuit Challenge - Florence - Ponte Vecchio",
    "#300":
      "Time Attack - Circuit Challenge - Florence - Piazza della Signoria 2",
    "#301": "Time Attack - Circuit Challenge - Florence - Duomo 1",
    "#302":
      "Time Attack - Circuit Challenge - Florence - Piazza della Repubblica",
    "#303": "Time Attack - Circuit Challenge - Florence - Arno",
    "#304": "Time Attack - Circuit Challenge - Florence - Arno 2",
    "#305": "Time Attack - Circuit Challenge - Florence - Uffizi",
    "#306": "Time Attack - Circuit Challenge - Florence - Battistero 1",
    "#307": "Time Attack - Circuit Challenge - Florence - Battistero 2",
    "#308": "Time Attack - Circuit Challenge - Florence - Duomo 2",
    "#309": "Time Attack - Circuit Challenge - Nurburgring - Nordschleife 1",
    "#310": "Time Attack - Circuit Challenge - Stockholm - Speed Freak",
    "#311": "Time Attack - Circuit Challenge - Stockholm - Island Hop",
    "#312": "Time Attack - Circuit Challenge - Stockholm - Gamla Stan Loop",
    "#313": "Time Attack - Circuit Challenge - Stockholm - Northern",
    "#314": "Time Attack - Circuit Challenge - Stockholm - Bridges",
    "#315":
      "Time Attack - Circuit Challenge - Stockholm - Gamla Island Hopping",
    "#316":
      "Time Attack - Circuit Challenge - Stockholm - Round the Riksdagshuset",
    "#317": "Time Attack - Circuit Challenge - Stockholm - Northern 2",
    "#318": "Time Attack - Circuit Challenge - Stockholm - Gamla Oval",
    "#319": "Time Attack - Circuit Challenge - Stockholm - Northern 3",
    "#320": "Time Attack - Circuit Challenge - Barcelona - Place de Jaume",
    "#321": "Time Attack - Circuit Challenge - Barcelona - Passeig de Colom",
    "#322": "Time Attack - Circuit Challenge - Barcelona - Barri Gotic",
    "#323": "Time Attack - Circuit Challenge - Barcelona - Catedral",
    "#324": "Time Attack - Circuit Challenge - Barcelona - Las Ramblas",
    "#325": "Time Attack - Circuit Challenge - Barcelona - Catalan Challenge",
    "#326": "Time Attack - Circuit Challenge - Moscow - KGB Corner",
    "#327": "Time Attack - Circuit Challenge - Moscow - St Basil's Circle",
    "#328": "Time Attack - Circuit Challenge - Moscow - Kremlin 1",
    "#329": "Time Attack - Circuit Challenge - Moscow - Lenin",
    "#330": "Time Attack - Circuit Challenge - Moscow - Kremlin 2",
    "#331": "Time Attack - Circuit Challenge - Moscow - Red Square 1",
    "#332": "Time Attack - Circuit Challenge - Moscow - Red Square 2",
    "#333": "Time Attack - Circuit Challenge - Hong Kong - Admiralty",
    "#334": "Time Attack - Circuit Challenge - Hong Kong - The Waterfront",
    "#335": "Time Attack - Circuit Challenge - Hong Kong - Wan Chai Run",
    "#336": "Time Attack - Circuit Challenge - Hong Kong - Cotton Tree Drive",
    "#337": "Time Attack - Circuit Challenge - Hong Kong - Harbour Run",
    "#338":
      "Time Attack - Circuit Challenge - Hong Kong - The Convention Centres",
    "#339": "Time Attack - Circuit Challenge - Hong Kong - Hennessey Road",
    "#340": "Time Attack - Circuit Challenge - Hong Kong - Harcourt Challenge",
    "#341": "Time Attack - Circuit Challenge - Yokohama - Yokohama Bay Tour",
    "#342": "Time Attack - Circuit Challenge - Yokohama - Yokohama Challenge",
    "#343": "Time Attack - Circuit Challenge - Yokohama - Kishamichi",
    "#344": "Time Attack - Circuit Challenge - Yokohama - Downtown",
    "#345": "Time Attack - Circuit Challenge - Yokohama - Warehouse Loop",
    "#346": "Time Attack - Circuit Challenge - Yokohama - Seaside Loop",
    "#347": "Time Attack - Circuit Challenge - Yokohama - Honcho dori",
    "#348": "Time Attack - Circuit Challenge - Yokohama - Sakuragicho",
    "#349": "Time Attack - Circuit Challenge - Yokohama - Minato Mirai",
    "#350": "Time Attack - Circuit Challenge - Yokohama - Shinko Park",
    "#351": "Time Attack - Circuit Challenge - Sydney - Argyle Street",
    "#352": "Time Attack - Circuit Challenge - Sydney - Opera House View",
    "#353": "Time Attack - Circuit Challenge - Sydney - Harbour Bridge",
    "#354": "Time Attack - Circuit Challenge - Sydney - Dawes Point Loop",
    "#355": "Time Attack - Circuit Challenge - Sydney - The Wharf",
    "#356": "Time Attack - Circuit Challenge - Sydney - Cumberland Street",
    "#357": "Time Attack - Circuit Challenge - Sydney - Hickson Run",
    "#358": "Time Attack - Circuit Challenge - Sydney - Sydney Harbour",
    "#359": "Time Attack - Circuit Challenge - Sydney - The Rocks Route",
    "#360": "Time Attack - Circuit Challenge - Sydney - George St Challenge",
    "#361": "Time Attack - Circuit Challenge - Sydney - Under the Bridge",
    "#362": "Time Attack - Circuit Challenge - Sydney - Downtown Short",
    "#363": "Time Attack - Car Challenge - Compact Sports - Mini Cooper S",
    "#364": "Time Attack - Car Challenge - Compact Sports - Seat Leon Cupra R",
    "#365": "Time Attack - Car Challenge - Compact Sports - Ford Focus RS",
    "#366":
      "Time Attack - Car Challenge - Compact Sports - Honda Civic Type-R (J)",
    "#367": "Time Attack - Car Challenge - Compact Sports - Renault Clio V6",
    "#368": "Time Attack - Car Challenge - Compact Sports - VW R32",
    "#369": "Time Attack - Car Challenge - Compact Sports - VW New Beetle RSI",
    "#370":
      "Time Attack - Car Challenge - Compact Sports - Lancia Delta Integrale Evo",
    "#371":
      "Time Attack - Car Challenge - Sports Convertible - Toyota MR2 Spyder",
    "#372":
      "Time Attack - Car Challenge - Sports Convertible - Mazda Miata MX-5",
    "#373":
      "Time Attack - Car Challenge - Sports Convertible - Porsche Boxster S",
    "#374": "Time Attack - Car Challenge - Sports Convertible - Honda S2000",
    "#375": "Time Attack - Car Challenge - Sports Convertible - BMW Z4 3.0i",
    "#376":
      "Time Attack - Car Challenge - Sports Convertible - Audi TT Roadster",
    "#377": "Time Attack - Car Challenge - Coupe - Audi TT Coupe",
    "#378": "Time Attack - Car Challenge - Coupe - Honda Integra Type-R (J)",
    "#379": "Time Attack - Car Challenge - Coupe - Mazda RX-8",
    "#380": "Time Attack - Car Challenge - Coupe - Nissan 350Z",
    "#381": "Time Attack - Car Challenge - Coupe - Audi S4",
    "#382": "Time Attack - Car Challenge - Coupe - BMW M3",
    "#383": "Time Attack - Car Challenge - Coupe - Audi TT 3.2 Quattro",
    "#384": "Time Attack - Car Challenge - Sport Utility - Volvo XC90",
    "#385": "Time Attack - Car Challenge - Sport Utility - Mercedes ML55 AMG",
    "#386":
      "Time Attack - Car Challenge - Sport Utility - Porsche Cayenne Turbo",
    "#387": "Time Attack - Car Challenge - Sport Utility - Chevrolet SSR",
    "#388": "Time Attack - Car Challenge - Sport Utility - BMW X5 4.6is",
    "#389": "Time Attack - Car Challenge - Sport Utility - Ford SVT Lightning",
    "#390": "Time Attack - Car Challenge - Sports Coupe - Audi RS6",
    "#391":
      "Time Attack - Car Challenge - Grand Touring - Bentley Continental GT",
    "#392": "Time Attack - Car Challenge - Pacific Muscle - Mazda RX-7",
    "#393":
      "Time Attack - Car Challenge - Pacific Muscle - Toyota Supra Twin-Turbo",
    "#394":
      "Time Attack - Car Challenge - Pacific Muscle - Mitsubishi 3000 GT VR4",
    "#395":
      "Time Attack - Car Challenge - Pacific Muscle - Mitsubishi Lancer Evolution VII",
    "#396":
      "Time Attack - Car Challenge - Pacific Muscle - Subaru Impreza WRX STi",
    "#397":
      "Time Attack - Car Challenge - Pacific Muscle - Nissan Skyline GT-R (R34) Nur",
    "#398": "Time Attack - Car Challenge - Roadster - Vauxhall VX220",
    "#399": "Time Attack - Car Challenge - Roadster - Lotus Elise",
    "#400": "Time Attack - Car Challenge - Sports Coupe - TVR Tamora",
    "#401": "Time Attack - Car Challenge - Roadster - Lotus 340R",
    "#402": "Time Attack - Car Challenge - Roadster - Caterham 7 Classic",
    "#403": "Time Attack - Car Challenge - Roadster - Renault Spider",
    "#404": "Time Attack - Car Challenge - Classics - Porsche 550 Spyder",
    "#405": "Time Attack - Car Challenge - Classics - Jaguar E-Type",
    "#406": "Time Attack - Car Challenge - Classics - Nissan 240Z",
    "#407": "Time Attack - Car Challenge - Classics - Mercedes 300SL Gullwing",
    "#408": "Time Attack - Car Challenge - Classics - Porsche 911 RS 2.7",
    "#409": "Time Attack - Car Challenge - Classics - Ferrari 275 GTB",
    "#410": "Time Attack - Car Challenge - Roadster - AC 427 MKIII",
    "#411": "Time Attack - Car Challenge - Classics - Ferrari Dino 246 GT",
    "#412": "Time Attack - Car Challenge - Classics - Lancia Stratos",
    "#413": "Time Attack - Car Challenge - Classics - Toyota 2000GT",
    "#414": "Time Attack - Car Challenge - Sports Coupe - Lexus SC 430",
    "#415": "Time Attack - Car Challenge - Sports Coupe - Jaguar XKR",
    "#416": "Time Attack - Car Challenge - Sports Coupe - Cadillac XLR",
    "#417": "Time Attack - Car Challenge - Sports Coupe - Morgan Aero 8",
    "#418":
      "Time Attack - Car Challenge - Sports Coupe - Porsche 911 Carrera Coupe (996)",
    "#419": "Time Attack - Car Challenge - Sports Coupe - Iceni",
    "#420":
      "Time Attack - Car Challenge - American Muscle - Chevrolet Camaro SS",
    "#421":
      "Time Attack - Car Challenge - American Muscle - Corvette Sting Ray",
    "#422":
      "Time Attack - Car Challenge - American Muscle - Ford Mustang Fastback 2+2",
    "#423":
      "Time Attack - Car Challenge - American Muscle - Ford SVT Mustang Cobra",
    "#424": "Time Attack - Car Challenge - Super Car - Chevrolet Corvette Z06",
    "#425": "Time Attack - Car Challenge - American Muscle - Pontiac GTO",
    "#426":
      "Time Attack - Car Challenge - American Muscle - Chevrolet Camaro Z28",
    "#427": "Time Attack - Car Challenge - American Muscle - Pontiac Trans Am",
    "#428": "Time Attack - Car Challenge - Super Car - Dodge Viper GTS",
    "#429": "Time Attack - Car Challenge - Super Car - Ferrari 360 Modena",
    "#430": "Time Attack - Car Challenge - Super Car - Porsche 911 Turbo (996)",
    "#431": "Time Attack - Car Challenge - Track Specials - Dodge Viper SRT-10",
    "#432": "Time Attack - Car Challenge - Super Car - Ferrari 360 Spider",
    "#433": "Time Attack - Car Challenge - Super Car - TVR Tuscan Speed 6",
    "#434": "Time Attack - Car Challenge - Grand Touring - Lotus Esprit V8",
    "#435": "Time Attack - Car Challenge - Super Car - Ferrari 355 F1",
    "#436":
      "Time Attack - Car Challenge - Grand Touring - Ferrari 550 Barchetta",
    "#437": "Time Attack - Car Challenge - Grand Touring - Mercedes SL55 AMG",
    "#438":
      "Time Attack - Car Challenge - Grand Touring - Ferrari 575M Maranello",
    "#439":
      "Time Attack - Car Challenge - Grand Touring - Aston Martin Vanquish",
    "#440": "Time Attack - Car Challenge - Grand Touring - Ferrari Testarossa",
    "#441": "Time Attack - Car Challenge - Extreme - Ascari KZ1",
    "#442":
      "Time Attack - Car Challenge - Track Specials - Honda NSX Type-R (J)",
    "#443": "Time Attack - Car Challenge - Track Specials - Lotus Exige",
    "#444": "Time Attack - Car Challenge - Track Specials - Noble M12 GTO3",
    "#445":
      "Time Attack - Car Challenge - Track Specials - Porsche 911 GT3 (996)",
    "#446":
      "Time Attack - Car Challenge - Track Specials - Ferrari Challenge Stradale",
    "#447":
      "Time Attack - Car Challenge - Track Specials - Vauxhall VX220 Turbo",
    "#448": "Time Attack - Car Challenge - Extreme - Ferrari F50",
    "#449": "Time Attack - Car Challenge - Extreme - Porsche 911 GT2 (993)",
    "#450": "Time Attack - Car Challenge - Extreme - Ford GT40",
    "#451": "Time Attack - Car Challenge - Extreme - Ferrari F40",
    "#452": "Time Attack - Car Challenge - Extreme - Porsche 959",
    "#453": "Time Attack - Car Challenge - Extreme - Jaguar XJ220",
    "#454": "Time Attack - Car Challenge - Ultimate - Saleen S7",
    "#455": "Time Attack - Car Challenge - Ultimate - Porsche Carrera GT",
    "#456": "Time Attack - Car Challenge - Ultimate - Koenigsegg CC V8S",
    "#457": "Time Attack - Car Challenge - Ultimate - Enzo Ferrari",
    "#458": "Time Attack - Car Challenge - Ultimate - Pagani Zonda S",
    "#459": "Time Attack - Car Challenge - Ultimate - Ford GT",
    "#460": "Time Attack - Car Challenge - Super Car - Delfino Feroce",
    "#461": "Time Attack - Car Challenge - Classics - Ferrari 250 GTO",
    "#462": "Time Attack - Car Challenge - Ultimate - Mercedes CLK-GTR",
    "#463": "Time Attack - Car Challenge - Ultimate - Porsche 911 GT1",
    "#464": "Time Attack - Car Challenge - Ultimate - TVR Cebera Speed 12",
    //"465": "??",
    //"466": "??",
    //"467": "??",
    "#468": "All Time Ghost Challenge - Barcelona Speed",
    "#469": "All Time Ghost Challenge - Florence Speed",
    "#470": "All Time Ghost Challenge - Hong Kong Speed",
    //"471": "??",
    //"472": "??",
    "#473": "Weekly Hot Lap Series",
    "#474": "Time Attack - Car Challenge - Paris Booster Pack - BMW M3 CSL",
    "#475": "Time Attack - Car Challenge - Long Beach Booster Pack - VW Nardo",
    "#476":
      "Time Attack - Car Challenge - Paris Booster Pack - Chevrolet Corvette C6",
    "#477":
      "Time Attack - Car Challenge - Long Beach Booster Pack - Subaru Impreza 22B STi",
    "#478": "Time Attack - Car Challenge - Paris Booster Pack - Ferrari 250TR",
    "#479":
      "Time Attack - Car Challenge - Paris Booster Pack - Porsche 356A Carrera Speedster",
    "#480":
      "Time Attack - Car Challenge - Paris Booster Pack - Ferrari 365 GTS4",
    "#481": "Time Attack - Car Challenge - Paris Booster Pack - BMW 645Ci",
    "#482":
      "Time Attack - Car Challenge - Paris Booster Pack - Ferrari 288 GTO",
    "#483":
      "Time Attack - Car Challenge - Long Beach Booster Pack - Ariel Atom 2",
    "#484":
      "Time Attack - Car Challenge - Long Beach Booster Pack - Dodge Ram SRT-10",
    "#485":
      "Time Attack - Car Challenge - Long Beach Booster Pack - Dodge Challenger R/T Hemi",
    //"486": "??",
    "#487":
      "Time Attack - Car Challenge - Long Beach Booster Pack - Ferrari 612 Scaglietti",
    //"488": "??",
    "#489":
      "Time Attack - Car Challenge - Long Beach Booster Pack - Porsche 911 GT2 Clubsport",
    "#490":
      "Time Attack - Circuit Challenge - Long Beach - Long Beach Challenge",
    "#491": "Time Attack - Circuit Challenge - Long Beach - Rainbow Lagoon",
    "#492": "Time Attack - Circuit Challenge - Long Beach - Coastal Run",
    "#493": "Time Attack - Circuit Challenge - Long Beach - Dolphin Loop",
    "#494":
      "Time Attack - Circuit Challenge - Long Beach - LBC (Long Beach City)",
    "#495": "Time Attack - Circuit Challenge - Long Beach - Aquarium",
    "#496": "Time Attack - Circuit Challenge - Long Beach - CC Circular",
    "#497": "Time Attack - Circuit Challenge - Long Beach - Ocean Boulevard",
    //"498": "??",
    //"499": "??",
    //"500": "??",
    "#501":
      "Time Attack - Car Challenge - Long Beach Booster Pack - Radical SR3 Turbo",
    "#502": "Time Attack - Circuit Challenge - Paris - Le Circuit Complet",
    "#503": "Time Attack - Circuit Challenge - Paris - Les Deux Ponts",
    "#504": "Time Attack - Circuit Challenge - Paris - Elysees Challenge",
    "#505": "Time Attack - Circuit Challenge - Paris - Les Monuments Celebres",
    "#506": "Time Attack - Circuit Challenge - Paris - L'Arc de Triomphe",
    "#507": "Time Attack - Circuit Challenge - Paris - Avenue D'lena",
    "#508": "Time Attack - Circuit Challenge - Paris - Circuit Interieur",
    "#509":
      "Time Attack - Car Challenge - Paris Booster Pack - TVR Cerbera Speed 12",
  };

  // constants
  const MAX_INT = 2147483647;
  const VALID_RANGE_MIN = MAX_INT - 3600000; // assume max time difference is 1 hour
  const VALID_RANGE_MAX = MAX_INT; // scores should be less than MAX_INT
  const excludedLeaderboards = ["15", "289"];

  // decode the leaderboard score (convert to minutes, seconds, milliseconds)
  function decodeLeaderboardTime(score) {
    const leaderboardScore = MAX_INT - score;
    const totalSeconds = Math.floor(leaderboardScore / 1000); // total s
    const milliseconds = leaderboardScore % 1000; // ms

    const minutes = Math.floor(totalSeconds / 60); // min
    const seconds = totalSeconds % 60; // remaining s

    // Format the time in MM:SS.MMM format
    const formattedTime =
      (minutes > 0 ? `${padZero(minutes)}:` : "") +
      `${padZero(seconds)}.${padZero(milliseconds, 3)}`;

    return formattedTime;
  }

  // pad numbers with leading zeros
  function padZero(num, length = 2) {
    return num.toString().padStart(length, "0");
  }

  // check if the score is valid and in the expected range
  function isValidLeaderboardScore(score) {
    return (
      !isNaN(score) && score >= VALID_RANGE_MIN && score <= VALID_RANGE_MAX
    );
  }

  // update select option texts
  function updateSelectTextsToCorrectNames() {
    const selectElement = document.querySelector("#leaderboard-select");

    if (selectElement) {
      const options = selectElement.querySelectorAll("option");

      // loop through the options and update the visible text
      options.forEach((option, index) => {
        // retrieve the correct key from leaderboardNames by checking its order
        const leaderboardKey = getLeaderboardKey(index);

        if (leaderboardKey && leaderboardNames[leaderboardKey]) {
          // prepend leaderboard key (001, 002, etc.) to option text
          option.textContent = `${leaderboardKey} - ${leaderboardNames[leaderboardKey]}`;
        }
      });
    }
  }

  // get the correct leaderboard key based on the option index
  function getLeaderboardKey(optionIndex) {
    const keys = Object.keys(leaderboardNames); // get the keys of leaderboardNames

    // if the optionIndex corresponds to a valid key in the leaderboardNames object
    // assumes keys are mapped in the same order as the options
    if (optionIndex < keys.length) {
      return keys[optionIndex]; // return the key for the current option
    }

    return null;
  }

  // highlight yourself if you're logged in
  function highlightUserCells() {
    // get the username from user profile dropdown
    const usernameElement = document.querySelector("#navbarDropdown");
    const username = usernameElement
      ? usernameElement.textContent.trim()
      : null;

    if (username) {
      // check the username cells
      const cells = document.querySelectorAll(
        ".container[wire\\:id] tbody tr td:nth-of-type(2)"
      );

      cells.forEach((cell) => {
        if (cell.textContent.trim() === username) {
          cell.classList.add("is-me");
        }
      });
    }
  }

  // process all rows in the table
  function processTable() {
    // get selected option value from dropdown
    const selectElement = document.querySelector("#leaderboard-select");
    const selectedValue = selectElement ? selectElement.value : null;

    // find the time/score cells
    const elements = document.querySelectorAll(
      ".container[wire\\:id] .table.table-striped td.text-right"
    );

    elements.forEach((el) => {
      // let us know the table's been formatted
      el.classList.add("is-formatted");

      // skip processing specific calles
      if (excludedLeaderboards.includes(selectedValue)) {
        console.log("Skipping processing for this leaderboard.");
        return; // move to next cell
      }

      // parse the text content as a number
      const score = parseInt(el.textContent.trim(), 10);

      // check if score is valid and in expected range
      if (isValidLeaderboardScore(score)) {
        // is valid, so convert the score
        const convertedTime = decodeLeaderboardTime(score);

        // update element with converted time, add 'is-time-trial' class
        el.textContent = convertedTime;
        el.classList.add("is-time-trial");
        el.classList.remove("is-kudos"); // ensure no kudos class is present
      } else {
        // is not valid, so format the number and add "kudos" to the string
        const formattedScore = isNaN(score)
          ? el.textContent.trim()
          : score.toLocaleString();
        el.textContent = `${formattedScore} kudos`;

        // add 'is-kudos' class
        el.classList.add("is-kudos");
        el.classList.remove("is-time-trial"); // ensure no time-trial class is present
      }
    });
  }

  // monitor the dropdown change and detect table updates
  function monitorDropdownAndTable() {
    const dropdown = document.getElementById("leaderboard-select");

    // listen for change events on the dropdown to detect when a new table is selected
    if (dropdown) {
      dropdown.addEventListener("change", () => {
        // wait for table to be updated
        const interval = setInterval(() => {
          const table = document.querySelector(".table.table-striped");
          if (table) {
            // once table is present, stop the interval and process it
            clearInterval(interval);
            processTable();
            updateSelectTextsToCorrectNames();

            highlightUserCells();
          }
        }, 500); // check every 500ms
      });
    }
  }

  // inject custom styles for the new classes
  function injectStyles() {
    const style = document.createElement("style");
    style.innerHTML = `
      :root {
        --gold: radial-gradient(
            ellipse farthest-corner at right bottom,
            #ffeba8 0%,
            #e5c787 8%,
            #f2d792 30%,
            #d2b360 40%,
            transparent 80%
          ),
          radial-gradient(
            ellipse farthest-corner at left top,
            #ffffff 0%,
            #ffffac 8%,
            #f2d792 25%,
            #5d4a1f 62.5%,
            #5d4a1f 100%
          );
        --silver: radial-gradient(
            ellipse farthest-corner at right bottom,
            #404040 0%,
            #848484 8%,
            #ededed 30%,
            #e2e2e2 40%,
            transparent 80%
          ),
          radial-gradient(
            ellipse farthest-corner at left top,
            #898989 0%,
            #e2e2e2 8%,
            #fdfdfd 25%,
            #a4a4a4 62.5%,
            #a8a8a8 100%
          );
        --bronze: radial-gradient(
            ellipse farthest-corner at right bottom,
            #eabaad 0%,
            #dea99e 8%,
            #d88f7a 30%,
            #b07366 60%,
            transparent 80%
          ),
          radial-gradient(
            ellipse farthest-corner at left top,
            #fff1ee 0%,
            #eabaad 8%,
            #d88f7a 25%,
            #7e3b2a 62.5%,
            #df946d 100%
          );
        --border-color: #6c757d;
      }
      .is-time-trial {
      }
      .is-kudos {
      }
      .is-formatted {
        font-family: monospace, monospace;
      }
      tr:has(.is-me) {
        outline: 3px solid red;
        outline-offset: -3px;
      }

      .container[wire\\:id] table {
        border-collapse: collapse;
      }
      .container[wire\\:id] tbody tr:nth-of-type(1) {
        border-top: 3px solid var(--border-color);
        background: var(--gold);
      }

      .container[wire\\:id] tbody tr:nth-of-type(2) {
        border-top: 3px solid var(--border-color);
        background: var(--silver);
      }

      .container[wire\\:id] tbody tr:nth-of-type(3) {
        border-top: 3px solid var(--border-color);
        background: var(--bronze);
      }

      .container[wire\\:id] tbody tr:nth-of-type(1),
      .container[wire\\:id] tbody tr:nth-of-type(2),
      .container[wire\\:id] tbody tr:nth-of-type(3) {
        color: #000;
        text-shadow: 0 0 1.5em #fff;
      }

      .container[wire\\:id] tbody tr:nth-of-type(1) td:nth-of-type(2),
      .container[wire\\:id] tbody tr:nth-of-type(2) td:nth-of-type(2),
      .container[wire\\:id] tbody tr:nth-of-type(3) td:nth-of-type(2) {
        font-weight: bold;
        letter-spacing: .05ch;
      }

      .container[wire\\:id] tr:nth-of-type(11) {
        border-top: 6px solid var(--border-color);
      }

              `;
    document.head.appendChild(style);
  }

  // initial call to monitor dropdown and table changes
  monitorDropdownAndTable();

  // also process the table initially if it's already loaded
  processTable();

  // inject the new class' styles
  injectStyles();

  // fix the leaderboard names
  updateSelectTextsToCorrectNames();

  // highlight your gamertag
  highlightUserCells();
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址