{"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\/en\/nyelvi-asszisztens\/","title":{"rendered":"Nyelvi-asszisztens"},"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\">\u00daJ \u00b7 TESZT\u00dcZEM<\/span>\n            <h1 class=\"staffix-aiaj-cim\">Dorka \u2013 a STAFFOREX nyelvi asszisztens<\/h1>\n            <p class=\"staffix-aiaj-alcim\">Tanulj n\u00e9met\u00fcl a saj\u00e1t poz\u00edci\u00f3dra \u00e9s a k\u00fclf\u00f6ldi \u00e9letre k\u00e9sz\u00fclve: az asszisztens megtan\u00edtja a fontos szavakat \u00e9s mondatokat, kimondja \u0151ket, kijav\u00edtja a ti\u00e9idet, \u00e9s magyarul elmagyar\u00e1z. A Szerepj\u00e1t\u00e9kban v\u00e9gigj\u00e1tszhatod a val\u00f3s helyzeteket (pl. \u00e1ll\u00e1sinterj\u00fa, els\u0151 munkanap, orvos). A Tolm\u00e1csol\u00e1s f\u00fcl\u00f6n t\u00e1j\u00e9koztat\u00f3 jelleggel leford\u00edtja, amit mondani szeretn\u00e9l, \u00e9s magyarra, amit hallasz. Szerz\u0151d\u00e9shez, hivatalos vagy orvosi \u00fcgyh\u00f6z k\u00e9rj hivatalos tolm\u00e1csot.<\/p>\n                        <p class=\"staffix-aiaj-teszt-jelzes\"><strong>Tesztel\u00e9s \u00e9s fejleszt\u00e9s alatt:<\/strong> az asszisztens m\u00e9g nem stabil, el\u0151fordulhatnak hib\u00e1k vagy pontatlan v\u00e1laszok. A visszajelz\u00e9sed seg\u00edt a fejleszt\u00e9sben.<\/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\">\u00daJ \u00b7 TESZT\u00dcZEM<\/span>\n            <h1 style=\"color:#fff !important;-webkit-text-fill-color:#fff !important;background:none !important;\">Tanulj n\u00e9met\u00fcl Dork\u00e1val<\/h1>\n            <p class=\"sfx-lead\">Null\u00e1r\u00f3l is. R\u00f6vid mondatok, magyar magyar\u00e1zat, hang \u00e9s szerepj\u00e1t\u00e9k, pont az, ami a sz\u00e1llod\u00e1ban, \u00e9tteremben vagy a k\u00fclf\u00f6ldi h\u00e9tk\u00f6znapokban kell.<\/p>\n            <ul class=\"sfx-feat\">\n                <li>Szintfelm\u00e9r\u0151: megtudod, hol kezdj<\/li>\n                <li>A saj\u00e1t munk\u00e1dra szabva: mosogat\u00f3, konyha, szobal\u00e1ny, takar\u00edt\u00e1s, felszolg\u00e1l\u00e1s<\/li>\n                <li>20 szerepj\u00e1t\u00e9k: \u00e1ll\u00e1sinterj\u00fa, els\u0151 munkanap, bolt, hivatal, orvos \u00e9s m\u00e9g t\u00f6bb<\/li>\n                <li>Saj\u00e1t avatar, Dorka st\u00edlusa, hangos felolvas\u00e1s, tolm\u00e1cs<\/li>\n            <\/ul>\n            <div role=\"button\" tabindex=\"0\" class=\"sfx-big\" id=\"sfx-start\">Kezdj\u00fck &rarr;<\/div>\n            <p class=\"sfx-fine\">Ingyen kipr\u00f3b\u00e1lhatod, regisztr\u00e1ci\u00f3 n\u00e9lk\u00fcl is.<\/p>\n            <p class=\"sfx-fine sfx-note\">Tesztel\u00e9s alatt: az asszisztens m\u00e9g nem stabil, el\u0151fordulhatnak hib\u00e1k. A visszajelz\u00e9sed seg\u00edt. A ford\u00edt\u00e1s t\u00e1j\u00e9koztat\u00f3 jelleg\u0171, szerz\u0151d\u00e9shez, hivatalos vagy orvosi \u00fcgyh\u00f6z k\u00e9rj hivatalos tolm\u00e1csot.<\/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>Hol tartasz n\u00e9metb\u0151l?<\/h2>\n                        <p class=\"sfx-sub\">Ha egy sz\u00f3t sem tudsz, az is rendben van.<\/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>Szintfelm\u00e9r\u0151 (1 perc)<\/b>\n                        <span>10 r\u00f6vid k\u00e9rd\u00e9s, koppint\u00e1ssal. Megmondja, hol kezdj. Aj\u00e1nlott.<\/span>\n                    <\/div>\n                    <p class=\"sfx-vagy\">Vagy v\u00e1laszd ki magad:<\/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>Te \u00e9s Dorka<\/h2>\n                <p class=\"sfx-sub\">\u00c1ll\u00edtsd be, hogyan n\u00e9zel ki, \u00e9s v\u00e1laszd ki, kivel besz\u00e9lgess a szerepj\u00e1t\u00e9kban.<\/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\">Vissza<\/div><div role=\"button\" tabindex=\"0\" class=\"sfx-big sfx-next\" data-wiz=\"3\">Tov\u00e1bb &rarr;<\/div><\/div>\n            <\/div>\n\n            <div class=\"sfx-step\" data-step=\"3\" style=\"display:none;\">\n                <h2>Mit szeretn\u00e9l most?<\/h2>\n                <p class=\"sfx-sub\">Milyen munk\u00e1ra k\u00e9sz\u00fclsz? (nem k\u00f6telez\u0151)<\/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>Gyakorl\u00e1s<\/b><span>Szavak \u00e9s mondatok tanul\u00e1sa, jav\u00edt\u00e1ssal, felolvas\u00e1ssal.<\/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>Szerepj\u00e1t\u00e9k<\/b><span>Val\u00f3s helyzetek v\u00e9gigj\u00e1tsz\u00e1sa: interj\u00fa, els\u0151 nap, bolt, hivatal, orvos.<\/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>Tolm\u00e1csol\u00e1s<\/b><span>Magyarr\u00f3l n\u00e9metre \u00e9s n\u00e9metr\u0151l magyarra, hangr\u00f3l is.<\/span><\/div><\/div>\n                <\/div>\n                <div class=\"sfx-nav\"><div role=\"button\" tabindex=\"0\" class=\"sfx-back\" data-wiz=\"2\">Vissza<\/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>Szint: <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\">Szint \u00e9s 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 Gyakorl\u00e1s<\/div>\n            <div role=\"button\" tabindex=\"0\" class=\"staffix-aiaj-mod-btn\" data-mod=\"szerepjatek\">Szerepj\u00e1t\u00e9k<\/div>\n            <div role=\"button\" tabindex=\"0\" class=\"staffix-aiaj-mod-btn\" data-mod=\"tolmacsolas\">\ud83c\udf10 Tolm\u00e1csol\u00e1s \u2b50 Pr\u00e9mium<\/div>\n        <\/div>\n\n        <div class=\"staffix-aiaj-pozicio-sor\" id=\"staffix-aiaj-pozicio-sor\">\n            <label for=\"staffix-aiaj-pozicio\">Poz\u00edci\u00f3, amire gyakorolsz:<\/label>\n            <select id=\"staffix-aiaj-pozicio\">\n                <option value=\"\">(v\u00e1lassz poz\u00edci\u00f3t)<\/option>\n                                    <option value=\"Konyha\" >Konyha<\/option>\n                                    <option value=\"Housekeeping \/ Takar\u00edt\u00e1s\" >Housekeeping \/ Takar\u00edt\u00e1s<\/option>\n                                    <option value=\"Kellner (felszolg\u00e1l\u00f3)\" >Kellner (felszolg\u00e1l\u00f3)<\/option>\n                                    <option value=\"Mosogat\u00f3\" >Mosogat\u00f3<\/option>\n                                    <option value=\"\u00c1ltal\u00e1nos tudnival\u00f3k\" >\u00c1ltal\u00e1nos tudnival\u00f3k<\/option>\n                            <\/select>\n        <\/div>\n\n                <div class=\"staffix-aiaj-pozicio-sor\" id=\"staffix-aiaj-tema-sor\">\n            <label for=\"staffix-aiaj-tema\">Mit szeretn\u00e9l tanulni:<\/label>\n            <select id=\"staffix-aiaj-tema\">\n                <option value=\"\">(v\u00e1lassz t\u00e9m\u00e1t)<\/option>\n                                    <option value=\"bemutatkozas\">Bemutatkoz\u00e1s, ismerked\u00e9s<\/option>\n                                    <option value=\"utazas\">Utaz\u00e1s<\/option>\n                                    <option value=\"erkezes\">Meg\u00e9rkez\u00e9s, els\u0151 munkanap<\/option>\n                                    <option value=\"munka\">A munk\u00e1m feladatai<\/option>\n                                    <option value=\"vendeg\">Vend\u00e9gekkel besz\u00e9lget\u00e9s<\/option>\n                                    <option value=\"fonok\">F\u0151n\u00f6kkel, koll\u00e9g\u00e1kkal<\/option>\n                                    <option value=\"munkarend\">Munkarend, fizet\u00e9s, szerz\u0151d\u00e9s<\/option>\n                                    <option value=\"szallas\">Lak\u00e1s, sz\u00e1ll\u00e1s<\/option>\n                                    <option value=\"bevasarlas\">Bev\u00e1s\u00e1rl\u00e1s, \u00e9tkez\u00e9s<\/option>\n                                    <option value=\"kozlekedes\">K\u00f6zleked\u00e9s, \u00fatbaigaz\u00edt\u00e1s<\/option>\n                                    <option value=\"hivatal\">Hivatalos \u00fcgyek<\/option>\n                                    <option value=\"orvos\">Orvos, eg\u00e9szs\u00e9g, v\u00e9szhelyzet<\/option>\n                                    <option value=\"szamok\">Sz\u00e1mok, id\u0151, napok<\/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\">Szavak<\/div>\n            <div role=\"button\" tabindex=\"0\" class=\"sfx-seg-b\" data-gf=\"mondatok\">Mondatok<\/div>\n            <div role=\"button\" tabindex=\"0\" class=\"sfx-seg-b\" data-gf=\"beszelgetes\">Besz\u00e9lget\u00e9s<\/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\">Melyik helyzetet gyakoroljuk:<\/label>\n            <select id=\"staffix-aiaj-szerep\">\n                <option value=\"\">(v\u00e1lassz helyzetet)<\/option>\n                                    <option value=\"interju\">\u00c1ll\u00e1sinterj\u00fa<\/option>\n                                    <option value=\"elso_nap\">Els\u0151 munkanap<\/option>\n                                    <option value=\"fonok\">Besz\u00e9lget\u00e9s a f\u0151n\u00f6kkel<\/option>\n                                    <option value=\"vendeg\">Vend\u00e9g vagy koll\u00e9ga k\u00e9r\u00e9se<\/option>\n                                    <option value=\"szabadnap\">Szabadnap k\u00e9r\u00e9se<\/option>\n                                    <option value=\"rosszullet\">Rosszull\u00e9t vagy baleset jelz\u00e9se<\/option>\n                                    <option value=\"szunet\">Sz\u00fcnet a koll\u00e9g\u00e1kkal<\/option>\n                                    <option value=\"berlap\">Munkaid\u0151 \u00e9s b\u00e9rlap<\/option>\n                                    <option value=\"hibajelzes\">Hiba vagy t\u00f6r\u00e9s jelz\u00e9se<\/option>\n                                    <option value=\"bank\">Bankban (sz\u00e1mlanyit\u00e1s)<\/option>\n                                    <option value=\"gyogyszertar\">Gy\u00f3gyszert\u00e1rban<\/option>\n                                    <option value=\"etterem\">\u00c9tteremben rendel\u00e9s<\/option>\n                                    <option value=\"utbaigazitas\">\u00datbaigaz\u00edt\u00e1s k\u00e9r\u00e9se<\/option>\n                                    <option value=\"jegy\">Jegyv\u00e1s\u00e1rl\u00e1s (vonat, busz)<\/option>\n                                    <option value=\"telefon\">Telefon: beteg vagyok<\/option>\n                                    <option value=\"szallas\">Lak\u00e1s, sz\u00e1ll\u00e1s kiv\u00e9tele<\/option>\n                                    <option value=\"bolt\">Bev\u00e1s\u00e1rl\u00e1s a boltban<\/option>\n                                    <option value=\"orvos\">Orvosn\u00e1l<\/option>\n                                    <option value=\"hivatal\">Hivatalban (lakc\u00edmbejelent\u00e9s)<\/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=\"\u00cdrj, vagy nyomd meg a mikrofont\u2026\"><\/textarea>\n                        <button type=\"button\" class=\"staffix-aiaj-mic-btn\" id=\"staffix-aiaj-mic-btn\" data-nyelv=\"hu\" title=\"Besz\u00e9lj bele magyarul\" aria-label=\"Besz\u00e9lj bele magyarul\">\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\">Magyar<\/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=\"Besz\u00e9lj bele n\u00e9met\u00fcl\" aria-label=\"Besz\u00e9lj bele n\u00e9met\u00fcl\">\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\">N\u00e9met<\/span><span class=\"mic-rovid\">DE<\/span><\/span>\n            <\/button>\n            <button type=\"button\" class=\"staffix-aiaj-send-btn\" id=\"staffix-aiaj-send-btn\">K\u00fcld\u00e9s<\/button>\n        <\/div>\n\n        <div class=\"sfx-auto-sor\">\n            <label class=\"staffix-aiaj-felolvasas-toggle sfx-auto-toggle\" title=\"Az asszisztens ut\u00e1n automatikusan hallgat, \u00e9s elk\u00fcldi, amit mondasz.\">\n                <input type=\"checkbox\" id=\"staffix-aiaj-kez-nelkul\" \/>\n                K\u00e9z n\u00e9lk\u00fcli m\u00f3d            <\/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                Nem tudsz n\u00e9met\u00fcl? Semmi baj! Elakadt\u00e1l, vagy nem \u00e9rted, mit mondott? K\u00e9rdezz nyugodtan MAGYARUL: \u00edrd be, vagy nyomd meg a \u201eMagyar\u201d mikrofont \u00e9s mondd ki, \u00e9s a karakter magyarul megseg\u00edt, megmondja a n\u00e9met mondatot is. N\u00e9met\u00fcl a \u201eN\u00e9met\u201d mikrofonnal v\u00e1laszolhatsz.            <\/p>\n            <button type=\"button\" data-meta=\"ismetel\">Ism\u00e9teld meg<\/button>\n            <button type=\"button\" data-meta=\"lassabban\">Lassabban, egyszer\u0171bben<\/button>\n            <button type=\"button\" data-meta=\"magyarul\">Magyarul magyar\u00e1zd el<\/button>\n            <button type=\"button\" data-meta=\"opciok\">Mit v\u00e1laszolhatok?<\/button>\n            <button type=\"button\" data-uj=\"1\" class=\"gyors-uj\">\u00daj jelenet<\/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                Automatikus felolvas\u00e1s n\u00e9met\u00fcl            <\/label>\n                        <button type=\"button\" class=\"staffix-aiaj-uj-szavak-btn\" id=\"staffix-aiaj-uj-szavak-btn\">\ud83d\udd04 \u00daj szavak<\/button>\n            <button type=\"button\" class=\"staffix-aiaj-uj-szavak-btn\" id=\"staffix-aiaj-szotar-btn\">50 alapsz\u00f3 a poz\u00edci\u00f3dhoz<\/button>\n            <button type=\"button\" class=\"staffix-aiaj-uj-szavak-btn\" id=\"staffix-aiaj-kviz-btn\">Napi kv\u00edz<\/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\">Ingyen kipr\u00f3b\u00e1lhatod.<\/span>\n            <button type=\"button\" class=\"staffix-aiaj-csomag-link\" id=\"staffix-aiaj-csomag-link\">Csomagok \u00e9s \u00e1rak megtekint\u00e9se<\/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\">M\u00e1r fizett\u00e9l, de nem l\u00e1tod a csomagod?<\/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=\"A v\u00e1s\u00e1rl\u00e1skor megadott e-mail\" 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 k\u00fcld\u00e9se<\/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\">Az asszisztens tanul\u00e1st seg\u00edt, a ford\u00edt\u00e1s t\u00e1j\u00e9koztat\u00f3 jelleg\u0171. Szerz\u0151d\u00e9shez, hivatalos vagy orvosi \u00fcgyh\u00f6z k\u00e9rj hivatalos tolm\u00e1csot.<\/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;\">Hogy tetszik Dorka?<\/h2>\n                <p class=\"staffix-aiaj-modal-szov\">Mindj\u00e1rt elfogynak az ingyenes \u00fczeneteid. Seg\u00edt, ha \u00e9rt\u00e9keled, kb. 10 m\u00e1sodperc.<\/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=\"Mi tetszett, min jav\u00edtsunk? (nem k\u00f6telez\u0151)\" 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\"> Beleegyezem, hogy a keresztnevem \u00e9s a munkak\u00f6rem megjelenjen a v\u00e9lem\u00e9nyem mellett (nem k\u00f6telez\u0151).<\/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%;\">\u00c9rt\u00e9kel\u00e9s elk\u00fcld\u00e9se<\/button>\n                <p style=\"margin:10px 0 0;\"><button type=\"button\" class=\"staffix-aiaj-csomag-link\" id=\"staffix-aiaj-ert-nem\">Most nem<\/button><\/p>\n            <\/div>\n            <div id=\"staffix-aiaj-ert-koszi\" style=\"display:none;\">\n                <h2 style=\"padding-right:0;\">K\u00f6sz\u00f6nj\u00fck!<\/h2>\n                <p class=\"staffix-aiaj-modal-szov\">Az \u00e9rt\u00e9kel\u00e9sed sokat seg\u00edt, hogy m\u00e1sokhoz is eljusson Dorka.<\/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;\">\u00cdrj r\u00f3lunk a Google-\u00f6n is \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;\">Folytassuk regisztr\u00e1ci\u00f3val!<\/h2>\n            <p class=\"staffix-aiaj-modal-szov\" id=\"staffix-aiaj-reg-szov\">Tetszik? Regisztr\u00e1lj ingyen, \u00e9s kapsz m\u00e9g 15 \u00fczenetet. P\u00e1r perc az eg\u00e9sz, \u00e9s a halad\u00e1sod minden eszk\u00f6z\u00f6n megmarad.<\/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\/en\/munkavallaloi-regisztracio\/?vissza=nyelvi\">Ingyenes regisztr\u00e1ci\u00f3<\/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%2Fen%2Fnyelvi-asszisztens%2F&#038;wp_lang=hu_HU\" style=\"color:#a01348;font-weight:700;\">M\u00e1r van fi\u00f3kom, bel\u00e9pek<\/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>V\u00e1lassz csomagot a folytat\u00e1shoz<\/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;\">Az asszisztens tesztel\u00e9s \u00e9s fejleszt\u00e9s alatt \u00e1ll, m\u00e9g nem stabil, ez\u00e9rt el\u0151fordulhatnak hib\u00e1k.<\/p>\n\n                        <p class=\"staffix-aiaj-kedvezmeny-sor staffix-aiaj-kedvezmeny-info\">\ud83d\udca1 Tipp: ha munkav\u00e1llal\u00f3k\u00e9nt regisztr\u00e1lsz \u00e9s a profilodat 100%-ra kit\u00f6lt\u00f6d, 20% kedvezm\u00e9nyt kapsz mindk\u00e9t csomagra.<\/p>\n            \n            <div class=\"staffix-aiaj-csomagok\">\n                <div class=\"staffix-aiaj-csomag-kartya\" data-csomag=\"alap\">\n                    <h3>Alap csomag<\/h3>\n                    <p class=\"staffix-aiaj-csomag-leiras\">100 \u00fczenet, nincs lej\u00e1rat, egyszeri v\u00e1s\u00e1rl\u00e1s<\/p>\n                    <ul class=\"staffix-aiaj-csomag-lista\">\n                        <li><strong>Mit kapsz:<\/strong> 100 \u00fczenet. Nem j\u00e1r le, akkor haszn\u00e1lod fel, amikor akarod.<\/li>\n                        <li><strong>Mire val\u00f3:<\/strong> A saj\u00e1t poz\u00edci\u00f3d legfontosabb szavainak \u00e9s mondatainak megtanul\u00e1s\u00e1ra (pl. bemutatkoz\u00e1s, els\u0151 munkanap), vagy ha n\u00e9ha tolm\u00e1csra van sz\u00fcks\u00e9ged.<\/li>\n                        <li><strong>Kinek aj\u00e1nljuk:<\/strong> Ha m\u00e9g nem tudod, mennyit fogsz haszn\u00e1lni, kev\u00e9s id\u0151d van, vagy csak az alapokat szeretn\u00e9d megtanulni. Az ingyenes \u00fczenetek csak \u00edzel\u00edt\u0151k, az Alap 100 \u00fczenetet ad.<\/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\">Ezt v\u00e1lasztom<\/button>\n                <\/div>\n                <div class=\"staffix-aiaj-csomag-kartya staffix-aiaj-csomag-kiemelt\" data-csomag=\"premium\">\n                    <span class=\"staffix-aiaj-csomag-eyebrow\">Legjobb \u00e1r-\u00e9rt\u00e9k<\/span>\n                    <h3>Pr\u00e9mium csomag<\/h3>\n                    <p class=\"staffix-aiaj-csomag-leiras\">250 \u00fczenet, nem j\u00e1r le<\/p>\n                    <ul class=\"staffix-aiaj-csomag-lista\">\n                        <li><strong>Mit kapsz:<\/strong> 250 \u00fczenet, amit a saj\u00e1t temp\u00f3dban haszn\u00e1lhatsz fel. Nem j\u00e1r le, addig tart, am\u00edg el nem fogy.<\/li>\n                        <li><strong>Mire val\u00f3:<\/strong> Intenz\u00edv gyakorl\u00e1sra: t\u00f6bb t\u00e9m\u00e1t (munka, sz\u00e1ll\u00e1s, hivatal, orvos, bev\u00e1s\u00e1rl\u00e1s) is v\u00e9gigvehetsz, \u00e9s k\u00f6zben a mondataidat is jav\u00edttathatod. Tolm\u00e1csol\u00e1sra is haszn\u00e1lhat\u00f3.<\/li>\n                        <li><strong>Mi\u00e9rt aj\u00e1nljuk:<\/strong> Ha k\u00f6zeleg a kiutaz\u00e1s vagy a munkakezd\u00e9s, a rendszeres gyakorl\u00e1s hozza a legt\u00f6bbet. \u00dczenetenk\u00e9nt olcs\u00f3bb, mint az Alap csomag.<\/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\">Ezt v\u00e1lasztom<\/button>\n                <\/div>\n            <\/div>\n\n                        <p class=\"staffix-aiaj-email-sor\">\n                <label for=\"staffix-aiaj-email\">Email c\u00edmed (ide kapod a sz\u00e1ml\u00e1t \u00e9s a csomagod ehhez k\u00f6tj\u00fck):<\/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                    Tudom\u00e1sul veszem, hogy a szolg\u00e1ltat\u00e1s azonnali megkezd\u00e9s\u00e9vel elvesz\u00edtem a 14 napos el\u00e1ll\u00e1si jogomat, mivel a digit\u00e1lis tartalom teljes\u00edt\u00e9se a fizet\u00e9s ut\u00e1n azonnal megt\u00f6rt\u00e9nik.                <\/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\">Tov\u00e1bb a fizet\u00e9shez<\/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\":\"T\\u00e1rgyak\",\"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\":\"Helyek \\u00e9s g\\u00e9pek\",\"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\":\"Tiszt\\u00edt\\u00e1s\",\"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\":\"Ig\\u00e9k\",\"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\":\"Fontos mondatok\",\"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\":\"Alapanyagok\",\"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\":\"Eszk\\u00f6z\\u00f6k\",\"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\":\"M\\u0171veletek\",\"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\":\"Higi\\u00e9nia \\u00e9s rend\",\"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\":\"Fontos mondatok\",\"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\":\"A szoba\",\"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\":\"F\\u00fcrd\\u0151szoba\",\"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\":\"Eszk\\u00f6z\\u00f6k\",\"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\":\"Ig\\u00e9k\",\"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\":\"Fontos mondatok\",\"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\":\"K\\u00f6z\\u00f6s terek \\u00e9s tov\\u00e1bbi eszk\\u00f6z\\u00f6k\",\"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\":\"Takar\\u00edt\\u00e1si mondatok \\u00e9s \\u00e1llapotok\",\"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\":\"Az asztal\",\"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\":\"\\u00c9tel \\u00e9s ital\",\"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\":\"Ig\\u00e9k\",\"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\":\"A vend\\u00e9g\",\"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\":\"Fontos mondatok\",\"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\":\"Szoba \\u00e9s kulcs\",\"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\":\"Id\\u0151pontok\",\"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\":\"Sz\\u00e1mla \\u00e9s fizet\\u00e9s\",\"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\":\"Szolg\\u00e1ltat\\u00e1sok\",\"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\":\"Fontos mondatok\",\"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\":\"Kezel\\u00e9sek\",\"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\":\"A r\\u00e9szleg\",\"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\":\"Testr\\u00e9szek\",\"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\":\"Egyeztet\\u00e9s\",\"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\":\"Fontos mondatok\",\"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\":\"Szersz\\u00e1mok\",\"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\":\"Hib\\u00e1k\",\"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\":\"A kert\",\"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\":\"Ig\\u00e9k\",\"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\":\"Fontos mondatok\",\"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\":\"Helyek\",\"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\":\"Emberek \\u00e9s szervek\",\"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\":\"Esem\\u00e9nyek\",\"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\":\"Ig\\u00e9k\",\"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\":\"Fontos mondatok\",\"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\":\"Bemutatkoz\\u00e1s: k\\u00e9rd\\u00e9sek \\u00e9s v\\u00e1laszok\",\"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\":\"K\\u00f6sz\\u00f6n\\u00e9sek \\u00e9s udvariass\\u00e1g\",\"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\":\"Seg\\u00edts\\u00e9gk\\u00e9r\\u00e9s, meg\\u00e9rt\\u00e9s\",\"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\":\"K\\u00e9rd\\u00e9sek a mindennapokban\",\"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\":\"Id\\u0151 \\u00e9s sz\\u00e1mok\",\"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\":\"Munkahelyi alapok\",\"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\":\"H\\u00e9tk\\u00f6znapok, orvos, v\\u00e9szhelyzet\",\"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\":\"m\\u00e9g nincs kiv\\u00e1lasztva\",\"nincs_info\":\"Nem tudod, hol tartasz? T\\u00f6ltsd ki az 1 perces szintfelm\\u00e9r\\u0151t, vagy v\\u00e1lassz al\\u00e1bb. Ha egy sz\\u00f3t sem tudsz n\\u00e9met\\u00fcl, v\\u00e1laszd a \\u201e0 \\u00b7 null\\u00e1r\\u00f3l\\u201d szintet.\",\"l0\":\"0 \\u00b7 null\\u00e1r\\u00f3l\",\"l1\":\"\",\"lA1\":\"A1 \\u00b7 alapok\",\"lA2\":\"A2 \\u00b7 kezd\\u0151\",\"lB1\":\"B1 \\u00b7 halad\\u00f3\",\"i0\":\"Egy sz\\u00f3t sem tudsz n\\u00e9met\\u00fcl? Semmi baj. Nagyon r\\u00f6vid mondatokat kapsz magyar magyar\\u00e1zattal \\u00e9s seg\\u00edts\\u00e9ggel.\",\"iA1\":\"Nagyon r\\u00f6vid n\\u00e9met mondatok magyar magyar\\u00e1zattal. Ha elakadsz, k\\u00e9rdezhetsz magyarul.\",\"iA2\":\"R\\u00f6vid, egyszer\\u0171 mondatok, lassabb temp\\u00f3.\",\"iB1\":\"Term\\u00e9szetes temp\\u00f3, h\\u00e9tk\\u00f6znapi vend\\u00e9gl\\u00e1t\\u00f3s sz\\u00f3kincs.\",\"javasolt\":\"Javasolt szint\",\"helyes\":\"helyes v\\u00e1lasz\",\"hasznal\":\"Ezt a szintet haszn\\u00e1lom\",\"ujra\":\"\\u00dajra\",\"nem_tudom\":\"Nem tudom\",\"kihagyom\":\"Kihagyom\",\"te\":\"Te\",\"frizura\":\"Frizura\",\"haj\":\"Hajsz\\u00edn\",\"bor\":\"B\\u0151rsz\\u00edn\",\"ruha\":\"Ruha\",\"szemuveg\":\"Szem\\u00fcveg\",\"van\":\"Van\",\"nincs_sz\":\"Nincs\",\"st_rovid\":\"R\\u00f6vid\",\"st_hosszu\":\"Hossz\\u00fa\",\"st_kontyos\":\"Kontyos\",\"st_gongyol\":\"G\\u00f6nd\\u00f6r\",\"st_kopasz\":\"Kopasz\",\"kep_valaszt\":\"V\\u00e1laszd ki az arcod\",\"partner_cim_rovid\":\"Dorka st\\u00edlusa\",\"helyzet\":\"Helyzet:\",\"masik\":\"M\\u00e1sik helyzet\",\"valassz_helyzet\":\"Melyik helyzetet gyakoroljuk?\",\"munkahelyi\":\"Munkahelyi helyzetek\",\"mindennapi\":\"H\\u00e9tk\\u00f6znapi helyzetek\",\"elakadtal\":\"Elakadt\\u00e1l? Seg\\u00edts\\u00e9g \\u25be\",\"tovabb\":\"Elmondtam, tov\\u00e1bb \\u25b8\",\"eszkozok\":\"Tov\\u00e1bbi eszk\\u00f6z\\u00f6k \\u25be\",\"poz\":\"Poz\\u00edci\\u00f3:\",\"nincs_megadva\":\"nincs megadva\",\"partner_cim\":\"Milyen legyen Dorka?\",\"p_kedves\":\"Dorka \\u2013 kedves\",\"pt_kedves\":\"T\\u00fcrelmes, b\\u00e1tor\\u00edt\\u00f3\",\"p_szigoru\":\"Dorka \\u2013 szigor\\u00fa\",\"pt_szigoru\":\"T\\u00e1rgyilagos, minden hib\\u00e1t jelez\",\"p_laza\":\"Dorka \\u2013 laza\",\"pt_laza\":\"K\\u00f6zvetlen, gyors temp\\u00f3\"},\"admin\":false,\"i18n\":{\"nyelv_hu\":\"magyarul\",\"nyelv_de\":\"n\\u00e9met\\u00fcl\",\"mind_hallgat\":\"Mindet meghallgatom\",\"segitseg\":\"Seg\\u00edts\\u00e9g: hogyan mondjam?\",\"segitseg_hallgat\":\"Meghallgatom \\u00e9s k\\u00fcld\\u00f6m\",\"segitseg_beir\":\"Be\\u00edrom a mez\\u0151be\",\"segitseg_kuld\":\"Elk\\u00fcld\\u00f6m \\u00edgy\",\"gyak_cim_szavak\":\"Szavak a munk\\u00e1dhoz\",\"gyak_cim_mondatok\":\"Hasznos mondatok \\u00e9s k\\u00e9rd\\u00e9sek\",\"gyak_adag\":\"adag\",\"gyak_maradek\":\"M\\u00e9g %d ingyenes adagod van. Ut\\u00e1na csomaggal folytathatod.\",\"gyak_regi_szavak\":\"Eddig kapott szavaim\",\"gyak_regi_mondatok\":\"Eddig kapott mondataim\",\"gyak_uj_szavak\":\"K\\u00e9sz vagyok, k\\u00e9rek \\u00faj szavakat\",\"gyak_uj_mondatok\":\"K\\u00e9sz vagyok, k\\u00e9rek \\u00faj mondatokat\",\"gyak_tolt\":\"\\u00d6ssze\\u00e1ll\\u00edtom a k\\u00f6vetkez\\u0151 adagot\\u2026\",\"gyak_hiba\":\"Most nem siker\\u00fclt bet\\u00f6lteni. Pr\\u00f3b\\u00e1ld \\u00fajra egy pillanat m\\u00falva.\",\"tolm_premium\":\"A Tolm\\u00e1csol\\u00e1st az ingyenes pr\\u00f3baid\\u0151 alatt kipr\\u00f3b\\u00e1lhatod, ut\\u00e1na a Pr\\u00e9mium csomag r\\u00e9sze. A Gyakorl\\u00e1s \\u00e9s a Szerepj\\u00e1t\\u00e9k az Alap csomagban is megvan.\",\"tolmacs_tipp\":\"Mondd vagy \\u00edrd be magyarul, amit a f\\u0151n\\u00f6k\\u00f6dnek szeretn\\u00e9l mondani - leford\\u00edtom n\\u00e9metre. Ha \\u0151 mond valamit n\\u00e9met\\u00fcl, azt is be\\u00edrhatod vagy bemondhatod, \\u00e9s magyarra ford\\u00edtom.\",\"kezdo_tipp\":\"\\u00cdgy kezdd: v\\u00e1laszd ki a poz\\u00edci\\u00f3dat, majd a t\\u00e9m\\u00e1t (pl. Bemutatkoz\\u00e1s vagy Utaz\\u00e1s) - az asszisztens r\\u00f6gt\\u00f6n elkezd tan\\u00edtani.\",\"irany_hu_de\":\"Magyar \\u2192 n\\u00e9met\",\"irany_de_hu\":\"N\\u00e9met \\u2192 magyar\",\"feldolgozom\":\"Feldolgozom a hangfelv\\u00e9telt\\u2026\",\"nyomd_ujra\":\"nyomd meg \\u00fajra a mikrofont, ha v\\u00e9gezt\\u00e9l\",\"mic_engedely\":\"A mikrofon haszn\\u00e1lat\\u00e1hoz enged\\u00e9lyezd a b\\u00f6ng\\u00e9sz\\u0151ben.\",\"gepeles\":\"Az asszisztens g\\u00e9pel\\u2026\",\"hiba_altalanos\":\"Hiba t\\u00f6rt\\u00e9nt, pr\\u00f3b\\u00e1ld \\u00fajra.\",\"mic_nincs\":\"A hangbevitel ezen az eszk\\u00f6z\\u00f6n\\\/b\\u00f6ng\\u00e9sz\\u0151ben nem t\\u00e1mogatott - \\u00edrd be sz\\u00f6vegk\\u00e9nt.\",\"hallgatlak\":\"Hallgatlak\\u2026\",\"mic_nem_sikerult\":\"Nem siker\\u00fclt felismerni, amit mondt\\u00e1l - pr\\u00f3b\\u00e1ld \\u00fajra, vagy \\u00edrd be sz\\u00f6vegk\\u00e9nt.\",\"kell_email\":\"K\\u00e9rj\\u00fck, add meg az email c\\u00edmedet.\",\"kell_elallas\":\"K\\u00e9rj\\u00fck, fogadd el a nyilatkozatot a folytat\\u00e1shoz.\",\"fizetes_folyamatban\":\"\\u00c1tir\\u00e1ny\\u00edt\\u00e1s a fizet\\u00e9shez\\u2026\",\"siker_csomag\":\"Sikeres v\\u00e1s\\u00e1rl\\u00e1s! A csomagod akt\\u00edv.\",\"vissza_ok\":\"A csomagod vissza\\u00e1ll\\u00edtva, j\\u00f3 tanul\\u00e1st!\",\"vissza_nincs\":\"A link \\u00e9rv\\u00e9nytelen vagy lej\\u00e1rt. K\\u00e9rj \\u00fajat a \\\"M\\u00e1r fizett\\u00e9l\\\" gombbal.\",\"sz_csomag\":\"A csomagodb\\u00f3l m\\u00e9g %d \\u00fczenet maradt.\",\"sz_ingyen\":\"M\\u00e9g %d ingyenes \\u00fczeneted van.\",\"sz_vendeg\":\"Ingyen kipr\\u00f3b\\u00e1lhatod.\",\"ert_valassz\":\"K\\u00e9rj\\u00fck, v\\u00e1lassz csillagot.\",\"reg_cim\":\"Folytassuk regisztr\\u00e1ci\\u00f3val!\",\"reg_szov\":\"Tetszik? Regisztr\\u00e1lj ingyen, \\u00e9s kapsz m\\u00e9g 15 \\u00fczenetet. P\\u00e1r perc az eg\\u00e9sz, \\u00e9s a halad\\u00e1sod minden eszk\\u00f6z\\u00f6n megmarad.\",\"szokincs_cim\":\"Sz\\u00f3kincs\",\"valasz_mondatok\":\"\\u00cdgy v\\u00e1laszolhatsz\",\"szotar_poz\":\"El\\u0151bb v\\u00e1laszd ki a poz\\u00edci\\u00f3dat fent, ut\\u00e1na megmutatom az alapszavakat.\",\"szotar_cim\":\"Alapszavak a poz\\u00edci\\u00f3dhoz:\",\"indulas_gomb\":\"Indul\\u00e1s\",\"indulas_szerep\":\"Ellen\\u0151rizd a poz\\u00edci\\u00f3t \\u00e9s a helyzetet. Ha k\\u00e9sz vagy, nyomd meg az Indul\\u00e1s gombot, \\u00e9s a jelenet elkezd\\u0151dik: a karakter megsz\\u00f3l\\u00edt, te pedig v\\u00e1laszolsz.\",\"indulas_gyak\":\"N\\u00e9zd \\u00e1t nyugodtan a szavakat, \\u00e9s v\\u00e1laszd ki a poz\\u00edci\\u00f3t meg a t\\u00e9m\\u00e1t. Ha k\\u00e9sz vagy, nyomd meg az Indul\\u00e1s gombot, \\u00e9s kezd\\u0151dik az els\\u0151 lecke.\",\"szavak_helyzet\":\"Szavak ehhez a helyzethez:\",\"szavak_betolt\":\"\\u00d6ssze\\u00e1ll\\u00edtom a szavakat ehhez a helyzethez\\u2026 (n\\u00e9h\\u00e1ny m\\u00e1sodperc)\",\"szavak_hiba\":\"A sz\\u00f3list\\u00e1t most nem siker\\u00fclt bet\\u00f6lteni. Nyomd meg \\u00fajra a szavak gombj\\u00e1t.\",\"szavak_valassz\":\"El\\u0151bb v\\u00e1laszd ki a helyzetet, ut\\u00e1na megmutatom a hozz\\u00e1 tartoz\\u00f3 szavakat.\",\"szavak_gomb_h\":\"Kb. 40 sz\\u00f3 ehhez a helyzethez\",\"szotar_bezar\":\"Elrejt\\u00e9s\",\"szerep_tipp\":\"El\\u0151sz\\u00f6r v\\u00e1laszd ki a poz\\u00edci\\u00f3dat, hogy a helyzet a te munk\\u00e1dhoz illjen, ut\\u00e1na a helyzetet (pl. \\u00c1ll\\u00e1sinterj\\u00fa vagy Els\\u0151 munkanap). Az asszisztens elj\\u00e1tssza a m\\u00e1sik felet, te pedig v\\u00e1laszolsz. Szabadon besz\\u00e9lgethetsz: k\\u00e9rdezhetsz t\\u0151le, t\\u00e9m\\u00e1t v\\u00e1lthatsz, \\u00e9s magyarul is \\u00edrhatsz, ha elakadsz. Az alatta l\\u00e9v\\u0151 gombokkal k\\u00e9rheted, hogy ism\\u00e9telje, mondja lassabban vagy magyar\\u00e1zza el.\",\"szerep_ph\":\"V\\u00e1laszolj n\\u00e9met\\u00fcl, vagy k\\u00e9rdezz magyarul, ha elakadt\\u00e1l\\u2026\",\"kez_info\":\"K\\u00e9z n\\u00e9lk\\u00fcli m\\u00f3d: az asszisztens ut\\u00e1n automatikusan hallgatlak, \\u00e9s a v\\u00e1laszodat elk\\u00fcld\\u00f6m.\",\"nem_hallottam\":\"Nem hallottam semmit - koppints a mikrofonra, ha folytatn\\u00e1d.\",\"kviz_kev\":\"A kv\\u00edzhez legal\\u00e1bb 4 megtanult sz\\u00f3 kell. Tanulj m\\u00e9g egy kicsit az asszisztenssel, azt\\u00e1n gyere vissza!\",\"kviz_cim\":\"Napi kv\\u00edz\",\"kviz_kerdes\":\"K\\u00e9rd\\u00e9s\",\"kviz_nemet_hu\":\"Mit jelent magyarul?\",\"kviz_hu_nemet\":\"Hogy mondj\\u00e1k n\\u00e9met\\u00fcl?\",\"kviz_helyes\":\"Helyes!\",\"kviz_rossz\":\"Nem eg\\u00e9szen. A helyes v\\u00e1lasz:\",\"kviz_tovabb\":\"K\\u00f6vetkez\\u0151\",\"kviz_eredmeny\":\"Eredm\\u00e9nyed\",\"kviz_sorozat\":\"Napi sorozat\",\"kviz_nap\":\"nap\",\"kviz_uj\":\"\\u00daj kv\\u00edz\",\"kviz_vissza\":\"Vissza a tanul\\u00e1shoz\",\"kviz_ingyen\":\"A kv\\u00edz ingyenes, nem fogyaszt \\u00fczenetet.\",\"felolvasas_cim\":\"Felolvas\\u00e1s\"}};\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            gyak_kerj();\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_kerj(); 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\/en\/wp-json\/wp\/v2\/pages\/2215","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stafforex.eu\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/stafforex.eu\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/stafforex.eu\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stafforex.eu\/en\/wp-json\/wp\/v2\/comments?post=2215"}],"version-history":[{"count":1,"href":"https:\/\/stafforex.eu\/en\/wp-json\/wp\/v2\/pages\/2215\/revisions"}],"predecessor-version":[{"id":2216,"href":"https:\/\/stafforex.eu\/en\/wp-json\/wp\/v2\/pages\/2215\/revisions\/2216"}],"wp:attachment":[{"href":"https:\/\/stafforex.eu\/en\/wp-json\/wp\/v2\/media?parent=2215"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}