rorar / SuperETKA Elsa Translator + Scrollbar fix

// ==UserScript==
// @name         SuperETKA Elsa Translator + Scrollbar fix
// @namespace    https://superetka.com/
// @version      1.2
// @description  Translated UI (DE/EN), fixes a lot of drunken RU/IT translation.
// @author       ChatGPT
// @match        https://superetka.com/elsa/*
// @grant        none
// @license      MIT
// ==/UserScript==

(function () {
  "use strict";

  /* ------------------------------------------------
   * 0. Layout‑Fix
   * ---------------------------------------------- */
  document.documentElement.style.overflow = "visible";
  document.body.style.overflow = "visible";

  /* ------------------------------------------------
   * 1. Settings (localStorage)
   * ---------------------------------------------- */
  const LANG_KEY = "superetka_elsa_lang";        // "de" | "en"
  const ENABLE_KEY = "superetka_elsa_enable";    // "1" | "0"

  const lang = localStorage.getItem(LANG_KEY) || "de";
  const enabled = localStorage.getItem(ENABLE_KEY) !== "0"; // default = true

  /* ------------------------------------------------
   * 2. Übersetzungstabelle
   * ---------------------------------------------- */
  const T = {
    /* ---------- Main Screen ---------- */
    "Привет мой друг!": {
      de: "Hallo mein Freund!",
      en: "Hello my friend!"
    },
    "Все данные тут БЕСПЛАТНЫЕ!": {
      de: "Alle Daten hier sind KOSTENLOS!",
      en: "All data here is FREE!"
    },
    "Для получения доступа к пробивке VIN перейдите по  ": {
      de: "Um Zugriff auf die VIN-Abfrage zu erhalten, gehen Sie zu ",
      en: "To get access to VIN lookup, go to "
    },
    "ссылке": {
      de: "dem Link",
      en: "the link"
    },

    /* ---------- Toolbar / Buttons ---------- */
    "Schema elettrico": { de: "Stromlaufplan", en: "Wiring diagram" },
    "Manuale di riparazione": { de: "Reparaturanleitung", en: "Repair manual" },
    "Кузовной ремонт": { de: "Karosseriereparatur", en: "Body repair" },
    "Инспекционный сервис и уход": {
      de: "Inspektionsservice & Pflege",
      en: "Inspection & maintenance",
    },
    "Оффлайн-справочник по технике сервиса(HST)": {
      de: "Offline‑Servicehandbuch (HST)",
      en: "Offline service handbook (HST)",
    },
    "Нормы времени(APOS)": { de: "Arbeitszeiten (APOS)", en: "Time norms (APOS)" },
    "Каталог запчастей(ETKA)": {
      de: "Teilekatalog (ETKA)",
      en: "Parts catalog (ETKA)",
    },
    "Дополнительные инструменты": { de: "Zusatzwerkzeuge", en: "Additional tools" },

    /* ---------- Header ---------- */
    "Электронная справочная система по сервису": {
      de: "Elektronisches Service‑Nachschlagesystem",
      en: "Electronic service reference system",
    },

    /* ---------- Link‑Titles ---------- */
    Teilekatalog: { de: "Teilekatalog", en: "Parts catalog" },

    /* ---------- LK‑Bereich ---------- */
    "My account": { de: "Mein Konto", en: "My account" },
    "My vins": { de: "Meine VINs", en: "My VINs" },
    "Аккаунт:": { de: "Konto:", en: "Account:" },
    "Подписка не активна.": { de: "Abo nicht aktiv.", en: "Subscription inactive." },
    "Активировать?": { de: "Aktivieren?", en: "Activate?" },
    "Выйти из аккаунта": { de: "Abmelden", en: "Logout" },

    /* ---------- AI‑LeftTree ---------- */
    "Сначала введите VIN": {
      de: "Bitte zuerst die VIN eingeben",
      en: "Enter VIN first",
    },
    Protocols: { de: "Protokolle", en: "Protocols" },
    History: { de: "Historie", en: "History" },
    "Заправочные объемы": { de: "Füllmengen", en: "Fluid capacities" },

    /* ---------- Modals ---------- */
    "Идентификация автомобиля": {
      de: "Fahrzeug‑Identifikation",
      en: "Vehicle identification",
    },
    "Выберите модуль": { de: "Modul wählen", en: "Choose module" },
    "Cerca in base al contenuto dei documenti": {
      de: "Dokumente inhaltlich durchsuchen",
      en: "Search by document content",
    },
    "История": { de: "Verlauf", en: "History" },
    "Очистится после перезагрузки страницы": {
      de: "Wird nach Neuladen der Seite gelöscht",
      en: "Clears after page reload",
    },
    "PDF service": {
      de: "PDF‑Service",
      en: "PDF service"
    },
    "Расшифровка VIN/ Протоколы диагностики / История обслуживания": {
      de: "VIN‑Entschlüsselung / Diagnoseprotokolle / Serviceverlauf",
      en: "VIN decoding / Diagnostic protocols / Service history"
    },

    /* ---------- Modal Zusatzwerkzeuge ---------- */
    "База данных прошивок": {
      de: "Firmware‑Datenbank",
      en: "ECU firmware database",
    },
    "База данных VIN (бесплатно)": {
      de: "VIN‑Datenbank (kostenlos)",
      en: "VIN database (free)",
    },
    "TPI database": { de: "TPI‑Datenbank", en: "TPI database" },

    /* ---------- Eingabelabels ---------- */
    "Marca": { de: "Marke", en: "Make" },
    "Nome": { de: "Name", en: "Name" },
    "Modello": { de: "Modell", en: "Model" },
    "Anno modello": { de: "Modelljahr", en: "Model year" },
    "numero": { de: "Nummer", en: "Number" },
    "motore": { de: "Motor", en: "Engine" },
    "Checkpoint": { de: "Prüfpunkt", en: "Checkpoint" },
    "Visualizzazione": { de: "Ansicht", en: "View" },
    "Numero VIN": { de: "VIN‑Nummer", en: "VIN number" },

    /* ---------- Buttons ---------- */
    Find: { de: "Suchen", en: "Find" },
    OK: { de: "OK", en: "OK" },
    "Сброс": { de: "Zurücksetzen", en: "Reset" },

    /* ---------- Tabs ---------- */
    "Инструкции по поддержанию в исправном состоянии": {
      de: "Wartungsanleitungen",
      en: "Maintenance instructions",
    },
    "Инструкции по ремонту": {
      de: "Reparaturanleitungen",
      en: "Repair instructions",
    },
    SSP: { de: "SSP", en: "SSP" },
    "Сводка TPI": { de: "TPI‑Zusammenfassung", en: "TPI summary" },
    "Текстовая информация": { de: "Textinformationen", en: "Text information" },
    "Для данного авто": { de: "Für dieses Fahrzeug", en: "For this vehicle" },

    /* ---------- Footer Hinweis ---------- */
    "Все данные взяты с сайта superetka.com/elsa и они полностью бесплатны": {
      de: "Alle Daten stammen von superetka.com/elsa und sind völlig kostenlos",
      en: "All data taken from superetka.com/elsa and completely free",
    },

    /* ---------- States & Meldungen ---------- */
    "Для данного VIN отсутствуют протоколы": {
      de: "Für diese VIN liegen keine Protokolle vor",
      en: "No protocols for this VIN",
    },
    "Сервис доступен только по платной подписке": {
      de: "Dienst nur mit kostenpflichtigem Abo verfügbar",
      en: "Service available by paid subscription only",
    },
    "Это бесплатная опция. Если Вас в ней что-то не устраивает - возврата средств не будет.": {
      de: "Dies ist eine kostenlose Option. Es gibt keine Rückerstattung, wenn sie Ihnen nicht gefällt.",
      en: "This is a free option. No refund if you dislike it.",
    },
    "Закрыто на техническое обслуживание": {
      de: "Wartungsarbeiten – geschlossen",
      en: "Closed for maintenance",
    },
    "Показать авто до 2000 года (NecrophileMode)": {
      de: "Fahrzeuge vor 2000 anzeigen (Necrophile‑Modus)",
      en: "Show cars before 2000 (Necrophile Mode)",
    },

    /* ---------- Neue KI‑Texte ---------- */
    "Авто из РФ до мая 2023": {
      de: "Fahrzeuge aus RU bis Mai 2023",
      en: "Cars from RU until May 2023",
    },
    "Вины из Китая и из США не работают.": {
      de: "VINs aus China und den USA funktionieren nicht.",
      en: "VINs from China and USA do not work.",
    },
    "Есть Audi,VW,Skoda": {
      de: "Vorhanden: Audi, VW, Skoda",
      en: "Available: Audi, VW, Skoda",
    },
    "Нет Seat, Bentley, Lamborghini": {
      de: "Kein Seat, Bentley, Lamborghini",
      en: "No Seat, Bentley, Lamborghini",
    },
    "Если в данный момент все обработчики заняты, вин обработается позже.": {
      de: "Wenn gerade alle Worker beschäftigt sind, wird die VIN später verarbeitet.",
      en: "If all processors are busy, the VIN will be processed later.",
    },
    "Поддерживаются только относительно свежие авто.": {
      de: "Unterstützt werden nur relativ moderne Fahrzeuge.",
      en: "Only relatively recent cars are supported.",
    },
    "Привет. Это экспериментальный функционал. По некоторым опциям могут быть дубли, не нужно мне писать об этом. Если нет нужной информации, об этом тоже не нужно писать. Особенно ночью =)": {
      de: "Hallo. Dies ist eine experimentelle Funktion. Manche Optionen können doppelt erscheinen – bitte nicht deswegen schreiben. Fehlt eine Info, auch nicht schreiben. Vor allem nicht nachts =)",
      en: "Hi. This is experimental. Some options may duplicate; no need to write me. If info is missing, don't write either. Especially not at night =)",
    },
    "Масло моторное: Долить (после доливки, при необходимости долить до отметки макс.), стандартное": {
      de: "Motoröl: Auffüllen (nach dem Auffüllen ggf. bis Max‑Marke), Standard",
      en: "Engine oil: top up (after topping up, if necessary to max mark), standard",
    },
    "Объем:": { de: "Menge (Liter):", en: "Volume (liters):" },
    "Допуск:": { de: "Freigabe:", en: "Spec:" },
    "На данный момент информация доступна только для Audi и VW до 2017 года. Не нужно мне писать с этим вопросом.": {
      de: "Zurzeit sind Informationen nur für Audi und VW bis 2017 verfügbar. Bitte schreiben Sie mir dazu keine Nachrichten.",
      en: "At the moment, information is available only for Audi and VW up to 2017. Please do not message me about this."
    },
/* ---------- Car Infos ---------- */
    // ==== Grunddaten ==== //
    "Bargain. designation": { de: "Ausstattungsbezeichnung", en: "Bargain designation" },
    "Engine code": { de: "Motorkennbuchstabe", en: "Engine code" },
    "At KP": { de: "Getriebe", en: "At KP" },
    "date of manufacture": { de: "Herstellungsdatum", en: "Date of manufacture" },
    "Allestimento": { de: "Ausstattung", en: "Trim" },
    "Roof color": { de: "Dachfarbe", en: "Roof color" },
    "Exterior Paint / Paint Number": { de: "Außenlackierung / Farbnummer", en: "Exterior paint / paint number" },

    // ==== PR-Beschreibungen ====
    "Barra stabilizzatrice anteriore": { de: "Stabilisator vorne", en: "Front stabilizer bar" },
    "Barra stabilizzatrice posteriore": { de: "Stabilisator hinten", en: "Rear stabilizer bar" },
    "Versione CO2": { de: "CO2-Version", en: "CO2 version" },
    "Differenziazione di montaggio componenti vettura": { de: "Montageunterschiede Fahrzeugkomponenten", en: "Assembly differentiation vehicle components" },
    "Sistemi di alimentazione del carburante": { de: "Kraftstoffversorgungssysteme", en: "Fuel supply systems" },
    "Differenziazione ciclo di fabbricazione": { de: "Fertigungszyklus-Differenzierung", en: "Manufacturing cycle differentiation" },
    "Etichetta adesiva (specifica cliente senza prom.)": { de: "Aufkleber (Kundenspezifisch, ohne Promotion)", en: "Adhesive label (customer specific, no promotion)" },
    "Serie di scritte": { de: "Beschriftungsserie", en: "Series of inscriptions" },
    "terminale di scarico": { de: "Auspuffendrohr", en: "Exhaust tailpipe" },
    "Blocchetto di accensione/sistema di bloccaggio/bloccaggio elettrico del piantone dello sterzo": { de: "Zündschloss/Lenksäulenverriegelung", en: "Ignition lock/steering column locking" },
    "zerbini": { de: "Fußmatten", en: "Floor mats" },
    "Istruzioni per l'uso": { de: "Betriebsanleitung", en: "Owner's manual" },
    "Zone climatiche": { de: "Klimazonen", en: "Climatic zones" },
    "Categoria di peso asse posteriore": { de: "Hinterachs-Gewichtsklasse", en: "Rear axle weight category" },
    "Sistemi frenanti": { de: "Bremssysteme", en: "Brake systems" },
    "Differenziazione categorie di vetture gruppi propulsori/componenti piattaforma": { de: "Fahrzeugkategorie-Differenzierung (Antrieb/Plattform)", en: "Vehicle category differentiation (drive/platform components)" },
    "Dispositivo di traino": { de: "Anhängerkupplung", en: "Trailer hitch" },
    "Filtro ai carboni attivi/filtro antiparticolato benzina": { de: "Aktivkohlefilter/Benzinpartikelfilter", en: "Activated carbon filter/gasoline particulate filter" },
    "Targhette di identificazione": { de: "Identifikationsschild", en: "Identification label" },
    "Ruota di scorta/kit per forature": { de: "Reserverad/Pannenset", en: "Spare wheel/tire repair kit" },
    "Ammortizzatori telaio posteriori": { de: "Hintere Stoßdämpfer", en: "Rear shock absorbers" },
    "Versione freni posteriori": { de: "Hintere Bremsversion", en: "Rear brake version" },
    "Sterzo": { de: "Lenkung", en: "Steering" },
    "Copriruote": { de: "Radabdeckung", en: "Wheel covers" },
    "Bulloni ruota con chiusura": { de: "Radschrauben mit Sicherung", en: "Wheel bolts with lock" },
    "Contrappesi per volanti": { de: "Lenkradausgleichsgewichte", en: "Steering wheel counterweights" },
    "Attrezzi di bordo e cric": { de: "Bordwerkzeug und Wagenheber", en: "Onboard tools and jack" },
    "Protezione inferiore del gruppo motore": { de: "Unterfahrschutz Motor", en: "Engine underbody protection" },
    "Cassetta di pronto soccorso/triangolo di emergenza": { de: "Erste-Hilfe-Kasten/Warndreieck", en: "First aid kit/emergency triangle" },
    "Parti applicate per motore (supporto propulsore)": { de: "Motoranbauteile (Motorträger)", en: "Engine attachments (engine support)" },
    "Frigobox": { de: "Kühlfach", en: "Cool box" },
    "Modalità di trazione": { de: "Antriebsart", en: "Drive mode" },
    "Quantitä di rifornimento carburante": { de: "Kraftstoffbefüllmenge", en: "Fuel refilling quantity" },
    "Versione freni anteriori": { de: "Vordere Bremsversion", en: "Front brake version" },
    "Equipaggiamento per il trasporto": { de: "Transportausstattung", en: "Transport equipment" },
    "Interventi insonorizzanti esterni": { de: "Außengeräuschdämmung", en: "External sound insulation" },
    "Volanti": { de: "Lenkräder", en: "Steering wheels" },
    "Impiego per (tipo di) carburante senza piombo": { de: "Verwendung für bleifreies Kraftstoff", en: "Use for unleaded fuel" },
    "Paraurti": { de: "Stoßfänger", en: "Bumper" },
    "Etichette/targhette speciali": { de: "Spezialetiketten/-schilder", en: "Special labels/plates" },
    "Trattamento serbatoio carburante": { de: "Kraftstofftankbehandlung", en: "Fuel tank treatment" },
    "Heavy-duty/sports version": { de: "Verstärkte/Sportversion", en: "Heavy-duty/sports version" },
    "Aspirazione dell'aria esterna per l'abitacolo (con filtro antiparticolato)": { de: "Außenluftansaugung Innenraum (mit Staubfilter)", en: "Outside air intake for cabin (with particulate filter)" },
    "Serratura coperchio/ sportello del serbatoio": { de: "Tankdeckel-/Tankklappenschloss", en: "Fuel cap/door lock" },
    "Sistema di fissagio supplementare per i seggiolini dei bambini": { de: "Zusätzliche Kindersitzbefestigung", en: "Supplementary child seat restraint system" },
    "Parete divisoria": { de: "Trennwand", en: "Partition wall" },
    "Console centrale": { de: "Mittelkonsole", en: "Center console" },
    "Apertura nel tetto/capote": { de: "Dachöffnung/Cabrioverdeck", en: "Roof opening/convertible top" },
    "Ancoraggio anteriore per seggiolini per bambini": { de: "Vorderer Kindersitzanker", en: "Front child seat anchor" },
    "Fondo vano di carico posteriore": { de: "Boden Kofferraum hinten", en: "Rear luggage compartment floor" },
    "Appoggiatesta": { de: "Kopfstützen", en: "Headrests" },
    "Regolazione sedile": { de: "Sitzeinstellung", en: "Seat adjustment" },
    "Rivestimento porte e pannelli laterali": { de: "Türverkleidung/Seitenverkleidung", en: "Door and side panel trim" },
    "Sportelli/scomparti nel bagagliaio": { de: "Fächer/Abteile im Kofferraum", en: "Compartments in the trunk" },
    "Sedili posteriori": { de: "Rücksitzbank", en: "Rear seats" },
    "Poggiatesta posteriori": { de: "Kopfstützen hinten", en: "Rear headrests" },
    "Sistemi di ritenuta anteriori": { de: "Vordere Rückhaltesysteme", en: "Front restraint systems" },
    "Porte posteriori/portellone": { de: "Hintertüren/Heckklappe", en: "Rear doors/tailgate" },
    "Mancorrenti/portacarichi sul tetto": { de: "Dachreling/Dachträger", en: "Roof rails/roof racks" },
    "Copertura vano bagagli": { de: "Gepäckraumabdeckung", en: "Luggage compartment cover" },
    "Misure di insonorizzazione rumorosità interna": { de: "Maßnahmen zur Geräuschdämmung innen", en: "Interior noise insulation measures" },
    "Dispositivo di carico passante/sacca portasci": { de: "Durchladevorrichtung/Skisack", en: "Pass-through loading device/ski bag" },
    "Avvolgibile parasole lunotto post./cristalli lat.": { de: "Rollo Sonnenblende Heckscheibe/Seitenscheiben", en: "Rear window/lateral glass sunshade roller" },
    "Cinture di sicurezza posteriori laterali": { de: "Hintere äußere Sicherheitsgurte", en: "Rear outer seat belts" },
    "riscaldamento del sedile": { de: "Sitzheizung", en: "Seat heating" },
    "Listello paracolpi laterale": { de: "Seiten-Schutzleiste", en: "Side protective strip" },
    "Ventilazione sedile/funzione massaggio": { de: "Sitzbelüftung/Massagefunktion", en: "Seat ventilation/massage function" },
    "Meccanismo della serratura portellone/cofano posteriore": { de: "Heckklappenschließmechanismus", en: "Tailgate/boot lock mechanism" },
    "Parabrezza": { de: "Windschutzscheibe", en: "Windshield" },
    "Serratura porta e sportelli": { de: "Tür-/Klappenschloss", en: "Door and lid lock" },
    "Cristalli laterali e posteriori": { de: "Seitenscheiben und Heckscheibe", en: "Side and rear windows" },
    "Specchietto retrovisore interno di sicurezza": { de: "Innenspiegel mit Sicherheitsfunktion", en: "Interior safety rearview mirror" },
    "Elementi di comando (volanti/piantoni sterzo)": { de: "Bedienelemente (Lenkrad/Lenksäule)", en: "Control elements (steering wheels/columns)" },
    "Portabevande": { de: "Getränkehalter", en: "Cup holder" },
    "Braccioli per sedili anteriori": { de: "Vordere Armlehnen", en: "Front seat armrests" },
    "Airbag": { de: "Airbag", en: "Airbag" },
    "Regolazione sedile passeggero anteriore dalla parte posteriore dell'abitacolo": { de: "Beifahrersitzverstellung vom Fond", en: "Front passenger seat adjustment from rear" },
    "Airbag laterale": { de: "Seitenairbag", en: "Side airbag" },
    "Vani portaoggetti laterali e nelle porte posteriori": { de: "Seitliche/Hecktür-Staufächer", en: "Side/rear door storage compartments" },
    "Cassetto portaoggetti": { de: "Handschuhfach", en: "Glove compartment" },
    "Modanature": { de: "Zierleisten", en: "Mouldings" },
    "Rivestimento vano bagagli": { de: "Kofferraumauskleidung", en: "Luggage compartment trim" },
    "Frequenza portante per telecomando": { de: "Trägerfrequenz für Fernbedienung", en: "Carrier frequency for remote control" },
    "Spoiler posteriore": { de: "Heckspoiler", en: "Rear spoiler" },
    "Trattam.protett. vernice/protezione trasporto": { de: "Lackschutz/Transport-Schutz", en: "Paint/transport protection" },
    "Spoiler anteriore": { de: "Frontspoiler", en: "Front spoiler" },
    "Inserti": { de: "Dekoreinlagen", en: "Decorative inserts" },
    "Specchietto retrovisore esterno destro": { de: "Rechter Außenspiegel", en: "Right exterior mirror" },
    "Specchietto retrovisore esterno sinistro": { de: "Linker Außenspiegel", en: "Left exterior mirror" },
    "alette parasole": { de: "Sonnenblenden", en: "Sun visors" },
    "Estintore": { de: "Feuerlöscher", en: "Fire extinguisher" },
    "Poggiabraccia centrale": { de: "Zentrale Armlehne", en: "Center armrest" },
    "Coperture supplementari laterali della carrozzeria": { de: "Zusätzliche seitliche Karosserieabdeckungen", en: "Additional side body covers" },
    "Componenti con superficie particolare": { de: "Komponenten mit besonderer Oberfläche", en: "Components with special surface" },
    "Griglia del radiatore": { de: "Kühlergrill", en: "Radiator grille" },
    "Impianto aria esterna/diffusore": { de: "Außenluftanlage/Diffusor", en: "External air system/diffuser" },
    "Corda elastica ragno 8 ganci/rete/tasca fermacarico": { de: "Spannseil mit 8 Haken/Ladetasche/Netz", en: "Elastic cord with 8 hooks/load net/pocket" },
    "paraspruzzi": { de: "Schmutzfänger", en: "Mud flaps" },
    "Impugnatura leva freno a mano": { de: "Handbremshebelgriff", en: "Handbrake lever grip" },
    "Pomello/impugnatura della leva cambio": { de: "Schalthebelknauf/-griff", en: "Gear lever knob/handle" },
    "Rivestimento/manicotto della leva cambio": { de: "Schalthebelverkleidung/-manschette", en: "Gear lever boot/cover" },
    "Rivestimento del fondo vano bagagli": { de: "Kofferraum-Bodenverkleidung", en: "Trunk floor covering" },
    "Luce interna nel vano piedi": { de: "Fußraumbeleuchtung", en: "Footwell lighting" },
    "Regolazione specchietto retrovisore esterno": { de: "Außenspiegelverstellung", en: "External mirror adjustment" },
    "Dispositivo di segnalazione/limitazione di velocitä": { de: "Geschwindigkeitswarn-/begrenzungssystem", en: "Speed warning/limiting device" },
    "Cambia CD/lettore CD": { de: "CD-Wechsler/CD-Player", en: "CD changer/CD player" },
    "Sistema antifurto": { de: "Diebstahlsicherung", en: "Anti-theft system" },
    "Presa": { de: "Steckdose", en: "Socket" },
    "Impianto accumulatore calore/riscaldamento suppl.": { de: "Wärmespeicher-/Zusatzheizungssystem", en: "Heat accumulator/auxiliary heating system" },
    "Controllo pressione pneumatici": { de: "Reifendruckkontrolle", en: "Tire pressure monitoring" },
    "Sistema Stop-Start/dispositivo di recupero": { de: "Start-Stopp-System/Energierückgewinnung", en: "Stop-start system/regeneration device" },
    "Listelli sottoporta": { de: "Schwellerleisten", en: "Sill trims" },
    "Norma sui gas di scarico": { de: "Abgasnorm", en: "Exhaust emission standard" },
    "Ripiano portaoggetti": { de: "Ablagefach", en: "Storage shelf" },
    "Supporti lombari negli schienali": { de: "Lendenstützen in den Sitzlehnen", en: "Lumbar supports in seatbacks" },
    "Classe di gruppi piattaforme": { de: "Plattformgruppenklasse", en: "Platform group class" },
    "CD Rom/DVD/scheda SD": { de: "CD-ROM/DVD/SD-Karte", en: "CD-ROM/DVD/SD card" },
    "Luci laterali": { de: "Seitenleuchten", en: "Side lights" },
    "Dispositivo di navigazione": { de: "Navigationsgerät", en: "Navigation device" },
    "Sistema di ausilio al parcheggio": { de: "Einparkhilfe", en: "Parking assistance system" },
    "Assistente di cambio corsia/assistente di mantenimento corsia": { de: "Spurwechsel-/Spurhalteassistent", en: "Lane change/lane keeping assistant" },
    "Radio": { de: "Radio", en: "Radio" },
    "Fari principali": { de: "Hauptscheinwerfer", en: "Main headlights" },
    "Seconda batteria/montaggio batteria": { de: "Zweitbatterie/Batterieeinbau", en: "Second battery/battery mounting" },
    "Alternatori": { de: "Lichtmaschinen", en: "Alternators" },
    "Circuito luce di marcia": { de: "Fahrlichtschaltung", en: "Driving light circuit" },
    "Impianto tergilavalunotto": { de: "Heckwisch-/Waschanlage", en: "Rear wiper/washer system" },
    "Funzionamento intermittente tergicristalli/sensore luci e pioggia": { de: "Intervallscheibenwischer/Licht-/Regensensor", en: "Intermittent wipers/light and rain sensor" },
    "Regolazione della profonditä dei fari": { de: "Scheinwerferhöhenverstellung", en: "Headlight range adjustment" },
    "Chiave per sistema di chiusura": { de: "Schlüssel für Schließsystem", en: "Key for locking system" },
    "Installazione altoparlanti": { de: "Lautsprecherinstallation", en: "Speaker installation" },
    "Luci SBBR": { de: "SBBR-Leuchten", en: "SBBR lights" },
    "Regolatore di velocitä": { de: "Geschwindigkeitsregler", en: "Speed regulator" },
    "Fendinebbia posteriori": { de: "Hecknebelscheinwerfer", en: "Rear fog lights" },
    "accendisigari": { de: "Zigarettenanzünder", en: "Cigarette lighter" },
    "Indicatore di livello liquido di lavaggio": { de: "Waschwasserstandsanzeige", en: "Washer fluid level indicator" },
    "Fendinebbia/fari supplementari": { de: "Nebelscheinwerfer/Zusatzscheinwerfer", en: "Fog lights/auxiliary lights" },
    "Lavafari": { de: "Scheinwerferreinigungsanlage", en: "Headlight washer system" },
    "Avvisatori acustici": { de: "Signalhörner", en: "Acoustic warning devices" },
    "Raffreddamento motore": { de: "Motorkühlung", en: "Engine cooling" },
    "Antenne": { de: "Antennen", en: "Antennas" },
    "Impianto di riscaldamento e climatizzazione": { de: "Heizungs- und Klimaanlage", en: "Heating and air conditioning system" },
    "Illuminazione vano bagagli": { de: "Kofferraumbeleuchtung", en: "Luggage compartment lighting" },
    "Luce interna cabina": { de: "Innenraumbeleuchtung", en: "Cabin interior lighting" },
    "Indicatore per errori di funzionamento": { de: "Betriebsfehleranzeige", en: "Fault indicator" },
    "Versione fumatori/non fumatori": { de: "Raucher-/Nichtraucherversion", en: "Smoker/non-smoker version" },
    "riscaldamento autonomo": { de: "Standheizung", en: "Auxiliary heater" },
    "Controllo cintura di sicurezza": { de: "Sicherheitsgurtkontrolle", en: "Seat belt control" },
    "Indicatore multifunzioni/computer di bordo": { de: "Multifunktionsanzeige/Bordcomputer", en: "Multifunction display/on-board computer" },
    "Ugelli lavavetro riscaldabili": { de: "Beheizte Waschwasserdüsen", en: "Heated washer jets" },
    "Spie supplementari": { de: "Zusatzleuchten", en: "Additional warning lights" },
    "Indicatore di usura delle pastiglie dei freni": { de: "Bremsbelagverschleißanzeige", en: "Brake pad wear indicator" },
    "Multimedia, collegamento per videoregistratore/DVD/notebook": { de: "Multimedia-Anschluss für Videorekorder/DVD/Notebook", en: "Multimedia connection for VCR/DVD/notebook" },
    "Indicatore temperatura esterna": { de: "Außentemperaturanzeige", en: "Outside temperature indicator" },
    "Tensione di esercizio": { de: "Betriebsspannung", en: "Operating voltage" },
    "Telefono/sistema telematico": { de: "Telefon/Telematiksystem", en: "Telephone/telematic system" },
    "Livelli di equipaggiamento": { de: "Ausstattungsniveaus", en: "Equipment levels" },
    "Paesi con omologazione del tipo/paesi con requisiti speciali": { de: "Länder mit Typgenehmigung/Sonderanforderungen", en: "Countries with type approval/special requirements" },
    "Kit di componenti secondo le norme nazionali di costruzione": { de: "Teilesatz nach nationalen Bauvorschriften", en: "Component kit according to national building regulations" },
    "Supplementi al certificato di idoneitä tecnica generale": { de: "Zusatz zur Allgemeinen Betriebserlaubnis", en: "Addendum to general technical certificate" },
    "Ruote": { de: "Räder", en: "Wheels" },
    "Specifiche del motore": { de: "Motorspezifikationen", en: "Engine specifications" },
    "Versioni promozionali": { de: "Sonderaktionen-Versionen", en: "Promotional versions" },
    "Estensione garanzia": { de: "Garantieverlängerung", en: "Warranty extension" },
    "Ricognitore di stanchezza": { de: "Müdigkeitserkennung", en: "Fatigue detection" },
    "Specifiche vettura": { de: "Fahrzeugspezifikationen", en: "Vehicle specifications" },
    "Verniciatura": { de: "Lackierung", en: "Paintwork" },
    "Ammortizzatori telaio anteriori": { de: "Vordere Stoßdämpfer", en: "Front shock absorbers" },
    "Specifiche del cambio": { de: "Getriebespezifikationen", en: "Transmission specifications" },
    "Spray per riparazione pneumatici": { de: "Reifensprühdosen", en: "Tire repair spray" },
    "Pneumatici 215/45 R16 86V": { de: "Reifen 215/45 R16 86V", en: "Tires 215/45 R16 86V" },
    "Batterie": { de: "Batterien", en: "Batteries" },
    "Forme di carrozzerie": { de: "Karosserieformen", en: "Body shapes" },
    "Sistemi con videocamera/sensori ambientali": { de: "Kamerasysteme/Umgebungssensoren", en: "Camera/environmental sensor systems" },
    "Categoria di peso asse anteriore": { de: "Vorderachs-Gewichtsklasse", en: "Front axle weight category" },
    "Disposizione sterzo": { de: "Lenkanordnung", en: "Steering arrangement" },
    "Rivestimento sedili": { de: "Sitzbezüge", en: "Seat upholstery" },
    "Adattatore (per dispositivo di traino)": { de: "Adapter (für Anhängerkupplung)", en: "Adapter (for trailer hitch)" },
    "Supporto base": { de: "Grundträger", en: "Base support" },
    "Sedili anteriori": { de: "Vordersitze", en: "Front seats" },
    "Pacchetto Portaoggetti": { de: "Ablagepaket", en: "Storage package" },
    "Prolungamento intervallo di manutenzione": { de: "Wartungsintervallverlängerung", en: "Extended service interval" },
    "Indicatore delle scadenze di manutenzione": { de: "Wartungsterminanzeige", en: "Maintenance deadline indicator" },
    "Pacchetto Cromo": { de: "Chrompaket", en: "Chrome package" },
    "Cassetti sotto i sedili anteriori": { de: "Fächer unter den Vordersitzen", en: "Drawers under front seats" },
    "Ricezione tv/ricezione radio digitale": { de: "TV-/Digitalradioempfang", en: "TV/radio digital reception" },
    "Codice di controllo (nessuna famiglia PR)": { de: "Kontrollcode (keine PR-Familie)", en: "Control code (no PR family)" },
    "Motore base": { de: "Basismotor", en: "Base engine" },
    "Inserti strumenti": { de: "Instrumenteneinsätze", en: "Instrument inserts" },
    "Interfaccia elettrica per uso esterno": { de: "Elektrische Schnittstelle für externe Nutzung", en: "Electrical interface for external use" },
    "Ausilio per la partenza in salita": { de: "Berganfahrhilfe", en: "Hill-start assist" },
    "Pedaliera": { de: "Pedalerie", en: "Pedal assembly" },
    "Protezione dei pedoni": { de: "Fußgängerschutz", en: "Pedestrian protection" }
  };

  /* ------------------------------------------------
   * 3. Übersetzungs‑Engine (nur wenn enabled)
   * ---------------------------------------------- */
  const keysByLength = Object.keys(T).sort((a, b) => b.length - a.length);

  function translateTextNode(node) {
    const txt = node.nodeValue;
    if (!txt || !txt.trim()) return;

    const exact = txt.trim();
    if (T[exact]) {
      node.nodeValue = txt.replace(exact, T[exact][lang]);
      return;
    }
    for (const k of keysByLength) {
      // Trimmed Pattern for Robustness
      const pattern = new RegExp(k.trim().replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), "g");
      node.nodeValue = node.nodeValue.replace(pattern, T[k][lang]);
    }
  }

  function translateAttributes(el) {
    ["title", "placeholder", "aria-label"].forEach((attr) => {
      const v = el.getAttribute(attr);
      if (v && T[v]) el.setAttribute(attr, T[v][lang]);
    });
  }

  function translate(root = document) {
    root.querySelectorAll("[title],[placeholder],[aria-label]").forEach(translateAttributes);
    const walker = document.createTreeWalker(root.body || root, NodeFilter.SHOW_TEXT, null);
    let n;
    while ((n = walker.nextNode())) translateTextNode(n);
  }

  if (enabled) {
    translate();
    new MutationObserver((ml) => {
      ml.forEach((m) => m.addedNodes.forEach((n) => n.nodeType === 1 && translate(n)));
    }).observe(document.body, { childList: true, subtree: true });
  }

  /* ------------------------------------------------
   * 4. Control‑Panel (Sprache + Ein/Aus)
   * ---------------------------------------------- */
  const panel = document.createElement("div");
  panel.style.cssText =
    "position:fixed;bottom:14px;right:14px;z-index:999999;font:12px/1 sans-serif;" +
    "background:#fff;border:1px solid #888;border-radius:4px;padding:4px 6px;box-shadow:0 0 4px rgba(0,0,0,.3);";

  panel.innerHTML = `
    <button data-cmd="de" ${lang === "de" && enabled ? "disabled" : ""}>DE</button>
    <button data-cmd="en" ${lang === "en" && enabled ? "disabled" : ""}>EN</button>
    <button data-cmd="off" ${!enabled ? "disabled" : ""}>OFF</button>`;

  panel.addEventListener("click", (e) => {
    if (e.target.tagName !== "BUTTON") return;
    const cmd = e.target.getAttribute("data-cmd");
    if (cmd === "off") {
      localStorage.setItem(ENABLE_KEY, "0");
    } else {
      localStorage.setItem(ENABLE_KEY, "1");
      localStorage.setItem(LANG_KEY, cmd);
    }
    location.reload();
  });

  document.body.appendChild(panel);
})();