{"id":2900,"date":"2025-06-06T17:16:28","date_gmt":"2025-06-06T15:16:28","guid":{"rendered":"https:\/\/chathub.tv\/?page_id=2900"},"modified":"2025-06-06T17:17:53","modified_gmt":"2025-06-06T15:17:53","slug":"video-chat","status":"publish","type":"page","link":"https:\/\/chathub.tv\/fr\/video-chat\/","title":{"rendered":"Chat vid\u00e9o"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2900\" class=\"elementor elementor-2900\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-dbb2863 elementor-section-full_width elementor-section-height-min-height elementor-section-height-default elementor-section-items-middle\" data-id=\"dbb2863\" 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-5d35808\" data-id=\"5d35808\" 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-dcacf4b elementor-widget elementor-widget-shortcode\" data-id=\"dcacf4b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\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: #41b0ff;\n          --button-hover-color: #8e48ff;\n          --button-active-color: #41b0ff;\n          --meetgle-logo-url: url('https:\/\/chathub.tv\/wp-content\/uploads\/2021\/02\/chathub-logo-1.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-extra-url=\"https:\/\/chathub.tv\/goto\/nsfw\/\">\n                        <div class=\"meetgle-stage-bg\" aria-hidden=\"true\">\n                                <img src=\"https:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile1.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile2.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile3.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile4.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile5.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile6.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile7.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile8.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile9.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile10.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile11.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile12.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile13.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile14.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile15.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile16.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile17.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\" fetchpriority=\"low\" \/>\n                                <img src=\"https:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/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:\/\/chathub.tv\/fr\/\" aria-label=\"Meetgle home\">\n                                        <img decoding=\"async\" src=\"https:\/\/chathub.tv\/wp-content\/uploads\/2021\/02\/chathub-logo-1.png\" alt=\"Meetgle\" \/>\n                                                            <img decoding=\"async\" class=\"meetgle-stage-brand-mark\" src=\"https:\/\/chathub.tv\/wp-content\/uploads\/2026\/03\/chathub-icon-150x150.png\" 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 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 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:\/\/chathub.tv\/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>Chathub<br><span>Random Video Chat<\/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:\/\/chathub.tv\/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:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/ava1.jpg';\" \/>\n                            <img loading=\"lazy\" src=\"https:\/\/chathub.tv\/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:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/ava2.jpg';\" \/>\n                            <img loading=\"lazy\" src=\"https:\/\/chathub.tv\/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:\/\/chathub.tv\/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:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/ava4.webp\" alt=\"\" width=\"150\" height=\"150\" loading=\"lazy\" decoding=\"async\" onerror=\"this.onerror=null;this.src='https:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/ava4.jpg';\" \/>\n                                                <img loading=\"lazy\" src=\"https:\/\/chathub.tv\/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:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/ava1.jpg';\" \/>\n                                                <img loading=\"lazy\" src=\"https:\/\/chathub.tv\/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:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/ava12.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,229<\/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:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile3.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:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile24.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:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile23.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:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile17.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:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile6.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:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile18.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:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile1.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:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile19.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:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile28.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:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile9.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:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile22.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:\/\/chathub.tv\/wp-content\/plugins\/meetgle-plugin-v3%202\/public\/img\/profiles\/sfw\/sm\/profile2.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:\/\/chathub.tv\/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:rgba(20,20,30,0.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);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                        <!-- LOGGED OUT: Blurred demo grid + CTA overlay -->\n            <div style=\"position:relative;\">\n                <!-- Fake photo grid (blurred) -->\n                <div id=\"discoverDemoGrid\" class=\"discover-grid\" style=\"filter:blur(6px);-webkit-filter:blur(6px);pointer-events:none;user-select:none;\">\n                    <!-- Populated by JS -->\n                <\/div>\n\n                <!-- CTA overlay -->\n                <div style=\"position:sticky;bottom:-16px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px calc(40px + 16px);background:linear-gradient(to top,rgba(20,20,30,0.98) 40%,rgba(20,20,30,0.7) 70%,transparent);margin:-200px -16px -16px;z-index:2;\">\n                    <div style=\"font-size:32px;margin-bottom:10px;\">\ud83d\udd12<\/div>\n                    <div style=\"color:white;font-weight:700;font-size:16px;margin-bottom:4px;\">Login Required<\/div>\n                    <div style=\"color:rgba(255,255,255,0.4);font-size:12px;margin-bottom:16px;text-align:center;\">Create an account to browse photos from creators<\/div>\n                    <div style=\"display:flex;gap:10px;align-items:center;\">\n                        <a href=\"\/register\" style=\"background:#ffc83d;color:#000;padding:10px 24px;border-radius:16px;text-decoration:none;font-weight:700;font-size:14px;transition:background 0.2s;\" onmouseover=\"this.style.background='#e6ad2e'\" onmouseout=\"this.style.background='#ffc83d'\">Sign Up<\/a>\n                        <a href=\"\/login\" style=\"background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.6);padding:10px 24px;border-radius:16px;text-decoration:none;font-weight:600;font-size:14px;border:1px solid rgba(255,255,255,0.1);\">Login<\/a>\n                    <\/div>\n                <\/div>\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:\/\/chathub.tv\/wp-content\/uploads\/2021\/02\/chathub-logo-1.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:\/\/chathub.tv\/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:rgba(20,20,30,0.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);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\">Buy Sparks<\/h2>\n            <button onclick=\"closeSparkInfoModal()\" class=\"mg-mclose\">&times;<\/button>\n        <\/div>\n\n        <!-- Content -->\n        <div style=\"padding:16px 24px 24px 24px;overflow-y:auto;\">\n\n                        <!-- Login Notice -->\n            <div style=\"background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:12px;padding:10px 16px;margin-bottom:16px;display:flex;align-items:center;gap:12px;\">\n                <div style=\"font-size:16px;\">\ud83d\udd12<\/div>\n                <div style=\"flex:1;min-width:0;\">\n                    <div style=\"color:white;font-weight:600;font-size:13px;\">Login Required<\/div>\n                    <div style=\"color:rgba(255,255,255,0.4);font-size:11px;\">Create a free account to purchase items<\/div>\n                <\/div>\n                <a href=\"\/register\" style=\"background:#ffc83d;color:#000;padding:6px 14px;border-radius:16px;text-decoration:none;font-weight:600;font-size:12px;white-space:nowrap;flex-shrink:0;\">Sign Up<\/a>\n            <\/div>\n            \n            <!-- Unlock benefits -->\n            <div style=\"margin-bottom:20px;\">\n                <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:12px;\">\n                    <div style=\"width:6px;height:6px;border-radius:50%;background:#ffc83d;flex-shrink:0;\"><\/div>\n                    <span style=\"color:rgba(255,255,255,0.45);font-size:11px;font-weight:600;letter-spacing:0.5px;text-transform:uppercase;\">Unlock with Sparks<\/span>\n                <\/div>\n                <div class=\"spark-info-perks-grid\">\n                    <div class=\"spark-perk\">\n                        <div class=\"spark-perk-icon\" style=\"background:linear-gradient(135deg,#ec4899 0%,#db2777 100%);\">\u2640<\/div>\n                        <div class=\"spark-perk-body\">\n                            <div class=\"spark-perk-title\">Gender Filter<\/div>\n                            <div class=\"spark-perk-sub\">Match by gender<\/div>\n                        <\/div>\n                    <\/div>\n                    <div class=\"spark-perk\">\n                        <div class=\"spark-perk-icon\" style=\"background:linear-gradient(135deg,#10b981 0%,#059669 100%);\">\ud83c\udf0d<\/div>\n                        <div class=\"spark-perk-body\">\n                            <div class=\"spark-perk-title\">Country Match<\/div>\n                            <div class=\"spark-perk-sub\">Pick where they&#039;re from<\/div>\n                        <\/div>\n                    <\/div>\n                    <div class=\"spark-perk\">\n                        <div class=\"spark-perk-icon\" style=\"background:linear-gradient(135deg,#1d9bf0 0%,#1a8cd8 100%);font-size:14px;\">\u2713<\/div>\n                        <div class=\"spark-perk-body\">\n                            <div class=\"spark-perk-title\">Verified Badge<\/div>\n                            <div class=\"spark-perk-sub\">Get the blue check<\/div>\n                        <\/div>\n                    <\/div>\n                    <div class=\"spark-perk\">\n                        <div class=\"spark-perk-icon\" style=\"background:linear-gradient(135deg,#a855f7 0%,#7c3aed 100%);\">\ud83d\udcac<\/div>\n                        <div class=\"spark-perk-body\">\n                            <div class=\"spark-perk-title\">Direct Messages<\/div>\n                            <div class=\"spark-perk-sub\">Chat after the call<\/div>\n                        <\/div>\n                    <\/div>\n                    <div class=\"spark-perk\">\n                        <div class=\"spark-perk-icon\" style=\"background:linear-gradient(135deg,#ffc83d 0%,#e6ad2e 100%);\">\ud83c\udf81<\/div>\n                        <div class=\"spark-perk-body\">\n                            <div class=\"spark-perk-title\">Gift Sparks<\/div>\n                            <div class=\"spark-perk-sub\">Send to anyone<\/div>\n                        <\/div>\n                    <\/div>\n                    <div class=\"spark-perk\">\n                        <div class=\"spark-perk-icon\" style=\"background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);\">\ud83d\udcf8<\/div>\n                        <div class=\"spark-perk-body\">\n                            <div class=\"spark-perk-title\">Premium Photos<\/div>\n                            <div class=\"spark-perk-sub\">Unlock private galleries<\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n                        <!-- No packages available -->\n            <div style=\"text-align:center;padding:40px 0;\">\n                <div style=\"font-size:32px;margin-bottom:12px;\">\u26a1<\/div>\n                <div style=\"color:rgba(255,255,255,0.5);font-size:14px;\">Spark Bundles Coming Soon<\/div>\n                <div style=\"color:rgba(255,255,255,0.3);font-size:12px;margin-top:6px;\">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\" style=\"max-width:400px;background:#1F2937;text-align:center;\">\n        <div style=\"padding:24px;\">\n            <div id=\"sparkInfoPurchaseIcon\" style=\"font-size:48px;margin-bottom:16px;\">\ud83d\udcb0<\/div>\n            <h3 id=\"sparkInfoPurchaseTitle\" style=\"color:white;margin:0 0 8px 0;font-size:20px;font-weight:600;\">Confirm Purchase<\/h3>\n            <p id=\"sparkInfoPurchaseMessage\" style=\"color:#9CA3AF;margin:0 0 24px 0;font-size:14px;\"><\/p>\n\n            <div style=\"display:flex;gap:12px;justify-content:center;\">\n                <button onclick=\"closeSparkInfoPurchaseConfirm()\" style=\"background:#374151;color:white;border:none;border-radius:8px;padding:12px 24px;font-size:14px;font-weight:600;cursor:pointer;\">\n                    Cancel                <\/button>\n                <button id=\"sparkInfoPurchaseBtn\" onclick=\"confirmSparkInfoPurchase()\" style=\"background:linear-gradient(135deg, #10B981 0%, #059669 100%);color:white;border:none;border-radius:8px;padding:12px 24px;font-size:14px;font-weight:600;cursor:pointer;\">\n                    Buy Now                <\/button>\n            <\/div>\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        \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:rgba(20,20,30,0.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);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:16px;\">\n                <h2 class=\"mg-mtitle\">Spark Store<\/h2>\n                <button onclick=\"closeSparkStoreModal()\" class=\"mg-mclose\">&times;<\/button>\n            <\/div>\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 style=\"color:white;font-weight:700;font-size:18px;\" id=\"storeSparkBalance\">0<\/span>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Content -->\n        <div style=\"padding:20px;\">\n                        <!-- Login Notice -->\n            <div style=\"background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:12px;padding:10px 16px;margin-bottom:16px;display:flex;align-items:center;gap:12px;\">\n                <div style=\"font-size:16px;\">\ud83d\udd12<\/div>\n                <div style=\"flex:1;min-width:0;\">\n                    <div style=\"color:white;font-weight:600;font-size:13px;\">Login Required<\/div>\n                    <div style=\"color:rgba(255,255,255,0.35);font-size:11px;\">Create a free account to purchase items<\/div>\n                <\/div>\n                <a href=\"\/register\" style=\"background:rgba(255,255,255,0.08);color:white;padding:6px 14px;border-radius:10px;text-decoration:none;font-weight:600;font-size:12px;border:1px solid rgba(255,255,255,0.12);transition:all 0.2s;white-space:nowrap;flex-shrink:0;\" onmouseover=\"this.style.background='rgba(255,255,255,0.12)'\" onmouseout=\"this.style.background='rgba(255,255,255,0.08)'\">Sign Up<\/a>\n            <\/div>\n                        \n            <!-- CHAT UPGRADES Section -->\n            <div style=\"margin-bottom:20px;\">\n                <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:12px;\">\n                    <div style=\"width:6px;height:6px;border-radius:50%;background:#ffc83d;flex-shrink:0;\"><\/div>\n                    <span style=\"color:rgba(255,255,255,0.45);font-size:11px;font-weight:600;letter-spacing:0.5px;\">CHAT UPGRADES<\/span>\n                <\/div>\n\n                <div class=\"spark-store-scroll-row\" style=\"display:flex;overflow-x:auto;gap:10px;padding-top:10px;padding-bottom:4px;\">\n\n                    <!-- Match Filters Card -->\n                    <div id=\"storeItem_match_filters\" class=\"store-item\" data-item-type=\"match_filters\" data-price=\"100\" onclick=\"handleStorePurchase('match_filters', 100)\" style=\"background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:14px;padding:16px;cursor:pointer;transition:all 0.2s;position:relative;width:170px;min-width:170px;flex-shrink:0;display:flex;flex-direction:column;\">\n                        \n                        <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;\">\n                            <div style=\"width:32px;height:32px;background:rgba(255,215,0,0.15);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;\">\ud83c\udfaf<\/div>\n                            <span style=\"color:#ffc83d;font-weight:700;font-size:13px;\">100 \u26a1<\/span>\n                        <\/div>\n                        <div style=\"color:white;font-size:14px;font-weight:700;margin-bottom:4px;\">Match Filters<\/div>\n                        <div style=\"color:rgba(255,255,255,0.4);font-size:11px;line-height:1.4;margin-bottom:12px;\">Filter matches by gender and country<\/div>\n                        <div style=\"display:flex;justify-content:space-between;align-items:center;margin-top:auto;\">\n                                                        <span style=\"color:rgba(255,255,255,0.35);font-size:11px;\">24 hours<\/span>\n                                                        <span style=\"background:rgba(255,255,255,0.08);color:white;padding:6px 16px;border-radius:16px;font-size:12px;font-weight:600;\">Buy<\/span>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Reveal Gender Card -->\n                    <div id=\"storeItem_reveal_gender\" class=\"store-item\" data-item-type=\"reveal_gender\" data-price=\"50\" onclick=\"handleStorePurchase('reveal_gender', 50)\" style=\"background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:14px;padding:16px;cursor:pointer;transition:all 0.2s;position:relative;width:170px;min-width:170px;flex-shrink:0;display:flex;flex-direction:column;\">\n                        \n                        <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;\">\n                            <div style=\"width:32px;height:32px;background:rgba(236,72,153,0.15);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;\">\ud83d\udc64<\/div>\n                            <span style=\"color:#ffc83d;font-weight:700;font-size:13px;\">50 \u26a1<\/span>\n                        <\/div>\n                        <div style=\"color:white;font-size:14px;font-weight:700;margin-bottom:4px;\">Reveal Gender<\/div>\n                        <div style=\"color:rgba(255,255,255,0.4);font-size:11px;line-height:1.4;margin-bottom:12px;\">See your match&#039;s gender<\/div>\n                        <div style=\"display:flex;justify-content:space-between;align-items:center;margin-top:auto;\">\n                                                        <span style=\"color:rgba(255,255,255,0.35);font-size:11px;\">24 hours<\/span>\n                                                        <span style=\"background:rgba(255,255,255,0.08);color:white;padding:6px 16px;border-radius:16px;font-size:12px;font-weight:600;\">Buy<\/span>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Chat History Card -->\n                    <div id=\"storeItem_full_history\" class=\"store-item\" data-item-type=\"full_history\" data-price=\"100\" onclick=\"handleStorePurchase('full_history', 100)\" style=\"background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:14px;padding:16px;cursor:pointer;transition:all 0.2s;position:relative;width:170px;min-width:170px;flex-shrink:0;display:flex;flex-direction:column;\">\n                                                \n                        <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;\">\n                            <div style=\"width:32px;height:32px;background:rgba(139,92,246,0.15);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;\">\ud83d\udd50<\/div>\n                            <span style=\"color:#ffc83d;font-weight:700;font-size:13px;\">100 \u26a1<\/span>\n                        <\/div>\n                        <div style=\"color:white;font-size:14px;font-weight:700;margin-bottom:4px;\">Chat History<\/div>\n                        <div style=\"color:rgba(255,255,255,0.4);font-size:11px;line-height:1.4;margin-bottom:12px;\">Full unlimited history access<\/div>\n                        <div style=\"display:flex;justify-content:space-between;align-items:center;margin-top:auto;\">\n                                                        <span style=\"color:rgba(255,255,255,0.35);font-size:11px;\">24 hours<\/span>\n                                                        <span style=\"background:rgba(255,255,255,0.08);color:white;padding:6px 16px;border-radius:16px;font-size:12px;font-weight:600;\">Buy<\/span>\n                        <\/div>\n                    <\/div>\n\n                <\/div>\n            <\/div>\n\n            <!-- PROFILE & STATUS Section -->\n            <div style=\"margin-bottom:20px;\">\n                <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:12px;\">\n                    <div style=\"width:6px;height:6px;border-radius:50%;background:#ffc83d;flex-shrink:0;\"><\/div>\n                    <span style=\"color:rgba(255,255,255,0.45);font-size:11px;font-weight:600;letter-spacing:0.5px;\">PROFILE &amp; STATUS<\/span>\n                <\/div>\n\n                <div class=\"spark-store-scroll-row\" style=\"display:flex;overflow-x:auto;gap:10px;padding-top:10px;padding-bottom:4px;\">\n\n                    <!-- Blue Verification Card -->\n                    <div id=\"storeItem_blue_verification\" class=\"store-item\" data-item-type=\"blue_verification\" data-price=\"100\" onclick=\"handleStorePurchase('blue_verification', 100)\" style=\"background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:14px;padding:16px;cursor:pointer;transition:all 0.2s;position:relative;width:170px;min-width:170px;flex-shrink:0;display:flex;flex-direction:column;\">\n                                                \n                        <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;\">\n                            <div style=\"width:32px;height:32px;background:rgba(59,130,246,0.15);border-radius:8px;display:flex;align-items:center;justify-content:center;\">\n                                <div style=\"width:20px;height:20px;background:linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);border-radius:50%;display:flex;align-items:center;justify-content:center;color:white;font-size:11px;font-weight:bold;\">\u2713<\/div>\n                            <\/div>\n                            <span style=\"color:#ffc83d;font-weight:700;font-size:13px;\">100 \u26a1<\/span>\n                        <\/div>\n                        <div style=\"color:white;font-size:14px;font-weight:700;margin-bottom:4px;\">Blue Verification<\/div>\n                        <div style=\"color:rgba(255,255,255,0.4);font-size:11px;line-height:1.4;margin-bottom:12px;\">Verified checkmark next to your name<\/div>\n                        <div style=\"display:flex;justify-content:space-between;align-items:center;margin-top:auto;\">\n                                                        <span style=\"color:rgba(255,255,255,0.35);font-size:11px;\">7 days<\/span>\n                                                        <span style=\"background:rgba(255,255,255,0.08);color:white;padding:6px 16px;border-radius:16px;font-size:12px;font-weight:600;\">Buy<\/span>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Streak Freeze Card -->\n                    <div id=\"storeItem_streak_freeze\" class=\"store-item\" data-item-type=\"streak_freeze\" data-price=\"200\" onclick=\"handleStreakFreezePurchase()\" style=\"background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:14px;padding:16px;cursor:pointer;transition:all 0.2s;position:relative;width:170px;min-width:170px;flex-shrink:0;display:flex;flex-direction:column;\">\n                        \n                        <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;\">\n                            <div style=\"width:32px;height:32px;background:rgba(59,130,246,0.15);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;\">\u2744\ufe0f<\/div>\n                            <span style=\"color:#ffc83d;font-weight:700;font-size:13px;\">200 \u26a1<\/span>\n                        <\/div>\n                        <div style=\"color:white;font-size:14px;font-weight:700;margin-bottom:4px;\">Streak Freeze<\/div>\n                        <div style=\"color:rgba(255,255,255,0.4);font-size:11px;line-height:1.4;margin-bottom:12px;\">Saves your streak if you miss a day<\/div>\n                        <div style=\"display:flex;justify-content:space-between;align-items:center;margin-top:auto;\">\n                            <span id=\"streakFreezeOwnedCount\" style=\"color:rgba(255,255,255,0.35);font-size:11px;\">\u2744\ufe0f 0 owned<\/span>\n                            <span style=\"background:rgba(255,255,255,0.08);color:white;padding:6px 16px;border-radius:16px;font-size:12px;font-weight:600;\">Buy<\/span>\n                        <\/div>\n                    <\/div>\n\n                <\/div>\n            <\/div>\n\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\" style=\"max-width:400px;background:#1F2937;text-align:center;\">\n        <div style=\"padding:24px;\">\n            <div id=\"purchaseConfirmIcon\" style=\"font-size:48px;margin-bottom:16px;\">\ud83c\udf81<\/div>\n            <h3 id=\"purchaseConfirmTitle\" style=\"color:white;margin:0 0 8px 0;font-size:20px;font-weight:600;\">Confirm Purchase<\/h3>\n            <p id=\"purchaseConfirmMessage\" style=\"color:#9CA3AF;margin:0 0 24px 0;font-size:14px;\"><\/p>\n            \n            <div style=\"display:flex;gap:12px;justify-content:center;\">\n                <button onclick=\"closePurchaseConfirmModal()\" style=\"background:#374151;color:white;border:none;border-radius:8px;padding:12px 24px;font-size:14px;font-weight:600;cursor:pointer;\">\n                    Cancel                <\/button>\n                <button id=\"purchaseConfirmBtn\" onclick=\"confirmPurchase()\" style=\"background:var(--theme-store-price-gradient, linear-gradient(135deg, #EC4899 0%, #F472B6 100%));color:white;border:none;border-radius:8px;padding:12px 24px;font-size:14px;font-weight:600;cursor:pointer;\">\n                    Buy Now                <\/button>\n            <\/div>\n            \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        \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:rgba(20,20,30,0.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);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\">Top Earners<\/h2>\n            <button onclick=\"closeLeaderboardModal()\" class=\"mg-mclose\">&times;<\/button>\n        <\/div>\n\n        <!-- Content -->\n        <div style=\"padding:16px 24px 24px 24px;\">\n\n            <!-- Week Range Display -->\n            <div style=\"background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:14px;padding:14px;margin-bottom:16px;text-align:center;\">\n                <div style=\"font-size:28px;margin-bottom:4px;\">\ud83c\udfc6<\/div>\n                <p id=\"leaderboardWeekRange\" style=\"color:rgba(255,255,255,0.4);margin:0;font-size:13px;\">Loading...<\/p>\n            <\/div>\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                <!-- PODIUM -->\n                <div style=\"margin-bottom:16px;\">\n                    <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:12px;\">\n                        <div style=\"width:6px;height:6px;border-radius:50%;background:#ffc83d;\"><\/div>\n                        <span style=\"color:rgba(255,255,255,0.45);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;\">Podium<\/span>\n                    <\/div>\n                    <div id=\"leaderboardPodium\" class=\"lb-podium\" style=\"display:flex;justify-content:center;align-items:flex-end;gap:10px;\">\n\n                        <!-- 2nd Place -->\n                        <div id=\"rank2\" class=\"leaderboard-rank-animated lb-podium-card\" style=\"flex:1;animation-delay:0.1s;\">\n                            <div class=\"lb-rank-inner lb-rank-silver\" style=\"background:rgba(192,192,192,0.06);border:1px solid rgba(192,192,192,0.2);border-radius:14px;padding:16px;text-align:center;position:relative;transition:all 0.2s;\">\n                                <div class=\"lb-rank-badge\" style=\"position:absolute;top:-10px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,#D1D5DB,#9CA3AF);color:#fff;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;\">2<\/div>\n                                <img decoding=\"async\" id=\"avatar2\" src=\"\" style=\"width:48px;height:48px;border-radius:50%;margin:8px auto 8px;display:block;border:2px solid rgba(192,192,192,0.4);object-fit:cover;\">\n                                <div style=\"color:white;font-weight:600;font-size:13px;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;\" id=\"username2\">-<\/div>\n                                <div style=\"display:inline-block;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.08);padding:4px 10px;border-radius:12px;color:rgba(255,255,255,0.5);font-size:12px;font-weight:700;\">\n                                    <span id=\"sparks2\">0<\/span> <span style=\"color:#ffc83d;\">\u26a1<\/span>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n\n                        <!-- 1st Place -->\n                        <div id=\"rank1\" class=\"leaderboard-rank-animated lb-podium-card\" style=\"flex:1;\">\n                            <div class=\"lb-rank-inner lb-rank-gold\" style=\"background:rgba(255,215,0,0.06);border:1px solid rgba(255,215,0,0.25);border-radius:14px;padding:20px 16px;text-align:center;position:relative;box-shadow:0 0 30px rgba(255,215,0,0.08);transition:all 0.2s;\">\n                                <div class=\"lb-rank-badge\" style=\"position:absolute;top:-10px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,#ffc83d,#e6ad2e);color:#000;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;\">1<\/div>\n                                <div style=\"font-size:24px;margin-bottom:4px;\">\ud83d\udc51<\/div>\n                                <img decoding=\"async\" id=\"avatar1\" src=\"\" style=\"width:56px;height:56px;border-radius:50%;margin:0 auto 8px;display:block;border:2px solid rgba(255,215,0,0.4);object-fit:cover;\">\n                                <div style=\"color:white;font-weight:700;font-size:14px;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;\" id=\"username1\">-<\/div>\n                                <div style=\"display:inline-block;background:rgba(255,200,61,0.1);border:1px solid rgba(255,200,61,0.2);padding:4px 10px;border-radius:12px;color:#ffc83d;font-size:14px;font-weight:700;\">\n                                    <span id=\"sparks1\">0<\/span> \u26a1\n                                <\/div>\n                            <\/div>\n                        <\/div>\n\n                        <!-- 3rd Place -->\n                        <div id=\"rank3\" class=\"leaderboard-rank-animated lb-podium-card\" style=\"flex:1;animation-delay:0.2s;\">\n                            <div class=\"lb-rank-inner lb-rank-bronze\" style=\"background:rgba(205,127,50,0.06);border:1px solid rgba(205,127,50,0.2);border-radius:14px;padding:16px;text-align:center;position:relative;transition:all 0.2s;\">\n                                <div class=\"lb-rank-badge\" style=\"position:absolute;top:-10px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,#CD7F32,#A0522D);color:#fff;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;\">3<\/div>\n                                <img decoding=\"async\" id=\"avatar3\" src=\"\" style=\"width:48px;height:48px;border-radius:50%;margin:8px auto 8px;display:block;border:2px solid rgba(205,127,50,0.4);object-fit:cover;\">\n                                <div style=\"color:white;font-weight:600;font-size:13px;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;\" id=\"username3\">-<\/div>\n                                <div style=\"display:inline-block;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.08);padding:4px 10px;border-radius:12px;color:rgba(255,255,255,0.5);font-size:12px;font-weight:700;\">\n                                    <span id=\"sparks3\">0<\/span> <span style=\"color:#ffc83d;\">\u26a1<\/span>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- RANKS 4+ -->\n                <div>\n                    <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:10px;\">\n                        <div style=\"width:6px;height:6px;border-radius:50%;background:#10B981;\"><\/div>\n                        <span style=\"color:rgba(255,255,255,0.45);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;\">Rankings<\/span>\n                    <\/div>\n                    <div style=\"background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:14px;max-height:320px;overflow-y:auto;\" class=\"lb-list-scroll\">\n                        <div id=\"leaderboardList\" style=\"display:flex;flex-direction:column;gap:1px;\"><\/div>\n                    <\/div>\n                <\/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, redirect to login\n            closeMatchPreferencesDrawer();\n            window.location.href = '\/login';\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;background:rgba(20,20,30,0.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,0.08);border-radius:20px;\">\n\n        <div class=\"meetgle-profile-modal-body\">\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 -->\n            <div class=\"meetgle-profile-content\" id=\"profileContent\" style=\"display:none;\">\n\n                <!-- Close button -->\n                <button onclick=\"closeMeetgleProfileModal()\" class=\"profile-close-btn\">&times;<\/button>\n\n                <!-- Hero: Avatar left, Identity right -->\n                <div class=\"profile-hero\">\n                    <img decoding=\"async\" id=\"profileAvatar\" src=\"\" alt=\"Avatar\" class=\"profile-hero-avatar\">\n                    <div class=\"profile-hero-info\">\n                        <h2 id=\"profileUsername\" class=\"profile-hero-name\"><\/h2>\n                        <div class=\"profile-hero-meta\">\n                            <span id=\"profileGenderBadge\" class=\"profile-meta-chip\"><\/span>\n                            <span id=\"profileAge\" class=\"profile-meta-chip\"><\/span>\n                            <span id=\"profileCountryFlag\" class=\"profile-meta-chip\"><\/span>\n                            <button id=\"profileFavoriteBtn\" onclick=\"toggleProfileFavorite()\" class=\"profile-meta-chip profile-fav-chip\" style=\"display:none;cursor:pointer;\" title=\"Add to favorites\">\n                                <span id=\"profileFavoriteIcon\" style=\"font-size:12px;\">\ud83e\udd0d<\/span>\n                                <span id=\"profileFavoriteText\" style=\"font-size:12px;font-weight:600;\">Favorite<\/span>\n                            <\/button>\n                        <\/div>\n                        <div id=\"profileLookingFor\" class=\"profile-hero-lookingfor\"><\/div>\n                        <div class=\"profile-badges\" id=\"profileBadges\"><\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- Action Buttons -->\n                <div class=\"profile-actions\">\n                    <button id=\"sendSparksBtn\" onclick=\"openSendSparksModal()\" class=\"profile-action-btn\" style=\"display:none;\">\u26a1 Send Sparks<\/button>\n\n                    <button id=\"sendMessageBtn\" onclick=\"startConversationFromProfile()\" class=\"profile-action-btn\" style=\"display:none;\">\ud83d\udcac Message<\/button>\n                <\/div>\n\n                <!-- Scrollable Content -->\n                <div class=\"profile-scroll-content\">\n\n                    <!-- Bio Section -->\n                    <div class=\"profile-section\" id=\"profileBioSection\">\n                        <div class=\"profile-section-header\">\n                            <div class=\"profile-section-dot\" style=\"background:#3B82F6;\"><\/div>\n                            <span>About<\/span>\n                        <\/div>\n                        <div class=\"profile-bio-card\">\n                            <p id=\"profileBio\"><\/p>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Photos Gallery -->\n                    <div id=\"profilePhotosSection\" class=\"profile-section\" style=\"display:none;\">\n                        <div class=\"profile-section-header\">\n                            <div class=\"profile-section-dot\" style=\"background:#EC4899;\"><\/div>\n                            <span>Photos<\/span>\n                            <span id=\"profilePhotoCount\" class=\"profile-photo-count\"><\/span>\n                        <\/div>\n                        <div class=\"profile-photos-wrap\">\n                            <div id=\"profilePhotosGrid\" class=\"profile-photos-scroll\"><\/div>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Interests Section -->\n                    <div class=\"profile-section\" id=\"profileInterestsSection\">\n                        <div class=\"profile-section-header\">\n                            <div class=\"profile-section-dot\" style=\"background:#10B981;\"><\/div>\n                            <span>Interests<\/span>\n                        <\/div>\n                        <div class=\"profile-interests\" id=\"profileInterests\"><\/div>\n                    <\/div>\n\n                    <!-- Activity Stats -->\n                    <div class=\"profile-section\">\n                        <div class=\"profile-section-header\">\n                            <div class=\"profile-section-dot\" style=\"background:#ffc83d;\"><\/div>\n                            <span>Activity<\/span>\n                        <\/div>\n                        <div class=\"profile-stats-scroll\">\n                            <div class=\"profile-stat-card\">\n                                <div class=\"stat-emoji\">\u26a1<\/div>\n                                <div id=\"profileLifetimeEarned\" class=\"stat-val\">0<\/div>\n                                <div class=\"stat-lbl\">Lifetime<\/div>\n                            <\/div>\n                            <div class=\"profile-stat-card\">\n                                <div class=\"stat-emoji\">\ud83d\udcc8<\/div>\n                                <div id=\"profileWeeklyEarned\" class=\"stat-val\">0<\/div>\n                                <div class=\"stat-lbl\">This Week<\/div>\n                            <\/div>\n                            <div class=\"profile-stat-card\" id=\"profileRankStat\" style=\"display:none;\">\n                                <div class=\"stat-emoji\">\ud83c\udfc6<\/div>\n                                <div id=\"profileRank\" class=\"stat-val\" style=\"color:#ffc83d;\">-<\/div>\n                                <div class=\"stat-lbl\">Rank<\/div>\n                            <\/div>\n                            <div class=\"profile-stat-card\">\n                                <div class=\"stat-emoji\">\ud83d\udcc5<\/div>\n                                <div id=\"profileMemberSince\" class=\"stat-val\"><\/div>\n                                <div class=\"stat-lbl\">Joined<\/div>\n                            <\/div>\n                            <div class=\"profile-stat-card\" id=\"profileLastChatStat\" style=\"display:none;\">\n                                <div class=\"stat-emoji\">\ud83d\udcac<\/div>\n                                <div id=\"profileLastChat\" class=\"stat-val\">-<\/div>\n                                <div class=\"stat-lbl\">Last Chat<\/div>\n                            <\/div>\n                            <div class=\"profile-stat-card\" id=\"profileTotalChatStat\" style=\"display:none;\">\n                                <div class=\"stat-emoji\">\u23f1\ufe0f<\/div>\n                                <div id=\"profileTotalChatTime\" class=\"stat-val\">0m<\/div>\n                                <div class=\"stat-lbl\">Chat Time<\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Send Sparks Section (hidden, used by legacy JS) -->\n                    <div id=\"sendSparksSection\" style=\"display:none;margin-top:16px;\">\n                        <button onclick=\"openSendSparksModal()\" style=\"width:100%;background:#ffc83d;color:#000;border:none;border-radius:12px;padding:14px;font-size:15px;font-weight:700;cursor:pointer;\">\u26a1 Send Sparks<\/button>\n                    <\/div>\n                <\/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;background:rgba(20,20,30,0.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,0.08);border-radius:20px;\">\n\n        <div class=\"meetgle-profile-modal-body\" style=\"position:relative;\">\n            <!-- Loading Overlay -->\n            <div id=\"editProfileLoadingOverlay\" style=\"position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(20,20,30,0.98);z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:20px;\">\n                <div class=\"profile-spinner\" style=\"width:40px;height:40px;border:3px solid rgba(255,255,255,0.1);border-top-color:rgba(255,255,255,0.6);border-radius:50%;animation:spin 0.8s linear infinite;margin-bottom:16px;\"><\/div>\n                <p style=\"margin:0;color:rgba(255,255,255,0.4);font-size:14px;font-weight:500;\">Loading your profile...<\/p>\n            <\/div>\n\n            <!-- Saving State -->\n            <div class=\"meetgle-profile-loading\" id=\"editProfileLoading\" style=\"display:none;\">\n                <div class=\"profile-spinner\" style=\"width:40px;height:40px;border:3px solid rgba(255,255,255,0.1);border-top-color:rgba(255,255,255,0.6);border-radius:50%;animation:spin 0.8s linear infinite;margin:0 auto 16px;\"><\/div>\n                <p style=\"color:rgba(255,255,255,0.4);font-size:14px;\">Saving changes...<\/p>\n            <\/div>\n\n            <!-- Edit Profile Content -->\n            <div id=\"editProfileContent\">\n                <!-- Header -->\n                <div style=\"padding:20px 20px 0 20px;\">\n                    <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;\">\n                        <h2 style=\"color:white;margin:0;font-size:22px;font-weight:700;\">Edit Profile<\/h2>\n                        <button onclick=\"closeEditProfileModal()\" 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\n                    <!-- Avatar Row -->\n                    <div style=\"display:flex;align-items:center;gap:16px;margin-bottom:20px;\">\n                        <label for=\"avatarUploadInput\" class=\"edit-avatar-wrap\">\n                            <img decoding=\"async\" id=\"editProfileAvatar\" src=\"\" alt=\"Avatar\" class=\"edit-avatar-img\">\n                            <div class=\"edit-avatar-overlay\">\n                                <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg>\n                            <\/div>\n                            <input type=\"file\" id=\"avatarUploadInput\" accept=\"image\/*\" style=\"display:none;\" onchange=\"handleAvatarUpload(event)\">\n                        <\/label>\n                        <div>\n                            <h3 id=\"editProfileUsername\" style=\"color:white;margin:0 0 4px 0;font-size:18px;font-weight:700;\"><\/h3>\n                            <p style=\"color:rgba(255,255,255,0.4);font-size:13px;margin:0;\">Tap to change photo<\/p>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- Form Content -->\n                <div style=\"padding:0 20px 20px 20px;\">\n\n                    <!-- Avatar Upload Status -->\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 Section -->\n                    <div class=\"profile-section\" style=\"margin-bottom:16px;\">\n                        <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:10px;\">\n                            <div style=\"width:6px;height:6px;border-radius:50%;background:#EC4899;\"><\/div>\n                            <span style=\"color:rgba(255,255,255,0.45);font-size:11px;font-weight:600;letter-spacing:0.5px;text-transform:uppercase;\">Gender<\/span>\n                        <\/div>\n                        <p style=\"font-size:12px;color:rgba(255,255,255,0.35);margin:0 0 10px 0;\">This is YOUR gender (not who you want to match with)<\/p>\n                        <div style=\"display:flex;gap:10px;\">\n                            <button id=\"editGenderMale\" data-gender=\"male\" class=\"gender-select-btn\" style=\"flex:1;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:12px;padding:14px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;transition:all 0.2s ease;\">\n                                <span style=\"font-size:28px;color:rgba(255,255,255,0.3);transition:all 0.2s;\">\u2642<\/span>\n                                <span style=\"color:rgba(255,255,255,0.4);font-size:13px;font-weight:600;transition:all 0.2s;\">Male<\/span>\n                            <\/button>\n                            <button id=\"editGenderFemale\" data-gender=\"female\" class=\"gender-select-btn\" style=\"flex:1;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:12px;padding:14px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;transition:all 0.2s ease;\">\n                                <span style=\"font-size:28px;color:rgba(255,255,255,0.3);transition:all 0.2s;\">\u2640<\/span>\n                                <span style=\"color:rgba(255,255,255,0.4);font-size:13px;font-weight:600;transition:all 0.2s;\">Female<\/span>\n                            <\/button>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Country Section -->\n                    <div class=\"profile-section\" style=\"margin-bottom:16px;\">\n                        <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:10px;\">\n                            <div style=\"width:6px;height:6px;border-radius:50%;background:#3B82F6;\"><\/div>\n                            <span style=\"color:rgba(255,255,255,0.45);font-size:11px;font-weight:600;letter-spacing:0.5px;text-transform:uppercase;\">Country<\/span>\n                        <\/div>\n                        <p style=\"font-size:12px;color:rgba(255,255,255,0.35);margin:0 0 10px 0;\">Your country will be shown on your public profile<\/p>\n                        <select\n                            id=\"editProfileCountry\"\n                            style=\"width:100%;padding:12px;border:1px solid rgba(255,255,255,0.08);border-radius:12px;font-family:inherit;font-size:14px;color:white;background:rgba(255,255,255,0.04);cursor:pointer;transition:border-color 0.2s;-webkit-appearance:none;appearance:none;background-image:url('data:image\/svg+xml;charset=UTF-8,%3Csvg xmlns=%22http:\/\/www.w3.org\/2000\/svg%22 width=%2212%22 height=%2212%22 viewBox=%220 0 12 12%22%3E%3Cpath fill=%22rgba(255,255,255,0.4)%22 d=%22M2 4l4 4 4-4%22\/%3E%3C\/svg%3E');background-repeat:no-repeat;background-position:right 12px center;\"\n                        >\n                            <option value=\"\" style=\"background:#1a1a2e;color:rgba(255,255,255,0.5);\">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\n                    <!-- Age Section -->\n                    <div class=\"profile-section\" style=\"margin-bottom:16px;\">\n                        <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:10px;\">\n                            <div style=\"width:6px;height:6px;border-radius:50%;background:#ffc83d;\"><\/div>\n                            <span style=\"color:rgba(255,255,255,0.45);font-size:11px;font-weight:600;letter-spacing:0.5px;text-transform:uppercase;\">Age<\/span>\n                        <\/div>\n                        <p style=\"font-size:12px;color:rgba(255,255,255,0.35);margin:0 0 10px 0;\">Enter your birth date (must be 18+)<\/p>\n                        <input\n                            type=\"date\"\n                            id=\"editProfileBirthdate\"\n                            max=\"2008-06-22\"\n                            style=\"width:100%;padding:12px;border:1px solid rgba(255,255,255,0.08);border-radius:12px;font-family:inherit;font-size:14px;color:white;background:rgba(255,255,255,0.04);cursor:pointer;transition:border-color 0.2s;color-scheme:dark;\"\n                        >\n                    <\/div>\n\n                    <!-- Looking For Section -->\n                    <div class=\"profile-section\" style=\"margin-bottom:16px;\">\n                        <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:10px;\">\n                            <div style=\"width:6px;height:6px;border-radius:50%;background:#10B981;\"><\/div>\n                            <span style=\"color:rgba(255,255,255,0.45);font-size:11px;font-weight:600;letter-spacing:0.5px;text-transform:uppercase;\">Looking For<\/span>\n                        <\/div>\n                        <input\n                            type=\"text\"\n                            id=\"editProfileLookingFor\"\n                            placeholder=\"e.g., Friends, Chat, Dating...\"\n                            maxlength=\"50\"\n                            style=\"width:100%;padding:12px;border:1px solid rgba(255,255,255,0.08);border-radius:12px;font-family:inherit;font-size:14px;color:white;background:rgba(255,255,255,0.04);transition:border-color 0.2s;\"\n                        >\n                    <\/div>\n\n                    <!-- Bio Section -->\n                    <div class=\"profile-section\" style=\"margin-bottom:16px;\">\n                        <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:10px;\">\n                            <div style=\"width:6px;height:6px;border-radius:50%;background:#3B82F6;\"><\/div>\n                            <span style=\"color:rgba(255,255,255,0.45);font-size:11px;font-weight:600;letter-spacing:0.5px;text-transform:uppercase;\">About<\/span>\n                        <\/div>\n                        <textarea\n                            id=\"editProfileBio\"\n                            placeholder=\"Tell others about yourself... (max 200 characters)\"\n                            maxlength=\"200\"\n                            style=\"width:100%;min-height:90px;padding:12px;border:1px solid rgba(255,255,255,0.08);border-radius:12px;font-family:inherit;font-size:14px;color:white;background:rgba(255,255,255,0.04);resize:vertical;transition:border-color 0.2s;\"\n                        ><\/textarea>\n                        <div style=\"text-align:right;margin-top:4px;\">\n                            <span id=\"bioCharCount\" style=\"font-size:11px;color:rgba(255,255,255,0.35);\">0\/200<\/span>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Interests Section -->\n                    <div class=\"profile-section\" style=\"margin-bottom:16px;\">\n                        <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:10px;\">\n                            <div style=\"width:6px;height:6px;border-radius:50%;background:#10B981;\"><\/div>\n                            <span style=\"color:rgba(255,255,255,0.45);font-size:11px;font-weight:600;letter-spacing:0.5px;text-transform:uppercase;\">Interests<\/span>\n                        <\/div>\n                        <input\n                            type=\"text\"\n                            id=\"editProfileInterestsInput\"\n                            placeholder=\"Type an interest and press Enter (max 10)\"\n                            style=\"width:100%;padding:12px;border:1px solid rgba(255,255,255,0.08);border-radius:12px;font-family:inherit;font-size:14px;color:white;background:rgba(255,255,255,0.04);transition:border-color 0.2s;\"\n                        >\n                        <div id=\"editProfileInterestsList\" style=\"display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;\"><\/div>\n                        <p style=\"font-size:11px;color:rgba(255,255,255,0.3);margin:6px 0 0 0;\">Press Enter to add interests. Click tags to remove them.<\/p>\n                    <\/div>\n\n                    <!-- Photos Section (premium only, hidden by default) -->\n                    <div id=\"editProfilePhotosSection\" class=\"profile-section\" style=\"margin-bottom:16px;display:none;\">\n                        <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:10px;\">\n                            <div style=\"width:6px;height:6px;border-radius:50%;background:#EC4899;\"><\/div>\n                            <span style=\"color:rgba(255,255,255,0.45);font-size:11px;font-weight:600;letter-spacing:0.5px;text-transform:uppercase;\">Photos<\/span>\n                        <\/div>\n                        <div onclick=\"if(typeof openPremiumPhotosModal==='function'){closeEditProfileModal();openPremiumPhotosModal();}\" style=\"background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:14px;padding:16px;cursor:pointer;display:flex;align-items:center;gap:14px;transition:all 0.2s;\" onmouseover=\"this.style.background='rgba(255,255,255,0.08)';this.style.borderColor='rgba(255,255,255,0.15)'\" onmouseout=\"this.style.background='rgba(255,255,255,0.04)';this.style.borderColor='rgba(255,255,255,0.08)'\">\n                            <div style=\"width:44px;height:44px;border-radius:12px;background:rgba(236,72,153,0.12);display:flex;align-items:center;justify-content:center;flex-shrink:0;\">\n                                <span style=\"font-size:22px;\">\ud83d\udcf8<\/span>\n                            <\/div>\n                            <div style=\"flex:1;min-width:0;\">\n                                <div style=\"color:white;font-size:14px;font-weight:600;margin-bottom:2px;\">Manage Photos<\/div>\n                                <div style=\"color:rgba(255,255,255,0.4);font-size:12px;\">Upload and manage your premium photos<\/div>\n                            <\/div>\n                            <div style=\"color:rgba(255,255,255,0.25);font-size:18px;flex-shrink:0;\">\u203a<\/div>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Save Button -->\n                    <button\n                        id=\"saveProfileBtn\"\n                        onclick=\"saveProfileChanges()\"\n                        style=\"width:100%;background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.15);color:white;border-radius:14px;padding:14px;font-size:15px;font-weight:600;cursor:pointer;transition:all 0.2s;margin-top:4px;\"\n                        onmouseover=\"this.style.background='rgba(255,255,255,0.15)'\"\n                        onmouseout=\"this.style.background='rgba(255,255,255,0.1)'\"\n                    >\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:rgba(20,20,30,0.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);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                    <div style=\"width:6px;height:6px;border-radius:50%;background:#ffc83d;flex-shrink:0;\"><\/div>\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                    <div style=\"width:6px;height:6px;border-radius:50%;background:#ffc83d;flex-shrink:0;\"><\/div>\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     PHP still renders the logged-in vs logged-out markup variant via $is_logged_in. -->\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:rgba(20,20,30,0.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);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\">Chat History<\/h2>\n            <button onclick=\"closeChatHistoryModal()\" class=\"mg-mclose\">&times;<\/button>\n        <\/div>\n\n        <!-- Content -->\n        <div id=\"chatHistoryContent\" style=\"padding:16px 24px 24px 24px;overflow-y:auto;max-height:calc(80vh - 80px);\">\n\n                        <!-- LOGGED OUT: Demo History + CTA -->\n            <div id=\"chatHistoryDemoView\">\n                <!-- Demo matches preview -->\n                <div style=\"margin-bottom:16px;\">\n                    <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:10px;\">\n                        <div style=\"width:6px;height:6px;border-radius:50%;background:#10B981;\"><\/div>\n                        <span style=\"color:rgba(255,255,255,0.45);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;\">Recent Matches<\/span>\n                    <\/div>\n\n                    <!-- Blurred demo items - these look real but are blurred to tease -->\n                    <div style=\"position:relative;\">\n                        <div class=\"ch-demo-list\" style=\"display:flex;flex-direction:column;gap:1px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:14px;overflow:hidden;filter:blur(3px);-webkit-filter:blur(3px);pointer-events:none;user-select:none;\">\n                            <!-- Demo items populated by JS -->\n                        <\/div>\n\n                        <!-- CTA overlay -->\n                        <div style=\"position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(20,20,30,0.5);border-radius:14px;\">\n                            <div style=\"font-size:32px;margin-bottom:10px;\">\ud83d\udd12<\/div>\n                            <div style=\"color:white;font-weight:700;font-size:16px;margin-bottom:4px;\">See who you&#039;ve chatted with<\/div>\n                            <div style=\"color:rgba(255,255,255,0.4);font-size:12px;margin-bottom:16px;text-align:center;padding:0 20px;\">Create a free account to save your chat history and reconnect with people<\/div>\n                            <a href=\"\/register\" style=\"background:#ffc83d;color:#000;padding:10px 24px;border-radius:16px;text-decoration:none;font-weight:700;font-size:14px;transition:all 0.2s;\" onmouseover=\"this.style.background='#e6ad2e'\" onmouseout=\"this.style.background='#ffc83d'\">Create Free Account<\/a>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- Benefits section -->\n                <div style=\"margin-bottom:16px;\">\n                    <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:10px;\">\n                        <div style=\"width:6px;height:6px;border-radius:50%;background:#ffc83d;\"><\/div>\n                        <span style=\"color:rgba(255,255,255,0.45);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;\">Why Create an Account?<\/span>\n                    <\/div>\n                    <div style=\"display:flex;flex-direction:column;gap:6px;\">\n                        <div style=\"background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:12px;padding:12px 14px;display:flex;align-items:center;gap:12px;\">\n                            <span style=\"font-size:18px;\">\ud83d\udcac<\/span>\n                            <div>\n                                <div style=\"color:white;font-weight:600;font-size:13px;\">Save your chat history<\/div>\n                                <div style=\"color:rgba(255,255,255,0.35);font-size:11px;\">See your last 50 matches anytime<\/div>\n                            <\/div>\n                        <\/div>\n                        <div style=\"background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:12px;padding:12px 14px;display:flex;align-items:center;gap:12px;\">\n                            <span style=\"font-size:18px;\">\ud83d\udc64<\/span>\n                            <div>\n                                <div style=\"color:white;font-weight:600;font-size:13px;\">View profiles anytime<\/div>\n                                <div style=\"color:rgba(255,255,255,0.35);font-size:11px;\">Click any match to see their full profile<\/div>\n                            <\/div>\n                        <\/div>\n                        <div style=\"background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:12px;padding:12px 14px;display:flex;align-items:center;gap:12px;\">\n                            <span style=\"font-size:18px;\">\u26a1<\/span>\n                            <div>\n                                <div style=\"color:white;font-weight:600;font-size:13px;\">Earn 20 free Sparks<\/div>\n                                <div style=\"color:rgba(255,255,255,0.35);font-size:11px;\">Instant bonus just for signing up<\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n                    <\/div>\n    <\/div>\n<\/div>\n<\/template>\n\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;background:rgba(20,20,30,0.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);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 -->\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 -->\n            <div id=\"transactionsEmpty\" style=\"display:none;text-align:center;padding:48px 0;\">\n                <div style=\"font-size:32px;margin-bottom:12px;opacity:0.5;\">\u26a1<\/div>\n                <div style=\"color:rgba(255,255,255,0.4);font-size:14px;\">No transactions yet<\/div>\n                <div style=\"color:rgba(255,255,255,0.25);font-size:12px;margin-top:4px;\">Start earning sparks to see your history!<\/div>\n            <\/div>\n\n            <!-- Transactions List -->\n            <div id=\"transactionsListWrapper\" style=\"display:none;\">\n                <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:10px;\">\n                    <div style=\"width:6px;height:6px;border-radius:50%;background:#ffc83d;\"><\/div>\n                    <span style=\"color:rgba(255,255,255,0.45);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;\">History<\/span>\n                <\/div>\n                <div style=\"background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:14px;overflow:hidden;\">\n                    <div id=\"transactionsList\"><\/div>\n                <\/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\" style=\"display:none;text-align:center;padding:16px 0;\">\n                <div style=\"color:rgba(255,255,255,0.25);font-size:12px;\">No more transactions to load<\/div>\n            <\/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:rgba(20,20,30,0.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);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            <div style=\"display:flex;align-items:center;gap:10px;\">\n                <h2 class=\"mg-mtitle\">Notifications<\/h2>\n                <span id=\"notificationsUnreadBadgeHeader\" style=\"background:rgba(255,200,61,0.15);color:#ffc83d;font-size:12px;font-weight:700;padding:3px 10px;border-radius:10px;border:1px solid rgba(255,200,61,0.25);display:none;\">\n                    0                <\/span>\n            <\/div>\n            <button onclick=\"closeNotificationsModal()\" class=\"mg-mclose\">&times;<\/button>\n        <\/div>\n\n        <!-- Content -->\n        <div id=\"notificationsContainer\" style=\"padding:16px 24px 24px 24px;max-height:calc(80vh - 80px);overflow-y:auto;\">\n\n            <!-- Loading state -->\n            <div id=\"notificationsLoading\" style=\"text-align:center;padding:48px 0;\">\n                <div class=\"profile-spinner\" style=\"margin:0 auto 12px auto;\"><\/div>\n                <div style=\"color:rgba(255,255,255,0.35);font-size:13px;\">Loading notifications...<\/div>\n            <\/div>\n\n            <!-- Empty state -->\n            <div id=\"notificationsEmpty\" style=\"display:none;text-align:center;padding:48px 0;\">\n                <div style=\"font-size:32px;margin-bottom:12px;opacity:0.5;\">\ud83d\udd14<\/div>\n                <div style=\"color:rgba(255,255,255,0.4);font-size:14px;\">No notifications yet<\/div>\n                <div style=\"color:rgba(255,255,255,0.25);font-size:12px;margin-top:4px;\">You&#039;ll see updates here when you receive sparks or make purchases<\/div>\n            <\/div>\n\n            <!-- Notifications list -->\n            <div id=\"notificationsList\" class=\"notifications-list\" style=\"display:none;\">\n                <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:10px;\">\n                    <div style=\"width:6px;height:6px;border-radius:50%;background:#ffc83d;\"><\/div>\n                    <span style=\"color:rgba(255,255,255,0.45);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;\">Recent<\/span>\n                <\/div>\n                <div style=\"background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:14px;overflow:hidden;\">\n                <\/div>\n            <\/div>\n\n            <!-- Load more -->\n            <div id=\"loadMoreNotifications\" style=\"display:none;text-align:center;padding:16px 0;\">\n                <button onclick=\"loadMoreNotifications()\" style=\"background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);border-radius:12px;color:rgba(255,255,255,0.5);font-size:13px;font-weight:600;padding:10px 24px;cursor:pointer;transition:all 0.2s;\" onmouseover=\"this.style.background='rgba(255,255,255,0.1)';this.style.color='rgba(255,255,255,0.7)'\" onmouseout=\"this.style.background='rgba(255,255,255,0.06)';this.style.color='rgba(255,255,255,0.5)'\">\n                    Load More                <\/button>\n            <\/div>\n\n            <!-- Mark All Read (inline, no footer) -->\n            <div id=\"notificationsFooter\" style=\"text-align:center;padding:12px 0 0 0;display:none;\">\n                <button id=\"markAllReadBtn\" onclick=\"markAllNotificationsRead()\" style=\"background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);border-radius:12px;color:rgba(255,255,255,0.5);font-size:13px;font-weight:600;padding:10px 24px;cursor:pointer;transition:all 0.2s;width:100%;\" onmouseover=\"this.style.background='rgba(255,255,255,0.1)';this.style.color='rgba(255,255,255,0.7)'\" onmouseout=\"this.style.background='rgba(255,255,255,0.06)';this.style.color='rgba(255,255,255,0.5)'\">\n                    Mark All As Read                <\/button>\n            <\/div>\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;background:rgba(20,20,30,0.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);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 -->\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 -->\n            <div id=\"favoritesEmpty\" style=\"display:none;text-align:center;padding:48px 0;\">\n                <div style=\"font-size:32px;margin-bottom:12px;opacity:0.5;\">\ud83d\udc94<\/div>\n                <div style=\"color:rgba(255,255,255,0.4);font-size:14px;\">No favorites yet<\/div>\n                <div style=\"color:rgba(255,255,255,0.25);font-size:12px;margin-top:4px;\">Click the heart on someone&#039;s profile to add them!<\/div>\n            <\/div>\n\n            <!-- Login Required State -->\n            <div id=\"favoritesLoginRequired\" style=\"display:none;\">\n                <div style=\"background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:14px;padding:14px 16px;display:flex;align-items:center;gap:12px;\">\n                    <div style=\"font-size:20px;flex-shrink:0;\">\ud83d\udd12<\/div>\n                    <div style=\"flex:1;min-width:0;\">\n                        <div style=\"color:white;font-weight:600;font-size:13px;\">Login Required<\/div>\n                        <div style=\"color:rgba(255,255,255,0.35);font-size:11px;\">You need to be logged in to view your favorites.<\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Favorites List -->\n            <div id=\"favoritesListWrapper\" style=\"display:none;\">\n                <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:10px;\">\n                    <div style=\"width:6px;height:6px;border-radius:50%;background:#EC4899;\"><\/div>\n                    <span style=\"color:rgba(255,255,255,0.45);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;\">Your Favorites<\/span>\n                    <span style=\"color:rgba(255,255,255,0.25);font-size:11px;margin-left:auto;\">mutual favorites = \ud83d\udc95<\/span>\n                <\/div>\n                <div style=\"background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:14px;overflow:hidden;\">\n                    <div id=\"favoritesList\"><\/div>\n                <\/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\" style=\"display:none;text-align:center;padding:16px 0;\">\n                <div style=\"color:rgba(255,255,255,0.25);font-size:12px;\">No more favorites to load<\/div>\n            <\/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     PHP still renders the premium vs non-premium cost indicator. -->\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;background:rgba(20,20,30,0.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,0.08);border-radius:20px;\">\n\n        <!-- Conversations List View -->\n        <div id=\"messagesListView\">\n            <!-- Header -->\n            <div style=\"padding:20px 24px 0 24px;display:flex;align-items:center;justify-content:space-between;\">\n                <div style=\"display:flex;align-items:center;gap:10px;\">\n                    <h2 class=\"mg-mtitle\">Messages<\/h2>\n                    <span id=\"messagesUnreadBadgeHeader\" class=\"messages-header-badge\" style=\"display:none;\">\n                        0                    <\/span>\n                <\/div>\n                <button onclick=\"closeMessagesModal()\" class=\"mg-mclose\">&times;<\/button>\n            <\/div>\n\n            <!-- Conversations Container -->\n            <div id=\"conversationsContainer\" class=\"messages-container\" style=\"padding:16px 24px 24px 24px;\">\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 -->\n                <div id=\"conversationsEmpty\" class=\"messages-empty\" style=\"display:none;\">\n                    <div style=\"font-size:32px;margin-bottom:12px;opacity:0.5;\">\ud83d\udcac<\/div>\n                    <div style=\"color:rgba(255,255,255,0.4);font-size:14px;\">No conversations yet<\/div>\n                    <div style=\"color:rgba(255,255,255,0.25);font-size:12px;margin-top:4px;\">Start a conversation from someone&#039;s profile!<\/div>\n                <\/div>\n\n                <!-- Conversations list with section header -->\n                <div id=\"conversationsListWrapper\" style=\"display:none;\">\n                    <div style=\"display:flex;align-items:center;gap:8px;margin-bottom:10px;\">\n                        <div style=\"width:6px;height:6px;border-radius:50%;background:#10B981;\"><\/div>\n                        <span style=\"color:rgba(255,255,255,0.45);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;\">Conversations<\/span>\n                    <\/div>\n                    <div style=\"background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:14px;overflow:hidden;\">\n                        <div id=\"conversationsList\" class=\"conversations-list\"><\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Chat View (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()\">\n                    \u2190\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 -->\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            <!-- Message Input -->\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\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:\/\/chathub.tv\/wp-content\/uploads\/2021\/02\/chathub-logo-1.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;\">Chathub<\/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 = '94c7eba2fc';\n    var AJAX_URL = (typeof ANONCAM_DATA !== 'undefined' && ANONCAM_DATA.ajax_url) ? ANONCAM_DATA.ajax_url : 'https:\/\/chathub.tv\/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:\/\/chathub.tv\/wp-content\/uploads\/2021\/02\/chathub-logo-1.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;\">Chathub<\/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 = 'bf3cbc73c6';\n    var AJAX_URL = (typeof ANONCAM_DATA !== 'undefined' && ANONCAM_DATA.ajax_url) ? ANONCAM_DATA.ajax_url : 'https:\/\/chathub.tv\/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\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-2900","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Video Chat - Chathub<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/chathub.tv\/fr\/video-chat\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Video Chat - Chathub\" \/>\n<meta property=\"og:url\" content=\"https:\/\/chathub.tv\/fr\/video-chat\/\" \/>\n<meta property=\"og:site_name\" content=\"Chathub\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-06T15:17:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/chathub.tv\/wp-content\/uploads\/2026\/03\/chathub-icon.png\" \/>\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=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/chathub.tv\\\/video-chat\\\/\",\"url\":\"https:\\\/\\\/chathub.tv\\\/video-chat\\\/\",\"name\":\"Video Chat - Chathub\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/chathub.tv\\\/#website\"},\"datePublished\":\"2025-06-06T15:16:28+00:00\",\"dateModified\":\"2025-06-06T15:17:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/chathub.tv\\\/video-chat\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/chathub.tv\\\/video-chat\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/chathub.tv\\\/video-chat\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/chathub.tv\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Video Chat\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/chathub.tv\\\/#website\",\"url\":\"https:\\\/\\\/chathub.tv\\\/\",\"name\":\"ChatHub\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/chathub.tv\\\/#organization\"},\"alternateName\":\"ChatHub.tv\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/chathub.tv\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/chathub.tv\\\/#organization\",\"name\":\"ChatHub\",\"alternateName\":\"ChatHub.tv\",\"url\":\"https:\\\/\\\/chathub.tv\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/chathub.tv\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/chathub.tv\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/chathub-icon.png\",\"contentUrl\":\"https:\\\/\\\/chathub.tv\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/chathub-icon.png\",\"width\":291,\"height\":291,\"caption\":\"ChatHub\"},\"image\":{\"@id\":\"https:\\\/\\\/chathub.tv\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Chat vid\u00e9o - Chathub","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:\/\/chathub.tv\/fr\/video-chat\/","og_locale":"fr_FR","og_type":"article","og_title":"Video Chat - Chathub","og_url":"https:\/\/chathub.tv\/fr\/video-chat\/","og_site_name":"Chathub","article_modified_time":"2025-06-06T15:17:53+00:00","og_image":[{"width":291,"height":291,"url":"https:\/\/chathub.tv\/wp-content\/uploads\/2026\/03\/chathub-icon.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/chathub.tv\/video-chat\/","url":"https:\/\/chathub.tv\/video-chat\/","name":"Chat vid\u00e9o - Chathub","isPartOf":{"@id":"https:\/\/chathub.tv\/#website"},"datePublished":"2025-06-06T15:16:28+00:00","dateModified":"2025-06-06T15:17:53+00:00","breadcrumb":{"@id":"https:\/\/chathub.tv\/video-chat\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/chathub.tv\/video-chat\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/chathub.tv\/video-chat\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/chathub.tv\/"},{"@type":"ListItem","position":2,"name":"Video Chat"}]},{"@type":"WebSite","@id":"https:\/\/chathub.tv\/#website","url":"https:\/\/chathub.tv\/","name":"ChatHub","description":"","publisher":{"@id":"https:\/\/chathub.tv\/#organization"},"alternateName":"ChatHub.tv","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/chathub.tv\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/chathub.tv\/#organization","name":"ChatHub","alternateName":"ChatHub.tv","url":"https:\/\/chathub.tv\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/chathub.tv\/#\/schema\/logo\/image\/","url":"https:\/\/chathub.tv\/wp-content\/uploads\/2026\/03\/chathub-icon.png","contentUrl":"https:\/\/chathub.tv\/wp-content\/uploads\/2026\/03\/chathub-icon.png","width":291,"height":291,"caption":"ChatHub"},"image":{"@id":"https:\/\/chathub.tv\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/chathub.tv\/fr\/wp-json\/wp\/v2\/pages\/2900","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chathub.tv\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/chathub.tv\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/chathub.tv\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chathub.tv\/fr\/wp-json\/wp\/v2\/comments?post=2900"}],"version-history":[{"count":4,"href":"https:\/\/chathub.tv\/fr\/wp-json\/wp\/v2\/pages\/2900\/revisions"}],"predecessor-version":[{"id":2904,"href":"https:\/\/chathub.tv\/fr\/wp-json\/wp\/v2\/pages\/2900\/revisions\/2904"}],"wp:attachment":[{"href":"https:\/\/chathub.tv\/fr\/wp-json\/wp\/v2\/media?parent=2900"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}