{"id":2215,"date":"2026-10-03T16:57:01","date_gmt":"2026-10-03T14:57:01","guid":{"rendered":"https:\/\/stafforex.eu\/?page_id=2215"},"modified":"2026-10-03T16:57:01","modified_gmt":"2026-10-03T14:57:01","slug":"nyelvi-asszisztens","status":"publish","type":"page","link":"https:\/\/stafforex.eu\/de\/nyelvi-asszisztens\/","title":{"rendered":"Sprachassistent"},"content":{"rendered":"    <div class=\"staffix-aiaj-oldal sfx-boot\" id=\"staffix-aiaj-root\">\n        <div class=\"staffix-aiaj-fejresz\" style=\"display:none;\">\n            <span class=\"staffix-aiaj-badge\">NEU \u00b7 TESTPHASE<\/span>\n            <h1 class=\"staffix-aiaj-cim\">Dorka \u2013 dein STAFFOREX-Sprachassistent<\/h1>\n            <p class=\"staffix-aiaj-alcim\">Lerne Deutsch f\u00fcr deine Position und das Leben im Ausland: der Assistent bringt dir wichtige W\u00f6rter und S\u00e4tze bei, spricht sie vor, korrigiert deine S\u00e4tze und erkl\u00e4rt auf Ungarisch. Im Rollenspiel spielst du echte Situationen durch (z. B. Vorstellungsgespr\u00e4ch, erster Arbeitstag, Arzt). Im Reiter \u00dcbersetzung \u00fcbersetzt er zur Orientierung, was du sagen m\u00f6chtest, und ins Ungarische, was du h\u00f6rst. F\u00fcr Vertr\u00e4ge, Beh\u00f6rden- oder medizinische Angelegenheiten nutze bitte einen offiziellen Dolmetscher.<\/p>\n                        <p class=\"staffix-aiaj-teszt-jelzes\"><strong>In Test- und Entwicklungsphase:<\/strong> der Assistent ist noch nicht stabil, es k\u00f6nnen Fehler oder ungenaue Antworten auftreten. Dein Feedback hilft bei der Weiterentwicklung.<\/p>\n        <\/div>\n\n                <div class=\"sfx-w sfx-welcome\" id=\"sfx-welcome\">\n            <img loading=\"lazy\" decoding=\"async\" class=\"sfx-dorka-nagy\" src=\"https:\/\/stafforex.eu\/wp-content\/plugins\/staffix-core\/assets\/dorka-v3-fo.jpg\" alt=\"Dorka\" width=\"120\" height=\"120\">\n            <span class=\"sfx-badge\">NEU \u00b7 TESTPHASE<\/span>\n            <h1 style=\"color:#fff !important;-webkit-text-fill-color:#fff !important;background:none !important;\">Lerne Deutsch mit Dorka<\/h1>\n            <p class=\"sfx-lead\">Auch ohne Vorkenntnisse. Kurze S\u00e4tze, ungarische Erkl\u00e4rung, Sprachausgabe und Rollenspiele, genau das, was du im Hotel, im Restaurant und im Alltag im Ausland brauchst.<\/p>\n            <ul class=\"sfx-feat\">\n                <li>Einstufungstest: du erf\u00e4hrst, wo du startest<\/li>\n                <li>Auf deinen Beruf zugeschnitten: Sp\u00fcler\/in, K\u00fcche, Zimmerm\u00e4dchen, Reinigung, Service<\/li>\n                <li>20 Rollenspiele: Vorstellungsgespr\u00e4ch, erster Arbeitstag, Laden, Amt, Arzt und mehr<\/li>\n                <li>Eigener Avatar, Dorkas Stil, Sprachausgabe, Dolmetscher<\/li>\n            <\/ul>\n            <div role=\"button\" tabindex=\"0\" class=\"sfx-big\" id=\"sfx-start\">Los geht\u2019s &rarr;<\/div>\n            <p class=\"sfx-fine\">Kostenlos ausprobieren, auch ohne Registrierung.<\/p>\n            <p class=\"sfx-fine sfx-note\">In der Testphase: Der Assistent ist noch nicht stabil, Fehler sind m\u00f6glich. Dein Feedback hilft. \u00dcbersetzungen dienen nur zur Orientierung, f\u00fcr Vertr\u00e4ge, Beh\u00f6rden- oder medizinische Angelegenheiten nutze bitte einen offiziellen Dolmetscher.<\/p>\n        <\/div>\n\n        <div class=\"sfx-w sfx-wiz\" id=\"sfx-wiz\" style=\"display:none;\">\n            <div class=\"sfx-dots\" id=\"sfx-dots\"><\/div>\n\n            <div class=\"sfx-step\" data-step=\"1\">\n                <div class=\"sfx-dorka-sor\">\n                    <img loading=\"lazy\" decoding=\"async\" class=\"sfx-dorka-kicsi\" src=\"https:\/\/stafforex.eu\/wp-content\/plugins\/staffix-core\/assets\/dorka-v3-fo.jpg\" alt=\"Dorka\" width=\"72\" height=\"72\">\n                    <div>\n                        <h2>Wo stehst du in Deutsch?<\/h2>\n                        <p class=\"sfx-sub\">Wenn du noch kein Wort kannst, ist das v\u00f6llig in Ordnung.<\/p>\n                    <\/div>\n                <\/div>\n                <div id=\"sfx-szint-valasztas\">\n                    <div role=\"button\" tabindex=\"0\" class=\"sfx-card sfx-card-main\" id=\"sfx-start-test\">\n                        <b>Einstufungstest (1 Min.)<\/b>\n                        <span>10 kurze Fragen zum Antippen. Er zeigt dir, wo du startest. Empfohlen.<\/span>\n                    <\/div>\n                    <p class=\"sfx-vagy\">Oder w\u00e4hle selbst:<\/p>\n                    <div class=\"sfx-levels\" id=\"sfx-levels\"><\/div>\n                <\/div>\n                \n                <div class=\"szint-teszt\" id=\"staffix-aiaj-teszt\" style=\"display:none;\"><\/div>\n            <\/div>\n\n            <div class=\"sfx-step\" data-step=\"2\" style=\"display:none;\">\n                <h2>Du und Dorka<\/h2>\n                <p class=\"sfx-sub\">Gestalte dein Aussehen und w\u00e4hle, mit wem du im Rollenspiel sprichst.<\/p>\n                <div class=\"sfx-prev\" id=\"sfx-prev\"><\/div>\n                <div class=\"szint-szerkeszto\" id=\"staffix-aiaj-avatar-szerk\"><\/div>\n                <div class=\"sfx-nav\"><div role=\"button\" tabindex=\"0\" class=\"sfx-back\" data-wiz=\"1\">Zur\u00fcck<\/div><div role=\"button\" tabindex=\"0\" class=\"sfx-big sfx-next\" data-wiz=\"3\">Weiter &rarr;<\/div><\/div>\n            <\/div>\n\n            <div class=\"sfx-step\" data-step=\"3\" style=\"display:none;\">\n                <h2>Was m\u00f6chtest du jetzt?<\/h2>\n                <p class=\"sfx-sub\">Auf welche Arbeit bereitest du dich vor? (optional)<\/p>\n                <div class=\"sfx-chips\" id=\"sfx-poz-chips\"><\/div>\n                <div class=\"sfx-modes\">\n                    <div role=\"button\" tabindex=\"0\" class=\"sfx-card\" data-startmod=\"gyakorlas\"><i class=\"sfx-ic\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4 4h16a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H9l-5 4v-4H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2Z\"\/><\/svg><\/i><div><b>\u00dcben<\/b><span>W\u00f6rter und S\u00e4tze lernen, mit Korrektur und Vorlesen.<\/span><\/div><\/div>\n                    <div role=\"button\" tabindex=\"0\" class=\"sfx-card\" data-startmod=\"szerepjatek\"><i class=\"sfx-ic\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"8\" cy=\"8\" r=\"3.2\"\/><circle cx=\"16.5\" cy=\"9.5\" r=\"2.6\"\/><path d=\"M2 20c0-3.6 2.7-6 6-6s6 2.4 6 6v1H2v-1Zm13 1v-1c0-1.7-.5-3-1.4-4.1.9-.6 1.8-.9 2.9-.9 2.7 0 4.5 1.9 4.5 4.6V21H15Z\"\/><\/svg><\/i><div><b>Rollenspiel<\/b><span>Echte Situationen durchspielen: Gespr\u00e4ch, erster Tag, Laden, Amt, Arzt.<\/span><\/div><\/div>\n                    <div role=\"button\" tabindex=\"0\" class=\"sfx-card\" data-startmod=\"tolmacsolas\"><i class=\"sfx-ic\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm6.9 9h-3a15.7 15.7 0 0 0-1.3-5.6A8 8 0 0 1 18.9 11ZM12 4c.8 1 1.7 3.2 2 7H10c.3-3.8 1.2-6 2-7ZM9.4 5.4A15.7 15.7 0 0 0 8.1 11h-3a8 8 0 0 1 4.3-5.6ZM5.1 13h3a15.7 15.7 0 0 0 1.3 5.6A8 8 0 0 1 5.1 13ZM12 20c-.8-1-1.7-3.2-2-7h4c-.3 3.8-1.2 6-2 7Zm2.6-1.4a15.7 15.7 0 0 0 1.3-5.6h3a8 8 0 0 1-4.3 5.6Z\"\/><\/svg><\/i><div><b>Dolmetschen<\/b><span>Von Ungarisch ins Deutsche und zur\u00fcck, auch per Sprache.<\/span><\/div><\/div>\n                <\/div>\n                <div class=\"sfx-nav\"><div role=\"button\" tabindex=\"0\" class=\"sfx-back\" data-wiz=\"2\">Zur\u00fcck<\/div><\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"sfx-app\" id=\"sfx-app\" style=\"display:none;\">\n        <div class=\"sfx-bar\">\n            <div class=\"szint-avatar sfx-bar-av\" id=\"staffix-aiaj-me-av\"><\/div>\n            <div class=\"sfx-bar-t\"><div>Niveau: <strong id=\"staffix-aiaj-szint-cimke\"><\/strong><\/div><div role=\"button\" tabindex=\"0\" class=\"sfx-bar-poz\" id=\"sfx-bar-poz\"><\/div><\/div>\n            <div role=\"button\" tabindex=\"0\" class=\"sfx-bar-btn\" id=\"sfx-reopen\">Niveau und Avatar<\/div>\n        <\/div>\n\n        <div class=\"staffix-aiaj-modvalto\" role=\"tablist\">\n            <div role=\"button\" tabindex=\"0\" class=\"staffix-aiaj-mod-btn is-active\" data-mod=\"gyakorlas\">\ud83d\udde3\ufe0f Training<\/div>\n            <div role=\"button\" tabindex=\"0\" class=\"staffix-aiaj-mod-btn\" data-mod=\"szerepjatek\">Rollenspiel<\/div>\n            <div role=\"button\" tabindex=\"0\" class=\"staffix-aiaj-mod-btn\" data-mod=\"tolmacsolas\">\ud83c\udf10 \u00dcbersetzung \u2b50 Premium<\/div>\n        <\/div>\n\n        <div class=\"staffix-aiaj-pozicio-sor\" id=\"staffix-aiaj-pozicio-sor\">\n            <label for=\"staffix-aiaj-pozicio\">Position, f\u00fcr die du \u00fcbst:<\/label>\n            <select id=\"staffix-aiaj-pozicio\">\n                <option value=\"\">(Position w\u00e4hlen)<\/option>\n                                    <option value=\"Konyha\" >K\u00fcche<\/option>\n                                    <option value=\"Housekeeping \/ Takar\u00edt\u00e1s\" >Housekeeping \/ Reinigung<\/option>\n                                    <option value=\"Kellner (felszolg\u00e1l\u00f3)\" >Kellner\/in<\/option>\n                                    <option value=\"Mosogat\u00f3\" >Sp\u00fcler\/in<\/option>\n                                    <option value=\"\u00c1ltal\u00e1nos tudnival\u00f3k\" >Allgemeines<\/option>\n                            <\/select>\n        <\/div>\n\n                <div class=\"staffix-aiaj-pozicio-sor\" id=\"staffix-aiaj-tema-sor\">\n            <label for=\"staffix-aiaj-tema\">Was m\u00f6chtest du lernen:<\/label>\n            <select id=\"staffix-aiaj-tema\">\n                <option value=\"\">(Thema w\u00e4hlen)<\/option>\n                                    <option value=\"bemutatkozas\">Vorstellung, Kennenlernen<\/option>\n                                    <option value=\"utazas\">Reisen<\/option>\n                                    <option value=\"erkezes\">Ankunft, erster Arbeitstag<\/option>\n                                    <option value=\"munka\">Meine Arbeitsaufgaben<\/option>\n                                    <option value=\"vendeg\">Gespr\u00e4che mit G\u00e4sten<\/option>\n                                    <option value=\"fonok\">Mit Chef und Kollegen<\/option>\n                                    <option value=\"munkarend\">Dienstplan, Gehalt, Vertrag<\/option>\n                                    <option value=\"szallas\">Wohnung, Unterkunft<\/option>\n                                    <option value=\"bevasarlas\">Einkaufen, Essen<\/option>\n                                    <option value=\"kozlekedes\">Verkehr, Wegbeschreibung<\/option>\n                                    <option value=\"hivatal\">Beh\u00f6rden und \u00c4mter<\/option>\n                                    <option value=\"orvos\">Arzt, Gesundheit, Notfall<\/option>\n                                    <option value=\"szamok\">Zahlen, Uhrzeit, Wochentage<\/option>\n                            <\/select>\n        <\/div>\n\n                <div class=\"sfx-seg\" id=\"sfx-gyak-seg\" style=\"display:none;\">\n            <div role=\"button\" tabindex=\"0\" class=\"sfx-seg-b is-on\" data-gf=\"szavak\">W\u00f6rter<\/div>\n            <div role=\"button\" tabindex=\"0\" class=\"sfx-seg-b\" data-gf=\"mondatok\">S\u00e4tze<\/div>\n            <div role=\"button\" tabindex=\"0\" class=\"sfx-seg-b\" data-gf=\"beszelgetes\">Gespr\u00e4ch<\/div>\n        <\/div>\n\n                <div class=\"staffix-aiaj-pozicio-sor\" id=\"staffix-aiaj-szerep-sor\" style=\"display:none;\">\n            <label for=\"staffix-aiaj-szerep\">Welche Situation \u00fcben wir:<\/label>\n            <select id=\"staffix-aiaj-szerep\">\n                <option value=\"\">(Situation w\u00e4hlen)<\/option>\n                                    <option value=\"interju\">Vorstellungsgespr\u00e4ch<\/option>\n                                    <option value=\"elso_nap\">Erster Arbeitstag<\/option>\n                                    <option value=\"fonok\">Gespr\u00e4ch mit dem Chef<\/option>\n                                    <option value=\"vendeg\">Anfrage von Gast oder Kollegen<\/option>\n                                    <option value=\"szabadnap\">Freien Tag bitten<\/option>\n                                    <option value=\"rosszullet\">Krankheit oder Unfall melden<\/option>\n                                    <option value=\"szunet\">Pause mit den Kollegen<\/option>\n                                    <option value=\"berlap\">Arbeitszeit und Gehaltsabrechnung<\/option>\n                                    <option value=\"hibajelzes\">Schaden oder Defekt melden<\/option>\n                                    <option value=\"bank\">In der Bank (Konto er\u00f6ffnen)<\/option>\n                                    <option value=\"gyogyszertar\">In der Apotheke<\/option>\n                                    <option value=\"etterem\">Im Restaurant bestellen<\/option>\n                                    <option value=\"utbaigazitas\">Nach dem Weg fragen<\/option>\n                                    <option value=\"jegy\">Fahrkarte kaufen<\/option>\n                                    <option value=\"telefon\">Telefonat: Ich bin krank<\/option>\n                                    <option value=\"szallas\">Wohnung mieten<\/option>\n                                    <option value=\"bolt\">Einkaufen im Laden<\/option>\n                                    <option value=\"orvos\">Beim Arzt<\/option>\n                                    <option value=\"hivatal\">Auf dem Amt (Anmeldung)<\/option>\n                            <\/select>\n        <\/div>\n\n        <div class=\"sfx-helyzet\" id=\"sfx-helyzet\" style=\"display:none;\"><\/div>\n\n        <div class=\"staffix-aiaj-keret-sor\" id=\"staffix-aiaj-keret-sor\"><\/div>\n\n        <div class=\"staffix-aiaj-szereplok\" id=\"staffix-aiaj-szereplok\"><\/div>\n\n        <div class=\"sfx-gyak-lista\" id=\"sfx-gyak-lista\" style=\"display:none;\"><\/div>\n\n        <div class=\"staffix-aiaj-chat\" id=\"staffix-aiaj-chat\">\n            <div class=\"staffix-aiaj-uzenetek\" id=\"staffix-aiaj-uzenetek\"><\/div>\n        <\/div>\n\n                <div class=\"staffix-aiaj-beviteli-sor\">\n            <textarea id=\"staffix-aiaj-input\" rows=\"1\" placeholder=\"Schreibe, oder dr\u00fccke das Mikrofon\u2026\"><\/textarea>\n                        <button type=\"button\" class=\"staffix-aiaj-mic-btn\" id=\"staffix-aiaj-mic-btn\" data-nyelv=\"hu\" title=\"Auf Ungarisch hineinsprechen\" aria-label=\"Auf Ungarisch hineinsprechen\">\n                <svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M12 15a3 3 0 0 0 3-3V6a3 3 0 0 0-6 0v6a3 3 0 0 0 3 3Z\"\/><path d=\"M19 11a1 1 0 0 0-2 0 5 5 0 0 1-10 0 1 1 0 0 0-2 0 7 7 0 0 0 6 6.92V20H9a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2h-2v-2.08A7 7 0 0 0 19 11Z\"\/><\/svg><span class=\"mic-cimke\"><span class=\"mic-hosszu\">Ungarisch<\/span><span class=\"mic-rovid\">HU<\/span><\/span>\n            <\/button>\n            <button type=\"button\" class=\"staffix-aiaj-mic-btn\" id=\"staffix-aiaj-mic-btn-de\" data-nyelv=\"de\" title=\"Auf Deutsch hineinsprechen\" aria-label=\"Auf Deutsch hineinsprechen\">\n                <svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M12 15a3 3 0 0 0 3-3V6a3 3 0 0 0-6 0v6a3 3 0 0 0 3 3Z\"\/><path d=\"M19 11a1 1 0 0 0-2 0 5 5 0 0 1-10 0 1 1 0 0 0-2 0 7 7 0 0 0 6 6.92V20H9a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2h-2v-2.08A7 7 0 0 0 19 11Z\"\/><\/svg><span class=\"mic-cimke\"><span class=\"mic-hosszu\">Deutsch<\/span><span class=\"mic-rovid\">DE<\/span><\/span>\n            <\/button>\n            <button type=\"button\" class=\"staffix-aiaj-send-btn\" id=\"staffix-aiaj-send-btn\">Senden<\/button>\n        <\/div>\n\n        <div class=\"sfx-auto-sor\">\n            <label class=\"staffix-aiaj-felolvasas-toggle sfx-auto-toggle\" title=\"H\u00f6rt nach dem Assistenten automatisch zu und sendet, was du sagst.\">\n                <input type=\"checkbox\" id=\"staffix-aiaj-kez-nelkul\" \/>\n                Freisprech-Modus            <\/label>\n        <\/div>\n\n                <div class=\"staffix-aiaj-gyors-sor\" id=\"staffix-aiaj-gyors-sor\" style=\"display:none;\">\n            <p class=\"staffix-aiaj-gyors-tipp\">\n                Du kannst kein Deutsch? Kein Problem! Wenn du nicht weiterwei\u00dft, frage ruhig auf UNGARISCH: schreibe es oder dr\u00fccke das Mikrofon \u201eUngarisch\u201d und sprich, und die Figur hilft dir auf Ungarisch und nennt dir auch den deutschen Satz. Auf Deutsch antwortest du mit dem Mikrofon \u201eDeutsch\u201d.            <\/p>\n            <button type=\"button\" data-meta=\"ismetel\">Wiederhole bitte<\/button>\n            <button type=\"button\" data-meta=\"lassabban\">Langsamer, einfacher<\/button>\n            <button type=\"button\" data-meta=\"magyarul\">Erkl\u00e4re auf Ungarisch<\/button>\n            <button type=\"button\" data-meta=\"opciok\">Was kann ich antworten?<\/button>\n            <button type=\"button\" data-uj=\"1\" class=\"gyors-uj\">Neue Szene<\/button>\n        <\/div>\n\n\n                <div class=\"staffix-aiaj-kviz\" id=\"staffix-aiaj-kviz\" style=\"display:none;\"><\/div>\n\n        <div class=\"staffix-aiaj-beallitasok\">\n            <label class=\"staffix-aiaj-felolvasas-toggle\">\n                <input type=\"checkbox\" id=\"staffix-aiaj-auto-felolvas\" checked \/>\n                Automatische Vorlesung auf Deutsch            <\/label>\n                        <button type=\"button\" class=\"staffix-aiaj-uj-szavak-btn\" id=\"staffix-aiaj-uj-szavak-btn\">\ud83d\udd04 Neue W\u00f6rter<\/button>\n            <button type=\"button\" class=\"staffix-aiaj-uj-szavak-btn\" id=\"staffix-aiaj-szotar-btn\">50 Grundw\u00f6rter f\u00fcr deine Position<\/button>\n            <button type=\"button\" class=\"staffix-aiaj-uj-szavak-btn\" id=\"staffix-aiaj-kviz-btn\">Tages-Quiz<\/button>\n            <p class=\"staffix-aiaj-mic-info\" id=\"staffix-aiaj-mic-info\" style=\"display:none;\"><\/p>\n        <\/div>\n\n                        <p class=\"staffix-aiaj-csomag-link-sor\">\n            <span id=\"staffix-aiaj-statusz\" data-mod=\"ingyenes\">Du kannst es kostenlos ausprobieren.<\/span>\n            <button type=\"button\" class=\"staffix-aiaj-csomag-link\" id=\"staffix-aiaj-csomag-link\">Pakete und Preise ansehen<\/button>\n        <\/p>\n                <p class=\"staffix-aiaj-csomag-link-sor\">\n            <button type=\"button\" class=\"staffix-aiaj-csomag-link\" id=\"staffix-aiaj-vissza-nyit\">Bereits bezahlt, aber dein Paket fehlt?<\/button>\n        <\/p>\n        <div id=\"staffix-aiaj-vissza-doboz\" style=\"display:none;text-align:center;margin:8px 0 0;\">\n            <input type=\"email\" id=\"staffix-aiaj-vissza-email\" autocomplete=\"email\" placeholder=\"E-Mail vom Kauf\" style=\"max-width:260px;width:80%;padding:10px 12px;border:1px solid #d9c7d1;border-radius:10px;font-size:15px;\">\n            <button type=\"button\" id=\"staffix-aiaj-vissza-kuld\" class=\"staffix-aiaj-csomag-link\" style=\"margin-left:6px;\">Link senden<\/button>\n            <p id=\"staffix-aiaj-vissza-uzenet\" class=\"staffix-aiaj-csomag-link-sor\" style=\"margin:6px 0 0;\"><\/p>\n                    <\/div>\n        <p class=\"sfx-app-fine\">Der Assistent unterst\u00fctzt das Lernen, \u00dcbersetzungen dienen nur zur Orientierung. F\u00fcr Vertr\u00e4ge, Beh\u00f6rden- oder medizinische Angelegenheiten nutze bitte einen offiziellen Dolmetscher.<\/p>\n        <\/div>\n    <\/div>\n\n    <!-- Fizet\u0151fal \/ csomagv\u00e1laszt\u00f3 modal -->\n        <div class=\"staffix-aiaj-modal-overlay\" id=\"staffix-aiaj-ert-modal\" style=\"display:none;\">\n        <div class=\"staffix-aiaj-modal-box\" style=\"text-align:center;\">\n            <button type=\"button\" class=\"staffix-aiaj-modal-close\" id=\"staffix-aiaj-ert-close\">\u00d7<\/button>\n            <div id=\"staffix-aiaj-ert-urlap\">\n                <h2 style=\"padding-right:0;\">Wie gef\u00e4llt dir Dorka?<\/h2>\n                <p class=\"staffix-aiaj-modal-szov\">Deine kostenlosen Nachrichten sind bald aufgebraucht. Es hilft uns, wenn du bewertest, ca. 10 Sekunden.<\/p>\n                <div id=\"staffix-aiaj-ert-csillagok\" style=\"font-size:36px;letter-spacing:4px;color:#ddd;cursor:pointer;user-select:none;\">\n                    <span data-n=\"1\">\u2605<\/span><span data-n=\"2\">\u2605<\/span><span data-n=\"3\">\u2605<\/span><span data-n=\"4\">\u2605<\/span><span data-n=\"5\">\u2605<\/span>\n                <\/div>\n                <textarea id=\"staffix-aiaj-ert-szoveg\" maxlength=\"500\" rows=\"2\" placeholder=\"Was gef\u00e4llt dir, was k\u00f6nnen wir verbessern? (optional)\" style=\"width:100%;box-sizing:border-box;border:1px solid #d9c7d1;border-radius:10px;padding:9px;font-size:14px;margin:8px 0;\"><\/textarea>\n                <label style=\"display:block;text-align:left;font-size:12px;color:#666;margin-bottom:10px;\"><input type=\"checkbox\" id=\"staffix-aiaj-ert-nev\"> Ich bin einverstanden, dass mein Vorname und mein Beruf neben meiner Bewertung angezeigt werden (optional).<\/label>\n                <p id=\"staffix-aiaj-ert-hiba\" class=\"staffix-aiaj-modal-hiba\" style=\"display:none;\"><\/p>\n                <button type=\"button\" class=\"staffix-aiaj-send-btn\" id=\"staffix-aiaj-ert-kuld\" style=\"width:100%;\">Bewertung senden<\/button>\n                <p style=\"margin:10px 0 0;\"><button type=\"button\" class=\"staffix-aiaj-csomag-link\" id=\"staffix-aiaj-ert-nem\">Jetzt nicht<\/button><\/p>\n            <\/div>\n            <div id=\"staffix-aiaj-ert-koszi\" style=\"display:none;\">\n                <h2 style=\"padding-right:0;\">Danke!<\/h2>\n                <p class=\"staffix-aiaj-modal-szov\">Deine Bewertung hilft, dass Dorka auch andere erreicht.<\/p>\n                <p id=\"staffix-aiaj-ert-google-sor\" style=\"display:none;margin:14px 0 0;\"><a id=\"staffix-aiaj-ert-google\" target=\"_blank\" rel=\"noopener\" style=\"color:#a01348;font-weight:700;\">Schreibe auch auf Google \u00fcber uns \u2192<\/a><\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n        <div class=\"staffix-aiaj-modal-overlay\" id=\"staffix-aiaj-reg-modal\" style=\"display:none;\">\n        <div class=\"staffix-aiaj-modal-box\" style=\"text-align:center;\">\n            <button type=\"button\" class=\"staffix-aiaj-modal-close\" id=\"staffix-aiaj-reg-close\">\u00d7<\/button>\n            <h2 style=\"padding-right:0;\">Weiter mit Registrierung!<\/h2>\n            <p class=\"staffix-aiaj-modal-szov\" id=\"staffix-aiaj-reg-szov\">Gef\u00e4llt es dir? Registriere dich kostenlos und erhalte 15 weitere Nachrichten. Es dauert nur ein paar Minuten, und dein Fortschritt bleibt auf jedem Ger\u00e4t erhalten.<\/p>\n            <p style=\"margin:16px 0 8px;\"><a class=\"staffix-aiaj-send-btn\" style=\"display:inline-block;text-decoration:none;color:#fff !important;-webkit-text-fill-color:#fff !important;padding:12px 26px;\" href=\"https:\/\/stafforex.eu\/de\/munkavallaloi-regisztracio\/?vissza=nyelvi\">Kostenlos registrieren<\/a><\/p>\n            <p style=\"margin:0;font-size:14px;\"><a href=\"https:\/\/stafforex.eu\/wp-login.php?redirect_to=https%3A%2F%2Fstafforex.eu%2Fde%2Fnyelvi-asszisztens%2F&#038;wp_lang=de_DE\" style=\"color:#a01348;font-weight:700;\">Ich habe schon ein Konto, anmelden<\/a><\/p>\n        <\/div>\n    <\/div>\n    <div class=\"staffix-aiaj-modal-overlay\" id=\"staffix-aiaj-modal\" style=\"display:none;\">\n        <div class=\"staffix-aiaj-modal-box\">\n            <button type=\"button\" class=\"staffix-aiaj-modal-close\" id=\"staffix-aiaj-modal-close\">\u00d7<\/button>\n            <h2>W\u00e4hle ein Paket, um fortzufahren<\/h2>\n            <p class=\"staffix-aiaj-modal-szov\" id=\"staffix-aiaj-modal-szov\"><\/p>\n            <p class=\"staffix-aiaj-teszt-jelzes\" style=\"margin:0 0 12px;\">Der Assistent befindet sich in der Test- und Entwicklungsphase und ist noch nicht stabil, daher k\u00f6nnen Fehler auftreten.<\/p>\n\n                        <p class=\"staffix-aiaj-kedvezmeny-sor staffix-aiaj-kedvezmeny-info\">\ud83d\udca1 Tipp: Wenn du dich als Arbeitnehmer registrierst und dein Profil zu 100% ausf\u00fcllst, erh\u00e4ltst du 20% Rabatt auf beide Pakete.<\/p>\n            \n            <div class=\"staffix-aiaj-csomagok\">\n                <div class=\"staffix-aiaj-csomag-kartya\" data-csomag=\"alap\">\n                    <h3>Basis-Paket<\/h3>\n                    <p class=\"staffix-aiaj-csomag-leiras\">100 Nachrichten, ohne Ablauf, einmaliger Kauf<\/p>\n                    <ul class=\"staffix-aiaj-csomag-lista\">\n                        <li><strong>Das bekommst du:<\/strong> 100 Nachrichten. L\u00e4uft nicht ab, du nutzt sie, wann du willst.<\/li>\n                        <li><strong>Wof\u00fcr:<\/strong> Um die wichtigsten W\u00f6rter und S\u00e4tze deiner Position zu lernen (z. B. Vorstellung, erster Arbeitstag), oder wenn du ab und zu eine \u00dcbersetzung brauchst.<\/li>\n                        <li><strong>F\u00fcr wen:<\/strong> Wenn du nicht wei\u00dft, wie viel du nutzen wirst, wenig Zeit hast oder nur die Grundlagen lernen m\u00f6chtest. Die kostenlosen Nachrichten sind nur ein Vorgeschmack, das Basis-Paket bietet 100 Nachrichten.<\/li>\n                    <\/ul>\n                    <p class=\"staffix-aiaj-csomag-ar\">\n                                                <span class=\"staffix-aiaj-ar-vegleges\">20 \u20ac<\/span>\n                    <\/p>\n                    <button type=\"button\" class=\"staffix-aiaj-csomag-btn\" data-csomag=\"alap\">Das w\u00e4hle ich<\/button>\n                <\/div>\n                <div class=\"staffix-aiaj-csomag-kartya staffix-aiaj-csomag-kiemelt\" data-csomag=\"premium\">\n                    <span class=\"staffix-aiaj-csomag-eyebrow\">Bestes Preis-Leistungs-Verh\u00e4ltnis<\/span>\n                    <h3>Premium-Paket<\/h3>\n                    <p class=\"staffix-aiaj-csomag-leiras\">250 Nachrichten, ohne Ablaufdatum<\/p>\n                    <ul class=\"staffix-aiaj-csomag-lista\">\n                        <li><strong>Das bekommst du:<\/strong> 250 Nachrichten, die du in deinem eigenen Tempo nutzen kannst. Sie verfallen nicht und halten, bis sie aufgebraucht sind.<\/li>\n                        <li><strong>Wof\u00fcr:<\/strong> F\u00fcr intensives \u00dcben: du kannst mehrere Themen (Arbeit, Unterkunft, Beh\u00f6rde, Arzt, Einkaufen) durchgehen und deine S\u00e4tze korrigieren lassen. Auch f\u00fcr \u00dcbersetzungen nutzbar.<\/li>\n                        <li><strong>Warum wir es empfehlen:<\/strong> Wenn die Abreise oder der Arbeitsbeginn n\u00e4her r\u00fcckt, bringt regelm\u00e4\u00dfiges \u00dcben am meisten. Pro Nachricht g\u00fcnstiger als das Basis-Paket.<\/li>\n                    <\/ul>\n                    <p class=\"staffix-aiaj-csomag-ar\">\n                                                <span class=\"staffix-aiaj-ar-vegleges\">45 \u20ac<\/span>\n                    <\/p>\n                    <button type=\"button\" class=\"staffix-aiaj-csomag-btn\" data-csomag=\"premium\">Das w\u00e4hle ich<\/button>\n                <\/div>\n            <\/div>\n\n                        <p class=\"staffix-aiaj-email-sor\">\n                <label for=\"staffix-aiaj-email\">Deine E-Mail-Adresse (Rechnung und Paket werden hiermit verkn\u00fcpft):<\/label>\n                <input type=\"email\" id=\"staffix-aiaj-email\" value=\"\" required \/>\n            <\/p>\n            \n            <p class=\"staffix-aiaj-elallas-sor\">\n                <label>\n                    <input type=\"checkbox\" id=\"staffix-aiaj-elallas-consent\" \/>\n                    Ich nehme zur Kenntnis, dass ich durch den sofortigen Beginn der Dienstleistung mein 14-t\u00e4giges Widerrufsrecht verliere, da die digitale Leistung sofort nach der Zahlung erbracht wird.                <\/label>\n            <\/p>\n            <p class=\"staffix-aiaj-modal-hiba\" id=\"staffix-aiaj-modal-hiba\" style=\"display:none;\"><\/p>\n            <button type=\"button\" class=\"staffix-aiaj-fizet-btn\" id=\"staffix-aiaj-fizet-btn\">Weiter zur Zahlung<\/button>\n        <\/div>\n    <\/div>\n\n    <style>\n        .staffix-aiaj-oldal{max-width:720px;margin:0 auto;padding:24px 16px 40px;font-family:inherit;}\n        .staffix-aiaj-fejresz{text-align:center;margin-bottom:22px;padding:30px 20px 26px;border-radius:20px;background:\n            radial-gradient( circle at 12% 20%, rgba(255,255,255,.5) 0%, rgba(255,255,255,0) 45% ),\n            radial-gradient( circle at 90% 110%, rgba(45,156,219,.28) 0%, rgba(45,156,219,0) 55% ),\n            linear-gradient( 135deg, #fdf0f5 0%, #fff7f9 55%, #eef7fc 100% );\n            box-shadow:0 6px 24px rgba(160,19,72,.08);}\n        .staffix-aiaj-badge{display:inline-block;background:#2d9cdb;color:#fff;font-weight:800;font-size:12px;letter-spacing:.04em;padding:5px 14px;border-radius:999px;margin-bottom:10px;}\n        .staffix-aiaj-cim{font-size:28px;margin:0 0 8px;color:#a01348;}\n        .staffix-aiaj-gyors-sor{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:0 0 10px;}\n        .staffix-aiaj-gyors-tipp{flex:0 0 100%;margin:0 0 2px;padding:9px 12px;background:#fdf0f5;border-radius:10px;font-size:13px;line-height:1.45;color:#5a1030;text-align:left;}\n        .staffix-aiaj-indulas-bubi{text-align:center;}\n        .staffix-aiaj-indulas-bubi button{display:inline-block;margin-top:8px;background:#e0567f;color:#fff;border:0;font-weight:700;font-size:15px;padding:10px 26px;border-radius:999px;cursor:pointer;}\n        .staffix-aiaj-indulas-bubi button:hover{background:#c8416a;}\n        .staffix-aiaj-gyors-sor button{background:#fff;border:1.5px solid #e0567f;color:#a01348;font-weight:600;font-size:12.5px;padding:7px 12px;border-radius:999px;cursor:pointer;}\n        .staffix-aiaj-gyors-sor button:hover{background:#fdf0f5;}\n        .staffix-aiaj-gyors-sor button:disabled{opacity:.5;cursor:not-allowed;}\n        .staffix-aiaj-gyors-sor button.gyors-uj{border-color:#bbb;color:#666;}\n        .staffix-aiaj-teszt-jelzes{max-width:520px;margin:12px auto 0;padding:9px 12px;background:#fff8e1;color:#8a6d00;border-radius:10px;font-size:13px;line-height:1.45;}\n        .staffix-aiaj-alcim{color:#666;font-size:14.5px;max-width:520px;margin:0 auto;line-height:1.5;}\n        .staffix-aiaj-modvalto{display:flex;gap:8px;justify-content:center;margin-bottom:16px;flex-wrap:wrap;}\n        .staffix-aiaj-mod-btn{flex:1;max-width:220px;padding:11px 14px;border-radius:999px;border:2px solid #f0d4de;background:#fff;color:#a01348;font-weight:600;cursor:pointer;font-size:14.5px;transition:all .15s;}\n        .staffix-aiaj-mod-btn.is-active{background:#e0567f;border-color:#e0567f;color:#fff;}\n        .staffix-aiaj-pozicio-sor{display:flex;align-items:center;gap:10px;justify-content:center;margin-bottom:14px;flex-wrap:wrap;}\n        .staffix-aiaj-pozicio-sor label{font-size:13.5px;color:#555;font-weight:600;}\n        .staffix-aiaj-pozicio-sor select{padding:7px 10px;border-radius:8px;border:1px solid #ddd;font-size:14px;max-width:260px;}\n        .staffix-aiaj-csomag-link-sor{text-align:center;font-size:13px;color:#777;margin:12px 0 0;}\n        .staffix-aiaj-csomag-link{background:none;border:none;padding:0;margin-left:4px;color:#a01348;font-weight:700;font-size:13px;text-decoration:underline;cursor:pointer;}\n        .staffix-aiaj-kviz{background:#fff;border:1px solid #f0d4de;border-radius:14px;padding:16px;margin-bottom:12px;}\n        .staffix-aiaj-kviz h3{margin:0 0 6px;color:#a01348;font-size:17px;}\n        .staffix-aiaj-kviz .kviz-meta{font-size:12.5px;color:#777;margin:0 0 10px;}\n        .staffix-aiaj-kviz .kviz-szo{font-size:24px;font-weight:700;color:#222;margin:6px 0 14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}\n        .staffix-aiaj-kviz .kviz-opciok{display:grid;gap:8px;}\n        .staffix-aiaj-kviz .kviz-opcio{text-align:left;background:#fff;border:2px solid #f0d4de;border-radius:10px;padding:11px 12px;font-size:15px;color:#333;cursor:pointer;}\n        .staffix-aiaj-kviz .kviz-opcio:disabled{cursor:default;}\n        .staffix-aiaj-kviz .kviz-opcio.helyes{background:#e8f6ec!important;border-color:#2e9e57!important;color:#1b6b39!important;}\n        .staffix-aiaj-kviz .kviz-opcio.rossz{background:#fdeaea!important;border-color:#d64545!important;color:#8e2323!important;}\n        .staffix-aiaj-kviz .kviz-visszajelzes{margin:10px 0 0;font-size:14px;font-weight:600;color:#555;min-height:20px;}\n        .staffix-aiaj-kviz .kviz-gomb{margin-top:12px;background:#e0567f;color:#fff;border:none;border-radius:999px;padding:9px 18px;font-weight:600;cursor:pointer;font-size:14px;}\n        .staffix-aiaj-kviz .kviz-gomb.masodlagos{background:#fff;color:#a01348;border:1.5px solid #e0567f;margin-left:6px;}\n        .staffix-aiaj-keret-sor{text-align:center;font-size:12.5px;color:#999;margin-bottom:10px;min-height:16px;}\n        .staffix-aiaj-chat{background:#fdf2f7;border-radius:16px;border:1px solid #f0d4de;min-height:320px;max-height:460px;overflow-y:auto;padding:16px;margin-bottom:14px;}\n        .staffix-aiaj-uzenetek{display:flex;flex-direction:column;gap:10px;}\n        .staffix-aiaj-bubi{max-width:82%;padding:10px 14px;border-radius:14px;font-size:14.5px;line-height:1.5;white-space:pre-wrap;}\n        .staffix-aiaj-bubi.en{align-self:flex-end;background:#e0567f;color:#fff;border-bottom-right-radius:3px;}\n        .staffix-aiaj-bubi.ai{align-self:flex-start;background:#fff;color:#333;border:1px solid #f0d4de;border-bottom-left-radius:3px;}\n        .staffix-aiaj-bubi.sfx-van-av{position:relative;max-width:calc(100% - 64px);}\n        .staffix-aiaj-bubi.ai.sfx-van-av{margin-left:46px;}\n        .staffix-aiaj-bubi.en.sfx-van-av{margin-right:46px;}\n        .staffix-aiaj-bubi .sfx-bav{position:absolute;bottom:0;width:38px;height:38px;border-radius:50%;overflow:hidden;border:2px solid #fff;box-shadow:0 2px 8px rgba(35,35,63,.22);background:#f3e9f0;}\n        .staffix-aiaj-bubi.ai .sfx-bav{left:-46px;}\n        .staffix-aiaj-bubi.en .sfx-bav{right:-46px;}\n        .staffix-aiaj-bubi .sfx-bav svg,.staffix-aiaj-bubi .sfx-bav img{display:block;width:100%;height:100%;}\n        .staffix-aiaj-bubi.sys{align-self:center;background:transparent;color:#a3a3a3;font-size:12.5px;text-align:center;}\n        .staffix-aiaj-bubi .fo-szoveg{white-space:pre-wrap;font-size:15.5px;line-height:1.55;}\n        .staffix-aiaj-bubi .segitseg-btn{display:inline-block;margin-top:8px;background:#fff;border:1.5px solid #2d9cdb;color:#1d7ab3;font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:999px;cursor:pointer;}\n        .staffix-aiaj-bubi .segitseg-doboz{margin-top:8px;background:#eef7fc;border-radius:10px;padding:10px 12px;}\n        .staffix-aiaj-bubi .segitseg-nemet{font-weight:700;color:#222;}\n        .staffix-aiaj-bubi .segitseg-magyar{color:#555;font-size:13px;margin-top:2px;}\n        .staffix-aiaj-bubi .segitseg-gombok{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;}\n        .staffix-aiaj-bubi .segitseg-gombok button{background:#2d9cdb;color:#fff;border:none;border-radius:999px;font-size:12.5px;font-weight:600;padding:6px 12px;cursor:pointer;}\n        .staffix-aiaj-bubi .irany{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#2d9cdb;margin-bottom:3px;}\n        .staffix-aiaj-bubi .javitas{display:block;margin-top:8px;color:#a01348;font-size:13px;font-weight:600;}\n        .staffix-aiaj-bubi .feladat{display:block;margin-top:14px;padding-top:10px;border-top:2px solid #f0d4de;color:#555;font-size:13.5px;font-style:italic;}\n                .staffix-aiaj-bubi .szokincs{margin-top:14px;border-top:2px solid #f0d4de;padding-top:10px;}\n        .staffix-aiaj-bubi .szokincs-cim{font-size:11.5px;font-weight:700;letter-spacing:.04em;color:#2d9cdb;text-transform:uppercase;margin-bottom:4px;}\n        .staffix-aiaj-bubi .szokincs-lista{margin:0;padding:0;list-style:none;}\n        .staffix-aiaj-bubi .szokincs-lista li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #f0d4de;}\n        .staffix-aiaj-bubi .szokincs-lista li:last-child{border-bottom:none;}\n        .staffix-aiaj-bubi .szo-szoveg{min-width:0;}\n        .staffix-aiaj-bubi .szo-nemet{display:block;font-weight:700;color:#222;font-size:15px;line-height:1.35;}\n        .staffix-aiaj-bubi .szo-magyar{display:block;color:#6b6b6b;font-size:13.5px;line-height:1.35;margin-top:2px;}\n        .staffix-aiaj-bubi .szo-lejatszo{flex-shrink:0;width:34px;height:34px;border-radius:50%;border:1.5px solid #e0567f;background:#fff;color:#a01348;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;}\n        .staffix-aiaj-bubi .szo-lejatszo svg{width:16px;height:16px;}\n        .staffix-aiaj-bubi .szo-mind{display:inline-block;margin:2px 0 4px;background:#fff;border:1.5px solid #2d9cdb;color:#1d7ab3;font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:999px;cursor:pointer;}\n        @media (max-width:480px){\n            .staffix-aiaj-bubi{max-width:96%;}\n            .staffix-aiaj-bubi.sfx-van-av{max-width:calc(100% - 56px);}\n            .staffix-aiaj-chat{padding:12px 8px;}\n        }\n        .staffix-aiaj-bubi .lejatszo{background:none;border:none;cursor:pointer;margin-top:6px;opacity:.6;padding:0;color:#a01348;display:inline-flex;align-items:center;}\n        .staffix-aiaj-bubi .lejatszo:hover{opacity:1;}\n        .staffix-aiaj-bubi .lejatszo svg{width:16px;height:16px;}\n        .staffix-aiaj-beallitasok{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;flex-wrap:wrap;gap:6px;}\n        .staffix-aiaj-felolvasas-toggle{font-size:13px;color:#555;display:flex;align-items:center;gap:6px;}\n        .staffix-aiaj-uj-szavak-btn{background:#fff;border:1.5px solid #e0567f;color:#a01348;font-weight:600;font-size:12.5px;padding:7px 12px;border-radius:999px;cursor:pointer;}\n        .staffix-aiaj-uj-szavak-btn:hover{background:#fdf0f5;}\n        .staffix-aiaj-uj-szavak-btn:disabled{opacity:.5;cursor:not-allowed;}\n        .staffix-aiaj-mic-info{font-size:12px;color:#c0392b;margin:0;}\n        .staffix-aiaj-beviteli-sor{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;}\n        .staffix-aiaj-mic-btn{flex-shrink:0;min-width:44px;height:44px;border-radius:999px;border:2px solid #e0567f;background:#fff;color:#a01348;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;padding:0 14px;font-size:13px;font-weight:700;order:2;}\n        .staffix-aiaj-mic-btn svg{width:19px;height:19px;flex-shrink:0;}\n        .staffix-aiaj-mic-btn.felvetel{background:#e0567f;color:#fff;animation:staffix-aiaj-pulz 1.1s infinite;}\n        @keyframes staffix-aiaj-pulz{0%{box-shadow:0 0 0 0 rgba(224,86,127,.5);}70%{box-shadow:0 0 0 10px rgba(224,86,127,0);}100%{box-shadow:0 0 0 0 rgba(224,86,127,0);}}\n        .staffix-aiaj-beviteli-sor textarea{flex:1;resize:none;border:1px solid #ddd;border-radius:12px;padding:12px 14px;font-size:16px;line-height:1.4;font-family:inherit;min-height:52px;max-height:140px;order:1;}\n        .staffix-aiaj-send-btn{flex-shrink:0;background:#a01348;color:#fff;border:none;border-radius:12px;padding:0 20px;height:52px;font-weight:600;cursor:pointer;font-size:14.5px;order:3;}\n        .staffix-aiaj-send-btn:disabled,.staffix-aiaj-mic-btn:disabled{opacity:.5;cursor:not-allowed;}\n                @media (max-width:480px){\n            .staffix-aiaj-beviteli-sor textarea{flex:1 1 100%;min-height:60px;font-size:16px;order:1;}\n            .staffix-aiaj-mic-btn{min-width:40px;height:44px;order:2;}\n            .staffix-aiaj-mic-btn svg{width:18px;height:18px;}\n            .staffix-aiaj-send-btn{flex:1;order:3;height:44px;padding:0 16px;}\n        }\n\n        .staffix-aiaj-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:99999;display:flex;align-items:center;justify-content:center;padding:16px;}\n        .staffix-aiaj-modal-box{background:#fff;border-radius:18px;max-width:560px;width:100%;max-height:92vh;overflow-y:auto;padding:28px 24px;position:relative;}\n        .staffix-aiaj-modal-close{position:absolute;top:10px;right:10px;width:36px;height:36px;min-width:0;padding:0;margin:0;border:none!important;border-radius:50%!important;background:#f3eef0!important;font-size:22px;line-height:36px;text-align:center;cursor:pointer;color:#a01348!important;box-shadow:none!important;}\n        .staffix-aiaj-modal-box h2{margin:0 0 10px;padding-right:44px;color:#a01348;font-size:21px;}\n        .staffix-aiaj-modal-szov{color:#666;font-size:14px;margin-bottom:8px;}\n        .staffix-aiaj-kedvezmeny-sor{font-size:13.5px;margin:6px 0 14px;color:#1e7e34;font-weight:600;}\n        .staffix-aiaj-kedvezmeny-info{color:#8a6d00;background:#fff8e1;padding:9px 12px;border-radius:10px;}\n        .staffix-aiaj-csomagok{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;}\n        @media (max-width:480px){.staffix-aiaj-csomagok{grid-template-columns:1fr;}}\n        .staffix-aiaj-csomag-kartya{border:2px solid #eee;border-radius:14px;padding:16px 14px;text-align:center;position:relative;}\n        .staffix-aiaj-csomag-kiemelt{border-color:#e0567f;background:#fff7f9;}\n        .staffix-aiaj-csomag-eyebrow{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:#e0567f;color:#fff;font-size:10.5px;padding:3px 10px;border-radius:999px;white-space:nowrap;}\n        .staffix-aiaj-csomag-kartya h3{margin:8px 0 4px;font-size:16px;color:#333;}\n        .staffix-aiaj-csomag-lista{list-style:none;margin:0 0 12px;padding:0;text-align:left;}\n        .staffix-aiaj-csomag-lista li{font-size:13px;line-height:1.45;color:#444;background:#f7f3f5;border-radius:8px;padding:8px 10px;margin:0 0 6px;}\n        .staffix-aiaj-csomag-lista li strong{display:block;color:#a01348;font-size:12px;text-transform:uppercase;letter-spacing:.03em;margin-bottom:2px;}\n        .staffix-aiaj-csomag-leiras{font-size:12.5px;color:#777;min-height:32px;margin:0 0 8px;}\n        .staffix-aiaj-csomag-ar{margin:0 0 12px;}\n        .staffix-aiaj-ar-athuzott{text-decoration:line-through;color:#aaa;font-size:14px;margin-right:6px;}\n        .staffix-aiaj-ar-vegleges{font-size:22px;font-weight:700;color:#a01348;}\n        .staffix-aiaj-fizet-btn{display:block;width:100%;margin-top:10px;background:#a01348;color:#fff;border:none;border-radius:12px;padding:14px;font-weight:800;font-size:15.5px;cursor:pointer;}\n        .staffix-aiaj-csomag-btn{width:100%;background:#a01348;color:#fff;border:none;border-radius:10px;padding:10px;font-weight:600;cursor:pointer;}\n        .staffix-aiaj-email-sor{margin-bottom:12px;}\n        .staffix-aiaj-email-sor label{display:block;font-size:13px;color:#555;margin-bottom:4px;}\n        .staffix-aiaj-email-sor input{width:100%;padding:9px 10px;border-radius:8px;border:1px solid #ddd;font-size:14px;box-sizing:border-box;}\n        .staffix-aiaj-elallas-sor{font-size:12px;color:#777;line-height:1.5;}\n        .staffix-aiaj-elallas-sor label{display:flex;gap:8px;align-items:flex-start;}\n        .staffix-aiaj-modal-hiba{color:#c0392b;font-size:13px;font-weight:600;}\n        .staffix-aiaj-szint-doboz{background:#fff;border:1px solid #f0d4de;border-radius:14px;padding:14px;margin-bottom:14px;}\n        .szint-fej{display:flex;gap:12px;align-items:center;}\n        .szint-avatar{flex:0 0 64px;width:64px;height:64px;border-radius:50%;overflow:hidden;border:2px solid #f0d4de;}\n        .szint-avatar svg,.szint-mini svg{display:block;width:100%;height:100%;}\n        .szint-cim{font-size:15px;color:#333;}\n        .szint-cim strong{color:#a01348;}\n        .szint-info{font-size:13px;color:#666;line-height:1.45;margin-top:2px;}\n        .szint-gombok{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}\n        .szint-valaszto{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;}\n        .szint-chip{background:#fff;border:1.5px solid #f0d4de;color:#a01348;font-weight:600;font-size:13px;padding:7px 12px;border-radius:999px;cursor:pointer;}\n        .szint-chip[aria-pressed=\"true\"]{background:#e0567f;border-color:#e0567f;color:#fff;}\n        .szint-teszt{margin-top:12px;border-top:1px solid #f0d4de;padding-top:12px;}\n        .szint-teszt h3{margin:0 0 8px;font-size:16px;color:#a01348;}\n        .szint-teszt .sz-prog{height:6px;background:#f6e3ea;border-radius:99px;overflow:hidden;margin-bottom:10px;}\n        .szint-teszt .sz-prog i{display:block;height:100%;background:#e0567f;}\n        .szint-teszt .sz-kerdes{font-size:16px;font-weight:600;color:#222;margin:0 0 10px;line-height:1.4;}\n        .szint-teszt .sz-valasz{display:block;width:100%;text-align:left;background:#fff;border:2px solid #f0d4de;border-radius:10px;padding:12px;font-size:15px;color:#333;cursor:pointer;margin:0 0 8px;}\n        .szint-teszt .sz-valasz.nem{border-style:dashed;color:#777;}\n        .szint-teszt .sz-nagy{font-size:26px;font-weight:800;color:#a01348;margin:6px 0;}\n        .szint-teszt .sz-gomb{background:#e0567f;color:#fff;border:0;border-radius:999px;padding:10px 20px;font-weight:700;font-size:14.5px;cursor:pointer;margin:8px 8px 0 0;}\n        .szint-teszt .sz-gomb.mas{background:#fff;color:#a01348;border:1.5px solid #e0567f;}\n        .szint-szerkeszto{margin-top:12px;border-top:1px solid #f0d4de;padding-top:12px;}\n        .szint-szerkeszto .sz-cim{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#2d9cdb;margin:12px 0 6px;}\n        .szint-szerkeszto .sz-cim:first-child{margin-top:0;}\n        .szint-szerkeszto .sz-sor{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:0 0 6px;}\n        .szint-szerkeszto .sz-sor > span{font-size:12.5px;color:#666;min-width:58px;}\n        .szint-sw{width:30px;height:30px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1.5px #ccc;cursor:pointer;padding:0;}\n        .szint-sw[aria-pressed=\"true\"]{box-shadow:0 0 0 3px #e0567f;}\n        .szint-partnerek{display:grid;grid-template-columns:1fr 1fr;gap:8px;}\n        .szint-partner{display:flex;gap:8px;align-items:center;text-align:left;background:#fff;border:2px solid #f0d4de;border-radius:12px;padding:8px;cursor:pointer;}\n        .szint-partner[aria-pressed=\"true\"]{border-color:#e0567f;background:#fdf0f5;}\n        .szint-kepek{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;width:100%;}\n        .szint-kep{aspect-ratio:1;border-radius:50%;overflow:hidden;border:3px solid transparent;cursor:pointer;background:#fff;}\n        .szint-kep img{display:block;width:100%;height:100%;object-fit:cover;}\n        .szint-kep[aria-pressed=\"true\"]{border-color:#d6006a;box-shadow:0 0 0 2px #fff,0 4px 12px rgba(214,0,106,.35);}\n        .szint-mini{flex:0 0 44px;width:44px;height:44px;border-radius:50%;overflow:hidden;}\n        .szint-partner b{display:block;font-size:13px;color:#222;}\n        .szint-partner span.t{display:block;font-size:11.5px;color:#666;line-height:1.3;}\n        .staffix-aiaj-szereplok{display:none;justify-content:center;align-items:center;gap:18px;margin:0 0 10px;}\n        .staffix-aiaj-szereplok .sz-fo{text-align:center;font-size:12px;color:#555;}\n        .staffix-aiaj-szereplok .sz-fo div.kep{width:56px;height:56px;border-radius:50%;overflow:hidden;margin:0 auto 3px;border:2px solid #f0d4de;}\n        .staffix-aiaj-szereplok .sz-fo svg{display:block;width:100%;height:100%;}\n        .staffix-aiaj-szereplok .sz-vs{font-size:18px;color:#c9a0b0;}\n        @media (max-width:480px){.szint-partnerek{grid-template-columns:1fr;}}\n        \/* ===== v9.746: egys\u00e9ges, s\u00f6t\u00e9t-lila + r\u00f3zsa sz\u00ednvil\u00e1g, a t\u00e9ma gombst\u00edlus\u00e1t\u00f3l f\u00fcggetlen k\u00e1rty\u00e1k ===== *\/\n        .staffix-aiaj-oldal{max-width:780px;}\n        .staffix-aiaj-oldal.sfx-boot .sfx-w,.staffix-aiaj-oldal.sfx-boot .sfx-app{display:none!important;}\n        .sfx-w,.sfx-w *,.sfx-app .sfx-bar,.sfx-app .sfx-bar *{box-sizing:border-box;}\n        .sfx-w [role=\"button\"],.sfx-bar [role=\"button\"]{cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;outline:none;}\n        .sfx-w [role=\"button\"]:focus-visible,.sfx-bar [role=\"button\"]:focus-visible{box-shadow:0 0 0 3px #f6b73c!important;}\n        .sfx-w{background:#fff;border:1px solid #efe3ee;border-radius:26px;padding:28px 24px;box-shadow:0 18px 50px rgba(35,35,63,.12);margin-bottom:20px;color:#23233f;}\n        .sfx-welcome{position:relative;overflow:hidden;text-align:center;padding:42px 26px 30px;border:0;color:#fff;background:radial-gradient(circle at 12% 0%,rgba(255,255,255,.22) 0%,rgba(255,255,255,0) 45%),radial-gradient(circle at 100% 100%,rgba(255,255,255,.18) 0%,rgba(255,255,255,0) 50%),linear-gradient(150deg,#8f1049 0%,#b3195c 48%,#e0567f 100%);}\n        .sfx-badge{display:inline-block;background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.6);font-weight:800;font-size:11.5px;letter-spacing:.09em;padding:6px 16px;border-radius:999px;margin-bottom:18px;}\n        .sfx-dorka-nagy{display:block;width:120px;height:120px;border-radius:50%;object-fit:cover;margin:0 auto 14px;border:5px solid #fff;box-shadow:0 10px 26px rgba(0,0,0,.28);background:#fff;}\n        .sfx-dorka-sor{display:flex;align-items:center;gap:14px;margin:0 0 6px;}\n        .sfx-dorka-sor h2{margin:2px 0 4px;}\n        .sfx-dorka-sor .sfx-sub{margin:0;}\n        .sfx-dorka-kicsi{flex:0 0 72px;width:72px;height:72px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 6px 16px rgba(35,35,63,.22);background:#fff;}\n        .sfx-welcome h1{font-size:clamp(28px,6vw,42px);line-height:1.12;margin:0 0 14px;color:#fff;font-weight:800;letter-spacing:-.01em;}\n        \/* v9.761: a t\u00e9ma c\u00edmsz\u00edn-szab\u00e1lya fel\u00fcl\u00edrta a feh\u00e9ret (r\u00f3zsasz\u00edn a r\u00f3zsasz\u00ednen) *\/\n        .sfx-app .sfx-welcome h1,.sfx-w.sfx-welcome h1,.sfx-welcome h1{color:#fff !important;-webkit-text-fill-color:#fff !important;}\n        .sfx-lead{font-size:17px;line-height:1.6;color:#fff;opacity:.94;max-width:540px;margin:0 auto 22px;}\n        .sfx-feat{list-style:none;margin:0 auto 28px;padding:0;max-width:520px;text-align:left;display:grid;gap:12px;}\n        .sfx-feat li{position:relative;padding-left:38px;font-size:15.5px;line-height:1.45;color:#fff;}\n        .sfx-feat li:before{content:\"\\2713\";position:absolute;left:0;top:-1px;width:26px;height:26px;border-radius:50%;background:#fff;color:#b3195c;font-weight:900;font-size:14px;display:flex;align-items:center;justify-content:center;}\n        .sfx-big{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,#ff7a8f,#e0567f 55%,#c8416a)!important;color:#fff!important;border:0!important;font-weight:800;font-size:18px;line-height:1.2;padding:17px 40px;border-radius:16px!important;box-shadow:0 10px 28px rgba(224,86,127,.5);transition:transform .15s,box-shadow .15s;text-decoration:none;}\n        .sfx-big:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(224,86,127,.6);}\n        .sfx-fine{font-size:12.5px;color:#7b7d99;margin:14px 0 0;}\n        .sfx-note{max-width:540px;margin:12px auto 0;font-size:11.5px;line-height:1.55;color:#7b7d99;}\n        .sfx-wiz h2{font-size:27px;color:#23233f;margin:2px 0 6px;font-weight:800;letter-spacing:-.01em;}\n        .sfx-sub{color:#5f6080;font-size:15.5px;margin:0 0 20px;line-height:1.5;}\n        .sfx-dots{display:flex;gap:8px;margin-bottom:18px;}\n        .sfx-dots i{display:block;flex:1;max-width:70px;height:6px;border-radius:99px;background:#efe3ee;}\n        .sfx-dots i.on{background:linear-gradient(90deg,#b3195c,#e0567f);}\n        .sfx-card{display:block;width:100%;text-align:left;background:#fff!important;color:#23233f!important;border:2px solid #eadcea!important;border-radius:18px!important;padding:18px 20px;margin:0 0 12px;box-shadow:0 4px 14px rgba(35,35,63,.05);transition:transform .12s,border-color .12s,box-shadow .12s,background .12s;}\n        .sfx-card:hover{transform:translateY(-2px);border-color:#b3195c!important;box-shadow:0 10px 26px rgba(35,35,63,.14);background:#fff!important;color:#23233f!important;}\n        .sfx-card b{display:block;font-size:18px;font-weight:800;color:#23233f!important;margin-bottom:4px;}\n        .sfx-card span{display:block;font-size:14.5px;line-height:1.5;color:#5f6080!important;}\n        .sfx-card-main{background:linear-gradient(135deg,#23233f,#6b1747)!important;border-color:transparent!important;padding:22px;box-shadow:0 12px 30px rgba(35,35,63,.35);}\n        .sfx-card-main:hover{background:linear-gradient(135deg,#3a1540,#8a1b52)!important;border-color:transparent!important;}\n        .sfx-card-main b{color:#fff!important;font-size:21px;}\n        .sfx-card-main span{color:#f0dcef!important;font-size:15px;}\n        .sfx-vagy{text-align:center;color:#7b7d99;font-size:13.5px;margin:20px 0 14px;font-weight:600;}\n        .sfx-levels{display:grid;grid-template-columns:1fr 1fr;gap:12px;}\n        .sfx-levels .sfx-card{margin:0;padding:16px;display:flex;gap:13px;align-items:flex-start;}\n        .sfx-levels .sfx-card b{font-size:16px;}\n        .sfx-levels .sfx-card span{font-size:13px;}\n        .sfx-levels .sfx-card[aria-pressed=\"true\"]{border-color:#b3195c!important;background:#fdf0f5!important;}\n        .lvb{flex:0 0 46px;width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-style:normal;font-weight:900;font-size:16px;color:#fff;}\n        .lvb.l0{background:#2fb67c;}.lvb.lA1{background:#2d9cdb;}.lvb.lA2{background:#8a5cf6;}.lvb.lB1{background:#f59e0b;}\n        .sfx-modes .sfx-card{display:flex;gap:16px;align-items:center;}\n        .sfx-ic{flex:0 0 52px;width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,#b3195c,#e0567f);display:flex;align-items:center;justify-content:center;}\n        .sfx-ic svg{width:26px;height:26px;fill:#fff;}\n        .sfx-prev{display:flex;justify-content:center;align-items:center;gap:26px;margin:4px 0 20px;padding:18px;background:linear-gradient(135deg,#fdf0f5,#f2edfb);border-radius:20px;}\n        .sfx-prev .sz-fo{text-align:center;font-size:13.5px;color:#23233f;font-weight:700;}\n        .sfx-prev .kep{width:96px;height:96px;border-radius:50%;overflow:hidden;margin:0 auto 6px;border:4px solid #fff;box-shadow:0 8px 20px rgba(35,35,63,.2);}\n        .sfx-prev svg{display:block;width:100%;height:100%;}\n        .sfx-prev .sz-vs{font-size:24px;color:#b3195c;}\n        .sfx-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:24px;}\n        .sfx-nav .sfx-next{font-size:16.5px;padding:15px 30px;}\n        .sfx-back{background:none!important;border:0!important;color:#5f6080!important;font-weight:700;font-size:15px;padding:10px 6px;text-decoration:underline;}\n        .sfx-chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px;}\n        .sfx-chips [role=\"button\"]{background:#fff!important;border:2px solid #eadcea!important;color:#23233f!important;font-weight:700;font-size:14.5px;padding:10px 18px;border-radius:999px!important;}\n        .sfx-chips [role=\"button\"][aria-pressed=\"true\"]{background:#23233f!important;border-color:#23233f!important;color:#fff!important;}\n        \/* szintfelm\u00e9r\u0151 \u00e9s avatar-szerkeszt\u0151 elemei (div role=button, hogy a t\u00e9ma gombst\u00edlusa ne zavarja) *\/\n        .sfx-wiz .szint-teszt{border-top:0;margin:0;padding:0;}\n        .sfx-wiz .szint-teszt h3{color:#b3195c;font-size:15px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;margin:0 0 10px;}\n        .sfx-wiz .sz-prog{height:8px;background:#efe3ee;border-radius:99px;overflow:hidden;margin-bottom:12px;}\n        .sfx-wiz .sz-prog i{display:block;height:100%;background:linear-gradient(90deg,#b3195c,#e0567f);}\n        .sfx-wiz .sz-kerdes{font-size:20px;font-weight:700;color:#23233f;margin:0 0 16px;line-height:1.4;}\n        .sfx-wiz .sz-valasz{display:block;width:100%;text-align:left;background:#fff!important;color:#23233f!important;border:2px solid #eadcea!important;border-radius:14px!important;padding:15px 18px;font-size:16.5px;margin:0 0 10px;transition:border-color .12s,background .12s;}\n        .sfx-wiz .sz-valasz:hover{border-color:#b3195c!important;background:#fdf0f5!important;}\n        .sfx-wiz .sz-valasz.nem{border-style:dashed!important;color:#7b7d99!important;font-size:15px;}\n        .sfx-wiz .sz-nagy{font-size:34px;font-weight:900;color:#b3195c;margin:8px 0 10px;}\n        .sfx-wiz .sz-gomb{display:inline-block;background:linear-gradient(135deg,#b3195c,#e0567f)!important;color:#fff!important;border:0!important;border-radius:14px!important;padding:14px 26px;font-weight:800;font-size:16px;margin:14px 10px 0 0;}\n        .sfx-wiz .sz-gomb.mas{background:#fff!important;color:#5f6080!important;border:2px solid #eadcea!important;}\n        .sfx-wiz .szint-szerkeszto{border-top:0;margin:0;padding:0;display:block!important;}\n        .sfx-wiz .szint-szerkeszto .sz-cim{color:#b3195c;font-size:12.5px;font-weight:800;letter-spacing:.06em;margin:20px 0 10px;}\n        .sfx-wiz .szint-szerkeszto .sz-sor{margin:0 0 10px;gap:8px;}\n        .sfx-wiz .szint-szerkeszto .sz-sor > span{font-size:13.5px;color:#5f6080;min-width:74px;font-weight:600;}\n        .sfx-wiz .szint-chip{display:inline-block;background:#fff!important;border:2px solid #eadcea!important;color:#23233f!important;font-weight:700;font-size:14px;padding:8px 15px;border-radius:999px!important;}\n        .sfx-wiz .szint-chip[aria-pressed=\"true\"]{background:#23233f!important;border-color:#23233f!important;color:#fff!important;}\n        .sfx-wiz .szint-sw{display:inline-block;width:34px;height:34px;border-radius:50%!important;border:3px solid #fff!important;box-shadow:0 0 0 1.5px #d8c8d8;padding:0;}\n        .sfx-wiz .szint-sw[aria-pressed=\"true\"]{box-shadow:0 0 0 3px #b3195c;}\n        .sfx-wiz .szint-partnerek{gap:12px;}\n        .sfx-wiz .szint-partner{display:flex;gap:12px;align-items:center;text-align:left;background:#fff!important;border:2px solid #eadcea!important;border-radius:16px!important;padding:12px;color:#23233f!important;}\n        .sfx-wiz .szint-partner:hover{border-color:#b3195c!important;}\n        .sfx-wiz .szint-partner[aria-pressed=\"true\"]{border-color:#b3195c!important;background:#fdf0f5!important;}\n        .sfx-wiz .szint-partner b{font-size:15px;color:#23233f;}\n        .sfx-wiz .szint-partner span.t{font-size:13px;color:#5f6080;}\n        .sfx-wiz .szint-mini{flex:0 0 52px;width:52px;height:52px;}\n        \/* az asszisztens f\u0151 n\u00e9zete *\/\n        .sfx-bar{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#23233f,#b3195c);border-radius:20px;padding:12px 16px;margin-bottom:16px;box-shadow:0 10px 26px rgba(35,35,63,.25);}\n        .sfx-bar-av{flex:0 0 44px;width:44px;height:44px;border:2px solid rgba(255,255,255,.7)!important;}\n        .sfx-bar-t{flex:1;font-size:15px;color:#e9d9ea;}\n        .sfx-bar-t strong{color:#fff;}\n        .sfx-bar-btn{background:rgba(255,255,255,.14)!important;color:#fff!important;border:1.5px solid rgba(255,255,255,.55)!important;font-weight:700;font-size:13px;padding:9px 16px;border-radius:999px!important;}\n        .sfx-bar-btn:hover{background:rgba(255,255,255,.26)!important;}\n        .sfx-app .staffix-aiaj-modvalto{display:flex;flex-wrap:nowrap;gap:4px;background:#fbe6ee;border-radius:16px;padding:5px;margin-bottom:16px;}\n        .sfx-app .staffix-aiaj-mod-btn{flex:1;max-width:none;border:0!important;background:transparent!important;color:#b3195c!important;border-radius:12px!important;padding:12px 6px;font-size:14.5px;font-weight:700;box-shadow:none!important;}\n        .sfx-app .staffix-aiaj-mod-btn.is-active{background:#fff!important;color:#b3195c!important;box-shadow:0 4px 14px rgba(35,35,63,.16)!important;}\n        .sfx-app .staffix-aiaj-pozicio-sor select{border-radius:12px;border:1.5px solid #eadcea;padding:10px 12px;background:#fff;}\n        .sfx-app .staffix-aiaj-chat{background:#fff;border:1px solid #efe3ee;border-radius:22px;box-shadow:0 8px 28px rgba(35,35,63,.08);}\n        .sfx-app .staffix-aiaj-bubi.en{background:linear-gradient(135deg,#b3195c,#c8416a);border-radius:18px 18px 4px 18px;}\n        .sfx-app .staffix-aiaj-bubi.ai{background:#f8f2f8;border:1px solid #efe3ee;border-radius:18px 18px 18px 4px;}\n        .sfx-app .staffix-aiaj-beviteli-sor textarea{border-radius:16px;border:1.5px solid #eadcea;}\n        .sfx-app .staffix-aiaj-send-btn{background:linear-gradient(135deg,#23233f,#6b1747);border-radius:16px;}\n        .sfx-app-fine{font-size:11.5px;color:#999;text-align:center;line-height:1.5;margin:10px 0 0;}\n        @media (max-width:560px){.sfx-w{padding:22px 16px;border-radius:22px;}.sfx-welcome{padding:34px 18px 26px;}.sfx-levels{grid-template-columns:1fr;}.sfx-prev .kep{width:80px;height:80px;}.sfx-big{width:100%;}.sfx-nav .sfx-next{width:auto;}.sfx-wiz h2{font-size:23px;}}\n        .sfx-welcome .sfx-fine,.sfx-welcome .sfx-note{color:#ffe3ee;}\n        .sfx-welcome .sfx-big{background:#fff!important;color:#b3195c!important;box-shadow:0 12px 30px rgba(60,0,30,.35);}\n        .sfx-welcome .sfx-big:hover{box-shadow:0 16px 36px rgba(60,0,30,.45);}\n        .sfx-card-main{background:linear-gradient(135deg,#b3195c,#e0567f)!important;}\n        .sfx-card-main:hover{background:linear-gradient(135deg,#a01350,#d63b78)!important;}\n        .sfx-bar{background:linear-gradient(135deg,#b3195c,#e0567f);box-shadow:0 10px 26px rgba(179,25,92,.3);}\n        .sfx-bar-t{color:#fff;}\n        .staffix-aiaj-modvalto .staffix-aiaj-mod-btn{display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.2;cursor:pointer;user-select:none;-webkit-user-select:none;}\n        .sfx-app .staffix-aiaj-mod-btn.is-active{color:#b3195c!important;}\n        .sfx-app .staffix-aiaj-send-btn{background:linear-gradient(135deg,#b3195c,#e0567f);}\n        \/* ===== v9.748: leny\u00edl\u00f3 v\u00e1laszt\u00f3k, rendezettebb n\u00e9zet ===== *\/\n        .sfx-w .acc,.sfx-helyzet .acc{border:2px solid #ecdde6;border-radius:16px;margin:0 0 10px;background:#fff;overflow:hidden;}\n        .sfx-w .acc.open,.sfx-helyzet .acc.open{border-color:#b3195c;}\n        .acc-h{display:flex;align-items:center;gap:10px;padding:14px 16px;cursor:pointer;user-select:none;-webkit-user-select:none;}\n        .acc-t{flex:1;font-weight:800;color:#23233f;font-size:16px;}\n        .acc-v{display:flex;align-items:center;gap:8px;color:#5f6080;font-size:14px;font-weight:600;}\n        .acc-dot{display:inline-block;width:24px;height:24px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1.5px #d8c8d8;}\n        .acc-v .sm{width:28px;height:28px;border-radius:50%;overflow:hidden;display:inline-block;flex:0 0 28px;}\n        .acc-v .sm svg{display:block;width:100%;height:100%;}\n        .acc-ch{width:9px;height:9px;border-right:2.5px solid #b3195c;border-bottom:2.5px solid #b3195c;transform:rotate(45deg);margin:-3px 4px 0 2px;transition:transform .15s;}\n        .acc.open .acc-ch{transform:rotate(-135deg);margin-top:4px;}\n        .acc-b{display:none;padding:2px 16px 16px;gap:10px;flex-wrap:wrap;}\n        .acc.open .acc-b{display:flex;}\n        .sfx-wiz .szint-partnerek{width:100%;grid-template-columns:1fr 1fr;}\n        .sfx-helyzet{margin:0 0 14px;}\n        .sfx-sit-fej{font-weight:800;color:#23233f;font-size:17px;margin:0 0 10px;}\n        .sfx-sit-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;}\n        .sfx-sit{background:#fff;border:2px solid #ecdde6;border-radius:14px;padding:12px 12px;font-size:14px;font-weight:700;color:#23233f;line-height:1.3;cursor:pointer;text-align:left;}\n        .sfx-sit:hover{border-color:#b3195c;background:#fdf0f5;}\n        .sfx-sit-sum{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fdf0f5;border:1.5px solid #f3c9da;border-radius:16px;padding:10px 14px;font-size:14.5px;color:#23233f;}\n        .sfx-sit-sum b{color:#b3195c;}\n        .sfx-mini-btn{background:#fff;color:#b3195c;border:1.5px solid #b3195c;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;}\n        .sfx-bar-t > div:first-child{font-size:15px;}\n        .sfx-bar-poz{font-size:12.5px;color:#ffe3ee;cursor:pointer;margin-top:2px;text-decoration:underline;text-underline-offset:2px;}\n        .sfx-app #staffix-aiaj-szerep-sor{display:none!important;}\n        .sfx-app #staffix-aiaj-pozicio-sor{margin:10px 0 8px;justify-content:flex-start;}\n        .sfx-app #staffix-aiaj-pozicio-sor select{max-width:100%;flex:1 1 220px;}\n        .sfx-app .sfx-bar-poz{display:none!important;}\n        .sfx-app .staffix-aiaj-beviteli-sor{margin:6px 0 8px;}\n        .sfx-app .staffix-aiaj-chat{min-height:200px;max-height:55vh;}\n        .sfx-seg{display:flex;gap:6px;background:#f6edf4;border-radius:16px;padding:5px;margin:2px 0 12px;}\n        .sfx-seg-b{flex:1;text-align:center;padding:10px 6px;border-radius:12px;font-weight:700;font-size:14.5px;color:#5f6080;cursor:pointer;user-select:none;}\n        .sfx-seg-b.is-on{background:#fff;color:#b3195c;box-shadow:0 1px 5px rgba(179,25,92,.18);}\n        .sfx-gyak-lista{margin:0 0 14px;}\n        .sfx-gyak-kartya{max-width:100%!important;width:100%;box-sizing:border-box;white-space:normal!important;}\n        .sfx-gyak-uj{display:block;text-align:center;margin-top:14px;padding:14px 18px;border-radius:999px;background:linear-gradient(135deg,#b3195c,#e0567f);color:#fff;font-weight:700;font-size:15.5px;cursor:pointer;user-select:none;}\n        .sfx-gyak-info{color:#5f6080;text-align:center;padding:22px 8px;font-size:14.5px;}\n        .sfx-auto-sor{margin:0 0 12px;}\n        .sfx-auto-sor .sfx-auto-toggle{font-size:13.5px;font-weight:600;color:#23233f;display:flex;align-items:center;gap:8px;}\n        .sfx-app .staffix-aiaj-chat{margin-top:4px;}\n        .sfx-tipp-toggle,.sfx-eszk-toggle{flex:0 0 100%;text-align:center;font-size:13px;font-weight:700;color:#b3195c;cursor:pointer;padding:6px;text-decoration:underline;text-underline-offset:3px;}\n\n        \/* v9.761: t\u00f6m\u00f6rebb, telefonbar\u00e1t bevitel + g\u00f6rd\u00fcl\u00e9keny \"tov\u00e1bb\" gomb *\/\n        .sfx-mic-hosszu,.mic-hosszu{display:inline;}\n        .mic-rovid{display:none;}\n        .staffix-aiaj-bubi.sfx-fordit{background:#eef3fb !important;border:1px solid #cfdcef !important;}\n        .sfx-fordit-cim{font-size:12.5px;font-weight:800;letter-spacing:.02em;color:#18305c;margin:0 0 8px;}\n        .sfx-tovabb{display:block;margin:12px 0 2px;text-align:center;padding:13px 18px;border-radius:999px;background:linear-gradient(135deg,#b3195c,#e0567f);color:#fff !important;font-weight:800;font-size:15.5px;cursor:pointer;user-select:none;-webkit-text-fill-color:#fff;}\n        .sfx-tovabb-info{font-size:12.5px;color:#5f6080;text-align:center;margin-top:6px;}\n        .sfx-app .staffix-aiaj-gyors-sor:not(.sfx-tip-open) button{display:none !important;}\n        .sfx-app .staffix-aiaj-gyors-sor{gap:6px;margin:0 0 6px;}\n        @media (max-width:640px){\n            .sfx-app .staffix-aiaj-beviteli-sor{display:flex !important;flex-wrap:wrap !important;gap:8px !important;align-items:stretch !important;}\n            .sfx-app .staffix-aiaj-beviteli-sor textarea{flex:1 1 100% !important;order:1 !important;min-height:56px !important;}\n            .sfx-app .staffix-aiaj-mic-btn{flex:0 0 auto !important;order:2 !important;min-width:0 !important;height:46px !important;padding:0 14px !important;gap:5px !important;font-size:13px !important;}\n            .sfx-app .staffix-aiaj-mic-btn .mic-hosszu{display:none !important;}\n            .sfx-app .staffix-aiaj-mic-btn .mic-rovid{display:inline !important;font-weight:800;}\n            .sfx-app .staffix-aiaj-send-btn{flex:1 1 0 !important;order:3 !important;height:46px !important;padding:0 14px !important;font-size:15px !important;}\n            .sfx-app .sfx-auto-sor{margin:0 0 6px !important;}\n            .sfx-app .staffix-aiaj-beallitasok{gap:8px !important;}\n        }\n        .sfx-app .staffix-aiaj-gyors-tipp{display:none;}\n        .sfx-app .sfx-tip-open .staffix-aiaj-gyors-tipp{display:block;}\n        .sfx-app .staffix-aiaj-beallitasok.sfx-zart > *:not(.sfx-keep):not(.sfx-eszk-toggle){display:none!important;}\n        .sfx-app .staffix-aiaj-beallitasok{justify-content:flex-start;gap:14px;}\n        @media (max-width:560px){.sfx-sit-grid{grid-template-columns:1fr;}.sfx-wiz .szint-partnerek{grid-template-columns:1fr;}}\n    <\/style>\n\n    <script>\n    (function(){\n        var CFG = {\"ajax_url\":\"https:\\\/\\\/stafforex.eu\\\/wp-admin\\\/admin-ajax.php\",\"nonce\":\"c1cf0c5427\",\"logged_in\":false,\"szerver_prefs\":{},\"customer_email\":\"\",\"ar_alap\":20,\"ar_premium\":45,\"ar_alap_lista\":20,\"ar_premium_lista\":45,\"kedvezmenyes\":false,\"ingyen_limit\":20,\"premium\":false,\"whisper\":false,\"szerver_tts\":false,\"poz_szotar_kulcs\":{\"Konyha\":\"konyha\",\"Housekeeping \\\/ Takar\\u00edt\\u00e1s\":\"szoba\",\"Kellner (felszolg\\u00e1l\\u00f3)\":\"felszolgalo\",\"Mosogat\\u00f3\":\"mosogato\",\"\\u00c1ltal\\u00e1nos tudnival\\u00f3k\":\"altalanos\"},\"szotarak\":{\"mosogato\":[{\"cim\":\"Gegenst\\u00e4nde\",\"parok\":[{\"n\":\"der Teller\",\"m\":\"t\\u00e1ny\\u00e9r\"},{\"n\":\"das Glas\",\"m\":\"poh\\u00e1r\"},{\"n\":\"die Tasse\",\"m\":\"cs\\u00e9sze\"},{\"n\":\"das Besteck\",\"m\":\"ev\\u0151eszk\\u00f6z\"},{\"n\":\"die Gabel\",\"m\":\"villa\"},{\"n\":\"das Messer\",\"m\":\"k\\u00e9s\"},{\"n\":\"der L\\u00f6ffel\",\"m\":\"kan\\u00e1l\"},{\"n\":\"der Topf\",\"m\":\"faz\\u00e9k\"},{\"n\":\"die Pfanne\",\"m\":\"serpeny\\u0151\"},{\"n\":\"das Tablett\",\"m\":\"t\\u00e1lca\"}]},{\"cim\":\"Orte und Ger\\u00e4te\",\"parok\":[{\"n\":\"die K\\u00fcche\",\"m\":\"konyha\"},{\"n\":\"die Sp\\u00fclk\\u00fcche\",\"m\":\"mosogat\\u00f3helyis\\u00e9g\"},{\"n\":\"das Sp\\u00fclbecken\",\"m\":\"mosogat\\u00f3medence\"},{\"n\":\"die Sp\\u00fclmaschine\",\"m\":\"mosogat\\u00f3g\\u00e9p\"},{\"n\":\"der K\\u00fchlschrank\",\"m\":\"h\\u0171t\\u0151szekr\\u00e9ny\"},{\"n\":\"das Lager\",\"m\":\"rakt\\u00e1r\"},{\"n\":\"der M\\u00fclleimer\",\"m\":\"szemetes\"},{\"n\":\"der Abfall\",\"m\":\"hullad\\u00e9k\"},{\"n\":\"der Boden\",\"m\":\"padl\\u00f3\"},{\"n\":\"die Arbeitsfl\\u00e4che\",\"m\":\"munkafel\\u00fclet\"}]},{\"cim\":\"Reinigung\",\"parok\":[{\"n\":\"das Sp\\u00fclmittel\",\"m\":\"mosogat\\u00f3szer\"},{\"n\":\"der Schwamm\",\"m\":\"szivacs\"},{\"n\":\"das Tuch\",\"m\":\"kend\\u0151\"},{\"n\":\"der Eimer\",\"m\":\"v\\u00f6d\\u00f6r\"},{\"n\":\"der Besen\",\"m\":\"sepr\\u0171\"},{\"n\":\"die Handschuhe\",\"m\":\"keszty\\u0171\"},{\"n\":\"die Sch\\u00fcrze\",\"m\":\"k\\u00f6t\\u00e9ny\"},{\"n\":\"sauber\",\"m\":\"tiszta\"},{\"n\":\"schmutzig\",\"m\":\"piszkos\"},{\"n\":\"nass\",\"m\":\"nedves\"}]},{\"cim\":\"Verben\",\"parok\":[{\"n\":\"sp\\u00fclen\",\"m\":\"mosogat\"},{\"n\":\"abwaschen\",\"m\":\"elmosogat\"},{\"n\":\"abtrocknen\",\"m\":\"megt\\u00f6r\\u00f6lget\"},{\"n\":\"putzen\",\"m\":\"takar\\u00edt\"},{\"n\":\"wischen\",\"m\":\"felmos\"},{\"n\":\"wegwerfen\",\"m\":\"kidob\"},{\"n\":\"tragen\",\"m\":\"visz\"},{\"n\":\"stapeln\",\"m\":\"\\u00f6sszerak\"},{\"n\":\"auff\\u00fcllen\",\"m\":\"felt\\u00f6lt\"},{\"n\":\"abr\\u00e4umen\",\"m\":\"leszed\"}]},{\"cim\":\"Wichtige S\\u00e4tze\",\"parok\":[{\"n\":\"Ich habe eine Frage.\",\"m\":\"K\\u00e9rd\\u00e9sem van.\"},{\"n\":\"Ich verstehe nicht.\",\"m\":\"Nem \\u00e9rtem.\"},{\"n\":\"Bitte langsam.\",\"m\":\"Lassan k\\u00e9rem.\"},{\"n\":\"Was soll ich tun?\",\"m\":\"Mit csin\\u00e1ljak?\"},{\"n\":\"Wo ist der M\\u00fclleimer?\",\"m\":\"Hol van a szemetes?\"},{\"n\":\"Ich bin fertig.\",\"m\":\"K\\u00e9sz vagyok.\"},{\"n\":\"Ich brauche Hilfe.\",\"m\":\"Seg\\u00edts\\u00e9gre van sz\\u00fcks\\u00e9gem.\"},{\"n\":\"Der Teller ist kaputt.\",\"m\":\"A t\\u00e1ny\\u00e9r elt\\u00f6rt.\"},{\"n\":\"Wann ist Pause?\",\"m\":\"Mikor van sz\\u00fcnet?\"},{\"n\":\"Entschuldigung.\",\"m\":\"Eln\\u00e9z\\u00e9st.\"}]}],\"konyha\":[{\"cim\":\"Zutaten\",\"parok\":[{\"n\":\"das Fleisch\",\"m\":\"h\\u00fas\"},{\"n\":\"das H\\u00e4hnchen\",\"m\":\"csirke\"},{\"n\":\"der Fisch\",\"m\":\"hal\"},{\"n\":\"das Gem\\u00fcse\",\"m\":\"z\\u00f6lds\\u00e9g\"},{\"n\":\"die Kartoffel\",\"m\":\"burgonya\"},{\"n\":\"die Zwiebel\",\"m\":\"hagyma\"},{\"n\":\"der Knoblauch\",\"m\":\"fokhagyma\"},{\"n\":\"das Ei\",\"m\":\"toj\\u00e1s\"},{\"n\":\"die Butter\",\"m\":\"vaj\"},{\"n\":\"das Mehl\",\"m\":\"liszt\"}]},{\"cim\":\"Ger\\u00e4te\",\"parok\":[{\"n\":\"das Messer\",\"m\":\"k\\u00e9s\"},{\"n\":\"das Schneidebrett\",\"m\":\"v\\u00e1g\\u00f3deszka\"},{\"n\":\"der Herd\",\"m\":\"t\\u0171zhely\"},{\"n\":\"der Ofen\",\"m\":\"s\\u00fct\\u0151\"},{\"n\":\"die Pfanne\",\"m\":\"serpeny\\u0151\"},{\"n\":\"der Topf\",\"m\":\"faz\\u00e9k\"},{\"n\":\"die Waage\",\"m\":\"m\\u00e9rleg\"},{\"n\":\"der Schneebesen\",\"m\":\"habver\\u0151\"},{\"n\":\"die Sch\\u00fcssel\",\"m\":\"t\\u00e1l\"},{\"n\":\"die Reibe\",\"m\":\"reszel\\u0151\"}]},{\"cim\":\"T\\u00e4tigkeiten\",\"parok\":[{\"n\":\"schneiden\",\"m\":\"v\\u00e1g\"},{\"n\":\"kochen\",\"m\":\"f\\u0151z\"},{\"n\":\"braten\",\"m\":\"s\\u00fct serpeny\\u0151ben\"},{\"n\":\"backen\",\"m\":\"s\\u00fct s\\u00fct\\u0151ben\"},{\"n\":\"w\\u00fcrzen\",\"m\":\"f\\u0171szerez\"},{\"n\":\"r\\u00fchren\",\"m\":\"kever\"},{\"n\":\"sch\\u00e4len\",\"m\":\"h\\u00e1moz\"},{\"n\":\"waschen\",\"m\":\"mos\"},{\"n\":\"d\\u00fcnsten\",\"m\":\"p\\u00e1rol\"},{\"n\":\"anrichten\",\"m\":\"t\\u00e1lal\"}]},{\"cim\":\"Hygiene und Ordnung\",\"parok\":[{\"n\":\"die Hygiene\",\"m\":\"higi\\u00e9nia\"},{\"n\":\"sauber\",\"m\":\"tiszta\"},{\"n\":\"frisch\",\"m\":\"friss\"},{\"n\":\"die Allergie\",\"m\":\"allergia\"},{\"n\":\"das Lager\",\"m\":\"rakt\\u00e1r\"},{\"n\":\"der K\\u00fchlraum\",\"m\":\"h\\u0171t\\u0151kamra\"},{\"n\":\"das Haltbarkeitsdatum\",\"m\":\"szavatoss\\u00e1gi id\\u0151\"},{\"n\":\"der Abfall\",\"m\":\"hullad\\u00e9k\"},{\"n\":\"die Sch\\u00fcrze\",\"m\":\"k\\u00f6t\\u00e9ny\"},{\"n\":\"die Kochm\\u00fctze\",\"m\":\"szak\\u00e1cssapka\"}]},{\"cim\":\"Wichtige S\\u00e4tze\",\"parok\":[{\"n\":\"Die Bestellung ist fertig.\",\"m\":\"Elk\\u00e9sz\\u00fclt a rendel\\u00e9s.\"},{\"n\":\"Wie viele Portionen?\",\"m\":\"H\\u00e1ny adag?\"},{\"n\":\"Das ist zu hei\\u00df.\",\"m\":\"Ez t\\u00fal forr\\u00f3.\"},{\"n\":\"Ich brauche mehr Zeit.\",\"m\":\"T\\u00f6bb id\\u0151re van sz\\u00fcks\\u00e9gem.\"},{\"n\":\"Achtung hei\\u00df!\",\"m\":\"Vigy\\u00e1zat forr\\u00f3!\"},{\"n\":\"Wo ist das Salz?\",\"m\":\"Hol van a s\\u00f3?\"},{\"n\":\"Ist das fertig?\",\"m\":\"K\\u00e9sz ez?\"},{\"n\":\"Ich habe eine Frage.\",\"m\":\"K\\u00e9rd\\u00e9sem van.\"},{\"n\":\"Noch einmal bitte.\",\"m\":\"M\\u00e9g egyszer k\\u00e9rem.\"},{\"n\":\"Was ist das Rezept?\",\"m\":\"Mi a recept?\"}]}],\"szoba\":[{\"cim\":\"Das Zimmer\",\"parok\":[{\"n\":\"das Zimmer\",\"m\":\"szoba\"},{\"n\":\"das Bett\",\"m\":\"\\u00e1gy\"},{\"n\":\"das Kissen\",\"m\":\"p\\u00e1rna\"},{\"n\":\"die Decke\",\"m\":\"takar\\u00f3\"},{\"n\":\"das Bettlaken\",\"m\":\"leped\\u0151\"},{\"n\":\"die Bettw\\u00e4sche\",\"m\":\"\\u00e1gynem\\u0171\"},{\"n\":\"das Handtuch\",\"m\":\"t\\u00f6r\\u00f6lk\\u00f6z\\u0151\"},{\"n\":\"der Schrank\",\"m\":\"szekr\\u00e9ny\"},{\"n\":\"das Fenster\",\"m\":\"ablak\"},{\"n\":\"der Vorhang\",\"m\":\"f\\u00fcgg\\u00f6ny\"}]},{\"cim\":\"Das Bad\",\"parok\":[{\"n\":\"das Bad\",\"m\":\"f\\u00fcrd\\u0151szoba\"},{\"n\":\"die Toilette\",\"m\":\"v\\u00e9c\\u00e9\"},{\"n\":\"die Dusche\",\"m\":\"zuhany\"},{\"n\":\"das Waschbecken\",\"m\":\"mosd\\u00f3\"},{\"n\":\"der Spiegel\",\"m\":\"t\\u00fck\\u00f6r\"},{\"n\":\"die Seife\",\"m\":\"szappan\"},{\"n\":\"das Shampoo\",\"m\":\"sampon\"},{\"n\":\"das Toilettenpapier\",\"m\":\"v\\u00e9c\\u00e9pap\\u00edr\"},{\"n\":\"der M\\u00fclleimer\",\"m\":\"szemetes\"},{\"n\":\"die Badewanne\",\"m\":\"k\\u00e1d\"}]},{\"cim\":\"Ger\\u00e4te und Mittel\",\"parok\":[{\"n\":\"der Putzwagen\",\"m\":\"takar\\u00edt\\u00f3kocsi\"},{\"n\":\"der Staubsauger\",\"m\":\"porsz\\u00edv\\u00f3\"},{\"n\":\"der Wischmopp\",\"m\":\"felmos\\u00f3\"},{\"n\":\"der Eimer\",\"m\":\"v\\u00f6d\\u00f6r\"},{\"n\":\"das Putzmittel\",\"m\":\"tiszt\\u00edt\\u00f3szer\"},{\"n\":\"der Lappen\",\"m\":\"rongy\"},{\"n\":\"die Handschuhe\",\"m\":\"keszty\\u0171\"},{\"n\":\"die Minibar\",\"m\":\"minib\\u00e1r\"},{\"n\":\"die Zimmerliste\",\"m\":\"szobalista\"},{\"n\":\"der Schl\\u00fcssel\",\"m\":\"kulcs\"}]},{\"cim\":\"Verben\",\"parok\":[{\"n\":\"putzen\",\"m\":\"takar\\u00edt\"},{\"n\":\"saugen\",\"m\":\"porsz\\u00edv\\u00f3z\"},{\"n\":\"wischen\",\"m\":\"felmos\"},{\"n\":\"wechseln\",\"m\":\"cser\\u00e9l\"},{\"n\":\"Betten machen\",\"m\":\"\\u00e1gyat vet\"},{\"n\":\"auff\\u00fcllen\",\"m\":\"felt\\u00f6lt\"},{\"n\":\"l\\u00fcften\",\"m\":\"szell\\u0151ztet\"},{\"n\":\"abstauben\",\"m\":\"portalan\\u00edt\"},{\"n\":\"polieren\",\"m\":\"f\\u00e9nyes\\u00edt\"},{\"n\":\"zusammenlegen\",\"m\":\"\\u00f6sszehajt\"}]},{\"cim\":\"Wichtige S\\u00e4tze\",\"parok\":[{\"n\":\"Zimmerservice!\",\"m\":\"Szobaszolg\\u00e1lat!\"},{\"n\":\"Darf ich eintreten?\",\"m\":\"Bej\\u00f6hetek?\"},{\"n\":\"Wann soll ich putzen?\",\"m\":\"Mikor takar\\u00edtsak?\"},{\"n\":\"Bitte nicht st\\u00f6ren.\",\"m\":\"K\\u00e9rem ne zavarjon.\"},{\"n\":\"Brauchen Sie noch Handt\\u00fccher?\",\"m\":\"Kell m\\u00e9g t\\u00f6r\\u00f6lk\\u00f6z\\u0151?\"},{\"n\":\"Das Zimmer ist fertig.\",\"m\":\"A szoba k\\u00e9sz.\"},{\"n\":\"Ich habe etwas gefunden.\",\"m\":\"Tal\\u00e1ltam valamit.\"},{\"n\":\"Etwas ist kaputt.\",\"m\":\"Valami elromlott.\"},{\"n\":\"Der Gast ist abgereist.\",\"m\":\"A vend\\u00e9g elutazott.\"},{\"n\":\"Das Zimmer ist frei.\",\"m\":\"A szoba szabad.\"}]},{\"cim\":\"Gemeinschaftsbereiche und weitere Ger\\u00e4te\",\"parok\":[{\"n\":\"der Flur\",\"m\":\"folyos\\u00f3\"},{\"n\":\"die Treppe\",\"m\":\"l\\u00e9pcs\\u0151\"},{\"n\":\"der Aufzug\",\"m\":\"lift\"},{\"n\":\"der Eingang\",\"m\":\"bej\\u00e1rat\"},{\"n\":\"die Lobby\",\"m\":\"el\\u0151csarnok\"},{\"n\":\"der Boden\",\"m\":\"padl\\u00f3\"},{\"n\":\"der Besen\",\"m\":\"sepr\\u0171\"},{\"n\":\"die Kehrschaufel\",\"m\":\"lap\\u00e1t\"},{\"n\":\"der M\\u00fcllsack\",\"m\":\"szemeteszs\\u00e1k\"},{\"n\":\"das Desinfektionsmittel\",\"m\":\"fert\\u0151tlen\\u00edt\\u0151szer\"},{\"n\":\"der Glasreiniger\",\"m\":\"ablaktiszt\\u00edt\\u00f3\"},{\"n\":\"der Schwamm\",\"m\":\"szivacs\"}]},{\"cim\":\"Putzs\\u00e4tze und Zust\\u00e4nde\",\"parok\":[{\"n\":\"Achtung, der Boden ist nass!\",\"m\":\"Vigy\\u00e1zat, nedves a padl\\u00f3!\"},{\"n\":\"Welche Zimmer muss ich heute machen?\",\"m\":\"Mely szob\\u00e1kat kell ma elk\\u00e9sz\\u00edtenem?\"},{\"n\":\"Mir geht das Putzmittel aus.\",\"m\":\"Fogy a tiszt\\u00edt\\u00f3szerem.\"},{\"n\":\"Wo ist der M\\u00fcllraum?\",\"m\":\"Hol van a szem\\u00e9tt\\u00e1rol\\u00f3 helyis\\u00e9g?\"},{\"n\":\"Bitte nicht betreten.\",\"m\":\"K\\u00e9rem, ne l\\u00e9pjen be.\"},{\"n\":\"Ich bin gleich fertig.\",\"m\":\"Mindj\\u00e1rt k\\u00e9sz vagyok.\"},{\"n\":\"sauber\",\"m\":\"tiszta\"},{\"n\":\"schmutzig\",\"m\":\"piszkos\"},{\"n\":\"nass\",\"m\":\"nedves\"},{\"n\":\"trocken\",\"m\":\"sz\\u00e1raz\"},{\"n\":\"rutschig\",\"m\":\"cs\\u00fasz\\u00f3s\"},{\"n\":\"kehren\",\"m\":\"seper\"},{\"n\":\"desinfizieren\",\"m\":\"fert\\u0151tlen\\u00edt\"},{\"n\":\"entleeren\",\"m\":\"ki\\u00fcr\\u00edt\"}]}],\"felszolgalo\":[{\"cim\":\"Der Tisch\",\"parok\":[{\"n\":\"der Tisch\",\"m\":\"asztal\"},{\"n\":\"der Stuhl\",\"m\":\"sz\\u00e9k\"},{\"n\":\"die Speisekarte\",\"m\":\"\\u00e9tlap\"},{\"n\":\"die Getr\\u00e4nkekarte\",\"m\":\"itallap\"},{\"n\":\"die Serviette\",\"m\":\"szalv\\u00e9ta\"},{\"n\":\"das Tischtuch\",\"m\":\"abrosz\"},{\"n\":\"die Kerze\",\"m\":\"gyertya\"},{\"n\":\"das Tablett\",\"m\":\"t\\u00e1lca\"},{\"n\":\"die Flasche\",\"m\":\"\\u00fcveg\"},{\"n\":\"das Glas\",\"m\":\"poh\\u00e1r\"}]},{\"cim\":\"Essen und Trinken\",\"parok\":[{\"n\":\"die Vorspeise\",\"m\":\"el\\u0151\\u00e9tel\"},{\"n\":\"die Hauptspeise\",\"m\":\"f\\u0151\\u00e9tel\"},{\"n\":\"die Nachspeise\",\"m\":\"desszert\"},{\"n\":\"die Suppe\",\"m\":\"leves\"},{\"n\":\"der Salat\",\"m\":\"sal\\u00e1ta\"},{\"n\":\"das Wasser\",\"m\":\"v\\u00edz\"},{\"n\":\"der Wein\",\"m\":\"bor\"},{\"n\":\"das Bier\",\"m\":\"s\\u00f6r\"},{\"n\":\"der Kaffee\",\"m\":\"k\\u00e1v\\u00e9\"},{\"n\":\"der Saft\",\"m\":\"gy\\u00fcm\\u00f6lcsl\\u00e9\"}]},{\"cim\":\"Verben\",\"parok\":[{\"n\":\"bestellen\",\"m\":\"rendel\"},{\"n\":\"bringen\",\"m\":\"hoz\"},{\"n\":\"servieren\",\"m\":\"felszolg\\u00e1l\"},{\"n\":\"empfehlen\",\"m\":\"aj\\u00e1nl\"},{\"n\":\"eindecken\",\"m\":\"megter\\u00edt\"},{\"n\":\"abr\\u00e4umen\",\"m\":\"leszed\"},{\"n\":\"nachf\\u00fcllen\",\"m\":\"ut\\u00e1nt\\u00f6lt\"},{\"n\":\"reservieren\",\"m\":\"foglal\"},{\"n\":\"bezahlen\",\"m\":\"fizet\"},{\"n\":\"kassieren\",\"m\":\"sz\\u00e1ml\\u00e1z\"}]},{\"cim\":\"Der Gast\",\"parok\":[{\"n\":\"der Gast\",\"m\":\"vend\\u00e9g\"},{\"n\":\"die Reservierung\",\"m\":\"foglal\\u00e1s\"},{\"n\":\"die Rechnung\",\"m\":\"sz\\u00e1mla\"},{\"n\":\"das Trinkgeld\",\"m\":\"borraval\\u00f3\"},{\"n\":\"die Allergie\",\"m\":\"allergia\"},{\"n\":\"vegetarisch\",\"m\":\"veget\\u00e1ri\\u00e1nus\"},{\"n\":\"glutenfrei\",\"m\":\"glut\\u00e9nmentes\"},{\"n\":\"scharf\",\"m\":\"cs\\u00edp\\u0151s\"},{\"n\":\"hei\\u00df\",\"m\":\"forr\\u00f3\"},{\"n\":\"kalt\",\"m\":\"hideg\"}]},{\"cim\":\"Wichtige S\\u00e4tze\",\"parok\":[{\"n\":\"Guten Abend, willkommen!\",\"m\":\"J\\u00f3 est\\u00e9t, \\u00fcdv\\u00f6z\\u00f6lj\\u00fck!\"},{\"n\":\"Haben Sie reserviert?\",\"m\":\"Van foglal\\u00e1sa?\"},{\"n\":\"Was darf es sein?\",\"m\":\"Mit parancsol?\"},{\"n\":\"Haben Sie eine Allergie?\",\"m\":\"Van allergi\\u00e1ja?\"},{\"n\":\"M\\u00f6chten Sie noch etwas?\",\"m\":\"Szeretne m\\u00e9g valamit?\"},{\"n\":\"Zahlen Sie bar oder mit Karte?\",\"m\":\"K\\u00e9szp\\u00e9nzzel vagy k\\u00e1rty\\u00e1val fizet?\"},{\"n\":\"Einen Moment bitte.\",\"m\":\"Egy pillanat k\\u00e9rem.\"},{\"n\":\"Guten Appetit!\",\"m\":\"J\\u00f3 \\u00e9tv\\u00e1gyat!\"},{\"n\":\"Die Rechnung bitte.\",\"m\":\"A sz\\u00e1ml\\u00e1t k\\u00e9rem.\"},{\"n\":\"Vielen Dank.\",\"m\":\"K\\u00f6sz\\u00f6n\\u00f6m sz\\u00e9pen.\"}]}],\"recepcio\":[{\"cim\":\"Zimmer und Schl\\u00fcssel\",\"parok\":[{\"n\":\"die Rezeption\",\"m\":\"recepci\\u00f3\"},{\"n\":\"das Zimmer\",\"m\":\"szoba\"},{\"n\":\"das Einzelzimmer\",\"m\":\"egy\\u00e1gyas szoba\"},{\"n\":\"das Doppelzimmer\",\"m\":\"k\\u00e9t\\u00e1gyas szoba\"},{\"n\":\"der Schl\\u00fcssel\",\"m\":\"kulcs\"},{\"n\":\"die Reservierung\",\"m\":\"foglal\\u00e1s\"},{\"n\":\"der Gast\",\"m\":\"vend\\u00e9g\"},{\"n\":\"der Ausweis\",\"m\":\"igazolv\\u00e1ny\"},{\"n\":\"das Gep\\u00e4ck\",\"m\":\"poggy\\u00e1sz\"},{\"n\":\"der Aufzug\",\"m\":\"lift\"}]},{\"cim\":\"Zeiten\",\"parok\":[{\"n\":\"das Check-in\",\"m\":\"bejelentkez\\u00e9s\"},{\"n\":\"das Check-out\",\"m\":\"kijelentkez\\u00e9s\"},{\"n\":\"die Ankunft\",\"m\":\"\\u00e9rkez\\u00e9s\"},{\"n\":\"die Abreise\",\"m\":\"elutaz\\u00e1s\"},{\"n\":\"das Fr\\u00fchst\\u00fcck\",\"m\":\"reggeli\"},{\"n\":\"das Abendessen\",\"m\":\"vacsora\"},{\"n\":\"die Nacht\",\"m\":\"\\u00e9jszaka\"},{\"n\":\"heute\",\"m\":\"ma\"},{\"n\":\"morgen\",\"m\":\"holnap\"},{\"n\":\"die Uhrzeit\",\"m\":\"id\\u0151pont\"}]},{\"cim\":\"Rechnung und Zahlung\",\"parok\":[{\"n\":\"die Rechnung\",\"m\":\"sz\\u00e1mla\"},{\"n\":\"die Kreditkarte\",\"m\":\"bankk\\u00e1rtya\"},{\"n\":\"bar\",\"m\":\"k\\u00e9szp\\u00e9nz\"},{\"n\":\"der Preis\",\"m\":\"\\u00e1r\"},{\"n\":\"die Steuer\",\"m\":\"ad\\u00f3\"},{\"n\":\"die Quittung\",\"m\":\"nyugta\"},{\"n\":\"die Unterschrift\",\"m\":\"al\\u00e1\\u00edr\\u00e1s\"},{\"n\":\"das Formular\",\"m\":\"\\u0171rlap\"},{\"n\":\"der Meldezettel\",\"m\":\"bejelent\\u0151lap\"},{\"n\":\"die Anzahlung\",\"m\":\"el\\u0151leg\"}]},{\"cim\":\"Services\",\"parok\":[{\"n\":\"das WLAN\",\"m\":\"wifi\"},{\"n\":\"das Passwort\",\"m\":\"jelsz\\u00f3\"},{\"n\":\"der Parkplatz\",\"m\":\"parkol\\u00f3\"},{\"n\":\"die Sauna\",\"m\":\"szauna\"},{\"n\":\"das Taxi\",\"m\":\"taxi\"},{\"n\":\"die Karte\",\"m\":\"t\\u00e9rk\\u00e9p\"},{\"n\":\"der Tipp\",\"m\":\"tipp\"},{\"n\":\"die Beschwerde\",\"m\":\"panasz\"},{\"n\":\"der Weckruf\",\"m\":\"\\u00e9breszt\\u00e9s\"},{\"n\":\"das Telefon\",\"m\":\"telefon\"}]},{\"cim\":\"Wichtige S\\u00e4tze\",\"parok\":[{\"n\":\"Willkommen im Hotel!\",\"m\":\"\\u00dcdv\\u00f6z\\u00f6lj\\u00fck a sz\\u00e1llod\\u00e1ban!\"},{\"n\":\"Haben Sie reserviert?\",\"m\":\"Van foglal\\u00e1sa?\"},{\"n\":\"Auf welchen Namen?\",\"m\":\"Milyen n\\u00e9vre?\"},{\"n\":\"Darf ich Ihren Ausweis sehen?\",\"m\":\"L\\u00e1thatom az igazolv\\u00e1ny\\u00e1t?\"},{\"n\":\"Hier ist Ihr Schl\\u00fcssel.\",\"m\":\"Itt a kulcsa.\"},{\"n\":\"Das Fr\\u00fchst\\u00fcck ist von sieben bis zehn Uhr.\",\"m\":\"A reggeli h\\u00e9tt\\u0151l t\\u00edzig tart.\"},{\"n\":\"Brauchen Sie ein Taxi?\",\"m\":\"Kell taxi?\"},{\"n\":\"Kann ich Ihnen helfen?\",\"m\":\"Seg\\u00edthetek?\"},{\"n\":\"Einen sch\\u00f6nen Aufenthalt!\",\"m\":\"Kellemes tart\\u00f3zkod\\u00e1st!\"},{\"n\":\"Ich verbinde Sie.\",\"m\":\"Kapcsolom.\"}]}],\"wellness\":[{\"cim\":\"Behandlungen\",\"parok\":[{\"n\":\"die Massage\",\"m\":\"massz\\u00e1zs\"},{\"n\":\"die Behandlung\",\"m\":\"kezel\\u00e9s\"},{\"n\":\"die Gesichtsbehandlung\",\"m\":\"arckezel\\u00e9s\"},{\"n\":\"die Manik\\u00fcre\",\"m\":\"manik\\u0171r\"},{\"n\":\"die Pedik\\u00fcre\",\"m\":\"pedik\\u0171r\"},{\"n\":\"das \\u00d6l\",\"m\":\"olaj\"},{\"n\":\"die Creme\",\"m\":\"kr\\u00e9m\"},{\"n\":\"die Maske\",\"m\":\"maszk\"},{\"n\":\"der Termin\",\"m\":\"id\\u0151pont\"},{\"n\":\"die Liege\",\"m\":\"kezel\\u0151\\u00e1gy\"}]},{\"cim\":\"Der Wellnessbereich\",\"parok\":[{\"n\":\"die Sauna\",\"m\":\"szauna\"},{\"n\":\"das Dampfbad\",\"m\":\"g\\u0151zf\\u00fcrd\\u0151\"},{\"n\":\"das Schwimmbad\",\"m\":\"uszoda\"},{\"n\":\"der Ruheraum\",\"m\":\"pihen\\u0151szoba\"},{\"n\":\"die Umkleide\",\"m\":\"\\u00f6lt\\u00f6z\\u0151\"},{\"n\":\"die Dusche\",\"m\":\"zuhany\"},{\"n\":\"das Handtuch\",\"m\":\"t\\u00f6r\\u00f6lk\\u00f6z\\u0151\"},{\"n\":\"der Bademantel\",\"m\":\"f\\u00fcrd\\u0151k\\u00f6peny\"},{\"n\":\"die Badeschlappen\",\"m\":\"papucs\"},{\"n\":\"der Spind\",\"m\":\"szekr\\u00e9ny\"}]},{\"cim\":\"K\\u00f6rperteile\",\"parok\":[{\"n\":\"der R\\u00fccken\",\"m\":\"h\\u00e1t\"},{\"n\":\"der Nacken\",\"m\":\"nyak\"},{\"n\":\"die Schulter\",\"m\":\"v\\u00e1ll\"},{\"n\":\"das Bein\",\"m\":\"l\\u00e1b\"},{\"n\":\"der Arm\",\"m\":\"kar\"},{\"n\":\"der Kopf\",\"m\":\"fej\"},{\"n\":\"der Fu\\u00df\",\"m\":\"l\\u00e1bfej\"},{\"n\":\"die Haut\",\"m\":\"b\\u0151r\"},{\"n\":\"die Hand\",\"m\":\"k\\u00e9z\"},{\"n\":\"der Bauch\",\"m\":\"has\"}]},{\"cim\":\"Absprache\",\"parok\":[{\"n\":\"stark\",\"m\":\"er\\u0151s\"},{\"n\":\"sanft\",\"m\":\"gyeng\\u00e9d\"},{\"n\":\"weich\",\"m\":\"puha\"},{\"n\":\"warm\",\"m\":\"meleg\"},{\"n\":\"kalt\",\"m\":\"hideg\"},{\"n\":\"angenehm\",\"m\":\"kellemes\"},{\"n\":\"schmerzhaft\",\"m\":\"f\\u00e1jdalmas\"},{\"n\":\"entspannen\",\"m\":\"pihen\"},{\"n\":\"atmen\",\"m\":\"l\\u00e9legzik\"},{\"n\":\"umdrehen\",\"m\":\"megfordul\"}]},{\"cim\":\"Wichtige S\\u00e4tze\",\"parok\":[{\"n\":\"Wie ist der Druck?\",\"m\":\"Milyen az er\\u0151ss\\u00e9g?\"},{\"n\":\"Tut es weh?\",\"m\":\"F\\u00e1j?\"},{\"n\":\"Haben Sie Allergien?\",\"m\":\"Vannak allergi\\u00e1i?\"},{\"n\":\"Bitte legen Sie sich hin.\",\"m\":\"K\\u00e9rem fek\\u00fcdj\\u00f6n le.\"},{\"n\":\"Bitte drehen Sie sich um.\",\"m\":\"K\\u00e9rem forduljon meg.\"},{\"n\":\"Ist die Temperatur angenehm?\",\"m\":\"Kellemes a h\\u0151m\\u00e9rs\\u00e9klet?\"},{\"n\":\"M\\u00f6chten Sie Wasser?\",\"m\":\"K\\u00e9r vizet?\"},{\"n\":\"Ihre Behandlung dauert eine Stunde.\",\"m\":\"A kezel\\u00e9s egy \\u00f3r\\u00e1ig tart.\"},{\"n\":\"Ruhen Sie sich aus.\",\"m\":\"Pihenjen.\"},{\"n\":\"Bis zum n\\u00e4chsten Mal.\",\"m\":\"Viszontl\\u00e1t\\u00e1sra.\"}]}],\"muszaki\":[{\"cim\":\"Werkzeuge\",\"parok\":[{\"n\":\"der Hammer\",\"m\":\"kalap\\u00e1cs\"},{\"n\":\"der Schraubenzieher\",\"m\":\"csavarh\\u00faz\\u00f3\"},{\"n\":\"die Zange\",\"m\":\"fog\\u00f3\"},{\"n\":\"der Schraubenschl\\u00fcssel\",\"m\":\"csavarkulcs\"},{\"n\":\"die Bohrmaschine\",\"m\":\"f\\u00far\\u00f3g\\u00e9p\"},{\"n\":\"die Leiter\",\"m\":\"l\\u00e9tra\"},{\"n\":\"das Werkzeug\",\"m\":\"szersz\\u00e1m\"},{\"n\":\"die Schraube\",\"m\":\"csavar\"},{\"n\":\"der Nagel\",\"m\":\"sz\\u00f6g\"},{\"n\":\"das Kabel\",\"m\":\"k\\u00e1bel\"}]},{\"cim\":\"St\\u00f6rungen\",\"parok\":[{\"n\":\"kaputt\",\"m\":\"elromlott\"},{\"n\":\"defekt\",\"m\":\"hib\\u00e1s\"},{\"n\":\"undicht\",\"m\":\"sziv\\u00e1rog\"},{\"n\":\"verstopft\",\"m\":\"eldugult\"},{\"n\":\"der Wasserhahn\",\"m\":\"csap\"},{\"n\":\"die Heizung\",\"m\":\"f\\u0171t\\u00e9s\"},{\"n\":\"das Licht\",\"m\":\"l\\u00e1mpa\"},{\"n\":\"die Gl\\u00fchbirne\",\"m\":\"izz\\u00f3\"},{\"n\":\"die Steckdose\",\"m\":\"konnektor\"},{\"n\":\"die Sicherung\",\"m\":\"biztos\\u00edt\\u00e9k\"}]},{\"cim\":\"Der Garten\",\"parok\":[{\"n\":\"der Garten\",\"m\":\"kert\"},{\"n\":\"der Rasen\",\"m\":\"gyep\"},{\"n\":\"der Rasenm\\u00e4her\",\"m\":\"f\\u0171ny\\u00edr\\u00f3\"},{\"n\":\"die Pflanze\",\"m\":\"n\\u00f6v\\u00e9ny\"},{\"n\":\"die Blume\",\"m\":\"vir\\u00e1g\"},{\"n\":\"der Baum\",\"m\":\"fa\"},{\"n\":\"gie\\u00dfen\",\"m\":\"locsol\"},{\"n\":\"schneiden\",\"m\":\"ny\\u00edr\"},{\"n\":\"die Schere\",\"m\":\"oll\\u00f3\"},{\"n\":\"die Schaufel\",\"m\":\"lap\\u00e1t\"}]},{\"cim\":\"Verben\",\"parok\":[{\"n\":\"reparieren\",\"m\":\"jav\\u00edt\"},{\"n\":\"austauschen\",\"m\":\"kicser\\u00e9l\"},{\"n\":\"montieren\",\"m\":\"szerel\"},{\"n\":\"bohren\",\"m\":\"f\\u00far\"},{\"n\":\"streichen\",\"m\":\"fest\"},{\"n\":\"\\u00fcberpr\\u00fcfen\",\"m\":\"ellen\\u0151riz\"},{\"n\":\"einschalten\",\"m\":\"bekapcsol\"},{\"n\":\"ausschalten\",\"m\":\"kikapcsol\"},{\"n\":\"reinigen\",\"m\":\"tiszt\\u00edt\"},{\"n\":\"messen\",\"m\":\"m\\u00e9r\"}]},{\"cim\":\"Wichtige S\\u00e4tze\",\"parok\":[{\"n\":\"Was ist kaputt?\",\"m\":\"Mi romlott el?\"},{\"n\":\"Wo ist das Problem?\",\"m\":\"Hol a probl\\u00e9ma?\"},{\"n\":\"Ich repariere das sofort.\",\"m\":\"Azonnal megjav\\u00edtom.\"},{\"n\":\"Ich brauche ein Werkzeug.\",\"m\":\"Szersz\\u00e1mra van sz\\u00fcks\\u00e9gem.\"},{\"n\":\"Das Wasser ist kalt.\",\"m\":\"A v\\u00edz hideg.\"},{\"n\":\"Die Heizung funktioniert nicht.\",\"m\":\"A f\\u0171t\\u00e9s nem m\\u0171k\\u00f6dik.\"},{\"n\":\"Bitte warten Sie.\",\"m\":\"K\\u00e9rem v\\u00e1rjon.\"},{\"n\":\"Ist es jetzt besser?\",\"m\":\"Most jobb?\"},{\"n\":\"Ich komme gleich.\",\"m\":\"Mindj\\u00e1rt j\\u00f6v\\u00f6k.\"},{\"n\":\"Vorsicht!\",\"m\":\"Vigy\\u00e1zat!\"}]}],\"biztonsag\":[{\"cim\":\"Orte\",\"parok\":[{\"n\":\"der Eingang\",\"m\":\"bej\\u00e1rat\"},{\"n\":\"der Ausgang\",\"m\":\"kij\\u00e1rat\"},{\"n\":\"der Notausgang\",\"m\":\"v\\u00e9szkij\\u00e1rat\"},{\"n\":\"der Parkplatz\",\"m\":\"parkol\\u00f3\"},{\"n\":\"das Tor\",\"m\":\"kapu\"},{\"n\":\"die T\\u00fcr\",\"m\":\"ajt\\u00f3\"},{\"n\":\"der Flur\",\"m\":\"folyos\\u00f3\"},{\"n\":\"der Aufzug\",\"m\":\"lift\"},{\"n\":\"die Kamera\",\"m\":\"kamera\"},{\"n\":\"der Schl\\u00fcssel\",\"m\":\"kulcs\"}]},{\"cim\":\"Personen und Stellen\",\"parok\":[{\"n\":\"der Gast\",\"m\":\"vend\\u00e9g\"},{\"n\":\"der Besucher\",\"m\":\"l\\u00e1togat\\u00f3\"},{\"n\":\"der Mitarbeiter\",\"m\":\"munkat\\u00e1rs\"},{\"n\":\"die Polizei\",\"m\":\"rend\\u0151rs\\u00e9g\"},{\"n\":\"der Krankenwagen\",\"m\":\"ment\\u0151\"},{\"n\":\"die Feuerwehr\",\"m\":\"t\\u0171zolt\\u00f3s\\u00e1g\"},{\"n\":\"der Chef\",\"m\":\"f\\u0151n\\u00f6k\"},{\"n\":\"der Ausweis\",\"m\":\"igazolv\\u00e1ny\"},{\"n\":\"der Fremde\",\"m\":\"idegen\"},{\"n\":\"der Sicherheitsdienst\",\"m\":\"biztons\\u00e1gi szolg\\u00e1lat\"}]},{\"cim\":\"Ereignisse\",\"parok\":[{\"n\":\"der Notfall\",\"m\":\"v\\u00e9szhelyzet\"},{\"n\":\"der Alarm\",\"m\":\"riaszt\\u00e1s\"},{\"n\":\"das Feuer\",\"m\":\"t\\u0171z\"},{\"n\":\"der Diebstahl\",\"m\":\"lop\\u00e1s\"},{\"n\":\"der Streit\",\"m\":\"veszeked\\u00e9s\"},{\"n\":\"der L\\u00e4rm\",\"m\":\"zaj\"},{\"n\":\"verd\\u00e4chtig\",\"m\":\"gyan\\u00fas\"},{\"n\":\"gef\\u00e4hrlich\",\"m\":\"vesz\\u00e9lyes\"},{\"n\":\"verloren\",\"m\":\"elveszett\"},{\"n\":\"gefunden\",\"m\":\"megtal\\u00e1lt\"}]},{\"cim\":\"Verben\",\"parok\":[{\"n\":\"kontrollieren\",\"m\":\"ellen\\u0151riz\"},{\"n\":\"melden\",\"m\":\"jelent\"},{\"n\":\"rufen\",\"m\":\"h\\u00edv\"},{\"n\":\"helfen\",\"m\":\"seg\\u00edt\"},{\"n\":\"warnen\",\"m\":\"figyelmeztet\"},{\"n\":\"schlie\\u00dfen\",\"m\":\"z\\u00e1r\"},{\"n\":\"\\u00f6ffnen\",\"m\":\"nyit\"},{\"n\":\"begleiten\",\"m\":\"k\\u00eds\\u00e9r\"},{\"n\":\"warten\",\"m\":\"v\\u00e1r\"},{\"n\":\"beobachten\",\"m\":\"megfigyel\"}]},{\"cim\":\"Wichtige S\\u00e4tze\",\"parok\":[{\"n\":\"Kann ich Ihren Ausweis sehen?\",\"m\":\"L\\u00e1thatom az igazolv\\u00e1ny\\u00e1t?\"},{\"n\":\"Sie d\\u00fcrfen hier nicht rein.\",\"m\":\"Ide nem l\\u00e9phet be.\"},{\"n\":\"Bitte verlassen Sie das Geb\\u00e4ude.\",\"m\":\"K\\u00e9rem hagyja el az \\u00e9p\\u00fcletet.\"},{\"n\":\"Ich rufe die Polizei.\",\"m\":\"H\\u00edvom a rend\\u0151rs\\u00e9get.\"},{\"n\":\"Es gibt einen Notfall.\",\"m\":\"V\\u00e9szhelyzet van.\"},{\"n\":\"Bleiben Sie ruhig.\",\"m\":\"Maradjon nyugodt.\"},{\"n\":\"Wo ist der Notausgang?\",\"m\":\"Hol a v\\u00e9szkij\\u00e1rat?\"},{\"n\":\"Ich mache einen Rundgang.\",\"m\":\"\\u0150rj\\u00e1ratot teszek.\"},{\"n\":\"Bitte leiser sein.\",\"m\":\"K\\u00e9rem legyen halkabb.\"},{\"n\":\"Alles in Ordnung?\",\"m\":\"Minden rendben?\"}]}],\"altalanos\":[{\"cim\":\"Vorstellung: Fragen und Antworten\",\"parok\":[{\"n\":\"Wie hei\\u00dfen Sie?\",\"m\":\"Hogy h\\u00edvj\\u00e1k?\"},{\"n\":\"Ich hei\\u00dfe Anna.\",\"m\":\"Ann\\u00e1nak h\\u00edvnak.\"},{\"n\":\"Woher kommen Sie?\",\"m\":\"Honnan j\\u00f6n?\"},{\"n\":\"Ich komme aus Ungarn.\",\"m\":\"Magyarorsz\\u00e1gr\\u00f3l j\\u00f6v\\u00f6k.\"},{\"n\":\"Wie alt sind Sie?\",\"m\":\"H\\u00e1ny \\u00e9ves?\"},{\"n\":\"Ich bin drei\\u00dfig Jahre alt.\",\"m\":\"Harminc \\u00e9ves vagyok.\"},{\"n\":\"Wo wohnen Sie?\",\"m\":\"Hol lakik?\"},{\"n\":\"Ich wohne in Wien.\",\"m\":\"B\\u00e9csben lakom.\"},{\"n\":\"Was sind Sie von Beruf?\",\"m\":\"Mi a foglalkoz\\u00e1sa?\"},{\"n\":\"Ich arbeite im Hotel.\",\"m\":\"A sz\\u00e1llod\\u00e1ban dolgozom.\"},{\"n\":\"Sprechen Sie Deutsch?\",\"m\":\"Besz\\u00e9l n\\u00e9met\\u00fcl?\"},{\"n\":\"Ich spreche ein bisschen Deutsch.\",\"m\":\"Egy kicsit besz\\u00e9lek n\\u00e9met\\u00fcl.\"},{\"n\":\"Ich lerne Deutsch.\",\"m\":\"N\\u00e9met\\u00fcl tanulok.\"},{\"n\":\"Freut mich!\",\"m\":\"\\u00d6rvendek!\"}]},{\"cim\":\"Gr\\u00fc\\u00dfe und H\\u00f6flichkeit\",\"parok\":[{\"n\":\"Guten Morgen!\",\"m\":\"J\\u00f3 reggelt!\"},{\"n\":\"Guten Tag!\",\"m\":\"J\\u00f3 napot!\"},{\"n\":\"Guten Abend!\",\"m\":\"J\\u00f3 est\\u00e9t!\"},{\"n\":\"Gute Nacht!\",\"m\":\"J\\u00f3 \\u00e9jszak\\u00e1t!\"},{\"n\":\"Hallo! \\\/ Servus!\",\"m\":\"Szia! (Ausztri\\u00e1ban: Servus)\"},{\"n\":\"Auf Wiedersehen!\",\"m\":\"Viszontl\\u00e1t\\u00e1sra!\"},{\"n\":\"Bis morgen!\",\"m\":\"Holnapig!\"},{\"n\":\"Bitte.\",\"m\":\"K\\u00e9rem. \\\/ Sz\\u00edvesen.\"},{\"n\":\"Danke sch\\u00f6n!\",\"m\":\"K\\u00f6sz\\u00f6n\\u00f6m sz\\u00e9pen!\"},{\"n\":\"Entschuldigung!\",\"m\":\"Eln\\u00e9z\\u00e9st!\"},{\"n\":\"Es tut mir leid.\",\"m\":\"Sajn\\u00e1lom.\"},{\"n\":\"Kein Problem.\",\"m\":\"Semmi gond.\"}]},{\"cim\":\"Hilfe und Verstehen\",\"parok\":[{\"n\":\"K\\u00f6nnen Sie das bitte wiederholen?\",\"m\":\"Meg tudja ism\\u00e9telni, k\\u00e9rem?\"},{\"n\":\"Langsamer, bitte.\",\"m\":\"Lassabban, k\\u00e9rem.\"},{\"n\":\"Ich verstehe das nicht.\",\"m\":\"Ezt nem \\u00e9rtem.\"},{\"n\":\"Was bedeutet das?\",\"m\":\"Mit jelent ez?\"},{\"n\":\"Wie sagt man das auf Deutsch?\",\"m\":\"Hogy mondj\\u00e1k ezt n\\u00e9met\\u00fcl?\"},{\"n\":\"K\\u00f6nnen Sie mir helfen?\",\"m\":\"Tud nekem seg\\u00edteni?\"},{\"n\":\"Ich brauche Hilfe.\",\"m\":\"Seg\\u00edts\\u00e9gre van sz\\u00fcks\\u00e9gem.\"},{\"n\":\"Ich habe eine Frage.\",\"m\":\"Van egy k\\u00e9rd\\u00e9sem.\"},{\"n\":\"Wo ist die Toilette?\",\"m\":\"Hol van a mosd\\u00f3?\"}]},{\"cim\":\"Fragen im Alltag\",\"parok\":[{\"n\":\"Wie viel kostet das?\",\"m\":\"Mennyibe ker\\u00fcl ez?\"},{\"n\":\"Wie sp\\u00e4t ist es?\",\"m\":\"H\\u00e1ny \\u00f3ra van?\"},{\"n\":\"Wo ist die Haltestelle?\",\"m\":\"Hol van a meg\\u00e1ll\\u00f3?\"},{\"n\":\"Wie komme ich zum Bahnhof?\",\"m\":\"Hogy jutok el a p\\u00e1lyaudvarra?\"},{\"n\":\"Ich m\\u00f6chte ein Ticket.\",\"m\":\"Szeretn\\u00e9k egy jegyet.\"},{\"n\":\"Haben Sie ...?\",\"m\":\"Van \\u00f6nnek ...?\"},{\"n\":\"Ich h\\u00e4tte gern ...\",\"m\":\"K\\u00e9rn\\u00e9k ...\"},{\"n\":\"Kann ich mit Karte zahlen?\",\"m\":\"Fizethetek k\\u00e1rty\\u00e1val?\"},{\"n\":\"Wo kann ich das kaufen?\",\"m\":\"Hol vehetem meg ezt?\"},{\"n\":\"Wann \\u00f6ffnet das Gesch\\u00e4ft?\",\"m\":\"Mikor nyit a bolt?\"}]},{\"cim\":\"Zeit und Zahlen\",\"parok\":[{\"n\":\"heute\",\"m\":\"ma\"},{\"n\":\"morgen\",\"m\":\"holnap\"},{\"n\":\"gestern\",\"m\":\"tegnap\"},{\"n\":\"die Woche\",\"m\":\"h\\u00e9t\"},{\"n\":\"der Monat\",\"m\":\"h\\u00f3nap\"},{\"n\":\"um acht Uhr\",\"m\":\"nyolc \\u00f3rakor\"},{\"n\":\"halb neun\",\"m\":\"f\\u00e9l kilenc (8:30)\"},{\"n\":\"eins, zwei, drei\",\"m\":\"egy, kett\\u0151, h\\u00e1rom\"},{\"n\":\"zehn\",\"m\":\"t\\u00edz\"},{\"n\":\"zwanzig\",\"m\":\"h\\u00fasz\"},{\"n\":\"hundert\",\"m\":\"sz\\u00e1z\"}]},{\"cim\":\"Grundlagen am Arbeitsplatz\",\"parok\":[{\"n\":\"die Schicht\",\"m\":\"m\\u0171szak\"},{\"n\":\"der Dienstplan\",\"m\":\"beoszt\\u00e1s\"},{\"n\":\"die Pause\",\"m\":\"sz\\u00fcnet\"},{\"n\":\"der Urlaub\",\"m\":\"szabads\\u00e1g\"},{\"n\":\"der freie Tag\",\"m\":\"szabadnap\"},{\"n\":\"der Vertrag\",\"m\":\"szerz\\u0151d\\u00e9s\"},{\"n\":\"das Gehalt\",\"m\":\"fizet\\u00e9s\"},{\"n\":\"Wann beginnt meine Schicht?\",\"m\":\"Mikor kezd\\u0151dik a m\\u0171szakom?\"},{\"n\":\"Ich bin krank.\",\"m\":\"Beteg vagyok.\"},{\"n\":\"Ich komme heute sp\\u00e4ter.\",\"m\":\"Ma k\\u00e9s\\u0151bb j\\u00f6v\\u00f6k.\"},{\"n\":\"Ich brauche einen freien Tag.\",\"m\":\"Szabadnapra van sz\\u00fcks\\u00e9gem.\"}]},{\"cim\":\"Alltag, Arzt, Notfall\",\"parok\":[{\"n\":\"die Wohnung\",\"m\":\"lak\\u00e1s\"},{\"n\":\"die Miete\",\"m\":\"lakb\\u00e9r\"},{\"n\":\"der Supermarkt\",\"m\":\"szupermarket\"},{\"n\":\"die Apotheke\",\"m\":\"gy\\u00f3gyszert\\u00e1r\"},{\"n\":\"der Arzt\",\"m\":\"orvos\"},{\"n\":\"Ich habe Schmerzen.\",\"m\":\"F\\u00e1jdalmaim vannak.\"},{\"n\":\"Ich brauche einen Arzt.\",\"m\":\"Orvosra van sz\\u00fcks\\u00e9gem.\"},{\"n\":\"Rufen Sie bitte einen Krankenwagen!\",\"m\":\"H\\u00edvjon ment\\u0151t, k\\u00e9rem!\"},{\"n\":\"Hilfe!\",\"m\":\"Seg\\u00edts\\u00e9g!\"}]}]},\"dorka_gondolkodo\":\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/dorka-v3-gondolkodo.jpg\",\"dorka_kep\":{\"kedves\":\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/dorka-v3-baratsagos.jpg\",\"szigoru\":\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/dorka-v3-komoly.jpg\",\"laza\":\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/dorka-v3-jatekos.jpg\"},\"te_kepek\":[\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-01.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-02.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-03.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-04.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-05.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-06.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-07.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-08.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-09.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-10.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-11.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-12.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-13.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-14.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-15.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-16.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-17.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-18.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-19.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-20.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-21.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-22.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-23.jpg\",\"https:\\\/\\\/stafforex.eu\\\/wp-content\\\/plugins\\\/staffix-core\\\/assets\\\/arc-24.jpg\"],\"szint_i18n\":{\"nincs\":\"noch nicht gew\\u00e4hlt\",\"nincs_info\":\"Du wei\\u00dft nicht, wo du stehst? Mach den 1-Minuten-Test oder w\\u00e4hle unten. Wenn du kein Wort Deutsch kannst, w\\u00e4hle \\u201e0 \\u00b7 Nullstart\\u201c.\",\"l0\":\"0 \\u00b7 Nullstart\",\"l1\":\"\",\"lA1\":\"A1 \\u00b7 Grundlagen\",\"lA2\":\"A2 \\u00b7 Anf\\u00e4nger\",\"lB1\":\"B1 \\u00b7 Fortgeschritten\",\"i0\":\"Kein Wort Deutsch? Kein Problem. Du bekommst sehr kurze S\\u00e4tze mit ungarischer Erkl\\u00e4rung und Hilfe.\",\"iA1\":\"Sehr kurze deutsche S\\u00e4tze mit ungarischer Erkl\\u00e4rung. Wenn du nicht weiterwei\\u00dft, frage auf Ungarisch.\",\"iA2\":\"Kurze, einfache S\\u00e4tze, langsames Tempo.\",\"iB1\":\"Nat\\u00fcrliches Tempo, allt\\u00e4glicher Wortschatz im Gastgewerbe.\",\"javasolt\":\"Empfohlenes Niveau\",\"helyes\":\"richtige Antworten\",\"hasznal\":\"Dieses Niveau verwenden\",\"ujra\":\"Nochmal\",\"nem_tudom\":\"Wei\\u00df ich nicht\",\"kihagyom\":\"\\u00dcberspringen\",\"te\":\"Du\",\"frizura\":\"Frisur\",\"haj\":\"Haarfarbe\",\"bor\":\"Hautfarbe\",\"ruha\":\"Kleidung\",\"szemuveg\":\"Brille\",\"van\":\"Ja\",\"nincs_sz\":\"Nein\",\"st_rovid\":\"Kurz\",\"st_hosszu\":\"Lang\",\"st_kontyos\":\"Dutt\",\"st_gongyol\":\"Lockig\",\"st_kopasz\":\"Glatze\",\"kep_valaszt\":\"W\\u00e4hle dein Gesicht\",\"partner_cim_rovid\":\"Dorkas Stil\",\"helyzet\":\"Situation:\",\"masik\":\"Andere Situation\",\"valassz_helyzet\":\"Welche Situation \\u00fcben wir?\",\"munkahelyi\":\"Situationen bei der Arbeit\",\"mindennapi\":\"Alltagssituationen\",\"elakadtal\":\"Nicht weiter? Hilfe \\u25be\",\"tovabb\":\"Gesagt, weiter \\u25b8\",\"eszkozok\":\"Weitere Werkzeuge \\u25be\",\"poz\":\"Position:\",\"nincs_megadva\":\"nicht gew\\u00e4hlt\",\"partner_cim\":\"Wie soll Dorka sein?\",\"p_kedves\":\"Dorka \\u2013 freundlich\",\"pt_kedves\":\"Geduldig, ermutigend\",\"p_szigoru\":\"Dorka \\u2013 streng\",\"pt_szigoru\":\"Sachlich, weist auf jeden Fehler hin\",\"p_laza\":\"Dorka \\u2013 locker\",\"pt_laza\":\"Direkt, schnelles Tempo\"},\"admin\":false,\"i18n\":{\"nyelv_hu\":\"Ungarisch\",\"nyelv_de\":\"Deutsch\",\"mind_hallgat\":\"Alle anh\\u00f6ren\",\"segitseg\":\"Hilfe: Wie sage ich das?\",\"segitseg_hallgat\":\"Anh\\u00f6ren und senden\",\"segitseg_beir\":\"In das Feld einf\\u00fcgen\",\"segitseg_kuld\":\"So senden\",\"gyak_cim_szavak\":\"W\\u00f6rter f\\u00fcr deine Arbeit\",\"gyak_cim_mondatok\":\"N\\u00fctzliche S\\u00e4tze und Fragen\",\"gyak_adag\":\"Runde\",\"gyak_maradek\":\"Noch %d kostenlose Runden. Danach geht es mit einem Paket weiter.\",\"gyak_regi_szavak\":\"Bisher erhaltene W\\u00f6rter\",\"gyak_regi_mondatok\":\"Bisher erhaltene S\\u00e4tze\",\"gyak_uj_szavak\":\"Fertig, neue W\\u00f6rter bitte\",\"gyak_uj_mondatok\":\"Fertig, neue S\\u00e4tze bitte\",\"gyak_tolt\":\"Die n\\u00e4chste Runde wird zusammengestellt\\u2026\",\"gyak_hiba\":\"Das hat gerade nicht geklappt. Bitte gleich nochmal versuchen.\",\"tolm_premium\":\"Die \\u00dcbersetzung kannst du in der kostenlosen Testphase ausprobieren, danach geh\\u00f6rt sie zum Premium-Paket. Training und Rollenspiel sind auch im Basis-Paket enthalten.\",\"tolmacs_tipp\":\"Sprich oder schreibe auf Ungarisch, was du deinem Chef sagen m\\u00f6chtest - ich \\u00fcbersetze es ins Deutsche. Wenn er etwas auf Deutsch sagt, gib es ein oder sprich es, und ich \\u00fcbersetze es ins Ungarische.\",\"kezdo_tipp\":\"So f\\u00e4ngst du an: w\\u00e4hle deine Position und dann ein Thema (z. B. Vorstellung oder Reisen) - der Assistent beginnt sofort zu unterrichten.\",\"irany_hu_de\":\"Ungarisch \\u2192 Deutsch\",\"irany_de_hu\":\"Deutsch \\u2192 Ungarisch\",\"feldolgozom\":\"Aufnahme wird verarbeitet\\u2026\",\"nyomd_ujra\":\"dr\\u00fccke erneut das Mikrofon, wenn du fertig bist\",\"mic_engedely\":\"Bitte erlaube den Mikrofonzugriff im Browser.\",\"gepeles\":\"Der Assistent schreibt\\u2026\",\"hiba_altalanos\":\"Ein Fehler ist aufgetreten, versuche es erneut.\",\"mic_nincs\":\"Die Spracheingabe wird auf diesem Ger\\u00e4t\\\/Browser nicht unterst\\u00fctzt - bitte als Text eingeben.\",\"hallgatlak\":\"Ich h\\u00f6re zu\\u2026\",\"mic_nem_sikerult\":\"Spracherkennung fehlgeschlagen - versuche es erneut oder gib den Text ein.\",\"kell_email\":\"Bitte gib deine E-Mail-Adresse an.\",\"kell_elallas\":\"Bitte akzeptiere die Erkl\\u00e4rung, um fortzufahren.\",\"fizetes_folyamatban\":\"Weiterleitung zur Zahlung\\u2026\",\"siker_csomag\":\"Erfolgreicher Kauf! Dein Paket ist aktiv.\",\"vissza_ok\":\"Dein Paket wurde wiederhergestellt, viel Erfolg beim Lernen!\",\"vissza_nincs\":\"Der Link ist ung\\u00fcltig oder abgelaufen. Fordere \\u00fcber \\\"Bereits bezahlt\\\" einen neuen an.\",\"sz_csomag\":\"Aus deinem Paket sind noch %d Nachrichten \\u00fcbrig.\",\"sz_ingyen\":\"Du hast noch %d kostenlose Nachrichten.\",\"sz_vendeg\":\"Du kannst es kostenlos ausprobieren.\",\"ert_valassz\":\"Bitte w\\u00e4hle Sterne aus.\",\"reg_cim\":\"Weiter mit Registrierung!\",\"reg_szov\":\"Gef\\u00e4llt es dir? Registriere dich kostenlos und erhalte 15 weitere Nachrichten. Es dauert nur ein paar Minuten, und dein Fortschritt bleibt auf jedem Ger\\u00e4t erhalten.\",\"szokincs_cim\":\"Wortschatz\",\"valasz_mondatok\":\"So kannst du antworten\",\"szotar_poz\":\"W\\u00e4hle zuerst oben deine Position, dann zeige ich dir die Grundw\\u00f6rter.\",\"szotar_cim\":\"Grundw\\u00f6rter f\\u00fcr deine Position:\",\"indulas_gomb\":\"Los geht's\",\"indulas_szerep\":\"Pr\\u00fcfe Position und Situation. Wenn du bereit bist, dr\\u00fccke auf \\u201eLos geht's\\u201c, und die Szene beginnt: Die Figur spricht dich an, du antwortest.\",\"indulas_gyak_lista\":\"W\\u00e4hle Position und Thema. Wenn du bereit bist, dr\\u00fccke auf \\u201eLos geht's\\u201c, und ich stelle die erste Wort- oder Satzrunde zusammen.\",\"indulas_gyak\":\"Sieh dir in Ruhe die W\\u00f6rter an und w\\u00e4hle Position und Thema. Wenn du bereit bist, dr\\u00fccke auf \\u201eLos geht's\\u201c, und die erste Lektion beginnt.\",\"szavak_helyzet\":\"W\\u00f6rter f\\u00fcr diese Situation:\",\"szavak_betolt\":\"Ich stelle die W\\u00f6rter f\\u00fcr diese Situation zusammen\\u2026 (ein paar Sekunden)\",\"szavak_hiba\":\"Die Wortliste konnte gerade nicht geladen werden. Dr\\u00fccke die W\\u00f6rter-Taste noch einmal.\",\"szavak_valassz\":\"W\\u00e4hle zuerst die Situation, dann zeige ich dir die passenden W\\u00f6rter.\",\"szavak_gomb_h\":\"Ca. 40 W\\u00f6rter zu dieser Situation\",\"szotar_bezar\":\"Ausblenden\",\"szerep_tipp\":\"W\\u00e4hle zuerst deine Position, damit die Situation zu deiner Arbeit passt, dann die Situation (z. B. Vorstellungsgespr\\u00e4ch oder Erster Arbeitstag). Der Assistent spielt die andere Seite, du antwortest. Du kannst frei sprechen: Fragen stellen, das Thema wechseln und auf Ungarisch schreiben, wenn du nicht weiterwei\\u00dft. Mit den Tasten darunter kannst du Wiederholen, Langsamer oder eine Erkl\\u00e4rung verlangen.\",\"szerep_ph\":\"Antworte auf Deutsch, oder frage auf Ungarisch, wenn du nicht weiterwei\\u00dft\\u2026\",\"kez_info\":\"Freisprech-Modus: nach dem Assistenten h\\u00f6re ich automatisch zu und sende deine Antwort.\",\"nem_hallottam\":\"Ich habe nichts geh\\u00f6rt - tippe auf das Mikrofon, um fortzufahren.\",\"kviz_kev\":\"F\\u00fcr das Quiz brauchst du mindestens 4 gelernte W\\u00f6rter. Lerne noch etwas mit dem Assistenten und komm dann wieder!\",\"kviz_cim\":\"Tages-Quiz\",\"kviz_kerdes\":\"Frage\",\"kviz_nemet_hu\":\"Was hei\\u00dft das auf Ungarisch?\",\"kviz_hu_nemet\":\"Wie sagt man das auf Deutsch?\",\"kviz_helyes\":\"Richtig!\",\"kviz_rossz\":\"Nicht ganz. Die richtige Antwort ist:\",\"kviz_tovabb\":\"Weiter\",\"kviz_eredmeny\":\"Dein Ergebnis\",\"kviz_sorozat\":\"Tagesserie\",\"kviz_nap\":\"Tage\",\"kviz_uj\":\"Neues Quiz\",\"kviz_vissza\":\"Zur\\u00fcck zum Lernen\",\"kviz_ingyen\":\"Das Quiz ist kostenlos und verbraucht keine Nachrichten.\",\"felolvasas_cim\":\"Vorlesen\"}};\n        \/* v9.801: ha a szerver nem JSON-t ad vissza (pl. HTTP-hiba), a val\u00f3di ok l\u00e1tszik adminnak \/ ?sfxdebug=1 eset\u00e9n. *\/\n        function sfxJson(r){\n            return r.text().then(function(t){\n                try { return JSON.parse(t); } catch (e) {\n                    var m = 'HTTP ' + r.status + ': ' + t.replace(\/<[^>]+>\/g,' ').replace(\/\\s+\/g,' ').trim().slice(0,220);\n                    try { console.error('[Dorka]', m); } catch (x) {}\n                    if (CFG.admin || \/sfxdebug=1\/.test(location.search)) { return { success:false, data:{ message:'[hiba-r\u00e9szlet] ' + m } }; }\n                    throw e;\n                }\n            });\n        }\n        var mod = 'gyakorlas';\n        var history_ = [];\n        var mentett = {}; \/\/ a m\u00e1sik m\u00f3d elrakott besz\u00e9lget\u00e9se\n        var kivalasztottCsomag = null;\n        \/\/ v9.836: Stripe-b\u00f3l visszat\u00e9rve a csomag j\u00f3v\u00e1\u00edr\u00e1sa (finalize) egy m\u00e1sodpercig tart, mik\u00f6zben az oldal m\u00e1r elind\u00edtan\u00e1 az\n        \/\/ els\u0151 leck\u00e9t. A k\u00e9r\u00e9s a j\u00f3v\u00e1\u00edr\u00e1s EL\u0150TT \u00e9rkezett, ez\u00e9rt \"el\u00e9rted a keretedet\" j\u00f6tt, \u00e9s a fizet\u0151fal \u00fajra kiny\u00edlt.\n        \/\/ Am\u00edg a j\u00f3v\u00e1\u00edr\u00e1s fut, a k\u00e9r\u00e9sek v\u00e1rnak.\n        var fizetes_visszateres = (function(){ try { var q = new URLSearchParams(window.location.search); return q.get('aiaj_paid') === '1' && !!q.get('aiaj_token') && !!q.get('session_id'); } catch(e) { return false; } })();\n        var recognizing = false;\n        var recognition = null;\n        var kez_token = 0;\n\n        var $root   = document.getElementById('staffix-aiaj-root');\n        var $uzenetek = document.getElementById('staffix-aiaj-uzenetek');\n        var $input  = document.getElementById('staffix-aiaj-input');\n        var $send   = document.getElementById('staffix-aiaj-send-btn');\n        var $mic    = document.getElementById('staffix-aiaj-mic-btn');\n        var $micDe  = document.getElementById('staffix-aiaj-mic-btn-de');\n        var aktivGomb = $mic;\n        var $micInfo = document.getElementById('staffix-aiaj-mic-info');\n        var $pozSor = document.getElementById('staffix-aiaj-pozicio-sor');\n        var $temaSor = document.getElementById('staffix-aiaj-tema-sor');\n        var $tema   = document.getElementById('staffix-aiaj-tema');\n        var $kezdoTipp = null;\n        var $poz    = document.getElementById('staffix-aiaj-pozicio');\n        var $keretSor = document.getElementById('staffix-aiaj-keret-sor');\n        var $ujSzavak = document.getElementById('staffix-aiaj-uj-szavak-btn');\n        var $szerepSor = document.getElementById('staffix-aiaj-szerep-sor');\n        var $szerep = document.getElementById('staffix-aiaj-szerep');\n        var $kvizBtn = document.getElementById('staffix-aiaj-kviz-btn');\n        var $szotarBtn = document.getElementById('staffix-aiaj-szotar-btn');\n        var $gyorsSor = document.getElementById('staffix-aiaj-gyors-sor');\n        var $kviz = document.getElementById('staffix-aiaj-kviz');\n        var $kez = document.getElementById('staffix-aiaj-kez-nelkul');\n        var $chatDoboz = document.getElementById('staffix-aiaj-chat');\n        var $autoFelolvas = document.getElementById('staffix-aiaj-auto-felolvas');\n        var $modal  = document.getElementById('staffix-aiaj-modal');\n        var $modalClose = document.getElementById('staffix-aiaj-modal-close');\n        var $modalSzov = document.getElementById('staffix-aiaj-modal-szov');\n        var $modalHiba = document.getElementById('staffix-aiaj-modal-hiba');\n        var $email  = document.getElementById('staffix-aiaj-email');\n        var $elallas = document.getElementById('staffix-aiaj-elallas-consent');\n\n        document.querySelectorAll('.staffix-aiaj-mod-btn').forEach(function(btn){\n            btn.addEventListener('click', function(){\n                var uj_mod = btn.getAttribute('data-mod');\n                if (uj_mod === mod) return;\n                \/\/ V\u00e1laszra v\u00e1r\u00e1s k\u00f6zben nem v\u00e1ltunk (a v\u00e1lasz rossz n\u00e9zetbe \u00e9rkezne).\n                if ($send.disabled) return;\n                \/\/ \u00daJ (v9.720): m\u00f3donk\u00e9nt K\u00dcL\u00d6N besz\u00e9lget\u00e9s - Anik\u00f3 k\u00e9rte, hogy a\n                \/\/ Tolm\u00e1csol\u00e1sra v\u00e1ltva ne a Gyakorl\u00e1s \u00fczenetei maradjanak a\n                \/\/ k\u00e9perny\u0151n, hanem \u00fcres n\u00e9zet j\u00f6jj\u00f6n. A m\u00e1sik m\u00f3d besz\u00e9lget\u00e9s\u00e9t\n                \/\/ eltessz\u00fck, \u00e9s visszav\u00e1lt\u00e1skor visszakapja a felhaszn\u00e1l\u00f3.\n                hang_leallit();\n                kez_token++;\n                kviz_zar();\n                indulas_torol();\n                mentett[mod] = { nodes: Array.prototype.slice.call($uzenetek.childNodes), hist: history_ };\n                while ($uzenetek.firstChild) $uzenetek.removeChild($uzenetek.firstChild);\n                document.querySelectorAll('.staffix-aiaj-mod-btn').forEach(function(b){ b.classList.remove('is-active'); });\n                btn.classList.add('is-active');\n                mod = uj_mod;\n                if (mentett[mod]) {\n                    history_ = mentett[mod].hist;\n                    mentett[mod].nodes.forEach(function(n){ $uzenetek.appendChild(n); });\n                } else {\n                    history_ = [];\n                    if (mod === 'tolmacsolas') {\n                        var tt = document.createElement('div');\n                        tt.className = 'staffix-aiaj-bubi sys';\n                        tt.textContent = CFG.premium ? CFG.i18n.tolmacs_tipp : CFG.i18n.tolm_premium;\n                        $uzenetek.appendChild(tt);\n                    }\n                }\n                $input.value = '';\n                aiaj_input_magassag();\n                $pozSor.style.display = (mod === 'gyakorlas' || mod === 'szerepjatek') ? '' : 'none';\n                if ($temaSor) $temaSor.style.display = (mod === 'gyakorlas') ? '' : 'none';\n                if ($szerepSor) $szerepSor.style.display = (mod === 'szerepjatek') ? '' : 'none';\n                if ($ujSzavak) $ujSzavak.style.display = (mod === 'gyakorlas') ? '' : 'none';\n                if ($kvizBtn) $kvizBtn.style.display = (mod === 'tolmacsolas') ? 'none' : '';\n                if ($szotarBtn) {\n                    $szotarBtn.style.display = (mod === 'gyakorlas') ? '' : 'none';\n                    if (!$szotarBtn.getAttribute('data-t0')) $szotarBtn.setAttribute('data-t0', $szotarBtn.textContent);\n                    $szotarBtn.textContent = (mod === 'szerepjatek') ? CFG.i18n.szavak_gomb_h : $szotarBtn.getAttribute('data-t0');\n                }\n                if ($gyorsSor) $gyorsSor.style.display = (mod === 'szerepjatek') ? '' : 'none';\n                if (!$input.getAttribute('data-ph0')) $input.setAttribute('data-ph0', $input.placeholder || '');\n                $input.placeholder = (mod === 'szerepjatek' && CFG.i18n.szerep_ph) ? CFG.i18n.szerep_ph : $input.getAttribute('data-ph0');\n                frissit_mic_nyelv_sor();\n                $autoFelolvas.checked = true;\n                gyak_nezet();\n                automatikus_inditas();\n            });\n        });\n\n        \/\/ \u00daJ (v9.723): egyetlen mikrofon-gomb marad, ha Tolm\u00e1csol\u00e1s m\u00f3dban\n        \/\/ Whisper van (az maga ismeri fel a nyelvet); minden m\u00e1s esetben k\u00e9t\n        \/\/ gomb: Magyar \u00e9s N\u00e9met.\n        function frissit_mic_nyelv_sor(){\n            var egy = ((mod === 'tolmacsolas' || mod === 'szerepjatek') && CFG.whisper && window.MediaRecorder && navigator.mediaDevices && navigator.mediaDevices.getUserMedia);\n            if ($micDe) $micDe.style.display = egy ? 'none' : '';\n            var c = $mic.querySelector('.mic-cimke');\n            if (c) c.style.display = egy ? 'none' : '';\n        }\n        function gomb_nyelv(btn){\n            if ((mod === 'tolmacsolas' || mod === 'szerepjatek') && whisper_ok) return 'auto';\n            return (btn && btn.getAttribute('data-nyelv') === 'de') ? 'de' : 'hu';\n        }\n        function mic_ui(be){\n            [$mic, $micDe].forEach(function(b){ if (b) b.classList.remove('felvetel'); });\n            if (be && aktivGomb) aktivGomb.classList.add('felvetel');\n        }\n        function mic_tilt(x){ $mic.disabled = x; if ($micDe) $micDe.disabled = x; }\n\n        \/\/ \u00daJ (v9.713): Anik\u00f3 k\u00e9rte, hogy az asszisztens MAG\u00c1T\u00d3L, k\u00e9r\u00e9s n\u00e9lk\u00fcl\n        \/\/ is tan\u00edtson - eddig csak akkor v\u00e1laszolt, ha a felhaszn\u00e1l\u00f3 \u00edrt neki\n        \/\/ valamit. Ha Gyakorl\u00e1s m\u00f3dban van poz\u00edci\u00f3 kiv\u00e1lasztva \u00e9s m\u00e9g nincs\n        \/\/ besz\u00e9lget\u00e9s, automatikusan elind\u00edtjuk az els\u0151 leck\u00e9t (a felhaszn\u00e1l\u00f3\n        \/\/ ezt nem l\u00e1tja saj\u00e1t \u00fczenetk\u00e9nt, csak az AI v\u00e1lasz\u00e1t).\n        function tema_cimke(){\n            if (!$tema || !$tema.value) return '';\n            var o = $tema.options[$tema.selectedIndex];\n            return o ? o.text : '';\n        }\n        function indito_uzenet(){\n            if (mod === 'szerepjatek') return '(Kezdj\u00fck a jelenetet! Sz\u00f3lalj meg te el\u0151sz\u00f6r, a karaktered szerep\u00e9ben.)';\n            var t = tema_cimke();\n            if (t) return '(Ezt a t\u00e9m\u00e1t v\u00e1lasztottam: \"' + t + '\". Tan\u00edts meg most azonnal ennek a legfontosabb alapmondataira \u00e9s szavaira.)';\n            return '(Kezdj\u00fck el! Tan\u00edts meg most azonnal a legfontosabb szavakra \u00e9s mondatokra, amikre a munk\u00e1mhoz \u00e9s az itteni mindennapi \u00e9lethez sz\u00fcks\u00e9gem lesz.)';\n        }\n        function automatikus_inditas(){\n            if (mod === 'szerepjatek') {\n                if (history_.length) return;\n                if (!$szerep || !$szerep.value) {\n                    if (!$kezdoTipp || !$kezdoTipp.parentNode) {\n                        $kezdoTipp = document.createElement('div');\n                        $kezdoTipp.className = 'staffix-aiaj-bubi sys kezdo-tipp';\n                        $kezdoTipp.textContent = CFG.i18n.szerep_tipp;\n                        $uzenetek.appendChild($kezdoTipp);\n                    }\n                    return;\n                }\n                indulas_kinal();\n                return;\n            }\n            if (mod === 'gyakorlas' && gyakFajta !== 'beszelgetes') { gyak_frissit(); return; }\n            if (mod !== 'gyakorlas') return;\n            if (history_.length) return;\n            \/\/ T\u00e9ma kiv\u00e1lasztva: poz\u00edci\u00f3 n\u00e9lk\u00fcl is indulhat (\u00e1ltal\u00e1nos vend\u00e9gl\u00e1t\u00f3s szint).\n            if ($poz && !$poz.value && !($tema && $tema.value)) {\n                if (!$kezdoTipp || !$kezdoTipp.parentNode) {\n                    $kezdoTipp = document.createElement('div');\n                    $kezdoTipp.className = 'staffix-aiaj-bubi sys kezdo-tipp';\n                    $kezdoTipp.textContent = CFG.i18n.kezdo_tipp;\n                    $uzenetek.appendChild($kezdoTipp);\n                }\n                return;\n            }\n            indulas_kinal();\n        }\n        \/\/ T\u00e9ma v\u00e1lt\u00e1s: b\u00e1rmikor (a besz\u00e9lget\u00e9s k\u00f6zben is) \u00faj leck\u00e9t ind\u00edt.\n        if ($tema) {\n            $tema.addEventListener('change', function(){\n                if (mod === 'gyakorlas' && gyakFajta !== 'beszelgetes') { gyak_frissit(); return; }\n                if (mod !== 'gyakorlas' || !$tema.value) return;\n                if (history_.length) { szavak_kell = true; kuldes(indito_uzenet()); }\n                else indulas_kinal();\n            });\n        }\n        if ($poz) {\n            $poz.addEventListener('change', function(){\n                \/\/ Szerepj\u00e1t\u00e9kn\u00e1l a poz\u00edci\u00f3 v\u00e1lt\u00e1sa \u00faj jelenetet ind\u00edt (az \u00faj poz\u00edci\u00f3hoz ill\u0151 k\u00f6rnyezettel).\n                if (mod === 'szerepjatek' && $szerep && $szerep.value && history_.length && !$send.disabled) {\n                    hang_leallit();\n                    while ($uzenetek.firstChild) $uzenetek.removeChild($uzenetek.firstChild);\n                    history_ = [];\n                    $kezdoTipp = null;\n                    indulas_kinal();\n                    return;\n                }\n                automatikus_inditas();\n            });\n        }\n        \/\/ Szerepj\u00e1t\u00e9k: \u00faj helyzet kiv\u00e1laszt\u00e1sakor tiszta lappal indul a jelenet.\n        if ($szerep) {\n            $szerep.addEventListener('change', function(){\n                if (mod !== 'szerepjatek' || !$szerep.value) return;\n                if ($send.disabled) return;\n                hang_leallit();\n                while ($uzenetek.firstChild) $uzenetek.removeChild($uzenetek.firstChild);\n                history_ = [];\n                $kezdoTipp = null;\n                indulas_kinal();\n            });\n        }\n\n        \/\/ JAV\u00cdTVA (v9.714): Anik\u00f3 jelezte, hogy a Jav\u00edt\u00e1s:\/Sz\u00f3kincs: r\u00e9sz\n        \/\/ egyetlen zs\u00fafolt bekezd\u00e9sk\u00e9nt jelent meg, \u00e9s k\u00e9rte, hogy a szavak\n        \/\/ k\u00fcl\u00f6n sorban legyenek. A \"szak\" param\u00e9ter mostant\u00f3l egy szakaszolt\n        \/\/ objektum ({javitas, szokincs, feladat} - ld. valasz_szakaszolasa()),\n        \/\/ amib\u0151l a Sz\u00f3kincs: list\u00e1t szavank\u00e9nt k\u00fcl\u00f6n sorban (<li>) jelen\u00edtj\u00fck\n        \/\/ meg, a Jav\u00edt\u00e1s:\/Feladat: r\u00e9szeket pedig saj\u00e1t, j\u00f3l elk\u00fcl\u00f6n\u00fcl\u0151\n        \/\/ blokkban. A lej\u00e1tsz\u00f3 gomb emoji helyett SVG ikont kap, mert a \ud83d\udd0a\n        \/\/ egyes rendszereken \u00fcres, \"bufla\" k\u00f6rk\u00e9nt jelent meg.\n        var HANG_SVG = '<svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M4 9v6h4l5 5V4L8 9H4Z\"\/><path d=\"M16.3 12a4.3 4.3 0 0 0-1.8-3.5 1 1 0 1 0-1.15 1.64A2.3 2.3 0 0 1 14.3 12a2.3 2.3 0 0 1-.95 1.86 1 1 0 1 0 1.15 1.64A4.3 4.3 0 0 0 16.3 12Z\"\/><path d=\"M19.3 12a7.6 7.6 0 0 0-3.1-6.14 1 1 0 1 0-1.17 1.62A5.6 5.6 0 0 1 17.3 12a5.6 5.6 0 0 1-2.27 4.52 1 1 0 1 0 1.17 1.62A7.6 7.6 0 0 0 19.3 12Z\"\/><\/svg>';\n\n        \/\/ \u00daJ (v9.722): iPhone\/Safari csak felhaszn\u00e1l\u00f3i koppint\u00e1s k\u00f6zben engedi\n        \/\/ elind\u00edtani a g\u00e9pi besz\u00e9det - a v\u00e1lasz viszont aszinkron \u00e9rkezik, ez\u00e9rt\n        \/\/ az automatikus felolvas\u00e1s (f\u0151leg a sz\u00f3kincslista) elmaradhatott. Az\n        \/\/ els\u0151 koppint\u00e1skor egy n\u00e9ma \"bemeleg\u00edt\u0151\" mondatot ind\u00edtunk, ami ut\u00e1n a\n        \/\/ k\u00e9s\u0151bbi, automatikus felolvas\u00e1s is megsz\u00f3lal.\n        var beszedFeloldva = false;\n        function beszed_feloldas(){\n            if (beszedFeloldva || !('speechSynthesis' in window)) return;\n            try {\n                var u = new SpeechSynthesisUtterance(' ');\n                u.volume = 0;\n                speechSynthesis.speak(u);\n                beszedFeloldva = true;\n            } catch(e) {}\n        }\n\n        function bubi(szoveg, tipus, szak, szokincs_szavak, nyelv, irany){\n            var div = document.createElement('div');\n            div.className = 'staffix-aiaj-bubi ' + tipus;\n            \/\/ v9.828: a besz\u00e9lget\u00e9sben l\u00e1tszik, ki mondta: Dorka (a kiv\u00e1lasztott st\u00edlusban) \u00e9s a tanul\u00f3 saj\u00e1t arca.\n            if (tipus === 'ai' || tipus === 'en') {\n                try {\n                    var bav = document.createElement('div');\n                    bav.className = 'sfx-bav';\n                    bav.setAttribute('aria-hidden', 'true');\n                    bav.innerHTML = (tipus === 'ai') ? partner_kep(partner_adat(partner)) : te_kep(enLook);\n                    div.appendChild(bav);\n                    div.classList.add('sfx-van-av');\n                } catch(eav) {}\n            }\n\n            var fo = document.createElement('div');\n            fo.className = 'fo-szoveg';\n            fo.textContent = szoveg;\n            if (irany) {\n                var ir = document.createElement('div');\n                ir.className = 'irany';\n                ir.textContent = irany;\n                div.appendChild(ir);\n            }\n            div.appendChild(fo);\n\n            if (szak && szak.javitas) {\n                var jd = document.createElement('div');\n                jd.className = 'javitas';\n                jd.textContent = '\u270f\ufe0f ' + szak.javitas;\n                div.appendChild(jd);\n            }\n            if (szak && szak.szokincs) {\n                var sz = document.createElement('div');\n                sz.className = 'szokincs';\n                var cim = document.createElement('div');\n                cim.className = 'szokincs-cim';\n                cim.textContent = szak.valasz_mondatok ? CFG.i18n.valasz_mondatok : CFG.i18n.szokincs_cim;\n                sz.appendChild(cim);\n                if (szokincs_szavak && szokincs_szavak.length) {\n                    var mind = document.createElement('button');\n                    mind.type = 'button';\n                    mind.className = 'szo-mind';\n                    mind.textContent = CFG.i18n.mind_hallgat;\n                    mind.addEventListener('click', function(){ beszed_feloldas(); felolvas('', szokincs_szavak, 'de'); });\n                    sz.appendChild(mind);\n                }\n                var lista = document.createElement('ul');\n                lista.className = 'szokincs-lista';\n                \/\/ \u00c1tl\u00e1that\u00f3bb megjelen\u00edt\u00e9s (v9.722): t\u00e9telenk\u00e9nt egy sor - fel\u00fcl\n                \/\/ vastagon a n\u00e9met sz\u00f3, alatta kisebb, sz\u00fcrke bet\u0171vel a magyar\n                \/\/ jelent\u00e9s, jobbra egy lej\u00e1tsz\u00f3 gomb a sz\u00f3 meghallgat\u00e1s\u00e1hoz.\n                (szak.szokincs_parok || []).forEach(function(par){\n                    var li = document.createElement('li');\n                    var szov = document.createElement('div');\n                    szov.className = 'szo-szoveg';\n                    var sn2 = document.createElement('span');\n                    sn2.className = 'szo-nemet';\n                    sn2.textContent = par.nemet || par.magyar;\n                    szov.appendChild(sn2);\n                    if (par.nemet && par.magyar) {\n                        var sm2 = document.createElement('span');\n                        sm2.className = 'szo-magyar';\n                        sm2.textContent = par.magyar;\n                        szov.appendChild(sm2);\n                    }\n                    li.appendChild(szov);\n                    if (par.nemet) {\n                        var lb = document.createElement('button');\n                        lb.type = 'button';\n                        lb.className = 'szo-lejatszo';\n                        lb.setAttribute('aria-label', CFG.i18n.felolvasas_cim || '');\n                        lb.innerHTML = HANG_SVG;\n                        lb.addEventListener('click', function(){ beszed_feloldas(); felolvas(par.nemet, [], 'de'); });\n                        li.appendChild(lb);\n                    }\n                    lista.appendChild(li);\n                });\n                sz.appendChild(lista);\n                div.appendChild(sz);\n            }\n            if (szak && szak.feladat) {\n                var fe = document.createElement('div');\n                fe.className = 'feladat';\n                fe.textContent = '\ud83d\udcdd ' + szak.feladat;\n                div.appendChild(fe);\n            }\n            \/\/ \u00daJ (v9.720): a gyakorl\u00f3 feladathoz seg\u00edts\u00e9g - Anik\u00f3 jelezte, hogy\n            \/\/ nulla n\u00e9metn\u00e9l a felhaszn\u00e1l\u00f3 nem tudja azonnal kital\u00e1lni a mondatot.\n            \/\/ A gomb kinyitja a mintamegold\u00e1st (n\u00e9met mondat + magyar jelent\u00e9s),\n            \/\/ amit meg lehet hallgatni, vagy egy koppint\u00e1ssal a mez\u0151be \u00edrni.\n            if (szak && szak.segitseg) {\n                var eq = szak.segitseg.indexOf('=');\n                var nemet_mondat = (eq > -1 ? szak.segitseg.substring(0, eq) : szak.segitseg).trim();\n                var magyar_jel = (eq > -1 ? szak.segitseg.substring(eq + 1) : '').trim();\n                var sgomb = document.createElement('button');\n                sgomb.type = 'button';\n                sgomb.className = 'segitseg-btn';\n                sgomb.textContent = CFG.i18n.segitseg;\n                var sdoboz = document.createElement('div');\n                sdoboz.className = 'segitseg-doboz';\n                sdoboz.style.display = 'none';\n                var sn = document.createElement('div');\n                sn.className = 'segitseg-nemet';\n                sn.textContent = nemet_mondat;\n                sdoboz.appendChild(sn);\n                if (magyar_jel) {\n                    var sm = document.createElement('div');\n                    sm.className = 'segitseg-magyar';\n                    sm.textContent = magyar_jel;\n                    sdoboz.appendChild(sm);\n                }\n                var ssor = document.createElement('div');\n                ssor.className = 'segitseg-gombok';\n                var shall = document.createElement('button');\n                shall.type = 'button';\n                shall.textContent = CFG.i18n.segitseg_hallgat;\n                \/\/ v9.851: a \"Meghallgatom\" a mondat elhangz\u00e1sa ut\u00e1n mag\u00e1t\u00f3l el is k\u00fcldi a mondatot, \u00edgy megy tov\u00e1bb a jelenet.\n                shall.addEventListener('click', function(){\n                    hang_feloldas();\n                    if (shall.disabled) return;\n                    shall.disabled = true;\n                    felolvas(nemet_mondat, [], 'de');\n                    $input.value = nemet_mondat;\n                    aiaj_input_magassag();\n                    beszed_vege(function(){ shall.disabled = false; if ($input.value === nemet_mondat && !$send.disabled) kuldes(); });\n                });\n                ssor.appendChild(shall);\n                sdoboz.appendChild(ssor);\n                \/\/ v9.832: a seg\u00edts\u00e9g megnyit\u00e1sakor a n\u00e9met mondat mag\u00e1t\u00f3l beker\u00fcl a beviteli mez\u0151be \u00e9s el is hangzik,\n                \/\/ nem kell v\u00e1lasztani a \"be\u00edrom\" \u00e9s az \"elk\u00fcld\u00f6m\" k\u00f6z\u00f6tt: el\u00e9g meghallgatni, mondd ut\u00e1na, \u00e9s K\u00fcld\u00e9s.\n                sgomb.addEventListener('click', function(){\n                    var nyit = (sdoboz.style.display === 'none');\n                    sdoboz.style.display = nyit ? 'block' : 'none';\n                    if (nyit) {\n                        hang_feloldas();\n                        felolvas(nemet_mondat, [], 'de');\n                        $input.value = nemet_mondat;\n                        aiaj_input_magassag();\n                    }\n                });\n                div.appendChild(sgomb);\n                div.appendChild(sdoboz);\n            }\n\n            if (tipus === 'ai') {\n                var lej = document.createElement('button');\n                lej.type = 'button';\n                lej.className = 'lejatszo';\n                lej.setAttribute('aria-label', CFG.i18n.felolvasas_cim || '');\n                lej.innerHTML = HANG_SVG;\n                lej.addEventListener('click', function(){ hang_feloldas(); felolvas(szoveg, szokincs_szavak, nyelv); });\n                div.appendChild(lej);\n            }\n            $uzenetek.appendChild(div);\n            var chat_el = $root.querySelector('.staffix-aiaj-chat');\n            if (tipus === 'ai') {\n                \/\/ v9.832: Dorka \u00faj \u00fczenet\u00e9n\u00e9l a doboz az \u00fczenet elej\u00e9re ugrik (a k\u00e9rd\u00e9sre), nem az alj\u00e1ra.\n                try {\n                    var cr = chat_el.getBoundingClientRect(), dr = div.getBoundingClientRect();\n                    chat_el.scrollTop = Math.max(0, chat_el.scrollTop + (dr.top - cr.top) - 8);\n                } catch(es) { chat_el.scrollTop = 999999; }\n            } else {\n                chat_el.scrollTop = 999999;\n            }\n            return div;\n        }\n\n        \/\/ JAV\u00cdTVA (v9.711): a felolvas\u00e1s el\u0151tt megtiszt\u00edtjuk a sz\u00f6veget a markdown\n        \/\/ maradv\u00e1nyokt\u00f3l (csillagok, k\u00f6t\u0151jeles elv\u00e1laszt\u00f3 vonal, al\u00e1h\u00faz\u00e1s, backtick),\n        \/\/ mert ezeket a g\u00e9p sz\u00f3 szerint, akadozva pr\u00f3b\u00e1lta kimondani (\"akadozik\").\n        \/\/ A besz\u00e9dsebess\u00e9get is lassabbra \u00e1ll\u00edtjuk (0.88), mert az alap\u00e9rtelmezett\n        \/\/ temp\u00f3 (\"hadar\") egy nyelvtanul\u00f3nak t\u00fal gyors volt.\n        function felolvasasra_tisztit(szoveg){\n            return szoveg\n                .replace(\/\\*\\*\/g, '')\n                .replace(\/[*_`]\/g, '')\n                .replace(\/^-{2,}$\/gm, '')\n                .replace(\/\\s{2,}\/g, ' ')\n                .trim();\n        }\n\n        \/\/ JAV\u00cdTVA (v9.714): a kor\u00e1bbi v\u00e1g\u00e1si logika csak a Jav\u00edt\u00e1s:\/Sz\u00f3kincs:\n        \/\/ jel\u00f6l\u0151k K\u00d6Z\u00dcL A KOR\u00c1BBIT n\u00e9zte, \u00e9s onnant\u00f3l a v\u00e1lasz V\u00c9G\u00c9IG mindent\n        \/\/ egy blokknak vett - ha az AI a Sz\u00f3kincs: lista UT\u00c1N m\u00e9g \u00edrt egy\n        \/\/ jel\u00f6letlen, szabad sz\u00f6veget (pl. egy gyakorl\u00f3 k\u00e9rd\u00e9st), az is\n        \/\/ belekeveredett a sz\u00f3kincs-feldolgoz\u00e1sba, \u00e9s a felolvas\u00f3 program\n        \/\/ azt is megpr\u00f3b\u00e1lta (hib\u00e1san) kimondani. Ez a f\u00fcggv\u00e9ny minden egyes\n        \/\/ jel\u00f6l\u0151t a K\u00d6VETKEZ\u0150 jel\u00f6l\u0151ig (vagy a sz\u00f6veg v\u00e9g\u00e9ig) hat\u00e1rol be, \u00edgy\n        \/\/ minden szakasz pontosan a saj\u00e1t tartalm\u00e1t kapja. A \"Feladat:\" jel\u00f6l\u0151\n        \/\/ (\u00daJ, v9.714) a rendszer\u00fczenetben le\u00edrt, opcion\u00e1lis gyakorl\u00f3\n        \/\/ k\u00e9rd\u00e9seket fogja \u00f6ssze, hogy azok se keveredjenek a sz\u00f3kincsbe.\n        \/\/ \u00daJ (v9.721): a Sz\u00f3kincs: szakasz biztons\u00e1gos feldolgoz\u00e1sa. Anik\u00f3\n        \/\/ k\u00e9perny\u0151k\u00e9p\u00e9n magyar szavak is \u00f6n\u00e1ll\u00f3 t\u00e9telk\u00e9nt jelentek meg (\"takar\u00edtani\",\n        \/\/ \"hullad\u00e9k\"), \u00e9s a felolvas\u00f3 ezeket N\u00c9MET hanggal pr\u00f3b\u00e1lta kimondani\n        \/\/ (\"borzalmas magyar kiejt\u00e9s\"). Ok: egy t\u00e9telen bel\u00fcl a magyar jelent\u00e9s\n        \/\/ t\u00f6bb, vessz\u0151vel elv\u00e1lasztott sz\u00f3 is lehet (\"das Geschirr = ed\u00e9nyek,\n        \/\/ mosogatnival\u00f3\"), \u00e9s a r\u00e9gi feldolgoz\u00f3 MINDEN vessz\u0151n\u00e9l v\u00e1gott. Mostant\u00f3l:\n        \/\/ sorokra bontunk (a rendszer\u00fczenet soronk\u00e9nt k\u00e9ri a t\u00e9teleket); egysoros\n        \/\/ list\u00e1n\u00e1l csak olyan vessz\u0151n\u00e9l v\u00e1gunk, ami ut\u00e1n \u00faj \"n\u00e9met = magyar\" p\u00e1r\n        \/\/ kezd\u0151dik; az \"=\" n\u00e9lk\u00fcli t\u00f6red\u00e9ket az el\u0151z\u0151 t\u00e9tel magyar jelent\u00e9s\u00e9hez\n        \/\/ f\u0171zz\u00fck; a felolvas\u00e1s pedig kiz\u00e1r\u00f3lag az \"=\" el\u0151tti (n\u00e9met) r\u00e9szt kapja.\n        function szokincs_parok_kigyujtese(szoveg){\n            var darabok;\n            if (szoveg.indexOf('\\n') > -1) {\n                darabok = szoveg.split(\/\\n+\/);\n            } else {\n                darabok = szoveg.split(\/;\\s*|,\\s+(?=[^,=]*=)\/);\n            }\n            var parok = [];\n            darabok.forEach(function(d){\n                d = d.replace(\/^[\\s\\-\u2022*]+\/, '').trim();\n                if (!d) return;\n                var eq = d.indexOf('=');\n                if (eq > -1) {\n                    parok.push({ nemet: d.substring(0, eq).trim(), magyar: d.substring(eq + 1).trim() });\n                } else if (parok.length) {\n                    \/\/ magyar jelent\u00e9s folytat\u00e1sa az el\u0151z\u0151 t\u00e9telhez\n                    parok[parok.length - 1].magyar += ', ' + d;\n                } else {\n                    parok.push({ nemet: '', magyar: d });\n                }\n            });\n            return parok;\n        }\n\n        function valasz_szakaszolasa(valasz){\n            var jelolok = [ {nev:'javitas', cimke:'Jav\u00edt\u00e1s:'}, {nev:'szokincs', cimke:'Sz\u00f3kincs:'}, {nev:'feladat', cimke:'Feladat:'}, {nev:'segitseg', cimke:'Seg\u00edts\u00e9g:'} ];\n            var talalatok = [];\n            jelolok.forEach(function(j){\n                var i = valasz.indexOf(j.cimke);\n                if (i > -1) talalatok.push({nev:j.nev, idx:i, cimke:j.cimke});\n            });\n            talalatok.sort(function(a, b){ return a.idx - b.idx; });\n\n            var eredmeny = { felolvasando: valasz.trim(), javitas:'', szokincs:'', feladat:'', segitseg:'', szokincs_szavak:[], szokincs_parok:[] };\n            if (!talalatok.length) return eredmeny;\n\n            eredmeny.felolvasando = valasz.substring(0, talalatok[0].idx).trim();\n            talalatok.forEach(function(t, i){\n                var vege = (i + 1 < talalatok.length) ? talalatok[i + 1].idx : valasz.length;\n                eredmeny[t.nev] = valasz.substring(t.idx + t.cimke.length, vege).trim();\n            });\n\n            \/\/ A Sz\u00f3kincs: szakaszb\u00f3l (most m\u00e1r pontosan behat\u00e1rolva) kigy\u0171jtj\u00fck\n            \/\/ KIZ\u00c1R\u00d3LAG a n\u00e9met szavakat\/kifejez\u00e9seket (az \"=\" el\u0151tti r\u00e9szt) -\n            \/\/ ezeket mondja ki a g\u00e9p hangosan, a magyar jelent\u00e9st nem.\n            if (eredmeny.szokincs) {\n                eredmeny.szokincs_parok = szokincs_parok_kigyujtese(eredmeny.szokincs);\n                \/\/ CSAK azokat mondjuk ki, ahol van \"=\" (azaz t\u00e9nyleges n\u00e9met oldal).\n                eredmeny.szokincs_szavak = eredmeny.szokincs_parok.filter(function(p){ return p.nemet; }).map(function(p){\n                    return felolvasasra_tisztit(p.nemet);\n                }).filter(Boolean);\n            }\n            return eredmeny;\n        }\n\n        \/\/ \u00daJ (v9.718): magyar sz\u00f6veget - ha van OpenAI-kulcs - a SZERVER olvas fel\n        \/\/ (val\u00f3di magyar kiejt\u00e9ssel, minden k\u00e9sz\u00fcl\u00e9ken egyform\u00e1n). iPhone-on a\n        \/\/ hangot egy felhaszn\u00e1l\u00f3i koppint\u00e1skor \"fel kell oldani\" egy csendes\n        \/\/ lej\u00e1tsz\u00e1ssal, k\u00fcl\u00f6nben a Safari blokkolja az aszinkron m\u00f3don indul\u00f3 hangot.\n        var hangEl = new Audio();\n        var csendes_wav = 'data:audio\/wav;base64,UklGRiQAAABXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YQAAAAA=';\n        function hang_feloldas(){\n            beszed_feloldas();\n            if (!CFG.szerver_tts) return;\n            try { hangEl.src = csendes_wav; var p = hangEl.play(); if (p && p.catch) p.catch(function(){}); } catch(e) {}\n        }\n        function hang_leallit(){\n            try { hangEl.pause(); } catch(e) {}\n            if ('speechSynthesis' in window) { try { speechSynthesis.cancel(); } catch(e) {} }\n        }\n        var szerver_fut = 0;\n        function szerver_felolvas(szoveg, tartalek){\n            var tiszta = felolvasasra_tisztit(szoveg || '');\n            if (!tiszta) return;\n            szerver_fut++;\n            var fd = new FormData();\n            fd.append('action', 'staffix_ai_aj_tts');\n            fd.append('nonce', CFG.nonce);\n            fd.append('szoveg', tiszta);\n            fetch(CFG.ajax_url, { method:'POST', credentials:'same-origin', body: fd })\n                .then(function(r){\n                    var ct = r.headers.get('content-type') || '';\n                    if (!r.ok || ct.indexOf('audio') === -1) throw new Error('tts');\n                    return r.blob();\n                })\n                .then(function(blob){\n                    hangEl.src = URL.createObjectURL(blob);\n                    var p = hangEl.play();\n                    szerver_fut = Math.max(0, szerver_fut - 1);\n                    if (p && p.catch) p.catch(function(){ if (tartalek) tartalek(); });\n                })\n                .catch(function(){ szerver_fut = Math.max(0, szerver_fut - 1); if (tartalek) tartalek(); });\n        }\n\n        \/\/ \u00daJ (v9.761): magyar \/ n\u00e9met sz\u00f6veg felismer\u00e9se. A felolvas\u00f3 kor\u00e1bban mindent n\u00e9met hanggal\n        \/\/ mondott ki, ez\u00e9rt a magyar r\u00e9szek \"borzalmasan\" sz\u00f3ltak. Mostant\u00f3l szakaszonk\u00e9nt v\u00e1lasztunk.\n        \/\/ v9.828: a tanul\u00f3 be\u00edr\u00e1sa magyar-e (r\u00f6vid, \u00e9kezet n\u00e9lk\u00fcli mondatok is: \"A nevem Timi\")\n        var MAGYAR_SZAVAK = {\"a\":1,\"az\":1,\"egy\":1,\"\u00e9s\":1,\"es\":1,\"nevem\":1,\"neve\":1,\"vagyok\":1,\"vagy\":1,\"van\":1,\"volt\":1,\"lesz\":1,\"nem\":1,\"igen\":1,\"nekem\":1,\"neked\":1,\"szeretn\u00e9k\":1,\"szeretnem\":1,\"szeretn\u00e9m\":1,\"szeretn\u00e9k\":1,\"k\u00e9rek\":1,\"k\u00e9rem\":1,\"kerem\":1,\"hol\":1,\"hogyan\":1,\"hogy\":1,\"mikor\":1,\"mennyi\":1,\"mennyibe\":1,\"mi\u00e9rt\":1,\"miert\":1,\"meg\":1,\"m\u00e1r\":1,\"mar\":1,\"m\u00e9g\":1,\"ide\":1,\"oda\":1,\"ezt\":1,\"azt\":1,\"ez\":1,\"itt\":1,\"ott\":1,\"szia\":1,\"j\u00f3\":1,\"napot\":1,\"reggelt\":1,\"est\u00e9t\":1,\"k\u00f6sz\u00f6n\u00f6m\":1,\"koszonom\":1,\"k\u00f6szi\":1,\"dolgozom\":1,\"dolgozni\":1,\"tudok\":1,\"tudom\":1,\"\u00e9rtem\":1,\"ertem\":1,\"kell\":1,\"lehet\":1,\"szoba\":1,\"vend\u00e9g\":1,\"vendeg\":1,\"munka\":1,\"magyar\":1,\"magyarorsz\u00e1g\":1,\"magyarorszag\":1,\"tanulok\":1,\"lakom\":1,\"j\u00f6v\u00f6k\":1,\"jovok\":1,\"\u00e9rkeztem\":1,\"erkeztem\":1,\"seg\u00edts\u00e9g\":1,\"segitseg\":1,\"seg\u00edts\":1,\"segits\":1,\"kaphatok\":1,\"k\u00e9rhetek\":1,\"kerhetek\":1,\"szabadnap\":1,\"fizet\u00e9s\":1,\"fizetes\":1,\"f\u0151n\u00f6k\":1,\"fonok\":1,\"bocs\u00e1nat\":1,\"bocsanat\":1,\"eln\u00e9z\u00e9st\":1,\"elnezest\":1,\"persze\":1,\"rendben\":1,\"nincs\":1,\"tess\u00e9k\":1,\"tessek\":1,\"k\u00e9rlek\":1,\"kerlek\":1,\"vagyunk\":1,\"vagytok\":1,\"akarok\":1,\"szeretek\":1,\"dolgozott\":1,\"holnap\":1,\"ma\":1,\"tegnap\":1,\"reggel\":1,\"este\":1,\"nagyon\":1,\"sz\u00e9pen\":1,\"szepen\":1,\"j\u00f3l\":1,\"jol\":1,\"rossz\":1,\"mennyit\":1,\"h\u00e1ny\":1,\"hany\":1,\"milyen\":1,\"melyik\":1,\"kinek\":1,\"mire\":1,\"miben\":1,\"sz\u00e1ll\u00e1s\":1,\"szallas\":1,\"\u00e9tkez\u00e9s\":1,\"etkezes\":1};\n        var NEMET_SZAVAK = {\"ich\":1,\"ist\":1,\"und\":1,\"nicht\":1,\"bitte\":1,\"danke\":1,\"guten\":1,\"sie\":1,\"wir\":1,\"der\":1,\"die\":1,\"das\":1,\"ein\":1,\"eine\":1,\"einen\":1,\"mein\":1,\"meine\":1,\"hei\u00dfe\":1,\"heisse\":1,\"bin\":1,\"habe\":1,\"m\u00f6chte\":1,\"moechte\":1,\"kann\":1,\"k\u00f6nnen\":1,\"wie\":1,\"was\":1,\"wo\":1,\"wann\":1,\"ja\":1,\"nein\":1,\"mit\":1,\"zu\":1,\"f\u00fcr\":1,\"auf\":1,\"ich\":1,\"dem\":1,\"den\":1,\"im\":1,\"am\":1,\"haben\":1,\"sind\":1,\"sehr\":1,\"gern\":1,\"gerne\":1,\"hallo\":1,\"tag\":1,\"morgen\":1,\"abend\":1,\"zimmer\":1,\"wasser\":1};\n        function magyar_beiras_e(t){\n            var s = String(t || '').toLowerCase();\n            if (\/[\u0151\u0171]\/.test(s)) return true;\n            if (\/[\u00e4\u00df]\/.test(s)) return false;\n            var w = s.match(\/[a-z\u00e1\u00e9\u00ed\u00f3\u00f6\u00fa\u00fc\u0151\u0171]+\/g) || [];\n            if (!w.length) return false;\n            var h = 0, d = 0;\n            w.forEach(function(x){ if (MAGYAR_SZAVAK[x]) h++; if (NEMET_SZAVAK[x]) d++; });\n            if (\/[\u00e1\u00e9\u00ed\u00f3\u00fa]\/.test(s) && d === 0) return true;\n            return h > 0 && h >= d;\n        }\n        function hu_szoveg_e(t){\n            var s = ' ' + String(t || '').toLowerCase().replace(\/[.,!?;:()\"\u201e\u201d]\/g, ' ') + ' ';\n            if (\/[\u0151\u0171]\/.test(s)) return true;\n            var ac = (s.match(\/[\u00e1\u00e9\u00ed\u00f3\u00fa]\/g) || []).length;\n            if (ac >= 2) return true;\n            if (ac >= 1 && !\/[\u00e4\u00df]\/.test(s)) return true;\n            \/\/ v9.850: Anik\u00f3 k\u00e9r\u00e9s\u00e9re a felolvas\u00e1s MINDIG v\u00e9gigmondja, amit Dorka n\u00e9met\u00fcl \u00edrt. Kiz\u00e1r\u00f3lag az olyan mondatot hagyjuk ki, amely\n            \/\/ egy\u00e9rtelm\u0171en magyar (magyar \u00e9kezetes bet\u0171 van benne) - a sz\u00f3jelz\u0151s tippel\u00e9s megsz\u0171nt, mert n\u00e9met mondatokat is kihagyott (\"mit dem ...\").\n            return false;\n        }\n        function nyelv_szakaszok(szoveg){\n            var db = String(szoveg || '').match(\/[^.!?\u2026\\n]+[.!?\u2026]*\/g) || [];\n            var ki = [];\n            db.forEach(function(d){\n                d = d.trim(); if (!d) return;\n                var l = hu_szoveg_e(d) ? 'hu' : 'de';\n                if (ki.length && ki[ki.length - 1].l === l) ki[ki.length - 1].t += ' ' + d; else ki.push({ l: l, t: d });\n            });\n            return ki;\n        }\n        \/\/ v9.829: iPhone\/Safari csak akkor ind\u00edtja el a besz\u00e9det, ha a speak() a koppint\u00e1s pillanat\u00e1ban fut. A kor\u00e1bbi\n        \/\/ cancel() + 90 ms v\u00e1rakoz\u00e1s ilyenkor elnyelte a hangot (a lej\u00e1tsz\u00f3 gomb \"nem reag\u00e1lt\"), ez\u00e9rt ha \u00e9ppen semmi nem sz\u00f3l,\n        \/\/ azonnal ind\u00edtunk; csak akkor szak\u00edtjuk meg \u00e9s v\u00e1runk, ha m\u00e1r sz\u00f3l valami.\n        function beszed_inditas(fn){\n            try {\n                if (speechSynthesis.speaking || speechSynthesis.pending) { speechSynthesis.cancel(); setTimeout(fn, 90); }\n                else { fn(); }\n            } catch(e) { try { fn(); } catch(e2) {} }\n        }\n        function felolvas_kevert_bongeszo(szakaszok, szavak){\n            if (!('speechSynthesis' in window)) return;\n            try {\n                var all = speechSynthesis.getVoices();\n                var vde = all.filter(function(v){ return v.lang && v.lang.indexOf('de') === 0; });\n                var vhu = all.filter(function(v){ return v.lang && v.lang.indexOf('hu') === 0; });\n                beszed_inditas(function(){\n                    szakaszok.forEach(function(sz){\n                        if (sz.l === 'hu' && !vhu.length) return; \/\/ magyar hang n\u00e9lk\u00fcl ink\u00e1bb hallgatunk\n                        var u = new SpeechSynthesisUtterance(sz.t);\n                        u.lang = (sz.l === 'hu') ? 'hu-HU' : 'de-DE';\n                        u.rate = (sz.l === 'hu') ? 0.95 : 0.88;\n                        var vs = (sz.l === 'hu') ? vhu : vde;\n                        if (vs.length) u.voice = vs[0];\n                        speechSynthesis.speak(u);\n                    });\n                    (szavak || []).forEach(function(w){\n                        var u2 = new SpeechSynthesisUtterance(w); u2.lang = 'de-DE'; u2.rate = 0.88;\n                        if (vde.length) u2.voice = vde[0];\n                        speechSynthesis.speak(u2);\n                    });\n                });\n            } catch(e) {}\n        }\n\n        function felolvas(szoveg, szavak, nyelv){\n            try { hangEl.pause(); } catch(e) {}\n            \/\/ v9.761: ha a sz\u00f6veg magyar r\u00e9szt is tartalmaz, nem olvassuk v\u00e9gig n\u00e9met hanggal\n            if (nyelv !== 'hu' && szoveg) {\n                var szk = nyelv_szakaszok(szoveg);\n                var van_hu = szk.some(function(x){ return x.l === 'hu'; });\n                if (van_hu) {\n                    \/\/ v9.832: n\u00e9met felolvas\u00e1sn\u00e1l a magyar r\u00e9szeket nem mondjuk ki, csak a n\u00e9metet.\n                    var csak_de = szk.filter(function(x){ return x.l === 'de'; });\n                    if (!csak_de.length) { return; }\n                    felolvas_bongeszo(csak_de.map(function(x){ return x.t; }).join(' '), szavak, 'de');\n                    return;\n                }\n                if (false) {\n                    var csak_hu = szk.every(function(x){ return x.l === 'hu'; });\n                    if (csak_hu) { felolvas(szoveg, [], 'hu'); return; }\n                    if (CFG.szerver_tts) {\n                        if ('speechSynthesis' in window) { try { speechSynthesis.cancel(); } catch(e) {} }\n                        szerver_felolvas(szoveg, function(){ felolvas_kevert_bongeszo(szk, szavak); });\n                    } else {\n                        felolvas_kevert_bongeszo(szk, szavak);\n                    }\n                    return;\n                }\n            }\n            if (nyelv === 'hu' && CFG.szerver_tts) {\n                if ('speechSynthesis' in window) { try { speechSynthesis.cancel(); } catch(e) {} }\n                szerver_felolvas(szoveg, function(){ felolvas_bongeszo(szoveg, szavak, nyelv); });\n                return;\n            }\n            felolvas_bongeszo(szoveg, szavak, nyelv);\n        }\n\n        function felolvas_bongeszo(szoveg, szavak, nyelv){\n            if (!('speechSynthesis' in window)) return;\n            var hu = (nyelv === 'hu');\n            var reszek = [];\n            var tiszta = felolvasasra_tisztit(szoveg || '');\n            if (tiszta) reszek.push(tiszta);\n            if (szavak && szavak.length) reszek = reszek.concat(szavak);\n            if (!reszek.length) return;\n            try {\n                var voices = speechSynthesis.getVoices().filter(function(v){ return v.lang && v.lang.indexOf(hu ? 'hu' : 'de') === 0; });\n                \/\/ Magyar sz\u00f6veget csak val\u00f3di magyar hanggal olvasunk fel - n\u00e9met\n                \/\/ hanggal sz\u00f6rnyen sz\u00f3lna (kor\u00e1bbi visszajelz\u00e9s), ink\u00e1bb hallgatunk.\n                if (hu && !voices.length) return;\n                \/\/ Safari\/Chrome: a cancel() ut\u00e1ni azonnali speak() n\u00e9ha elnyel\u0151dik, ez\u00e9rt ha sz\u00f3l valami, k\u00e9sleltet\u00e9ssel ind\u00edtunk.\n                beszed_inditas(function(){\n                    reszek.forEach(function(resz){\n                        var u = new SpeechSynthesisUtterance(resz);\n                        u.lang = hu ? 'hu-HU' : 'de-DE';\n                        u.rate = hu ? 0.95 : 0.88;\n                        if (voices.length) u.voice = voices[0];\n                        speechSynthesis.speak(u);\n                    });\n                });\n            } catch(e) {}\n        }\n\n        function kerethez_szoveg(mod_){\n            if (mod_ === 'ingyenes') return '';\n            return '';\n        }\n\n        \/\/ JAV\u00cdTVA (v9.713): \"rejtett_szoveg\" param\u00e9ter - ha meg van adva, a\n        \/\/ kuldes() nem a beviteli mez\u0151b\u0151l olvas, hanem ezt a sz\u00f6veget k\u00fcldi el\n        \/\/ (az AI-nak val\u00f3di \u00fczenetk\u00e9nt), de NEM jelenik meg felhaszn\u00e1l\u00f3i\n        \/\/ bubor\u00e9kk\u00e9nt. Ezt haszn\u00e1lja az automatikus lecke-ind\u00edt\u00e1s \u00e9s az \"\u00daj\n        \/\/ szavak\" gomb, hogy az asszisztens MAG\u00c1T\u00d3L tan\u00edtson, k\u00e9r\u00e9s n\u00e9lk\u00fcl is.\n        \/\/ v9.851: megv\u00e1rja, am\u00edg a felolvas\u00e1s v\u00e9get \u00e9r (legfeljebb 12 mp), \u00e9s ut\u00e1na lefuttatja a megadott f\u00fcggv\u00e9nyt\n        function beszed_vege(cb){\n            var t0 = Date.now(), lattam = false;\n            (function p(){\n                var szol = false;\n                try { szol = !!(speechSynthesis.speaking || speechSynthesis.pending); } catch(e) {}\n                try { if (hangEl && !hangEl.paused && !hangEl.ended) szol = true; } catch(e) {}\n                if (szol) lattam = true;\n                if ((lattam && !szol) || (Date.now() - t0 > 12000) || (!lattam && Date.now() - t0 > 2500)) { setTimeout(cb, 400); return; }\n                setTimeout(p, 250);\n            })();\n        }\n        function statusz_frissit(st){\n            try {\n                var el = document.getElementById('staffix-aiaj-statusz');\n                if (!el || !st || typeof st.maradek !== 'number') return;\n                el.setAttribute('data-mod', st.mod || '');\n                if (st.mod !== 'alap' && st.vendeg) { el.textContent = CFG.i18n.sz_vendeg; return; }\n                el.textContent = String(st.mod === 'alap' ? CFG.i18n.sz_csomag : CFG.i18n.sz_ingyen).replace('%d', st.maradek);\n            } catch(e) {}\n        }\n        \/\/ v9.846: az \u00e9l\u0151 egyenleg bet\u00f6lt\u00e9se (az oldal HTML-je gyors\u00edt\u00f3t\u00e1razott lehet, ez\u00e9rt nem abban van)\n        (function(){\n            var fd0 = new FormData();\n            fd0.append('action', 'staffix_ai_aj_statusz_lekeres');\n            fetch(CFG.ajax_url, { method:'POST', credentials:'same-origin', body: fd0 })\n                .then(sfxJson)\n                .then(function(r){\n                    if (r && r.success && r.data) {\n                        statusz_frissit(r.data.statusz);\n                        CFG.premium = !!r.data.premium;\n                        CFG.logged_in = !!r.data.logged_in;\n                    }\n                })\n                .catch(function(){});\n        })();\n        function kuldes(rejtett_szoveg, meta_kod){\n            if (fizetes_visszateres) { setTimeout(function(){ kuldes(rejtett_szoveg, meta_kod); }, 600); return; }\n            hang_feloldas();\n            var rejtett = (typeof rejtett_szoveg === 'string');\n            var szoveg = rejtett ? rejtett_szoveg : $input.value.trim();\n            if (!szoveg) return;\n            if (!rejtett) {\n                bubi(szoveg, 'en');\n                $input.value = '';\n                aiaj_input_magassag();\n            }\n            Array.prototype.slice.call($uzenetek.querySelectorAll('.kezdo-tipp')).forEach(function(n){ n.remove(); }); $kezdoTipp = null;\n            history_.push({role:'user', text: szoveg, meta: (typeof meta_kod === 'string') ? meta_kod : ''});\n            $send.disabled = true;\n            if ($ujSzavak) $ujSzavak.disabled = true;\n            gyors_tilt(true);\n\n            var gepel = document.createElement('div');\n            gepel.className = 'staffix-aiaj-bubi sys';\n            \/\/ v9.823: Dorka gondolkod\u00f3 arca jelenik meg, am\u00edg a v\u00e1laszra v\u00e1r.\n            if (CFG.dorka_gondolkodo) {\n                var gk = document.createElement('img'); gk.src = CFG.dorka_gondolkodo; gk.alt = '';\n                gk.style.cssText = 'width:38px;height:38px;border-radius:50%;object-fit:cover;vertical-align:middle;margin-right:8px;border:2px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.18);';\n                gepel.appendChild(gk);\n            }\n            gepel.appendChild(document.createTextNode(CFG.i18n.gepeles));\n            $uzenetek.appendChild(gepel);\n\n            var fd = new FormData();\n            fd.append('action', 'staffix_ai_aj_send');\n            fd.append('nonce', CFG.nonce);\n            fd.append('mode', mod);\n            fd.append('uzenet', szoveg);\n            fd.append('pozicio', $poz ? $poz.value : '');\n            fd.append('tema', ($tema && mod === 'gyakorlas') ? $tema.value : '');\n            fd.append('szerep', ($szerep && mod === 'szerepjatek') ? $szerep.value : '');\n            fd.append('lepes', String(history_.filter(function(h){ return h.role === 'user' && !h.meta; }).length));\n            fd.append('history', JSON.stringify(history_.slice(mod === 'szerepjatek' ? -20 : -12)));\n            fd.append('meta', (typeof meta_kod === 'string') ? meta_kod : '');\n            fd.append('szint', (typeof szint === 'string') ? szint : '');\n            fd.append('partner', ((mod === 'szerepjatek' || mod === 'gyakorlas') && typeof partner === 'string') ? partner : '');\n\n            fetch(CFG.ajax_url, { method:'POST', credentials:'same-origin', body: fd })\n                .then(sfxJson)\n                .then(function(res){\n                    gepel.remove();\n                    $send.disabled = false;\n                    if ($ujSzavak) $ujSzavak.disabled = false;\n                    gyors_tilt(false);\n                    if (!res.success) {\n                        if (res.data && res.data.kimerult) {\n                            bubi(res.data.message, 'sys');\n                            fal_nyit(res.data);\n                        } else {\n                            bubi((res.data && res.data.message) ? res.data.message : CFG.i18n.hiba_altalanos, 'sys');\n                        }\n                        return;\n                    }\n                    var valasz = res.data.valasz || '';\n                    statusz_frissit(res.data.statusz);\n                    if (res.data.statusz && res.data.statusz.ertekeles_kell) { setTimeout(ert_nyit, 2500); }\n                    var szak, nyelv = 'de', irany = '';\n                    if (mod === 'tolmacsolas') {\n                        \/\/ Tolm\u00e1cs m\u00f3d: nincs Jav\u00edt\u00e1s\/Sz\u00f3kincs\/Feladat szakasz, csak a\n                        \/\/ [DE]\/[HU] jel\u00f6l\u0151vel kezd\u0151d\u0151 ford\u00edt\u00e1s (ld. rendszer\u00fczenet).\n                        var m = valasz.match(\/^\\s*\\[(DE|HU)\\]\\s*\/i);\n                        if (m) nyelv = m[1].toLowerCase();\n                        var fordit = valasz.replace(\/^\\s*\\[(DE|HU)\\]\\s*\/i, '').trim();\n                        irany = (nyelv === 'hu') ? CFG.i18n.irany_de_hu : CFG.i18n.irany_hu_de;\n                        szak = { felolvasando: fordit, javitas:'', szokincs:'', feladat:'', segitseg:'', szokincs_szavak:[] };\n                    } else {\n                        szak = valasz_szakaszolasa(valasz);\n                    }\n                    \/\/ v9.750: szerepj\u00e1t\u00e9kn\u00e1l nincs k\u00fcl\u00f6n sz\u00f3lista, csak mondatok (kiv\u00e9ve a \"Mit v\u00e1laszolhatok?\" v\u00e1laszmondatai)\n                    var opc = (typeof meta_kod === 'string' && meta_kod === 'opciok');\n                    if (mod === 'szerepjatek' && !opc) { szak.szokincs = ''; szak.szokincs_parok = []; szak.szokincs_szavak = []; }\n                    szak.valasz_mondatok = (mod === 'szerepjatek' && opc);\n                    \/\/ v9.829: ha magyarul sz\u00f3lt\u00e1l, a n\u00e9met mondat m\u00e1r a \"\u00cdgy mondd n\u00e9met\u00fcl\" r\u00e9szben l\u00e1tszik - a Feladat \u00e9s a Seg\u00edts\u00e9g\n                    \/\/ ugyanezt a magyar mondatot \u00e9s a n\u00e9met mint\u00e1t m\u00e9g egyszer ki\u00edrta (k\u00e9tszeri besz\u00far\u00e1snak t\u0171nt), ez\u00e9rt ezeket r\u00f6vid\u00edtj\u00fck.\n                    try {\n                        var nm0 = (szak.felolvasando || '').replace(\/^\\s*\\(?1\\)?[.):]?\\s*\/, '').split('\\n')[0].trim();\n                        if (!rejtett && (mod === 'szerepjatek' || mod === 'gyakorlas') && !(typeof meta_kod === 'string' && meta_kod) && magyar_beiras_e(szoveg) && nm0 && !hu_szoveg_e(nm0)) {\n                            szak.feladat = SZ.fordit_feladat || 'Mondd ki hangosan, vagy \u00edrd be n\u00e9met\u00fcl, \u00e9s megy tov\u00e1bb a jelenet.';\n                            szak.segitseg = '';\n                        }\n                    } catch(e4) {}\n                    var ai_buborek = bubi(szak.felolvasando, 'ai', szak, szak.szokincs_szavak, nyelv, irany);\n                    history_.push({role:'assistant', text: valasz});\n                    var fordit_hangos = false;\n                    \/\/ v9.761: ha magyarul sz\u00f3lt\u00e1l, a n\u00e9met mondatot egy koppint\u00e1ssal \"elmondottnak\" veheted -\n                    \/\/ a jelenet nem akad meg, a partner folytatja.\n                    try {\n                        var nm_mondat = (szak.felolvasando || '').replace(\/^\\s*\\(?1\\)?[.):]?\\s*\/, '').split('\\n')[0].trim();\n                        if (!rejtett && (mod === 'szerepjatek' || mod === 'gyakorlas') && !(typeof meta_kod === 'string' && meta_kod) && magyar_beiras_e(szoveg) && nm_mondat && !hu_szoveg_e(nm_mondat) && ai_buborek) {\n                            \/* v9.804: a magyarul mondottak n\u00e9met ford\u00edt\u00e1sa k\u00fcl\u00f6n, \"\u00cdgy mondd n\u00e9met\u00fcl\" feliratos bubor\u00e9kban l\u00e1tszik (nem a karakter szavak\u00e9nt), \u00e9s a felolvas\u00e1s megmarad a kiejt\u00e9s tanul\u00e1s\u00e1hoz. *\/\n                            ai_buborek.classList.add('sfx-fordit');\n                            var fc = document.createElement('div');\n                            fc.className = 'sfx-fordit-cim';\n                            fc.textContent = SZ.fordit_cim || '\\uD83D\\uDDE3\\uFE0F \u00cdgy mondd n\u00e9met\u00fcl \u2013 hallgasd meg, \u00e9s mondd ut\u00e1na:';\n                            ai_buborek.insertBefore(fc, ai_buborek.firstChild);\n                            var tb = document.createElement('div');\n                            tb.setAttribute('role', 'button'); tb.setAttribute('tabindex', '0');\n                            tb.className = 'sfx-tovabb';\n                            tb.textContent = SZ.tovabb || 'Elmondtam, tov\u00e1bb \u25b8';\n                            tb.addEventListener('click', function(){\n                                if ($send.disabled) return;\n                                tb.remove();\n                                hang_feloldas();\n                                $input.value = nm_mondat;\n                                aiaj_input_magassag();\n                                kuldes();\n                            });\n                            ai_buborek.appendChild(tb);\n                            fordit_hangos = nm_mondat;\n                            $root.querySelector('.staffix-aiaj-chat').scrollTop = 999999;\n                        }\n                    } catch(e3) {}\n                    if (szavak_kell) { szavak_kell = false; helyzet_szavak(true); }\n                    if (mod !== 'tolmacsolas' && szak.szokincs_parok) szotar_ment(szak.szokincs_parok);\n                    \/\/ K\u00e9z n\u00e9lk\u00fcli m\u00f3dban csak a f\u0151 mondatot olvassuk fel (a sz\u00f3kincslist\u00e1t nem),\n                    \/\/ azt\u00e1n automatikusan hallgatni kezd\u00fcnk.\n                    \/\/ v9.828: Dorka mindent kimond: a v\u00e1laszt, a jav\u00edt\u00e1st \u00e9s a feladatot, majd a szavakat. Ha magyarul sz\u00f3lt\u00e1l,\n                    \/\/ a n\u00e9met ford\u00edt\u00e1st a felolvas\u00e1s-kapcsol\u00f3t\u00f3l f\u00fcggetlen\u00fcl automatikusan is meghallgatod.\n                    if ($autoFelolvas.checked || kez_aktiv()) {\n                        felolvas(szak.felolvasando || '', kez_aktiv() ? [] : szak.szokincs_szavak, nyelv);\n                    } else if (fordit_hangos) {\n                        felolvas(fordit_hangos, [], 'de');\n                    }\n                    if (kez_aktiv()) kez_figyel();\n                })\n                .catch(function(){\n                    gepel.remove();\n                    $send.disabled = false;\n                    if ($ujSzavak) $ujSzavak.disabled = false;\n                    gyors_tilt(false);\n                    bubi(CFG.i18n.hiba_altalanos, 'sys');\n                });\n        }\n\n        $send.addEventListener('click', kuldes);\n        $input.addEventListener('keydown', function(e){\n            if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); kuldes(); }\n        });\n        \/\/ \u00daJ (v9.713): \"\u00daj szavak\" gomb - a felhaszn\u00e1l\u00f3nak nem kell meg\u00edrnia,\n        \/\/ mit szeretne tanulni, egy kattint\u00e1ssal \u00faj, addig el nem hangzott\n        \/\/ szavakat\/kifejez\u00e9seket k\u00e9r az asszisztenst\u0151l.\n        if ($ujSzavak) {\n            $ujSzavak.addEventListener('click', function(){\n                kuldes('(Tan\u00edts meg most \u00faj, m\u00e9g el nem hangzott szavakra \u00e9s mondatokra - ak\u00e1r a munk\u00e1mhoz, ak\u00e1r az itteni mindennapi \u00e9lethez.)');\n            });\n        }\n        \/\/ Automatikus magass\u00e1g-n\u00f6vel\u00e9s g\u00e9pel\u00e9skor\/dikt\u00e1l\u00e1skor, hogy a be\u00edrt sz\u00f6veg\n        \/\/ ne egy alig l\u00e1that\u00f3, egysoros mez\u0151ben b\u00fajjon meg.\n        function aiaj_input_magassag(){\n            $input.style.height = 'auto';\n            $input.style.height = Math.min($input.scrollHeight, 140) + 'px';\n        }\n        $input.addEventListener('input', aiaj_input_magassag);\n\n        \/\/ ---- Mikrofon \/ besz\u00e9dfelismer\u00e9s (b\u00f6ng\u00e9sz\u0151 nat\u00edv API-ja) ----\n        \/\/ v9.829: a felismert sz\u00f6veget nem f\u0171zz\u00fck hozz\u00e1 m\u00e9g egyszer, ha a mez\u0151 m\u00e1r ugyanezzel v\u00e9gz\u0151dik (dupla besz\u00far\u00e1s ellen).\n        function mic_hozzafuz(mezo, uj){\n            var m = String(mezo || '').trim(), u = String(uj || '').trim();\n            if (!u) return m;\n            if (m && m.toLowerCase().slice(-u.length) === u.toLowerCase()) return m;\n            return (m ? m + ' ' : '') + u;\n        }\n        var SpeechRecognitionCtor = window.SpeechRecognition || window.webkitSpeechRecognition;\n\n        \/\/ \u00daJ (v9.716): ha a szerveren be van \u00e1ll\u00edtva az OpenAI-kulcs\n        \/\/ (CFG.whisper), a mikrofon hangot FELVESZ (MediaRecorder), \u00e9s a\n        \/\/ szerver a Whisperrel \u00edrja \u00e1t sz\u00f6vegg\u00e9 - ez sokkal megb\u00edzhat\u00f3bb,\n        \/\/ mint a b\u00f6ng\u00e9sz\u0151 saj\u00e1t felismer\u0151je (f\u0151leg iPhone-on \u00e9s magyarul).\n        \/\/ Ha a kulcs nincs be\u00e1ll\u00edtva, vagy a b\u00f6ng\u00e9sz\u0151 nem t\u00e1mogatja a\n        \/\/ felv\u00e9telt, az al\u00e1bbi \u00e1gak a r\u00e9gi, b\u00f6ng\u00e9sz\u0151s felismer\u00e9sre esnek vissza.\n        var whisper_ok = !!(CFG.whisper && window.MediaRecorder && navigator.mediaDevices && navigator.mediaDevices.getUserMedia);\n        if (whisper_ok) {\n            var mr = null, felv_darabok = [], felv_stream = null, felv_auto_stop = null, felv_nyelv = 'hu', felv_eldob = false;\n            \/\/ \u00daJ (v9.731): k\u00e9z n\u00e9lk\u00fcli m\u00f3dban a felv\u00e9tel mag\u00e1t\u00f3l le\u00e1ll, ha a felhaszn\u00e1l\u00f3\n            \/\/ besz\u00e9lt, majd 1,5 m\u00e1sodpercig csend van (hanger\u0151-figyel\u00e9s); ha 9 m\u00e1sodpercig\n            \/\/ semmit nem mondott, a felv\u00e9telt eldobjuk.\n            var vad = { ctx: null, timer: null };\n            var vad_leallit = function(){\n                if (vad.timer) { clearInterval(vad.timer); vad.timer = null; }\n                if (vad.ctx) { try { vad.ctx.close(); } catch(e) {} vad.ctx = null; }\n            };\n            var vad_indit = function(stream){\n                var AC = window.AudioContext || window.webkitAudioContext;\n                var tartalek = function(){ clearTimeout(felv_auto_stop); felv_auto_stop = setTimeout(function(){ if (mr && mr.state !== 'inactive') mr.stop(); }, 8000); };\n                if (!AC) { tartalek(); return; }\n                try {\n                    vad.ctx = new AC();\n                    if (vad.ctx.resume) vad.ctx.resume();\n                    var src = vad.ctx.createMediaStreamSource(stream);\n                    var an = vad.ctx.createAnalyser();\n                    an.fftSize = 1024;\n                    src.connect(an);\n                    var buf = new Uint8Array(an.fftSize);\n                    var kezd = Date.now(), beszelt = false, utolso = kezd, ellenorizve = false;\n                    vad.timer = setInterval(function(){\n                        var most = Date.now();\n                        if (!ellenorizve && most - kezd > 600) {\n                            ellenorizve = true;\n                            if (!vad.ctx || vad.ctx.state !== 'running') { vad_leallit(); tartalek(); return; }\n                        }\n                        an.getByteTimeDomainData(buf);\n                        var max = 0;\n                        for (var i = 0; i < buf.length; i++) { var v = Math.abs(buf[i] - 128) \/ 128; if (v > max) max = v; }\n                        if (max > 0.06) { beszelt = true; utolso = most; }\n                        if (beszelt && most - utolso > 1500) {\n                            vad_leallit();\n                            if (mr && mr.state !== 'inactive') mr.stop();\n                        } else if (!beszelt && most - kezd > 9000) {\n                            felv_eldob = true;\n                            vad_leallit();\n                            if (mr && mr.state !== 'inactive') mr.stop();\n                        }\n                    }, 120);\n                } catch(e) { vad_leallit(); tartalek(); }\n            };\n            var micHiba = function(uzenet){\n                $micInfo.style.display = 'block';\n                $micInfo.style.color = '#c0392b';\n                $micInfo.textContent = uzenet;\n            };\n            var streamLeallit = function(){\n                if (felv_stream) { felv_stream.getTracks().forEach(function(t){ t.stop(); }); felv_stream = null; }\n            };\n            var feltoltAtirasra = function(blob){\n                mic_tilt(true);\n                $micInfo.style.display = 'block';\n                $micInfo.style.color = '#a01348';\n                $micInfo.textContent = CFG.i18n.feldolgozom;\n                var fd = new FormData();\n                fd.append('action', 'staffix_ai_aj_transcribe');\n                fd.append('nonce', CFG.nonce);\n                fd.append('nyelv', felv_nyelv);\n                var t = (blob.type || '').toLowerCase();\n                var kit = t.indexOf('mp4') > -1 ? 'mp4' : (t.indexOf('ogg') > -1 ? 'ogg' : 'webm');\n                fd.append('audio', blob, 'felvetel.' + kit);\n                fetch(CFG.ajax_url, { method:'POST', credentials:'same-origin', body: fd })\n                    .then(sfxJson)\n                    .then(function(res){\n                        mic_tilt(false);\n                        if (res && res.success && res.data && res.data.text) {\n                            $input.value = mic_hozzafuz($input.value, res.data.text);\n                            aiaj_input_magassag();\n                            $micInfo.style.display = 'none';\n                            if (kez_aktiv()) { kuldes(); } else { $input.focus(); }\n                        } else if (res && res.data && res.data.kimerult) {\n                            $micInfo.style.display = 'none';\n                            fal_nyit(res.data);\n                        } else {\n                            micHiba((res && res.data && res.data.message && res.data.message !== 'no_key') ? res.data.message : CFG.i18n.mic_nem_sikerult);\n                        }\n                    })\n                    .catch(function(){ mic_tilt(false); micHiba(CFG.i18n.mic_nem_sikerult); });\n            };\n            [$mic, $micDe].forEach(function(gomb){ gomb.addEventListener('click', function(){\n                hang_feloldas();\n                if (recognizing) { if (mr && mr.state !== 'inactive') mr.stop(); return; }\n                aktivGomb = gomb;\n                felv_nyelv = gomb_nyelv(gomb);\n                navigator.mediaDevices.getUserMedia({ audio: true }).then(function(stream){\n                    felv_stream = stream;\n                    felv_darabok = [];\n                    var mime = '';\n                    ['audio\/webm;codecs=opus', 'audio\/webm', 'audio\/mp4', 'audio\/ogg;codecs=opus'].some(function(m){\n                        if (MediaRecorder.isTypeSupported && MediaRecorder.isTypeSupported(m)) { mime = m; return true; }\n                        return false;\n                    });\n                    try { mr = mime ? new MediaRecorder(stream, { mimeType: mime }) : new MediaRecorder(stream); }\n                    catch(e) { streamLeallit(); micHiba(CFG.i18n.mic_nem_sikerult); return; }\n                    mr.ondataavailable = function(ev){ if (ev.data && ev.data.size) felv_darabok.push(ev.data); };\n                    mr.onstop = function(){\n                        clearTimeout(felv_auto_stop);\n                        vad_leallit();\n                        recognizing = false;\n                        mic_ui(false);\n                        if (felv_eldob) { felv_eldob = false; streamLeallit(); $micInfo.style.display = 'block'; $micInfo.style.color = '#777'; $micInfo.textContent = CFG.i18n.nem_hallottam; return; }\n                        var tipus = mr.mimeType || mime || 'audio\/webm';\n                        streamLeallit();\n                        var blob = new Blob(felv_darabok, { type: tipus });\n                        if (blob.size < 800) { micHiba(CFG.i18n.mic_nem_sikerult); return; }\n                        feltoltAtirasra(blob);\n                    };\n                    mr.start();\n                    recognizing = true;\n                    mic_ui(true);\n                    $micInfo.style.display = 'block';\n                    $micInfo.style.color = '#a01348';\n                    $micInfo.textContent = CFG.i18n.hallgatlak + (felv_nyelv === 'de' ? ' (' + CFG.i18n.nyelv_de + ')' : (felv_nyelv === 'hu' ? ' (' + CFG.i18n.nyelv_hu + ')' : '')) + ' - ' + (CFG.i18n.nyomd_ujra || '');\n                    felv_auto_stop = setTimeout(function(){ if (mr && mr.state !== 'inactive') mr.stop(); }, 30000);\n                    felv_eldob = false;\n                    if (kez_aktiv()) vad_indit(stream);\n                }).catch(function(){ micHiba(CFG.i18n.mic_engedely); });\n            }); });\n        } else if (!SpeechRecognitionCtor) {\n            $mic.style.display = 'none';\n            if ($micDe) $micDe.style.display = 'none';\n            $micInfo.style.display = 'block';\n            $micInfo.textContent = CFG.i18n.mic_nincs;\n        } else {\n            [$mic, $micDe].forEach(function(gomb){ gomb.addEventListener('click', function(){\n                if (recognizing) { recognition && recognition.stop(); return; }\n                aktivGomb = gomb;\n                \/\/ JAV\u00cdTVA (v9.711): kor\u00e1bban semmilyen visszajelz\u00e9s nem volt, ha a\n                \/\/ besz\u00e9dfelismer\u00e9s nem adott eredm\u00e9nyt (pl. iPhone\/Safari-n gyakori) -\n                \/\/ Anik\u00f3 jelezte, hogy \"nem \u00edrja a sz\u00f6veget, ha mondom\", de nem l\u00e1tta,\n                \/\/ hogy egy\u00e1ltal\u00e1n pr\u00f3b\u00e1lkozott-e a g\u00e9p. Mostant\u00f3l l\u00e1that\u00f3 st\u00e1tusz-\n                \/\/ \u00fczenet jelzi, hogy hallgat, \u00e9s ha nem siker\u00fclt, azt is megmondjuk.\n                var kapott_eredmeny = false;\n                recognition = new SpeechRecognitionCtor();\n                \/\/ JAV\u00cdTVA (v9.715): Gyakorl\u00e1s m\u00f3dban kor\u00e1bban a mikrofon mindig\n                \/\/ n\u00e9m\u00e1t (de-DE) pr\u00f3b\u00e1lt felismerni, ez\u00e9rt ha a felhaszn\u00e1l\u00f3\n                \/\/ magyarul k\u00e9rdezett\/k\u00e9rt valamit a tan\u00e1rt\u00f3l, a g\u00e9p \u00e9rtelmetlen\n                \/\/ \"n\u00e9met\" sz\u00f6veget \u00edrt be. Mostant\u00f3l a fenti nyelv-kapcsol\u00f3\n                \/\/ d\u00f6nti el (Tolm\u00e1csol\u00e1s m\u00f3dban ez nem jelenik meg, ott mindig\n                \/\/ magyarul besz\u00e9l a felhaszn\u00e1l\u00f3).\n                recognition.lang = (gomb_nyelv(gomb) === 'de') ? 'de-DE' : 'hu-HU';\n                recognition.interimResults = false;\n                recognition.maxAlternatives = 1;\n                recognition.onstart = function(){\n                    recognizing = true;\n                    mic_ui(true);\n                    $micInfo.style.display = 'block';\n                    $micInfo.style.color = '#a01348';\n                    $micInfo.textContent = CFG.i18n.hallgatlak + ' (' + (gomb_nyelv(gomb) === 'de' ? CFG.i18n.nyelv_de : CFG.i18n.nyelv_hu) + ')';\n                };\n                var mic_tiltott = false;\n                recognition.onend = function(){\n                    recognizing = false;\n                    mic_ui(false);\n                    if (kapott_eredmeny) {\n                        $micInfo.style.display = 'none';\n                    } else {\n                        $micInfo.style.color = '#c0392b';\n                        $micInfo.textContent = CFG.i18n.mic_nem_sikerult;\n                        if (kez_aktiv() && mod === 'szerepjatek' && !mic_tiltott && kez_ures < 4) {\n                            kez_ures++;\n                            kez_hu_kor = !kez_hu_kor;\n                            kez_figyel();\n                        }\n                    }\n                };\n                recognition.onerror = function(ev){\n                    if (ev && (ev.error === 'not-allowed' || ev.error === 'service-not-allowed')) mic_tiltott = true;\n                    recognizing = false;\n                    mic_ui(false);\n                    $micInfo.style.color = '#c0392b';\n                    $micInfo.textContent = CFG.i18n.mic_nem_sikerult;\n                };\n                recognition.onresult = function(ev){\n                    kapott_eredmeny = true;\n                    kez_ures = 0; kez_hu_kor = false;\n                    var szoveg = ev.results[0][0].transcript;\n                    $input.value = mic_hozzafuz($input.value, szoveg);\n                    aiaj_input_magassag();\n                    if (kez_aktiv()) kuldes();\n                };\n                try {\n                    recognition.start();\n                } catch(e) {\n                    $micInfo.style.display = 'block';\n                    $micInfo.style.color = '#c0392b';\n                    $micInfo.textContent = CFG.i18n.mic_nem_sikerult;\n                }\n            }); });\n        }\n\n        \/\/ ---- \u00daJ (v9.736): gyors gombok a szerepj\u00e1t\u00e9kban ----\n        \/\/ Ezek rejtett, \"meta\" k\u00e9r\u00e9sek: a jelenet nem l\u00e9p t\u0151l\u00fck el\u0151re. Az \"\u00daj jelenet\"\n        \/\/ csak a fel\u00fcleten dolgozik (nem fogyaszt \u00fczenetet).\n        var GYORS_SZOVEG = {\n            ismetel:   '(K\u00e9rlek, ism\u00e9teld meg az utols\u00f3 mondatodat.)',\n            lassabban: '(K\u00e9rlek, mondd lassabban \u00e9s egyszer\u0171bben az utols\u00f3 mondatodat.)',\n            magyarul:  '(K\u00e9rlek, magyar\u00e1zd el magyarul, mit jelent, amit mondt\u00e1l, \u00e9s mit v\u00e1laszolhatok.)',\n            opciok:    '(Mit v\u00e1laszolhatok erre? Adj h\u00e1rom k\u00fcl\u00f6nb\u00f6z\u0151, egyszer\u0171 lehet\u0151s\u00e9get.)'\n        };\n        function gyors_tilt(x){\n            if (!$gyorsSor) return;\n            Array.prototype.forEach.call($gyorsSor.querySelectorAll('button'), function(b){ b.disabled = x; });\n        }\n        function uj_jelenet(){\n            hang_leallit();\n            kez_token++;\n            while ($uzenetek.firstChild) $uzenetek.removeChild($uzenetek.firstChild);\n            history_ = [];\n            $kezdoTipp = null;\n            if ($szerep) $szerep.value = '';\n            $input.value = '';\n            aiaj_input_magassag();\n            automatikus_inditas();\n        }\n        if ($gyorsSor) {\n            $gyorsSor.addEventListener('click', function(ev){\n                var b = ev.target.closest ? ev.target.closest('button') : null;\n                if (!b || b.disabled || $send.disabled) return;\n                if (b.getAttribute('data-uj')) { uj_jelenet(); return; }\n                var kod = b.getAttribute('data-meta');\n                if (!kod || !GYORS_SZOVEG[kod]) return;\n                if (!history_.length) return;\n                kuldes(GYORS_SZOVEG[kod], kod);\n            });\n        }\n\n        \/\/ ---- \u00daJ (v9.731): k\u00e9z n\u00e9lk\u00fcli m\u00f3d ----\n        \/\/ Az asszisztens v\u00e1lasza ut\u00e1n (amikor a hang v\u00e9get \u00e9rt) a mikrofon mag\u00e1t\u00f3l\n        \/\/ elindul, a felismert v\u00e1laszt elk\u00fcldi, \u00e9s a k\u00f6r \u00fajra kezd\u0151dik. Egyes\n        \/\/ telefonokon (f\u0151leg iPhone) a b\u00f6ng\u00e9sz\u0151 megtilthatja a mikrofon automatikus\n        \/\/ ind\u00edt\u00e1s\u00e1t - ilyenkor el\u00e9g egyszer megkoppintani a mikrofont.\n        function kez_aktiv(){ return !!($kez && $kez.checked); }\n        \/\/ Szerepj\u00e1t\u00e9kban (Whisper n\u00e9lk\u00fcl) a tanul\u00f3 magyarul is k\u00e9rdezhet: ha egy\n        \/\/ hallgat\u00e1si k\u00f6r \u00fcres maradt, a k\u00f6vetkez\u0151 k\u00f6r a m\u00e1sik nyelven hallgat.\n        var kez_hu_kor = false, kez_ures = 0;\n        function beszed_folyamatban(){\n            var b = false;\n            try { b = ('speechSynthesis' in window) && (speechSynthesis.speaking || speechSynthesis.pending); } catch(e) {}\n            return b || szerver_fut > 0 || !hangEl.paused;\n        }\n        function kez_mic_indit(){\n            var gomb = (mod === 'tolmacsolas' || (mod === 'szerepjatek' && (whisper_ok || kez_hu_kor))) ? $mic : $micDe;\n            if (!gomb || gomb.style.display === 'none') gomb = $mic;\n            if (gomb && !gomb.disabled && !recognizing) gomb.click();\n        }\n        function kez_figyel(){\n            var t = ++kez_token;\n            var kezd = Date.now();\n            setTimeout(function varj(){\n                if (t !== kez_token || !kez_aktiv()) return;\n                if (beszed_folyamatban() && Date.now() - kezd < 90000) { setTimeout(varj, 300); return; }\n                if (recognizing || $send.disabled) return;\n                kez_mic_indit();\n            }, 900);\n        }\n        if ($kez) {\n            $kez.addEventListener('change', function(){\n                kez_token++;\n                if ($kez.checked) {\n                    hang_feloldas();\n                    $autoFelolvas.checked = true;\n                    $micInfo.style.display = 'block';\n                    $micInfo.style.color = '#a01348';\n                    $micInfo.textContent = CFG.i18n.kez_info;\n                    kez_figyel();\n                } else {\n                    $micInfo.style.display = 'none';\n                    if (recognizing) {\n                        if (mr && mr.state && mr.state !== 'inactive') { felv_eldob = true; mr.stop(); }\n                        else if (recognition) { try { recognition.stop(); } catch(e) {} }\n                    }\n                }\n            });\n        }\n\n        \/\/ ---- \u00daJ (v9.731): napi kv\u00edz a megtanult szavakb\u00f3l (ingyenes, helyben fut) ----\n        var SZOTAR_KULCS = 'staffix_aiaj_szotar';\n        var KVIZ_NAP_KULCS = 'staffix_aiaj_kviz_nap';\n        function szotar_olvas(){\n            try {\n                var a = JSON.parse(localStorage.getItem(SZOTAR_KULCS) || '[]');\n                return Array.isArray(a) ? a : [];\n            } catch(e) { return []; }\n        }\n        function szotar_ment(parok){\n            try {\n                var sz = szotar_olvas();\n                var van = {};\n                sz.forEach(function(p){ if (p && p.n) van[String(p.n).toLowerCase()] = 1; });\n                parok.forEach(function(p){\n                    if (!p || !p.nemet || !p.magyar) return;\n                    if (p.nemet.length > 60 || p.magyar.length > 80) return;\n                    var k = p.nemet.toLowerCase();\n                    if (van[k]) return;\n                    van[k] = 1;\n                    sz.push({ n: p.nemet, m: p.magyar });\n                });\n                if (sz.length > 300) sz = sz.slice(-300);\n                localStorage.setItem(SZOTAR_KULCS, JSON.stringify(sz));\n            } catch(e) {}\n        }\n        function nap_kulcs(d){ return d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate(); }\n        function sorozat_frissit(){\n            try {\n                var ma = nap_kulcs(new Date());\n                var tegnap = nap_kulcs(new Date(Date.now() - 86400000));\n                var o = JSON.parse(localStorage.getItem(KVIZ_NAP_KULCS) || '{}') || {};\n                if (o.datum === ma) return o.sorozat || 1;\n                var uj = (o.datum === tegnap) ? ((o.sorozat || 0) + 1) : 1;\n                localStorage.setItem(KVIZ_NAP_KULCS, JSON.stringify({ datum: ma, sorozat: uj }));\n                return uj;\n            } catch(e) { return 1; }\n        }\n        function kever(t){\n            var a = t.slice();\n            for (var i = a.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)); var x = a[i]; a[i] = a[j]; a[j] = x; }\n            return a;\n        }\n        var kvizAll = null;\n        function kviz_elem(tag, cls, szoveg){\n            var e = document.createElement(tag);\n            if (cls) e.className = cls;\n            if (szoveg) e.textContent = szoveg;\n            return e;\n        }\n        function kviz_zar(){\n            kvizAll = null;\n            if ($kviz) { $kviz.style.display = 'none'; while ($kviz.firstChild) $kviz.removeChild($kviz.firstChild); }\n            if ($chatDoboz) $chatDoboz.style.display = '';\n        }\n        function kviz_nyit(){\n            hang_feloldas();\n            hang_leallit();\n            kez_token++;\n            if (!$kviz) return;\n            $chatDoboz.style.display = 'none';\n            $kviz.style.display = 'block';\n            while ($kviz.firstChild) $kviz.removeChild($kviz.firstChild);\n            var sz = szotar_olvas();\n            if (sz.length < 4) {\n                $kviz.appendChild(kviz_elem('h3', '', CFG.i18n.kviz_cim));\n                $kviz.appendChild(kviz_elem('p', 'kviz-meta', CFG.i18n.kviz_kev));\n                var vb = kviz_elem('button', 'kviz-gomb', CFG.i18n.kviz_vissza);\n                vb.type = 'button';\n                vb.addEventListener('click', kviz_zar);\n                $kviz.appendChild(vb);\n                return;\n            }\n            var valasztott = kever(sz).slice(0, Math.min(5, sz.length));\n            var kerdesek = valasztott.map(function(par){\n                var rossz = kever(sz.filter(function(x){ return x.n !== par.n && x.m !== par.m; })).slice(0, 3);\n                var irany = (Math.random() < 0.5) ? 'de-hu' : 'hu-de';\n                var opc = kever([par].concat(rossz));\n                return { par: par, irany: irany, opciok: opc };\n            });\n            kvizAll = { i: 0, pont: 0, kerdesek: kerdesek };\n            kviz_kerdes();\n        }\n        function kviz_kerdes(){\n            if (!kvizAll) return;\n            while ($kviz.firstChild) $kviz.removeChild($kviz.firstChild);\n            var k = kvizAll.kerdesek[kvizAll.i];\n            if (!k) { kviz_vege(); return; }\n            $kviz.appendChild(kviz_elem('h3', '', CFG.i18n.kviz_cim));\n            $kviz.appendChild(kviz_elem('p', 'kviz-meta', CFG.i18n.kviz_kerdes + ' ' + (kvizAll.i + 1) + '\/' + kvizAll.kerdesek.length + ' \u00b7 ' + (k.irany === 'de-hu' ? CFG.i18n.kviz_nemet_hu : CFG.i18n.kviz_hu_nemet)));\n            var szo = kviz_elem('div', 'kviz-szo');\n            var szoSzov = document.createElement('span');\n            szoSzov.textContent = (k.irany === 'de-hu') ? k.par.n : k.par.m;\n            szo.appendChild(szoSzov);\n            if (k.irany === 'de-hu') {\n                var lb = kviz_elem('button', 'szo-lejatszo');\n                lb.type = 'button';\n                lb.innerHTML = HANG_SVG;\n                lb.setAttribute('aria-label', CFG.i18n.felolvasas_cim || '');\n                lb.addEventListener('click', function(){ felolvas(k.par.n, [], 'de'); });\n                szo.appendChild(lb);\n            }\n            $kviz.appendChild(szo);\n            var opcDoboz = kviz_elem('div', 'kviz-opciok');\n            var vissza = kviz_elem('p', 'kviz-visszajelzes', '');\n            var tovabb = kviz_elem('button', 'kviz-gomb', CFG.i18n.kviz_tovabb);\n            tovabb.type = 'button';\n            tovabb.style.display = 'none';\n            tovabb.addEventListener('click', function(){ kvizAll.i++; kviz_kerdes(); });\n            var gombok = [];\n            k.opciok.forEach(function(o){\n                var b = kviz_elem('button', 'kviz-opcio', (k.irany === 'de-hu') ? o.m : o.n);\n                b.type = 'button';\n                gombok.push({ b: b, o: o });\n                b.addEventListener('click', function(){\n                    var jo = (o.n === k.par.n);\n                    gombok.forEach(function(g){\n                        g.b.disabled = true;\n                        if (g.o.n === k.par.n) g.b.classList.add('helyes');\n                    });\n                    if (jo) { kvizAll.pont++; vissza.textContent = CFG.i18n.kviz_helyes; }\n                    else { b.classList.add('rossz'); vissza.textContent = CFG.i18n.kviz_rossz + ' ' + ((k.irany === 'de-hu') ? k.par.m : k.par.n); }\n                    if (k.irany === 'hu-de') felolvas(k.par.n, [], 'de');\n                    tovabb.style.display = '';\n                });\n                opcDoboz.appendChild(b);\n            });\n            $kviz.appendChild(opcDoboz);\n            $kviz.appendChild(vissza);\n            $kviz.appendChild(tovabb);\n            if (k.irany === 'de-hu') felolvas(k.par.n, [], 'de');\n        }\n        function kviz_vege(){\n            while ($kviz.firstChild) $kviz.removeChild($kviz.firstChild);\n            var sor = sorozat_frissit();\n            $kviz.appendChild(kviz_elem('h3', '', CFG.i18n.kviz_eredmeny + ': ' + kvizAll.pont + ' \/ ' + kvizAll.kerdesek.length));\n            $kviz.appendChild(kviz_elem('p', 'kviz-meta', CFG.i18n.kviz_sorozat + ': ' + sor + ' ' + CFG.i18n.kviz_nap + '. ' + CFG.i18n.kviz_ingyen));\n            var ujb = kviz_elem('button', 'kviz-gomb', CFG.i18n.kviz_uj);\n            ujb.type = 'button';\n            ujb.addEventListener('click', kviz_nyit);\n            var vb = kviz_elem('button', 'kviz-gomb masodlagos', CFG.i18n.kviz_vissza);\n            vb.type = 'button';\n            vb.addEventListener('click', kviz_zar);\n            $kviz.appendChild(ujb);\n            $kviz.appendChild(vb);\n        }\n        if ($kvizBtn) { $kvizBtn.addEventListener('click', kviz_nyit); }\n\n        \/\/ ---- \u00daJ (v9.734): ~50 alapsz\u00f3 \u00e9s alapmondat a kiv\u00e1lasztott poz\u00edci\u00f3hoz ----\n        \/\/ K\u00e9zzel \u00f6ssze\u00e1ll\u00edtott lista (nem AI), ez\u00e9rt azonnal megjelenik, \u00e9s nem fogyaszt\n        \/\/ \u00fczenetet. A szavak beker\u00fclnek a Napi kv\u00edz sz\u00f3t\u00e1r\u00e1ba is.\n        function szotar_kartya(cimSzoveg, csoportok, gorgess, kartya_kulcs){\n            var osszes = [];\n            var div = document.createElement('div');\n            div.className = 'staffix-aiaj-bubi ai szavak-kartya';\n            if (kartya_kulcs) div.setAttribute('data-kulcs', kartya_kulcs);\n            var fo = document.createElement('div');\n            fo.className = 'fo-szoveg';\n            var db = 0;\n            csoportok.forEach(function(cs){ db += cs.parok.length; });\n            fo.textContent = cimSzoveg + ' (' + db + ')';\n            div.appendChild(fo);\n            csoportok.forEach(function(cs){\n                var sz = document.createElement('div');\n                sz.className = 'szokincs';\n                var cim = document.createElement('div');\n                cim.className = 'szokincs-cim';\n                cim.textContent = cs.cim;\n                sz.appendChild(cim);\n                var szavak = cs.parok.map(function(p){ return felolvasasra_tisztit(p.n); });\n                var mind = document.createElement('button');\n                mind.type = 'button';\n                mind.className = 'szo-mind';\n                mind.textContent = CFG.i18n.mind_hallgat;\n                mind.addEventListener('click', function(){ beszed_feloldas(); felolvas('', szavak, 'de'); });\n                sz.appendChild(mind);\n                var lista = document.createElement('ul');\n                lista.className = 'szokincs-lista';\n                cs.parok.forEach(function(par){\n                    osszes.push({ nemet: par.n, magyar: par.m });\n                    var li = document.createElement('li');\n                    var szov = document.createElement('div');\n                    szov.className = 'szo-szoveg';\n                    var sn = document.createElement('span');\n                    sn.className = 'szo-nemet';\n                    sn.textContent = par.n;\n                    var sm = document.createElement('span');\n                    sm.className = 'szo-magyar';\n                    sm.textContent = par.m;\n                    szov.appendChild(sn);\n                    szov.appendChild(sm);\n                    li.appendChild(szov);\n                    var lb = document.createElement('button');\n                    lb.type = 'button';\n                    lb.className = 'szo-lejatszo';\n                    lb.setAttribute('aria-label', CFG.i18n.felolvasas_cim || '');\n                    lb.innerHTML = HANG_SVG;\n                    lb.addEventListener('click', function(){ beszed_feloldas(); felolvas(par.n, [], 'de'); });\n                    li.appendChild(lb);\n                    lista.appendChild(li);\n                });\n                sz.appendChild(lista);\n                div.appendChild(sz);\n            });\n            szotar_ment(osszes);\n            $uzenetek.appendChild(div);\n            if (gorgess) $chatDoboz.scrollTop = Math.max(0, div.offsetTop - 10);\n            else $chatDoboz.scrollTop = $chatDoboz.scrollHeight;\n        }\n        \/\/ ---- \u00daJ (v9.753): Gyakorl\u00e1s h\u00e1rom n\u00e9zete: Szavak \/ Mondatok \/ Besz\u00e9lget\u00e9s ----\n        \/\/ A Szavak \u00e9s a Mondatok n\u00e9zet nem fogyaszt \u00fczenetet: a szerver kis adagokban (8 sz\u00f3, 6 mondat)\n        \/\/ \u00e1ll\u00edtja \u00f6ssze, a m\u00e1r l\u00e1tottakat nem ism\u00e9tli, \u00e9s \"\u00daj adag\" gombbal k\u00e9rhet\u0151 a k\u00f6vetkez\u0151.\n        var gyakFajta = 'szavak', gyakCache = {}, gyakAdagSzam = {}, gyakFut = false;\n        \/\/ Az eddig kapott szavak\/mondatok a b\u00f6ng\u00e9sz\u0151ben megmaradnak (visszan\u00e9zhet\u0151k, \u00e9s nem ism\u00e9tl\u0151dnek).\n        var GY_KEY = 'staffix-aiaj-gyujto-v1', gyujto = { szavak: [], mondatok: [] };\n        try {\n            var gj = JSON.parse(localStorage.getItem(GY_KEY) || 'null');\n            if (gj) ['szavak','mondatok'].forEach(function(f){ if (Array.isArray(gj[f])) gyujto[f] = gj[f].filter(function(p){ return p && typeof p.n === 'string' && typeof p.m === 'string'; }).slice(-400); });\n        } catch(e) {}\n        function gy_ment(fajta, items){\n            var lat = {}; gyujto[fajta].forEach(function(p){ lat[p.n.toLowerCase()] = true; });\n            items.forEach(function(p){ if (!lat[p.n.toLowerCase()]) { gyujto[fajta].push({n: p.n, m: p.m}); lat[p.n.toLowerCase()] = true; } });\n            if (gyujto[fajta].length > 400) gyujto[fajta] = gyujto[fajta].slice(-400);\n            try { localStorage.setItem(GY_KEY, JSON.stringify(gyujto)); } catch(e) {}\n        }\n        var $gyakSeg = document.getElementById('sfx-gyak-seg');\n        var $gyakLista = document.getElementById('sfx-gyak-lista');\n        var $beviSor = document.querySelector('.staffix-aiaj-beviteli-sor');\n        var $autoSor = document.querySelector('.sfx-auto-sor');\n        function gyak_lista_mod(){ return mod === 'gyakorlas' && gyakFajta !== 'beszelgetes'; }\n        function gyak_kulcs(){ return [($poz && $poz.value) || '', ($tema && $tema.value) || '', gyakFajta].join('|'); }\n        function gyak_nezet(){\n            var lm = gyak_lista_mod();\n            if ($gyakSeg) {\n                $gyakSeg.style.display = (mod === 'gyakorlas') ? '' : 'none';\n                Array.prototype.forEach.call($gyakSeg.querySelectorAll('.sfx-seg-b'), function(b){ b.classList.toggle('is-on', b.getAttribute('data-gf') === gyakFajta); });\n            }\n            if ($gyakLista) $gyakLista.style.display = lm ? '' : 'none';\n            if ($chatDoboz) $chatDoboz.style.display = lm ? 'none' : '';\n            if ($beviSor) $beviSor.style.display = lm ? 'none' : '';\n            if ($autoSor) $autoSor.style.display = lm ? 'none' : '';\n            var gyakBesz = (mod === 'gyakorlas' && !lm);\n            if ($ujSzavak) $ujSzavak.style.display = gyakBesz ? '' : 'none';\n            if ($szotarBtn) $szotarBtn.style.display = gyakBesz ? '' : 'none';\n        }\n        function gyak_frissit(uj){\n            gyak_nezet();\n            if (!gyak_lista_mod() || !$gyakLista) return;\n            if ($sfxApp && $sfxApp.style.display === 'none') return;\n            if (!uj && $gyakLista.getAttribute('data-kulcs') === gyak_kulcs() && $gyakLista.querySelector('.sfx-gyak-kartya')) return;\n            var c = gyakCache[gyak_kulcs()];\n            if (!uj && c) { $gyakLista.setAttribute('data-kulcs', gyak_kulcs()); gyak_rajz(c.items, gyakFajta, c.szam, c.regi, c.maradek); return; }\n            \/\/ v9.853: v\u00e1laszt\u00e1s k\u00f6zben semmi sem fogy: \u00faj adag csak az Indul\u00e1s gomb megnyom\u00e1s\u00e1ra k\u00e9sz\u00fcl (a poz\u00edci\u00f3\/t\u00e9ma\/f\u00fcl v\u00e1lt\u00e1sa nem k\u00e9r adagot).\n            if (!uj && !gyakInditva[gyak_kulcs()]) { gyak_indito_rajz(); return; }\n            gyak_kerj();\n        }\n        var gyakInditva = {};\n        function gyak_indito_rajz(){\n            if (!$gyakLista) return;\n            var k = gyak_kulcs();\n            $gyakLista.setAttribute('data-kulcs', k);\n            $gyakLista.innerHTML = '';\n            var d = document.createElement('div'); d.className = 'sfx-gyak-info';\n            var t = document.createElement('div'); t.textContent = CFG.i18n.indulas_gyak_lista || CFG.i18n.indulas_gyak; d.appendChild(t);\n            var b = document.createElement('button'); b.type = 'button'; b.className = 'staffix-aiaj-send-btn'; b.style.marginTop = '12px';\n            b.textContent = CFG.i18n.indulas_gomb;\n            b.addEventListener('click', function(){ if (gyakFut) return; hang_feloldas(); gyakInditva[k] = true; gyak_frissit(); });\n            d.appendChild(b); $gyakLista.appendChild(d);\n        }\n        function gyak_kerj(){\n            if (fizetes_visszateres) { setTimeout(gyak_kerj, 600); return; }\n            if (gyakFut || !$gyakLista) return;\n            gyakFut = true;\n            var k = gyak_kulcs(), fajta = gyakFajta;\n            $gyakLista.setAttribute('data-kulcs', k);\n            $gyakLista.innerHTML = '';\n            var t = document.createElement('div'); t.className = 'sfx-gyak-info'; t.textContent = CFG.i18n.gyak_tolt; $gyakLista.appendChild(t);\n            var fd = new FormData();\n            fd.append('action', 'staffix_ai_aj_gyak_adag'); fd.append('nonce', CFG.nonce);\n            fd.append('fajta', fajta); fd.append('pozicio', ($poz && $poz.value) || ''); fd.append('tema', ($tema && $tema.value) || '');\n            fd.append('szint', szint || '');\n            fd.append('mar', JSON.stringify(gyujto[fajta].map(function(p){ return p.n; }).slice(-150)));\n            fetch(CFG.ajax_url, { method:'POST', credentials:'same-origin', body: fd })\n                .then(sfxJson)\n                .then(function(res){\n                    gyakFut = false;\n                    if (gyak_kulcs() !== k) { gyak_frissit(); return; }\n                    if (res && !res.success && res.data && res.data.kimerult) {\n                        var cc = gyakCache[k];\n                        if (cc) { gyak_rajz(cc.items, fajta, cc.szam, cc.regi, cc.maradek); } else { gyak_hiba(res.data.message, k, true); }\n                        try { fal_nyit(res.data); } catch(e) {}\n                        return;\n                    }\n                    if (!res || !res.success || !res.data || !res.data.items || !res.data.items.length) {\n                        gyak_hiba((res && res.data && res.data.message) || CFG.i18n.gyak_hiba, k); return;\n                    }\n                    gyakAdagSzam[k] = (gyakAdagSzam[k] || 0) + 1;\n                    var elozo = gyujto[fajta].map(function(p){ return p.n.toLowerCase(); });\n                    var regi = gyujto[fajta].filter(function(p){ return !res.data.items.some(function(q){ return q.n.toLowerCase() === p.n.toLowerCase(); }); });\n                    gy_ment(fajta, res.data.items);\n                    gyakCache[k] = { items: res.data.items, szam: gyakAdagSzam[k], regi: regi, maradek: res.data.maradek };\n                    gyak_rajz(res.data.items, fajta, gyakAdagSzam[k], regi, res.data.maradek);\n                })\n                .catch(function(){ gyakFut = false; gyak_hiba(CFG.i18n.gyak_hiba, k); });\n        }\n        function gyak_hiba(uzenet, k, nincsUj){\n            $gyakLista.innerHTML = '';\n            var t = document.createElement('div'); t.className = 'sfx-gyak-info'; t.textContent = uzenet; $gyakLista.appendChild(t);\n            var u = document.createElement('div'); u.setAttribute('role', 'button'); u.setAttribute('tabindex', '0'); u.className = 'sfx-gyak-uj';\n            u.textContent = '\u21bb'; u.addEventListener('click', function(){ gyak_kerj(); });\n            if (!nincsUj) $gyakLista.appendChild(u);\n        }\n        function gyak_rajz(items, fajta, szam, regi, maradek){\n            $gyakLista.innerHTML = '';\n            var div = document.createElement('div');\n            div.className = 'staffix-aiaj-bubi ai sfx-gyak-kartya';\n            var fo = document.createElement('div');\n            fo.className = 'fo-szoveg';\n            fo.textContent = (fajta === 'szavak' ? CFG.i18n.gyak_cim_szavak : CFG.i18n.gyak_cim_mondatok) + ' \u00b7 ' + szam + '. ' + CFG.i18n.gyak_adag;\n            div.appendChild(fo);\n            var sz = document.createElement('div'); sz.className = 'szokincs';\n            var nemet = items.map(function(p){ return felolvasasra_tisztit(p.n); });\n            var mind = document.createElement('button'); mind.type = 'button'; mind.className = 'szo-mind';\n            mind.textContent = CFG.i18n.mind_hallgat;\n            mind.addEventListener('click', function(){ beszed_feloldas(); felolvas('', nemet, 'de'); });\n            sz.appendChild(mind);\n            var lista = document.createElement('ul'); lista.className = 'szokincs-lista';\n            items.forEach(function(par){\n                var li = document.createElement('li');\n                var szov = document.createElement('div'); szov.className = 'szo-szoveg';\n                var sn = document.createElement('span'); sn.className = 'szo-nemet'; sn.textContent = par.n;\n                var sm = document.createElement('span'); sm.className = 'szo-magyar'; sm.textContent = par.m;\n                szov.appendChild(sn); szov.appendChild(sm); li.appendChild(szov);\n                var lb = document.createElement('button'); lb.type = 'button'; lb.className = 'szo-lejatszo';\n                lb.setAttribute('aria-label', CFG.i18n.felolvasas_cim || ''); lb.innerHTML = HANG_SVG;\n                lb.addEventListener('click', function(){ beszed_feloldas(); felolvas(par.n, [], 'de'); });\n                li.appendChild(lb); lista.appendChild(li);\n            });\n            sz.appendChild(lista); div.appendChild(sz);\n            $gyakLista.appendChild(div);\n            var u = document.createElement('div'); u.setAttribute('role', 'button'); u.setAttribute('tabindex', '0'); u.className = 'sfx-gyak-uj';\n            u.textContent = (fajta === 'szavak') ? CFG.i18n.gyak_uj_szavak : CFG.i18n.gyak_uj_mondatok;\n            u.addEventListener('click', function(){ gyak_kerj(); });\n            $gyakLista.appendChild(u);\n            if (typeof maradek === 'number') {\n                var mi = document.createElement('div'); mi.className = 'sfx-gyak-info'; mi.style.padding = '8px'; mi.style.fontSize = '13px';\n                mi.textContent = String(CFG.i18n.gyak_maradek).replace('%d', maradek);\n                $gyakLista.appendChild(mi);\n            }\n            if (regi && regi.length) {\n                var tg = document.createElement('div'); tg.setAttribute('role', 'button'); tg.setAttribute('tabindex', '0'); tg.className = 'sfx-tipp-toggle sfx-gyak-regi-toggle';\n                var cimR = (fajta === 'szavak' ? CFG.i18n.gyak_regi_szavak : CFG.i18n.gyak_regi_mondatok) + ' (' + regi.length + ') \u25be';\n                tg.textContent = cimR;\n                var dobozR = document.createElement('div'); dobozR.className = 'staffix-aiaj-bubi ai sfx-gyak-kartya sfx-gyak-regi'; dobozR.style.display = 'none';\n                var szR = document.createElement('div'); szR.className = 'szokincs';\n                var ulR = document.createElement('ul'); ulR.className = 'szokincs-lista';\n                regi.slice().reverse().forEach(function(par){\n                    var li = document.createElement('li');\n                    var szov = document.createElement('div'); szov.className = 'szo-szoveg';\n                    var sn = document.createElement('span'); sn.className = 'szo-nemet'; sn.textContent = par.n;\n                    var sm = document.createElement('span'); sm.className = 'szo-magyar'; sm.textContent = par.m;\n                    szov.appendChild(sn); szov.appendChild(sm); li.appendChild(szov);\n                    var lb = document.createElement('button'); lb.type = 'button'; lb.className = 'szo-lejatszo';\n                    lb.setAttribute('aria-label', CFG.i18n.felolvasas_cim || ''); lb.innerHTML = HANG_SVG;\n                    lb.addEventListener('click', function(){ beszed_feloldas(); felolvas(par.n, [], 'de'); });\n                    li.appendChild(lb); ulR.appendChild(li);\n                });\n                szR.appendChild(ulR); dobozR.appendChild(szR);\n                tg.addEventListener('click', function(){ dobozR.style.display = (dobozR.style.display === 'none') ? '' : 'none'; });\n                $gyakLista.appendChild(tg); $gyakLista.appendChild(dobozR);\n            }\n            if (fajta === 'szavak') { try { szotar_ment(items.map(function(p){ return { nemet: p.n, magyar: p.m }; })); } catch(e) {} }\n        }\n        if ($gyakSeg) $gyakSeg.addEventListener('click', function(e){\n            var b = e.target && e.target.closest ? e.target.closest('.sfx-seg-b') : null;\n            if (!b || $send.disabled) return;\n            var gf = b.getAttribute('data-gf');\n            if (gf === gyakFajta) return;\n            gyakFajta = gf;\n            gyak_nezet();\n            if (gyak_lista_mod()) gyak_frissit(); else automatikus_inditas();\n        });\n        gyak_nezet();\n\n        function szotar_statikus(){\n            if (!$poz || !$poz.value) {\n                bubi(CFG.i18n.szotar_poz, 'sys');\n                return;\n            }\n            var kulcs = (CFG.poz_szotar_kulcs && CFG.poz_szotar_kulcs[$poz.value]) || 'altalanos';\n            var csoportok = (CFG.szotarak && CFG.szotarak[kulcs]) || CFG.szotarak.altalanos;\n            if (!csoportok) return;\n            szotar_kartya(CFG.i18n.szotar_cim + ' ' + $poz.options[$poz.selectedIndex].text, csoportok, true);\n        }\n        \/\/ \u00daJ (v9.738): kb. 40 sz\u00f3 az adott helyzethez \u00c9S poz\u00edci\u00f3hoz (a szerver \u00e1ll\u00edtja \u00f6ssze,\n        \/\/ \u00e9s poz\u00edci\u00f3+helyzet p\u00e1rosonk\u00e9nt elt\u00e1rolja; nem fogyaszt \u00fczenetet).\n        var szavak_kell = false, szavak_fut = false, $indulas = null;\n        function helyzet_kulcs(){\n            var sel = (mod === 'szerepjatek') ? $szerep : $tema;\n            return mod + '|' + (sel ? sel.value : '') + '|' + ($poz ? $poz.value : '');\n        }\n        function kartya_van(kulcs){\n            var k = $uzenetek.querySelectorAll('.szavak-kartya');\n            for (var i = 0; i < k.length; i++) { if (k[i].getAttribute('data-kulcs') === kulcs) return true; }\n            return false;\n        }\n        function indulas_torol(){\n            if ($indulas && $indulas.parentNode) $indulas.parentNode.removeChild($indulas);\n            $indulas = null;\n        }\n        \/\/ \u00daJ (v9.739): a besz\u00e9lget\u00e9s NEM indul mag\u00e1t\u00f3l - el\u0151bb v\u00e1laszthat poz\u00edci\u00f3t\/helyzetet, l\u00e1tja\n        \/\/ az (ingyenes) sz\u00f3list\u00e1t, \u00e9s az Indul\u00e1s gombbal ind\u00edtja a jelenetet\/leck\u00e9t.\n        function indulas_kinal(){\n            indulas_torol();\n            if (history_.length) return;\n            if (mod !== 'gyakorlas' && mod !== 'szerepjatek') return;\n            var kulcs = helyzet_kulcs();\n            var k = $uzenetek.querySelectorAll('.szavak-kartya');\n            for (var i = 0; i < k.length; i++) { if (k[i].getAttribute('data-kulcs') !== kulcs && k[i].parentNode) k[i].parentNode.removeChild(k[i]); }\n            var van_helyzet = (mod === 'szerepjatek') ? !!($szerep && $szerep.value) : !!($tema && $tema.value);\n            if (van_helyzet && mod === 'gyakorlas' && !kartya_van(kulcs)) helyzet_szavak(true);\n            var d = document.createElement('div');\n            d.className = 'staffix-aiaj-bubi sys staffix-aiaj-indulas-bubi';\n            var t = document.createElement('div');\n            t.textContent = (mod === 'szerepjatek') ? CFG.i18n.indulas_szerep : CFG.i18n.indulas_gyak;\n            d.appendChild(t);\n            var b = document.createElement('button');\n            b.type = 'button';\n            b.textContent = CFG.i18n.indulas_gomb;\n            b.addEventListener('click', function(){\n                if ($send.disabled) return;\n                hang_feloldas();\n                indulas_torol();\n                kuldes(indito_uzenet());\n            });\n            d.appendChild(b);\n            $indulas = d;\n            $uzenetek.appendChild(d);\n            $chatDoboz.scrollTop = $chatDoboz.scrollHeight;\n        }\n        function helyzet_szavak(auto){\n            var tipus = (mod === 'szerepjatek') ? 'szerep' : 'tema';\n            var sel = (tipus === 'szerep') ? $szerep : $tema;\n            var kulcs = sel ? sel.value : '';\n            if (!kulcs) { if (!auto) bubi(CFG.i18n.szavak_valassz, 'sys'); return; }\n            if (szavak_fut) return;\n            var kk = helyzet_kulcs();\n            if (auto && kartya_van(kk)) return;\n            szavak_fut = true;\n            var mod0 = mod, kulcs0 = kulcs;\n            var cimke = sel.options[sel.selectedIndex] ? sel.options[sel.selectedIndex].text : '';\n            if ($poz && $poz.value) cimke += ' - ' + $poz.options[$poz.selectedIndex].text;\n            var tolt = bubi(CFG.i18n.szavak_betolt, 'sys');\n            var fd = new FormData();\n            fd.append('action', 'staffix_ai_aj_szolista');\n            fd.append('nonce', CFG.nonce);\n            fd.append('tipus', tipus);\n            fd.append('kulcs', kulcs);\n            fd.append('pozicio', $poz ? $poz.value : '');\n            fetch(CFG.ajax_url, { method:'POST', credentials:'same-origin', body: fd })\n                .then(sfxJson)\n                .then(function(res){\n                    szavak_fut = false;\n                    if (tolt && tolt.parentNode) tolt.parentNode.removeChild(tolt);\n                    if (!res || !res.success || !res.data || !res.data.csoportok) { bubi(CFG.i18n.szavak_hiba, 'sys'); return; }\n                    if (mod !== mod0 || (sel && sel.value !== kulcs0)) { if (!history_.length) helyzet_szavak(true); return; } \/\/ k\u00f6zben m\u00e1sik helyzetet v\u00e1lasztott\n                    szotar_kartya(CFG.i18n.szavak_helyzet + ' ' + cimke, res.data.csoportok, false, kk);\n                    if ($indulas && $indulas.parentNode) { $uzenetek.appendChild($indulas); $chatDoboz.scrollTop = $chatDoboz.scrollHeight; }\n                })\n                .catch(function(){\n                    szavak_fut = false;\n                    if (tolt && tolt.parentNode) tolt.parentNode.removeChild(tolt);\n                    bubi(CFG.i18n.szavak_hiba, 'sys');\n                });\n        }\n        function szotar_mutat(){\n            hang_feloldas();\n            if (mod === 'szerepjatek' || (mod === 'gyakorlas' && $tema && $tema.value)) { helyzet_szavak(false); return; }\n            szotar_statikus();\n        }\n        if ($szotarBtn) { $szotarBtn.addEventListener('click', szotar_mutat); }\n\n        \/\/ ===== \u00daJ (v9.742): szintfelm\u00e9r\u0151, szintv\u00e1laszt\u00f3, saj\u00e1t avatar \u00e9s partner =====\n        \/\/ A szint \u00e9s az avatarok csak a b\u00f6ng\u00e9sz\u0151ben (localStorage) t\u00e1rol\u00f3dnak, a szint\n        \/\/ pedig a \"szint\" mez\u0151vel megy a szervernek. \u00dcres szintn\u00e9l a m\u0171k\u00f6d\u00e9s a r\u00e9gi.\n        var SZ = CFG.szint_i18n || {};\n        var SZ_KEY = 'staffix-aiaj-prefs-v1';\n        var SZINTEK = ['0','A1','A2','B1'];\n        var SKINS = ['#F6D5B8','#E8B68E','#C98E62','#9A6642','#6B4429'];\n        var HAIRS = ['#2A1D17','#5A3A24','#A8743A','#D7B26A','#8E8E8E','#B2402C'];\n        var SHIRTS = ['#C0262D','#2F5D8A','#2B7A57','#5B4B8A','#1E2E31','#B98A2E'];\n        var STILUSOK = [['short', SZ.st_rovid],['long', SZ.st_hosszu],['bun', SZ.st_kontyos],['curly', SZ.st_gongyol],['bald', SZ.st_kopasz]];\n        \/\/ v9.823: egyetlen Dorka van; a st\u00edlusa (kedves \/ szigor\u00fa \/ laza) \u00e1ll\u00edthat\u00f3, \u00e9s az arckifejez\u00e9se is ehhez igazodik.\n        var PARTNEREK = [\n            {id:'kedves',  look:{skin:0,hair:1,shirt:0,style:'long',glasses:false,mood:'smile'}},\n            {id:'szigoru', look:{skin:0,hair:1,shirt:0,style:'long',glasses:false,mood:'stern'}},\n            {id:'laza',    look:{skin:0,hair:1,shirt:0,style:'long',glasses:false,mood:'raised'}}\n        ];\n        function partner_norm(id){ var m = {hofer:'kedves', max:'kedves', berger:'szigoru', lena:'laza'}; id = m[id] || id; return PARTNEREK.some(function(p){ return p.id === id; }) ? id : 'kedves'; }\n        var kesz = false, szint = '', partner = 'kedves', enLook = {skin:1,hair:1,shirt:1,style:'short',glasses:false,mood:'smile',kep:0}, enNev = '';\n        try {\n            var sj = JSON.parse(localStorage.getItem(SZ_KEY) || 'null');\n            if (sj) {\n                if (SZINTEK.indexOf(sj.szint) > -1) szint = sj.szint;\n                kesz = !!sj.kesz;\n                if (sj.partner) partner = partner_norm(sj.partner);\n                if (sj.me && typeof sj.me === 'object') {\n                    ['skin','hair','shirt','kep'].forEach(function(k){ if (typeof sj.me[k] === 'number') enLook[k] = sj.me[k]; });\n                    if (typeof sj.me.style === 'string') enLook.style = sj.me.style;\n                    enLook.glasses = !!sj.me.glasses;\n                }\n            }\n        } catch(e) {}\n        \/\/ v9.749: bejelentkezett tanul\u00f3n\u00e1l a fi\u00f3kban t\u00e1rolt be\u00e1ll\u00edt\u00e1s az ir\u00e1nyad\u00f3, ha a b\u00f6ng\u00e9sz\u0151ben m\u00e9g nincs k\u00e9sz szint\n        var szPush = null;\n        function szerver_push(){\n            if (!CFG.logged_in) return;\n            clearTimeout(szPush);\n            szPush = setTimeout(function(){\n                var fd = new FormData();\n                fd.append('action','staffix_ai_aj_prefs_ment'); fd.append('nonce', CFG.nonce);\n                fd.append('szint', szint); fd.append('partner', partner);\n                fd.append('me', JSON.stringify(enLook)); fd.append('kesz', kesz ? '1' : '0');\n                fetch(CFG.ajax_url, { method:'POST', credentials:'same-origin', body: fd }).catch(function(){});\n            }, 600);\n        }\n        try {\n            var sp = CFG.szerver_prefs;\n            if (CFG.logged_in && sp && typeof sp === 'object' && (sp.kesz || SZINTEK.indexOf(sp.szint) > -1) && !(kesz && szint)) {\n                if (SZINTEK.indexOf(sp.szint) > -1) szint = sp.szint;\n                kesz = true;\n                if (sp.partner) partner = partner_norm(sp.partner);\n                if (sp.me && typeof sp.me === 'object') {\n                    ['skin','hair','shirt','kep'].forEach(function(k){ if (typeof sp.me[k] === 'number') enLook[k] = sp.me[k]; });\n                    if (typeof sp.me.style === 'string') enLook.style = sp.me.style;\n                    enLook.glasses = !!sp.me.glasses;\n                }\n                try { localStorage.setItem(SZ_KEY, JSON.stringify({szint: szint, partner: partner, me: enLook, kesz: kesz})); } catch(e) {}\n            } else if (CFG.logged_in && kesz && (!sp || sp.szint !== szint)) {\n                setTimeout(function(){ szerver_push(); }, 300);\n            }\n        } catch(e) {}\n        function szint_ment(){\n            try { localStorage.setItem(SZ_KEY, JSON.stringify({szint: szint, partner: partner, me: enLook, kesz: kesz})); } catch(e) {}\n            szerver_push();\n        }\n        function szesc(s){ return String(s == null ? '' : s).replace(\/[&<>\"']\/g, function(c){ return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c]; }); }\n        function avatar_svg(o){\n            var skin = SKINS[o.skin] || SKINS[1], hair = HAIRS[o.hair] || HAIRS[1], shirt = SHIRTS[o.shirt] || SHIRTS[1], ink = '#1d1d1d', back = '', front = '';\n            var cap = '<path d=\"M30 44C27 14 73 14 70 44C66 35 58 31 50 31C42 31 34 35 30 44Z\" fill=\"' + hair + '\"\/>';\n            if (o.style === 'long') { back = '<path d=\"M27 46C25 12 75 12 73 46L77 82C66 86 34 86 23 82Z\" fill=\"' + hair + '\"\/>'; front = cap; }\n            else if (o.style === 'short') { front = cap; }\n            else if (o.style === 'bun') { back = '<circle cx=\"50\" cy=\"15\" r=\"8\" fill=\"' + hair + '\"\/>'; front = cap; }\n            else if (o.style === 'curly') { front = [[33,32,8],[43,24,9],[57,24,9],[67,32,8],[29,44,6],[71,44,6],[50,22,9]].map(function(a){ return '<circle cx=\"' + a[0] + '\" cy=\"' + a[1] + '\" r=\"' + a[2] + '\" fill=\"' + hair + '\"\/>'; }).join(''); }\n            var m = o.mood || 'smile';\n            var brows = m === 'stern' ? 'M36 41L45 43M64 41L55 43' : (m === 'raised' ? 'M36 41Q41 37 46 40M54 40Q59 37 64 41' : 'M36 42Q41 39 46 41M54 41Q59 39 64 42');\n            var mouth = m === 'stern' ? 'M44 58H56' : (m === 'raised' ? 'M44 57Q50 63 56 57' : 'M43 56Q50 63 57 56');\n            var glasses = o.glasses ? '<g fill=\"none\" stroke=\"#222\" stroke-width=\"1.8\"><circle cx=\"42\" cy=\"47\" r=\"6.5\"\/><circle cx=\"58\" cy=\"47\" r=\"6.5\"\/><path d=\"M48.5 47H51.5\"\/><\/g>' : '';\n            return '<svg viewBox=\"0 0 100 100\" aria-hidden=\"true\"><rect width=\"100\" height=\"100\" fill=\"#DCE6E0\"\/>' + back\n                + '<rect x=\"44\" y=\"58\" width=\"12\" height=\"22\" rx=\"5\" fill=\"' + skin + '\"\/><ellipse cx=\"50\" cy=\"67\" rx=\"10\" ry=\"4\" fill=\"rgba(0,0,0,.12)\"\/>'\n                + '<path d=\"M16 100C16 82 30 75 50 75C70 75 84 82 84 100Z\" fill=\"' + shirt + '\"\/><path d=\"M43 75L50 86L57 75Z\" fill=\"' + skin + '\"\/>'\n                + '<ellipse cx=\"50\" cy=\"46\" rx=\"19\" ry=\"22\" fill=\"' + skin + '\"\/><circle cx=\"31\" cy=\"48\" r=\"4\" fill=\"' + skin + '\"\/><circle cx=\"69\" cy=\"48\" r=\"4\" fill=\"' + skin + '\"\/>'\n                + front + '<path d=\"' + brows + '\" stroke=\"' + ink + '\" stroke-width=\"2\" stroke-linecap=\"round\" fill=\"none\" opacity=\".75\"\/>'\n                + '<circle cx=\"42\" cy=\"47\" r=\"2.2\" fill=\"' + ink + '\"\/><circle cx=\"58\" cy=\"47\" r=\"2.2\" fill=\"' + ink + '\"\/>'\n                + '<path d=\"M50 49L48.5 54H51.5\" stroke=\"rgba(0,0,0,.25)\" stroke-width=\"1.6\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>'\n                + '<path d=\"' + mouth + '\" stroke=\"' + ink + '\" stroke-width=\"2\" stroke-linecap=\"round\" fill=\"none\"\/>' + glasses + '<\/svg>';\n        }\n        \/\/ v9.823: Dorka val\u00f3di arck\u00e9pe (a st\u00edlusv\u00e1lt\u00f3, a v\u00e1laszok \u00e9s a kezd\u0151lap ezt mutatja); ha a k\u00e9p hi\u00e1nyzik, a r\u00e9gi rajz marad.\n        function partner_kep(p){ var u = (CFG.dorka_kep || {})[p.id]; return u ? '<img decoding=\"async\" src=\"' + szesc(u) + '\" alt=\"\" loading=\"lazy\" style=\"display:block;width:100%;height:100%;object-fit:cover;\">' : avatar_svg(p.look); }\n        \/\/ v9.823: a felhaszn\u00e1l\u00f3 arca is k\u00e9sz k\u00e9p (16 v\u00e1laszthat\u00f3); ha nincs k\u00e9p, a rajzolt avatar marad.\n        function te_kep(o){ var u = (CFG.te_kepek || [])[o.kep]; return u ? '<img decoding=\"async\" src=\"' + szesc(u) + '\" alt=\"\" loading=\"lazy\" style=\"display:block;width:100%;height:100%;object-fit:cover;\">' : avatar_svg(o); }\n        function partner_adat(id){ for (var i = 0; i < PARTNEREK.length; i++) { if (PARTNEREK[i].id === id) return PARTNEREK[i]; } return PARTNEREK[0]; }\n\n        var $szCimke = document.getElementById('staffix-aiaj-szint-cimke');\n        var $szInfo = document.getElementById('staffix-aiaj-szint-info');\n        var $szVal = document.getElementById('staffix-aiaj-szint-valaszto');\n        var $meAv = document.getElementById('staffix-aiaj-me-av');\n        var $teszt = document.getElementById('staffix-aiaj-teszt');\n        var $tesztBtn = document.getElementById('staffix-aiaj-teszt-btn');\n        var $avBtn = document.getElementById('staffix-aiaj-avatar-btn');\n        var $avSzerk = document.getElementById('staffix-aiaj-avatar-szerk');\n        var $szereplok = document.getElementById('staffix-aiaj-szereplok');\n\n        function szint_rajz(){\n            if ($szCimke) $szCimke.textContent = szint ? (SZ['l' + szint] || szint) : SZ.nincs;\n            if ($szInfo) $szInfo.textContent = szint ? (SZ['i' + szint] || '') : SZ.nincs_info;\n            if ($szVal) {\n                $szVal.innerHTML = SZINTEK.map(function(k){\n                    return '<div role=\"button\" tabindex=\"0\" class=\"szint-chip\" data-szint=\"' + k + '\" aria-pressed=\"' + (szint === k) + '\">' + szesc(SZ['l' + k] || k) + '<\/div>';\n                }).join('');\n            }\n            if ($meAv) $meAv.innerHTML = te_kep(enLook);\n            szereplok_rajz();\n        }\n        function szereplok_rajz(){\n            if (!$szereplok) return;\n            $szereplok.style.display = (mod === 'szerepjatek') ? 'flex' : 'none';\n            var p = partner_adat(partner);\n            $szereplok.innerHTML = '<div class=\"sz-fo\"><div class=\"kep\">' + te_kep(enLook) + '<\/div>' + szesc(SZ.te) + '<\/div>'\n                + '<span class=\"sz-vs\">&#8596;<\/span>'\n                + '<div class=\"sz-fo\"><div class=\"kep\">' + partner_kep(p) + '<\/div>' + szesc(SZ['p_' + p.id] || p.id) + '<\/div>';\n            wiz_elonezet();\n        }\n        if ($szVal) {\n            $szVal.addEventListener('click', function(e){\n                var b = e.target.closest ? e.target.closest('[data-szint]') : null;\n                if (!b) return;\n                szint = b.getAttribute('data-szint');\n                szint_ment(); szint_rajz();\n            });\n        }\n\n        \/\/ ---- szintfelm\u00e9r\u0151 (helyben fut, nem fogyaszt \u00fczenetet) ----\n        var KVIZ = [\n            {lv:0,q:'Mit jelent: \u201eGuten Tag\u201d?',o:['K\u00f6sz\u00f6n\u00f6m','J\u00f3 napot','Viszontl\u00e1t\u00e1sra'],ok:1},\n            {lv:0,q:'Mit jelent: \u201eDanke\u201d?',o:['K\u00f6sz\u00f6n\u00f6m','K\u00e9rem','Bocs\u00e1nat'],ok:0},\n            {lv:1,q:'Valaki ezt k\u00e9rdezi: \u201eWie hei\u00dfen Sie?\u201d Mi a j\u00f3 v\u00e1lasz?',o:['Es ist drei Uhr.','Ich komme aus Ungarn.','Ich hei\u00dfe Anna.'],ok:2},\n            {lv:1,q:'\u201eDas Zimmer kostet achtzig Euro.\u201d Mennyibe ker\u00fcl a szoba?',o:['18 eur\u00f3','80 eur\u00f3','8 eur\u00f3'],ok:1},\n            {lv:2,q:'Eg\u00e9sz\u00edtsd ki: \u201eIch ___ jeden Tag um sechs Uhr auf.\u201d',o:['stehen','steht','stehe'],ok:2},\n            {lv:2,q:'\u201eMorgen beginnt die Arbeit schon um 6 Uhr. Bitte bringen Sie Arbeitsschuhe mit.\u201d Mit kell hoznod?',o:['\u00datlevelet','Munkacip\u0151t','Eb\u00e9det'],ok:1},\n            {lv:2,q:'Eg\u00e9sz\u00edtsd ki: \u201eEntschuldigung, ___ ich morgen frei haben?\u201d',o:['D\u00fcrfen','Darfst','Darf'],ok:2},\n            {lv:3,q:'Eg\u00e9sz\u00edtsd ki: \u201eIch habe mich gestern ___ der Arbeit verletzt.\u201d',o:['bei','an','zu'],ok:0},\n            {lv:3,q:'Eg\u00e9sz\u00edtsd ki: \u201eWenn ich mehr Zeit ___, w\u00fcrde ich einen Deutschkurs besuchen.\u201d',o:['habe','h\u00e4tte','hatte'],ok:1},\n            {lv:3,q:'\u201eAufgrund der hohen Auslastung bitten wir alle Mitarbeiter, \u00dcberstunden zu vermeiden, sofern es nicht unbedingt n\u00f6tig ist.\u201d Mit k\u00e9rnek a dolgoz\u00f3kt\u00f3l?',o:['Hogy maradjanak tov\u00e1bb minden nap','Hogy lehet\u0151leg ne dolgozzanak t\u00fal\u00f3r\u00e1t','Hogy vegyenek ki szabads\u00e1got'],ok:1}\n        ];\n        var tesztAllapot = null;\n        function szint_szamol(ans){\n            var c = [0,0,0,0];\n            KVIZ.forEach(function(q, i){ if (ans[i]) c[q.lv]++; });\n            if (c[0] + c[1] < 3) return '0';\n            if (c[2] < 2) return 'A1';\n            if (c[3] < 2) return 'A2';\n            return 'B1';\n        }\n        function teszt_rajz(){\n            if (!$teszt) return;\n            if (!tesztAllapot) { $teszt.style.display = 'none'; $teszt.innerHTML = ''; return; }\n            $teszt.style.display = '';\n            var t = tesztAllapot;\n            if (t.vege) {\n                var n = t.ans.filter(Boolean).length, uj = szint_szamol(t.ans);\n                $teszt.innerHTML = '<h3>' + szesc(SZ.javasolt) + '<\/h3><div class=\"sz-nagy\">' + szesc(SZ['l' + uj]) + '<\/div>'\n                    + '<p style=\"margin:0 0 4px;font-size:14px;color:#555;\">' + szesc(n + ' \/ ' + KVIZ.length + ' ' + SZ.helyes) + '<\/p>'\n                    + '<p style=\"margin:0;font-size:13.5px;color:#666;\">' + szesc(SZ['i' + uj]) + '<\/p>'\n                    + '<div role=\"button\" tabindex=\"0\" class=\"sz-gomb\" data-sz=\"hasznal\" data-v=\"' + uj + '\">' + szesc(SZ.hasznal) + '<\/div>'\n                    + '<div role=\"button\" tabindex=\"0\" class=\"sz-gomb mas\" data-sz=\"ujra\">' + szesc(SZ.ujra) + '<\/div>';\n                return;\n            }\n            var q = KVIZ[t.i];\n            $teszt.innerHTML = '<div class=\"sz-prog\"><i style=\"width:' + Math.round(t.i \/ KVIZ.length * 100) + '%\"><\/i><\/div>'\n                + '<h3>' + (t.i + 1) + ' \/ ' + KVIZ.length + '<\/h3><p class=\"sz-kerdes\">' + szesc(q.q) + '<\/p>'\n                + q.o.map(function(x, k){ return '<div role=\"button\" tabindex=\"0\" class=\"sz-valasz\" data-sz=\"valasz\" data-k=\"' + k + '\">' + szesc(x) + '<\/div>'; }).join('')\n                + '<div role=\"button\" tabindex=\"0\" class=\"sz-valasz nem\" data-sz=\"valasz\" data-k=\"-1\">' + szesc(SZ.nem_tudom) + '<\/div>'\n                + '<div role=\"button\" tabindex=\"0\" class=\"sz-gomb mas\" data-sz=\"bezar\">' + szesc(SZ.kihagyom) + '<\/div>';\n        }\n        if ($tesztBtn) {\n            $tesztBtn.addEventListener('click', function(){\n                if ($avSzerk) $avSzerk.style.display = 'none';\n                teszt_inditas();\n            });\n        }\n        if ($teszt) {\n            $teszt.addEventListener('click', function(e){\n                var b = e.target.closest ? e.target.closest('[data-sz]') : null;\n                if (!b || !tesztAllapot) return;\n                var a = b.getAttribute('data-sz');\n                if (a === 'valasz') {\n                    var k = parseInt(b.getAttribute('data-k'), 10);\n                    tesztAllapot.ans.push(k === KVIZ[tesztAllapot.i].ok);\n                    tesztAllapot.i++;\n                    if (tesztAllapot.i >= KVIZ.length) tesztAllapot.vege = true;\n                } else if (a === 'ujra') {\n                    tesztAllapot = {i:0, ans:[], vege:false};\n                } else if (a === 'hasznal') {\n                    szint = b.getAttribute('data-v');\n                    szint_ment(); szint_rajz();\n                    tesztAllapot = null;\n                    teszt_rajz();\n                    wiz_teszt_allapot();\n                    wiz_tovabb_ha_aktiv();\n                    return;\n                } else if (a === 'bezar') {\n                    tesztAllapot = null;\n                }\n                teszt_rajz();\n                wiz_teszt_allapot();\n            });\n        }\n\n        \/\/ ---- avatar \u00e9s partner szerkeszt\u0151 ----\n        var szerkNyitva = '';\n        function acc_sor(kulcs, cimke, elonezet, torzs){\n            return '<div class=\"acc' + (szerkNyitva === kulcs ? ' open' : '') + '\"><div role=\"button\" tabindex=\"0\" class=\"acc-h\" data-acc=\"' + kulcs + '\"><span class=\"acc-t\">' + szesc(cimke) + '<\/span><span class=\"acc-v\">' + elonezet + '<\/span><i class=\"acc-ch\"><\/i><\/div><div class=\"acc-b\">' + torzs + '<\/div><\/div>';\n        }\n        function acc_szinek(tulaj, lista){\n            return lista.map(function(c, i){\n                return '<div role=\"button\" tabindex=\"0\" class=\"szint-sw\" style=\"background:' + c + '\" data-av=\"' + tulaj + '\" data-v=\"' + i + '\" aria-pressed=\"' + (enLook[tulaj] === i) + '\" aria-label=\"' + (i + 1) + '\"><\/div>';\n            }).join('');\n        }\n        function acc_pont(c){ return '<span class=\"acc-dot\" style=\"background:' + c + '\"><\/span>'; }\n        function szerk_rajz(){\n            if (!$avSzerk) return;\n            var stNev = '';\n            STILUSOK.forEach(function(s){ if (enLook.style === s[0]) stNev = s[1]; });\n            var p = partner_adat(partner);\n            var h = acc_sor('kep', SZ.kep_valaszt, '<span class=\"szint-mini sm\">' + te_kep(enLook) + '<\/span>',\n                    '<div class=\"szint-kepek\">' + (CFG.te_kepek || []).map(function(u, i){\n                        return '<div role=\"button\" tabindex=\"0\" class=\"szint-kep\" data-av=\"kep\" data-v=\"' + i + '\" aria-pressed=\"' + (enLook.kep === i) + '\" aria-label=\"' + (i + 1) + '\"><img decoding=\"async\" src=\"' + szesc(u) + '\" alt=\"\" loading=\"lazy\"><\/div>';\n                    }).join('') + '<\/div>')\n                + acc_sor('partner', SZ.partner_cim_rovid, '<span class=\"szint-mini sm\">' + partner_kep(p) + '<\/span>' + szesc(SZ['p_' + p.id]),\n                    '<div class=\"szint-partnerek\">' + PARTNEREK.map(function(q){\n                        return '<div role=\"button\" tabindex=\"0\" class=\"szint-partner\" data-partner=\"' + q.id + '\" aria-pressed=\"' + (partner === q.id) + '\"><span class=\"szint-mini\">' + partner_kep(q) + '<\/span><span><b>' + szesc(SZ['p_' + q.id]) + '<\/b><span class=\"t\">' + szesc(SZ['pt_' + q.id]) + '<\/span><\/span><\/div>';\n                    }).join('') + '<\/div>');\n            $avSzerk.innerHTML = h;\n        }\n        if ($avBtn) {\n            $avBtn.addEventListener('click', function(){\n                if (!$avSzerk) return;\n                var nyit = $avSzerk.style.display === 'none';\n                $avSzerk.style.display = nyit ? '' : 'none';\n                if (nyit) { tesztAllapot = null; teszt_rajz(); szerk_rajz(); }\n            });\n        }\n        function jelenet_ujrainditas(){\n            \/\/ Partner v\u00e1lt\u00e1sakor az \u00faj karakterrel tiszta lappal indul a jelenet.\n            if (mod === 'szerepjatek' && $szerep && $szerep.value && history_.length && !$send.disabled) {\n                hang_leallit();\n                while ($uzenetek.firstChild) $uzenetek.removeChild($uzenetek.firstChild);\n                history_ = [];\n                $kezdoTipp = null;\n                indulas_kinal();\n            }\n        }\n        if ($avSzerk) {\n            $avSzerk.addEventListener('click', function(e){\n                var b = e.target.closest ? e.target.closest('[role=\"button\"],button') : null;\n                if (!b) return;\n                var ak = b.getAttribute('data-acc');\n                if (ak) { szerkNyitva = (szerkNyitva === ak) ? '' : ak; szerk_rajz(); return; }\n                var pid = b.getAttribute('data-partner');\n                if (pid) {\n                    if (pid !== partner) { partner = pid; szint_ment(); szereplok_rajz(); jelenet_ujrainditas(); }\n                    szerkNyitva = ''; szerk_rajz();\n                    return;\n                }\n                var tul = b.getAttribute('data-av');\n                if (!tul) return;\n                var v = b.getAttribute('data-v');\n                if (tul === 'style') enLook.style = v;\n                else if (tul === 'glasses') enLook.glasses = (v === '1');\n                else enLook[tul] = parseInt(v, 10);\n                szint_ment(); szerkNyitva = ''; szerk_rajz(); szint_rajz();\n            });\n        }\n        \/\/ A m\u00f3d v\u00e1lt\u00e1sakor (az eredeti kezel\u0151 ut\u00e1n fut) a szerepl\u0151k s\u00e1vja friss\u00fcl.\n        document.querySelectorAll('.staffix-aiaj-mod-btn').forEach(function(btn){\n            btn.addEventListener('click', szereplok_rajz);\n        });\n        szint_rajz();\n\n        \/\/ ---- \u00daJ (v9.745): l\u00e9p\u00e9ses ind\u00edt\u00e1s (nyit\u00f3oldal, szint, avatar, m\u00f3d) ----\n        var $oldal = document.getElementById('staffix-aiaj-root');\n        var $welcome = document.getElementById('sfx-welcome');\n        var $wiz = document.getElementById('sfx-wiz');\n        var $sfxApp = document.getElementById('sfx-app');\n        var wizAktiv = false;\n        function wiz_csak(mit){\n            if ($welcome) $welcome.style.display = (mit === 'welcome') ? '' : 'none';\n            if ($wiz) $wiz.style.display = (mit === 'wiz') ? '' : 'none';\n            if ($sfxApp) $sfxApp.style.display = (mit === 'app') ? '' : 'none';\n            wizAktiv = (mit === 'wiz');\n            if ($oldal) $oldal.classList.remove('sfx-boot');\n        }\n        function wiz_gorgetes(){\n            try { var r = $oldal.getBoundingClientRect(); if (r.top < 0) window.scrollTo({top: window.pageYOffset + r.top - 10, behavior: 'smooth'}); } catch(e) {}\n        }\n        function wiz_elonezet(){\n            var el = document.getElementById('sfx-prev');\n            if (!el) return;\n            var p = partner_adat(partner);\n            el.innerHTML = '<div class=\"sz-fo\"><div class=\"kep\">' + te_kep(enLook) + '<\/div>' + szesc(SZ.te) + '<\/div><span class=\"sz-vs\">&#8596;<\/span>'\n                + '<div class=\"sz-fo\"><div class=\"kep\">' + partner_kep(p) + '<\/div>' + szesc(SZ['p_' + p.id] || p.id) + '<\/div>';\n        }\n        function wiz_szintkartyak(){\n            var el = document.getElementById('sfx-levels');\n            if (!el) return;\n            el.innerHTML = SZINTEK.map(function(k){\n                var cim = String(SZ['l' + k] || k).split('\u00b7'); var nev = (cim[1] || cim[0]).trim();\n                return '<div role=\"button\" tabindex=\"0\" class=\"sfx-card\" data-lvl=\"' + k + '\" aria-pressed=\"' + (szint === k) + '\"><i class=\"lvb l' + k + '\">' + szesc(k) + '<\/i><div><b>' + szesc(nev) + '<\/b><span>' + szesc(SZ['i' + k]) + '<\/span><\/div><\/div>';\n            }).join('');\n        }\n        function wiz_teszt_allapot(){\n            var v = document.getElementById('sfx-szint-valasztas');\n            if (v) v.style.display = tesztAllapot ? 'none' : '';\n        }\n        function wiz_pozchips(){\n            var el = document.getElementById('sfx-poz-chips');\n            if (!el || !$poz) return;\n            var h = '';\n            for (var i = 0; i < $poz.options.length; i++) {\n                var o = $poz.options[i];\n                if (!o.value) continue;\n                h += '<div role=\"button\" tabindex=\"0\" data-poz=\"' + szesc(o.value) + '\" aria-pressed=\"' + ($poz.value === o.value) + '\">' + szesc(o.text) + '<\/div>';\n            }\n            el.innerHTML = h;\n        }\n        function wiz_mutat(n){\n            wiz_csak('wiz');\n            var lepesek = $wiz.querySelectorAll('.sfx-step');\n            for (var i = 0; i < lepesek.length; i++) lepesek[i].style.display = (parseInt(lepesek[i].getAttribute('data-step'), 10) === n) ? '' : 'none';\n            var d = document.getElementById('sfx-dots');\n            if (d) d.innerHTML = [1,2,3].map(function(k){ return '<i class=\"' + (k <= n ? 'on' : '') + '\"><\/i>'; }).join('');\n            if (n === 1) { wiz_szintkartyak(); wiz_teszt_allapot(); }\n            if (n === 2) { szerk_rajz(); if ($avSzerk) $avSzerk.style.display = ''; wiz_elonezet(); }\n            if (n === 3) wiz_pozchips();\n            wiz_gorgetes();\n        }\n        function app_mutat(){\n            wiz_csak('app');\n            szint_rajz();\n            helyzet_rajz();\n            bar_rajz();\n            gyak_frissit();\n            wiz_gorgetes();\n        }\n        function wiz_tovabb_ha_aktiv(){ if (wizAktiv) wiz_mutat(2); }\n        function teszt_inditas(){\n            tesztAllapot = {i:0, ans:[], vege:false};\n            teszt_rajz(); wiz_teszt_allapot();\n        }\n        var $sfxStart = document.getElementById('sfx-start');\n        if ($sfxStart) $sfxStart.addEventListener('click', function(){ wiz_mutat(1); });\n        var $sfxTest = document.getElementById('sfx-start-test');\n        if ($sfxTest) $sfxTest.addEventListener('click', teszt_inditas);\n        var $sfxLv = document.getElementById('sfx-levels');\n        if ($sfxLv) $sfxLv.addEventListener('click', function(e){\n            var b = e.target.closest ? e.target.closest('[data-lvl]') : null;\n            if (!b) return;\n            szint = b.getAttribute('data-lvl');\n            szint_ment(); szint_rajz(); wiz_mutat(2);\n        });\n        if ($wiz) $wiz.addEventListener('click', function(e){\n            var b = e.target.closest ? e.target.closest('[role=\"button\"],button') : null;\n            if (!b) return;\n            var w = b.getAttribute('data-wiz');\n            if (w) { tesztAllapot = null; teszt_rajz(); wiz_mutat(parseInt(w, 10)); return; }\n            var pz = b.getAttribute('data-poz');\n            if (pz !== null && $poz) {\n                $poz.value = ($poz.value === pz) ? '' : pz;\n                wiz_pozchips();\n                try { $poz.dispatchEvent(new Event('change')); } catch(e2) {}\n                return;\n            }\n            var sm = b.getAttribute('data-startmod');\n            if (sm) {\n                var mb = document.querySelector('.staffix-aiaj-mod-btn[data-mod=\"' + sm + '\"]');\n                if (mb) mb.click();\n                kesz = true; szint_ment();\n                app_mutat();\n            }\n        });\n        var $sfxRe = document.getElementById('sfx-reopen');\n        if ($sfxRe) $sfxRe.addEventListener('click', function(){ if ($send.disabled) return; wiz_mutat(1); });\n\n        \/\/ ---- \u00daJ (v9.748): rendezettebb asszisztens-n\u00e9zet (helyzetv\u00e1laszt\u00f3, poz\u00edci\u00f3 a s\u00e1vban, \u00f6sszecsukott eszk\u00f6z\u00f6k) ----\n        var MUNKAHELYI = ['interju','elso_nap','fonok','vendeg','szabadnap','rosszullet','szunet','berlap','hibajelzes','telefon'];\n        var helyzetNyitva = false, helyzetCsoport = 'munka';\n        var $helyzet = document.getElementById('sfx-helyzet');\n        function helyzet_lista(){\n            var r = [];\n            if (!$szerep) return r;\n            for (var i = 0; i < $szerep.options.length; i++) { var o = $szerep.options[i]; if (o.value) r.push({k:o.value, t:o.text}); }\n            return r;\n        }\n        function helyzet_rajz(){\n            if (!$helyzet) return;\n            if (mod !== 'szerepjatek' || !$szerep) { $helyzet.style.display = 'none'; return; }\n            $helyzet.style.display = '';\n            var lista = helyzet_lista();\n            if ($szerep.value && !helyzetNyitva) {\n                var cim = '';\n                lista.forEach(function(x){ if (x.k === $szerep.value) cim = x.t; });\n                $helyzet.innerHTML = '<div class=\"sfx-sit-sum\"><span>' + szesc(SZ.helyzet) + ' <b>' + szesc(cim) + '<\/b><\/span><div role=\"button\" tabindex=\"0\" class=\"sfx-mini-btn\" data-sit-open=\"1\">' + szesc(SZ.masik) + '<\/div><\/div>';\n                return;\n            }\n            var mu = lista.filter(function(x){ return MUNKAHELYI.indexOf(x.k) > -1; });\n            var he = lista.filter(function(x){ return MUNKAHELYI.indexOf(x.k) < 0; });\n            function csoport(kulcs, cim, elemek){\n                return '<div class=\"acc' + (helyzetCsoport === kulcs ? ' open' : '') + '\"><div role=\"button\" tabindex=\"0\" class=\"acc-h\" data-sitgrp=\"' + kulcs + '\"><span class=\"acc-t\">' + szesc(cim) + '<\/span><span class=\"acc-v\">' + elemek.length + '<\/span><i class=\"acc-ch\"><\/i><\/div><div class=\"acc-b\"><div class=\"sfx-sit-grid\">'\n                    + elemek.map(function(x){ return '<div role=\"button\" tabindex=\"0\" class=\"sfx-sit\" data-sit=\"' + szesc(x.k) + '\">' + szesc(x.t) + '<\/div>'; }).join('') + '<\/div><\/div><\/div>';\n            }\n            $helyzet.innerHTML = '<div class=\"sfx-sit-fej\">' + szesc(SZ.valassz_helyzet) + '<\/div>' + csoport('munka', SZ.munkahelyi, mu) + csoport('mindennapi', SZ.mindennapi, he);\n        }\n        if ($helyzet) {\n            $helyzet.addEventListener('click', function(e){\n                var b = e.target.closest ? e.target.closest('[role=\"button\"]') : null;\n                if (!b) return;\n                if (b.getAttribute('data-sit-open')) { helyzetNyitva = true; helyzet_rajz(); return; }\n                var g = b.getAttribute('data-sitgrp');\n                if (g) { helyzetCsoport = (helyzetCsoport === g) ? '' : g; helyzet_rajz(); return; }\n                var k = b.getAttribute('data-sit');\n                if (k && $szerep && !$send.disabled) {\n                    $szerep.value = k; helyzetNyitva = false;\n                    try { $szerep.dispatchEvent(new Event('change')); } catch(e2) {}\n                    helyzet_rajz();\n                }\n            });\n        }\n        if ($gyorsSor) {\n            $gyorsSor.addEventListener('click', function(e){\n                var b = e.target.closest ? e.target.closest('button') : null;\n                if (b && b.getAttribute('data-uj') && !$send.disabled) { helyzetNyitva = true; helyzet_rajz(); }\n            });\n            \/\/ a hossz\u00fa s\u00fag\u00f3 \u00f6sszecsukva, k\u00e9r\u00e9sre ny\u00edlik\n            var tipp = $gyorsSor.querySelector('.staffix-aiaj-gyors-tipp');\n            if (tipp) {\n                var tg = document.createElement('div');\n                tg.setAttribute('role', 'button'); tg.setAttribute('tabindex', '0');\n                tg.className = 'sfx-tipp-toggle';\n                tg.textContent = SZ.elakadtal;\n                tg.addEventListener('click', function(){ $gyorsSor.classList.toggle('sfx-tip-open'); });\n                $gyorsSor.insertBefore(tg, tipp);\n            }\n        }\n        \/\/ eszk\u00f6z\u00f6k: csak az automatikus felolvas\u00e1s l\u00e1tszik, a t\u00f6bbi egy koppint\u00e1sra\n        var $beall = document.querySelector('.staffix-aiaj-beallitasok');\n        if ($beall) {\n            var autoL = $autoFelolvas ? $autoFelolvas.closest('label') : null;\n            if (autoL) autoL.classList.add('sfx-keep');\n            var mi = document.getElementById('staffix-aiaj-mic-info'); if (mi) mi.classList.add('sfx-keep');\n            var et = document.createElement('div');\n            et.setAttribute('role', 'button'); et.setAttribute('tabindex', '0');\n            et.className = 'sfx-eszk-toggle';\n            et.textContent = SZ.eszkozok;\n            et.addEventListener('click', function(){ $beall.classList.toggle('sfx-zart'); });\n            $beall.insertBefore(et, $beall.firstChild);\n            $beall.classList.add('sfx-zart');\n            \/\/ v9.761: a \"K\u00e9z n\u00e9lk\u00fcli m\u00f3d\" is a Tov\u00e1bbi eszk\u00f6z\u00f6k m\u00f6g\u00e9 ker\u00fcl (kevesebb zs\u00fafolts\u00e1g)\n            var kezSor = document.querySelector('.sfx-auto-sor');\n            if (kezSor) { $beall.insertBefore(kezSor, et.nextSibling); }\n        }\n        \/\/ poz\u00edci\u00f3 a fels\u0151 s\u00e1vban\n        var $barPoz = document.getElementById('sfx-bar-poz');\n        function bar_rajz(){\n            if (!$barPoz) return;\n            var t = ($poz && $poz.value && $poz.options[$poz.selectedIndex]) ? $poz.options[$poz.selectedIndex].text : '';\n            $barPoz.textContent = SZ.poz + ' ' + (t || SZ.nincs_megadva) + ' \u25be';\n        }\n        if ($barPoz) $barPoz.addEventListener('click', function(){ if (!$send.disabled) wiz_mutat(3); });\n        if ($poz) $poz.addEventListener('change', bar_rajz);\n        document.querySelectorAll('.staffix-aiaj-mod-btn').forEach(function(btn){ btn.addEventListener('click', helyzet_rajz); });\n\n        \/\/ Indul\u00e1s: \u00faj l\u00e1togat\u00f3 a nyit\u00f3oldalt l\u00e1tja, a visszat\u00e9r\u0151 egyenesen az asszisztenst.\n        \/\/ v9.834: aki m\u00e1r megvan a szintje (megcsin\u00e1lta a szintfelm\u00e9r\u0151t vagy kiv\u00e1lasztotta), azt nem k\u00e9rj\u00fck \u00fajra: egyenesen az\n        \/\/ asszisztens j\u00f6n. A szintet a \"Szint \u00e9s avatar\" gombbal b\u00e1rmikor \u00e1t lehet \u00e1ll\u00edtani vagy \u00fajra fel lehet m\u00e9rni.\n        \/\/ v9.852: a poz\u00edci\u00f3, a t\u00e9ma\/helyzet, a m\u00f3d \u00e9s a Szavak\/Mondatok\/Besz\u00e9lget\u00e9s f\u00fcl megmarad (pl. regisztr\u00e1ci\u00f3 ut\u00e1n is),\n        \/\/ \u00edgy nem kell \u00fajra kit\u00f6lteni. Csak a b\u00f6ng\u00e9sz\u0151ben t\u00e1rol\u00f3dik.\n        var VAL_KEY = 'staffix-aiaj-valasztas-v1';\n        function valasz_ment(){\n            try { localStorage.setItem(VAL_KEY, JSON.stringify({ poz: ($poz && $poz.value) || '', tema: ($tema && $tema.value) || '', szerep: ($szerep && $szerep.value) || '', mod: mod, gf: gyakFajta, t: Date.now() })); } catch(e) {}\n        }\n        [$poz, $tema, $szerep].forEach(function(el){ if (el) el.addEventListener('change', valasz_ment); });\n        document.querySelectorAll('.staffix-aiaj-mod-btn').forEach(function(btn){ btn.addEventListener('click', function(){ setTimeout(valasz_ment, 0); }); });\n        if ($gyakSeg) $gyakSeg.addEventListener('click', function(){ setTimeout(valasz_ment, 0); });\n        try {\n            var vj = JSON.parse(localStorage.getItem(VAL_KEY) || 'null');\n            if (vj && vj.t && (Date.now() - vj.t) < 30 * 86400000) {\n                var van_opcio = function(sel, v){ if (!sel || !v) return false; for (var oi = 0; oi < sel.options.length; oi++) { if (sel.options[oi].value === v) return true; } return false; };\n                if (van_opcio($poz, vj.poz)) $poz.value = vj.poz;\n                if (van_opcio($tema, vj.tema)) $tema.value = vj.tema;\n                if (van_opcio($szerep, vj.szerep)) $szerep.value = vj.szerep;\n                if (vj.gf === 'szavak' || vj.gf === 'mondatok' || vj.gf === 'beszelgetes') { gyakFajta = vj.gf; gyak_nezet(); }\n                if (vj.mod === 'szerepjatek' || vj.mod === 'tolmacsolas') {\n                    var vmb = document.querySelector('.staffix-aiaj-mod-btn[data-mod=\"' + vj.mod + '\"]');\n                    if (vmb) vmb.click();\n                }\n                try { bar_rajz(); } catch(e) {}\n            }\n        } catch(e) {}\n        if (szint) { kesz = true; app_mutat(); }\n        else if (\/[?&]szintfelmero=1\/.test(window.location.search)) { wiz_mutat(1); teszt_inditas(); }\n        else { wiz_csak('welcome'); }\n\n                var $rootKb = document.getElementById('staffix-aiaj-root');\n        if ($rootKb) $rootKb.addEventListener('keydown', function(e){\n            if ((e.key === 'Enter' || e.key === ' ') && e.target && e.target.getAttribute && e.target.getAttribute('role') === 'button') { e.preventDefault(); e.target.click(); }\n        });\n\n\/\/ ---- Fizet\u0151fal ----\n        \/\/ v9.847: Dorka-\u00e9rt\u00e9kel\u00e9s\n        var ertMutatva = false, ertCsillag = 0;\n        function ert_nyit(){\n            if (ertMutatva) return; ertMutatva = true;\n            var m = document.getElementById('staffix-aiaj-ert-modal'); if (m) m.style.display = 'flex';\n        }\n        (function(){\n            var m = document.getElementById('staffix-aiaj-ert-modal');\n            if (!m) return;\n            var cs = document.getElementById('staffix-aiaj-ert-csillagok');\n            var hiba = document.getElementById('staffix-aiaj-ert-hiba');\n            function rajz(n){ var sp = cs.querySelectorAll('span'); for (var i = 0; i < sp.length; i++) sp[i].style.color = (i < n) ? '#e0a000' : '#ddd'; }\n            cs.addEventListener('click', function(e){ var n = e.target && e.target.getAttribute && e.target.getAttribute('data-n'); if (n) { ertCsillag = parseInt(n, 10); rajz(ertCsillag); } });\n            function zar(elutasit){\n                m.style.display = 'none';\n                if (elutasit) {\n                    var fd = new FormData(); fd.append('action', 'staffix_ai_aj_ertekeles_kuld'); fd.append('nonce', CFG.nonce); fd.append('elutasit', '1');\n                    fetch(CFG.ajax_url, { method:'POST', credentials:'same-origin', body: fd }).catch(function(){});\n                }\n            }\n            document.getElementById('staffix-aiaj-ert-close').addEventListener('click', function(){ zar(false); });\n            document.getElementById('staffix-aiaj-ert-nem').addEventListener('click', function(){ zar(true); });\n            document.getElementById('staffix-aiaj-ert-kuld').addEventListener('click', function(){\n                if (!ertCsillag) { hiba.textContent = CFG.i18n.ert_valassz; hiba.style.display = 'block'; return; }\n                hiba.style.display = 'none';\n                var fd = new FormData();\n                fd.append('action', 'staffix_ai_aj_ertekeles_kuld'); fd.append('nonce', CFG.nonce);\n                fd.append('csillag', String(ertCsillag));\n                fd.append('szoveg', document.getElementById('staffix-aiaj-ert-szoveg').value);\n                if (document.getElementById('staffix-aiaj-ert-nev').checked) {\n                    fd.append('nev_ok', '1');\n                    fd.append('munka', ($poz && $poz.value && $poz.options[$poz.selectedIndex]) ? $poz.options[$poz.selectedIndex].text : '');\n                }\n                fetch(CFG.ajax_url, { method:'POST', credentials:'same-origin', body: fd })\n                    .then(sfxJson)\n                    .catch(function(){ return { success:false }; })\n                    .then(function(res){\n                        if (res && res.success) {\n                            document.getElementById('staffix-aiaj-ert-urlap').style.display = 'none';\n                            document.getElementById('staffix-aiaj-ert-koszi').style.display = 'block';\n                            if (res.data && res.data.google) { var a = document.getElementById('staffix-aiaj-ert-google'); a.href = res.data.google; document.getElementById('staffix-aiaj-ert-google-sor').style.display = 'block'; }\n                        } else { hiba.textContent = (res && res.data && res.data.message) ? res.data.message : CFG.i18n.hiba_altalanos; hiba.style.display = 'block'; }\n                    });\n            });\n        })();\n        function reg_nyit(uzenet){\n            var m = document.getElementById('staffix-aiaj-reg-modal');\n            var sz = document.getElementById('staffix-aiaj-reg-szov');\n            if (sz) sz.textContent = uzenet || CFG.i18n.reg_szov;\n            if (m) m.style.display = 'flex';\n        }\n        function fal_nyit(d){\n            if (d && d.regisztracio) reg_nyit(d.message); else nyisd_meg_fizetofalat(d ? d.message : '');\n        }\n        (function(){\n            var m = document.getElementById('staffix-aiaj-reg-modal');\n            var x = document.getElementById('staffix-aiaj-reg-close');\n            if (m && x) x.addEventListener('click', function(){ m.style.display = 'none'; });\n        })();\n        function nyisd_meg_fizetofalat(uzenet){\n            $modalSzov.textContent = uzenet || '';\n            $modalHiba.style.display = 'none';\n            $modal.style.display = 'flex';\n        }\n        $modalClose.addEventListener('click', function(){ $modal.style.display = 'none'; });\n        var $csomagLink = document.getElementById('staffix-aiaj-csomag-link');\n        if ($csomagLink) { $csomagLink.addEventListener('click', function(){\n            var sz = document.getElementById('staffix-aiaj-statusz');\n            if (!CFG.logged_in && !(sz && sz.getAttribute('data-mod') === 'alap')) { reg_nyit(''); return; }\n            nyisd_meg_fizetofalat('');\n        }); }\n\n        \/\/ v9.833: telefonon az email-mez\u0151 \u00e9s a jel\u00f6l\u0151n\u00e9gyzet a csomagok alatt van, \u00e9s nem l\u00e1tszott, hogy ott m\u00e9g teend\u0151 van.\n        \/\/ Csomag v\u00e1laszt\u00e1sakor a n\u00e9zet oda ugrik, a hi\u00e1nyz\u00f3 mez\u0151 kiemel\u0151dik, \u00e9s a hiba\u00fczenet is ott jelenik meg.\n        \/\/ v9.835: a csomag alatt, az email \u00e9s a jel\u00f6l\u0151n\u00e9gyzet ut\u00e1n k\u00fcl\u00f6n \"Tov\u00e1bb a fizet\u00e9shez\" gomb van, \u00edgy nem kell visszag\u00f6rgetni a\n        \/\/ csomaghoz (telefonon ott maradt a hiba\u00fczenet, \u00e9s nem l\u00e1tszott, hogy a \"Ezt v\u00e1lasztom\" gombot \u00fajra meg kell nyomni).\n        var $fizetBtn = document.getElementById('staffix-aiaj-fizet-btn');\n        if ($fizetBtn) $fizetBtn.addEventListener('click', function(){\n            if (!kivalasztottCsomag) {\n                $modalHiba.textContent = CFG.i18n.kell_csomag || 'El\u0151sz\u00f6r v\u00e1lassz egy csomagot.';\n                $modalHiba.style.display = 'block';\n                var elso = document.querySelector('.staffix-aiaj-csomag-kartya');\n                if (elso && elso.scrollIntoView) { try { elso.scrollIntoView({ behavior: 'smooth', block: 'start' }); } catch(e) {} }\n                return;\n            }\n            var cb = document.querySelector('.staffix-aiaj-csomag-btn[data-csomag=\"' + kivalasztottCsomag + '\"]');\n            if (cb) cb.click();\n        });\n        \/\/ a hiba\u00fczenet t\u0171nj\u00f6n el, amint a hi\u00e1nyz\u00f3 adat p\u00f3tolva van\n        function hiba_frissit(){\n            if ($modalHiba.style.display === 'none') return;\n            var emailOk = CFG.logged_in || ($email && $email.value && $email.value.indexOf('@') > -1);\n            if (emailOk && $elallas.checked) $modalHiba.style.display = 'none';\n        }\n        if ($email) { $email.addEventListener('input', hiba_frissit); $email.addEventListener('change', hiba_frissit); }\n        if ($elallas) $elallas.addEventListener('change', hiba_frissit);\n        function hiany_ugras(el, uzenet){\n            $modalHiba.textContent = uzenet;\n            $modalHiba.style.display = 'block';\n            var sor = el && el.closest ? (el.closest('.staffix-aiaj-email-sor, .staffix-aiaj-elallas-sor') || el) : el;\n            if (!sor) return;\n            try { sor.scrollIntoView({ behavior: 'smooth', block: 'center' }); } catch(e) { try { sor.scrollIntoView(); } catch(e2) {} }\n            sor.style.transition = 'box-shadow .3s, background .3s';\n            sor.style.boxShadow = '0 0 0 3px #e0567f';\n            sor.style.borderRadius = '10px';\n            sor.style.background = '#fff4f8';\n            setTimeout(function(){ sor.style.boxShadow = ''; sor.style.background = ''; }, 2600);\n            if (el && el.focus && el.type === 'email') { setTimeout(function(){ try { el.focus({ preventScroll: true }); } catch(e) {} }, 350); }\n        }\n        document.querySelectorAll('.staffix-aiaj-csomag-btn').forEach(function(btn){\n            btn.addEventListener('click', function(){\n                kivalasztottCsomag = btn.getAttribute('data-csomag');\n                $modalHiba.style.display = 'none';\n                document.querySelectorAll('.staffix-aiaj-csomag-kartya').forEach(function(k){ k.style.outline = (k.getAttribute('data-csomag') === kivalasztottCsomag) ? '3px solid #e0567f' : ''; });\n\n                if (!CFG.logged_in && (!$email || !$email.value || $email.value.indexOf('@') === -1)) {\n                    hiany_ugras($email, CFG.i18n.kell_email);\n                    return;\n                }\n                if (!$elallas.checked) {\n                    hiany_ugras($elallas, CFG.i18n.kell_elallas);\n                    return;\n                }\n\n                btn.disabled = true;\n                btn.textContent = CFG.i18n.fizetes_folyamatban;\n\n                var fd = new FormData();\n                fd.append('action', 'staffix_ai_aj_create_checkout');\n                fd.append('nonce', CFG.nonce);\n                fd.append('csomag', kivalasztottCsomag);\n                fd.append('withdrawal_consent', '1');\n                if (!CFG.logged_in) fd.append('email', $email.value);\n\n                fetch(CFG.ajax_url, { method:'POST', credentials:'same-origin', body: fd })\n                    .then(sfxJson)\n                    .then(function(res){\n                        if (res.success && res.data && res.data.checkout_url) {\n                            window.location.href = res.data.checkout_url;\n                        } else {\n                            btn.disabled = false;\n                            btn.textContent = CFG.i18n.hiba_altalanos;\n                            $modalHiba.textContent = (res.data && res.data.message) ? res.data.message : CFG.i18n.hiba_altalanos;\n                            $modalHiba.style.display = 'block';\n                        }\n                    })\n                    .catch(function(){\n                        btn.disabled = false;\n                        $modalHiba.textContent = CFG.i18n.hiba_altalanos;\n                        $modalHiba.style.display = 'block';\n                    });\n            });\n        });\n\n        \/\/ ---- v9.839: csomag vissza\u00e1ll\u00edt\u00e1sa e-mailben ----\n        (function(){\n            var nyit = document.getElementById('staffix-aiaj-vissza-nyit');\n            var doboz = document.getElementById('staffix-aiaj-vissza-doboz');\n            var kuld = document.getElementById('staffix-aiaj-vissza-kuld');\n            var mail = document.getElementById('staffix-aiaj-vissza-email');\n            var uz = document.getElementById('staffix-aiaj-vissza-uzenet');\n            if (nyit && doboz) nyit.addEventListener('click', function(){ doboz.style.display = (doboz.style.display === 'none' ? 'block' : 'none'); });\n            if (kuld && mail && uz) kuld.addEventListener('click', function(){\n                kuld.disabled = true; uz.textContent = '\u2026';\n                var fd = new FormData();\n                fd.append('action', 'staffix_ai_aj_visszaallit');\n                fd.append('nonce', CFG.nonce);\n                fd.append('email', mail.value);\n                fetch(CFG.ajax_url, { method:'POST', credentials:'same-origin', body: fd })\n                    .then(sfxJson)\n                    .catch(function(){ return { success:false, data:{ message: CFG.i18n.hiba_altalanos } }; })\n                    .then(function(res){ kuld.disabled = false; uz.textContent = (res.data && res.data.message) ? res.data.message : CFG.i18n.hiba_altalanos; });\n            });\n            var adm = document.getElementById('staffix-aiaj-admin-jovairas');\n            if (adm) adm.addEventListener('click', function(){\n                adm.disabled = true;\n                var fd = new FormData();\n                fd.append('action', 'staffix_ai_aj_admin_jovairas');\n                fd.append('nonce', CFG.nonce);\n                if (mail && mail.value) fd.append('email', mail.value);\n                fetch(CFG.ajax_url, { method:'POST', credentials:'same-origin', body: fd })\n                    .then(sfxJson)\n                    .catch(function(){ return { success:false }; })\n                    .then(function(res){\n                        adm.disabled = false;\n                        if (res && res.success && typeof res.data.email_kuldve !== 'undefined') { if (uz) uz.textContent = res.data.email_kuldve ? 'J\u00f3v\u00e1\u00edrva, a linket elk\u00fcldtem a megadott e-mailre - nyisd meg a telefonon.' : 'J\u00f3v\u00e1\u00edrva, de a lev\u00e9l nem ment el.'; }\n                        else if (res && res.success) { statusz_frissit(res.data.statusz); if (uz) uz.textContent = 'J\u00f3v\u00e1\u00edrva.'; }\n                        else if (uz) uz.textContent = CFG.i18n.hiba_altalanos;\n                    });\n            });\n            try {\n                var q = new URLSearchParams(window.location.search);\n                if (q.get('aiaj_vissza') === '1') { setTimeout(function(){ bubi(CFG.i18n.vissza_ok, 'sys'); }, 300); }\n                else if (q.get('aiaj_vissza') === '0') { setTimeout(function(){ bubi(CFG.i18n.vissza_nincs, 'sys'); }, 300); }\n            } catch(e) {}\n        })();\n\n        \/\/ ---- Visszat\u00e9r\u00e9s a Stripe-fizet\u00e9sb\u0151l ----\n        (function(){\n            var params = new URLSearchParams(window.location.search);\n            if (params.get('aiaj_paid') === '1' && params.get('aiaj_token') && params.get('session_id')) {\n                var fd = new FormData();\n                fd.append('action', 'staffix_ai_aj_finalize');\n                fd.append('nonce', CFG.nonce);\n                fd.append('token', params.get('aiaj_token'));\n                fd.append('session_id', params.get('session_id'));\n                fetch(CFG.ajax_url, { method:'POST', credentials:'same-origin', body: fd })\n                    .then(sfxJson)\n                    .catch(function(){ return { success: false, data: { message: CFG.i18n.hiba_altalanos } }; })\n                    .then(function(res){\n                        fizetes_visszateres = false;\n                        $modal.style.display = 'none';\n                        if (res.success) {\n                            if (res.data) statusz_frissit(res.data.statusz);\n                            bubi(CFG.i18n.siker_csomag, 'sys');\n                        } else {\n                            bubi((res.data && res.data.message) ? res.data.message : CFG.i18n.hiba_altalanos, 'sys');\n                        }\n                        var url = new URL(window.location.href);\n                        url.searchParams.delete('aiaj_paid');\n                        url.searchParams.delete('aiaj_token');\n                        url.searchParams.delete('session_id');\n                        window.history.replaceState({}, '', url.toString());\n                    });\n            } else if (params.get('aiaj_cancelled') === '1') {\n                var url2 = new URL(window.location.href);\n                url2.searchParams.delete('aiaj_cancelled');\n                window.history.replaceState({}, '', url2.toString());\n            }\n        })();\n\n        $pozSor.style.display = (mod === 'gyakorlas') ? '' : 'none';\n        if ($temaSor) $temaSor.style.display = (mod === 'gyakorlas') ? '' : 'none';\n        if ($ujSzavak) $ujSzavak.style.display = (mod === 'gyakorlas') ? '' : 'none';\n        frissit_mic_nyelv_sor();\n        \/\/ \u00daJ (v9.713): ha a felhaszn\u00e1l\u00f3nak m\u00e1r alap\u00e9rtelmezetten be van\n        \/\/ \u00e1ll\u00edtva egy poz\u00edci\u00f3 (pl. a profilj\u00e1b\u00f3l), a lecke MAG\u00c1T\u00d3L elindul,\n        \/\/ an\u00e9lk\u00fcl, hogy neki kellene el\u0151sz\u00f6r valamit be\u00edrnia.\n        automatikus_inditas();\n    })();\n    <\/script>\n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":"","_members_access_role":[],"_members_access_error":""},"class_list":["post-2215","page","type-page","status-publish","hentry"],"acf":[],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/stafforex.eu\/de\/wp-json\/wp\/v2\/pages\/2215","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stafforex.eu\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/stafforex.eu\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/stafforex.eu\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stafforex.eu\/de\/wp-json\/wp\/v2\/comments?post=2215"}],"version-history":[{"count":1,"href":"https:\/\/stafforex.eu\/de\/wp-json\/wp\/v2\/pages\/2215\/revisions"}],"predecessor-version":[{"id":2216,"href":"https:\/\/stafforex.eu\/de\/wp-json\/wp\/v2\/pages\/2215\/revisions\/2216"}],"wp:attachment":[{"href":"https:\/\/stafforex.eu\/de\/wp-json\/wp\/v2\/media?parent=2215"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}