/* OK ITHAKI V249472
 * Complete EL/EN interface translation, Bil-first home, two-eye Bil,
 * profile/legal mobile controls, and one audible Feed video at a time.
 * Existing database, media, messages, calls and friendship data are preserved.
 */
(function(){
  'use strict';
  if(window.__ITHAKI_V249472_COMPLETE__) return;
  window.__ITHAKI_V249472_COMPLETE__={version:'V249472',installedAt:Date.now()};
  window.__ITHAKI_V249473_FEED_AUDIO_OWNER__=true;

  var LANG_KEY='ith_ui_lang_v249141';
  var OLD_LANG_KEY='ith_ui_lang';
  var BIL_KEY='ith_bil_enabled_v249461';
  var BIL_MIGRATION='ith_bil_first_visible_v249472';
  var BIL_ID='ithBilGreenTurtleV249461';
  var BIL_MENU_ID='ithBilMenuV249461';
  var SOUND_KEY='ith_video_sound_enabled_v249220';
  var MAP={"Αρχική":"Home","Ροή":"Feed","Μηνύματα":"Messages","Δωμάτια":"Rooms","Χώροι":"Spaces","Κοινότητες":"Communities","Προφίλ":"Profile","Δημοσίευση":"Post","Δημοσιεύσεις":"Posts","Ειδοποιήσεις":"Notifications","Κέντρο ειδοποιήσεων":"Notification center","Ρυθμίσεις ειδοποιήσεων":"Notification settings","Όλες":"All","Κλήσεις":"Calls","Αιτήματα φιλίας":"Friend requests","Αναφορές":"Mentions","Σήμανση όλων ως διαβασμένα":"Mark all as read","Δεν υπάρχουν ειδοποιήσεις.":"No notifications.","Νέο μήνυμα":"New message","Νέα αντίδραση":"New reaction","Νέο αίτημα φιλίας":"New friend request","Αναπάντητη κλήση":"Missed call","Άνοιγμα μηνύματος":"Open message","Ήσυχες ώρες":"Quiet hours","Λεξικό":"Dictionary","Διαχείριση":"Administration","Κλείσιμο":"Close","Άνοιγμα":"Open","Αποθήκευση":"Save","Ανάκτηση":"Recovery","Διαγραφή":"Delete","Ακύρωση":"Cancel","Επιβεβαίωση":"Confirm","Αποστολή":"Send","Επιστροφή":"Back","Ανανέωση":"Refresh","Αναζήτηση":"Search","Φίλοι":"Friends","Μέλη":"Members","Ενεργοί":"Active","Ανενεργοί":"Offline","Φωτογραφία":"Photo","Βίντεο":"Videos","Αρχείο":"File","Κείμενο":"Text","Ψηφοφορία":"Poll","Λήψη φωτογραφίας":"Take photo","Εγγραφή βίντεο":"Record video","Εγγραφή ήχου":"Record audio","Οικοδεσπότης ΙΘΑΚΗΣ":"ITHAKI Host","προς Μηνύματα":"to Messages","προς Κοινότητα / Δωμάτιο":"to Community / Room","προς Ροή":"to Feed","＋ Κέντρο δημιουργίας & επικοινωνίας":"＋ Creation & communication center","Κέντρο δημιουργίας & επικοινωνίας":"Creation & communication center","ΙΘΑΚΗ στη Ροή":"ITHAKI in Feed","Χρυσό κείμενο":"Golden text","ΕΠΙΚΟΙΝΩΝΊΑ":"COMMUNICATION","Κέντρο μηνυμάτων":"Message center","Προφίλ φίλου":"Friend profile","Φωνητική κλήση":"Voice call","Χωρίς internet":"Without internet","Γειτονιά · Mesh":"Neighborhood · Mesh","ΧΏΡΟΙ ΙΘΑΚΗΣ":"ITHAKI SPACES","Ο Φάρος":"The Lighthouse","Οικοδεσπότης":"Host","Ανώνυμος Τοίχος":"Anonymous Wall","Rooms / Communities":"Rooms / Communities","Έκτακτη offline":"Offline emergency","Ανώνυμος τοίχος":"Anonymous wall","Ομάδα στα Μηνύματα":"Group in Messages","Ομάδες / Broadcast":"Groups / Broadcast","Προώθηση":"Forward","Μπουκάλι":"Bottle","Φάρος":"Lighthouse","Τοίχος":"Wall","Χρώματα οθόνης":"Screen colors","Διάλεξε φίλο, ενεργό ή ανενεργό. Πατάς στο όνομα και μπαίνεις κατευθείαν στη συνομιλία.":"Choose a friend, online or offline. Tap the name to open the conversation directly.","Αναζήτηση φίλου...":"Search friends...","Διάλεξε φίλο από τη λίστα για μήνυμα.":"Choose a friend from the list to send a message.","Διάλεξε επαφή":"Choose a contact","Γράψε ένα μήνυμα...":"Write a message...","Κλήση φωνής":"Voice call","Βιντεοκλήση":"Video call","Ιδιωτική κλειδαριά":"Private lock","Ενεργοί φίλοι / νέα μηνύματα":"Online friends / new messages","Ανενεργοί φίλοι":"Offline friends","Δεν υπάρχει ενεργός φίλος αυτή τη στιγμή.":"No friend is online right now.","Δεν εμφανίζεται φίλος ακόμη.":"No friend is shown yet.","Μετά την αποδοχή φιλίας η λίστα ενημερώνεται αυτόματα. Αν δεν εμφανιστεί, πάτα Φόρτωση φίλων ξανά.":"After friendship is accepted, the list updates automatically. If it does not appear, press Load friends again.","Φόρτωση φίλων ξανά":"Load friends again","Ειδοποιήσεις / αποδοχή φιλίας":"Notifications / accept friendship","Λίστα μελών για αίτημα":"Member list for a request","Διαγνωστικό φίλων":"Friend diagnostics","Δεν βρέθηκαν μέλη.":"No members found.","Διαχείριση ομάδας":"Group management","Κλασική ομαδική συνομιλία μέσα στα Μηνύματα. Αυτό είναι το μοναδικό ενεργό group interface.":"Classic group conversation inside Messages. This is the only active group interface.","Νέο όνομα ομάδας":"New group name","Μετονομασία":"Rename","Πρόσκληση φίλων":"Invite friends","Έξοδος από ομάδα":"Leave group","Ο admin μπορεί να αφαιρέσει μέλη. Κάθε μέλος μπορεί να φύγει μόνο του.":"The administrator can remove members. Every member can leave the group.","Αφαίρεση":"Remove","εσύ":"you","μέλη":"members","Δωμάτια / κοινότητες":"Rooms / communities","Δωμάτια και Κοινότητες":"Rooms and Communities","Διάλεξε κατηγορία και μετά χώρο συνομιλίας.":"Choose a category and then a chat space.","Θέματα":"Topics","SOS Γειτονιά":"SOS Neighborhood","＋ Δημιουργία: δωμάτιο · κοινότητα · επαγγελματικός χώρος":"＋ Create: room · community · professional space","Οι χώροι δεν φόρτωσαν:":"Spaces did not load:","Δωμάτια / Κοινότητες":"Rooms / Communities","Δωμάτια και κοινότητες":"Rooms and communities","Δημιουργία":"Create","Επιλογή χώρου":"Choose a space","Διάλεξε έναν χώρο.":"Choose a space.","Μήνυμα σε αυτόν τον χώρο...":"Message this space...","Προτεινόμενα δωμάτια":"Suggested rooms","Προτεινόμενες κοινότητες":"Suggested communities","Γενική συζήτηση":"General discussion","Ιδιωτικό δωμάτιο":"Private room","Ομάδα έργου":"Project team","Οικογένεια":"Family","Συνάντηση":"Meeting","Νέο δωμάτιο":"New room","Νέα κοινότητα":"New community","Τίτλος":"Title","Περιγραφή / κανόνες":"Description / rules","Τι είναι αυτός ο χώρος;":"What is this space?","Πρόσβαση":"Access","Ανοιχτό":"Open","Με πρόσκληση/έγκριση":"By invitation/approval","Με κωδικό μέλους":"With member code","Κωδικός μέλους":"Member code","Κωδικός διαχειριστή":"Admin code","κωδικός δημιουργού":"creator code","Κωδικός/QR":"Code/QR","Δημιουργήθηκε":"Created","Δεν δημιουργήθηκε":"Not created","Οι χώροι δεν φορτώνουν.":"Spaces are not loading.","Πρόσκληση":"Invite","Κωδικός":"Code","Δεν υπάρχει κάτι ακόμη.":"Nothing here yet.","Απαιτείται σωστός κωδικός ή έγκριση":"Correct code or approval required","Ξεκίνα τον χώρο.":"Start the space.","Τα μηνύματα του χώρου δεν φορτώνουν.":"Space messages are not loading.","Διάλεξε χώρο":"Choose a space","Επαγγελματικό Κέντρο":"Professional Center","Δημόσιο link · χωρίς επεξεργασία/επαφές":"Public link · no editing/contacts","ΕΛΕΓΧΟΣ":"CHECK","Έλεγχος επαγγελματικού κέντρου":"Professional center check","Γίνεται ασφαλής έλεγχος της υπάρχουσας ενεργοποίησης.":"The existing activation is checked securely.","Ανωνυμία και κρυπτογράφηση":"Anonymity and encryption","ITHAKI Private Relay · E2EE / AES · παλιά Γειτονιά":"ITHAKI Private Relay · E2EE / AES · legacy Neighborhood","Ρυθμίσεις":"Settings","Γλώσσα μενού / Μετάφραση περιεχομένου":"Menu language / Content translation","Όνομα":"Name","Κάμερα":"Camera","Avatar":"Avatar","Αποθήκευση και κλείδωμα ονόματος":"Save and lock name","Το όνομα κλειδώθηκε":"Name locked","Το όνομα είναι έτοιμο για κλείδωμα":"Name ready to lock","Ξεκλείδωμα ονόματος":"Unlock name","Είμαι άνω των 16 ετών.":"I am over 16 years old.","Συμφωνώ με την πολιτική και τους όρους χρήσης.":"I agree to the policy and terms of use.","Ανάγνωση πολιτικής":"Read policy","Το προφίλ διατηρείται σε αυτή τη συσκευή ακόμη και όταν ο server είναι offline.":"Profile is kept on this device even if the server is offline.","Γλώσσα μενού":"Menu language","Μετάφραση περιεχομένου":"Content translation","Αυτόματα Ελληνικά ↔ Αγγλικά":"Auto Greek ↔ English","Η γλώσσα μενού είναι ξεχωριστή από τη μετάφραση μηνυμάτων.":"Menu language is separate from message translation.","Ειδοποιήσεις και αδράνεια εφαρμογής":"Notifications and app sleep","Δικαιώματα":"Permissions","Προστασία":"Protection","Τι κρατά ο server":"What the server keeps","Παραμονή σε σύνδεση: ON":"Stay connected: ON","Παραμονή σε σύνδεση: OFF":"Stay connected: OFF","Εργαλεία προφίλ":"Profile tools","Αποθήκευση λογαριασμού":"Save account","Τα αποθηκευμένα μου":"My saved items","Διαγραφή λογαριασμού":"Delete account","Αποκλεισμένοι":"Blocked","Δεν υπάρχουν αποκλεισμένα μέλη.":"No blocked members.","Επαγγελματικό προφίλ: αποθηκεύεται πρώτα τοπικά και ελέγχεται με τον server μετά την αποθήκευση.":"Professional profile: saved locally first, checked with the server after saving.","Αυτό το όνομα είναι κλειδωμένο σε αυτή τη συσκευή. Ξεκλείδωσέ το μόνο αν θέλεις πραγματικά να το αλλάξεις.":"This name is locked on this device. Unlock it only if you really want to change it.","Γράψε το όνομά σου και πάτησε Αποθήκευση. Η εφαρμογή ελέγχει αμέσως αν υπάρχει ήδη και προτείνει άλλο.":"Write your name and press Save. The app immediately checks whether the name already exists and suggests another.","Καλώς ήρθατε στην":"Welcome to","Ταξιδεύουμε μαζί ανθρώπινα, ελεύθερα και ανώνυμα.":"We travel together humanly, freely and anonymously.","Σοφός λόγος":"Wise words","Φόρτωση ενεργών μελών...":"Loading active members...","Δεν υπάρχει ενεργό μέλος αυτή τη στιγμή.":"No member is active right now.","Μόνο εσύ είσαι ενεργός αυτή τη στιγμή.":"Only you are active right now.","Ενεργά μέλη":"Active members","Εσύ":"You","Καλώς ήρθατε στην OK ITHAKI":"Welcome to OK ITHAKI","Άνοιγμα της υπάρχουσας Ροής":"Open the existing Feed","Επιλογή επαφής και ομάδων":"Choose contacts and groups","Λίστα επαφών και αιτήματα φιλίας":"Contacts and friend requests","Κέντρο Εξωτερικών Μηνυμάτων":"External Messages Center","Ομάδες, broadcast και προώθηση":"Groups, broadcast and forwarding","Γιατί ΙΘΑΚΗ":"Why ITHAKI","Αρχές, ιδιωτικότητα και σκοπός":"Principles, privacy and purpose","Φόρτωση ειδοποιήσεων...":"Loading notifications...","Φόρτωση αιτημάτων...":"Loading requests...","Δεν υπάρχουν αιτήματα φιλίας σε αναμονή.":"No pending friend requests.","Αίτημα φιλίας σε αναμονή":"Pending friend request","Στάλθηκε αίτημα φιλίας":"Friend request sent","Σας έστειλε αίτημα φιλίας":"Sent you a friend request","Αποδοχή":"Accept","Απόρριψη":"Reject","Μενού μέλους":"Member menu","Avatar / Μενού":"Avatar / Menu","Έλεγχος":"Check","Τα αιτήματα φιλίας στέλνονται και ως κάρτα στα μηνύματα και ως FCM για κλειστή εφαρμογή.":"Friend requests are delivered as a message card and through FCM when the app is closed.","Εκτός εφαρμογής":"Outside the app","Σύνδεση Push / FCM":"Connect Push / FCM","Σήμανση ως διαβασμένα":"Mark as read","Καθαρισμός παλιών":"Clear old notifications","Όλες οι ειδοποιήσεις":"All notifications","Μη αναγνωσμένες":"Unread","Επιλογές φίλων":"Friend options","Επιλογή φίλου":"Choose a friend","Επιλογή επαφής":"Choose a contact","Διάλεξε φίλο":"Choose a friend","Αναζήτηση επαφής...":"Search contacts...","Αποστολή αρχείου":"Send file","Νέα ομάδα":"New group","Κατηγορίες":"Categories","Δημιουργία χώρου":"Create space","Επαγγελματικό μενού":"Professional menu","Αρχεία":"Files","Άνοιγμα αρχείου":"Open file","Άνοιγμα πλήρους οθόνης":"Open full screen","Πλήρης οθόνη":"Full screen","Έξοδος πλήρους οθόνης":"Exit full screen","Λήψη":"Download","Κοινοποίηση":"Share","Κοινοποίηση αρχείου":"Share file","Πίσω":"Back","Προεπισκόπηση":"Preview","Πολιτική & όροι":"Policy & terms","Πολιτική και όροι":"Policy and terms","Πολιτική απορρήτου":"Privacy policy","Όροι χρήσης":"Terms of use","Αποδοχή πολιτικής":"Accept policy","Η πολιτική έγινε αποδεκτή":"Policy accepted","Αποδοχή και συνέχεια":"Accept and continue","Προηγούμενο":"Previous","Επόμενο":"Next","Πάνω":"Top","Κάτω":"Bottom","Κύλιση πάνω":"Scroll up","Κύλιση κάτω":"Scroll down","Ειδοποιήσεις μόνο όσο η εφαρμογή είναι ανοιχτή. Καλύτερη οικονομία μπαταρίας, αλλά χωρίς ειδοποιήσεις όταν είναι κλειστή.":"Notifications only while the app is open. Best battery saving, but no alerts when it is closed.","Η εφαρμογή μπορεί να κοιμάται. Το Firebase/FCM αφυπνίζει τις ειδοποιήσεις όταν είναι ρυθμισμένο.":"The app can sleep. Firebase/FCM wakes notifications when configured.","Κρατά ενεργή σύνδεση στο παρασκήνιο. Πιο γρήγορα, αλλά χρησιμοποιεί περισσότερη μπαταρία.":"Keeps an active background connection. Faster, but uses more battery.","Προτείνεται: ενεργό όταν είναι ανοιχτή, FCM όταν η εφαρμογή κοιμάται.":"Recommended: active while open, FCM when the app sleeps.","Ειδοποιήσεις μόνο όταν η εφαρμογή είναι ανοιχτή.":"Notifications only while the app is open.","Η εφαρμογή μπορεί να κοιμάται.":"The app can sleep.","Κρατά ζωντανή σύνδεση.":"Keeps a live connection.","Προτεινόμενη λειτουργία":"Recommended mode","Καθαρές επιλογές ειδοποιήσεων":"Clear notification options","Διαλέγεις έναν τρόπο, για να μη μπερδεύονται διπλές ειδοποιήσεις/κλήσεις.":"Choose one mode so duplicate notifications and calls are not mixed.","FCM προεπιλογή":"FCM default","Κλειστή εφαρμογή με Firebase/FCM, ανοιχτή εφαρμογή με εσωτερικό καμπανάκι. Προτείνεται.":"Closed app through Firebase/FCM, open app through the internal bell. Recommended.","Παρασκήνιο":"Background","Για πιο ήπια λειτουργία όταν η εφαρμογή είναι στο παρασκήνιο.":"For gentler operation while the app is in the background.","Ανοιχτή εφαρμογή":"Open app","Ειδοποιήσεις μόνο όσο είσαι μέσα στην ΙΘΑΚΗ.":"Notifications only while you are inside ITHAKI.","Δεν κοιμάται":"Always awake","Κρατά ζωντανή σύνδεση. Πιο άμεσο, αλλά μπορεί να τρώει μπαταρία.":"Keeps a live connection. More immediate, but may use more battery.","Χωρίς ειδοποιήσεις κλειστή συσκευή":"No notifications while the device is closed","Όταν η εφαρμογή είναι κλειστή, δεν εμφανίζει push από FCM.":"When the app is closed, no FCM push is shown.","Bil ειδοποιήσεων":"Notification Bil","Συνοδοιπόρος ειδοποιήσεων":"Notification Bil","Τοπικό μόνο: χωρίς AI, χωρίς αποστολή στον server, χωρίς αλλαγή βάσης.":"Local only: no AI, no server upload, no database change.","Χωρίς Bil":"Without Bil","Κρατά μόνο το απλό καμπανάκι.":"Keeps only the simple notification bell.","Ο μικρός πράσινος φίλος της ΙΘΑΚΗΣ":"ITHAKI’s little green friend","Ο πράσινος φίλος της ΙΘΑΚΗΣ":"ITHAKI’s green friend","Απενεργοποίηση Bil":"Disable Bil","Ενεργοποίηση Bil":"Enable Bil","Ο Bil απενεργοποιήθηκε.":"Bil has been disabled.","Ο Bil ενεργοποιήθηκε.":"Bil has been enabled.","Άνοιγμα Bil":"Open Bil","Άλλος λόγος":"Another saying","Ο Τοίχος δεν άνοιξε.":"The Wall did not open.","Ο Φάρος δεν άνοιξε.":"The Lighthouse did not open.","Το Μπουκάλι δεν άνοιξε.":"The Bottle did not open.","Ζωντανός Τοίχος":"Live Wall","Άνοιγμα νέου Ανώνυμου Τοίχου":"Open the new Anonymous Wall","Κυλιόμενη λίστα ανώνυμων δημοσιεύσεων":"Scrollable list of anonymous posts","Γράψε ανώνυμα τη σκέψη σου…":"Write your thought anonymously…","Γράψε ανώνυμα τη σκέψη σου...":"Write your thought anonymously...","Γράψε ανώνυμα σχόλιο…":"Write an anonymous comment…","Γράψε ανώνυμη απάντηση…":"Write an anonymous reply…","Γράψε πρώτα τη σκέψη σου.":"Write your thought first.","Γράψε πρώτα την απάντησή σου.":"Write your reply first.","Απάντηση στο":"Reply to","Αναφορά":"Report","Η αναφορά καταχωρήθηκε.":"The report was submitted.","Η αναφορά καταχωρίστηκε.":"The report was submitted.","Η αναφορά δεν καταχωρήθηκε.":"The report was not submitted.","Η αντίδραση δεν καταχωρήθηκε.":"The reaction was not saved.","Δεν στάλθηκε":"Not sent","Δεν στάλθηκε η απάντηση":"The reply was not sent","Σφάλμα σύνδεσης":"Connection error","Το κείμενο είναι πάνω από 500 χαρακτήρες.":"The text is over 500 characters.","Να διαγραφεί η δική σου ανώνυμη δημοσίευση;":"Delete your anonymous post?","Διαγραφή σχολίου;":"Delete comment?","Ορισμένες δημόσιες λέξεις καλύφθηκαν.":"Some public words were hidden.","Ορισμένες δημόσιες λέξεις καλύφθηκαν αυτόματα.":"Some public words were hidden automatically.","Η δημόσια λογοκρισία κάλυψε προσβλητικούς όρους. Τα προσωπικά μηνύματα παραμένουν ελεύθερα.":"Public moderation hid offensive terms. Private messages remain unrestricted.","Ανώνυμα. Ειλικρινά. Με σεβασμό.":"Anonymous. Honest. Respectful.","Μοιράσου σκέψεις ανώνυμα με ασφάλεια":"Share thoughts anonymously and safely","Μοιράσου σκέψεις χωρίς να εμφανίζεται το όνομά σου.":"Share thoughts without showing your name.","Σχόλια, απαντήσεις και ανθρώπινη επικοινωνία χωρίς εμφάνιση ταυτότητας.":"Comments, replies and human communication without showing identity.","Φως / Φάρος":"Light / Lighthouse","Ο Φάρος είναι χωρίς λέξεις, μόνο παρουσία.":"The Lighthouse has no words, only presence.","Ο Φάρος δεν είναι διαθέσιμος σε αυτή την οθόνη.":"The Lighthouse is not available on this screen.","Ο Φάρος δεν φόρτωσε":"The Lighthouse did not load","Μήνυμα του βυθού":"Message from the deep","Γράψε το μήνυμά σου":"Write your message","Στείλε το μπουκάλι":"Send the bottle","Άφησε το μπουκάλι":"Release the bottle","Βρες ένα μπουκάλι":"Find a bottle","Άνοιγμα Μπουκαλιού":"Open Bottle","Μήνυμα σε μπουκάλι":"Message in a bottle","Χωρίς λέξεις":"Without words","Παρουσία":"Presence","Ελπίδα":"Hope","Στήριξη":"Support","Σεβασμός":"Respect","Καρδιά":"Heart","Κύμα":"Wave","Φως":"Light","Επαγγελματικό Κέντρο ΙΘΑΚΗ":"ITHAKI Professional Center","Επαγγελματικά":"Professional","Είσοδος στο επαγγελματικό μενού":"Enter the professional menu","Ενεργοποίηση επαγγελματικού κέντρου":"Activate Professional Center","Ενεργοποίηση και αποθήκευση":"Activate and save","Αποθήκευση κοινού προφίλ":"Save public profile","Αλλαγή κωδικού":"Change password","Λογαριασμός ΙΘΑΚΗ":"ITHAKI account","Η πρόσβαση είναι κλειδωμένη.":"Access is locked.","Η επαγγελματική συνεδρία έχει κλείσει.":"The professional session has closed.","Το Επαγγελματικό Κέντρο είναι ήδη ενεργό. Ζητείται ο κωδικός εισόδου.":"The Professional Center is already active. The login password is required.","Τουλάχιστον 8 χαρακτήρες, γράμμα και αριθμός":"At least 8 characters, one letter and one number","Ελάχιστο μήκος: 8 χαρακτήρες, με γράμμα και αριθμό.":"Minimum length: 8 characters, with one letter and one number.","Ο επαγγελματικός κωδικός πρέπει να έχει τουλάχιστον 8 χαρακτήρες.":"The professional password must contain at least 8 characters.","Ο επαγγελματικός κωδικός χρειάζεται τουλάχιστον ένα γράμμα.":"The professional password needs at least one letter.","Ο επαγγελματικός κωδικός χρειάζεται τουλάχιστον έναν αριθμό.":"The professional password needs at least one number.","Οι δύο κωδικοί δεν είναι ίδιοι. Η ενεργοποίηση δεν πραγματοποιήθηκε.":"The two passwords do not match. Activation was not completed.","Οι δύο κωδικοί είναι ίδιοι και αποδεκτοί.":"The two passwords match and are accepted.","Ο κωδικός άλλαξε.":"The password was changed.","Δεν βρέθηκε ταυτότητα λογαριασμού.":"No account identity was found.","Δεν αποθηκεύτηκε αρχείο κωδικού. Δεν υπάρχει ανάκτηση από τον server.":"No password file was saved. Server recovery is unavailable.","Χρειάζεται να επιβεβαιώσεις ότι δεν υπάρχει ανάκτηση κωδικού.":"Confirm that password recovery is unavailable.","Ο ίδιος κωδικός ζητείται σε κάθε είσοδο. Δεν υπάρχει ανάκτηση από τον server.":"The same password is required at every login. Server recovery is unavailable.","Όρισε προσωπικό κωδικό και προαιρετικά αποθήκευσε ιδιωτικό αρχείο στο κινητό. Χωρίς email ή τηλέφωνο.":"Set a personal password and optionally save a private file on the phone. No email or phone number.","Τελική επιβεβαίωση: ο κωδικός δεν ανακτάται από τον server. Να ενεργοποιηθεί το Επαγγελματικό Κέντρο;":"Final confirmation: the password cannot be recovered from the server. Activate the Professional Center?","Το ιδιωτικό αρχείο πρόσβασης αποθηκεύτηκε στο κινητό.":"The private access file was saved on the phone.","Ενεργοποιήθηκε και αποθηκεύτηκε ιδιωτικό αρχείο στο κινητό.":"Activated and a private file was saved on the phone.","Ενεργοποιήθηκε. Χρησιμοποίησε τον ίδιο κωδικό σε κάθε είσοδο.":"Activated. Use the same password at every login.","Αποθηκεύτηκε.":"Saved.","Αποθήκευση…":"Saving…","Έλεγχος…":"Checking…","Ενεργοποίηση…":"Activating…","Αλλαγή…":"Changing…","ΕΝΕΡΓΟ":"ACTIVE","ΑΝΕΝΕΡΓΟ":"INACTIVE","Είσοδος":"Sign in","Επεξεργασία δημοσίευσης":"Edit post","Αποστολή / Προγραμματισμός":"Send / Schedule","Τι δημιουργείς στην ΙΘΑΚΗ;":"What are you creating in ITHAKI?","Γράψε τη λεζάντα της δημοσίευσης…":"Write the post caption…","Πού θα σταλεί":"Where will it be sent","Ημερομηνία και ώρα":"Date and time","Προγραμματισμός…":"Scheduling…","Η δημοσίευση προγραμματίστηκε επιτυχώς.":"The post was scheduled successfully.","Η προγραμματισμένη ώρα πρέπει να είναι στο μέλλον.":"The scheduled time must be in the future.","Η προγραμματισμένη ώρα πρέπει να είναι τουλάχιστον 1 λεπτό στο μέλλον.":"The scheduled time must be at least one minute in the future.","Δεν υπάρχει αρχείο.":"There is no file.","Επίλεξε πρώτα αρχείο.":"Choose a file first.","Το αρχείο δεν διαβάστηκε.":"The file could not be read.","Η προεπισκόπηση δεν άνοιξε σωστά.":"The preview did not open correctly.","Η προεπισκόπηση δεν είναι διαθέσιμη.":"The preview is unavailable.","Δεν υπάρχει αρχείο προεπισκόπησης.":"There is no preview file.","Το Studio δεν άνοιξε":"Studio did not open","Άνοιξε το Studio και πάτησε «Εφαρμογή/Render» πριν την αποστολή.":"Open Studio and press Apply/Render before sending.","Τοπικό Studio":"Local Studio","Δημόσιο link δημιουργού":"Public creator link","QR δημόσιου link":"Public link QR","Το link αντιγράφηκε.":"The link was copied.","Το δημόσιο link αντιγράφηκε.":"The public link was copied.","Το δημόσιο link αποθηκεύτηκε.":"The public link was saved.","Δεν υπάρχουν ακόμη επισκέψεις.":"There are no visits yet.","Δωμάτια / Κοινότητες / Έκτακτη ανάγκη":"Rooms / Communities / Emergency","Ομάδες και χώροι συζήτησης":"Groups and discussion spaces","Αναζήτηση χώρων…":"Search spaces…","Αναζήτηση χώρων...":"Search spaces...","Όνομα χώρου":"Space name","Κανόνες χώρου":"Space rules","Κανόνες χώρου…":"Space rules…","Μήνυμα στον χώρο…":"Message the space…","Μήνυμα broadcast…":"Broadcast message…","Ανακοίνωση στον χώρο":"Space announcement","Προσκλήσεις":"Invitations","Προσκλήσεις / αποδοχές":"Invitations / approvals","Νέα δραστηριότητα στον χώρο":"New activity in the space","Θα ειδοποιείσαι για δραστηριότητα σε αυτόν τον χώρο.":"You will be notified about activity in this space.","Σταμάτησαν οι ειδοποιήσεις αυτού του χώρου.":"Notifications for this space were stopped.","Εγκρίθηκε η συμμετοχή σου στον χώρο.":"Your participation in the space was approved.","Μπες στον χώρο":"Enter the space","Επίλεξε χώρο":"Choose a space","Επίλεξε χώρο.":"Choose a space.","Χώρος":"Space","Ανακοίνωση":"Announcement","Μήνυμα":"Message","Ομάδα":"Group","Ομάδες":"Groups","Πρόσκληση χώρου":"Space invitation","Δεν φορτώνουν οι χώροι.":"Spaces are not loading.","Δεν φόρτωσαν οι φίλοι.":"Friends did not load.","Δεν φορτώθηκαν μηνύματα.":"Messages did not load.","Δεν υπάρχουν νέα μηνύματα.":"There are no new messages.","Τα μηνύματα δεν φορτώνουν":"Messages are not loading","Φόρτωση μηνυμάτων…":"Loading messages…","Φόρτωση μηνυμάτων...":"Loading messages...","Αναζήτηση μηνυμάτων":"Search messages","Μήνυμα κάμερας":"Camera message","Πρόσφατες κεφαλίδες μηνυμάτων":"Recent message headers","Αποστολή μηνύματος":"Send message","Μήνυμα broadcast":"Broadcast message","Εισερχόμενη κλήση":"Incoming call","Κλήση":"Call","Κλήση…":"Calling…","Κλήση...":"Calling...","Κλήση σε εξέλιξη…":"Call in progress…","Σύνδεση κλήσης…":"Connecting call…","Σύνδεση κλήσης...":"Connecting call...","Αίτημα κλήσης":"Call request","Απαντήθηκε κλήση":"Call answered","Απορρίφθηκε κλήση":"Call rejected","Τερματίστηκε κλήση":"Call ended","Τερματισμός κλήσης":"End call","Η κλήση δεν απαντήθηκε":"The call was not answered","Η κλήση δεν έγινε αποδεκτή":"The call was not accepted","Η κλήση αποσυνδέθηκε":"The call disconnected","Η κλήση τερματίστηκε":"The call ended","Η σύνδεση κλήσης απέτυχε":"Call connection failed","Υπάρχει ήδη ενεργή κλήση.":"There is already an active call.","Στάλθηκε αίτημα βιντεοκλήσης.":"Video call request sent.","Στάλθηκε αίτημα κλήσης φωνής.":"Voice call request sent.","Η βιντεοκλήση ξεκίνησε στον server.":"The video call started on the server.","Μικρόφωνο":"Microphone","Ηχείο":"Speaker","Μπροστινή κάμερα":"Front camera","Πίσω κάμερα":"Rear camera","Άδεια ειδοποιήσεων":"Notification permission","Να ζητείται μόνο όταν ενεργοποιώ ειδοποιήσεις.":"Ask only when I enable notifications.","Να ζητείται μόνο όταν ξεκινώ ήχο/βιντεοκλήση.":"Ask only when I start audio/video calling.","Αυτές είναι οι επιλογές της εφαρμογής. Το Android μπορεί ακόμη να ζητήσει άδεια συστήματος την πρώτη φορά που θα χρησιμοποιηθεί κάμερα, μικρόφωνο, ειδοποιήσεις ή τοπικό Wi‑Fi.":"These are the app options. Android may still request system permission the first time camera, microphone, notifications or local Wi‑Fi are used.","Όνομα, avatar, προστασία και ειδοποιήσεις":"Name, avatar, protection and notifications","Avatar / πολιτική / ανάκτηση":"Avatar / policy / recovery","Προφίλ ενεργό · σύνδεση server ενεργή":"Profile active · server connection active","Το προφίλ ενεργοποιήθηκε στον server.":"The profile was activated on the server.","Χρειάζεται προφίλ μέλους.":"A member profile is required.","Χρειάζεται προφίλ μέλους":"A member profile is required","Με προφίλ":"With profile","Ανώνυμα ή με προφίλ":"Anonymous or with profile","Ανώνυμη εμφάνιση":"Anonymous appearance","Εμφανίζεται το όνομα του μέλους.":"The member name is shown.","Στα νέα μηνύματα εμφανίζεται «Ανώνυμος». Δεν κρύβει IP, συσκευή ή στοιχεία από τον server.":"New messages show “Anonymous”. This does not hide IP, device or server data.","Κέντρο ασφάλειας":"Security Center","Κέντρο Ιδιωτικής Σύνδεσης":"Private Connection Center","Καθαρότερα μηνύματα":"Cleaner messages","Απλές καθαρές ειδοποιήσεις.":"Simple clear notifications.","Οι ειδοποιήσεις εμφανίζονται με ήρεμο τρόπο.":"Notifications appear in a calm way.","Οι ειδοποιήσεις θα εμφανίζονται απλά.":"Notifications will be shown simply.","Η οθόνη άνοιξε αμέσως. Ελέγχω αιτήματα, μηνύματα, likes και βίντεο.":"The screen opened immediately. Checking requests, messages, likes and videos.","Δεν ανοίγουν οι ειδοποιήσεις":"Notifications did not open","Σφάλμα εμφάνισης ειδοποιήσεων":"Notification display error","Αποτυχία φόρτωσης ειδοποιήσεων":"Notifications failed to load","Οι ρυθμίσεις ειδοποιήσεων αποθηκεύτηκαν":"Notification settings were saved","Συνδρομές ειδοποιήσεων":"Notification subscriptions","Νέος ακόλουθος":"New follower","Νέοι ακόλουθοι":"New followers","Νέα δημοσίευση":"New post","Νέα απάντηση":"New reply","Νέο σχόλιο":"New comment","Νέα ειδοποίηση":"New notification","Κλειστή εφαρμογή":"Closed app","Κλειστή συσκευή":"Closed device","Μέγιστο 8 δευτερόλεπτα":"Maximum 8 seconds","Η σύνδεση άργησε ή το endpoint δεν απάντησε.":"The connection was slow or the endpoint did not respond.","Δεν φόρτωσαν τα αιτήματα.":"Requests did not load.","Περιμένει απάντηση":"Waiting for a response","Αίτημα σε παλιό/άλλο device":"Request on an old/other device","Η αποδοχή γίνεται στην άλλη συσκευή.":"Acceptance happens on the other device.","Περιμένει απάντηση από την άλλη συσκευή.":"Waiting for a response from the other device.","Δεν ήταν δεμένο στο σημερινό device. Πάτα Αποδοχή εδώ για να διορθωθεί.":"It was not linked to this device. Tap Accept here to fix it.","Η φιλία έγινε αποδεκτή — ανοίγω μηνύματα":"Friendship accepted — opening messages","Το αίτημα φιλίας στάλθηκε. Το άλλο μέλος θα δει κουμπί Αποδοχή / Απόρριψη.":"Friend request sent. The other member will see Accept / Reject buttons.","Το μέλος έχει ήδη στείλει αίτημα. Αποδέξου το από τις ειδοποιήσεις.":"The member has already sent a request. Accept it from notifications.","Αποδοχή εδώ":"Accept here","Όχι τώρα":"Not now","Δοκιμή ξανά":"Try again","Καθαρές ειδοποιήσεις":"Clear notifications","Καθαρισμός":"Clear","Κατάσταση":"Status","Εισερχόμενα":"Incoming","Εξερχόμενα":"Outgoing","Σημείωση":"Note","Αν κολλούσε πριν":"If it was stuck before","Άνοιγμα Ροής":"Open Feed","Άνοιγμα μηνυμάτων":"Open messages","Ενεργός":"Online","Ανενεργός":"Offline","ενεργός":"online","ανενεργός":"offline","Μέλος":"Member","Επισκέπτης":"Visitor","Νέο μέλος":"New member","Εγγραφή":"Register","Εγγραφή μόνο με ψευδώνυμο":"Register with nickname only","Ψευδώνυμο":"Nickname","Συνέχεια":"Continue","Καλώς ήρθες":"Welcome","Καλώς ήρθατε":"Welcome","Γεια σου":"Hello","Επιλογές":"Options","Βοήθεια":"Help","Πληροφορίες":"Information","Έξοδος":"Exit","Ναι":"Yes","Όχι":"No","Όλα":"All","Δικά μου":"Mine","Σοφά":"Wisdom"};
  var REVERSE={};
  Object.keys(MAP).forEach(function(k){if(!REVERSE[MAP[k]])REVERSE[MAP[k]]=k});
  var observer=null,scheduled=false,translationBusy=false;
  var activeFeedVideo=null,soundUnlocked=false,scrollScheduled=false;
  var bootLock=true,userNavigated=false,bootStarted=Date.now();

  function I(){return window.ITH||(window.ITH={})}
  function lang(){try{return String(localStorage.getItem(LANG_KEY)||localStorage.getItem(OLD_LANG_KEY)||document.documentElement.lang||'el').toLowerCase().indexOf('en')===0?'en':'el'}catch(e){return 'el'}}
  function isEnglish(){return lang()==='en'}
  function tr(el,en){return isEnglish()?en:el}
  function esc(s){return String(s==null?'':s).replace(/[&<>"']/g,function(c){return {'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;'}[c]})}
  function renameBil(s){return String(s==null?'':s)
    .replace(/Αθηνά\s*-\s*συνοδοιπόρος ειδοποιήσεων/gi,'Bil')
    .replace(/Η Αθηνά\/ο Σωκρατάκης/gi,'Ο Bil')
    .replace(/Η Αθηνά|Αθηνά|Αθηνα|Athena|Athina/gi,'Bil')
    .replace(/Σωκρατάκης|Σωκρατακης|Σωκρατάκη|Σωκρατακη|Σωκρατάκι|Σωκρατακι|Sokrataki|Socrates companion/gi,'Bil')
    .replace(/Συνοδοιπόρος ειδοποιήσεων/gi,'Bil ειδοποιήσεων');}

  function dynamicTranslate(core,target){
    var s=renameBil(core),m;
    if(target==='en'){
      if((m=s.match(/^Νέο μήνυμα από (.+)\.$/)))return 'New message from '+m[1]+'.';
      if((m=s.match(/^Αίτημα φιλίας από (.+)\.$/)))return 'Friend request from '+m[1]+'.';
      if((m=s.match(/^(.+) έκανε like στη δημοσίευσή σου\.$/)))return m[1]+' liked your post.';
      if((m=s.match(/^(.+) σε ακολουθεί\.$/)))return m[1]+' follows you.';
      if((m=s.match(/^(.+) σου έστειλε μήνυμα\.?$/)))return m[1]+' sent you a message.';
      if((m=s.match(/^(.+) σου έστειλε αίτημα φιλίας\.?$/)))return m[1]+' sent you a friend request.';
      if((m=s.match(/^(.+) άρχισε να σε ακολουθεί\.?$/)))return m[1]+' started following you.';
      if((m=s.match(/^πριν (\d+) λεπτά$/)))return m[1]+' minutes ago';
      if((m=s.match(/^πριν (\d+) ώρες$/)))return m[1]+' hours ago';
      if((m=s.match(/^Οι χώροι δεν φόρτωσαν:\s*(.*)$/)))return 'Spaces did not load: '+m[1];
      if((m=s.match(/^Τα μηνύματα δεν φόρτωσαν:\s*(.*)$/)))return 'Messages did not load: '+m[1];
      if((m=s.match(/^Δεν στάλθηκε:\s*(.*)$/)))return 'Not sent: '+m[1];
      if((m=s.match(/^Δεν στάλθηκε η απάντηση:\s*(.*)$/)))return 'The reply was not sent: '+m[1];
      if((m=s.match(/^Ο Φάρος δεν φόρτωσε:\s*(.*)$/)))return 'The Lighthouse did not load: '+m[1];
      if((m=s.match(/^(\d+) φίλοι$/)))return m[1]+' friends';
      if((m=s.match(/^(\d+) μέλη$/)))return m[1]+' members';
      if((m=s.match(/^(\d+) ανενεργοί$/)))return m[1]+' offline';
    } else {
      if((m=s.match(/^New message from (.+)\.$/)))return 'Νέο μήνυμα από '+m[1]+'.';
      if((m=s.match(/^Friend request from (.+)\.$/)))return 'Αίτημα φιλίας από '+m[1]+'.';
      if((m=s.match(/^(.+) liked your post\.$/)))return m[1]+' έκανε like στη δημοσίευσή σου.';
      if((m=s.match(/^(.+) follows you\.$/)))return m[1]+' σε ακολουθεί.';
      if((m=s.match(/^(\d+) friends$/)))return m[1]+' φίλοι';
      if((m=s.match(/^(\d+) members$/)))return m[1]+' μέλη';
      if((m=s.match(/^(\d+) offline$/)))return m[1]+' ανενεργοί';
    }
    return '';
  }

  var keysEn=Object.keys(MAP).sort(function(a,b){return b.length-a.length});
  var keysEl=Object.keys(REVERSE).sort(function(a,b){return b.length-a.length});
  function translateValue(value,target){
    var raw=String(value==null?'':value),lead=(raw.match(/^\s*/)||[''])[0],tail=(raw.match(/\s*$/)||[''])[0],core=raw.trim();
    if(!core)return raw;
    core=renameBil(core);
    var dyn=dynamicTranslate(core,target);if(dyn)return lead+dyn+tail;
    var map=target==='en'?MAP:REVERSE;
    if(map[core])return lead+map[core]+tail;
    var keys=target==='en'?keysEn:keysEl,out=core;
    for(var i=0;i<keys.length;i++){
      var k=keys[i];if(k.length<4||out.indexOf(k)<0)continue;
      out=out.split(k).join(map[k]);
    }
    return lead+renameBil(out)+tail;
  }

  function skipNode(node){
    try{
      var e=node.nodeType===3?node.parentElement:node;if(!e)return true;
      if(e.closest('script,style,textarea,[contenteditable="true"]'))return true;
      if(e.closest('#feedPage .postBody,#feedPage .textClamp,#feedPage .translatedText,#feedPage .commentText,#feedPage [data-user-text],.msgBody,.translatedText,.messageText,.chatBubble .body,.bubble .body,#spaceMsgs .msgBody,.roomTitleUser,.memberName,.nickname,.filename,.previewFileCard b,.storyItem small,.person b,.dmFriendRowV249235 b,.spaceTile>b,#chatName:not(:empty),[data-preserve-user-text]'))return true;
      return false;
    }catch(e){return true}
  }

  function translateTree(root){
    if(!root||translationBusy)return;translationBusy=true;
    var target=lang();
    try{
      var scope=root.nodeType===1?root:document.body;if(!scope){translationBusy=false;return}
      var list=[];
      if(scope.nodeType===1)list.push(scope);
      scope.querySelectorAll&&scope.querySelectorAll('[placeholder],[title],[aria-label],input[type="button"],input[type="submit"],option').forEach(function(e){list.push(e)});
      list.forEach(function(e){
        if(skipNode(e))return;
        ['placeholder','title','aria-label'].forEach(function(a){var v=e.getAttribute&&e.getAttribute(a);if(v){var n=translateValue(v,target);if(n!==v)e.setAttribute(a,n)}});
        if(e.tagName==='INPUT'&&/^(button|submit)$/i.test(e.type||'')){var v=e.value,n=translateValue(v,target);if(n!==v)e.value=n}
      });
      var walker=document.createTreeWalker(scope,NodeFilter.SHOW_TEXT,{acceptNode:function(n){return skipNode(n)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),n;
      while((n=walker.nextNode())){var old=n.nodeValue,neu=translateValue(old,target);if(neu!==old)n.nodeValue=neu}
      document.documentElement.lang=target;
      if(document.body){document.body.dataset.uiLang=target;document.body.setAttribute('data-ui-lang',target)}
      try{var b=window.OKITHAKI_ANDROID||window.AndroidBridge;if(b&&typeof b.setUiLanguage==='function')b.setUiLanguage(target)}catch(e){}
    }catch(e){console.warn('V249472 translation',e)}
    translationBusy=false;
  }

  function addCss(){
    if(document.getElementById('ithV249472Css'))return;
    var s=document.createElement('style');s.id='ithV249472Css';s.textContent=`
      /* Clear profile and policy controls on mobile. */
      #profilePage{padding-bottom:calc(var(--bar,68px) + 82px + env(safe-area-inset-bottom))!important}
      #profilePage .profileCleanWrap,#profilePage .profilePanelClean{max-width:980px!important;margin-left:auto!important;margin-right:auto!important}
      #profilePage .profilePanelToggle{min-height:54px!important;padding:12px 14px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;font-size:15px!important}
      #profilePage .profilePanelBody{gap:11px!important;padding:12px!important}
      #profilePage .btn,#profilePage button,.legalPanel .btn,.legalPanel button{min-height:46px!important;white-space:normal!important;line-height:1.25!important}
      #memberMenu.legalPanel{display:flex!important;flex-direction:column!important;inset:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))!important;max-height:none!important}
      #memberMenu.legalPanel .legalHeader{position:sticky!important;top:0!important;z-index:5!important;padding:10px!important;background:rgba(5,15,27,.97)!important;flex-wrap:wrap!important}
      #memberMenu.legalPanel .legalScroll{flex:1 1 auto!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;padding:12px!important}
      #memberMenu.legalPanel .legalActions{position:sticky!important;bottom:0!important;z-index:5!important;padding:11px!important;background:rgba(5,15,27,.97)!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
      #memberMenu .v249238NotifyPanel,#memberMenu .professionalCenter,#memberMenu [class*="professional" i]{padding-bottom:calc(20px + env(safe-area-inset-bottom))!important}
      #memberMenu .modeCardV249258,#memberMenu .companionCardV249258{min-height:72px!important;text-align:left!important;padding:12px!important}
      #${BIL_ID} .eye.l,#${BIL_ID} .eye.r,#${BIL_ID} .bilEye467.l,#${BIL_ID} .bilEye467.r,
      #${BIL_MENU_ID} .eye.l,#${BIL_MENU_ID} .eye.r,#${BIL_MENU_ID} .bilEye467.l,#${BIL_MENU_ID} .bilEye467.r{display:block!important;visibility:visible!important;opacity:1!important}
      #${BIL_ID},#${BIL_ID} .bilFace467,#${BIL_ID} .sokraMiniV249252,#${BIL_ID} .bilAliveV249466,#${BIL_ID} .shell,#${BIL_ID} .bilShell467,#${BIL_ID} .foot,#${BIL_ID} .bilFoot467{animation:none!important;transform:none!important}
      #${BIL_ID} .head,#${BIL_ID} .bilHead467,#${BIL_MENU_ID} .head,#${BIL_MENU_ID} .bilHead467{animation:ithBilSoftHead472 10s ease-in-out infinite!important;transform-origin:50% 105%!important}
      @keyframes ithBilSoftHead472{0%,100%{transform:rotate(-.45deg)}50%{transform:rotate(.55deg)}}
      #feedPage video[data-ith-active-audio-v249472="1"]{outline:1px solid rgba(255,255,255,.05)!important}
      @media(max-width:760px){
        #profilePage .avatarToolsClean,#profilePage .saveProfileRow,#profilePage .row{gap:8px!important}
        #profilePage .avatarToolsClean .btn,#profilePage .saveProfileRow .btn{flex:1 1 44%!important}
        #memberMenu.legalPanel .legalHeader b{flex:1 1 100%!important}
      }
    `;document.head.appendChild(s);
  }

  function normalBoot(){
    try{var q=new URLSearchParams(location.search);return !['from_push','call','session_id','dm','kind','message_id','channel'].some(function(k){return q.has(k)})}catch(e){return true}
  }
  function visualHome(){
    try{
      var st=window.state||I().state;if(st)st.page='home';
      if(document.body)document.body.dataset.page='home';
      document.querySelectorAll('.page').forEach(function(p){p.classList.remove('active')});
      var h=document.getElementById('homePage');if(h)h.classList.add('active');
      document.querySelectorAll('#nav button[data-page]').forEach(function(b){b.classList.toggle('active',b.dataset.page==='home')});
      window.dispatchEvent(new CustomEvent('ithaki:page-changed',{detail:{page:'home',reason:'v249472-normal-startup'}}));
    }catch(e){}
  }
  function forceHome(){
    if(window.__ITHAKI_V249475_BOOT_OWNER__)return;
    if(!bootLock||userNavigated||!normalBoot())return;
    try{var fn=I().stableRouteV249429||I().page||window.page;if(typeof fn==='function')fn.call(I(),'home','v249472-normal-startup');else visualHome()}catch(e){visualHome()}
  }
  function migrateBil(){
    if(window.__ITHAKI_V249475_OWNS_BIL__)return;
    try{if(localStorage.getItem(BIL_MIGRATION)!=='1'){localStorage.setItem(BIL_KEY,'1');localStorage.setItem('ithaki_companion_v249258','sokratakis');localStorage.setItem(BIL_MIGRATION,'1')}}catch(e){}
  }
  function bilFace(){
    return '<span class="sokraMiniV249252 bilAliveV249466"><i class="foot l"></i><i class="foot r"></i><i class="shell"></i><i class="head"><i class="eye l"></i><i class="eye r"></i><i class="smile"></i></i></span>';
  }
  function ensureEyePair(container){
    if(!container)return;
    var head=container.querySelector('.head,.bilHead467');if(!head)return;
    var left=head.querySelector('.eye.l,.bilEye467.l'),right=head.querySelector('.eye.r,.bilEye467.r');
    var klass=head.classList.contains('bilHead467')?'bilEye467':'eye';
    if(!left){left=document.createElement('i');left.className=klass+' l';head.appendChild(left)}
    if(!right){right=document.createElement('i');right.className=klass+' r';head.appendChild(right)}
    if(!head.querySelector('.smile,.bilSmile467')){var sm=document.createElement('i');sm.className=head.classList.contains('bilHead467')?'bilSmile467':'smile';head.appendChild(sm)}
  }
  function ensureBil(){if(window.__ITHAKI_V249523_SHARE_BIL_OWNER__)return null;
    if(window.__ITHAKI_V249475_OWNS_BIL__)return;
    migrateBil();
    var enabled=true;try{enabled=localStorage.getItem(BIL_KEY)!=='0'}catch(e){}
    if(!enabled)return;
    try{if(typeof I().applyBilStateV249471==='function')I().applyBilStateV249471()}catch(e){}
    var b=document.getElementById(BIL_ID);
    if(!b&&document.body){
      b=document.createElement('button');b.id=BIL_ID;b.type='button';b.innerHTML=bilFace();
      b.onclick=function(e){e.preventDefault();e.stopPropagation();var fn=I().openBilV249461;if(typeof fn==='function')return fn();};
      document.body.appendChild(b);
    }
    if(b){b.setAttribute('aria-label',tr('Άνοιγμα Bil','Open Bil'));ensureEyePair(b);var home=document.body&&document.body.dataset.page==='home';b.style.display=home?'grid':'none'}
    ensureEyePair(document.getElementById(BIL_MENU_ID));
  }

  function currentNotifyMode(){try{return localStorage.getItem('ithaki_push_mode_v249258')||'fcm_default'}catch(e){return 'fcm_default'}}
  function chooseBilNotification(on){
    try{localStorage.setItem(BIL_KEY,on?'1':'0');localStorage.setItem('ithaki_companion_v249258',on?'sokratakis':'none')}catch(e){}
    try{if(typeof window.setIthakiCompanionV249258==='function')window.setIthakiCompanionV249258(on?'sokratakis':'none')}catch(e){}
    try{if(typeof I().applyBilStateV249471==='function')I().applyBilStateV249471()}catch(e){}
    setTimeout(function(){renderNotificationSettings();ensureBil();translateTree(document.body)},30);
    return false;
  }
  function renderNotificationSettings(){
    var el=document.getElementById('notifySettingsV249258');if(!el)return '';
    var m=currentNotifyMode(),bilOn=true;try{bilOn=localStorage.getItem(BIL_KEY)!=='0'}catch(e){}
    var modes=[
      ['fcm_default','1. FCM προεπιλογή','Κλειστή εφαρμογή με Firebase/FCM, ανοιχτή εφαρμογή με εσωτερικό καμπανάκι. Προτείνεται.'],
      ['background','2. Παρασκήνιο','Για πιο ήπια λειτουργία όταν η εφαρμογή είναι στο παρασκήνιο.'],
      ['open_app','3. Ανοιχτή εφαρμογή','Ειδοποιήσεις μόνο όσο είσαι μέσα στην ΙΘΑΚΗ.'],
      ['stay_awake','4. Δεν κοιμάται','Κρατά ζωντανή σύνδεση. Πιο άμεσο, αλλά μπορεί να τρώει μπαταρία.'],
      ['no_closed','5. Χωρίς ειδοποιήσεις κλειστή συσκευή','Όταν η εφαρμογή είναι κλειστή, δεν εμφανίζει push από FCM.']
    ];
    var modeHtml=modes.map(function(x){return '<button class="modeCardV249258 '+(m===x[0]?'active':'')+'" onclick="return ITH.setNotificationMode(\''+x[0]+'\')"><b>'+esc(x[1])+'</b><small>'+esc(x[2])+'</small></button>'}).join('');
    var bilHtml='<button class="companionCardV249258 '+(bilOn?'active':'')+'" onclick="return ITH.setBilNotificationCompanionV249472(true)"><span style="display:inline-grid;width:54px;height:48px;place-items:center">'+bilFace()+'</span><b>Bil</b><small>Ο μικρός πράσινος φίλος της ΙΘΑΚΗΣ</small></button>'
      +'<button class="companionCardV249258 '+(!bilOn?'active':'')+'" onclick="return ITH.setBilNotificationCompanionV249472(false)"><b>Χωρίς Bil</b><small>Κρατά μόνο το απλό καμπανάκι.</small></button>';
    el.innerHTML='<div class="card"><b>🔔 Καθαρές επιλογές ειδοποιήσεων</b><div class="date">Διαλέγεις έναν τρόπο, για να μη μπερδεύονται διπλές ειδοποιήσεις/κλήσεις.</div><div class="modeGridV249258" style="margin-top:10px">'+modeHtml+'</div></div>'
      +'<div class="card"><b>🐢 Bil ειδοποιήσεων</b><div class="date">Τοπικό μόνο: χωρίς AI, χωρίς αποστολή στον server, χωρίς αλλαγή βάσης.</div><div class="companionGridV249258" style="margin-top:10px">'+bilHtml+'</div></div>'
      +'<div class="athinaCardV249258"><span style="display:grid;width:66px;height:56px;place-items:center">'+bilFace()+'</span><div class="athinaBubbleV249258"><b>Bil</b><div>'+esc(bilOn?'Γεια σου, πώς είσαι σήμερα;':'Οι ειδοποιήσεις θα εμφανίζονται απλά.')+'</div><small>'+esc('Θα σου δείχνω καθαρά μήνυμα, αίτημα φιλίας, like και νέο ακόλουθο.')+'</small></div></div>';
    ensureEyePair(el);translateTree(el);return el.innerHTML;
  }
  function installNotificationOverride(){
    if(window.__ITHAKI_V249475_OWNS_BIL__)return;
    var ith=I();
    ith.setBilNotificationCompanionV249472=chooseBilNotification;
    window.setBilNotificationCompanionV249472=chooseBilNotification;
    window.renderNotificationModeSettingsV249258=renderNotificationSettings;
    ith.renderNotificationModeSettingsV249258=renderNotificationSettings;
    if(!ith.__openNotif472Wrapped&&typeof ith.openNotificationSettingsV249238==='function'){
      var base=ith.openNotificationSettingsV249238;
      ith.openNotificationSettingsV249238=function(){var r=base.apply(this,arguments);setTimeout(renderNotificationSettings,0);setTimeout(renderNotificationSettings,120);return r};
      ith.__openNotif472Wrapped=true;
    }
  }

  function visibleScore(v){
    try{var r=v.getBoundingClientRect(),w=Math.max(0,Math.min(innerWidth,r.right)-Math.max(0,r.left)),h=Math.max(0,Math.min(innerHeight,r.bottom)-Math.max(0,r.top));return w*h}catch(e){return 0}
  }
  function onFeed(){return !!(document.body&&document.body.dataset.page==='feed')}
  function stopMedia(v){try{v.pause()}catch(e){}try{v.muted=true;v.defaultMuted=true;v.removeAttribute('data-ith-active-audio-v249472')}catch(e){}}
  function stopAllFeedMedia(){
    activeFeedVideo=null;
    try{document.querySelectorAll('#feedPage video,#feedPage audio,video.feedVideo').forEach(stopMedia)}catch(e){}
  }
  function chooseVisibleVideo(){
    var videos=[];try{videos=Array.prototype.slice.call(document.querySelectorAll('#feedPage video,video.feedVideo'))}catch(e){}
    var best=null,score=0;videos.forEach(function(v){var s=visibleScore(v);if(s>score){score=s;best=v}});
    return best;
  }
  function enforceSingleFeedAudio(tryPlay){
    if(window.__ITHAKI_V249473_FEED_AUDIO_OWNER__) return null;
    if(!onFeed()||document.hidden){stopAllFeedMedia();return null}
    var videos=[];try{videos=Array.prototype.slice.call(document.querySelectorAll('#feedPage video,video.feedVideo'))}catch(e){}
    if(!videos.length)return null;
    var active=(activeFeedVideo&&activeFeedVideo.isConnected&&visibleScore(activeFeedVideo)>0)?activeFeedVideo:chooseVisibleVideo();
    activeFeedVideo=active;
    videos.forEach(function(v){
      if(v!==active){stopMedia(v);return}
      try{v.defaultMuted=false;v.muted=false;v.volume=1;v.removeAttribute('muted');v.setAttribute('playsinline','');v.setAttribute('webkit-playsinline','');v.controls=true;v.setAttribute('data-ith-active-audio-v249472','1')}catch(e){}
      if(tryPlay){try{var p=v.play();if(p&&p.catch)p.catch(function(){})}catch(e){}}
    });
    try{document.querySelectorAll('#feedPage audio').forEach(function(a){if(a!==active)stopMedia(a)})}catch(e){}
    return active;
  }
  function scheduleAudio(){
    if(scrollScheduled)return;scrollScheduled=true;requestAnimationFrame(function(){scrollScheduled=false;enforceSingleFeedAudio(false)})
  }
  function installAudio(){
    if(window.__ITHAKI_V249475_OWNS_AUDIO__)return;
    try{localStorage.setItem(SOUND_KEY,'1')}catch(e){}
    I().enforceSingleFeedAudioV249472=enforceSingleFeedAudio;
    I().stopAllFeedMediaV249472=stopAllFeedMedia;
    document.addEventListener('play',function(ev){
      var v=ev.target;if(!v||String(v.tagName).toLowerCase()!=='video'||!v.closest('#feedPage'))return;
      activeFeedVideo=v;soundUnlocked=true;enforceSingleFeedAudio(false);
    },true);
    ['pointerdown','touchend','click'].forEach(function(n){document.addEventListener(n,function(ev){if(ev.target&&ev.target.closest&&ev.target.closest('#feedPage')){soundUnlocked=true;enforceSingleFeedAudio(true)}},{capture:true,passive:true})});
    window.addEventListener('scroll',scheduleAudio,{passive:true,capture:true});
    window.addEventListener('resize',scheduleAudio,{passive:true});
    window.addEventListener('pagehide',stopAllFeedMedia);
    window.addEventListener('blur',function(){if(document.hidden)stopAllFeedMedia()});
    document.addEventListener('visibilitychange',function(){if(document.hidden)stopAllFeedMedia();else scheduleAudio()},{passive:true});
    window.addEventListener('ithaki:page-changed',function(ev){var p=String(ev&&ev.detail&&ev.detail.page||document.body&&document.body.dataset.page||'');if(p!=='feed')stopAllFeedMedia();else setTimeout(function(){enforceSingleFeedAudio(soundUnlocked)},80)});
    setInterval(function(){if(onFeed())enforceSingleFeedAudio(false)},700);
  }

  function wrapLanguage(){
    var ith=I(),base=ith.setUiLang||window.setUiLangV249463||window.ITH_FORCE_LANG;
    if(typeof base==='function'&&!base.__v249472Wrapped){
      var w=function(next){var r=base.apply(this,arguments);[0,60,160,400,900].forEach(function(ms){setTimeout(function(){translateTree(document.body);renderNotificationSettings()},ms)});return r};
      w.__v249472Wrapped=true;ith.setUiLang=w;window.setUiLangV249463=w;window.ITH_FORCE_LANG=w;
    }
  }
  function run(){
    addCss();installNotificationOverride();wrapLanguage();ensureBil();translateTree(document.body);
    if(onFeed())enforceSingleFeedAudio(false);
    document.documentElement.setAttribute('data-ithaki-v249472','complete-translation-bil-home-single-feed-audio');
  }
  function schedule(){
    if(scheduled)return;scheduled=true;setTimeout(function(){scheduled=false;run()},30);
  }
  function install(){
    addCss();migrateBil();installAudio();installNotificationOverride();
    document.addEventListener('click',function(ev){
      if(Date.now()-bootStarted<420)return;
      var t=ev.target&&ev.target.closest&&ev.target.closest('#nav button,[data-page],[data-v249461-route],[data-v249461-action],a[href]');
      if(t)userNavigated=true;
    },true);
    if(normalBoot()){[40,180,480,900,1500,2200].forEach(function(ms){setTimeout(forceHome,ms)});setTimeout(function(){bootLock=false;sessionStorage.setItem('ith_v249472_home_boot','1')},2600)}else bootLock=false;
    run();
    if(document.body&&!observer){observer=new MutationObserver(function(records){var needs=false,media=false;records.forEach(function(r){if(r.addedNodes&&r.addedNodes.length){needs=true;Array.prototype.forEach.call(r.addedNodes,function(n){if(n&&n.nodeType===1&&(n.matches&&n.matches('video,audio')||n.querySelector&&n.querySelector('video,audio')))media=true})}});if(needs)schedule();if(media)scheduleAudio()});observer.observe(document.body,{subtree:true,childList:true,characterData:true,attributes:true,attributeFilter:['placeholder','title','aria-label','class','data-page']})}
    window.addEventListener('ithaki:page-changed',schedule);
    window.addEventListener('storage',schedule);
    [80,220,500,1000,1800,3200,6000,10000].forEach(function(ms){setTimeout(run,ms)});
    setInterval(run,2500);
    Object.assign(I(),{applyCompleteTranslationV249472:function(){translateTree(document.body)},forceHomeV249472:forceHome,ensureBilTwoEyesV249472:ensureBil,renderNotificationSettingsV249472:renderNotificationSettings});
  }
  if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',install,{once:true});else install();
})();
