{"id":683,"date":"2025-06-04T14:30:46","date_gmt":"2025-06-04T14:30:46","guid":{"rendered":"https:\/\/meetgle.com\/?page_id=683"},"modified":"2025-06-14T22:36:01","modified_gmt":"2025-06-14T22:36:01","slug":"video-chat","status":"publish","type":"page","link":"https:\/\/meetgle.com\/pl\/video-chat\/","title":{"rendered":"Rozmowa wideo"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"683\" class=\"elementor elementor-683\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-a2b87ac elementor-section-full_width elementor-section-height-min-height elementor-section-height-default elementor-section-items-middle\" data-id=\"a2b87ac\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-95269d0\" data-id=\"95269d0\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c6cbd4c elementor-widget elementor-widget-shortcode\" data-id=\"c6cbd4c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">        <style>\n        \/* Only dynamic CSS variables from WordPress settings - everything else moved to external CSS *\/\n        :root {\n          --button-color: #EC4899;\n          --button-hover-color: #A855F7;\n          --button-active-color: #EC4899;\n          --meetgle-logo-url: url('https:\/\/meetgle.com\/wp-content\/uploads\/2025\/06\/meetgle_logo_new3.png');\n        }\n        \n        \/* ========================================\n           SKELETON LOADING STYLES (INLINE)\n           Shows immediately before external CSS loads\n           ======================================== *\/\n        .meetgle-skeleton {\n          position: fixed;\n          top: 0;\n          left: 0;\n          width: 100vw;\n          height: 100vh;\n          z-index: 99999;\n          display: flex;\n          background: #0F0F0F;\n          opacity: 1;\n          transition: opacity 0.3s ease-out;\n        }\n        \n        .meetgle-skeleton.hidden {\n          opacity: 0;\n          pointer-events: none;\n        }\n\n        .meetgle-skeleton.meetgle-skeleton-stage {\n          display: flex;\n          flex-direction: column;\n          overflow: hidden;\n          background: #0b0b0d;\n          color: #fff;\n          font-family: \"Sora\", \"Nunito\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n        }\n\n        @keyframes stage-skeleton-pulse {\n          0%, 100% { opacity: .72; }\n          50% { opacity: 1; }\n        }\n\n        \/* Neutral placeholder block \u2014 the only fill the skeleton uses. *\/\n        .stage-skeleton-block {\n          background: rgba(255,255,255,.05);\n          border-radius: 8px;\n          animation: stage-skeleton-pulse 1.8s ease-in-out infinite;\n        }\n\n        .stage-skeleton-brand-block {\n          width: 116px;\n          height: 27px;\n        }\n\n        .stage-skeleton-top,\n        .stage-skeleton-center,\n        .stage-skeleton-promo,\n        .stage-skeleton-shelf {\n          position: relative;\n          z-index: 2;\n        }\n\n        .stage-skeleton-top {\n          display: flex;\n          align-items: center;\n          gap: 8px;\n          padding: 14px 16px 0;\n          padding-top: calc(14px + env(safe-area-inset-top));\n        }\n\n        .stage-skeleton-actions {\n          margin-left: auto;\n          display: flex;\n          align-items: center;\n          gap: 8px;\n        }\n\n        .stage-skeleton-seg,\n        .stage-skeleton-pill,\n        .stage-skeleton-ico,\n        .stage-skeleton-avatar,\n        .stage-skeleton-online,\n        .stage-skeleton-filter {\n          background: rgba(255,255,255,.05);\n        }\n\n        .stage-skeleton-seg {\n          width: 166px;\n          height: 40px;\n          border-radius: 999px;\n          opacity: .9;\n          animation: stage-skeleton-pulse 1.8s ease-in-out infinite;\n        }\n\n        .stage-skeleton-pill {\n          width: 78px;\n          height: 40px;\n          border-radius: 999px;\n          opacity: .95;\n          animation: stage-skeleton-pulse 1.8s ease-in-out infinite .08s;\n        }\n\n        .stage-skeleton-divider {\n          width: 1px;\n          height: 22px;\n          margin: 0 4px;\n          background: rgba(255,255,255,.16);\n        }\n\n        .stage-skeleton-ico,\n        .stage-skeleton-avatar {\n          width: 38px;\n          height: 38px;\n          border-radius: 999px;\n          animation: stage-skeleton-pulse 1.8s ease-in-out infinite .16s;\n        }\n\n        .stage-skeleton-avatar {\n          overflow: hidden;\n        }\n\n        .stage-skeleton-center {\n          flex: 1;\n          min-height: 0;\n          display: flex;\n          flex-direction: column;\n          align-items: center;\n          justify-content: center;\n          gap: 18px;\n          padding: 0 20px;\n        }\n\n        .stage-skeleton-online {\n          width: 220px;\n          height: 38px;\n          border-radius: 999px;\n          animation: stage-skeleton-pulse 1.8s ease-in-out infinite;\n        }\n\n        .stage-skeleton-title-line {\n          width: min(360px, 70vw);\n          height: 30px;\n          border-radius: 10px;\n        }\n\n        .stage-skeleton-title-line.is-sub {\n          width: min(440px, 84vw);\n        }\n\n        .stage-skeleton-head-line {\n          width: 90px;\n          height: 13px;\n          border-radius: 6px;\n        }\n\n        .stage-skeleton-head-line.is-sm {\n          width: 64px;\n        }\n\n        .stage-skeleton-cta-row {\n          display: flex;\n          align-items: center;\n          gap: 12px;\n        }\n\n        .stage-skeleton-cta {\n          width: 274px;\n          height: 60px;\n          border-radius: 999px;\n          background: rgba(255,255,255,.05);\n          animation: stage-skeleton-pulse 1.8s ease-in-out infinite .1s;\n        }\n\n        .stage-skeleton-filter {\n          width: 60px;\n          height: 60px;\n          border-radius: 999px;\n          animation: stage-skeleton-pulse 1.8s ease-in-out infinite .18s;\n        }\n\n        .stage-skeleton-promo {\n          width: calc(100% - 32px);\n          max-width: 620px;\n          min-height: 66px;\n          margin: 0 auto 12px;\n          border-radius: 20px;\n          background: rgba(255,255,255,.05);\n          animation: stage-skeleton-pulse 1.8s ease-in-out infinite .2s;\n        }\n\n        .stage-skeleton-shelf {\n          flex: none;\n          padding-bottom: calc(12px + env(safe-area-inset-bottom));\n        }\n\n        .stage-skeleton-shelf-head {\n          display: flex;\n          align-items: center;\n          justify-content: space-between;\n          padding: 0 18px 9px;\n          color: rgba(255,255,255,.62);\n          font-size: 12px;\n          font-weight: 600;\n        }\n\n        .stage-skeleton-rail {\n          display: flex;\n          gap: 9px;\n          overflow: hidden;\n          padding: 2px 16px;\n        }\n\n        .stage-skeleton-card {\n          flex: 0 0 150px;\n          aspect-ratio: 3 \/ 4.3;\n          border-radius: 18px;\n          background: rgba(255,255,255,.05);\n          animation: stage-skeleton-pulse 1.8s ease-in-out infinite;\n        }\n\n        @media (max-width: 860px) {\n          .stage-skeleton-top {\n            padding-left: 14px;\n            padding-right: 14px;\n            gap: 6px;\n          }\n\n          .stage-skeleton-seg,\n          .stage-skeleton-divider,\n          .stage-skeleton-ico:first-of-type {\n            display: none;\n          }\n\n          .stage-skeleton-pill,\n          .stage-skeleton-ico,\n          .stage-skeleton-avatar {\n            width: 36px;\n            height: 36px;\n          }\n\n          .stage-skeleton-pill {\n            width: 72px;\n          }\n\n          .stage-skeleton-center {\n            gap: 13px;\n            padding: 0 18px;\n          }\n\n          .stage-skeleton-online {\n            height: 34px;\n          }\n\n          .stage-skeleton-cta {\n            width: 240px;\n            height: 54px;\n          }\n\n          .stage-skeleton-filter {\n            width: 54px;\n            height: 54px;\n          }\n\n          .stage-skeleton-promo {\n            width: calc(100% - 28px);\n            min-height: 58px;\n            margin-bottom: 10px;\n            border-radius: 18px;\n          }\n\n          .stage-skeleton-shelf-head {\n            padding: 0 16px 8px;\n            font-size: 11.5px;\n          }\n\n          .stage-skeleton-rail {\n            padding: 2px 14px;\n            gap: 8px;\n          }\n\n          .stage-skeleton-card {\n            flex-basis: clamp(112px,29vw,136px);\n            border-radius: 16px;\n          }\n        }\n        \n        \/* Shimmer animation (kept \u2014 used by the premium loading spinner) *\/\n        @keyframes skeleton-shimmer {\n          0% { background-position: -200% 0; }\n          100% { background-position: 200% 0; }\n        }\n        <\/style>\n        \n        <!-- Skeleton Loading Screen - Shows immediately while assets load -->\n                <div id=\"meetgleSkeleton\" class=\"meetgle-skeleton meetgle-skeleton-stage\" >\n                    <header class=\"stage-skeleton-top\" aria-hidden=\"true\">\n            <span class=\"stage-skeleton-block stage-skeleton-brand-block\"><\/span>\n            <span class=\"stage-skeleton-actions\">\n              <span class=\"stage-skeleton-seg\"><\/span>\n              <span class=\"stage-skeleton-pill\"><\/span>\n              <span class=\"stage-skeleton-divider\"><\/span>\n              <span class=\"stage-skeleton-ico\"><\/span>\n              <span class=\"stage-skeleton-ico\"><\/span>\n              <span class=\"stage-skeleton-avatar\"><\/span>\n            <\/span>\n          <\/header>\n          <main class=\"stage-skeleton-center\" aria-hidden=\"true\">\n            <span class=\"stage-skeleton-online\"><\/span>\n            <span class=\"stage-skeleton-block stage-skeleton-title-line\"><\/span>\n            <span class=\"stage-skeleton-block stage-skeleton-title-line is-sub\"><\/span>\n            <div class=\"stage-skeleton-cta-row\">\n              <span class=\"stage-skeleton-cta\"><\/span>\n              <span class=\"stage-skeleton-filter\"><\/span>\n            <\/div>\n          <\/main>\n          <div class=\"stage-skeleton-promo\" aria-hidden=\"true\"><\/div>\n          <section class=\"stage-skeleton-shelf\" aria-hidden=\"true\">\n            <div class=\"stage-skeleton-shelf-head\">\n              <span class=\"stage-skeleton-block stage-skeleton-head-line\"><\/span>\n              <span class=\"stage-skeleton-block stage-skeleton-head-line is-sm\"><\/span>\n            <\/div>\n            <div class=\"stage-skeleton-rail\">\n                            <span class=\"stage-skeleton-card\"><\/span>\n                            <span class=\"stage-skeleton-card\"><\/span>\n                            <span class=\"stage-skeleton-card\"><\/span>\n                            <span class=\"stage-skeleton-card\"><\/span>\n                            <span class=\"stage-skeleton-card\"><\/span>\n                            <span class=\"stage-skeleton-card\"><\/span>\n                            <span class=\"stage-skeleton-card\"><\/span>\n                            <span class=\"stage-skeleton-card\"><\/span>\n                            <span class=\"stage-skeleton-card\"><\/span>\n                            <span class=\"stage-skeleton-card\"><\/span>\n                            <span class=\"stage-skeleton-card\"><\/span>\n                            <span class=\"stage-skeleton-card\"><\/span>\n                          <\/div>\n          <\/section>\n                  <\/div>\n\n                <div id=\"meetgle-video-container\" class=\"meetgle-stage-shell is-idle\" data-stage-enabled=\"1\" data-stage-premium=\"0\" data-stage-embed=\"0\" data-stage-extra-url=\"https:\/\/meetgle.com\/goto\/nsfw\/\">\n                        <div class=\"meetgle-stage-bg\" aria-hidden=\"true\">\n                                <img src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile1.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile2.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile3.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile4.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile5.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile6.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile7.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile8.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile9.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile10.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile11.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile12.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile13.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile14.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile15.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile16.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile17.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile18.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                            <\/div>\n            <div class=\"meetgle-stage-shade\" aria-hidden=\"true\"><\/div>\n\n            <header class=\"meetgle-stage-topbar\" aria-label=\"Meetgle\">\n                                <a class=\"meetgle-stage-brand has-logo has-mark\" href=\"https:\/\/meetgle.com\/pl\/\" aria-label=\"Meetgle home\">\n                                        <img decoding=\"async\" src=\"https:\/\/meetgle.com\/wp-content\/uploads\/2025\/06\/meetgle_logo_new3.png\" alt=\"Meetgle\" \/>\n                                                            <img decoding=\"async\" class=\"meetgle-stage-brand-mark\" src=\"https:\/\/meetgle.com\/wp-content\/uploads\/2026\/03\/meetgle-icon-150x150.png?wsr\" alt=\"\" aria-hidden=\"true\" \/>\n                                    <\/a>\n                <nav class=\"meetgle-stage-actions\" aria-label=\"Chat actions\">\n                    <span class=\"meetgle-stage-seg\" role=\"group\" aria-label=\"Rewards\">\n                        <button type=\"button\" data-meetgle-stage-action=\"leaderboard\" title=\"View Top Earners This Week\" aria-label=\"View Top Earners This Week\">\n                            <svg aria-hidden=\"true\" viewBox=\"0 0 24 24\"><path d=\"M8 21h8M12 17v4M7 4h10v5a5 5 0 0 1-10 0V4Z\"\/><path d=\"M7 6H4a3 3 0 0 0 3 5M17 6h3a3 3 0 0 1-3 5\"\/><\/svg>\n                        <\/button>\n                        <button type=\"button\" data-meetgle-stage-action=\"history\" title=\"Chat History\" aria-label=\"Chat History\">\n                            <svg aria-hidden=\"true\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"8.5\"\/><path d=\"M12 7.5V12l3 2\"\/><\/svg>\n                        <\/button>\n                        <button type=\"button\" class=\"is-wide\" data-meetgle-stage-action=\"streak\" title=\"Your Daily Streak\" aria-label=\"Your Daily Streak\">\n                            <svg aria-hidden=\"true\" viewBox=\"0 0 24 24\"><path d=\"M12 3s5 4 5 9a5 5 0 0 1-10 0c0-2 1-3.5 2-5 .5 1.5 1.5 2 1.5 2S10 5.5 12 3Z\"\/><\/svg>\n                            <span>0<\/span>\n                        <\/button>\n                        <button type=\"button\" data-meetgle-stage-action=\"store\" title=\"Spark Store\" aria-label=\"Spark Store\">\n                            <svg aria-hidden=\"true\" viewBox=\"0 0 24 24\"><rect x=\"4\" y=\"9\" width=\"16\" height=\"11\" rx=\"2\"\/><path d=\"M4 13h16M12 9v11M12 9s-4 .2-5-2c-.8-1.8 1-3.5 2.7-2.7C11.7 5.2 12 9 12 9Zm0 0s4 .2 5-2c.8-1.8-1-3.5-2.7-2.7C12.3 5.2 12 9 12 9Z\"\/><\/svg>\n                        <\/button>\n                    <\/span>\n                    <button type=\"button\" class=\"meetgle-stage-energy meetgle-stage-streak-mobile\" data-meetgle-stage-action=\"streak\" title=\"Your Daily Streak\" aria-label=\"Your Daily Streak\">\n                        <svg aria-hidden=\"true\" viewBox=\"0 0 24 24\"><path d=\"M12 3s5 4 5 9a5 5 0 0 1-10 0c0-2 1-3.5 2-5 .5 1.5 1.5 2 1.5 2S10 5.5 12 3Z\"\/><\/svg>\n                        <span>0<\/span>\n                    <\/button>\n                    <button type=\"button\" class=\"meetgle-stage-energy meetgle-stage-sparks\" data-meetgle-stage-action=\"spark-info\" title=\"Login to start earning Sparks!\">\n                        <svg aria-hidden=\"true\" viewBox=\"0 0 24 24\"><path d=\"M13 2 5 13h6l-1 9 9-12h-6l1-8Z\"\/><\/svg>\n                        <span data-stage-spark-balance>0<\/span>\n                    <\/button>\n                    <span class=\"meetgle-stage-divider\" aria-hidden=\"true\"><\/span>\n                    <button type=\"button\" class=\"meetgle-stage-icon meetgle-stage-mail\" data-meetgle-stage-action=\"messages\" title=\"Messages\">\n                        <svg aria-hidden=\"true\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"3\"\/><path d=\"m4 7 8 6 8-6\"\/><\/svg>\n                        <span class=\"meetgle-stage-badge\" data-stage-msg-badge role=\"status\" aria-live=\"polite\" aria-atomic=\"true\" style=\"display:none;\">0<\/span>\n                    <\/button>\n                    <button type=\"button\" class=\"meetgle-stage-icon\" data-meetgle-stage-action=\"notifications\" title=\"Notifications\">\n                        <svg aria-hidden=\"true\" viewBox=\"0 0 24 24\"><path d=\"M6 9a6 6 0 1 1 12 0c0 5 2 6 2 6H4s2-1 2-6\"\/><path d=\"M10.3 19a2 2 0 0 0 3.4 0\"\/><\/svg>\n                        <span class=\"meetgle-stage-badge\" data-stage-notif-badge role=\"status\" aria-live=\"polite\" aria-atomic=\"true\" style=\"display:none;\">0<\/span>\n                    <\/button>\n                    <button type=\"button\" class=\"meetgle-stage-avatar\" data-meetgle-stage-action=\"sheet\" title=\"Profile\">\n                        <img decoding=\"async\" src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/avatar.jpg\" alt=\"\" \/>\n                    <\/button>\n                <\/nav>\n            <\/header>\n\n            <main class=\"meetgle-stage-center\">\n                <div class=\"meetgle-stage-online\">\n                    <span class=\"meetgle-stage-pulse\"><\/span>\n                    <span class=\"meetgle-stage-online-txt\"><b data-stage-live-count>7,208<\/b>&nbsp;people are live right now<\/span>\n                <\/div>\n                <h1>Random Video Chat<br><span>The Best Omegle Alternative<\/span><\/h1>\n                <div class=\"meetgle-stage-cta-row\">\n                    <button type=\"button\" class=\"meetgle-stage-cta\" data-meetgle-stage-action=\"start\">\n                        <span class=\"meetgle-stage-stack\">\n                            <img loading=\"lazy\" src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/ava1.webp\" alt=\"\" width=\"150\" height=\"150\" loading=\"lazy\" decoding=\"async\" onerror=\"this.onerror=null;this.src='https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/ava1.jpg';\" \/>\n                            <img loading=\"lazy\" src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/ava2.webp\" alt=\"\" width=\"150\" height=\"150\" loading=\"lazy\" decoding=\"async\" onerror=\"this.onerror=null;this.src='https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/ava2.jpg';\" \/>\n                            <img loading=\"lazy\" src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/ava3.webp\" alt=\"\" width=\"150\" height=\"150\" loading=\"lazy\" decoding=\"async\" onerror=\"this.onerror=null;this.src='https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/ava3.jpg';\" \/>\n                        <\/span>\n                        <span>Start Video Chat<\/span>\n                    <\/button>\n                    <button type=\"button\" class=\"meetgle-stage-filter\" data-meetgle-stage-action=\"filters\" aria-label=\"Match Preferences\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M4 7h10M18 7h2M4 17h2M10 17h10\"\/><circle cx=\"16\" cy=\"7\" r=\"2.5\"\/><circle cx=\"8\" cy=\"17\" r=\"2.5\"\/><\/svg>\n                    <\/button>\n                <\/div>\n            <\/main>\n\n                        <button type=\"button\" class=\"meetgle-stage-promo\" data-meetgle-stage-action=\"only-girls\" aria-label=\"Only Girls\">\n                <span class=\"meetgle-stage-stackwrap\">\n                    <span class=\"meetgle-stage-stack\">\n                                                <img loading=\"lazy\" src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/ava11.webp\" alt=\"\" width=\"150\" height=\"150\" loading=\"lazy\" decoding=\"async\" onerror=\"this.onerror=null;this.src='https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/ava11.jpg';\" \/>\n                                                <img loading=\"lazy\" src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/ava12.webp\" alt=\"\" width=\"150\" height=\"150\" loading=\"lazy\" decoding=\"async\" onerror=\"this.onerror=null;this.src='https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/ava12.jpg';\" \/>\n                                                <img loading=\"lazy\" src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/ava9.webp\" alt=\"\" width=\"150\" height=\"150\" loading=\"lazy\" decoding=\"async\" onerror=\"this.onerror=null;this.src='https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/ava9.jpg';\" \/>\n                                            <\/span>\n                    <span class=\"meetgle-stage-vcheck\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\"><path d=\"m5 13 4 4L19 7\"\/><\/svg><\/span>\n                <\/span>\n                <span class=\"meetgle-stage-promo-copy\">\n                    <span class=\"meetgle-stage-promo-title\">Only Girls<\/span>\n                    <span class=\"meetgle-stage-promo-sub\"><span class=\"meetgle-stage-green-dot\"><\/span><b>1,136<\/b><span class=\"meetgle-stage-long\">&nbsp;verified girls online now<\/span><span class=\"meetgle-stage-short\">&nbsp;girls online<\/span><\/span>\n                <\/span>\n                <span class=\"meetgle-stage-promo-go\">Try it now <svg class=\"meetgle-stage-promo-arrow\" aria-hidden=\"true\" viewBox=\"0 0 24 24\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/span>\n            <\/button>\n            \n            <section class=\"meetgle-stage-shelf\">\n                <div class=\"meetgle-stage-shelf-head\">\n                    <span class=\"meetgle-stage-shelf-label\"><span class=\"meetgle-stage-pulse\"><\/span> Live now<\/span>\n                    <button type=\"button\" data-meetgle-stage-action=\"discover\">Discover <span>all<\/span><svg viewBox=\"0 0 24 24\"><path d=\"m9 6 6 6-6 6\"\/><\/svg><\/button>\n                <\/div>\n                <div class=\"meetgle-stage-rail\">\n                                        <article class=\"meetgle-stage-person-card\">\n                        <span class=\"meetgle-stage-online-dot\"><\/span>\n                        <img class=\"meetgle-stage-person-photo\" src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile19.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" \/>\n                        <span class=\"meetgle-stage-person-meta\">\n                                                        <span class=\"meetgle-stage-person-age\">27 \u00b7 \ud83c\udde8\ud83c\uddff<\/span>\n                        <\/span>\n                    <\/article>\n                                        <article class=\"meetgle-stage-person-card\">\n                        <span class=\"meetgle-stage-online-dot\"><\/span>\n                        <img class=\"meetgle-stage-person-photo\" src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile10.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" \/>\n                        <span class=\"meetgle-stage-person-meta\">\n                                                        <span class=\"meetgle-stage-person-age\">26 \u00b7 \ud83c\udde8\ud83c\uddf1<\/span>\n                        <\/span>\n                    <\/article>\n                                        <article class=\"meetgle-stage-person-card\">\n                        <span class=\"meetgle-stage-online-dot\"><\/span>\n                        <img class=\"meetgle-stage-person-photo\" src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile16.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" \/>\n                        <span class=\"meetgle-stage-person-meta\">\n                                                        <span class=\"meetgle-stage-person-age\">25 \u00b7 \ud83c\udde8\ud83c\udde6<\/span>\n                        <\/span>\n                    <\/article>\n                                        <article class=\"meetgle-stage-person-card\">\n                        <span class=\"meetgle-stage-online-dot\"><\/span>\n                        <img class=\"meetgle-stage-person-photo\" src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile12.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" \/>\n                        <span class=\"meetgle-stage-person-meta\">\n                                                        <span class=\"meetgle-stage-person-age\">24 \u00b7 \ud83c\uddf8\ud83c\uddea<\/span>\n                        <\/span>\n                    <\/article>\n                                        <article class=\"meetgle-stage-person-card\">\n                        <span class=\"meetgle-stage-online-dot\"><\/span>\n                        <img class=\"meetgle-stage-person-photo\" src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile17.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" \/>\n                        <span class=\"meetgle-stage-person-meta\">\n                                                        <span class=\"meetgle-stage-person-age\">28 \u00b7 \ud83c\udde9\ud83c\uddf0<\/span>\n                        <\/span>\n                    <\/article>\n                                        <article class=\"meetgle-stage-person-card\">\n                        <span class=\"meetgle-stage-online-dot\"><\/span>\n                        <img class=\"meetgle-stage-person-photo\" src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile28.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" \/>\n                        <span class=\"meetgle-stage-person-meta\">\n                                                        <span class=\"meetgle-stage-person-age\">26 \u00b7 \ud83c\uddec\ud83c\uddf7<\/span>\n                        <\/span>\n                    <\/article>\n                                        <article class=\"meetgle-stage-person-card\">\n                        <span class=\"meetgle-stage-online-dot\"><\/span>\n                        <img class=\"meetgle-stage-person-photo\" src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile11.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" \/>\n                        <span class=\"meetgle-stage-person-meta\">\n                                                        <span class=\"meetgle-stage-person-age\">23 \u00b7 \ud83c\uddfa\ud83c\uddf8<\/span>\n                        <\/span>\n                    <\/article>\n                                        <article class=\"meetgle-stage-person-card\">\n                        <span class=\"meetgle-stage-online-dot\"><\/span>\n                        <img class=\"meetgle-stage-person-photo\" src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile14.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" \/>\n                        <span class=\"meetgle-stage-person-meta\">\n                                                        <span class=\"meetgle-stage-person-age\">25 \u00b7 \ud83c\udde6\ud83c\uddf7<\/span>\n                        <\/span>\n                    <\/article>\n                                        <article class=\"meetgle-stage-person-card\">\n                        <span class=\"meetgle-stage-online-dot\"><\/span>\n                        <img class=\"meetgle-stage-person-photo\" src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile4.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" \/>\n                        <span class=\"meetgle-stage-person-meta\">\n                                                        <span class=\"meetgle-stage-person-age\">20 \u00b7 \ud83c\uddee\ud83c\uddea<\/span>\n                        <\/span>\n                    <\/article>\n                                        <article class=\"meetgle-stage-person-card\">\n                        <span class=\"meetgle-stage-online-dot\"><\/span>\n                        <img class=\"meetgle-stage-person-photo\" src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile20.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" \/>\n                        <span class=\"meetgle-stage-person-meta\">\n                                                        <span class=\"meetgle-stage-person-age\">24 \u00b7 \ud83c\uddf3\ud83c\uddf1<\/span>\n                        <\/span>\n                    <\/article>\n                                        <article class=\"meetgle-stage-person-card\">\n                        <span class=\"meetgle-stage-online-dot\"><\/span>\n                        <img class=\"meetgle-stage-person-photo\" src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile27.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" \/>\n                        <span class=\"meetgle-stage-person-meta\">\n                                                        <span class=\"meetgle-stage-person-age\">24 \u00b7 \ud83c\uddea\ud83c\uddf8<\/span>\n                        <\/span>\n                    <\/article>\n                                        <article class=\"meetgle-stage-person-card\">\n                        <span class=\"meetgle-stage-online-dot\"><\/span>\n                        <img class=\"meetgle-stage-person-photo\" src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw3\/sm\/profile23.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" \/>\n                        <span class=\"meetgle-stage-person-meta\">\n                                                        <span class=\"meetgle-stage-person-age\">22 \u00b7 \ud83c\udde7\ud83c\uddf7<\/span>\n                        <\/span>\n                    <\/article>\n                                    <\/div>\n            <\/section>\n\n            <nav class=\"meetgle-stage-dock\" aria-label=\"Primary actions\">\n                <button type=\"button\" data-meetgle-stage-action=\"discover\">\n                    <svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"3\" width=\"7.5\" height=\"7.5\" rx=\"2\"\/><rect x=\"13.5\" y=\"3\" width=\"7.5\" height=\"7.5\" rx=\"2\"\/><rect x=\"3\" y=\"13.5\" width=\"7.5\" height=\"7.5\" rx=\"2\"\/><rect x=\"13.5\" y=\"13.5\" width=\"7.5\" height=\"7.5\" rx=\"2\"\/><\/svg>\n                    Discover                <\/button>\n                <button type=\"button\" class=\"active\" data-meetgle-stage-action=\"start\">\n                    <svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"6\" width=\"13\" height=\"12\" rx=\"3\"\/><path d=\"m16 10 5-3v10l-5-3\"\/><\/svg>\n                    Start Chat                <\/button>\n                <button type=\"button\" data-meetgle-stage-action=\"messages\">\n                    <svg viewBox=\"0 0 24 24\"><path d=\"M21 12a8 8 0 0 1-8 8H4l2-3a8 8 0 1 1 15-5Z\"\/><\/svg>\n                    Messages                    <span class=\"meetgle-stage-dock-msgbadge\" data-stage-msg-badge style=\"display:none;\">0<\/span>\n                <\/button>\n            <\/nav>\n\n            <div class=\"meetgle-stage-overlay\" data-meetgle-stage-overlay aria-hidden=\"true\"><\/div>\n            <div class=\"meetgle-stage-sheet\" data-meetgle-stage-sheet aria-hidden=\"true\">\n                <div class=\"meetgle-stage-sheet-grab\" aria-hidden=\"true\"><\/div>\n                <div class=\"meetgle-stage-sheet-head\">\n                                        <span class=\"meetgle-stage-sheet-avatar\"><img decoding=\"async\" src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/avatar.jpg\" alt=\"\" \/><\/span>\n                                        <span class=\"meetgle-stage-sheet-copy\">\n                        <strong>\n                            <span class=\"meetgle-stage-sheet-name\">Guest<\/span>\n                                                                                <\/strong>\n                        <small>Sign in to save your progress<\/small>\n                    <\/span>\n                <\/div>\n                                <div class=\"meetgle-stage-sheet-auth\">\n                    <button type=\"button\" class=\"meetgle-stage-auth-btn is-primary\" data-meetgle-stage-action=\"login\">Log in<\/button>\n                    <button type=\"button\" class=\"meetgle-stage-auth-btn\" data-meetgle-stage-action=\"register\">Create account<\/button>\n                <\/div>\n                                <button type=\"button\" class=\"meetgle-stage-sheet-item\" data-meetgle-stage-action=\"leaderboard\">\n                    <span class=\"ic\"><svg viewBox=\"0 0 24 24\"><path d=\"M8 21h8M12 17v4M7 4h10v5a5 5 0 0 1-10 0V4Z\"\/><path d=\"M7 6H4a3 3 0 0 0 3 5M17 6h3a3 3 0 0 1-3 5\"\/><\/svg><\/span>\n                    Leaderboard                    <span class=\"chev\"><svg viewBox=\"0 0 24 24\"><path d=\"m9 6 6 6-6 6\"\/><\/svg><\/span>\n                <\/button>\n                <button type=\"button\" class=\"meetgle-stage-sheet-item\" data-meetgle-stage-action=\"store\">\n                    <span class=\"ic\"><svg viewBox=\"0 0 24 24\"><rect x=\"4\" y=\"9\" width=\"16\" height=\"11\" rx=\"2\"\/><path d=\"M4 13h16M12 9v11M12 9s-4 .2-5-2c-.8-1.8 1-3.5 2.7-2.7C11.7 5.2 12 9 12 9Zm0 0s4 .2 5-2c.8-1.8-1-3.5-2.7-2.7C12.3 5.2 12 9 12 9Z\"\/><\/svg><\/span>\n                    Spark Store                    <span class=\"chev\"><svg viewBox=\"0 0 24 24\"><path d=\"m9 6 6 6-6 6\"\/><\/svg><\/span>\n                <\/button>\n                                                                                                            <\/div>\n            \n<!-- Discover Modal (lazy template \u2014 hydrated by MeetgleModalLoader; JS in public\/js\/modals\/discover.modal.js).\n     Both #discoverModal and #discoverViewerModal share this one template. PHP still renders the\n     logged-in vs logged-out grid markup variant. -->\n<template id=\"discoverTpl\">\n<!-- Discover Modal -->\n<div id=\"discoverModal\" class=\"meetgle-modal\" style=\"display:none;\">\n    <div class=\"meetgle-modal-content discover-modal-content\" style=\"margin:0;background:#141417;border:none;border-radius:0;width:100vw;max-width:100vw;height:100vh;height:100svh;max-height:100vh;max-height:100svh;\">\n\n        <!-- Header -->\n        <div style=\"padding:16px 20px;display:flex;align-items:center;justify-content:space-between;\">\n            <h2 class=\"mg-mtitle\">Discover<\/h2>\n            <button onclick=\"closeDiscoverModal()\" class=\"mg-mclose\">&times;<\/button>\n        <\/div>\n\n        <!-- Content -->\n        <div id=\"discoverContent\" style=\"padding:16px;overflow-y:auto;flex:1;height:calc(100vh - 70px);height:calc(100svh - 70px);\">\n\n            <!-- Photo Grid (logged-out users never reach here \u2014 the Discover\n                 trigger opens the login modal instead; see meetgle-stage.js\n                 LOGIN_REQUIRED). -->\n            <div id=\"discoverGrid\" class=\"discover-grid\">\n                <!-- Populated by JavaScript -->\n            <\/div>\n\n            <!-- Loading State -->\n            <div id=\"discoverLoading\" style=\"text-align:center;padding:40px 0;\">\n                <div style=\"width:28px;height:28px;border:3px solid rgba(255,255,255,0.1);border-top-color:rgba(255,255,255,0.5);border-radius:50%;margin:0 auto 10px;animation:discoverSpin 0.8s linear infinite;\"><\/div>\n                <div style=\"color:rgba(255,255,255,0.3);font-size:12px;\">Loading...<\/div>\n            <\/div>\n\n            <!-- Empty State -->\n            <div id=\"discoverEmpty\" style=\"display:none;text-align:center;padding:56px 24px;\">\n                <div style=\"width:64px;height:64px;border-radius:50%;background:rgba(255,200,61,0.12);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-size:28px;\">\ud83d\udcf8<\/div>\n                <div style=\"color:rgba(255,255,255,0.88);font-size:16px;font-weight:700;margin-bottom:6px;\">No photos yet<\/div>\n                <div style=\"color:rgba(255,255,255,0.45);font-size:13px;line-height:1.5;max-width:260px;margin:0 auto;\">Creators haven&#039;t shared any premium photos here yet \u2014 check back soon!<\/div>\n            <\/div>\n\n            <!-- Load More -->\n            <div id=\"discoverLoadMore\" style=\"display:none;text-align:center;padding:20px 0;\">\n                <button onclick=\"loadDiscoverPhotos()\" style=\"background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.5);border:1px solid rgba(255,255,255,0.08);border-radius:10px;padding:10px 24px;font-size:13px;font-weight:600;cursor:pointer;transition:background 0.15s;\" onmouseover=\"this.style.background='rgba(255,255,255,0.1)'\" onmouseout=\"this.style.background='rgba(255,255,255,0.06)'\">Load More<\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Discover Photo Viewer Modal -->\n<div id=\"discoverViewerModal\" style=\"display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:100003;background:rgba(0,0,0,0.95);\">\n    <div style=\"width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;\">\n\n        <!-- Close button -->\n        <button onclick=\"closeDiscoverViewer()\" style=\"position:absolute;top:max(16px,env(safe-area-inset-top));right:16px;background:rgba(255,255,255,0.1);border:none;color:white;width:40px;height:40px;border-radius:50%;font-size:22px;cursor:pointer;z-index:10;display:flex;align-items:center;justify-content:center;\">&times;<\/button>\n\n        <!-- Creator info -->\n        <div id=\"discoverViewerCreator\" style=\"position:absolute;top:max(16px,env(safe-area-inset-top));left:16px;display:flex;align-items:center;gap:10px;z-index:10;cursor:pointer;transition:opacity 0.15s;\" onclick=\"openDiscoverCreatorProfile()\" onmouseover=\"this.style.opacity='0.8'\" onmouseout=\"this.style.opacity='1'\">\n            <img decoding=\"async\" id=\"discoverViewerAvatar\" src=\"\" style=\"width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid #EC4899;\">\n            <div>\n                <div id=\"discoverViewerUsername\" style=\"color:white;font-weight:600;font-size:14px;\"><\/div>\n                <div style=\"color:rgba(255,255,255,0.35);font-size:10px;font-weight:500;\">Click to view profile<\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Viewer loading spinner -->\n        <div id=\"discoverViewerSpinner\" style=\"position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1;\">\n            <div style=\"width:32px;height:32px;border:3px solid rgba(255,255,255,0.1);border-top-color:rgba(255,255,255,0.5);border-radius:50%;animation:discoverSpin 0.8s linear infinite;\"><\/div>\n        <\/div>\n\n        <!-- Photo -->\n        <div style=\"flex:1;display:flex;align-items:center;justify-content:center;width:100%;padding:70px 20px 20px;overflow:hidden;min-height:0;box-sizing:border-box;\">\n            <img decoding=\"async\" id=\"discoverViewerImage\" src=\"\" style=\"max-width:calc(100vw - 40px);max-height:calc(100vh - 100px);max-height:calc(100svh - 100px);object-fit:contain;border-radius:8px;position:relative;z-index:2;opacity:0;transition:opacity 0.2s;\">\n\n            <!-- Lock overlay -->\n            <div id=\"discoverViewerLock\" style=\"display:none;position:absolute;top:0;left:0;right:0;bottom:0;flex-direction:column;align-items:center;justify-content:center;z-index:3;\">\n                <div style=\"background:rgba(0,0,0,0.7);backdrop-filter:blur(4px);border-radius:16px;padding:24px 32px;text-align:center;\">\n                    <div style=\"font-size:28px;margin-bottom:8px;\">\ud83d\udd12<\/div>\n                    <div style=\"color:white;font-weight:700;font-size:16px;margin-bottom:4px;\">This photo is locked<\/div>\n                    <div id=\"discoverViewerPrice\" style=\"color:#ffc83d;font-weight:800;font-size:22px;margin-bottom:12px;\"><\/div>\n                    <button id=\"discoverUnlockBtn\" onclick=\"unlockDiscoverPhoto()\" style=\"background:linear-gradient(135deg,#ffc83d,#e6ad2e);color:#000;border:none;border-radius:10px;padding:12px 28px;font-weight:700;font-size:14px;cursor:pointer;transition:opacity 0.15s;\">Unlock Photo<\/button>\n                    <div style=\"color:rgba(255,255,255,0.4);font-size:11px;margin-top:8px;\">Your balance: <span id=\"discoverViewerBalance\">0<\/span> \u26a1<\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n<\/template>\n\n\n            \n            <div class=\"video-chat-layout\">\n\n\n                <!-- Left: Remote video full height -->\n                                <div class=\"video-section\" >\n                    <div class=\"video-wrapper remote-video\">\n                        <!-- Swirl background canvas -->\n                        <canvas id=\"bg-swirl\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;\"><\/canvas>\n                                                <img decoding=\"async\" id=\"remoteLogo\" src=\"https:\/\/meetgle.com\/wp-content\/uploads\/2025\/06\/meetgle_logo_new3.png\" alt=\"Logo\" style=\"position:absolute;top:10px;left:12px;height:32px;max-width:160px;width:auto;object-fit:contain;z-index:20;pointer-events:none;\" \/>\n                                                \n                        <!-- Loading spinner removed -->\n                        <!-- Container for status, start button, and blur toggle - centered as ONE unit -->\n                        <div id=\"preStartControls\" style=\"position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:25;display:flex;flex-direction:column;align-items:center;gap:20px;width:90vw;max-width:400px;\">\n                            <!-- Status output -->\n                            <p id=\"statusOutput\" style=\"color:rgba(255, 255, 255, 0.5);font-weight:500;font-size:14px;text-align:center;display:block;max-width:90vw;width:auto;white-space:normal;margin:0;\"><\/p>\n                            \n                            <!-- Button container with Start button, Help button, and Match Preferences -->\n                            <div style=\"display:flex;align-items:center;gap:12px;\">\n                                <!-- Start button with pill design and video icon -->\n                                <button id=\"startChatBtn\" style=\"background:var(--button-color);color:#fff;border:none;border-radius:50px;padding:10px 28px 10px 12px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:10px;margin:0;box-shadow:0 4px 12px rgba(0,0,0,0.2);transition:all 0.3s ease;white-space:nowrap;\">\n                                    <!-- Stacked avatar cluster -->\n                                    <div id=\"startBtnAvatars\" style=\"display:flex;flex-shrink:0;margin-left:2px;\">\n                                        <img class=\"start-btn-ava\" style=\"width:28px;height:28px;border-radius:50%;object-fit:cover;border:2px solid var(--button-color);position:relative;z-index:4;\" \/>\n                                        <img class=\"start-btn-ava\" style=\"width:28px;height:28px;border-radius:50%;object-fit:cover;border:2px solid var(--button-color);margin-left:-10px;position:relative;z-index:3;\" \/>\n                                        <img class=\"start-btn-ava\" style=\"width:28px;height:28px;border-radius:50%;object-fit:cover;border:2px solid var(--button-color);margin-left:-10px;position:relative;z-index:2;\" \/>\n                                        <img class=\"start-btn-ava\" style=\"width:28px;height:28px;border-radius:50%;object-fit:cover;border:2px solid var(--button-color);margin-left:-10px;position:relative;z-index:1;\" \/>\n                                    <\/div>\n                                    <span>Start Video Chat<\/span>\n                                <\/button>\n                                \n\n\n                                \n                                <!-- Match Preferences button (always visible for all users) -->\n                                <div style=\"position:relative;flex-shrink:0;\">\n                                    <button id=\"matchPreferencesBtn\" onclick=\"openMatchPreferencesDrawer()\" style=\"background:rgba(255,255,255,0.1);backdrop-filter:blur(10px);color:#fff;border:2px solid rgba(255,255,255,0.3);border-radius:50%;width:48px;height:48px;font-size:24px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;margin:0;box-shadow:0 4px 12px rgba(0,0,0,0.2);transition:all 0.3s ease;\" title=\"Match Preferences\">\n                                        <svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" style=\"width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;max-width:none!important;\"><line x1=\"4\" y1=\"6\" x2=\"20\" y2=\"6\"\/><circle cx=\"15\" cy=\"6\" r=\"2.5\" fill=\"#fff\"\/><line x1=\"4\" y1=\"12\" x2=\"20\" y2=\"12\"\/><circle cx=\"9\" cy=\"12\" r=\"2.5\" fill=\"#fff\"\/><line x1=\"4\" y1=\"18\" x2=\"20\" y2=\"18\"\/><circle cx=\"14\" cy=\"18\" r=\"2.5\" fill=\"#fff\"\/><\/svg>\n                                    <\/button>\n                                    <span id=\"filterTryMePill\" style=\"position:absolute;top:-10px;right:-14px;background:#ffc83d;color:#000;font-size:8px;font-weight:800;padding:3px 7px;border-radius:8px;pointer-events:none;white-space:nowrap;letter-spacing:0.4px;box-shadow:0 2px 8px rgba(255,200,61,0.4);\">TRY ME<\/span>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n\n                        <!-- Gender Picker Overlay - Two-Step Flow -->\n                        <div id=\"genderPickerContainer\" class=\"meetgle-drawer-overlay\" style=\"display:none;\">\n                            <div class=\"meetgle-drawer-sheet\" role=\"dialog\" aria-label=\"Start chat setup\">\n                                <div class=\"meetgle-drawer-grab\" aria-hidden=\"true\"><\/div>\n\n                                <!-- Header: back \/ icon + per-step title + step count + close -->\n                                <div class=\"meetgle-gender-head\">\n                                    <button id=\"genderPickerBack\" class=\"meetgle-gender-back\" aria-label=\"Back\">\n                                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m15 18-6-6 6-6\"\/><\/svg>\n                                    <\/button>\n                                    <span class=\"meetgle-gender-head-ic\" aria-hidden=\"true\">\n                                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg>\n                                    <\/span>\n                                    <span class=\"meetgle-gender-title\"><span class=\"gp-t1\">I am<\/span><span class=\"gp-t2\">I want to meet<\/span><\/span>\n                                    <span class=\"meetgle-gender-count\"><span class=\"gp-c1\">1 \/ 2<\/span><span class=\"gp-c2\">2 \/ 2<\/span><\/span>\n                                    <button id=\"genderPickerClose\" class=\"meetgle-drawer-close\" aria-label=\"Close\">\n                                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"><\/line><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"><\/line><\/svg>\n                                    <\/button>\n                                <\/div>\n\n                                <!-- Progress (2 segments) -->\n                                <div class=\"meetgle-gender-progress\" aria-hidden=\"true\">\n                                    <span class=\"gp-seg1\"><\/span>\n                                    <span class=\"gp-seg2\"><\/span>\n                                <\/div>\n\n                                <!-- STEP 1: I am a... -->\n                                <div id=\"genderStep1\">\n                                    <p class=\"meetgle-gender-caption\">This will be shown to people you chat with<\/p>\n                                    <div class=\"meetgle-gender-options\">\n                                        <button id=\"genderMale\" class=\"meetgle-gender-row\" data-gender=\"male\">\n                                            <span class=\"meetgle-gender-ic is-male\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"10\" cy=\"14\" r=\"6\"\/><line x1=\"14.5\" y1=\"9.5\" x2=\"20\" y2=\"4\"\/><polyline points=\"15 4 20 4 20 9\"\/><\/svg><\/span>\n                                            <span class=\"meetgle-gender-row-main\"><span>Male<\/span><small>I&#039;m a man<\/small><\/span>\n                                            <span class=\"meetgle-gender-chev\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m9 6 6 6-6 6\"\/><\/svg><\/span>\n                                        <\/button>\n                                        <button id=\"genderFemale\" class=\"meetgle-gender-row\" data-gender=\"female\">\n                                            <span class=\"meetgle-gender-ic is-female\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"8\" r=\"6\"\/><line x1=\"12\" y1=\"14\" x2=\"12\" y2=\"22\"\/><line x1=\"9\" y1=\"19\" x2=\"15\" y2=\"19\"\/><\/svg><\/span>\n                                            <span class=\"meetgle-gender-row-main\"><span>Female<\/span><small>I&#039;m a woman<\/small><\/span>\n                                            <span class=\"meetgle-gender-chev\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m9 6 6 6-6 6\"\/><\/svg><\/span>\n                                        <\/button>\n                                    <\/div>\n                                <\/div>\n\n                                <!-- STEP 2: I want to chat with... (shown via .gp-step2 on the container) -->\n                                <div id=\"genderStep2\">\n                                    <p class=\"meetgle-gender-caption\">Choose who you&#039;d like to be matched with<\/p>\n                                    <div class=\"meetgle-gender-options\">\n                                        <button id=\"genderPrefEveryone\" class=\"meetgle-gender-row\" data-preference=\"everyone\">\n                                            <span class=\"meetgle-gender-ic is-everyone\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"><\/path><circle cx=\"9\" cy=\"7\" r=\"4\"><\/circle><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"><\/path><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"><\/path><\/svg><\/span>\n                                            <span class=\"meetgle-gender-row-main\"><span>Everyone<\/span><small>Match with all genders<\/small><\/span>\n                                            <span class=\"meetgle-gender-go\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" stroke=\"none\"><polygon points=\"5 3 19 12 5 21 5 3\"><\/polygon><\/svg>Start<\/span>\n                                        <\/button>\n                                        <div class=\"meetgle-gender-row is-locked\" data-preference=\"male\">\n                                            <span class=\"meetgle-gender-ic is-male\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"10\" cy=\"14\" r=\"6\"\/><line x1=\"14.5\" y1=\"9.5\" x2=\"20\" y2=\"4\"\/><polyline points=\"15 4 20 4 20 9\"\/><\/svg><\/span>\n                                            <span class=\"meetgle-gender-row-main\"><span>Only Guys<\/span><small>Match with males only<\/small><\/span>\n                                            <span class=\"meetgle-gender-price\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" stroke=\"none\"><polygon points=\"13 2 3 14 11 14 9 22 21 9 13 9 13 2\"\/><\/svg>100<\/span>\n                                        <\/div>\n                                        <div class=\"meetgle-gender-row is-locked\" data-preference=\"female\">\n                                            <span class=\"meetgle-gender-ic is-female\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"8\" r=\"6\"\/><line x1=\"12\" y1=\"14\" x2=\"12\" y2=\"22\"\/><line x1=\"9\" y1=\"19\" x2=\"15\" y2=\"19\"\/><\/svg><\/span>\n                                            <span class=\"meetgle-gender-row-main\"><span>Only Girls<\/span><small>Match with females only<\/small><\/span>\n                                            <span class=\"meetgle-gender-price\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" stroke=\"none\"><polygon points=\"13 2 3 14 11 14 9 22 21 9 13 9 13 2\"\/><\/svg>100<\/span>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                        <script>\n                        \/\/ Gender drawer uses the shared MeetgleDrawer controller \u2014 open\/close,\n                        \/\/ backdrop, swipe and Escape are all handled there. These thin wrappers\n                        \/\/ keep the names videochat.js already calls.\n                        window.openGenderDrawer = function () { if (window.MeetgleDrawer) MeetgleDrawer.open('genderPickerContainer'); };\n                        window.closeGenderDrawer = function () { if (window.MeetgleDrawer) MeetgleDrawer.close('genderPickerContainer'); };\n                        <\/script>\n\n                        <video id=\"remoteVideo\" autoplay playsinline muted><\/video>\n                        \n                        <!-- Remote User Info Pill (top left) -->\n                        \n<!-- Remote User Info Pill (top left of remote video) -->\n<div id=\"remoteUserInfoPill\" class=\"user-info\" style=\"\n    position: absolute;\n    top: 12px;\n    left: 12px;\n    z-index: 102;\n    display: none;\n    background: rgba(0, 0, 0, 0.55);\n    backdrop-filter: blur(20px);\n    border-radius: 14px;\n    padding: 8px 14px 8px 8px;\n    align-items: center;\n    gap: 10px;\n    max-width: calc(100% - 180px);\n    transition: all 0.3s ease;\n    cursor: pointer;\n\" onclick=\"openRemoteUserProfile()\" title=\"View Profile\">\n\n    <!-- Country Flag with background -->\n    <div id=\"remoteUserAvatar\" class=\"user-avatar\" style=\"\n        width: 38px;\n        height: 38px;\n        border-radius: 8px;\n        background: rgba(255, 255, 255, 0.1);\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        font-size: 24px;\n        flex-shrink: 0;\n        line-height: 1;\n    \">\ud83c\udf0d<\/div>\n\n    <!-- User Details -->\n    <div class=\"user-details\" style=\"\n        display: flex;\n        flex-direction: column;\n        gap: 2px;\n        min-width: 0;\n        overflow: hidden;\n    \">\n        <!-- Username with badges -->\n        <div style=\"display: flex; align-items: center; gap: 4px; min-width: 0;\">\n            <div id=\"remoteUserName\" class=\"user-name\" style=\"\n                font-size: 14px;\n                font-weight: 600;\n                color: white;\n                letter-spacing: -0.2px;\n                display: flex;\n                align-items: center;\n                gap: 4px;\n                min-width: 0;\n                max-width: 100%;\n                text-align: left;\n            \">\n                <span id=\"remoteUserNameText\" style=\"\n                    min-width: 0;\n                    flex: 1 1 auto;\n                    white-space: nowrap;\n                    overflow: hidden;\n                    text-overflow: ellipsis;\n                    display: block;\n                \">Stranger<\/span>\n                <span id=\"remoteUserBadges\" style=\"\n                    display: inline-flex;\n                    align-items: center;\n                    gap: 4px;\n                    flex-shrink: 0;\n                    transform: translateY(1px);\n                \"><\/span>\n            <\/div>\n            <!-- Arrow icon (only visible for logged-in users) -->\n            <svg id=\"remoteUserArrow\" class=\"profile-arrow\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"display: none; color: rgba(255,255,255,0.7); flex-shrink: 0; transition: transform 0.2s ease; transform: translateY(1px);\">\n                <polyline points=\"9 18 15 12 9 6\"><\/polyline>\n            <\/svg>\n        <\/div>\n\n        <!-- Location (Gender + Country Name) -->\n        <div class=\"user-location\" style=\"\n            font-size: 12px;\n            font-weight: 500;\n            color: rgba(255, 255, 255, 0.5);\n            display: flex;\n            align-items: center;\n            gap: 0;\n            white-space: nowrap;\n            overflow: hidden;\n            text-overflow: ellipsis;\n        \">\n            <!-- Gender Text (admin\/reveal-pass only) -->\n            <span id=\"remoteUserGender\" style=\"display: none; font-weight: 600; line-height: 1;\"><\/span>\n\n            <!-- Country Name -->\n            <span id=\"remoteUserFlag\" style=\"display: none; font-size: 12px; line-height: 1;\"><\/span>\n        <\/div>\n    <\/div>\n<\/div>\n\n<style>\n\/* Rounded rectangle card style *\/\n.user-info {\n    position: relative;\n    overflow: visible;\n}\n\n\n\/* Username underline - only for logged-in users (text only, not badges) *\/\n.user-info.has-profile #remoteUserNameText {\n    text-decoration: underline;\n    text-decoration-color: rgba(255, 255, 255, 0.4);\n    text-underline-offset: 2px;\n    text-decoration-thickness: 1px;\n}\n\n\/* Arrow visibility for logged-in users *\/\n.user-info.has-profile .profile-arrow {\n    display: block !important;\n}\n\n\n\/* Gender\/country spacing - add gap via margin when gender is visible *\/\n#remoteUserGender[style*=\"display: inline\"] + #remoteUserFlag,\n#remoteUserGender[style*=\"display:inline\"] + #remoteUserFlag {\n    margin-left: 6px;\n}\n\n\/* Hover effects *\/\n.user-info:hover {\n    background: rgba(0, 0, 0, 0.7) !important;\n    transform: scale(1.02);\n}\n\n.user-info:hover .profile-arrow {\n    transform: translateX(2px) translateY(1px);\n    color: rgba(255, 255, 255, 1) !important;\n}\n\n.user-info:hover #remoteUserNameText {\n    text-decoration-color: rgba(255, 255, 255, 0.8) !important;\n}\n\n\/* Mobile responsive *\/\n@media (max-width: 900px) {\n    .user-info {\n        padding: 4px;\n        gap: 6px;\n        border-radius: 10px !important;\n        max-width: calc(100% - 160px);\n    }\n\n    .user-avatar {\n        width: 28px !important;\n        height: 28px !important;\n        font-size: 18px !important;\n        border-radius: 6px !important;\n    }\n\n    .user-details {\n        gap: 0px !important;\n    }\n\n    .user-name {\n        font-size: 12px !important;\n    }\n\n    .user-location {\n        font-size: 10px !important;\n    }\n\n    #remoteUserFlag {\n        font-size: 10px !important;\n    }\n\n    #remoteUserGender {\n        font-size: 10px !important;\n    }\n\n    .profile-arrow {\n        width: 10px !important;\n        height: 10px !important;\n    }\n}\n\n@media (max-width: 600px) {\n    .user-info {\n        top: 8px !important;\n        left: 8px !important;\n        max-width: calc(100% - 140px);\n    }\n\n    \/* On phone-width screens the pill is tight (it shares the row with the self\n       PiP). The streak is secondary milestone info (still shown on the profile),\n       so hide it here and let the username \u2014 the primary identifier \u2014 stay\n       legible. The verified badge, gender and country are kept. *\/\n    #remoteUserBadges .meetgle-remote-streak {\n        display: none !important;\n    }\n}\n<\/style>\n\n<script>\n(function() {\n    function normalizeUsernameForPill(value) {\n        if (typeof value !== 'string') return '';\n        return value.trim();\n    }\n\n    function isRealProfileUsername(value) {\n        const normalized = normalizeUsernameForPill(value);\n        if (!normalized) return false;\n        return normalized.toLowerCase() !== 'stranger';\n    }\n\n    \/\/ Country code to country name lookup using the existing #countryFilter select\n    \/\/ On mobile (<=900px) shows compact two-letter code, on desktop shows full name\n    window.countryCodeToName = function(code) {\n        if (!code || code.length !== 2) return '';\n        if (window.innerWidth <= 900) return code.toUpperCase();\n        const select = document.getElementById('countryFilter');\n        if (select) {\n            const option = select.querySelector('option[value=\"' + code.toUpperCase() + '\"]');\n            if (option) {\n                const text = option.textContent.trim();\n                const spaceIdx = text.indexOf(' ');\n                return spaceIdx > 0 ? text.substring(spaceIdx + 1) : text;\n            }\n        }\n        return code.toUpperCase();\n    };\n\n    \/\/ Toggle has-profile class for logged-in user styling (underline, arrow)\n    window.updateRemoteUserPillState = function(username) {\n        const pill = document.getElementById('remoteUserInfoPill');\n        if (!pill) return;\n\n        if (isRealProfileUsername(username)) {\n            pill.classList.add('has-profile');\n        } else {\n            pill.classList.remove('has-profile');\n        }\n    };\n})();\n<\/script>\n                        \n                        <!-- Top right container: Settings button and Report button -->\n                        <div class=\"remote-video-report\" style=\"position:absolute;top:10px;right:10px;z-index:102;display:flex;gap:8px;align-items:flex-start;\">\n                            \n                            <!-- Report Button -->\n                            <button id=\"reportBtn\" class=\"icon-btn report\" title=\"Report User\" style=\"display:none;\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\">\n                                    <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 3v1.5M3 21v-6m0 0 2.77-.693a9 9 0 0 1 6.208.682l.108.054a9 9 0 0 0 6.086.71l3.114-.732a48.524 48.524 0 0 1-.005-10.499l-3.11.732a9 9 0 0 1-6.085-.711l-.108-.054a9 9 0 0 0-6.208-.682L3 4.5M3 15V4.5\"><\/path>\n                                <\/svg>\n                            <\/button>\n                            <!-- User Avatar (moved to the right, last in flex container) -->\n                            \n<!-- User Avatar Component with Dropdown Menu -->\n<!-- Login Button for Non-Logged-In Users -->\n<button\n    class=\"icon-btn user-avatar-btn\"\n    onclick=\"if(window.openMeetgleLoginModal){openMeetgleLoginModal();}else{window.location.href='\/login';}\"\n    title=\"Login\"\n    style=\"padding: 3px; overflow: hidden;\">\n    <img decoding=\"async\"\n        src=\"https:\/\/meetgle.com\/wp-content\/plugins\/meetgle-plugin-v3%202\/includes\/..\/public\/img\/avatar.jpg\"\n        alt=\"Avatar\"\n        style=\"width: 30px; height: 30px; max-width: 30px; max-height: 30px; border-radius: 50%; object-fit: cover; pointer-events: none; display: block;\"\n    >\n<\/button>\n                        <\/div>\n                        \n                        <!-- Bottom bar: Premium session stats (premium only) -->\n                                                                    <\/div>\n                <\/div>\n                <!-- Right: Top half local video, bottom half chat\/controls -->\n                                <div class=\"controls-and-chat\" >\n                    <div class=\"video-wrapper local-video\">\n                        <!-- Profile gallery background (only visible before starting chat) -->\n                        <div class=\"live-counter-background\">\n                            <div id=\"profile-showcase\"><\/div>\n                        <\/div>\n\n                        <video id=\"localVideo\" autoplay playsinline muted><\/video>\n\n                        <!-- Chat Messages Overlay -->\n                        <div id=\"chatMessages\" class=\"chat-msg-overlay\"><\/div>\n\n                        <!-- Top controls: Leaderboard (left) and Spark Balance (right) -->\n                        <div class=\"top-controls\">\n                            <!-- Left side: Leaderboard + History + Streak buttons -->\n                            <div style=\"display: flex; gap: 8px; align-items: center;\">\n                                <!-- Leaderboard Button -->\n                                <button id=\"leaderboardDisplay\" class=\"icon-btn leaderboard-btn\" onclick=\"openLeaderboardModal()\" title=\"View Top Earners This Week\">\n                                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\">\n                                        <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 18h-9M12 18v-3m0 0a4.5 4.5 0 0 0 4.5-4.5V6a.75.75 0 0 0-.75-.75H8.25A.75.75 0 0 0 7.5 6v4.5A4.5 4.5 0 0 0 12 15Zm-6-9V4.5a.75.75 0 0 0-.75-.75H3a.75.75 0 0 0-.75.75V7.5A2.25 2.25 0 0 0 4.5 9.75H6Zm12 0V4.5a.75.75 0 0 1 .75-.75H21a.75.75 0 0 1 .75.75V7.5a2.25 2.25 0 0 1-2.25 2.25H18ZM9 21h6\" \/>\n                                    <\/svg>\n                                <\/button>\n\n                                <!-- Chat History Button (shown for all users) -->\n                                <button id=\"chatHistoryBtn\" class=\"icon-btn history-btn\" onclick=\"openChatHistoryModal()\" title=\"View Your Chat History\">\n                                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\">\n                                        <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\" \/>\n                                    <\/svg>\n                                <\/button>\n                                \n                                                            <\/div>\n                            \n                            <!-- Right side: Shop Button + Spark Balance -->\n                            <div style=\"display: flex; gap: 8px; align-items: center;\">\n                                <!-- Spark Store Button -->\n                                <button id=\"sparkStoreBtn\" class=\"icon-btn spark-store-btn\" onclick=\"openSparkStoreModal()\" title=\"Spark Store\">\n                                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\">\n                                        <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M21 11.25v8.25a1.5 1.5 0 0 1-1.5 1.5H4.5A1.5 1.5 0 0 1 3 19.5v-8.25M12 4.875A2.625 2.625 0 1 0 9.375 7.5H12m0-2.625V7.5m0-2.625A2.625 2.625 0 1 1 14.625 7.5H12m0 0V21m-8.625-9.75h18c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125h-18C2.504 7.5 2 8.004 2 8.625v1.5c0 .621.504 1.125 1.125 1.125Z\" \/>\n                                    <\/svg>\n                                <\/button>\n                                \n                                <!-- Spark Balance Display -->\n                                <button id=\"sparkBalanceDisplay\" class=\"icon-btn spark-balance-btn\" onclick=\"openSparkInfoModal()\" title=\"Login to start earning Sparks!\">\n                                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" style=\"flex-shrink:0;\">\n                                        <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z\" \/>\n                                    <\/svg>\n                                                                    <\/button>\n                            <\/div>\n                        <\/div>\n                        \n                        <!-- Bottom center controls -->\n                        <div class=\"bottom-controls\" style=\"display:none;\">\n                            <!-- Settings -->\n                            <div class=\"settings-wrap\">\n                                <button id=\"settingsBtn\" class=\"ctrl-btn btn-settings\" title=\"Settings\">\n                                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\">\n                                        <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z\"\/>\n                                        <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"\/>\n                                    <\/svg>\n                                    <span class=\"indicator\" id=\"settingsIndicator\"><\/span>\n                                <\/button>\n\n                                <!-- Settings Popover -->\n                                <div id=\"settingsPopover\" class=\"settings-popover\">\n                                    <!-- Blur toggle row -->\n                                    <div class=\"setting-row\" id=\"blurToggleRow\">\n                                        <div class=\"left\">\n                                            <div class=\"icon-circle\">\n                                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3.98 8.223A10.477 10.477 0 0 0 1.934 12c1.292 4.338 5.31 7.5 10.066 7.5.993 0 1.953-.138 2.863-.395M6.228 6.228A10.451 10.451 0 0 1 12 4.5c4.756 0 8.773 3.162 10.065 7.498a10.522 10.522 0 0 1-4.293 5.774M6.228 6.228 3 3m3.228 3.228 3.65 3.65m7.894 7.894L21 21m-3.228-3.228-3.65-3.65m0 0a3 3 0 1 0-4.243-4.243m4.242 4.242L9.88 9.88\"\/><\/svg>\n                                            <\/div>\n                                            <div>\n                                                <div class=\"label\">Blur new matches<\/div>\n                                                <div class=\"sublabel\">5 second delay<\/div>\n                                            <\/div>\n                                        <\/div>\n                                        <div id=\"blurToggleMenu\" class=\"ctrl-checkbox\">\n                                            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"3\" stroke=\"currentColor\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n                                        <\/div>\n                                    <\/div>\n\n                                    <!-- Mic toggle row -->\n                                    <div class=\"setting-row\" id=\"micToggleRow\">\n                                        <div class=\"left\">\n                                            <div class=\"icon-circle\">\n                                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 18.75a6 6 0 0 0 6-6v-1.5m-6 7.5a6 6 0 0 1-6-6v-1.5m6 7.5v3.75m-3.75 0h7.5M12 15.75a3 3 0 0 1-3-3V4.5a3 3 0 1 1 6 0v8.25a3 3 0 0 1-3 3Z\"\/><\/svg>\n                                            <\/div>\n                                            <div>\n                                                <div class=\"label\">Microphone<\/div>\n                                                <div class=\"sublabel\" id=\"micStatusLabel\">On<\/div>\n                                            <\/div>\n                                        <\/div>\n                                        <div id=\"muteBtnMenu\" class=\"ctrl-toggle on\"><\/div>\n                                    <\/div>\n\n                                    <!-- Switch camera row -->\n                                    <div class=\"setting-row\" id=\"switchCameraRow\">\n                                        <div class=\"left\">\n                                            <div class=\"icon-circle\">\n                                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6.827 6.175A2.31 2.31 0 0 1 5.186 7.23c-.38.054-.757.112-1.134.175C2.999 7.58 2.25 8.507 2.25 9.574V18a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9.574c0-1.067-.75-1.994-1.802-2.169a47.865 47.865 0 0 0-1.134-.175 2.31 2.31 0 0 1-1.64-1.055l-.822-1.316a2.192 2.192 0 0 0-1.736-1.039 48.774 48.774 0 0 0-5.232 0 2.192 2.192 0 0 0-1.736 1.039l-.821 1.316Z\"\/><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 12.75a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0ZM18.75 10.5h.008v.008h-.008V10.5Z\"\/><\/svg>\n                                            <\/div>\n                                            <div>\n                                                <div class=\"label\">Switch Camera<\/div>\n                                            <\/div>\n                                        <\/div>\n                                        <svg id=\"switchCameraBtnMenu\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" style=\"width:16px;height:16px;color:rgba(255,255,255,0.3);flex-shrink:0;\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"m8.25 4.5 7.5 7.5-7.5 7.5\"\/><\/svg>\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n\n                            <!-- Heart -->\n                            <button id=\"heartBtn\" class=\"ctrl-btn btn-heart\" title=\"Like\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"m11.645 20.91-.007-.003-.022-.012a15.247 15.247 0 0 1-.383-.218 25.18 25.18 0 0 1-4.244-3.17C4.688 15.36 2.25 12.174 2.25 8.25 2.25 5.322 4.714 3 7.688 3A5.5 5.5 0 0 1 12 5.052 5.5 5.5 0 0 1 16.313 3c2.973 0 5.437 2.322 5.437 5.25 0 3.925-2.438 7.111-4.739 9.256a25.175 25.175 0 0 1-4.244 3.17 15.247 15.247 0 0 1-.383.219l-.022.012-.007.004-.003.001a.752.752 0 0 1-.704 0l-.003-.001Z\"\/><\/svg>\n                            <\/button>\n\n                            <!-- Stop -->\n                            <button id=\"stopChatBtn\" class=\"ctrl-btn btn-stop\" title=\"Stop Chat\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M4.5 7.5a3 3 0 0 1 3-3h9a3 3 0 0 1 3 3v9a3 3 0 0 1-3 3h-9a3 3 0 0 1-3-3v-9Z\" clip-rule=\"evenodd\"\/><\/svg>\n                            <\/button>\n\n                            <!-- Next -->\n                            <button id=\"nextChatBtn\" class=\"ctrl-btn btn-next\" title=\"Next Person\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M5.055 7.06C3.805 6.347 2.25 7.25 2.25 8.69v8.122c0 1.44 1.555 2.343 2.805 1.628L12 14.471v2.34c0 1.44 1.555 2.343 2.805 1.628l7.108-4.061c1.26-.72 1.26-2.536 0-3.256l-7.108-4.061C13.555 6.346 12 7.249 12 8.689v2.34L5.055 7.061Z\"\/><\/svg>\n                                <span class=\"meetgle-next-label\">Next<\/span>\n                            <\/button>\n\n                            <!-- Spark -->\n                            <div class=\"spark-wrap\">\n                                <button id=\"sparkBtn\" class=\"ctrl-btn btn-spark\" title=\"Send Sparks\">\n                                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M14.615 1.595a.75.75 0 0 1 .359.852L12.982 9.75h7.268a.75.75 0 0 1 .548 1.262l-10.5 11.25a.75.75 0 0 1-1.272-.71l1.992-7.302H3.75a.75.75 0 0 1-.548-1.262l10.5-11.25a.75.75 0 0 1 .913-.143Z\" clip-rule=\"evenodd\"\/><\/svg>\n                                <\/button>\n\n                                <!-- Spark Amount Popup -->\n                                <div id=\"sparkPopup\" class=\"spark-popup\">\n                                    <button class=\"sp-opt\" data-amount=\"5\">\u26a1 5<\/button>\n                                    <button class=\"sp-opt\" data-amount=\"10\">\u26a1 10<\/button>\n                                    <button class=\"sp-opt\" data-amount=\"25\">\u26a1 25<\/button>\n                                    <button class=\"sp-opt\" data-amount=\"50\">\u26a1 50<\/button>\n                                <\/div>\n                            <\/div>\n\n                            <!-- Chat Message -->\n                            <div class=\"chatmsg-wrap\">\n                                <button id=\"chatMsgBtn\" class=\"ctrl-btn btn-chatmsg\" title=\"Send Message\">\n                                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M8.625 12a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm0 0H8.25m4.125 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm0 0H12m4.125 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm0 0h-.375M21 12c0 4.556-4.03 8.25-9 8.25a9.764 9.764 0 0 1-2.555-.337A5.972 5.972 0 0 1 5.41 20.97a5.969 5.969 0 0 1-.474-.065 4.48 4.48 0 0 0 .978-2.025c.09-.457-.133-.901-.467-1.226C3.93 16.178 3 14.189 3 12c0-4.556 4.03-8.25 9-8.25s9 3.694 9 8.25Z\"\/><\/svg>\n                                    <span id=\"chatMsgNewPill\" style=\"position:absolute;top:-10px;right:-14px;background:#10B981;color:#fff;font-size:8px;font-weight:800;padding:3px 7px;border-radius:8px;pointer-events:none;white-space:nowrap;letter-spacing:0.4px;box-shadow:0 2px 8px rgba(16,185,129,0.4);display:none;\">NEW<\/span>\n                                <\/button>\n                                <!-- Chat Message Input Popover -->\n                                <div id=\"chatMsgPopover\" class=\"chatmsg-popover\">\n                                    <form id=\"chatMsgForm\" onsubmit=\"return false;\" style=\"display:flex;gap:6px;align-items:stretch;\">\n                                        <input type=\"text\" id=\"chatMsgInput\" placeholder=\"Type a message...\" maxlength=\"200\" autocomplete=\"off\" style=\"flex:1;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.08);border-radius:10px;padding:10px 14px;color:#fff;font-size:16px;font-family:inherit;outline:none;height:40px;box-sizing:border-box;\">\n                                        <button type=\"submit\" id=\"chatMsgSendBtn\" style=\"background:#feaf25;border:none;border-radius:10px;width:40px;height:40px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-sizing:border-box;\">\n                                            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;display:block!important;\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#000\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\"\/><polygon points=\"22 2 15 22 11 13 2 9 22 2\"\/><\/svg>\n                                        <\/button>\n                                    <\/form>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n\n                        <!-- Insufficient Sparks Toast -->\n                        <div id=\"insufficientSparksToast\" style=\"display:none;position:absolute;bottom:100px;left:50%;transform:translateX(-50%);background:rgba(239,68,68,0.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);color:#fff;padding:10px 20px;border-radius:50px;font-size:14px;font-weight:600;z-index:300;white-space:nowrap;box-shadow:0 4px 20px rgba(0,0,0,0.4);pointer-events:none;opacity:0;transition:opacity 0.3s ease;\">\n                            Not enough sparks!                        <\/div>\n                        \n                        <div class=\"heart-anim-overlay\" id=\"heartAnimOverlay\" style=\"pointer-events:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;\"><\/div>\n\n                                                                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        \n        <!-- Spark Info Modal -->\n        <!-- Buy Sparks Modal (lazy template \u2014 hydrated by MeetgleModalLoader; JS in public\/js\/modals\/spark-info.modal.js).\n     The buy modal + purchase-confirm dialog + success toast share this one template. -->\n<template id=\"sparkInfoTpl\">\n<!-- Buy Sparks Modal -->\n<div id=\"sparkInfoModal\" class=\"meetgle-modal\" style=\"display:none;\">\n    <div class=\"meetgle-modal-content spark-info-modal-content\" style=\"max-width:700px;margin:0;background:#141417;border:1px solid rgba(255,255,255,0.08);border-radius:20px;\">\n\n        <!-- Header -->\n        <div class=\"bs-head\">\n            <h2 class=\"mg-mtitle\">Buy Sparks<\/h2>\n            <button onclick=\"closeSparkInfoModal()\" class=\"mg-mclose\">&times;<\/button>\n        <\/div>\n\n        \n        <!-- Content -->\n        <div class=\"bs-body\">\n\n                        <!-- Login Notice -->\n            <div class=\"bs-login\">\n                <div class=\"bs-login-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"4\" y=\"10\" width=\"16\" height=\"11\" rx=\"2\"\/><path d=\"M8 10V7a4 4 0 0 1 8 0v3\"\/><\/svg><\/div>\n                <div class=\"bs-login-txt\">\n                    <div class=\"t\">Login Required<\/div>\n                    <div class=\"d\">Create a free account to purchase items<\/div>\n                <\/div>\n                <a href=\"\/register\" class=\"bs-login-btn\">Sign Up<\/a>\n            <\/div>\n            \n            <!-- Unlock benefits -->\n            <div class=\"bs-seclabel\"><span class=\"txt\">Unlock with Sparks<\/span><\/div>\n            <div class=\"bs-perks\">\n                <div class=\"bs-perk\">\n                    <div class=\"bs-perk-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg><\/div>\n                    <div class=\"bs-perk-body\"><div class=\"bs-perk-t\">Gender Filter<\/div><div class=\"bs-perk-s\">Match by gender<\/div><\/div>\n                <\/div>\n                <div class=\"bs-perk\">\n                    <div class=\"bs-perk-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18\"\/><\/svg><\/div>\n                    <div class=\"bs-perk-body\"><div class=\"bs-perk-t\">Country Match<\/div><div class=\"bs-perk-s\">Pick where they&#039;re from<\/div><\/div>\n                <\/div>\n                <div class=\"bs-perk\">\n                    <div class=\"bs-perk-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2l2.6 1.9 3.2-.1 1 3 2.6 1.8-1 3 1 3-2.6 1.8-1 3-3.2-.1L12 22l-2.6-1.9-3.2.1-1-3L2.6 15.4l1-3-1-3 2.6-1.8 1-3 3.2.1z\"\/><path d=\"M9 12l2 2 4-4\"\/><\/svg><\/div>\n                    <div class=\"bs-perk-body\"><div class=\"bs-perk-t\">Verified Badge<\/div><div class=\"bs-perk-s\">Get the blue check<\/div><\/div>\n                <\/div>\n                <div class=\"bs-perk\">\n                    <div class=\"bs-perk-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 11.5a8.4 8.4 0 0 1-8.5 8.5 8.4 8.4 0 0 1-3.8-.9L3 21l1.9-5.7A8.4 8.4 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5z\"\/><\/svg><\/div>\n                    <div class=\"bs-perk-body\"><div class=\"bs-perk-t\">Direct Messages<\/div><div class=\"bs-perk-s\">Chat after the call<\/div><\/div>\n                <\/div>\n                <div class=\"bs-perk\">\n                    <div class=\"bs-perk-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20 12v9H4v-9M2 7h20v5H2zM12 22V7M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7zM12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z\"\/><\/svg><\/div>\n                    <div class=\"bs-perk-body\"><div class=\"bs-perk-t\">Gift Sparks<\/div><div class=\"bs-perk-s\">Send to anyone<\/div><\/div>\n                <\/div>\n                <div class=\"bs-perk\">\n                    <div class=\"bs-perk-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"15\" rx=\"2\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><path d=\"M8 5l1.5-2h5L16 5\"\/><\/svg><\/div>\n                    <div class=\"bs-perk-body\"><div class=\"bs-perk-t\">Premium Photos<\/div><div class=\"bs-perk-s\">Unlock private galleries<\/div><\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Spark Packages -->\n            <div class=\"bs-seclabel\"><span class=\"txt\">Choose Your Pack<\/span><\/div>\n                        <!-- No packages available (all spark packs disabled) -->\n            <div class=\"bs-empty\">\n                <div class=\"bs-empty-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\/><path d=\"m3.3 7 8.7 5 8.7-5M12 22V12\"\/><\/svg><\/div>\n                <div class=\"bs-empty-msg\">Spark Bundles Coming Soon<\/div>\n                <div class=\"bs-empty-sub\">Get more sparks at discounted rates<\/div>\n            <\/div>\n            \n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Purchase Confirmation Modal (for spark packages) -->\n<div id=\"sparkInfoPurchaseConfirmModal\" class=\"meetgle-modal\" style=\"display:none;z-index:999999;\">\n    <div class=\"meetgle-modal-content bs-cf\">\n        <div class=\"bs-cf-ic\"><span id=\"sparkInfoPurchaseIcon\">\ud83d\udcb0<\/span><\/div>\n        <h3 id=\"sparkInfoPurchaseTitle\" class=\"bs-cf-title\">Confirm Purchase<\/h3>\n        <p id=\"sparkInfoPurchaseMessage\" class=\"bs-cf-sub\"><\/p>\n        <div class=\"bs-cf-actions\">\n            <button onclick=\"closeSparkInfoPurchaseConfirm()\" class=\"bs-cf-btn bs-cf-cancel\">Cancel<\/button>\n            <button id=\"sparkInfoPurchaseBtn\" onclick=\"confirmSparkInfoPurchase()\" class=\"bs-cf-btn bs-cf-confirm\">Buy Now<\/button>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Spark Purchase Success Toast (shown after Lemon Squeezy overlay returns success) -->\n<div id=\"sparkPurchaseToast\" class=\"spark-purchase-toast\" role=\"status\" aria-live=\"polite\" style=\"display:none;\">\n    <div class=\"spark-purchase-toast-glow\" aria-hidden=\"true\"><\/div>\n    <div class=\"spark-purchase-toast-icon\" aria-hidden=\"true\">\n        <span class=\"spark-purchase-toast-bolt\">\u26a1<\/span>\n    <\/div>\n    <div class=\"spark-purchase-toast-body\">\n        <div class=\"spark-purchase-toast-title\">Sparks Added!<\/div>\n        <div class=\"spark-purchase-toast-msg\">Your purchase was successful. Enjoy!<\/div>\n    <\/div>\n    <button class=\"spark-purchase-toast-close\" type=\"button\" onclick=\"hideSparkPurchaseToast()\" aria-label=\"Close\">&times;<\/button>\n<\/div>\n<\/template>\n\n<script>window.MEETGLE_SPARKINFO_INIT = {\n    packages: [],\n    lsOverlay: true};<\/script>\n        \n        <!-- Spark Store Modal -->\n        <!-- Spark Store Modal (lazy template \u2014 hydrated by MeetgleModalLoader; JS in public\/js\/modals\/spark-store.modal.js).\n     The store + purchase-confirm dialog share this one template. -->\n<template id=\"sparkStoreTpl\">\n<!-- Spark Store Modal -->\n<div id=\"sparkStoreModal\" class=\"meetgle-modal\" style=\"display:none;\">\n    <div class=\"meetgle-modal-content spark-store-modal-content\" style=\"max-width:700px;margin:0;background:#141417;border:1px solid rgba(255,255,255,0.08);border-radius:20px;\">\n\n        <!-- Header -->\n        <div class=\"ss-head\">\n            <h2 class=\"mg-mtitle\">Spark Store<\/h2>\n            <button onclick=\"closeSparkStoreModal()\" class=\"mg-mclose\">&times;<\/button>\n        <\/div>\n\n        <!-- Balance row -->\n        <div class=\"ss-bal\">\n            <span class=\"ss-bal-lbl\">Your balance<\/span>\n            <span class=\"ss-bal-amt\"><span class=\"lt\">\u26a1<\/span><span id=\"storeSparkBalance\">0<\/span><\/span>\n        <\/div>\n\n        <!-- Content -->\n        <div class=\"ss-body\">\n                        <!-- Login Notice -->\n            <div class=\"ss-login\">\n                <div class=\"ss-login-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"4\" y=\"10\" width=\"16\" height=\"11\" rx=\"2\"\/><path d=\"M8 10V7a4 4 0 0 1 8 0v3\"\/><\/svg><\/div>\n                <div class=\"ss-login-txt\">\n                    <div class=\"t\">Login Required<\/div>\n                    <div class=\"d\">Create a free account to purchase items<\/div>\n                <\/div>\n                <a href=\"\/register\" class=\"ss-login-btn\">Sign Up<\/a>\n            <\/div>\n            \n            <div class=\"ss-grid\">\n\n                <!-- Match Filters (featured) -->\n                <div id=\"storeItem_match_filters\" class=\"ss-card ss-featured store-item\" data-item-type=\"match_filters\" data-price=\"100\" onclick=\"handleStorePurchase('match_filters', 100)\">\n                    <div class=\"ss-top\"><div class=\"ss-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M3 6h13M3 12h9M3 18h5\"\/><circle cx=\"19\" cy=\"6\" r=\"2\"\/><circle cx=\"15\" cy=\"12\" r=\"2\"\/><circle cx=\"11\" cy=\"18\" r=\"2\"\/><\/svg><\/div><div class=\"ss-price\">100 <span class=\"lt\">\u26a1<\/span><\/div><\/div>\n                    <div class=\"ss-title\">Match Filters<\/div>\n                    <div class=\"ss-desc\">Filter matches by gender and country<\/div>\n                    <div class=\"ss-foot\" id=\"ssFoot_match_filters\"><span class=\"ss-dur\">24 hours<\/span><span class=\"ss-buy\">Buy<\/span><\/div>\n                <\/div>\n\n                <!-- Reveal Gender -->\n                <div id=\"storeItem_reveal_gender\" class=\"ss-card store-item\" data-item-type=\"reveal_gender\" data-price=\"50\" onclick=\"handleStorePurchase('reveal_gender', 50)\">\n                    <div class=\"ss-top\"><div class=\"ss-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg><\/div><div class=\"ss-price\">50 <span class=\"lt\">\u26a1<\/span><\/div><\/div>\n                    <div class=\"ss-title\">Reveal Gender<\/div>\n                    <div class=\"ss-desc\">See your match&#039;s gender<\/div>\n                    <div class=\"ss-foot\" id=\"ssFoot_reveal_gender\"><span class=\"ss-dur\">24 hours<\/span><span class=\"ss-buy\">Buy<\/span><\/div>\n                <\/div>\n\n                <!-- Chat History -->\n                <div id=\"storeItem_full_history\" class=\"ss-card store-item\" data-item-type=\"full_history\" data-price=\"100\" onclick=\"handleStorePurchase('full_history', 100)\">\n                    <div class=\"ss-top\"><div class=\"ss-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 3v5h5\"\/><path d=\"M3.05 13A9 9 0 1 0 6 5.3L3 8\"\/><path d=\"M12 7v5l4 2\"\/><\/svg><\/div><div class=\"ss-price\">100 <span class=\"lt\">\u26a1<\/span><\/div><\/div>\n                    <div class=\"ss-title\">Chat History<\/div>\n                    <div class=\"ss-desc\">Full unlimited history access<\/div>\n                    <div class=\"ss-foot\" id=\"ssFoot_full_history\"><span class=\"ss-dur\">24 hours<\/span><span class=\"ss-buy\">Buy<\/span><\/div>\n                <\/div>\n\n                <!-- Blue Verification -->\n                <div id=\"storeItem_blue_verification\" class=\"ss-card store-item\" data-item-type=\"blue_verification\" data-price=\"100\" onclick=\"handleStorePurchase('blue_verification', 100)\">\n                    <div class=\"ss-top\"><div class=\"ss-ic ss-ic-blue\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2l2.6 1.9 3.2-.1 1 3 2.6 1.8-1 3 1 3-2.6 1.8-1 3-3.2-.1L12 22l-2.6-1.9-3.2.1-1-3L2.6 15.4l1-3-1-3 2.6-1.8 1-3 3.2.1z\"\/><path d=\"M9 12l2 2 4-4\"\/><\/svg><\/div><div class=\"ss-price\">100 <span class=\"lt\">\u26a1<\/span><\/div><\/div>\n                    <div class=\"ss-title\">Blue Verification<\/div>\n                    <div class=\"ss-desc\">Verified checkmark next to your name<\/div>\n                    <div class=\"ss-foot\" id=\"ssFoot_blue_verification\">\n                                                    <span class=\"ss-dur\">7 days<\/span><span class=\"ss-buy\">Buy<\/span>\n                                            <\/div>\n                <\/div>\n\n                <!-- Streak Freeze -->\n                <div id=\"storeItem_streak_freeze\" class=\"ss-card store-item\" data-item-type=\"streak_freeze\" data-price=\"200\" onclick=\"handleStreakFreezePurchase()\">\n                    <div class=\"ss-top\"><div class=\"ss-ic ss-ic-blue\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2v20M4.5 7l15 10M19.5 7l-15 10M12 5l-3 2 3 2 3-2-3-2zM12 19l-3-2 3-2 3 2-3 2z\"\/><\/svg><\/div><div class=\"ss-price\">200 <span class=\"lt\">\u26a1<\/span><\/div><\/div>\n                    <div class=\"ss-title\">Streak Freeze<\/div>\n                    <div class=\"ss-desc\">Saves your streak if you miss a day<\/div>\n                    <div class=\"ss-foot\">\n                        <span class=\"ss-dur\" id=\"streakFreezeOwnedCount\">0 owned<\/span>\n                        <span class=\"ss-buy\">Buy<\/span>\n                    <\/div>\n                <\/div>\n\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Purchase Confirmation Modal -->\n<div id=\"purchaseConfirmModal\" class=\"meetgle-modal\" style=\"display:none;z-index:999999;\">\n    <div class=\"meetgle-modal-content ss-cf\">\n        <div class=\"ss-cf-ic\"><span id=\"purchaseConfirmIcon\">\ud83c\udf81<\/span><\/div>\n        <h3 id=\"purchaseConfirmTitle\" class=\"ss-cf-title\">Confirm Purchase<\/h3>\n        <p id=\"purchaseConfirmMessage\" class=\"ss-cf-sub\"><\/p>\n        <div class=\"ss-cf-actions\">\n            <button onclick=\"closePurchaseConfirmModal()\" class=\"ss-cf-btn ss-cf-cancel\">Cancel<\/button>\n            <button id=\"purchaseConfirmBtn\" onclick=\"confirmPurchase()\" class=\"ss-cf-btn ss-cf-confirm\">Buy Now<\/button>\n        <\/div>\n    <\/div>\n<\/div>\n<\/template>\n\n<script>window.MEETGLE_STORE_INIT = {\n    canSeeGender: false,\n    canUseFilters: false,\n    isAdmin: false};<\/script>\n        \n        <!-- Leaderboard Modal -->\n        <!-- Leaderboard Modal (lazy template \u2014 hydrated by MeetgleModalLoader; JS in public\/js\/meetgle-leaderboard.js, features bundle) -->\n<template id=\"leaderboardTpl\">\n<div id=\"leaderboardModal\" class=\"meetgle-modal\" style=\"display:none;\">\n    <div class=\"meetgle-modal-content leaderboard-modal-content\" style=\"max-width:700px;background:#141417;border:1px solid rgba(255,255,255,0.08);border-radius:20px;display:flex;flex-direction:column;max-height:90vh;overflow:hidden;\">\n\n        <!-- Header -->\n        <div class=\"lb-head\">\n            <div class=\"lb-titles\">\n                <h2 class=\"mg-mtitle\">Top Earners<\/h2>\n                <div class=\"lb-sub\" id=\"leaderboardWeekRange\">Loading...<\/div>\n            <\/div>\n            <button onclick=\"closeLeaderboardModal()\" class=\"mg-mclose\">&times;<\/button>\n        <\/div>\n\n        <!-- Body (scrolls) -->\n        <div class=\"lb-body\">\n\n            <!-- Loading State -->\n            <div id=\"leaderboardLoading\" style=\"text-align:center;padding:48px 0;\">\n                <div style=\"width:32px;height:32px;border:3px solid rgba(255,255,255,0.1);border-top-color:rgba(255,255,255,0.5);border-radius:50%;margin:0 auto 12px;animation:lbSpin 0.8s linear infinite;\"><\/div>\n                <div style=\"color:rgba(255,255,255,0.35);font-size:13px;\">Loading leaderboard...<\/div>\n            <\/div>\n\n            <!-- Leaderboard Content -->\n            <div id=\"leaderboardContent\" style=\"display:none;\">\n\n                <!-- Champion (rank #1) -->\n                <div id=\"leaderboardChampion\" class=\"lb-champ\" style=\"display:none;\">\n                    <div class=\"lb-champ-bignum\">1<\/div>\n                    <div class=\"lb-champ-avwrap\">\n                        <div class=\"lb-champ-crown\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M2.5 7.5l3.7 3.2L12 4l5.8 6.7 3.7-3.2-1.8 11.3a1 1 0 0 1-1 .84H5.3a1 1 0 0 1-1-.84L2.5 7.5z\"\/><\/svg><\/div>\n                        <div class=\"lb-champ-av\"><img decoding=\"async\" id=\"championAvatar\" src=\"\" alt=\"\"><\/div>\n                    <\/div>\n                    <div class=\"lb-champ-info\">\n                        <div class=\"lb-champ-tag\">This week&#039;s champion<\/div>\n                        <div class=\"lb-champ-nm\" id=\"championName\"><\/div>\n                        <div class=\"lb-champ-spk\"><span id=\"championSparks\">0<\/span> <span class=\"lt\">\u26a1<\/span><\/div>\n                        <div class=\"lb-champ-lead\" id=\"championLead\"><\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- Ranks #2+ -->\n                <div id=\"leaderboardList\" class=\"lb-list\"><\/div>\n            <\/div>\n\n            <!-- Error State -->\n            <div id=\"leaderboardError\" style=\"display:none;text-align:center;padding:48px 0;\">\n                <div style=\"font-size:28px;margin-bottom:12px;\">\ud83d\ude1e<\/div>\n                <div style=\"color:rgba(255,255,255,0.4);font-size:13px;\">Failed to load leaderboard. Please try again.<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n<\/template>\n        \n\n\n        \n        <!-- Match Preferences Drawer (always rendered for all users) -->\n        \n<!-- Match Preferences Drawer -->\n<div id=\"matchPreferencesDrawer\" class=\"meetgle-drawer-overlay\" style=\"display:none;\">\n    <div id=\"drawerContent\" class=\"meetgle-drawer-sheet\">\n\n        <!-- Grab handle (shared drawer style) -->\n        <div id=\"drawerGrab\" class=\"meetgle-drawer-grab\" aria-hidden=\"true\"><\/div>\n\n        <!-- Header -->\n        <div style=\"display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;\">\n            <div style=\"display:flex;align-items:center;gap:10px;\">\n                <div style=\"width:30px;height:30px;border-radius:8px;background:rgba(255,255,255,0.06);display:flex;align-items:center;justify-content:center;\">\n                    <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"rgba(255,255,255,0.5)\" stroke-width=\"2\" stroke-linecap=\"round\"><line x1=\"4\" y1=\"6\" x2=\"20\" y2=\"6\"\/><circle cx=\"15\" cy=\"6\" r=\"2\" fill=\"rgba(255,255,255,0.5)\"\/><line x1=\"4\" y1=\"12\" x2=\"20\" y2=\"12\"\/><circle cx=\"9\" cy=\"12\" r=\"2\" fill=\"rgba(255,255,255,0.5)\"\/><line x1=\"4\" y1=\"18\" x2=\"20\" y2=\"18\"\/><circle cx=\"14\" cy=\"18\" r=\"2\" fill=\"rgba(255,255,255,0.5)\"\/><\/svg>\n                <\/div>\n                <span style=\"font-size:15px;font-weight:700;color:rgba(255,255,255,0.8);letter-spacing:0.5px;\">MATCH PREFERENCES<\/span>\n            <\/div>\n            <button id=\"drawerCloseBtn\" class=\"meetgle-drawer-close\" aria-label=\"Close\">\n                <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg>\n            <\/button>\n        <\/div>\n\n        <!-- Filter Cards -->\n        <div style=\"display:flex;flex-direction:column;\">\n\n            <!-- Gender Filter Card -->\n            <div id=\"genderFilterCard\" class=\"mp-card\" style=\"display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 4px;border-bottom:1px solid rgba(255,255,255,0.06);cursor:pointer;user-select:none;\">\n                <div style=\"display:flex;align-items:center;gap:12px;min-width:0;\">\n                    <div id=\"genderFilterIcon\" style=\"width:32px;height:32px;border-radius:9px;background:rgba(255,255,255,0.06);display:flex;align-items:center;justify-content:center;flex-shrink:0;\">\n                        <svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"rgba(255,255,255,0.5)\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg>\n                    <\/div>\n                    <div style=\"min-width:0;\">\n                        <div style=\"font-size:14px;font-weight:600;color:#fff;\">Gender<\/div>\n                        <div id=\"genderFilterLabel\" style=\"font-size:12px;color:rgba(255,255,255,0.35);font-weight:500;margin-top:1px;\">Everyone<\/div>\n                    <\/div>\n                <\/div>\n                <div id=\"genderCardRight\" style=\"display:flex;align-items:center;flex-shrink:0;\">\n                    <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"rgba(255,255,255,0.4)\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m9 6 6 6-6 6\"\/><\/svg>\n                <\/div>\n            <\/div>\n\n            <!-- Country Filter Card -->\n            <div id=\"countryFilterCard\" class=\"mp-card\" style=\"display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 4px;cursor:pointer;user-select:none;\">\n                <div style=\"display:flex;align-items:center;gap:12px;min-width:0;\">\n                    <div id=\"countryFilterIcon\" style=\"width:32px;height:32px;border-radius:9px;background:rgba(255,255,255,0.06);display:flex;align-items:center;justify-content:center;flex-shrink:0;\">\n                        <svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"rgba(255,255,255,0.5)\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"\/><path d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"\/><\/svg>\n                    <\/div>\n                    <div style=\"min-width:0;\">\n                        <div style=\"font-size:14px;font-weight:600;color:#fff;\">Country<\/div>\n                        <div id=\"countryFilterLabel\" style=\"font-size:12px;color:rgba(255,255,255,0.35);font-weight:500;margin-top:1px;\">Nearby<\/div>\n                    <\/div>\n                <\/div>\n                <div id=\"countryCardRight\" style=\"display:flex;align-items:center;flex-shrink:0;\">\n                    <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"rgba(255,255,255,0.4)\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m9 6 6 6-6 6\"\/><\/svg>\n                <\/div>\n            <\/div>\n\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Hidden select elements (for filter functionality) -->\n<select id=\"genderFilter\" style=\"display:none;\">\n    <option value=\"\">All Genders<\/option>\n    <option value=\"male\">\u2642 Males Only<\/option>\n    <option value=\"female\">\u2640 Females Only<\/option>\n<\/select>\n\n<select id=\"countryFilter\" style=\"display:none;\">\n    <option value=\"\">All Countries<\/option><option value=\"AF\">\ud83c\udde6\ud83c\uddeb Afghanistan<\/option>\n<option value=\"AL\">\ud83c\udde6\ud83c\uddf1 Albania<\/option>\n<option value=\"DZ\">\ud83c\udde9\ud83c\uddff Algeria<\/option>\n<option value=\"AD\">\ud83c\udde6\ud83c\udde9 Andorra<\/option>\n<option value=\"AO\">\ud83c\udde6\ud83c\uddf4 Angola<\/option>\n<option value=\"AG\">\ud83c\udde6\ud83c\uddec Antigua and Barbuda<\/option>\n<option value=\"AR\">\ud83c\udde6\ud83c\uddf7 Argentina<\/option>\n<option value=\"AM\">\ud83c\udde6\ud83c\uddf2 Armenia<\/option>\n<option value=\"AU\">\ud83c\udde6\ud83c\uddfa Australia<\/option>\n<option value=\"AT\">\ud83c\udde6\ud83c\uddf9 Austria<\/option>\n<option value=\"AZ\">\ud83c\udde6\ud83c\uddff Azerbaijan<\/option>\n<option value=\"BS\">\ud83c\udde7\ud83c\uddf8 Bahamas<\/option>\n<option value=\"BH\">\ud83c\udde7\ud83c\udded Bahrain<\/option>\n<option value=\"BD\">\ud83c\udde7\ud83c\udde9 Bangladesh<\/option>\n<option value=\"BB\">\ud83c\udde7\ud83c\udde7 Barbados<\/option>\n<option value=\"BY\">\ud83c\udde7\ud83c\uddfe Belarus<\/option>\n<option value=\"BE\">\ud83c\udde7\ud83c\uddea Belgium<\/option>\n<option value=\"BZ\">\ud83c\udde7\ud83c\uddff Belize<\/option>\n<option value=\"BJ\">\ud83c\udde7\ud83c\uddef Benin<\/option>\n<option value=\"BT\">\ud83c\udde7\ud83c\uddf9 Bhutan<\/option>\n<option value=\"BO\">\ud83c\udde7\ud83c\uddf4 Bolivia<\/option>\n<option value=\"BA\">\ud83c\udde7\ud83c\udde6 Bosnia and Herzegovina<\/option>\n<option value=\"BW\">\ud83c\udde7\ud83c\uddfc Botswana<\/option>\n<option value=\"BR\">\ud83c\udde7\ud83c\uddf7 Brazil<\/option>\n<option value=\"BN\">\ud83c\udde7\ud83c\uddf3 Brunei<\/option>\n<option value=\"BG\">\ud83c\udde7\ud83c\uddec Bulgaria<\/option>\n<option value=\"BF\">\ud83c\udde7\ud83c\uddeb Burkina Faso<\/option>\n<option value=\"BI\">\ud83c\udde7\ud83c\uddee Burundi<\/option>\n<option value=\"KH\">\ud83c\uddf0\ud83c\udded Cambodia<\/option>\n<option value=\"CM\">\ud83c\udde8\ud83c\uddf2 Cameroon<\/option>\n<option value=\"CA\">\ud83c\udde8\ud83c\udde6 Canada<\/option>\n<option value=\"CV\">\ud83c\udde8\ud83c\uddfb Cape Verde<\/option>\n<option value=\"CF\">\ud83c\udde8\ud83c\uddeb Central African Republic<\/option>\n<option value=\"TD\">\ud83c\uddf9\ud83c\udde9 Chad<\/option>\n<option value=\"CL\">\ud83c\udde8\ud83c\uddf1 Chile<\/option>\n<option value=\"CN\">\ud83c\udde8\ud83c\uddf3 China<\/option>\n<option value=\"CO\">\ud83c\udde8\ud83c\uddf4 Colombia<\/option>\n<option value=\"KM\">\ud83c\uddf0\ud83c\uddf2 Comoros<\/option>\n<option value=\"CG\">\ud83c\udde8\ud83c\uddec Congo<\/option>\n<option value=\"CD\">\ud83c\udde8\ud83c\udde9 Congo (DRC)<\/option>\n<option value=\"CR\">\ud83c\udde8\ud83c\uddf7 Costa Rica<\/option>\n<option value=\"HR\">\ud83c\udded\ud83c\uddf7 Croatia<\/option>\n<option value=\"CU\">\ud83c\udde8\ud83c\uddfa Cuba<\/option>\n<option value=\"CY\">\ud83c\udde8\ud83c\uddfe Cyprus<\/option>\n<option value=\"CZ\">\ud83c\udde8\ud83c\uddff Czech Republic<\/option>\n<option value=\"DK\">\ud83c\udde9\ud83c\uddf0 Denmark<\/option>\n<option value=\"DJ\">\ud83c\udde9\ud83c\uddef Djibouti<\/option>\n<option value=\"DM\">\ud83c\udde9\ud83c\uddf2 Dominica<\/option>\n<option value=\"DO\">\ud83c\udde9\ud83c\uddf4 Dominican Republic<\/option>\n<option value=\"EC\">\ud83c\uddea\ud83c\udde8 Ecuador<\/option>\n<option value=\"EG\">\ud83c\uddea\ud83c\uddec Egypt<\/option>\n<option value=\"SV\">\ud83c\uddf8\ud83c\uddfb El Salvador<\/option>\n<option value=\"GQ\">\ud83c\uddec\ud83c\uddf6 Equatorial Guinea<\/option>\n<option value=\"ER\">\ud83c\uddea\ud83c\uddf7 Eritrea<\/option>\n<option value=\"EE\">\ud83c\uddea\ud83c\uddea Estonia<\/option>\n<option value=\"ET\">\ud83c\uddea\ud83c\uddf9 Ethiopia<\/option>\n<option value=\"FJ\">\ud83c\uddeb\ud83c\uddef Fiji<\/option>\n<option value=\"FI\">\ud83c\uddeb\ud83c\uddee Finland<\/option>\n<option value=\"FR\">\ud83c\uddeb\ud83c\uddf7 France<\/option>\n<option value=\"GA\">\ud83c\uddec\ud83c\udde6 Gabon<\/option>\n<option value=\"GM\">\ud83c\uddec\ud83c\uddf2 Gambia<\/option>\n<option value=\"GE\">\ud83c\uddec\ud83c\uddea Georgia<\/option>\n<option value=\"DE\">\ud83c\udde9\ud83c\uddea Germany<\/option>\n<option value=\"GH\">\ud83c\uddec\ud83c\udded Ghana<\/option>\n<option value=\"GR\">\ud83c\uddec\ud83c\uddf7 Greece<\/option>\n<option value=\"GD\">\ud83c\uddec\ud83c\udde9 Grenada<\/option>\n<option value=\"GT\">\ud83c\uddec\ud83c\uddf9 Guatemala<\/option>\n<option value=\"GN\">\ud83c\uddec\ud83c\uddf3 Guinea<\/option>\n<option value=\"GW\">\ud83c\uddec\ud83c\uddfc Guinea-Bissau<\/option>\n<option value=\"GY\">\ud83c\uddec\ud83c\uddfe Guyana<\/option>\n<option value=\"HT\">\ud83c\udded\ud83c\uddf9 Haiti<\/option>\n<option value=\"HN\">\ud83c\udded\ud83c\uddf3 Honduras<\/option>\n<option value=\"HU\">\ud83c\udded\ud83c\uddfa Hungary<\/option>\n<option value=\"IS\">\ud83c\uddee\ud83c\uddf8 Iceland<\/option>\n<option value=\"IN\">\ud83c\uddee\ud83c\uddf3 India<\/option>\n<option value=\"ID\">\ud83c\uddee\ud83c\udde9 Indonesia<\/option>\n<option value=\"IR\">\ud83c\uddee\ud83c\uddf7 Iran<\/option>\n<option value=\"IQ\">\ud83c\uddee\ud83c\uddf6 Iraq<\/option>\n<option value=\"IE\">\ud83c\uddee\ud83c\uddea Ireland<\/option>\n<option value=\"IL\">\ud83c\uddee\ud83c\uddf1 Israel<\/option>\n<option value=\"IT\">\ud83c\uddee\ud83c\uddf9 Italy<\/option>\n<option value=\"CI\">\ud83c\udde8\ud83c\uddee Ivory Coast<\/option>\n<option value=\"JM\">\ud83c\uddef\ud83c\uddf2 Jamaica<\/option>\n<option value=\"JP\">\ud83c\uddef\ud83c\uddf5 Japan<\/option>\n<option value=\"JO\">\ud83c\uddef\ud83c\uddf4 Jordan<\/option>\n<option value=\"KZ\">\ud83c\uddf0\ud83c\uddff Kazakhstan<\/option>\n<option value=\"KE\">\ud83c\uddf0\ud83c\uddea Kenya<\/option>\n<option value=\"KI\">\ud83c\uddf0\ud83c\uddee Kiribati<\/option>\n<option value=\"KW\">\ud83c\uddf0\ud83c\uddfc Kuwait<\/option>\n<option value=\"KG\">\ud83c\uddf0\ud83c\uddec Kyrgyzstan<\/option>\n<option value=\"LA\">\ud83c\uddf1\ud83c\udde6 Laos<\/option>\n<option value=\"LV\">\ud83c\uddf1\ud83c\uddfb Latvia<\/option>\n<option value=\"LB\">\ud83c\uddf1\ud83c\udde7 Lebanon<\/option>\n<option value=\"LS\">\ud83c\uddf1\ud83c\uddf8 Lesotho<\/option>\n<option value=\"LR\">\ud83c\uddf1\ud83c\uddf7 Liberia<\/option>\n<option value=\"LY\">\ud83c\uddf1\ud83c\uddfe Libya<\/option>\n<option value=\"LI\">\ud83c\uddf1\ud83c\uddee Liechtenstein<\/option>\n<option value=\"LT\">\ud83c\uddf1\ud83c\uddf9 Lithuania<\/option>\n<option value=\"LU\">\ud83c\uddf1\ud83c\uddfa Luxembourg<\/option>\n<option value=\"MK\">\ud83c\uddf2\ud83c\uddf0 Macedonia<\/option>\n<option value=\"MG\">\ud83c\uddf2\ud83c\uddec Madagascar<\/option>\n<option value=\"MW\">\ud83c\uddf2\ud83c\uddfc Malawi<\/option>\n<option value=\"MY\">\ud83c\uddf2\ud83c\uddfe Malaysia<\/option>\n<option value=\"MV\">\ud83c\uddf2\ud83c\uddfb Maldives<\/option>\n<option value=\"ML\">\ud83c\uddf2\ud83c\uddf1 Mali<\/option>\n<option value=\"MT\">\ud83c\uddf2\ud83c\uddf9 Malta<\/option>\n<option value=\"MH\">\ud83c\uddf2\ud83c\udded Marshall Islands<\/option>\n<option value=\"MR\">\ud83c\uddf2\ud83c\uddf7 Mauritania<\/option>\n<option value=\"MU\">\ud83c\uddf2\ud83c\uddfa Mauritius<\/option>\n<option value=\"MX\">\ud83c\uddf2\ud83c\uddfd Mexico<\/option>\n<option value=\"FM\">\ud83c\uddeb\ud83c\uddf2 Micronesia<\/option>\n<option value=\"MD\">\ud83c\uddf2\ud83c\udde9 Moldova<\/option>\n<option value=\"MC\">\ud83c\uddf2\ud83c\udde8 Monaco<\/option>\n<option value=\"MN\">\ud83c\uddf2\ud83c\uddf3 Mongolia<\/option>\n<option value=\"ME\">\ud83c\uddf2\ud83c\uddea Montenegro<\/option>\n<option value=\"MA\">\ud83c\uddf2\ud83c\udde6 Morocco<\/option>\n<option value=\"MZ\">\ud83c\uddf2\ud83c\uddff Mozambique<\/option>\n<option value=\"MM\">\ud83c\uddf2\ud83c\uddf2 Myanmar<\/option>\n<option value=\"NA\">\ud83c\uddf3\ud83c\udde6 Namibia<\/option>\n<option value=\"NR\">\ud83c\uddf3\ud83c\uddf7 Nauru<\/option>\n<option value=\"NP\">\ud83c\uddf3\ud83c\uddf5 Nepal<\/option>\n<option value=\"NL\">\ud83c\uddf3\ud83c\uddf1 Netherlands<\/option>\n<option value=\"NZ\">\ud83c\uddf3\ud83c\uddff New Zealand<\/option>\n<option value=\"NI\">\ud83c\uddf3\ud83c\uddee Nicaragua<\/option>\n<option value=\"NE\">\ud83c\uddf3\ud83c\uddea Niger<\/option>\n<option value=\"NG\">\ud83c\uddf3\ud83c\uddec Nigeria<\/option>\n<option value=\"KP\">\ud83c\uddf0\ud83c\uddf5 North Korea<\/option>\n<option value=\"NO\">\ud83c\uddf3\ud83c\uddf4 Norway<\/option>\n<option value=\"OM\">\ud83c\uddf4\ud83c\uddf2 Oman<\/option>\n<option value=\"PK\">\ud83c\uddf5\ud83c\uddf0 Pakistan<\/option>\n<option value=\"PW\">\ud83c\uddf5\ud83c\uddfc Palau<\/option>\n<option value=\"PS\">\ud83c\uddf5\ud83c\uddf8 Palestine<\/option>\n<option value=\"PA\">\ud83c\uddf5\ud83c\udde6 Panama<\/option>\n<option value=\"PG\">\ud83c\uddf5\ud83c\uddec Papua New Guinea<\/option>\n<option value=\"PY\">\ud83c\uddf5\ud83c\uddfe Paraguay<\/option>\n<option value=\"PE\">\ud83c\uddf5\ud83c\uddea Peru<\/option>\n<option value=\"PH\">\ud83c\uddf5\ud83c\udded Philippines<\/option>\n<option value=\"PL\">\ud83c\uddf5\ud83c\uddf1 Poland<\/option>\n<option value=\"PT\">\ud83c\uddf5\ud83c\uddf9 Portugal<\/option>\n<option value=\"QA\">\ud83c\uddf6\ud83c\udde6 Qatar<\/option>\n<option value=\"RO\">\ud83c\uddf7\ud83c\uddf4 Romania<\/option>\n<option value=\"RU\">\ud83c\uddf7\ud83c\uddfa Russia<\/option>\n<option value=\"RW\">\ud83c\uddf7\ud83c\uddfc Rwanda<\/option>\n<option value=\"KN\">\ud83c\uddf0\ud83c\uddf3 Saint Kitts and Nevis<\/option>\n<option value=\"LC\">\ud83c\uddf1\ud83c\udde8 Saint Lucia<\/option>\n<option value=\"VC\">\ud83c\uddfb\ud83c\udde8 Saint Vincent<\/option>\n<option value=\"WS\">\ud83c\uddfc\ud83c\uddf8 Samoa<\/option>\n<option value=\"SM\">\ud83c\uddf8\ud83c\uddf2 San Marino<\/option>\n<option value=\"ST\">\ud83c\uddf8\ud83c\uddf9 Sao Tome and Principe<\/option>\n<option value=\"SA\">\ud83c\uddf8\ud83c\udde6 Saudi Arabia<\/option>\n<option value=\"SN\">\ud83c\uddf8\ud83c\uddf3 Senegal<\/option>\n<option value=\"RS\">\ud83c\uddf7\ud83c\uddf8 Serbia<\/option>\n<option value=\"SC\">\ud83c\uddf8\ud83c\udde8 Seychelles<\/option>\n<option value=\"SL\">\ud83c\uddf8\ud83c\uddf1 Sierra Leone<\/option>\n<option value=\"SG\">\ud83c\uddf8\ud83c\uddec Singapore<\/option>\n<option value=\"SK\">\ud83c\uddf8\ud83c\uddf0 Slovakia<\/option>\n<option value=\"SI\">\ud83c\uddf8\ud83c\uddee Slovenia<\/option>\n<option value=\"SB\">\ud83c\uddf8\ud83c\udde7 Solomon Islands<\/option>\n<option value=\"SO\">\ud83c\uddf8\ud83c\uddf4 Somalia<\/option>\n<option value=\"ZA\">\ud83c\uddff\ud83c\udde6 South Africa<\/option>\n<option value=\"KR\">\ud83c\uddf0\ud83c\uddf7 South Korea<\/option>\n<option value=\"SS\">\ud83c\uddf8\ud83c\uddf8 South Sudan<\/option>\n<option value=\"ES\">\ud83c\uddea\ud83c\uddf8 Spain<\/option>\n<option value=\"LK\">\ud83c\uddf1\ud83c\uddf0 Sri Lanka<\/option>\n<option value=\"SD\">\ud83c\uddf8\ud83c\udde9 Sudan<\/option>\n<option value=\"SR\">\ud83c\uddf8\ud83c\uddf7 Suriname<\/option>\n<option value=\"SZ\">\ud83c\uddf8\ud83c\uddff Swaziland<\/option>\n<option value=\"SE\">\ud83c\uddf8\ud83c\uddea Sweden<\/option>\n<option value=\"CH\">\ud83c\udde8\ud83c\udded Switzerland<\/option>\n<option value=\"SY\">\ud83c\uddf8\ud83c\uddfe Syria<\/option>\n<option value=\"TW\">\ud83c\uddf9\ud83c\uddfc Taiwan<\/option>\n<option value=\"TJ\">\ud83c\uddf9\ud83c\uddef Tajikistan<\/option>\n<option value=\"TZ\">\ud83c\uddf9\ud83c\uddff Tanzania<\/option>\n<option value=\"TH\">\ud83c\uddf9\ud83c\udded Thailand<\/option>\n<option value=\"TL\">\ud83c\uddf9\ud83c\uddf1 Timor-Leste<\/option>\n<option value=\"TG\">\ud83c\uddf9\ud83c\uddec Togo<\/option>\n<option value=\"TO\">\ud83c\uddf9\ud83c\uddf4 Tonga<\/option>\n<option value=\"TT\">\ud83c\uddf9\ud83c\uddf9 Trinidad and Tobago<\/option>\n<option value=\"TN\">\ud83c\uddf9\ud83c\uddf3 Tunisia<\/option>\n<option value=\"TR\">\ud83c\uddf9\ud83c\uddf7 Turkey<\/option>\n<option value=\"TM\">\ud83c\uddf9\ud83c\uddf2 Turkmenistan<\/option>\n<option value=\"TV\">\ud83c\uddf9\ud83c\uddfb Tuvalu<\/option>\n<option value=\"UG\">\ud83c\uddfa\ud83c\uddec Uganda<\/option>\n<option value=\"UA\">\ud83c\uddfa\ud83c\udde6 Ukraine<\/option>\n<option value=\"AE\">\ud83c\udde6\ud83c\uddea United Arab Emirates<\/option>\n<option value=\"GB\">\ud83c\uddec\ud83c\udde7 United Kingdom<\/option>\n<option value=\"US\">\ud83c\uddfa\ud83c\uddf8 United States<\/option>\n<option value=\"UY\">\ud83c\uddfa\ud83c\uddfe Uruguay<\/option>\n<option value=\"UZ\">\ud83c\uddfa\ud83c\uddff Uzbekistan<\/option>\n<option value=\"VU\">\ud83c\uddfb\ud83c\uddfa Vanuatu<\/option>\n<option value=\"VA\">\ud83c\uddfb\ud83c\udde6 Vatican City<\/option>\n<option value=\"VE\">\ud83c\uddfb\ud83c\uddea Venezuela<\/option>\n<option value=\"VN\">\ud83c\uddfb\ud83c\uddf3 Vietnam<\/option>\n<option value=\"YE\">\ud83c\uddfe\ud83c\uddea Yemen<\/option>\n<option value=\"ZM\">\ud83c\uddff\ud83c\uddf2 Zambia<\/option>\n<option value=\"ZW\">\ud83c\uddff\ud83c\uddfc Zimbabwe<\/option><\/select>\n\n<!-- Gender Selection Modal -->\n<div id=\"genderSelectionModal\" style=\"display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.85);z-index:100001;align-items:center;justify-content:center;padding:20px;\">\n    <div style=\"background:rgba(18,18,24,0.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:16px;padding:20px;max-width:360px;width:100%;box-shadow:0 12px 40px rgba(0,0,0,0.6);border:1px solid rgba(255,255,255,0.08);\">\n        <h3 style=\"margin:0 0 16px 0;color:rgba(255,255,255,0.7);font-size:14px;font-weight:700;text-align:center;letter-spacing:0.5px;\">SELECT GENDER<\/h3>\n\n        <div style=\"display:flex;flex-direction:column;gap:6px;\">\n            <button class=\"gender-option\" data-value=\"\" style=\"padding:12px 14px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:12px;cursor:pointer;display:flex;align-items:center;gap:10px;transition:background 0.15s;color:#fff;\">\n                <div style=\"width:28px;height:28px;border-radius:7px;background:rgba(255,255,255,0.06);display:flex;align-items:center;justify-content:center;flex-shrink:0;\">\n                    <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"rgba(255,255,255,0.5)\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg>\n                <\/div>\n                <span style=\"font-weight:600;font-size:13px;\">Everyone<\/span>\n            <\/button>\n\n            <button class=\"gender-option\" data-value=\"male\" style=\"padding:12px 14px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:12px;cursor:pointer;display:flex;align-items:center;gap:10px;transition:background 0.15s;color:#fff;\">\n                <div style=\"width:28px;height:28px;border-radius:7px;background:rgba(96,165,250,0.1);display:flex;align-items:center;justify-content:center;flex-shrink:0;\">\n                    <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#60A5FA\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"10\" cy=\"14\" r=\"5\"\/><line x1=\"19\" y1=\"5\" x2=\"13.6\" y2=\"10.4\"\/><line x1=\"19\" y1=\"5\" x2=\"14\" y2=\"5\"\/><line x1=\"19\" y1=\"5\" x2=\"19\" y2=\"10\"\/><\/svg>\n                <\/div>\n                <span style=\"font-weight:600;font-size:13px;\">Males Only<\/span>\n            <\/button>\n\n            <button class=\"gender-option\" data-value=\"female\" style=\"padding:12px 14px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:12px;cursor:pointer;display:flex;align-items:center;gap:10px;transition:background 0.15s;color:#fff;\">\n                <div style=\"width:28px;height:28px;border-radius:7px;background:rgba(244,114,182,0.1);display:flex;align-items:center;justify-content:center;flex-shrink:0;\">\n                    <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#F472B6\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"8\" r=\"5\"\/><line x1=\"12\" y1=\"13\" x2=\"12\" y2=\"21\"\/><line x1=\"9\" y1=\"18\" x2=\"15\" y2=\"18\"\/><\/svg>\n                <\/div>\n                <span style=\"font-weight:600;font-size:13px;\">Females Only<\/span>\n            <\/button>\n        <\/div>\n\n        <button onclick=\"closeGenderSelectionModal()\" style=\"width:100%;margin-top:12px;padding:10px;background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.5);border:1px solid rgba(255,255,255,0.08);border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:background 0.15s;\">\n            Cancel        <\/button>\n    <\/div>\n<\/div>\n\n<!-- Country Selection Modal -->\n<div id=\"countrySelectionModal\" style=\"display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.85);z-index:100001;align-items:center;justify-content:center;padding:20px;\">\n    <div style=\"background:rgba(18,18,24,0.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:16px;padding:20px;max-width:360px;width:100%;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 12px 40px rgba(0,0,0,0.6);border:1px solid rgba(255,255,255,0.08);\">\n\n        <!-- Tab Switcher -->\n        <div id=\"countryModeTabs\" style=\"display:flex;gap:4px;margin-bottom:12px;background:rgba(255,255,255,0.04);border-radius:10px;padding:3px;\">\n            <button id=\"countryTabMatch\" class=\"country-tab active\" style=\"flex:1;padding:8px;border:none;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;transition:all 0.15s;background:rgba(255,255,255,0.1);color:rgba(255,255,255,0.8);\">Match With<\/button>\n            <button id=\"countryTabExclude\" class=\"country-tab\" style=\"flex:1;padding:8px;border:none;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;transition:all 0.15s;background:transparent;color:rgba(255,255,255,0.35);\">Exclude<\/button>\n        <\/div>\n\n        <div style=\"position:relative;margin-bottom:10px;\">\n            <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"rgba(255,255,255,0.3)\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"position:absolute;left:12px;top:50%;transform:translateY(-50%);pointer-events:none;\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><\/svg>\n            <input id=\"countrySearchInput\" type=\"text\" placeholder=\"Search countries...\" autocomplete=\"off\" style=\"width:100%;padding:10px 12px 10px 34px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:10px;color:#fff;font-size:16px;font-family:inherit;font-weight:500;outline:none;box-sizing:border-box;transition:border-color 0.15s;\" onfocus=\"this.style.borderColor='rgba(255,255,255,0.2)'\" onblur=\"this.style.borderColor='rgba(255,255,255,0.08)'\" \/>\n        <\/div>\n\n        <!-- Match With mode (single-select) -->\n        <div id=\"countryOptionsContainer\" style=\"display:flex;flex-direction:column;gap:4px;overflow-y:auto;flex:1;margin-bottom:12px;\">\n            <!-- Populated by JavaScript -->\n        <\/div>\n\n        <!-- Exclude mode (multi-select with checkboxes) -->\n        <div id=\"countryExcludeContainer\" style=\"display:none;flex-direction:column;gap:4px;overflow-y:auto;flex:1;margin-bottom:12px;\">\n            <!-- Populated by JavaScript -->\n        <\/div>\n\n        <button id=\"countryModalCloseBtn\" onclick=\"closeCountrySelectionModal()\" style=\"width:100%;padding:10px;background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.5);border:1px solid rgba(255,255,255,0.08);border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:background 0.15s;\">\n            Cancel        <\/button>\n    <\/div>\n<\/div>\n\n<script>\n(function() {\n    \/\/ Lock tier state from PHP\n    var isLoggedIn = false;\n    var canUseFilters = false;\n\n    \/\/ Expose to window for spark store to update after purchase\n    window.matchPrefsIsLoggedIn = isLoggedIn;\n    window.matchPrefsCanUseFilters = canUseFilters;\n\n    var drawer = document.getElementById('matchPreferencesDrawer');\n    var drawerContent = document.getElementById('drawerContent');\n    var drawerBtn = document.getElementById('matchPreferencesBtn');\n    var drawerCloseBtn = document.getElementById('drawerCloseBtn');\n    var genderFilterCard = document.getElementById('genderFilterCard');\n    var countryFilterCard = document.getElementById('countryFilterCard');\n    var genderCardRight = document.getElementById('genderCardRight');\n    var countryCardRight = document.getElementById('countryCardRight');\n    var genderModal = document.getElementById('genderSelectionModal');\n    var countryModal = document.getElementById('countrySelectionModal');\n    var genderFilter = document.getElementById('genderFilter');\n    var countryFilter = document.getElementById('countryFilter');\n\n    \/\/ Apply locked styling based on tier\n    function applyLockState() {\n        if (canUseFilters) {\n            \/\/ Unlocked \u2014 full access\n            genderFilterCard.style.opacity = '1';\n            countryFilterCard.style.opacity = '1';\n            genderCardRight.innerHTML = '<span style=\"color:rgba(255,255,255,0.3);font-size:16px;\">\u203a<\/span>';\n            countryCardRight.innerHTML = '<span style=\"color:rgba(255,255,255,0.3);font-size:16px;\">\u203a<\/span>';\n        } else if (isLoggedIn) {\n            \/\/ Logged in but no pass \u2014 show price\n            genderFilterCard.style.opacity = '0.5';\n            countryFilterCard.style.opacity = '0.5';\n            var priceHTML = '<span style=\"color:#FBBF24;font-size:12px;font-weight:700;white-space:nowrap;\">100 \u26a1<\/span>';\n            genderCardRight.innerHTML = priceHTML;\n            countryCardRight.innerHTML = priceHTML;\n        } else {\n            \/\/ Anonymous \u2014 show login prompt\n            genderFilterCard.style.opacity = '0.5';\n            countryFilterCard.style.opacity = '0.5';\n            var loginHTML = '<span style=\"color:rgba(255,255,255,0.35);font-size:11px;font-weight:600;white-space:nowrap;\">Log in \u2192<\/span>';\n            genderCardRight.innerHTML = loginHTML;\n            countryCardRight.innerHTML = loginHTML;\n        }\n    }\n\n    applyLockState();\n\n    \/\/ Unlock cards after purchase (called from spark store)\n    window.unlockMatchPreferencesCards = function() {\n        canUseFilters = true;\n        window.matchPrefsCanUseFilters = true;\n        window.canUseFilters = true;\n        applyLockState();\n    };\n\n    \/\/ Open\/close via the shared MeetgleDrawer controller (animation, backdrop,\n    \/\/ swipe and Escape are all handled there \u2014 same as every other drawer).\n    window.openMatchPreferencesDrawer = function() {\n        if (window.MeetgleDrawer) { MeetgleDrawer.open('matchPreferencesDrawer'); }\n        else { drawer.style.display = 'block'; }\n        var pill = document.getElementById('filterTryMePill');\n        if (pill) pill.style.display = 'none';   \/\/ hide \"Try Me\" pill once opened\n    };\n\n    window.closeMatchPreferencesDrawer = function() {\n        if (window.MeetgleDrawer) { MeetgleDrawer.close('matchPreferencesDrawer'); }\n        else { drawer.style.display = 'none'; }\n    };\n\n    \/\/ Close button\n    if (drawerCloseBtn) {\n        drawerCloseBtn.addEventListener('click', closeMatchPreferencesDrawer);\n    }\n\n    \/\/ Open drawer on button click\n    if (drawerBtn) {\n        drawerBtn.addEventListener('click', openMatchPreferencesDrawer);\n    }\n\n    \/\/ Close on backdrop click\n    drawer.addEventListener('click', function(e) {\n        if (e.target === drawer) {\n            closeMatchPreferencesDrawer();\n        }\n    });\n\n    \/\/ Card click handler with lock tier check\n    function handleCardClick(type) {\n        if (!isLoggedIn) {\n            \/\/ Anonymous \u2192 close drawer + open the login modal so the user stays\n            \/\/ on the page (fall back to the \/login page if the modal isn't there).\n            closeMatchPreferencesDrawer();\n            if (typeof openMeetgleLoginModal === 'function') {\n                openMeetgleLoginModal();\n            } else {\n                window.location.href = '\/login';\n            }\n            return;\n        }\n\n        \/\/ Check window.canUseFilters for live state (updated by spark store)\n        if (!window.canUseFilters && !canUseFilters) {\n            \/\/ Logged in but no pass \u2192 close drawer, open spark store\n            closeMatchPreferencesDrawer();\n            if (typeof openSparkStoreModal === 'function') {\n                openSparkStoreModal();\n            }\n            return;\n        }\n\n        \/\/ Unlocked \u2192 open selection modal\n        if (type === 'gender') {\n            if (window.MeetgleModalManager) {\n                MeetgleModalManager.open(genderModal, { escClose: false, backdropClose: false });\n            } else {\n                genderModal.style.display = 'flex';\n            }\n        } else {\n            var container = document.getElementById('countryOptionsContainer');\n            if (container.children.length === 0) {\n                populateCountryOptions();\n            }\n            populateExcludeOptions();\n            updateExcludeCheckboxes();\n            \/\/ Set correct tab state\n            setCountryTab(countryMode);\n            \/\/ Reset search and show all\n            var searchInput = document.getElementById('countrySearchInput');\n            if (searchInput) {\n                searchInput.value = '';\n                filterCountryOptions('');\n                setTimeout(function() { searchInput.focus(); }, 100);\n            }\n            if (window.MeetgleModalManager) {\n                MeetgleModalManager.open(countryModal, { escClose: false, backdropClose: false });\n            } else {\n                countryModal.style.display = 'flex';\n            }\n        }\n    }\n\n    genderFilterCard.addEventListener('click', function() {\n        handleCardClick('gender');\n    });\n\n    countryFilterCard.addEventListener('click', function() {\n        handleCardClick('country');\n    });\n\n    \/\/ Close modals\n    window.closeGenderSelectionModal = function() {\n        if (window.MeetgleModalManager) {\n            MeetgleModalManager.close(genderModal);\n        } else {\n            genderModal.style.display = 'none';\n        }\n    };\n\n    window.closeCountrySelectionModal = function() {\n        if (window.MeetgleModalManager) {\n            MeetgleModalManager.close(countryModal);\n        } else {\n            countryModal.style.display = 'none';\n        }\n    };\n\n    \/\/ Backdrop close for modals\n    genderModal.addEventListener('click', function(e) {\n        if (e.target === genderModal) closeGenderSelectionModal();\n    });\n\n    countryModal.addEventListener('click', function(e) {\n        if (e.target === countryModal) closeCountrySelectionModal();\n    });\n\n    \/\/ Handle gender selection\n    document.querySelectorAll('.gender-option').forEach(function(option) {\n        option.addEventListener('click', function() {\n            var value = this.getAttribute('data-value');\n            genderFilter.value = value;\n            genderFilter.dispatchEvent(new Event('change'));\n            updateGenderDisplay(value);\n            closeGenderSelectionModal();\n        });\n    });\n\n    \/\/ Update gender display \u2014 swap icon SVG + label\n    var genderIcons = {\n        '': '<svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"rgba(255,255,255,0.5)\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg>',\n        'male': '<svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#60A5FA\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"10\" cy=\"14\" r=\"5\"\/><line x1=\"19\" y1=\"5\" x2=\"13.6\" y2=\"10.4\"\/><line x1=\"19\" y1=\"5\" x2=\"14\" y2=\"5\"\/><line x1=\"19\" y1=\"5\" x2=\"19\" y2=\"10\"\/><\/svg>',\n        'female': '<svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#F472B6\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"8\" r=\"5\"\/><line x1=\"12\" y1=\"13\" x2=\"12\" y2=\"21\"\/><line x1=\"9\" y1=\"18\" x2=\"15\" y2=\"18\"\/><\/svg>'\n    };\n    function updateGenderDisplay(value) {\n        var iconEl = document.getElementById('genderFilterIcon');\n        var label = document.getElementById('genderFilterLabel');\n        if (genderIcons[value] !== undefined) {\n            iconEl.innerHTML = genderIcons[value];\n        }\n        if (value === 'male') {\n            label.textContent = 'Males Only';\n        } else if (value === 'female') {\n            label.textContent = 'Females Only';\n        } else {\n            label.textContent = 'Everyone';\n        }\n    }\n\n    \/\/ =====================================================================\n    \/\/ COUNTRY MODE: \"match\" (single-select) vs \"exclude\" (multi-select)\n    \/\/ =====================================================================\n    var countryMode = 'match'; \/\/ 'match' or 'exclude'\n    var countryExclusions = []; \/\/ array of excluded country codes\n\n    \/\/ Load saved exclusions from localStorage\n    function loadCountryExclusions() {\n        try {\n            var raw = localStorage.getItem('meetgle_country_exclusions');\n            if (raw) return JSON.parse(raw);\n        } catch (e) {}\n        return [];\n    }\n    function saveCountryExclusions(list) {\n        try { localStorage.setItem('meetgle_country_exclusions', JSON.stringify(list)); } catch (e) {}\n    }\n    function loadCountryMode() {\n        try { return localStorage.getItem('meetgle_country_mode') || 'match'; } catch (e) { return 'match'; }\n    }\n    function saveCountryMode(mode) {\n        try { localStorage.setItem('meetgle_country_mode', mode); } catch (e) {}\n    }\n\n    \/\/ Expose exclusions globally for videochat.js to read\n    window.getCountryExclusions = function() { return countryExclusions; };\n    window.getCountryMode = function() { return countryMode; };\n\n    \/\/ Tab switching\n    var tabMatch = document.getElementById('countryTabMatch');\n    var tabExclude = document.getElementById('countryTabExclude');\n    var matchContainer = document.getElementById('countryOptionsContainer');\n    var excludeContainer = document.getElementById('countryExcludeContainer');\n\n    function setCountryTab(mode) {\n        countryMode = mode;\n        saveCountryMode(mode);\n        var closeBtn = document.getElementById('countryModalCloseBtn');\n        if (mode === 'match') {\n            tabMatch.style.background = 'rgba(255,255,255,0.1)';\n            tabMatch.style.color = 'rgba(255,255,255,0.8)';\n            tabExclude.style.background = 'transparent';\n            tabExclude.style.color = 'rgba(255,255,255,0.35)';\n            matchContainer.style.display = 'flex';\n            excludeContainer.style.display = 'none';\n            \/\/ Clear exclusions when switching to match mode\n            countryExclusions = [];\n            saveCountryExclusions([]);\n            updateExcludeCheckboxes();\n            if (closeBtn) closeBtn.textContent = 'Cancel';\n        } else {\n            tabExclude.style.background = 'rgba(255,255,255,0.1)';\n            tabExclude.style.color = 'rgba(255,255,255,0.8)';\n            tabMatch.style.background = 'transparent';\n            tabMatch.style.color = 'rgba(255,255,255,0.35)';\n            matchContainer.style.display = 'none';\n            excludeContainer.style.display = 'flex';\n            \/\/ Clear single-country preference when switching to exclude mode\n            countryFilter.value = '';\n            countryFilter.dispatchEvent(new Event('change'));\n            if (closeBtn) closeBtn.textContent = countryExclusions.length > 0 ? 'Done' : 'Cancel';\n        }\n        updateCountryDisplay();\n    }\n\n    tabMatch.addEventListener('click', function() { setCountryTab('match'); });\n    tabExclude.addEventListener('click', function() { setCountryTab('exclude'); });\n\n    \/\/ Populate country options (match mode \u2014 single-select)\n    function populateCountryOptions() {\n        var container = document.getElementById('countryOptionsContainer');\n        var options = countryFilter.querySelectorAll('option');\n\n        options.forEach(function(option) {\n            var btn = document.createElement('button');\n            btn.className = 'country-option';\n            btn.setAttribute('data-value', option.value);\n            btn.setAttribute('data-name', option.textContent.toLowerCase());\n            btn.style.cssText = 'padding:10px 14px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:10px;cursor:pointer;text-align:left;transition:background 0.15s;color:#fff;font-size:13px;font-weight:600;width:100%;';\n            btn.textContent = option.textContent;\n\n            btn.addEventListener('click', function() {\n                var val = this.getAttribute('data-value');\n                countryFilter.value = val;\n                countryFilter.dispatchEvent(new Event('change'));\n                updateCountryDisplay();\n                closeCountrySelectionModal();\n            });\n\n            container.appendChild(btn);\n        });\n    }\n\n    \/\/ Populate exclude options (exclude mode \u2014 multi-select with checkboxes)\n    function populateExcludeOptions() {\n        var container = document.getElementById('countryExcludeContainer');\n        if (container.children.length > 0) return; \/\/ already populated\n\n        var options = countryFilter.querySelectorAll('option');\n        options.forEach(function(option) {\n            if (!option.value) return; \/\/ skip \"All Countries\"\n\n            var btn = document.createElement('button');\n            btn.className = 'country-exclude-option';\n            btn.setAttribute('data-value', option.value);\n            btn.setAttribute('data-name', option.textContent.toLowerCase());\n            btn.style.cssText = 'padding:10px 14px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:10px;cursor:pointer;text-align:left;transition:all 0.15s;color:#fff;width:100%;box-sizing:border-box;';\n\n            var row = document.createElement('div');\n            row.style.cssText = 'display:flex;align-items:center;gap:10px;';\n\n            var checkbox = document.createElement('span');\n            checkbox.className = 'exclude-checkbox';\n            checkbox.style.cssText = 'width:16px;height:16px;min-width:16px;border-radius:4px;border:1.5px solid rgba(255,255,255,0.15);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 0.15s;font-size:9px;';\n\n            var label = document.createElement('span');\n            label.textContent = option.textContent;\n            label.style.cssText = 'font-size:13px;font-weight:600;';\n\n            row.appendChild(checkbox);\n            row.appendChild(label);\n            btn.appendChild(row);\n\n            btn.addEventListener('click', function() {\n                var val = this.getAttribute('data-value');\n                var idx = countryExclusions.indexOf(val);\n                if (idx === -1) {\n                    countryExclusions.push(val);\n                } else {\n                    countryExclusions.splice(idx, 1);\n                }\n                saveCountryExclusions(countryExclusions);\n                updateExcludeCheckboxes();\n                updateCountryDisplay();\n            });\n\n            container.appendChild(btn);\n        });\n    }\n\n    \/\/ Update checkbox visuals\n    function updateExcludeCheckboxes() {\n        var buttons = document.querySelectorAll('.country-exclude-option');\n        buttons.forEach(function(btn) {\n            var val = btn.getAttribute('data-value');\n            var cb = btn.querySelector('.exclude-checkbox');\n            if (countryExclusions.indexOf(val) !== -1) {\n                cb.style.background = '#EF4444';\n                cb.style.borderColor = '#EF4444';\n                cb.innerHTML = '\u2715';\n                cb.style.color = 'white';\n                btn.style.borderColor = 'rgba(239,68,68,0.2)';\n                btn.style.background = 'rgba(239,68,68,0.06)';\n            } else {\n                cb.style.background = 'transparent';\n                cb.style.borderColor = 'rgba(255,255,255,0.15)';\n                cb.innerHTML = '';\n                btn.style.borderColor = 'rgba(255,255,255,0.08)';\n                btn.style.background = 'rgba(255,255,255,0.04)';\n            }\n        });\n\n        \/\/ Update close button text\n        var closeBtn = document.getElementById('countryModalCloseBtn');\n        if (closeBtn) {\n            if (countryMode === 'exclude' && countryExclusions.length > 0) {\n                closeBtn.textContent = 'Done';\n            } else {\n                closeBtn.textContent = 'Cancel';\n            }\n        }\n    }\n\n    \/\/ Filter country options by search query (works for both containers)\n    function filterCountryOptions(query) {\n        var q = query.toLowerCase().trim();\n        var matchBtns = document.querySelectorAll('#countryOptionsContainer .country-option');\n        var excludeBtns = document.querySelectorAll('#countryExcludeContainer .country-exclude-option');\n        matchBtns.forEach(function(btn) {\n            var name = btn.getAttribute('data-name') || '';\n            btn.style.display = (!q || name.indexOf(q) !== -1) ? '' : 'none';\n        });\n        excludeBtns.forEach(function(btn) {\n            var name = btn.getAttribute('data-name') || '';\n            btn.style.display = (!q || name.indexOf(q) !== -1) ? '' : 'none';\n        });\n    }\n\n    \/\/ Wire up search input\n    var countrySearchInput = document.getElementById('countrySearchInput');\n    if (countrySearchInput) {\n        countrySearchInput.addEventListener('input', function() {\n            filterCountryOptions(this.value);\n        });\n    }\n\n    \/\/ Update country display \u2014 swap icon to flag emoji or globe SVG\n    var globeSVG = '<svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"rgba(255,255,255,0.5)\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"\/><path d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"\/><\/svg>';\n    function updateCountryDisplay() {\n        var iconEl = document.getElementById('countryFilterIcon');\n        var label = document.getElementById('countryFilterLabel');\n\n        if (countryMode === 'exclude' && countryExclusions.length > 0) {\n            \/\/ Show exclude count\n            iconEl.innerHTML = '<span style=\"font-size:14px;line-height:1;color:#EF4444;\">\u2298<\/span>';\n            label.textContent = 'Excluding ' + countryExclusions.length;\n        } else if (countryFilter.value) {\n            var option = countryFilter.querySelector('option[value=\"' + countryFilter.value + '\"]');\n            if (option) {\n                var text = option.textContent;\n                var flag = text.split(' ')[0];\n                iconEl.innerHTML = '<span style=\"font-size:18px;line-height:1;\">' + flag + '<\/span>';\n                label.textContent = text.substring(flag.length).trim();\n            }\n        } else {\n            iconEl.innerHTML = globeSVG;\n            label.textContent = 'All Countries';\n        }\n    }\n\n    \/\/ Listen for filter initialization from main JS\n    window.addEventListener('filtersInitialized', function() {\n        if (genderFilter) {\n            updateGenderDisplay(genderFilter.value);\n            genderFilter.addEventListener('change', function() {\n                updateGenderDisplay(genderFilter.value);\n            });\n        }\n\n        \/\/ Load saved country mode and exclusions\n        countryMode = loadCountryMode();\n        countryExclusions = loadCountryExclusions();\n\n        if (countryFilter) {\n            \/\/ If in exclude mode, clear any single-country preference\n            if (countryMode === 'exclude') {\n                countryFilter.value = '';\n            }\n            updateCountryDisplay();\n            countryFilter.addEventListener('change', function() {\n                updateCountryDisplay();\n            });\n        }\n    });\n\n    \/\/ Escape key\n    document.addEventListener('keydown', function(e) {\n        if (e.key === 'Escape') {\n            if (genderModal.style.display === 'flex') closeGenderSelectionModal();\n            if (countryModal.style.display === 'flex') closeCountrySelectionModal();\n            if (drawer.style.opacity === '1') closeMatchPreferencesDrawer();\n        }\n    });\n})();\n<\/script>\n\n\n        <!-- Profile Modal -->\n        \n<!-- Profile Modal Container -->\n<div id=\"meetgleProfileModal\" class=\"meetgle-modal\" style=\"display:none;\">\n    <div class=\"meetgle-modal-content profile-modal-content\" style=\"max-width:700px;width:100%;background:#141417;border:1px solid rgba(255,255,255,0.08);border-radius:20px;display:flex;flex-direction:column;overflow:hidden;\">\n\n        <div class=\"meetgle-profile-modal-body\" style=\"display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;position:relative;\">\n            <!-- Loading State -->\n            <div class=\"meetgle-profile-loading\" id=\"profileLoading\">\n                <div class=\"profile-spinner\"><\/div>\n                <p>Loading profile...<\/p>\n            <\/div>\n\n            <!-- Error State -->\n            <div class=\"meetgle-profile-error\" id=\"profileError\" style=\"display:none;\">\n                <p id=\"profileErrorMessage\"><\/p>\n            <\/div>\n\n            <!-- Profile Content (scroll body + sticky CTA bar) -->\n            <div class=\"meetgle-profile-content\" id=\"profileContent\" style=\"display:none;\">\n\n                <!-- Close button (standard look, pinned top-right) -->\n                <button onclick=\"closeMeetgleProfileModal()\" class=\"profile-close-btn\">&times;<\/button>\n\n                <!-- Scroll body -->\n                <div class=\"pf-scroll\">\n\n                    <!-- Hero -->\n                    <div class=\"pf-hero\">\n                        <div class=\"pf-avatar-ring\"><img decoding=\"async\" id=\"profileAvatar\" src=\"\" alt=\"Avatar\" class=\"pf-avatar\"><\/div>\n                        <div class=\"pf-id\">\n                            <div class=\"pf-name\"><span id=\"profileUsername\" class=\"pf-name-txt\"><\/span><\/div>\n                            <div class=\"pf-meta\">\n                                <span id=\"profileGenderBadge\" class=\"pf-chip\" style=\"display:none;\"><\/span>\n                                <span id=\"profileAge\" class=\"pf-chip\" style=\"display:none;\"><\/span>\n                                <span id=\"profileCountryFlag\" class=\"pf-chip\" style=\"display:none;\"><\/span>\n                                <button id=\"profileFavoriteBtn\" onclick=\"toggleProfileFavorite()\" class=\"pf-fav-chip\" style=\"display:none;\" title=\"Add to favorites\">\n                                    <span id=\"profileFavoriteIcon\" class=\"pf-fav-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z\"\/><\/svg><\/span>\n                                    <span id=\"profileFavoriteText\" class=\"pf-fav-tx\">Favorite<\/span>\n                                <\/button>\n                            <\/div>\n                            <div id=\"profileLookingFor\" class=\"pf-looking\" style=\"display:none;\"><\/div>\n                            <div class=\"profile-badges\" id=\"profileBadges\"><\/div>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Photos (premium \u2014 the hook) -->\n                    <div id=\"profilePhotosSection\" class=\"pf-sec\" style=\"display:none;\">\n                        <div class=\"pf-seclabel\">Photos<\/div>\n                        <div id=\"profilePhotosGrid\" class=\"pf-photos\"><\/div>\n                    <\/div>\n\n                    <!-- Bio -->\n                    <div class=\"pf-sec\" id=\"profileBioSection\">\n                        <div class=\"pf-seclabel\">About<\/div>\n                        <div class=\"pf-bio\"><p id=\"profileBio\"><\/p><\/div>\n                    <\/div>\n\n                    <!-- Interests -->\n                    <div class=\"pf-sec\" id=\"profileInterestsSection\">\n                        <div class=\"pf-seclabel\">Interests<\/div>\n                        <div class=\"pf-tags\" id=\"profileInterests\"><\/div>\n                    <\/div>\n\n                    <!-- Activity stats (social proof) -->\n                    <div class=\"pf-sec\">\n                        <div class=\"pf-seclabel\">Activity<\/div>\n                        <div class=\"pf-stats\">\n                            <div class=\"pf-stat earn\">\n                                <div class=\"pf-stat-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M13 2 3 14h9l-1 8 10-12h-9l1-8z\"\/><\/svg><\/div>\n                                <div id=\"profileLifetimeEarned\" class=\"pf-stat-v\">0<\/div>\n                                <div class=\"pf-stat-l\">Lifetime<\/div>\n                            <\/div>\n                            <div class=\"pf-stat earn\">\n                                <div class=\"pf-stat-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M23 6l-9.5 9.5-5-5L1 18\"\/><path d=\"M17 6h6v6\"\/><\/svg><\/div>\n                                <div id=\"profileWeeklyEarned\" class=\"pf-stat-v\">0<\/div>\n                                <div class=\"pf-stat-l\">This Week<\/div>\n                            <\/div>\n                            <div class=\"pf-stat\" id=\"profileRankStat\" style=\"display:none;\">\n                                <div class=\"pf-stat-ic\" style=\"color:#ffc83d;\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M8 21h8M12 17v4M7 4h10v5a5 5 0 0 1-10 0V4Z\"\/><path d=\"M7 6H4a3 3 0 0 0 3 5M17 6h3a3 3 0 0 1-3 5\"\/><\/svg><\/div>\n                                <div id=\"profileRank\" class=\"pf-stat-v\" style=\"color:#ffc83d;\">-<\/div>\n                                <div class=\"pf-stat-l\">Rank<\/div>\n                            <\/div>\n                            <div class=\"pf-stat\">\n                                <div class=\"pf-stat-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"\/><path d=\"M16 2v4M8 2v4M3 10h18\"\/><\/svg><\/div>\n                                <div id=\"profileMemberSince\" class=\"pf-stat-v\"><\/div>\n                                <div class=\"pf-stat-l\">Joined<\/div>\n                            <\/div>\n                            <div class=\"pf-stat\" id=\"profileLastChatStat\" style=\"display:none;\">\n                                <div class=\"pf-stat-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 11.5a8.4 8.4 0 0 1-8.5 8.5 8.4 8.4 0 0 1-3.8-.9L3 21l1.9-5.7A8.4 8.4 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5z\"\/><\/svg><\/div>\n                                <div id=\"profileLastChat\" class=\"pf-stat-v\">-<\/div>\n                                <div class=\"pf-stat-l\">Last Chat<\/div>\n                            <\/div>\n                            <div class=\"pf-stat\" id=\"profileTotalChatStat\" style=\"display:none;\">\n                                <div class=\"pf-stat-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 7v5l3 2\"\/><\/svg><\/div>\n                                <div id=\"profileTotalChatTime\" class=\"pf-stat-v\">0m<\/div>\n                                <div class=\"pf-stat-l\">Chat Time<\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n\n                <\/div>\n\n                <!-- Sticky money CTA bar (hidden when there are no money actions \u2014 JS toggles) -->\n                <div id=\"profileCtaBar\" class=\"pf-cta\" style=\"display:none;\">\n                    <button id=\"sendSparksBtn\" onclick=\"openSendSparksModal()\" class=\"pf-cta-btn pf-cta-sparks\" style=\"display:none;\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" stroke=\"none\"><path d=\"M13 2 3 14h9l-1 8 10-12h-9l1-8z\"\/><\/svg>Send Sparks<\/button>\n                    <button id=\"sendMessageBtn\" onclick=\"startConversationFromProfile()\" class=\"pf-cta-btn pf-cta-msg\" style=\"display:none;\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 11.5a8.4 8.4 0 0 1-8.5 8.5 8.4 8.4 0 0 1-3.8-.9L3 21l1.9-5.7A8.4 8.4 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5z\"\/><\/svg>Message<\/button>\n                <\/div>\n\n                <!-- Legacy send-sparks section (hidden; kept for JS reference) -->\n                <div id=\"sendSparksSection\" style=\"display:none;\"><\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n<!-- Edit Profile Modal -->\n<div id=\"meetgleEditProfileModal\" class=\"meetgle-modal\" style=\"display:none;\">\n    <div class=\"meetgle-modal-content edit-profile-modal-content\" style=\"max-width:700px;width:100%;background:#141417;border:1px solid rgba(255,255,255,0.08);border-radius:20px;display:flex;flex-direction:column;overflow:hidden;\">\n\n        <div class=\"meetgle-profile-modal-body\" style=\"position:relative;display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;\">\n            <!-- Loading Overlay -->\n            <div id=\"editProfileLoadingOverlay\" style=\"position:absolute;top:0;left:0;right:0;bottom:0;background:#141417;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:20px;\">\n                <div class=\"epf-spinner\"><\/div>\n                <p class=\"epf-loading-txt\">Loading your profile...<\/p>\n            <\/div>\n\n            <!-- Saving State (kept for JS reference; not shown) -->\n            <div class=\"meetgle-profile-loading\" id=\"editProfileLoading\" style=\"display:none;\">\n                <div class=\"epf-spinner\"><\/div>\n                <p class=\"epf-loading-txt\">Saving changes...<\/p>\n            <\/div>\n\n            <!-- Edit Profile Content (fixed header \u00b7 scrollable body \u00b7 sticky save footer) -->\n            <div id=\"editProfileContent\" style=\"display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;\">\n\n                <!-- Body (scrolls \u2014 header scrolls with it, like every other modal) -->\n                <div class=\"epf-body\">\n\n                    <!-- Header -->\n                    <div class=\"epf-head\">\n                        <h2 class=\"mg-mtitle\">Edit Profile<\/h2>\n                        <button onclick=\"closeEditProfileModal()\" class=\"mg-mclose\">&times;<\/button>\n                    <\/div>\n\n                    <!-- Avatar Row -->\n                    <div class=\"epf-avatar-row\">\n                        <label for=\"avatarUploadInput\" class=\"epf-avatar-wrap\">\n                            <img decoding=\"async\" id=\"editProfileAvatar\" src=\"\" alt=\"Avatar\" class=\"epf-avatar\">\n                            <span class=\"epf-avatar-badge\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z\"\/><circle cx=\"12\" cy=\"13\" r=\"4\"\/><\/svg><\/span>\n                            <input type=\"file\" id=\"avatarUploadInput\" accept=\"image\/*\" style=\"display:none;\" onchange=\"handleAvatarUpload(event)\">\n                        <\/label>\n                        <div class=\"epf-avatar-meta\">\n                            <div class=\"nm\" id=\"editProfileUsername\"><\/div>\n                            <div class=\"hint\">Tap to change photo<\/div>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Avatar Upload Status (JS sets inline styles) -->\n                    <div id=\"avatarUploadStatus\" style=\"display:none;margin-bottom:16px;padding:12px;border-radius:12px;font-size:13px;text-align:center;\"><\/div>\n\n                    <!-- Gender -->\n                    <div class=\"epf-field\">\n                        <label class=\"epf-label\">Gender<\/label>\n                        <div class=\"epf-hint\">This is YOUR gender (not who you want to match with)<\/div>\n                        <div class=\"epf-gender\">\n                            <button id=\"editGenderMale\" data-gender=\"male\" type=\"button\" class=\"epf-gender-btn male\">\n                                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"10\" cy=\"14\" r=\"6\"\/><path d=\"M14.5 9.5 20 4\"\/><path d=\"M15 4h5v5\"\/><\/svg>\n                                <span class=\"lbl\">Male<\/span>\n                            <\/button>\n                            <button id=\"editGenderFemale\" data-gender=\"female\" type=\"button\" class=\"epf-gender-btn female\">\n                                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"9\" r=\"6\"\/><path d=\"M12 15v7M9 19h6\"\/><\/svg>\n                                <span class=\"lbl\">Female<\/span>\n                            <\/button>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Country + Date of birth (2-col, collapses on mobile) -->\n                    <div class=\"epf-field\">\n                        <div class=\"epf-grid2\">\n                            <div>\n                                <label class=\"epf-label\">Country<\/label>\n                                <select id=\"editProfileCountry\" class=\"epf-select\">\n                                    <option value=\"\">Select Country...<\/option>\n                                    <option value=\"AF\">\ud83c\udde6\ud83c\uddeb Afghanistan<\/option>\n<option value=\"AL\">\ud83c\udde6\ud83c\uddf1 Albania<\/option>\n<option value=\"DZ\">\ud83c\udde9\ud83c\uddff Algeria<\/option>\n<option value=\"AD\">\ud83c\udde6\ud83c\udde9 Andorra<\/option>\n<option value=\"AO\">\ud83c\udde6\ud83c\uddf4 Angola<\/option>\n<option value=\"AG\">\ud83c\udde6\ud83c\uddec Antigua and Barbuda<\/option>\n<option value=\"AR\">\ud83c\udde6\ud83c\uddf7 Argentina<\/option>\n<option value=\"AM\">\ud83c\udde6\ud83c\uddf2 Armenia<\/option>\n<option value=\"AU\">\ud83c\udde6\ud83c\uddfa Australia<\/option>\n<option value=\"AT\">\ud83c\udde6\ud83c\uddf9 Austria<\/option>\n<option value=\"AZ\">\ud83c\udde6\ud83c\uddff Azerbaijan<\/option>\n<option value=\"BS\">\ud83c\udde7\ud83c\uddf8 Bahamas<\/option>\n<option value=\"BH\">\ud83c\udde7\ud83c\udded Bahrain<\/option>\n<option value=\"BD\">\ud83c\udde7\ud83c\udde9 Bangladesh<\/option>\n<option value=\"BB\">\ud83c\udde7\ud83c\udde7 Barbados<\/option>\n<option value=\"BY\">\ud83c\udde7\ud83c\uddfe Belarus<\/option>\n<option value=\"BE\">\ud83c\udde7\ud83c\uddea Belgium<\/option>\n<option value=\"BZ\">\ud83c\udde7\ud83c\uddff Belize<\/option>\n<option value=\"BJ\">\ud83c\udde7\ud83c\uddef Benin<\/option>\n<option value=\"BT\">\ud83c\udde7\ud83c\uddf9 Bhutan<\/option>\n<option value=\"BO\">\ud83c\udde7\ud83c\uddf4 Bolivia<\/option>\n<option value=\"BA\">\ud83c\udde7\ud83c\udde6 Bosnia and Herzegovina<\/option>\n<option value=\"BW\">\ud83c\udde7\ud83c\uddfc Botswana<\/option>\n<option value=\"BR\">\ud83c\udde7\ud83c\uddf7 Brazil<\/option>\n<option value=\"BN\">\ud83c\udde7\ud83c\uddf3 Brunei<\/option>\n<option value=\"BG\">\ud83c\udde7\ud83c\uddec Bulgaria<\/option>\n<option value=\"BF\">\ud83c\udde7\ud83c\uddeb Burkina Faso<\/option>\n<option value=\"BI\">\ud83c\udde7\ud83c\uddee Burundi<\/option>\n<option value=\"KH\">\ud83c\uddf0\ud83c\udded Cambodia<\/option>\n<option value=\"CM\">\ud83c\udde8\ud83c\uddf2 Cameroon<\/option>\n<option value=\"CA\">\ud83c\udde8\ud83c\udde6 Canada<\/option>\n<option value=\"CV\">\ud83c\udde8\ud83c\uddfb Cape Verde<\/option>\n<option value=\"CF\">\ud83c\udde8\ud83c\uddeb Central African Republic<\/option>\n<option value=\"TD\">\ud83c\uddf9\ud83c\udde9 Chad<\/option>\n<option value=\"CL\">\ud83c\udde8\ud83c\uddf1 Chile<\/option>\n<option value=\"CN\">\ud83c\udde8\ud83c\uddf3 China<\/option>\n<option value=\"CO\">\ud83c\udde8\ud83c\uddf4 Colombia<\/option>\n<option value=\"KM\">\ud83c\uddf0\ud83c\uddf2 Comoros<\/option>\n<option value=\"CG\">\ud83c\udde8\ud83c\uddec Congo<\/option>\n<option value=\"CD\">\ud83c\udde8\ud83c\udde9 Congo (DRC)<\/option>\n<option value=\"CR\">\ud83c\udde8\ud83c\uddf7 Costa Rica<\/option>\n<option value=\"HR\">\ud83c\udded\ud83c\uddf7 Croatia<\/option>\n<option value=\"CU\">\ud83c\udde8\ud83c\uddfa Cuba<\/option>\n<option value=\"CY\">\ud83c\udde8\ud83c\uddfe Cyprus<\/option>\n<option value=\"CZ\">\ud83c\udde8\ud83c\uddff Czech Republic<\/option>\n<option value=\"DK\">\ud83c\udde9\ud83c\uddf0 Denmark<\/option>\n<option value=\"DJ\">\ud83c\udde9\ud83c\uddef Djibouti<\/option>\n<option value=\"DM\">\ud83c\udde9\ud83c\uddf2 Dominica<\/option>\n<option value=\"DO\">\ud83c\udde9\ud83c\uddf4 Dominican Republic<\/option>\n<option value=\"EC\">\ud83c\uddea\ud83c\udde8 Ecuador<\/option>\n<option value=\"EG\">\ud83c\uddea\ud83c\uddec Egypt<\/option>\n<option value=\"SV\">\ud83c\uddf8\ud83c\uddfb El Salvador<\/option>\n<option value=\"GQ\">\ud83c\uddec\ud83c\uddf6 Equatorial Guinea<\/option>\n<option value=\"ER\">\ud83c\uddea\ud83c\uddf7 Eritrea<\/option>\n<option value=\"EE\">\ud83c\uddea\ud83c\uddea Estonia<\/option>\n<option value=\"ET\">\ud83c\uddea\ud83c\uddf9 Ethiopia<\/option>\n<option value=\"FJ\">\ud83c\uddeb\ud83c\uddef Fiji<\/option>\n<option value=\"FI\">\ud83c\uddeb\ud83c\uddee Finland<\/option>\n<option value=\"FR\">\ud83c\uddeb\ud83c\uddf7 France<\/option>\n<option value=\"GA\">\ud83c\uddec\ud83c\udde6 Gabon<\/option>\n<option value=\"GM\">\ud83c\uddec\ud83c\uddf2 Gambia<\/option>\n<option value=\"GE\">\ud83c\uddec\ud83c\uddea Georgia<\/option>\n<option value=\"DE\">\ud83c\udde9\ud83c\uddea Germany<\/option>\n<option value=\"GH\">\ud83c\uddec\ud83c\udded Ghana<\/option>\n<option value=\"GR\">\ud83c\uddec\ud83c\uddf7 Greece<\/option>\n<option value=\"GD\">\ud83c\uddec\ud83c\udde9 Grenada<\/option>\n<option value=\"GT\">\ud83c\uddec\ud83c\uddf9 Guatemala<\/option>\n<option value=\"GN\">\ud83c\uddec\ud83c\uddf3 Guinea<\/option>\n<option value=\"GW\">\ud83c\uddec\ud83c\uddfc Guinea-Bissau<\/option>\n<option value=\"GY\">\ud83c\uddec\ud83c\uddfe Guyana<\/option>\n<option value=\"HT\">\ud83c\udded\ud83c\uddf9 Haiti<\/option>\n<option value=\"HN\">\ud83c\udded\ud83c\uddf3 Honduras<\/option>\n<option value=\"HU\">\ud83c\udded\ud83c\uddfa Hungary<\/option>\n<option value=\"IS\">\ud83c\uddee\ud83c\uddf8 Iceland<\/option>\n<option value=\"IN\">\ud83c\uddee\ud83c\uddf3 India<\/option>\n<option value=\"ID\">\ud83c\uddee\ud83c\udde9 Indonesia<\/option>\n<option value=\"IR\">\ud83c\uddee\ud83c\uddf7 Iran<\/option>\n<option value=\"IQ\">\ud83c\uddee\ud83c\uddf6 Iraq<\/option>\n<option value=\"IE\">\ud83c\uddee\ud83c\uddea Ireland<\/option>\n<option value=\"IL\">\ud83c\uddee\ud83c\uddf1 Israel<\/option>\n<option value=\"IT\">\ud83c\uddee\ud83c\uddf9 Italy<\/option>\n<option value=\"CI\">\ud83c\udde8\ud83c\uddee Ivory Coast<\/option>\n<option value=\"JM\">\ud83c\uddef\ud83c\uddf2 Jamaica<\/option>\n<option value=\"JP\">\ud83c\uddef\ud83c\uddf5 Japan<\/option>\n<option value=\"JO\">\ud83c\uddef\ud83c\uddf4 Jordan<\/option>\n<option value=\"KZ\">\ud83c\uddf0\ud83c\uddff Kazakhstan<\/option>\n<option value=\"KE\">\ud83c\uddf0\ud83c\uddea Kenya<\/option>\n<option value=\"KI\">\ud83c\uddf0\ud83c\uddee Kiribati<\/option>\n<option value=\"KW\">\ud83c\uddf0\ud83c\uddfc Kuwait<\/option>\n<option value=\"KG\">\ud83c\uddf0\ud83c\uddec Kyrgyzstan<\/option>\n<option value=\"LA\">\ud83c\uddf1\ud83c\udde6 Laos<\/option>\n<option value=\"LV\">\ud83c\uddf1\ud83c\uddfb Latvia<\/option>\n<option value=\"LB\">\ud83c\uddf1\ud83c\udde7 Lebanon<\/option>\n<option value=\"LS\">\ud83c\uddf1\ud83c\uddf8 Lesotho<\/option>\n<option value=\"LR\">\ud83c\uddf1\ud83c\uddf7 Liberia<\/option>\n<option value=\"LY\">\ud83c\uddf1\ud83c\uddfe Libya<\/option>\n<option value=\"LI\">\ud83c\uddf1\ud83c\uddee Liechtenstein<\/option>\n<option value=\"LT\">\ud83c\uddf1\ud83c\uddf9 Lithuania<\/option>\n<option value=\"LU\">\ud83c\uddf1\ud83c\uddfa Luxembourg<\/option>\n<option value=\"MK\">\ud83c\uddf2\ud83c\uddf0 Macedonia<\/option>\n<option value=\"MG\">\ud83c\uddf2\ud83c\uddec Madagascar<\/option>\n<option value=\"MW\">\ud83c\uddf2\ud83c\uddfc Malawi<\/option>\n<option value=\"MY\">\ud83c\uddf2\ud83c\uddfe Malaysia<\/option>\n<option value=\"MV\">\ud83c\uddf2\ud83c\uddfb Maldives<\/option>\n<option value=\"ML\">\ud83c\uddf2\ud83c\uddf1 Mali<\/option>\n<option value=\"MT\">\ud83c\uddf2\ud83c\uddf9 Malta<\/option>\n<option value=\"MH\">\ud83c\uddf2\ud83c\udded Marshall Islands<\/option>\n<option value=\"MR\">\ud83c\uddf2\ud83c\uddf7 Mauritania<\/option>\n<option value=\"MU\">\ud83c\uddf2\ud83c\uddfa Mauritius<\/option>\n<option value=\"MX\">\ud83c\uddf2\ud83c\uddfd Mexico<\/option>\n<option value=\"FM\">\ud83c\uddeb\ud83c\uddf2 Micronesia<\/option>\n<option value=\"MD\">\ud83c\uddf2\ud83c\udde9 Moldova<\/option>\n<option value=\"MC\">\ud83c\uddf2\ud83c\udde8 Monaco<\/option>\n<option value=\"MN\">\ud83c\uddf2\ud83c\uddf3 Mongolia<\/option>\n<option value=\"ME\">\ud83c\uddf2\ud83c\uddea Montenegro<\/option>\n<option value=\"MA\">\ud83c\uddf2\ud83c\udde6 Morocco<\/option>\n<option value=\"MZ\">\ud83c\uddf2\ud83c\uddff Mozambique<\/option>\n<option value=\"MM\">\ud83c\uddf2\ud83c\uddf2 Myanmar<\/option>\n<option value=\"NA\">\ud83c\uddf3\ud83c\udde6 Namibia<\/option>\n<option value=\"NR\">\ud83c\uddf3\ud83c\uddf7 Nauru<\/option>\n<option value=\"NP\">\ud83c\uddf3\ud83c\uddf5 Nepal<\/option>\n<option value=\"NL\">\ud83c\uddf3\ud83c\uddf1 Netherlands<\/option>\n<option value=\"NZ\">\ud83c\uddf3\ud83c\uddff New Zealand<\/option>\n<option value=\"NI\">\ud83c\uddf3\ud83c\uddee Nicaragua<\/option>\n<option value=\"NE\">\ud83c\uddf3\ud83c\uddea Niger<\/option>\n<option value=\"NG\">\ud83c\uddf3\ud83c\uddec Nigeria<\/option>\n<option value=\"KP\">\ud83c\uddf0\ud83c\uddf5 North Korea<\/option>\n<option value=\"NO\">\ud83c\uddf3\ud83c\uddf4 Norway<\/option>\n<option value=\"OM\">\ud83c\uddf4\ud83c\uddf2 Oman<\/option>\n<option value=\"PK\">\ud83c\uddf5\ud83c\uddf0 Pakistan<\/option>\n<option value=\"PW\">\ud83c\uddf5\ud83c\uddfc Palau<\/option>\n<option value=\"PS\">\ud83c\uddf5\ud83c\uddf8 Palestine<\/option>\n<option value=\"PA\">\ud83c\uddf5\ud83c\udde6 Panama<\/option>\n<option value=\"PG\">\ud83c\uddf5\ud83c\uddec Papua New Guinea<\/option>\n<option value=\"PY\">\ud83c\uddf5\ud83c\uddfe Paraguay<\/option>\n<option value=\"PE\">\ud83c\uddf5\ud83c\uddea Peru<\/option>\n<option value=\"PH\">\ud83c\uddf5\ud83c\udded Philippines<\/option>\n<option value=\"PL\">\ud83c\uddf5\ud83c\uddf1 Poland<\/option>\n<option value=\"PT\">\ud83c\uddf5\ud83c\uddf9 Portugal<\/option>\n<option value=\"QA\">\ud83c\uddf6\ud83c\udde6 Qatar<\/option>\n<option value=\"RO\">\ud83c\uddf7\ud83c\uddf4 Romania<\/option>\n<option value=\"RU\">\ud83c\uddf7\ud83c\uddfa Russia<\/option>\n<option value=\"RW\">\ud83c\uddf7\ud83c\uddfc Rwanda<\/option>\n<option value=\"KN\">\ud83c\uddf0\ud83c\uddf3 Saint Kitts and Nevis<\/option>\n<option value=\"LC\">\ud83c\uddf1\ud83c\udde8 Saint Lucia<\/option>\n<option value=\"VC\">\ud83c\uddfb\ud83c\udde8 Saint Vincent<\/option>\n<option value=\"WS\">\ud83c\uddfc\ud83c\uddf8 Samoa<\/option>\n<option value=\"SM\">\ud83c\uddf8\ud83c\uddf2 San Marino<\/option>\n<option value=\"ST\">\ud83c\uddf8\ud83c\uddf9 Sao Tome and Principe<\/option>\n<option value=\"SA\">\ud83c\uddf8\ud83c\udde6 Saudi Arabia<\/option>\n<option value=\"SN\">\ud83c\uddf8\ud83c\uddf3 Senegal<\/option>\n<option value=\"RS\">\ud83c\uddf7\ud83c\uddf8 Serbia<\/option>\n<option value=\"SC\">\ud83c\uddf8\ud83c\udde8 Seychelles<\/option>\n<option value=\"SL\">\ud83c\uddf8\ud83c\uddf1 Sierra Leone<\/option>\n<option value=\"SG\">\ud83c\uddf8\ud83c\uddec Singapore<\/option>\n<option value=\"SK\">\ud83c\uddf8\ud83c\uddf0 Slovakia<\/option>\n<option value=\"SI\">\ud83c\uddf8\ud83c\uddee Slovenia<\/option>\n<option value=\"SB\">\ud83c\uddf8\ud83c\udde7 Solomon Islands<\/option>\n<option value=\"SO\">\ud83c\uddf8\ud83c\uddf4 Somalia<\/option>\n<option value=\"ZA\">\ud83c\uddff\ud83c\udde6 South Africa<\/option>\n<option value=\"KR\">\ud83c\uddf0\ud83c\uddf7 South Korea<\/option>\n<option value=\"SS\">\ud83c\uddf8\ud83c\uddf8 South Sudan<\/option>\n<option value=\"ES\">\ud83c\uddea\ud83c\uddf8 Spain<\/option>\n<option value=\"LK\">\ud83c\uddf1\ud83c\uddf0 Sri Lanka<\/option>\n<option value=\"SD\">\ud83c\uddf8\ud83c\udde9 Sudan<\/option>\n<option value=\"SR\">\ud83c\uddf8\ud83c\uddf7 Suriname<\/option>\n<option value=\"SZ\">\ud83c\uddf8\ud83c\uddff Swaziland<\/option>\n<option value=\"SE\">\ud83c\uddf8\ud83c\uddea Sweden<\/option>\n<option value=\"CH\">\ud83c\udde8\ud83c\udded Switzerland<\/option>\n<option value=\"SY\">\ud83c\uddf8\ud83c\uddfe Syria<\/option>\n<option value=\"TW\">\ud83c\uddf9\ud83c\uddfc Taiwan<\/option>\n<option value=\"TJ\">\ud83c\uddf9\ud83c\uddef Tajikistan<\/option>\n<option value=\"TZ\">\ud83c\uddf9\ud83c\uddff Tanzania<\/option>\n<option value=\"TH\">\ud83c\uddf9\ud83c\udded Thailand<\/option>\n<option value=\"TL\">\ud83c\uddf9\ud83c\uddf1 Timor-Leste<\/option>\n<option value=\"TG\">\ud83c\uddf9\ud83c\uddec Togo<\/option>\n<option value=\"TO\">\ud83c\uddf9\ud83c\uddf4 Tonga<\/option>\n<option value=\"TT\">\ud83c\uddf9\ud83c\uddf9 Trinidad and Tobago<\/option>\n<option value=\"TN\">\ud83c\uddf9\ud83c\uddf3 Tunisia<\/option>\n<option value=\"TR\">\ud83c\uddf9\ud83c\uddf7 Turkey<\/option>\n<option value=\"TM\">\ud83c\uddf9\ud83c\uddf2 Turkmenistan<\/option>\n<option value=\"TV\">\ud83c\uddf9\ud83c\uddfb Tuvalu<\/option>\n<option value=\"UG\">\ud83c\uddfa\ud83c\uddec Uganda<\/option>\n<option value=\"UA\">\ud83c\uddfa\ud83c\udde6 Ukraine<\/option>\n<option value=\"AE\">\ud83c\udde6\ud83c\uddea United Arab Emirates<\/option>\n<option value=\"GB\">\ud83c\uddec\ud83c\udde7 United Kingdom<\/option>\n<option value=\"US\">\ud83c\uddfa\ud83c\uddf8 United States<\/option>\n<option value=\"UY\">\ud83c\uddfa\ud83c\uddfe Uruguay<\/option>\n<option value=\"UZ\">\ud83c\uddfa\ud83c\uddff Uzbekistan<\/option>\n<option value=\"VU\">\ud83c\uddfb\ud83c\uddfa Vanuatu<\/option>\n<option value=\"VA\">\ud83c\uddfb\ud83c\udde6 Vatican City<\/option>\n<option value=\"VE\">\ud83c\uddfb\ud83c\uddea Venezuela<\/option>\n<option value=\"VN\">\ud83c\uddfb\ud83c\uddf3 Vietnam<\/option>\n<option value=\"YE\">\ud83c\uddfe\ud83c\uddea Yemen<\/option>\n<option value=\"ZM\">\ud83c\uddff\ud83c\uddf2 Zambia<\/option>\n<option value=\"ZW\">\ud83c\uddff\ud83c\uddfc Zimbabwe<\/option>                                <\/select>\n                            <\/div>\n                            <div>\n                                <label class=\"epf-label\">Age<\/label>\n                                <input type=\"date\" id=\"editProfileBirthdate\" max=\"2008-07-02\" class=\"epf-input\">\n                            <\/div>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Looking For -->\n                    <div class=\"epf-field\">\n                        <label class=\"epf-label\">Looking For<\/label>\n                        <input type=\"text\" id=\"editProfileLookingFor\" maxlength=\"50\" placeholder=\"e.g., Friends, Chat, Dating...\" class=\"epf-input\">\n                    <\/div>\n\n                    <!-- Bio -->\n                    <div class=\"epf-field\">\n                        <label class=\"epf-label\">About<\/label>\n                        <textarea id=\"editProfileBio\" maxlength=\"200\" placeholder=\"Tell others about yourself... (max 200 characters)\" class=\"epf-textarea\"><\/textarea>\n                        <div class=\"epf-counter\"><span id=\"bioCharCount\">0\/200<\/span><\/div>\n                    <\/div>\n\n                    <!-- Interests -->\n                    <div class=\"epf-field\">\n                        <label class=\"epf-label\">Interests<\/label>\n                        <input type=\"text\" id=\"editProfileInterestsInput\" placeholder=\"Type an interest and press Enter (max 10)\" class=\"epf-input\">\n                        <div id=\"editProfileInterestsList\" class=\"epf-chips\"><\/div>\n                        <div class=\"epf-hint\" style=\"margin:8px 0 0;\">Press Enter to add interests. Click tags to remove them.<\/div>\n                    <\/div>\n\n                    <!-- Photos (premium only, hidden by default; JS shows it) -->\n                    <div id=\"editProfilePhotosSection\" class=\"epf-field\" style=\"display:none;\">\n                        <label class=\"epf-label\">Photos<\/label>\n                        <div class=\"epf-photos\" onclick=\"if(typeof openPremiumPhotosModal==='function'){closeEditProfileModal();openPremiumPhotosModal();}\">\n                            <div class=\"epf-photos-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"\/><circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\"\/><path d=\"M21 15l-5-5L5 21\"\/><\/svg><\/div>\n                            <div class=\"epf-photos-main\">\n                                <div class=\"epf-photos-t\">Manage Photos<\/div>\n                                <div class=\"epf-photos-d\">Upload and manage your premium photos<\/div>\n                            <\/div>\n                            <span class=\"epf-photos-chev\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m9 6 6 6-6 6\"\/><\/svg><\/span>\n                        <\/div>\n                    <\/div>\n\n                <\/div>\n\n                <!-- Sticky Save Footer -->\n                <div class=\"epf-foot\">\n                    <button id=\"saveProfileBtn\" onclick=\"saveProfileChanges()\" type=\"button\" class=\"epf-save\">\n                        Save Changes                    <\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Send Sparks Modal -->\n<div id=\"sendSparksModal\" class=\"meetgle-modal\" style=\"display:none;z-index:100010;\">\n    <div class=\"meetgle-modal-backdrop\"><\/div>\n    <div class=\"meetgle-modal-content send-sparks-modal-content\" style=\"max-width:450px;background:#141417;border:1px solid rgba(255,255,255,0.08);border-radius:20px;\">\n\n        <!-- Header -->\n        <div style=\"padding:20px 20px 0 20px;\">\n            <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;\">\n                <h2 style=\"color:white;margin:0;font-size:22px;font-weight:700;\">Send Sparks<\/h2>\n                <button onclick=\"closeSendSparksModal()\" style=\"background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.1);color:rgba(255,255,255,0.5);width:32px;height:32px;border-radius:50%;font-size:18px;line-height:0;font-weight:300;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all 0.2s;\" onmouseover=\"this.style.background='rgba(255,255,255,0.15)';this.style.color='white'\" onmouseout=\"this.style.background='rgba(255,255,255,0.08)';this.style.color='rgba(255,255,255,0.5)'\">&times;<\/button>\n            <\/div>\n            <p style=\"color:rgba(255,255,255,0.4);font-size:14px;margin:0 0 16px 0;\">Send sparks to <span id=\"sendSparksRecipient\" style=\"font-weight:700;color:white;\"><\/span><\/p>\n\n            <!-- Balance Pill -->\n            <div style=\"background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.08);border-radius:12px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;\">\n                <span style=\"color:rgba(255,255,255,0.45);font-size:13px;font-weight:500;\">Your balance<\/span>\n                <div style=\"display:flex;align-items:center;gap:6px;\">\n                    <span style=\"font-size:16px;\">\u26a1<\/span>\n                    <span id=\"sendSparksYourBalance\" style=\"color:#ffc83d;font-weight:700;font-size:18px;\">0<\/span>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Content -->\n        <div style=\"padding:20px;\">\n\n            <!-- Quick Amount Section -->\n            <div style=\"margin-bottom:20px;\">\n                <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:12px;\">\n                    <span style=\"color:rgba(255,255,255,0.45);font-size:11px;font-weight:600;letter-spacing:0.5px;text-transform:uppercase;\">Quick Select<\/span>\n                <\/div>\n                <div style=\"display:grid;grid-template-columns:repeat(4, 1fr);gap:8px;margin-bottom:8px;\">\n                    <button class=\"spark-amount-btn\" data-amount=\"1\" onclick=\"selectSparkAmount(1)\">1<\/button>\n                    <button class=\"spark-amount-btn\" data-amount=\"5\" onclick=\"selectSparkAmount(5)\">5<\/button>\n                    <button class=\"spark-amount-btn\" data-amount=\"10\" onclick=\"selectSparkAmount(10)\">10<\/button>\n                    <button class=\"spark-amount-btn\" data-amount=\"50\" onclick=\"selectSparkAmount(50)\">50<\/button>\n                <\/div>\n                <div style=\"display:grid;grid-template-columns:repeat(4, 1fr);gap:8px;\">\n                    <button class=\"spark-amount-btn\" data-amount=\"100\" onclick=\"selectSparkAmount(100)\">100<\/button>\n                    <button class=\"spark-amount-btn\" data-amount=\"250\" onclick=\"selectSparkAmount(250)\">250<\/button>\n                    <button class=\"spark-amount-btn\" data-amount=\"500\" onclick=\"selectSparkAmount(500)\">500<\/button>\n                    <button class=\"spark-amount-btn\" data-amount=\"1000\" onclick=\"selectSparkAmount(1000)\">1000<\/button>\n                <\/div>\n            <\/div>\n\n            <!-- Custom Amount Section -->\n            <div style=\"margin-bottom:20px;\">\n                <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:8px;\">\n                    <span style=\"color:rgba(255,255,255,0.45);font-size:11px;font-weight:600;letter-spacing:0.5px;text-transform:uppercase;\">Custom Amount<\/span>\n                <\/div>\n                <input\n                    type=\"number\"\n                    id=\"customSparkAmount\"\n                    placeholder=\"Enter amount...\"\n                    min=\"1\"\n                    style=\"width:100%;padding:12px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:12px;font-size:16px;font-weight:600;color:white;text-align:center;outline:none;box-sizing:border-box;\"\n                    oninput=\"handleCustomAmountInput(this.value)\"\n                >\n            <\/div>\n\n            <!-- Error Message -->\n            <div id=\"sendSparksError\" style=\"display:none;background:rgba(239,68,68,0.15);border:1px solid rgba(239,68,68,0.3);border-radius:12px;padding:12px;margin-bottom:16px;text-align:center;color:#EF4444;font-size:14px;font-weight:600;\"><\/div>\n\n            <!-- Success Message -->\n            <div id=\"sendSparksSuccess\" style=\"display:none;background:rgba(16,185,129,0.15);border:1px solid rgba(16,185,129,0.3);border-radius:12px;padding:16px;margin-bottom:16px;text-align:center;\">\n                <div style=\"font-size:48px;margin-bottom:8px;\">\u2705<\/div>\n                <div style=\"color:#10B981;font-size:16px;font-weight:700;margin-bottom:4px;\">Sparks Sent Successfully!<\/div>\n                <div id=\"sendSparksSuccessMessage\" style=\"color:rgba(16,185,129,0.8);font-size:14px;\"><\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Footer Buttons -->\n        <div style=\"padding:16px 20px 20px;display:flex;gap:12px;\">\n            <button onclick=\"closeSendSparksModal()\" style=\"flex:1;background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.6);border:1px solid rgba(255,255,255,0.08);border-radius:12px;padding:12px 24px;font-size:15px;font-weight:600;cursor:pointer;transition:all 0.2s;\" onmouseover=\"this.style.background='rgba(255,255,255,0.1)';this.style.color='white'\" onmouseout=\"this.style.background='rgba(255,255,255,0.06)';this.style.color='rgba(255,255,255,0.6)'\">Cancel<\/button>\n            <button id=\"confirmSendSparksBtn\" onclick=\"confirmSendSparks()\" style=\"flex:1;background:#ffc83d;color:#000;border:none;border-radius:12px;padding:12px 24px;font-size:15px;font-weight:700;cursor:pointer;transition:all 0.2s;\" onmouseover=\"this.style.background='#FBBF24';this.style.transform='scale(1.02)'\" onmouseout=\"this.style.background='#ffc83d';this.style.transform='scale(1)'\">Send \u26a1<\/button>\n        <\/div>\n    <\/div>\n<\/div>\n\n        \n        <!-- Chat History Modal -->\n        \n<!-- Chat History Modal (lazy template \u2014 hydrated by MeetgleModalLoader; JS in public\/js\/modals\/chat-history.modal.js). -->\n<template id=\"meetgleChatHistoryTpl\">\n<div id=\"meetgleChatHistoryModal\" class=\"meetgle-modal\" style=\"display:none;\">\n    <div class=\"meetgle-modal-content chat-history-modal-content\" style=\"max-width:700px;background:#141417;border:1px solid rgba(255,255,255,0.08);border-radius:20px;\">\n\n        <!-- Header (close stays top-right, unchanged) -->\n        <div style=\"padding:20px 24px 0 24px;display:flex;align-items:center;justify-content:space-between;\">\n            <h2 class=\"mg-mtitle\">Chat History<\/h2>\n            <button onclick=\"closeChatHistoryModal()\" class=\"mg-mclose\">&times;<\/button>\n        <\/div>\n\n        <!-- Content (scrolls; infinite-scroll listener attaches here) -->\n        <div id=\"chatHistoryContent\" style=\"padding:16px 24px 24px 24px;overflow-y:auto;max-height:calc(80vh - 80px);\">\n\n            <!-- Loading State -->\n            <div id=\"chatHistoryLoading\" style=\"text-align:center;padding:48px 0;\">\n                <div style=\"width:32px;height:32px;border:3px solid rgba(255,255,255,0.1);border-top-color:rgba(255,255,255,0.5);border-radius:50%;margin:0 auto 12px;animation:chSpin 0.8s linear infinite;\"><\/div>\n                <div style=\"color:rgba(255,255,255,0.35);font-size:13px;\">Loading your chat history...<\/div>\n            <\/div>\n\n            <!-- Empty State (also reused for the post-delete \"cleared\" state) -->\n            <div id=\"chatHistoryEmpty\" style=\"display:none;\">\n                <div class=\"ch-empty\">\n                    <div class=\"ch-empty-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5z\"\/><\/svg><\/div>\n                    <div class=\"ch-empty-msg\">No chat history yet<\/div>\n                    <div class=\"ch-empty-sub\">Start chatting with registered users to build your history!<\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Matches list -->\n            <div id=\"chatHistoryListWrapper\" style=\"display:none;\">\n                <div id=\"chatHistoryList\" class=\"ch-list\"><\/div>\n            <\/div>\n\n            <!-- Load More Indicator -->\n            <div id=\"chatHistoryLoadMore\" style=\"display:none;text-align:center;padding:16px 0;\">\n                <div style=\"width:24px;height:24px;border:2px solid rgba(255,255,255,0.1);border-top-color:rgba(255,255,255,0.5);border-radius:50%;margin:0 auto 8px;animation:chSpin 0.8s linear infinite;\"><\/div>\n                <div style=\"color:rgba(255,255,255,0.35);font-size:12px;\">Loading more...<\/div>\n            <\/div>\n\n            <!-- End of History Message -->\n            <div id=\"chatHistoryEnd\" class=\"ch-end\" style=\"display:none;\">No more matches to load<\/div>\n\n            <!-- Delete History -->\n            <div class=\"ch-delete\">\n                <button id=\"deleteHistoryBtn\" class=\"ch-del-btn\" onclick=\"showDeleteConfirmation()\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2m3 0v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6\"\/><\/svg>\n                    Delete History                <\/button>\n\n                <!-- Confirmation UI (hidden by default) -->\n                <div id=\"deleteConfirmationUI\" class=\"ch-confirm\" style=\"display:none;\">\n                    <div class=\"t\">Are you sure?<\/div>\n                    <div class=\"d\">This will permanently delete your entire chat history.<\/div>\n                    <div class=\"ch-confirm-actions\">\n                        <button class=\"ch-cbtn ch-cancel\" onclick=\"cancelDeleteHistory()\">Cancel<\/button>\n                        <button class=\"ch-cbtn ch-del-yes\" onclick=\"confirmDeleteHistory()\">Yes, Delete All<\/button>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n<\/template>\n\n        \n        <!-- Transactions Modal -->\n        \n<!-- Transactions History Modal (lazy template \u2014 hydrated by MeetgleModals) -->\n<template id=\"meetgleTransactionsTpl\">\n<div id=\"meetgleTransactionsModal\" class=\"meetgle-modal\" style=\"display:none;\">\n    <div class=\"meetgle-modal-content transactions-modal-content\" style=\"max-width:700px;width:100%;background:#141417;border:1px solid rgba(255,255,255,0.08);border-radius:20px;\">\n\n        <!-- Header -->\n        <div style=\"padding:20px 24px 0 24px;display:flex;align-items:center;justify-content:space-between;\">\n            <h2 class=\"mg-mtitle\">Transactions<\/h2>\n            <button onclick=\"closeTransactionsModal()\" class=\"mg-mclose\">&times;<\/button>\n        <\/div>\n\n        <!-- Content (scrolls; infinite-scroll listener attaches here) -->\n        <div id=\"transactionsContent\" style=\"padding:16px 24px 24px 24px;max-height:calc(80vh - 80px);overflow-y:auto;\">\n\n            <!-- Loading State -->\n            <div id=\"transactionsLoading\" style=\"text-align:center;padding:48px 0;\">\n                <div style=\"width:32px;height:32px;border:3px solid rgba(255,255,255,0.1);border-top-color:rgba(255,255,255,0.5);border-radius:50%;margin:0 auto 12px;animation:txSpin 0.8s linear infinite;\"><\/div>\n                <div style=\"color:rgba(255,255,255,0.35);font-size:13px;\">Loading transactions...<\/div>\n            <\/div>\n\n            <!-- Empty State (wrapper toggled block\/none by JS; .tx-empty keeps its flex layout.\n                 The JS overwrites this wrapper's contents for the logged-out case \u2014 also .tx-empty.) -->\n            <div id=\"transactionsEmpty\" style=\"display:none;\">\n                <div class=\"tx-empty\">\n                    <div class=\"tx-empty-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 4h12l4 4v12a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1z\"\/><path d=\"M8 9h6M8 13h8M8 17h5\"\/><\/svg><\/div>\n                    <div class=\"tx-empty-msg\">No transactions yet<\/div>\n                    <div class=\"tx-empty-sub\">Start earning sparks to see your history!<\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Transactions List (JS appends .transaction-item cards into #transactionsList) -->\n            <div id=\"transactionsListWrapper\" style=\"display:none;\">\n                <div id=\"transactionsList\"><\/div>\n            <\/div>\n\n            <!-- Load More Indicator -->\n            <div id=\"transactionsLoadMore\" style=\"display:none;text-align:center;padding:16px 0;\">\n                <div style=\"width:24px;height:24px;border:2px solid rgba(255,255,255,0.1);border-top-color:rgba(255,255,255,0.5);border-radius:50%;margin:0 auto 8px;animation:txSpin 0.8s linear infinite;\"><\/div>\n                <div style=\"color:rgba(255,255,255,0.35);font-size:12px;\">Loading more...<\/div>\n            <\/div>\n\n            <!-- End of History Message -->\n            <div id=\"transactionsEnd\" class=\"tx-end\" style=\"display:none;\">No more transactions to load<\/div>\n        <\/div>\n    <\/div>\n<\/div>\n<\/template>\n\n        \n        <!-- Notifications Modal -->\n        \n<!-- Notifications Modal (lazy template \u2014 hydrated by MeetgleModalLoader) -->\n<template id=\"meetgleNotificationsTpl\">\n<div id=\"notificationsModal\" class=\"meetgle-modal\" style=\"display:none;\">\n    <div class=\"meetgle-modal-content notifications-modal-content\" style=\"max-width:700px;background:#141417;border:1px solid rgba(255,255,255,0.08);border-radius:20px;\">\n\n        <!-- Header -->\n        <div class=\"nf-head\">\n            <h2 class=\"mg-mtitle\">Notifications<\/h2>\n            <div class=\"nf-head-r\">\n                <!-- Mark all read (shown only when there are unread items; JS toggles #notificationsFooter) -->\n                <div id=\"notificationsFooter\" style=\"display:none;\">\n                    <button id=\"markAllReadBtn\" onclick=\"markAllNotificationsRead()\" class=\"nf-markread\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 6 7 17l-5-5\"\/><path d=\"m22 10-7.5 7.5L13 16\"\/><\/svg>\n                        <span class=\"lbl\">Mark All As Read<\/span>\n                    <\/button>\n                <\/div>\n                <button onclick=\"closeNotificationsModal()\" class=\"mg-mclose\">&times;<\/button>\n            <\/div>\n        <\/div>\n\n        <!-- Content (scrolls) -->\n        <div id=\"notificationsContainer\" class=\"nf-body\">\n\n            <!-- Loading state -->\n            <div id=\"notificationsLoading\" class=\"nf-loading\">\n                <div class=\"nf-spin\"><\/div>\n                <div class=\"nf-loading-txt\">Loading notifications...<\/div>\n            <\/div>\n\n            <!-- Empty state (wrapper toggled block\/none by JS; .nf-empty keeps its flex layout) -->\n            <div id=\"notificationsEmpty\" style=\"display:none;\">\n                <div class=\"nf-empty\">\n                    <div class=\"nf-empty-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9\"\/><path d=\"M13.7 21a1.94 1.94 0 0 1-3.4 0\"\/><\/svg><\/div>\n                    <div class=\"nf-empty-msg\">No notifications yet<\/div>\n                    <div class=\"nf-empty-sub\">You&#039;ll see updates here when you receive sparks or make purchases<\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Notifications list (JS appends rows into the inner .nf-list = div:last-child) -->\n            <div id=\"notificationsList\" style=\"display:none;\">\n                <div class=\"nf-list\"><\/div>\n            <\/div>\n\n            <!-- Load more (lone centered pagination pill) -->\n            <div id=\"loadMoreNotifications\" class=\"nf-loadmore\" style=\"display:none;\">\n                <button onclick=\"loadMoreNotifications()\">Load More<\/button>\n            <\/div>\n\n        <\/div>\n    <\/div>\n<\/div>\n<\/template>\n\n\n        <!-- Referral Modal -->\n                \n        <!-- Favorites Modal -->\n        \n<!-- Favorites Modal (lazy template \u2014 hydrated by MeetgleModalLoader) -->\n<template id=\"meetgleFavoritesTpl\">\n<div id=\"meetgleFavoritesModal\" class=\"meetgle-modal\" style=\"display:none;\">\n    <div class=\"meetgle-modal-content favorites-modal-content\" style=\"max-width:700px;width:100%;background:#141417;border:1px solid rgba(255,255,255,0.08);border-radius:20px;\">\n\n        <!-- Header -->\n        <div style=\"padding:20px 24px 0 24px;display:flex;align-items:center;justify-content:space-between;\">\n            <h2 class=\"mg-mtitle\">My Favorites<\/h2>\n            <button onclick=\"closeFavoritesModal()\" class=\"mg-mclose\">&times;<\/button>\n        <\/div>\n\n        <!-- Content (scrolls; infinite-scroll listener attaches here) -->\n        <div id=\"favoritesContent\" style=\"padding:16px 24px 24px 24px;overflow-y:auto;max-height:calc(80vh - 80px);\">\n\n            <!-- Loading State -->\n            <div id=\"favoritesLoading\" style=\"text-align:center;padding:48px 0;\">\n                <div style=\"width:32px;height:32px;border:3px solid rgba(255,255,255,0.1);border-top-color:rgba(255,255,255,0.5);border-radius:50%;margin:0 auto 12px;animation:favSpin 0.8s linear infinite;\"><\/div>\n                <div style=\"color:rgba(255,255,255,0.35);font-size:13px;\">Loading your favorites...<\/div>\n            <\/div>\n\n            <!-- Empty State (wrapper toggled block\/none by JS; .fav-empty keeps its flex layout) -->\n            <div id=\"favoritesEmpty\" style=\"display:none;\">\n                <div class=\"fav-empty\">\n                    <div class=\"fav-empty-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 1 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78z\"\/><\/svg><\/div>\n                    <div class=\"fav-empty-msg\">No favorites yet<\/div>\n                    <div class=\"fav-empty-sub\">Click the heart on someone&#039;s profile to add them!<\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Login Required State (wrapper toggled block\/none by JS) -->\n            <div id=\"favoritesLoginRequired\" style=\"display:none;\">\n                <div class=\"fav-login\">\n                    <div class=\"fav-login-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"4\" y=\"10\" width=\"16\" height=\"11\" rx=\"2\"\/><path d=\"M8 10V7a4 4 0 0 1 8 0v3\"\/><\/svg><\/div>\n                    <div class=\"fav-login-txt\">\n                        <div class=\"t\">Login Required<\/div>\n                        <div class=\"d\">You need to be logged in to view your favorites.<\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Favorites List (JS appends .favorite-item cards into #favoritesList) -->\n            <div id=\"favoritesListWrapper\" style=\"display:none;\">\n                <div id=\"favoritesList\" class=\"favorites-list\"><\/div>\n            <\/div>\n\n            <!-- Load More Indicator -->\n            <div id=\"favoritesLoadMore\" style=\"display:none;text-align:center;padding:16px 0;\">\n                <div style=\"width:24px;height:24px;border:2px solid rgba(255,255,255,0.1);border-top-color:rgba(255,255,255,0.5);border-radius:50%;margin:0 auto 8px;animation:favSpin 0.8s linear infinite;\"><\/div>\n                <div style=\"color:rgba(255,255,255,0.35);font-size:12px;\">Loading more...<\/div>\n            <\/div>\n\n            <!-- End of List Message -->\n            <div id=\"favoritesEnd\" class=\"fav-end\" style=\"display:none;\">No more favorites to load<\/div>\n        <\/div>\n    <\/div>\n<\/div>\n<\/template>\n\n        \n        <!-- Messages Modal -->\n        \n<!-- Messages Modal (lazy template \u2014 hydrated by MeetgleModalLoader; JS in public\/js\/modals\/messages.modal.js). -->\n<template id=\"messagesTpl\">\n<div id=\"messagesModal\" class=\"meetgle-modal\" style=\"display:none;\">\n    <div class=\"meetgle-modal-content messages-modal-content\" style=\"max-width:700px;width:100%;background:#141417;border:1px solid rgba(255,255,255,0.08);border-radius:20px;\">\n\n        <!-- ============ Conversations List View (inbox) ============ -->\n        <div id=\"messagesListView\">\n            <!-- Header -->\n            <div class=\"messages-header\">\n                <h2 class=\"mg-mtitle\">Messages<\/h2>\n                <button onclick=\"closeMessagesModal()\" class=\"mg-mclose\">&times;<\/button>\n            <\/div>\n\n            <!-- Conversations Container (scrolls) -->\n            <div id=\"conversationsContainer\" class=\"messages-container\">\n                <!-- Loading state -->\n                <div id=\"conversationsLoading\" class=\"messages-loading\">\n                    <div class=\"messages-spinner\"><\/div>\n                    <p>Loading conversations...<\/p>\n                <\/div>\n\n                <!-- Empty state (wrapper toggled block\/none by JS; .msg-empty keeps its flex layout) -->\n                <div id=\"conversationsEmpty\" style=\"display:none;\">\n                    <div class=\"msg-empty\">\n                        <div class=\"msg-empty-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 11.5a8.4 8.4 0 0 1-8.5 8.5 8.4 8.4 0 0 1-3.8-.9L3 21l1.9-5.7A8.4 8.4 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5z\"\/><\/svg><\/div>\n                        <div class=\"msg-empty-msg\">No conversations yet<\/div>\n                        <div class=\"msg-empty-sub\">Start a conversation from someone&#039;s profile!<\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- Conversations list (JS appends .conversation-item cards into #conversationsList) -->\n                <div id=\"conversationsListWrapper\" style=\"display:none;\">\n                    <div id=\"conversationsList\" class=\"conversations-list\"><\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- ============ Chat View \/ DM thread (hidden by default) ============ -->\n        <div id=\"messagesChatView\" style=\"display:none;\">\n            <!-- Chat Header -->\n            <div class=\"messages-chat-header\">\n                <button class=\"messages-back-btn\" onclick=\"showConversationsList()\" aria-label=\"Back\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m15 18-6-6 6-6\"\/><\/svg>\n                <\/button>\n                <div class=\"messages-chat-user\" onclick=\"openChatUserProfile()\">\n                    <img decoding=\"async\" id=\"chatUserAvatar\" src=\"\" alt=\"Avatar\" class=\"messages-chat-avatar\">\n                    <div class=\"messages-chat-user-info\">\n                        <span id=\"chatUserName\" class=\"messages-chat-username\"><\/span>\n                        <span id=\"chatUserVerification\" class=\"messages-chat-verification\"><\/span>\n                    <\/div>\n                <\/div>\n                <button onclick=\"closeMessagesModal()\" class=\"mg-mclose\" style=\"margin-left:auto;\">&times;<\/button>\n            <\/div>\n\n            <!-- Messages Container (scrolls) -->\n            <div id=\"chatMessagesContainer\" class=\"messages-chat-container\">\n                <!-- Loading state -->\n                <div id=\"chatMessagesLoading\" class=\"messages-loading\">\n                    <div class=\"messages-spinner\"><\/div>\n                    <p>Loading messages...<\/p>\n                <\/div>\n\n                <!-- Messages list -->\n                <div id=\"chatMessagesList\" class=\"chat-messages-list\"><\/div>\n            <\/div>\n\n            <!-- Composer -->\n            <div class=\"messages-input-container\">\n                <div class=\"messages-cost-indicator\">\n                                            <span>\u26a1 50 sparks per message<\/span>\n                        <span class=\"messages-balance-display\">\u2022 Your balance: <span id=\"messagesBalanceAmount\">0<\/span> \u26a1<\/span>\n                                    <\/div>\n                <div class=\"messages-input-row\">\n                    <label class=\"messages-photo-btn\" title=\"Send photo\">\n                        <input type=\"file\" id=\"messagePhotoInput\" accept=\"image\/*\" style=\"display:none;\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                            <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"\/>\n                            <circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\"\/>\n                            <polyline points=\"21 15 16 10 5 21\"\/>\n                        <\/svg>\n                    <\/label>\n                    <button id=\"messagesSparksBtn\" class=\"messages-sparks-btn\" onclick=\"openSparksFromMessages()\" title=\"Send Sparks\" type=\"button\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n                            <path fill-rule=\"evenodd\" d=\"M14.615 1.595a.75.75 0 0 1 .359.852L12.982 9.75h7.268a.75.75 0 0 1 .548 1.262l-10.5 11.25a.75.75 0 0 1-1.272-.71l1.992-7.302H3.75a.75.75 0 0 1-.548-1.262l10.5-11.25a.75.75 0 0 1 .913-.143Z\" clip-rule=\"evenodd\"\/>\n                        <\/svg>\n                    <\/button>\n                    <input type=\"text\" id=\"messageTextInput\" class=\"messages-text-input\" placeholder=\"Type a message...\" maxlength=\"1000\">\n                    <button id=\"messageSendBtn\" class=\"messages-send-btn\" onclick=\"sendMessage()\" title=\"Send message\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;display:block!important;\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\"\/><polygon points=\"22 2 15 22 11 13 2 9 22 2\"\/><\/svg>\n                    <\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n\n    <\/div>\n<\/div>\n<\/template>\n\n        <!-- Settings Modal -->\n        \n<!-- Settings Modal (lazy template \u2014 hydrated by MeetgleModalLoader) -->\n<template id=\"settingsTpl\">\n<div id=\"settingsModal\" class=\"meetgle-modal\" style=\"display:none;\">\n    <div class=\"meetgle-modal-content settings-modal-content\" style=\"max-width:700px;width:100%;background:#141417;border:1px solid rgba(255,255,255,0.08);border-radius:20px;\">\n\n        <!-- Header -->\n        <div class=\"set-head\">\n            <h2 class=\"mg-mtitle\">Settings<\/h2>\n            <button onclick=\"closeSettingsModal()\" class=\"mg-mclose\">&times;<\/button>\n        <\/div>\n\n        <!-- Body (scrolls) -->\n        <div id=\"settingsBody\" class=\"set-body\">\n\n            <!-- Loading -->\n            <div id=\"settingsLoading\" class=\"set-loading\">\n                <div class=\"set-spinner\"><\/div>\n                <div class=\"set-loading-txt\">Loading\u2026<\/div>\n            <\/div>\n\n            <!-- Content -->\n            <div id=\"settingsContent\" style=\"display:none;\">\n\n                <!-- ACCOUNT -->\n                <div class=\"set-seclabel\">Account<\/div>\n                <div class=\"set-card\">\n                    <!-- email (read-only) -->\n                    <div class=\"set-row stack\">\n                        <div class=\"set-row-head\">\n                            <span class=\"set-row-label\">Email address<\/span>\n                            <span id=\"settingsEmailVerified\" class=\"set-chip\" style=\"display:none;\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20 6 9 17l-5-5\"\/><\/svg>Verified<\/span>\n                        <\/div>\n                        <div id=\"settingsEmail\" class=\"set-readonly\"><\/div>\n                        <div class=\"set-lock\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"4\" y=\"11\" width=\"16\" height=\"10\" rx=\"2\"\/><path d=\"M8 11V7a4 4 0 0 1 8 0v4\"\/><\/svg>Your email can&#039;t be changed<\/div>\n                    <\/div>\n                    <!-- username (read-only) -->\n                    <div class=\"set-row\">\n                        <div class=\"set-row-main\">\n                            <div class=\"set-row-label\">Username<\/div>\n                            <div class=\"set-lock\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"4\" y=\"11\" width=\"16\" height=\"10\" rx=\"2\"\/><path d=\"M8 11V7a4 4 0 0 1 8 0v4\"\/><\/svg>Usernames can&#039;t be changed<\/div>\n                        <\/div>\n                        <div id=\"settingsUsername\" class=\"set-row-val\"><\/div>\n                    <\/div>\n                    <!-- member since -->\n                    <div class=\"set-row\">\n                        <div class=\"set-row-main\"><div class=\"set-row-label\">Member since<\/div><\/div>\n                        <div id=\"settingsMemberSince\" class=\"set-row-val\"><\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- SECURITY -->\n                <div class=\"set-seclabel\">Security<\/div>\n                <div class=\"set-card\">\n                    <div class=\"set-row\">\n                        <div class=\"set-row-main\">\n                            <div class=\"set-row-label\">Password<\/div>\n                            <div id=\"settingsResetSub\" class=\"set-row-sub\">We&#039;ll email you a secure reset link<\/div>\n                        <\/div>\n                        <div class=\"set-row-action\">\n                            <button id=\"settingsResetBtn\" class=\"set-btn\" type=\"button\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><span class=\"set-btn-txt\">Send reset link<\/span><\/button>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- ACCOUNT ACTIONS -->\n                <div class=\"set-seclabel\">Account actions<\/div>\n                <div class=\"set-actions\">\n                    <a class=\"set-action-btn set-logout\" href=\"https:\/\/meetgle.com\/pl\/?meetgle_logout=1&#038;_mgl=36200dc0ca\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"\/><path d=\"m16 17 5-5-5-5\"\/><path d=\"M21 12H9\"\/><\/svg>Log out<\/a>\n\n                    <button id=\"settingsDeleteBtn\" class=\"set-action-btn set-delete\" type=\"button\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2m3 0v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6\"\/><\/svg>Delete account<\/button>\n                    <div class=\"set-delete-note\">Deleting your account is permanent and removes your profile, photos and sparks.<\/div>\n\n                    <!-- two-step confirm (hidden until \"Delete account\" is tapped) -->\n                    <div id=\"settingsDeleteConfirm\" class=\"set-delete-confirm\" style=\"display:none;\">\n                        <div class=\"t\">Delete your account?<\/div>\n                        <div class=\"d\">This permanently deletes everything \u2014 your profile, photos and sparks. This cannot be undone.<\/div>\n                        <div class=\"set-delete-actions\">\n                            <button id=\"settingsDeleteCancel\" class=\"set-cbtn set-cancel\" type=\"button\">Cancel<\/button>\n                            <button id=\"settingsDeleteYes\" class=\"set-cbtn set-yes\" type=\"button\">Delete forever<\/button>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n<\/template>\n\n\n        <!-- Creator Request Modals -->\n        \n        <!-- Streak Modal -->\n                \n        \n\n        <!-- Login & Register Modals (for non-logged-in users) -->\n                \n<!-- Login Modal -->\n<div id=\"meetgleLoginModal\" class=\"meetgle-modal mg-auth-modal\" style=\"display:none;\">\n    <div class=\"mg-auth-card\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Log In\">\n\n        <button type=\"button\" onclick=\"closeMeetgleLoginModal()\" class=\"mg-auth-close\" aria-label=\"Close\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg>\n        <\/button>\n\n        <!-- Hero: logo + live count -->\n        <div class=\"mg-auth-hero\">\n                            <img decoding=\"async\" class=\"mg-auth-logo\" src=\"https:\/\/meetgle.com\/wp-content\/uploads\/2025\/06\/meetgle_logo_new3.png\" alt=\"\" onerror=\"this.onerror=null;this.style.display='none';var t=this.nextElementSibling;if(t)t.style.display='block';\" \/>\n                <span class=\"mg-auth-logo-text\" style=\"display:none;\">Meetgle<\/span>\n                        <div class=\"mg-auth-count\" data-meetgle-auth-count>&mdash;<\/div>\n            <div class=\"mg-auth-count-sub\">are matching now!<\/div>\n        <\/div>\n\n        <!-- Form -->\n        <form class=\"mg-auth-form\" id=\"meetgleLoginForm\" autocomplete=\"on\" novalidate>\n            <div class=\"mg-auth-error\" id=\"meetgleLoginError\" role=\"alert\">\n                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg>\n                <span class=\"mg-auth-error-msg\"><\/span>\n            <\/div>\n\n            <div class=\"mg-auth-field\">\n                <label class=\"mg-auth-label\" for=\"meetgleLoginUser\">Username or E-mail<\/label>\n                <div class=\"mg-auth-input-wrap\">\n                    <input class=\"mg-auth-input\" id=\"meetgleLoginUser\" type=\"text\" name=\"username\" autocomplete=\"username\" autocapitalize=\"none\" autocorrect=\"off\" spellcheck=\"false\" required \/>\n                <\/div>\n            <\/div>\n\n            <div class=\"mg-auth-field\">\n                <label class=\"mg-auth-label\" for=\"meetgleLoginPass\">Password<\/label>\n                <div class=\"mg-auth-input-wrap\">\n                    <input class=\"mg-auth-input has-eye\" id=\"meetgleLoginPass\" type=\"password\" name=\"password\" autocomplete=\"current-password\" required \/>\n                    <button class=\"mg-auth-eye\" type=\"button\" data-meetgle-pass-toggle aria-label=\"Show password\">\n                        <svg class=\"mg-eye-open\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg>\n                        <svg class=\"mg-eye-off\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"display:none;\"><path d=\"M9.9 4.24A9.12 9.12 0 0 1 12 4c6.5 0 10 7 10 7a13.2 13.2 0 0 1-1.67 2.68\"\/><path d=\"M6.61 6.61A13.5 13.5 0 0 0 2 12s3.5 7 10 7a9.1 9.1 0 0 0 5.39-1.61\"\/><line x1=\"2\" y1=\"2\" x2=\"22\" y2=\"22\"\/><\/svg>\n                    <\/button>\n                <\/div>\n            <\/div>\n\n            <button class=\"mg-auth-submit\" id=\"meetgleLoginSubmit\" type=\"submit\">\n                <span class=\"mg-auth-spinner\" aria-hidden=\"true\"><\/span>\n                <span class=\"mg-auth-submit-label\">Log in<\/span>\n            <\/button>\n\n            <a class=\"mg-auth-forgot\" href=\"\/password-reset\">Forgot your password?<\/a>\n        <\/form>\n\n        <!-- Footer: create account -->\n        <div class=\"mg-auth-foot\">\n            <span>Don&#039;t have an account?<\/span>\n            <a href=\"#\" onclick=\"if(window.openMeetgleRegisterModal){openMeetgleRegisterModal();}else{window.location.href='\/register\/';}return false;\">Create one<\/a>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n<script>\n(function () {\n    var NONCE = '29eeb5dee5';\n    var AJAX_URL = (typeof ANONCAM_DATA !== 'undefined' && ANONCAM_DATA.ajax_url) ? ANONCAM_DATA.ajax_url : 'https:\/\/meetgle.com\/wp-admin\/admin-ajax.php';\n\n    var modal   = document.getElementById('meetgleLoginModal');\n    if (!modal) return;\n    var form    = document.getElementById('meetgleLoginForm');\n    var errEl   = document.getElementById('meetgleLoginError');\n    var errMsg  = errEl ? errEl.querySelector('.mg-auth-error-msg') : null;\n    var submit  = document.getElementById('meetgleLoginSubmit');\n    var userInp = document.getElementById('meetgleLoginUser');\n\n    \/\/ \u2500\u2500 Open \/ close (delegates to the modal manager when present) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    window.openMeetgleLoginModal = function () {\n        if (typeof closeMeetgleRegisterModal === 'function') closeMeetgleRegisterModal();\n        syncCount();\n        if (window.MeetgleModalManager) {\n            MeetgleModalManager.open(modal, { escClose: true, backdropClose: true });\n        } else {\n            modal.style.display = 'flex';\n            document.body.style.overflow = 'hidden';\n        }\n        clearError();\n        setTimeout(function () { if (userInp) userInp.focus(); }, 60);\n    };\n\n    window.closeMeetgleLoginModal = function () {\n        if (window.MeetgleModalManager) {\n            MeetgleModalManager.close(modal);\n        } else {\n            modal.style.display = 'none';\n            document.body.style.overflow = '';\n        }\n    };\n\n    \/\/ \u2500\u2500 Live count: always mirror the on-page [data-stage-live-count] \u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    var countEl = modal.querySelector('[data-meetgle-auth-count]');\n    function syncCount() {\n        if (!countEl) return;\n        var src = document.querySelector('[data-stage-live-count]');\n        var val = src ? (src.textContent || '').trim() : '';\n        if (!val) {\n            var ln = document.getElementById('liveCountNumber');\n            val = ln ? (ln.textContent || '').trim() : '';\n        }\n        if (val && val !== '--') countEl.textContent = val;\n    }\n    var liveSrc = document.querySelector('[data-stage-live-count]');\n    if (liveSrc && window.MutationObserver) {\n        new MutationObserver(syncCount).observe(liveSrc, { childList: true, characterData: true, subtree: true });\n    }\n    syncCount();\n\n    \/\/ \u2500\u2500 Password visibility toggle \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    var eyeBtn = modal.querySelector('[data-meetgle-pass-toggle]');\n    if (eyeBtn) {\n        eyeBtn.addEventListener('click', function () {\n            var pass = document.getElementById('meetgleLoginPass');\n            var show = pass.type === 'password';\n            pass.type = show ? 'text' : 'password';\n            eyeBtn.querySelector('.mg-eye-open').style.display = show ? 'none' : 'block';\n            eyeBtn.querySelector('.mg-eye-off').style.display = show ? 'block' : 'none';\n        });\n    }\n\n    function clearError() { if (errEl) errEl.classList.remove('show'); }\n    function showError(msg) {\n        if (!errEl || !errMsg) return;\n        errMsg.textContent = msg || '';\n        errEl.classList.add('show');\n    }\n\n    \/\/ \u2500\u2500 Submit \u2192 AJAX login \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    if (form) {\n        form.addEventListener('submit', function (e) {\n            e.preventDefault();\n            clearError();\n\n            var username = (userInp.value || '').trim();\n            var password = document.getElementById('meetgleLoginPass').value || '';\n            if (!username || !password) {\n                showError(\"Please enter your username and password.\");\n                return;\n            }\n\n            submit.classList.add('is-loading');\n            submit.disabled = true;\n\n            var body = new URLSearchParams();\n            body.set('action', 'meetgle_login');\n            body.set('nonce', NONCE);\n            body.set('username', username);\n            body.set('password', password);\n\n            fetch(AJAX_URL, {\n                method: 'POST',\n                headers: { 'Content-Type': 'application\/x-www-form-urlencoded' },\n                credentials: 'same-origin',\n                body: body.toString()\n            })\n            .then(function (r) { return r.json(); })\n            .then(function (res) {\n                if (res && res.success) {\n                    submit.querySelector('.mg-auth-submit-label').textContent = '\u2713';\n                    var redirect = (res.data && res.data.redirect) ? res.data.redirect : '';\n                    window.location.href = redirect || window.location.href;\n                } else {\n                    submit.classList.remove('is-loading');\n                    submit.disabled = false;\n                    showError((res && res.data && res.data.message) ? res.data.message : \"Incorrect username or password. Please try again.\");\n                }\n            })\n            .catch(function () {\n                submit.classList.remove('is-loading');\n                submit.disabled = false;\n                showError(\"Connection error. Please check your connection and try again.\");\n            });\n        });\n    }\n\n    \/\/ Auto-open from URL params (kept from the old UM flow: ?login=open etc.)\n    var params = new URLSearchParams(window.location.search);\n    if (params.get('login') === 'open' || params.has('um_form_id')) {\n        window.openMeetgleLoginModal();\n        if (window.history.replaceState) {\n            window.history.replaceState({}, '', window.location.pathname);\n        }\n    }\n})();\n<\/script>\n        \n<!-- Register Modal -->\n<div id=\"meetgleRegisterModal\" class=\"meetgle-modal mg-auth-modal\" style=\"display:none;\">\n    <div class=\"mg-auth-card\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Create Account\">\n\n        <button type=\"button\" onclick=\"closeMeetgleRegisterModal()\" class=\"mg-auth-close\" aria-label=\"Close\">\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg>\n        <\/button>\n\n        <!-- Hero: logo + live count -->\n        <div class=\"mg-auth-hero\">\n                            <img decoding=\"async\" class=\"mg-auth-logo\" src=\"https:\/\/meetgle.com\/wp-content\/uploads\/2025\/06\/meetgle_logo_new3.png\" alt=\"\" onerror=\"this.onerror=null;this.style.display='none';var t=this.nextElementSibling;if(t)t.style.display='block';\" \/>\n                <span class=\"mg-auth-logo-text\" style=\"display:none;\">Meetgle<\/span>\n                        <div class=\"mg-auth-count\" data-meetgle-auth-count>&mdash;<\/div>\n            <div class=\"mg-auth-count-sub\">are matching now!<\/div>\n        <\/div>\n\n        <!-- Form -->\n        <form class=\"mg-auth-form\" id=\"meetgleRegisterForm\" autocomplete=\"on\" novalidate>\n            <div class=\"mg-auth-error\" id=\"meetgleRegisterError\" role=\"alert\">\n                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg>\n                <span class=\"mg-auth-error-msg\"><\/span>\n            <\/div>\n\n            <div class=\"mg-auth-field\">\n                <label class=\"mg-auth-label\" for=\"meetgleRegUser\">Username<\/label>\n                <div class=\"mg-auth-input-wrap\">\n                    <input class=\"mg-auth-input\" id=\"meetgleRegUser\" type=\"text\" name=\"username\" autocomplete=\"username\" autocapitalize=\"none\" autocorrect=\"off\" spellcheck=\"false\" required \/>\n                <\/div>\n            <\/div>\n\n            <div class=\"mg-auth-field\">\n                <label class=\"mg-auth-label\" for=\"meetgleRegEmail\">E-mail Address<\/label>\n                <div class=\"mg-auth-input-wrap\">\n                    <input class=\"mg-auth-input\" id=\"meetgleRegEmail\" type=\"email\" name=\"email\" autocomplete=\"email\" autocapitalize=\"none\" autocorrect=\"off\" spellcheck=\"false\" required \/>\n                <\/div>\n            <\/div>\n\n            <div class=\"mg-auth-field\">\n                <label class=\"mg-auth-label\" for=\"meetgleRegPass\">Password<\/label>\n                <div class=\"mg-auth-input-wrap\">\n                    <input class=\"mg-auth-input has-eye\" id=\"meetgleRegPass\" type=\"password\" name=\"password\" autocomplete=\"new-password\" required \/>\n                    <button class=\"mg-auth-eye\" type=\"button\" data-meetgle-pass-toggle aria-label=\"Show password\">\n                        <svg class=\"mg-eye-open\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg>\n                        <svg class=\"mg-eye-off\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"display:none;\"><path d=\"M9.9 4.24A9.12 9.12 0 0 1 12 4c6.5 0 10 7 10 7a13.2 13.2 0 0 1-1.67 2.68\"\/><path d=\"M6.61 6.61A13.5 13.5 0 0 0 2 12s3.5 7 10 7a9.1 9.1 0 0 0 5.39-1.61\"\/><line x1=\"2\" y1=\"2\" x2=\"22\" y2=\"22\"\/><\/svg>\n                    <\/button>\n                <\/div>\n            <\/div>\n\n            <div class=\"mg-auth-field\">\n                <label class=\"mg-auth-label\" for=\"meetgleRegPass2\">Confirm Password<\/label>\n                <div class=\"mg-auth-input-wrap\">\n                    <input class=\"mg-auth-input\" id=\"meetgleRegPass2\" type=\"password\" name=\"password2\" autocomplete=\"new-password\" required \/>\n                <\/div>\n            <\/div>\n\n            <label class=\"mg-auth-check\">\n                <input type=\"checkbox\" id=\"meetgleRegAge\" name=\"age\" value=\"1\" \/>\n                <span class=\"mg-auth-check-box\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span>\n                <span class=\"mg-auth-check-text\">I confirm that I am at least 18 years old and agree to the Terms of Service, Privacy Policy and Rules.<\/span>\n            <\/label>\n\n            <button class=\"mg-auth-submit\" id=\"meetgleRegisterSubmit\" type=\"submit\">\n                <span class=\"mg-auth-spinner\" aria-hidden=\"true\"><\/span>\n                <span class=\"mg-auth-submit-label\">Register<\/span>\n            <\/button>\n        <\/form>\n\n        <!-- Success state -->\n        <div class=\"mg-auth-success\" id=\"meetgleRegisterSuccess\" style=\"display:none;\">\n            <div class=\"mg-auth-success-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 6 12 13 2 6\"\/><rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"3\"\/><\/svg><\/div>\n            <div class=\"mg-auth-success-title\">Check your email<\/div>\n            <div class=\"mg-auth-success-body\">We&#039;ve sent a confirmation link to your inbox \u2014 please check your spam folder too. Click it to activate your account, then log in.<\/div>\n            <button type=\"button\" class=\"mg-auth-submit\" onclick=\"openMeetgleLoginModal();\"><span class=\"mg-auth-submit-label\">Log in<\/span><\/button>\n        <\/div>\n\n        <!-- Footer: login link -->\n        <div class=\"mg-auth-foot\" id=\"meetgleRegisterFoot\">\n            <span>Already have an account?<\/span>\n            <a href=\"#\" onclick=\"openMeetgleLoginModal();return false;\">Log in<\/a>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n<script>\n(function () {\n    var NONCE = '59c98ffe0d';\n    var AJAX_URL = (typeof ANONCAM_DATA !== 'undefined' && ANONCAM_DATA.ajax_url) ? ANONCAM_DATA.ajax_url : 'https:\/\/meetgle.com\/wp-admin\/admin-ajax.php';\n    var ALLOWED_DOMAINS = [\"googlemail.com\",\"gmail.com\",\"yahoo.com\",\"yahoo.co.uk\",\"hotmail.com\",\"hotmail.co.uk\",\"live.com\",\"live.co.uk\",\"msn.com\",\"icloud.com\",\"me.com\",\"mac.com\",\"aol.com\",\"zoho.com\",\"fastmail.com\",\"mweb.co.za\",\"telkomsa.net\",\"vodamail.co.za\",\"webmail.co.za\",\"lantic.net\",\"iafrica.com\",\"ziggo.nl\",\"kpnmail.nl\",\"hetnet.nl\",\"planet.nl\",\"btinternet.com\",\"virginmedia.com\",\"sky.com\",\"orange.fr\",\"wanadoo.fr\",\"t-online.de\",\"web.de\",\"bluewin.ch\",\"outlook.com\",\"outlook.co.uk\",\"office365.com\",\"hotmail.fr\",\"hotmail.de\",\"live.nl\",\"icloud.co.uk\",\"gmx.com\",\"gmx.de\",\"gmx.net\",\"mail.com\",\"laposte.net\",\"free.fr\",\"sfr.fr\"];\n    var BLOCK_DOTTED = true;\n\n    var modal   = document.getElementById('meetgleRegisterModal');\n    if (!modal) return;\n    var form    = document.getElementById('meetgleRegisterForm');\n    var success = document.getElementById('meetgleRegisterSuccess');\n    var foot    = document.getElementById('meetgleRegisterFoot');\n    var errEl   = document.getElementById('meetgleRegisterError');\n    var errMsg  = errEl ? errEl.querySelector('.mg-auth-error-msg') : null;\n    var submit  = document.getElementById('meetgleRegisterSubmit');\n    var userInp = document.getElementById('meetgleRegUser');\n\n    window.openMeetgleRegisterModal = function () {\n        if (typeof closeMeetgleLoginModal === 'function') closeMeetgleLoginModal();\n        syncCount();\n        \/\/ reset to the form view each open\n        if (success) success.style.display = 'none';\n        if (form) form.style.display = '';\n        if (foot) foot.style.display = '';\n        clearError();\n        if (window.MeetgleModalManager) {\n            MeetgleModalManager.open(modal, { escClose: true, backdropClose: true });\n        } else {\n            modal.style.display = 'flex';\n            document.body.style.overflow = 'hidden';\n        }\n        setTimeout(function () { if (userInp) userInp.focus(); }, 60);\n    };\n\n    window.closeMeetgleRegisterModal = function () {\n        if (window.MeetgleModalManager) {\n            MeetgleModalManager.close(modal);\n        } else {\n            modal.style.display = 'none';\n            document.body.style.overflow = '';\n        }\n    };\n\n    \/\/ \u2500\u2500 Live count: mirror the on-page [data-stage-live-count] \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    var countEl = modal.querySelector('[data-meetgle-auth-count]');\n    function syncCount() {\n        if (!countEl) return;\n        var src = document.querySelector('[data-stage-live-count]');\n        var val = src ? (src.textContent || '').trim() : '';\n        if (!val) { var ln = document.getElementById('liveCountNumber'); val = ln ? (ln.textContent || '').trim() : ''; }\n        if (val && val !== '--') countEl.textContent = val;\n    }\n    var liveSrc = document.querySelector('[data-stage-live-count]');\n    if (liveSrc && window.MutationObserver) {\n        new MutationObserver(syncCount).observe(liveSrc, { childList: true, characterData: true, subtree: true });\n    }\n    syncCount();\n\n    \/\/ \u2500\u2500 Password visibility toggle \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    var eyeBtn = modal.querySelector('[data-meetgle-pass-toggle]');\n    if (eyeBtn) {\n        eyeBtn.addEventListener('click', function () {\n            var pass = document.getElementById('meetgleRegPass');\n            var show = pass.type === 'password';\n            pass.type = show ? 'text' : 'password';\n            eyeBtn.querySelector('.mg-eye-open').style.display = show ? 'none' : 'block';\n            eyeBtn.querySelector('.mg-eye-off').style.display = show ? 'block' : 'none';\n        });\n    }\n\n    function clearError() { if (errEl) errEl.classList.remove('show'); }\n    function showError(msg) { if (errEl && errMsg) { errMsg.textContent = msg || ''; errEl.classList.add('show'); } }\n\n    \/\/ \u2500\u2500 Inline email-rule check (mirrors the server) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    function emailRuleError(email) {\n        email = (email || '').trim().toLowerCase();\n        var at = email.indexOf('@');\n        if (at === -1) return '';\n        var local = email.slice(0, at), domain = email.slice(at + 1);\n        if (BLOCK_DOTTED && (local.indexOf('.') !== -1 || local.indexOf('+') !== -1)) {\n            return \"Please use a standard email address (no dots or + symbols allowed in the username part).\";\n        }\n        if (ALLOWED_DOMAINS.length > 0 && ALLOWED_DOMAINS.indexOf(domain) === -1) {\n            return \"This email provider is not allowed. Please use a major email provider like Gmail, Yahoo, or Hotmail.\";\n        }\n        return '';\n    }\n\n    \/\/ \u2500\u2500 Submit \u2192 AJAX register \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    if (form) {\n        form.addEventListener('submit', function (e) {\n            e.preventDefault();\n            clearError();\n\n            var username = (userInp.value || '').trim();\n            var email    = (document.getElementById('meetgleRegEmail').value || '').trim();\n            var password = document.getElementById('meetgleRegPass').value || '';\n            var password2= document.getElementById('meetgleRegPass2').value || '';\n            var age      = document.getElementById('meetgleRegAge').checked;\n\n            if (!username || !email || !password || !password2) { showError(\"Please fill in all fields.\"); return; }\n            if (!age) { showError(\"You must confirm that you are at least 18 years old.\"); return; }\n            if (password.length < 8) { showError(\"Password must be at least 8 characters.\"); return; }\n            if (password !== password2) { showError(\"Passwords do not match.\"); return; }\n            var emErr = emailRuleError(email);\n            if (emErr) { showError(emErr); return; }\n\n            submit.classList.add('is-loading');\n            submit.disabled = true;\n\n            var body = new URLSearchParams();\n            body.set('action', 'meetgle_register');\n            body.set('nonce', NONCE);\n            body.set('username', username);\n            body.set('email', email);\n            body.set('password', password);\n            body.set('password2', password2);\n            body.set('age', age ? '1' : '');\n\n            fetch(AJAX_URL, {\n                method: 'POST',\n                headers: { 'Content-Type': 'application\/x-www-form-urlencoded' },\n                credentials: 'same-origin',\n                body: body.toString()\n            })\n            .then(function (r) { return r.json(); })\n            .then(function (res) {\n                submit.classList.remove('is-loading');\n                submit.disabled = false;\n                if (res && res.success) {\n                    \/\/ Swap to the \"check your email\" success view.\n                    if (form) form.style.display = 'none';\n                    if (foot) foot.style.display = 'none';\n                    if (success) success.style.display = 'block';\n                } else {\n                    showError((res && res.data && res.data.message) ? res.data.message : \"Please fill in all fields.\");\n                }\n            })\n            .catch(function () {\n                submit.classList.remove('is-loading');\n                submit.disabled = false;\n                showError(\"Connection error. Please check your connection and try again.\");\n            });\n        });\n    }\n})();\n<\/script>\n        \n        <!-- Premium Modals (only for premium users) -->\n                \n        <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-683","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Free Random Video Chat with Strangers \u2013 Meetgle<\/title>\n<meta name=\"description\" content=\"Join Meetgle for secure, anonymous random video chats. The best Omegle alternative to connect 1v1 with strangers worldwide. Start your video chat now!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/meetgle.com\/pl\/video-chat\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Free Random Video Chat with Strangers \u2013 Meetgle\" \/>\n<meta property=\"og:description\" content=\"Join Meetgle for secure, anonymous random video chats. The best Omegle alternative to connect 1v1 with strangers worldwide. Start your video chat now!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/meetgle.com\/pl\/video-chat\/\" \/>\n<meta property=\"og:site_name\" content=\"Meetgle\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T22:36:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/meetgle.com\/wp-content\/uploads\/2026\/03\/meetgle-icon.png?wsr\" \/>\n\t<meta property=\"og:image:width\" content=\"291\" \/>\n\t<meta property=\"og:image:height\" content=\"291\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minuta\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/meetgle.com\\\/video-chat\\\/\",\"url\":\"https:\\\/\\\/meetgle.com\\\/video-chat\\\/\",\"name\":\"Free Random Video Chat with Strangers \u2013 Meetgle\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/meetgle.com\\\/#website\"},\"datePublished\":\"2025-06-04T14:30:46+00:00\",\"dateModified\":\"2025-06-14T22:36:01+00:00\",\"description\":\"Join Meetgle for secure, anonymous random video chats. The best Omegle alternative to connect 1v1 with strangers worldwide. Start your video chat now!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/meetgle.com\\\/video-chat\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/meetgle.com\\\/video-chat\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/meetgle.com\\\/video-chat\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/meetgle.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Video Chat\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/meetgle.com\\\/#website\",\"url\":\"https:\\\/\\\/meetgle.com\\\/\",\"name\":\"Meetgle\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/meetgle.com\\\/#organization\"},\"alternateName\":\"Meetgle.com\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/meetgle.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/meetgle.com\\\/#organization\",\"name\":\"Meetgle\",\"alternateName\":\"Meetgle.com\",\"url\":\"https:\\\/\\\/meetgle.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/meetgle.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/meetgle.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/meetgle-icon.png\",\"contentUrl\":\"https:\\\/\\\/meetgle.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/meetgle-icon.png\",\"width\":291,\"height\":291,\"caption\":\"Meetgle\"},\"image\":{\"@id\":\"https:\\\/\\\/meetgle.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Darmowy losowy czat wideo z nieznajomymi \u2013 Meetgle","description":"Do\u0142\u0105cz do Meetgle, aby bezpiecznie i anonimowo prowadzi\u0107 losowe rozmowy wideo. Najlepsza alternatywa dla Omegle, aby \u0142\u0105czy\u0107 si\u0119 1v1 z nieznajomymi na ca\u0142ym \u015bwiecie. Rozpocznij rozmow\u0119 wideo ju\u017c teraz!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/meetgle.com\/pl\/video-chat\/","og_locale":"pl_PL","og_type":"article","og_title":"Free Random Video Chat with Strangers \u2013 Meetgle","og_description":"Join Meetgle for secure, anonymous random video chats. The best Omegle alternative to connect 1v1 with strangers worldwide. Start your video chat now!","og_url":"https:\/\/meetgle.com\/pl\/video-chat\/","og_site_name":"Meetgle","article_modified_time":"2025-06-14T22:36:01+00:00","og_image":[{"width":291,"height":291,"url":"https:\/\/meetgle.com\/wp-content\/uploads\/2026\/03\/meetgle-icon.png?wsr","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Szacowany czas czytania":"1 minuta"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/meetgle.com\/video-chat\/","url":"https:\/\/meetgle.com\/video-chat\/","name":"Darmowy losowy czat wideo z nieznajomymi \u2013 Meetgle","isPartOf":{"@id":"https:\/\/meetgle.com\/#website"},"datePublished":"2025-06-04T14:30:46+00:00","dateModified":"2025-06-14T22:36:01+00:00","description":"Do\u0142\u0105cz do Meetgle, aby bezpiecznie i anonimowo prowadzi\u0107 losowe rozmowy wideo. Najlepsza alternatywa dla Omegle, aby \u0142\u0105czy\u0107 si\u0119 1v1 z nieznajomymi na ca\u0142ym \u015bwiecie. Rozpocznij rozmow\u0119 wideo ju\u017c teraz!","breadcrumb":{"@id":"https:\/\/meetgle.com\/video-chat\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/meetgle.com\/video-chat\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/meetgle.com\/video-chat\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/meetgle.com\/"},{"@type":"ListItem","position":2,"name":"Video Chat"}]},{"@type":"WebSite","@id":"https:\/\/meetgle.com\/#website","url":"https:\/\/meetgle.com\/","name":"Meetgle","description":"","publisher":{"@id":"https:\/\/meetgle.com\/#organization"},"alternateName":"Meetgle.com","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/meetgle.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/meetgle.com\/#organization","name":"Meetgle","alternateName":"Meetgle.com","url":"https:\/\/meetgle.com\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/meetgle.com\/#\/schema\/logo\/image\/","url":"https:\/\/meetgle.com\/wp-content\/uploads\/2026\/03\/meetgle-icon.png","contentUrl":"https:\/\/meetgle.com\/wp-content\/uploads\/2026\/03\/meetgle-icon.png","width":291,"height":291,"caption":"Meetgle"},"image":{"@id":"https:\/\/meetgle.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/meetgle.com\/pl\/wp-json\/wp\/v2\/pages\/683","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/meetgle.com\/pl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/meetgle.com\/pl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/meetgle.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/meetgle.com\/pl\/wp-json\/wp\/v2\/comments?post=683"}],"version-history":[{"count":10,"href":"https:\/\/meetgle.com\/pl\/wp-json\/wp\/v2\/pages\/683\/revisions"}],"predecessor-version":[{"id":832,"href":"https:\/\/meetgle.com\/pl\/wp-json\/wp\/v2\/pages\/683\/revisions\/832"}],"wp:attachment":[{"href":"https:\/\/meetgle.com\/pl\/wp-json\/wp\/v2\/media?parent=683"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}