{"id":8561,"date":"2026-03-27T01:50:06","date_gmt":"2026-03-27T01:50:06","guid":{"rendered":"https:\/\/www.terrabiga.com\/?page_id=8561"},"modified":"2026-03-27T01:51:06","modified_gmt":"2026-03-27T01:51:06","slug":"creer-une-cagnotte","status":"publish","type":"page","link":"https:\/\/www.terrabiga.com\/en\/creer-une-cagnotte\/","title":{"rendered":"creer-une-cagnotte"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"8561\" class=\"elementor elementor-8561\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ecf3fbd e-flex e-con-boxed e-con e-parent\" data-id=\"ecf3fbd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-eebdec2 elementor-widget elementor-widget-shortcode\" data-id=\"eebdec2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">        <link href=\"https:\/\/cdn.jsdelivr.net\/npm\/quill@2.0.2\/dist\/quill.snow.css\" rel=\"stylesheet\">\n        <style>\n        \/* Quill custom *\/\n        .ql-container { font-family: inherit !important; font-size: 14px !important; }\n        .ql-editor { min-height: 180px; line-height: 1.7; }\n        .ql-editor.ql-blank::before { font-style: normal; color: #9ca3af; }\n        .ql-editor img { max-width: 100%; border-radius: 8px; margin: 8px 0; }\n        .ql-toolbar.ql-snow { border: none !important; padding: 8px 10px; flex-wrap: wrap; }\n        .ql-container.ql-snow { border: none !important; }\n        \/* Toolbar responsive mobile *\/\n        @media(max-width:480px){\n            .ql-toolbar.ql-snow { padding: 6px 6px; }\n            .ql-toolbar .ql-formats { margin-right: 6px !important; }\n            .ql-snow .ql-picker { font-size: 12px; }\n            .ql-snow.ql-toolbar button { width: 24px; height: 24px; padding: 2px; }\n            .ql-editor { min-height: 140px; font-size: 14px; }\n            .ql-editor.ql-blank::before { font-size: 13px; }\n        }\n        <\/style>\n        <style>\n        * { box-sizing: border-box; }\n\n        \/* ===== AUTH ===== *\/\n        @import url('https:\/\/fonts.googleapis.com\/css2?family=Sora:wght@600;700;900&family=DM+Sans:wght@400;500;600&display=swap');\n        .tc-auth-page { min-height:100vh; background:#f5f5f5; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:32px 20px; font-family:'DM Sans',sans-serif; }\n        .tc-auth-logo { margin-bottom:24px; text-align:center; }\n        .tc-auth-logo-text { font-family:'Sora',sans-serif; font-weight:900; font-size:26px; color:#0a1628; letter-spacing:-.5px; }\n        .tc-auth-logo-text span { color:#01C64A; }\n        .tc-auth-card { background:#fff; border-radius:16px; box-shadow:0 2px 16px rgba(0,0,0,.08); width:100%; max-width:420px; padding:36px 40px; }\n        .tc-auth-card h2 { font-family:'Sora',sans-serif; font-weight:700; font-size:22px; color:#0a1628; margin:0 0 6px; text-align:center; }\n        .tc-auth-card .tc-auth-sub { font-size:14px; color:#6b7280; text-align:center; margin:0 0 28px; }\n        .tc-form-group { margin-bottom:16px; }\n        .tc-form-group label { display:flex; justify-content:space-between; align-items:center; font-size:13px; font-weight:500; margin-bottom:6px; color:#374151; }\n        .tc-form-group label a { font-size:12px; color:#6b7280; font-weight:400; text-decoration:none; }\n        .tc-form-group label a:hover { color:#01C64A; }\n        .tc-form-group input,.tc-form-group select { width:100%; padding:11px 14px; border:1.5px solid #e5e7eb; border-radius:10px; font-size:14px; font-family:'DM Sans',sans-serif; color:#111827; background:#fff; transition:border-color .15s,box-shadow .15s; outline:none; }\n        .tc-form-group input:focus,.tc-form-group select:focus { border-color:#0a1628; box-shadow:0 0 0 3px rgba(10,22,40,.07); }\n        .tc-form-group small { display:block; font-size:11px; color:#9ca3af; margin-top:5px; }\n        .tc-form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }\n        .tc-phone-input-international { display:flex !important; gap:8px !important; }\n        .tc-country-select { flex:0 0 auto !important; width:130px !important; padding:10px 28px 10px 10px !important; border:1.5px solid #e5e7eb !important; border-radius:10px !important; font-size:13px !important; appearance:none !important; cursor:pointer !important; background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C\/polyline%3E%3C\/svg%3E\") !important; background-repeat:no-repeat !important; background-position:right 8px center !important; }\n        .tc-phone-number { flex:1 !important; padding:10px 14px !important; border:1.5px solid #e5e7eb !important; border-radius:10px !important; font-size:14px !important; }\n        .tc-pw-field { position:relative; }\n        .tc-pw-field input { width:100%; padding-right:44px; }\n        .tc-pw-toggle { position:absolute; right:12px; top:50%; transform:translateY(-50%); background:none; border:none; cursor:pointer; color:#9ca3af; padding:0; display:flex; align-items:center; }\n        .tc-pw-toggle:hover { color:#374151; }\n        .tc-login-method-toggle { display:flex; background:#f3f4f6; border-radius:10px; padding:3px; gap:3px; margin-bottom:18px; }\n        .tc-method-btn { flex:1; padding:8px 12px; border:none; background:transparent; border-radius:8px; font-size:13px; font-weight:500; cursor:pointer; color:#6b7280; transition:all .15s; font-family:'DM Sans',sans-serif; }\n        .tc-method-btn.active { background:#fff; color:#0a1628; font-weight:600; box-shadow:0 1px 4px rgba(0,0,0,.1); }\n        .tc-oauth-btn { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; padding:11px 16px; border:1.5px solid #e5e7eb; border-radius:10px; background:#fff; font-size:14px; font-weight:500; color:#111827; cursor:pointer; transition:all .15s; font-family:'DM Sans',sans-serif; margin-bottom:10px; }\n        .tc-oauth-btn:hover { background:#f9fafb; border-color:#d1d5db; }\n        .tc-btn-primary { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; padding:12px; background:#0a1628; color:#fff; border:none; border-radius:10px; font-size:15px; font-weight:600; cursor:pointer; font-family:'DM Sans',sans-serif; transition:all .15s; margin-top:4px; }\n        .tc-btn-primary:hover { background:#01C64A; }\n        .tc-btn-secondary { display:flex; align-items:center; justify-content:center; width:100%; padding:11px; background:#f3f4f6; color:#374151; border:none; border-radius:10px; font-size:13px; font-weight:500; cursor:pointer; font-family:'DM Sans',sans-serif; transition:all .15s; margin-top:10px; }\n        .tc-btn-secondary:hover { background:#e5e7eb; }\n        .tc-btn-block { width:100%; }\n        .tc-divider { display:flex; align-items:center; gap:12px; font-size:12px; color:#9ca3af; margin:16px 0; }\n        .tc-divider::before,.tc-divider::after { content:''; flex:1; height:1px; background:#e5e7eb; }\n        .tc-auth-footer { text-align:center; margin-top:20px; font-size:13px; color:#6b7280; }\n        .tc-auth-footer a { color:#0a1628; font-weight:600; text-decoration:none; }\n        .tc-auth-footer a:hover { color:#01C64A; }\n        .tc-alert { padding:11px 14px; border-radius:10px; font-size:13px; margin-bottom:16px; display:flex; align-items:center; gap:8px; }\n        .tc-alert.error { background:#fef2f2; color:#dc2626; border:1px solid #fecaca; }\n        .tc-alert p { margin:0; }\n        .req { color:#ef4444; }\n        @media(max-width:480px){\n          .tc-auth-card { padding:28px 22px; border-radius:14px; }\n        }\n        \/* ===== MODAL ===== *\/\n        .tc-modal { position:fixed; top:0; left:0; width:100%; height:100%; z-index:999999; display:flex; align-items:center; justify-content:center; }\n        .tc-modal-overlay { position:absolute; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,.6); backdrop-filter:blur(4px); }\n        .tc-modal-container { position:relative; background:#fff; border-radius:28px; width:90%; max-width:1000px; max-height:90vh; overflow-y:auto; box-shadow:0 25px 50px -12px rgba(0,0,0,.25); animation:tc-modal-slide-in .3s ease; }\n        @keyframes tc-modal-slide-in { from{opacity:0;transform:translateY(-30px)} to{opacity:1;transform:translateY(0)} }\n        .tc-modal-header { display:flex; justify-content:space-between; align-items:center; padding:20px 24px; border-bottom:1px solid #e2e8f0; background:#f8fafc; position:sticky; top:0; z-index:10; }\n        .tc-modal-header h3 { margin:0; font-size:20px; font-weight:700; color:#0f172a; }\n        .tc-modal-close { background:none; border:none; font-size:28px; cursor:pointer; color:#64748b; width:36px; height:36px; border-radius:10px; display:flex; align-items:center; justify-content:center; }\n        .tc-modal-close:hover { background:#f1f5f9; color:#ef4444; }\n        .tc-modal-body { padding:24px; }\n\n        \/* ===== DASHBOARD \u2014 TERRAbiga redesign ===== *\/\n        @import url('https:\/\/fonts.googleapis.com\/css2?family=Sora:wght@700;800;900&family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700&display=swap');\n\n        :root {\n            --db-green:#01C64A; --db-green-dark:#00a83d; --db-green-bg:#e8fdf0;\n            --db-ink:#0a1628; --db-muted:#64748b; --db-border:#e8ecf0;\n            --db-bg:#f0f4f8; --db-card:#ffffff; --db-sidebar:#0a1628;\n            --db-sidebar-w:260px; --db-bottom-h:64px;\n        }\n\n        \/* \u2500\u2500 Wrap principal \u2500\u2500 *\/\n        .tc-dashboard-wrap {\n            display:flex; min-height:90vh;\n            background:var(--db-bg);\n            font-family:'DM Sans',sans-serif;\n            border-radius:20px;\n            overflow:hidden;\n            box-shadow:0 4px 32px rgba(10,22,40,.10);\n        }\n\n        \/* \u2500\u2500 Sidebar desktop \u2500\u2500 *\/\n        .tc-dashboard-sidebar {\n            width:var(--db-sidebar-w);\n            background:var(--db-sidebar);\n            display:flex; flex-direction:column;\n            padding:0;\n            flex-shrink:0;\n            position:relative;\n        }\n        .tc-db-sidebar-top {\n            padding:0;\n            background:linear-gradient(135deg,#0a1628 0%,#1a2f4a 100%);\n            border-bottom:1px solid rgba(255,255,255,.06);\n        }\n        .tc-db-brand {\n            display:flex; align-items:center;\n            margin-bottom:0;\n        }\n        .tc-db-brand-dot { display:none; }\n        .tc-db-brand-name { display:none; }\n        .tc-db-brand-logo {\n            height:36px; width:auto; display:block;\n        }\n\n        \/* Profile *\/\n        .tc-dashboard-profile {\n            display:flex; align-items:center; gap:12px;\n            padding:14px 16px;\n            background:rgba(255,255,255,.06);\n            border-radius:14px;\n        }\n        .tc-dashboard-avatar-img {\n            width:42px; height:42px;\n            border-radius:50%; object-fit:cover;\n            border:2px solid rgba(1,198,74,.4);\n            flex-shrink:0;\n        }\n        .tc-dashboard-profile-info strong {\n            display:block; font-size:13px;\n            font-weight:700; color:#fff;\n            white-space:nowrap; overflow:hidden;\n            text-overflow:ellipsis; max-width:150px;\n        }\n        .tc-dashboard-profile-info span {\n            display:block; font-size:11px;\n            color:rgba(255,255,255,.5);\n            white-space:nowrap; overflow:hidden;\n            text-overflow:ellipsis; max-width:150px;\n        }\n\n        \/* Nav *\/\n        .tc-dashboard-nav {\n            display:flex; flex-direction:column;\n            gap:2px; flex:1;\n            padding:16px 12px;\n            overflow-y:auto;\n        }\n        .tc-db-nav-label {\n            font-size:10px; font-weight:700;\n            color:rgba(255,255,255,.3);\n            text-transform:uppercase; letter-spacing:.1em;\n            padding:10px 8px 6px;\n        }\n        .tc-db-nav-divider {\n            height:1px;\n            background:rgba(255,255,255,.07);\n            margin:8px 0;\n        }\n        .tc-dashboard-nav-item {\n            display:flex; align-items:center; gap:12px;\n            padding:11px 14px;\n            border-radius:12px;\n            font-size:13.5px; font-weight:500;\n            color:rgba(255,255,255,.55);\n            text-decoration:none; cursor:pointer;\n            transition:all .18s; border:none;\n            background:none; width:100%; text-align:left;\n        }\n        .tc-dashboard-nav-item span:first-child { font-size:16px; flex-shrink:0; }\n        .tc-dashboard-nav-item:hover {\n            background:rgba(255,255,255,.07);\n            color:rgba(255,255,255,.9);\n        }\n        .tc-dashboard-nav-item.active {\n            background:linear-gradient(90deg,rgba(1,198,74,.22),rgba(1,198,74,.08));\n            color:#fff;\n            border-left:3px solid var(--db-green);\n            padding-left:11px;\n        }\n        .tc-dashboard-nav-badge {\n            margin-left:auto;\n            background:var(--db-green);\n            color:#fff; padding:2px 8px;\n            border-radius:20px; font-size:11px;\n            font-weight:700;\n        }\n\n        \/* Logout *\/\n        .tc-db-logout {\n            padding:16px 12px;\n            border-top:1px solid rgba(255,255,255,.07);\n        }\n        .tc-db-logout a {\n            display:flex; align-items:center; gap:10px;\n            padding:10px 14px; border-radius:12px;\n            color:rgba(255,100,100,.7);\n            text-decoration:none; font-size:13px;\n            transition:all .18s;\n        }\n        .tc-db-logout a:hover { background:rgba(239,68,68,.1); color:#f87171; }\n\n        \/* \u2500\u2500 Main \u2500\u2500 *\/\n        .tc-dashboard-main {\n            flex:1; overflow-y:auto;\n            padding:28px 32px;\n            background:var(--db-bg);\n        }\n        .tc-dashboard-panel { display:none; }\n        .tc-dashboard-panel.active {\n            display:block;\n            animation:dbFadeIn .22s ease;\n        }\n        @keyframes dbFadeIn { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:none} }\n        @keyframes fadeIn { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }\n\n        \/* Panel header *\/\n        .tc-back-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer;font-size:13px;font-weight:600;color:#6b7280;padding:0 0 8px;transition:color .15s;}\n        .tc-back-btn:hover{color:#1a1a2e;}\n        .tc-back-btn:hover svg{transform:translateX(-3px);}\n        .tc-back-btn svg{transition:transform .15s;}\n        .tc-dashboard-panel-header {\n            display:flex; justify-content:space-between;\n            align-items:flex-start; flex-wrap:wrap;\n            gap:16px; margin-bottom:28px;\n        }\n        .tc-dashboard-panel-header h1 {\n            font-family:'Sora',sans-serif;\n            font-size:22px; font-weight:800;\n            margin:0; color:var(--db-ink);\n        }\n        .tc-dashboard-panel-header p {\n            font-size:13px; color:var(--db-muted);\n            margin:4px 0 0;\n        }\n\n        \/* KPI cards *\/\n        .tc-dashboard-kpi-grid {\n            display:grid;\n            grid-template-columns:repeat(auto-fit,minmax(200px,1fr));\n            gap:16px; margin-bottom:28px;\n        }\n        .tc-dashboard-kpi {\n            background:var(--db-card);\n            border-radius:16px; padding:20px;\n            display:flex; align-items:center; gap:14px;\n            border:1px solid var(--db-border);\n            transition:transform .18s,box-shadow .18s;\n        }\n        .tc-dashboard-kpi:hover {\n            transform:translateY(-3px);\n            box-shadow:0 8px 24px rgba(10,22,40,.08);\n        }\n        .tc-dashboard-kpi-icon {\n            width:50px; height:50px; border-radius:14px;\n            display:flex; align-items:center;\n            justify-content:center; font-size:22px;\n            flex-shrink:0;\n        }\n        .tc-dashboard-kpi-value {\n            display:block; font-family:'Sora',sans-serif;\n            font-size:20px; font-weight:800; color:var(--db-ink);\n        }\n        .tc-dashboard-kpi-label {\n            display:block; font-size:12px;\n            color:var(--db-muted); margin-top:3px;\n        }\n\n        \/* Sections *\/\n        .tc-dashboard-section {\n            background:var(--db-card);\n            border-radius:16px;\n            border:1px solid var(--db-border);\n            overflow:hidden; margin-bottom:20px;\n        }\n        .tc-dashboard-section-head {\n            display:flex; align-items:center;\n            justify-content:space-between;\n            padding:16px 22px;\n            border-bottom:1px solid var(--db-border);\n        }\n        .tc-dashboard-section-head h2 {\n            font-size:15px; font-weight:700;\n            margin:0; color:var(--db-ink);\n        }\n        .tc-dashboard-link {\n            font-size:12px; color:var(--db-green);\n            text-decoration:none; font-weight:600; cursor:pointer;\n        }\n        .tc-dashboard-link:hover { text-decoration:underline; }\n\n        \/* Campaign rows *\/\n        .tc-dashboard-campaign-row {\n            display:flex; align-items:center; gap:14px;\n            padding:14px 22px;\n            border-bottom:1px solid #f8fafc;\n            transition:background .15s;\n        }\n        .tc-dashboard-campaign-row:hover { background:#f8fafc; }\n        .tc-dashboard-campaign-thumb {\n            width:52px; height:52px; border-radius:10px;\n            overflow:hidden; flex-shrink:0;\n            background:#f1f5f9;\n            display:flex; align-items:center;\n            justify-content:center; font-size:22px;\n        }\n        .tc-dashboard-campaign-thumb img { width:100%; height:100%; object-fit:cover; }\n        .tc-dashboard-campaign-info { flex:1; min-width:0; }\n        .tc-dashboard-campaign-info strong {\n            display:block; font-size:14px;\n            font-weight:700; margin-bottom:4px;\n            color:var(--db-ink);\n            white-space:nowrap; overflow:hidden; text-overflow:ellipsis;\n        }\n        .tc-dashboard-mini-bar {\n            height:4px; background:#e2e8f0;\n            border-radius:3px; overflow:hidden;\n            margin:6px 0 4px; width:140px;\n        }\n        .tc-dashboard-mini-fill {\n            height:100%;\n            background:linear-gradient(90deg,var(--db-green),var(--db-green-dark));\n            border-radius:3px;\n        }\n        .tc-dashboard-campaign-meta { font-size:11px; color:var(--db-muted); }\n\n        \/* Status badges *\/\n        .tc-dashboard-status {\n            display:inline-block; padding:3px 10px;\n            border-radius:20px; font-size:11px; font-weight:700;\n        }\n        .tc-dashboard-status.published { background:#dcfce7; color:#16a34a; }\n        .tc-dashboard-status.pending   { background:#fef9c3; color:#ca8a04; }\n        .tc-dashboard-status.draft     { background:#f1f5f9; color:#64748b; }\n\n        \/* Tables *\/\n        .tc-dashboard-table-wrap {\n            overflow-x:auto; background:var(--db-card);\n            border-radius:16px; border:1px solid var(--db-border);\n        }\n        .tc-dashboard-table { width:100%; border-collapse:collapse; min-width:500px; }\n        .tc-dashboard-table th {\n            padding:12px 16px; font-size:11px; font-weight:700;\n            text-transform:uppercase; letter-spacing:.06em;\n            color:var(--db-muted); background:#f8fafc;\n            text-align:left; border-bottom:1px solid var(--db-border);\n        }\n        .tc-dashboard-table td {\n            padding:13px 16px; font-size:13px;\n            border-bottom:1px solid #f1f5f9;\n        }\n        .tc-dashboard-table tr:last-child td { border-bottom:none; }\n        .tc-dashboard-table tr:hover td { background:#fafbfc; }\n\n        \/* Empty state *\/\n        .tc-dashboard-empty-state {\n            text-align:center; padding:52px 20px;\n            background:var(--db-card); border-radius:16px;\n            border:2px dashed var(--db-border);\n        }\n        .tc-dashboard-empty-icon { font-size:48px; margin-bottom:14px; }\n        .tc-dashboard-empty-state h3 {\n            font-size:17px; font-weight:700;\n            margin-bottom:8px; color:var(--db-ink);\n        }\n\n        \/* Login gate *\/\n        .tc-login-gate {\n            text-align:center; padding:70px 20px;\n            background:var(--db-card); border-radius:20px;\n            border:2px dashed var(--db-border);\n            max-width:480px; margin:40px auto;\n        }\n        .tc-login-icon { font-size:52px; margin-bottom:14px; }\n\n        \/* \u2500\u2500 MOBILE bottom nav \u2500\u2500 *\/\n        .tc-db-mobile-topbar {\n            display:none;\n            background:var(--db-sidebar);\n            padding:14px 20px;\n            align-items:center; gap:12px;\n        }\n        .tc-db-mobile-topbar .tc-db-brand-name { display:none; }\n        .tc-db-mobile-topbar img { height:26px; width:auto; filter:brightness(0) invert(1); }\n        .tc-db-mobile-topbar img.tc-logo-color { filter:none; }\n        .tc-db-mobile-profile {\n            margin-left:auto;\n            display:flex; align-items:center; gap:8px;\n        }\n        .tc-db-bottom-nav {\n            display:none;\n            position:fixed; bottom:0; left:0; right:0;\n            background:var(--db-sidebar);\n            border-top:1px solid rgba(255,255,255,.08);\n            z-index:9999;\n            padding:0 4px;\n            justify-content:space-around;\n            align-items:stretch;\n            height:var(--db-bottom-h);\n            box-shadow:0 -4px 20px rgba(10,22,40,.3);\n        }\n        .tc-db-bn-item {\n            display:flex; flex-direction:column;\n            align-items:center; justify-content:center;\n            gap:3px; flex:1; cursor:pointer;\n            color:rgba(255,255,255,.45);\n            font-size:10px; font-weight:600;\n            border:none; background:none;\n            transition:color .15s; padding:6px 2px;\n            text-decoration:none;\n        }\n        .tc-db-bn-item span:first-child { font-size:20px; line-height:1; }\n        .tc-db-bn-item.active { color:var(--db-green); }\n        .tc-db-bn-item:hover { color:rgba(255,255,255,.8); }\n\n        \/* \u2500\u2500 Responsive \u2500\u2500 *\/\n        @media (max-width:768px) {\n            .tc-dashboard-wrap {\n                flex-direction:column;\n                border-radius:0;\n                min-height:100vh;\n                padding-bottom:var(--db-bottom-h);\n            }\n            .tc-dashboard-sidebar { display:none; }\n            .tc-db-mobile-topbar { display:flex; }\n            .tc-db-bottom-nav { display:flex; }\n            .tc-dashboard-main { padding:20px 16px; }\n            .tc-dashboard-panel-header h1 { font-size:19px; }\n            .tc-dashboard-kpi-grid { grid-template-columns:1fr 1fr; gap:12px; }\n            .tc-dashboard-kpi { padding:16px; }\n            .tc-kpi-create { gap:6px!important; }\n            .tc-dashboard-kpi-icon { width:40px; height:40px; font-size:20px; }\n            .tc-dashboard-kpi-value { font-size:20px; }\n            .tc-dashboard-kpi-label { font-size:12px; }\n            .tc-dashboard-campaign-row { padding:12px 16px; }\n            .tc-dashboard-campaign-thumb { width:42px; height:42px; }\n            .tc-dashboard-section-head { padding:14px 16px; }\n        }\n        @media (max-width:400px) {\n            .tc-dashboard-kpi-grid { grid-template-columns:1fr; }\n        }\n\n        \/* ===== FORMULAIRE CREATION PAS A PAS ===== *\/\n        :root {\n            --green:#0d4f3c; --green-mid:#1a6b52; --green-light:#e8f5f0;\n            --blush:#fbeee8; --blush-dark:#f5ddd3; --sand:#faf8f5;\n            --ink:#1a1a1a; --muted:#6b7280; --border:#e5e0d8; --white:#fff;\n            --ff-display:'Playfair Display',Georgia,serif;\n            --ff-body:'DM Sans',system-ui,sans-serif;\n        }\n        .cc-page { display:flex; flex-direction:column; background:var(--sand); border-radius:20px; overflow:hidden; }\n        .cc-left { padding:28px 32px; }\n        .cc-logo { font-family:var(--ff-display); font-size:22px; color:var(--green); margin-bottom:32px; display:flex; align-items:center; gap:8px; }\n        .cc-logo-dot { width:8px; height:8px; background:var(--green); border-radius:50%; }\n        .cc-back { display:inline-flex; align-items:center; gap:8px; font-size:14px; color:var(--green); margin-bottom:20px; font-weight:500; cursor:pointer; background:none; border:none; font-family:var(--ff-body); transition:gap .2s; padding:0; }\n        .cc-back:hover { gap:13px; }\n        .cc-main-title { font-family:var(--ff-display); font-size:36px; font-weight:800; color:var(--ink); margin-bottom:32px; line-height:1.18; }\n        .cc-steps { display:flex; align-items:center; margin-bottom:36px; }\n        .cc-step-item { display:flex; flex-direction:column; align-items:center; flex:1; position:relative; }\n        .cc-step-item:not(:last-child)::after { content:''; position:absolute; top:16px; left:50%; width:100%; height:2px; background:var(--border); z-index:0; transition:background .4s; }\n        .cc-step-item.done:not(:last-child)::after { background:var(--green); }\n        .cc-step-dot { width:32px; height:32px; border-radius:50%; border:2px solid var(--border); background:white; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; color:var(--muted); z-index:1; position:relative; transition:all .3s; }\n        .cc-step-item.active .cc-step-dot { border-color:var(--green); color:var(--green); box-shadow:0 0 0 5px rgba(13,79,60,.1); }\n        .cc-step-item.done .cc-step-dot { background:var(--green); border-color:var(--green); color:white; }\n        .cc-step-label { font-size:10px; font-weight:700; color:var(--muted); margin-top:6px; letter-spacing:.05em; text-transform:uppercase; }\n        .cc-step-item.active .cc-step-label,.cc-step-item.done .cc-step-label { color:var(--green); }\n        .cc-screen { display:none; animation:fs .3s ease; }\n        .cc-screen.active { display:block; }\n        @keyframes fs { from{opacity:0;transform:translateX(14px)} to{opacity:1;transform:none} }\n        .cc-sec { font-size:15px; font-weight:700; color:var(--ink); margin-bottom:16px; padding-bottom:10px; border-bottom:2px solid var(--border); display:flex; align-items:center; gap:8px; }\n        .cc-cat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; margin-bottom:24px; }\n        .cc-cat-card { cursor:pointer; border-radius:14px; overflow:hidden; border:2.5px solid transparent; transition:all .2s; background:white; box-shadow:0 2px 8px rgba(0,0,0,.05); }\n        .cc-cat-card:hover { transform:translateY(-3px); box-shadow:0 8px 20px rgba(0,0,0,.1); }\n        .cc-cat-card.selected { border-color:var(--green); box-shadow:0 0 0 3px rgba(13,79,60,.13); }\n        .cc-cat-img { width:100%; aspect-ratio:4\/3; background:var(--blush-dark); display:flex; align-items:center; justify-content:center; font-size:32px; transition:transform .25s; }\n        .cc-cat-card:hover .cc-cat-img { transform:scale(1.06); }\n        .cc-cat-name { padding:9px 11px; font-size:12px; font-weight:700; color:var(--ink); line-height:1.3; }\n        .cc-cat-card.selected .cc-cat-name { color:var(--green); }\n        .cc-field { margin-bottom:18px; }\n        .cc-field label { display:block; font-size:13px; font-weight:600; color:var(--ink); margin-bottom:7px; }\n        .cc-field label span { color:#e53e3e; margin-left:2px; }\n        .cc-field input,.cc-field textarea,.cc-field select { width:100%; padding:12px 14px; border:1.5px solid var(--border); border-radius:12px; font-size:14px; font-family:var(--ff-body); color:var(--ink); background:white; outline:none; transition:all .2s; }\n        .cc-field input:focus,.cc-field textarea:focus,.cc-field select:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(13,79,60,.08); }\n        .cc-field small { display:block; font-size:11px; color:var(--muted); margin-top:5px; }\n        .cc-ferr { font-size:12px; color:#e53e3e; margin-top:4px; display:none; }\n        .cc-field-row { display:flex; flex-direction:row; gap:13px; }\n        .cc-field-row > .cc-field { flex:1; min-width:0; }\n        .cc-cur { position:relative; }\n        .cc-cur span { position:absolute; left:14px; top:50%; transform:translateY(-50%); font-size:11px; font-weight:700; color:var(--muted); pointer-events:none; }\n        .cc-cur input { padding-left:44px; }\n        .cc-char { text-align:right; font-size:11px; color:var(--muted); margin-top:4px; }\n        .cc-upload-zone { border:2px dashed var(--border); border-radius:14px; padding:24px; text-align:center; cursor:pointer; transition:all .2s; background:var(--sand); }\n        .cc-upload-zone:hover { border-color:var(--green); background:var(--green-light); }\n        .cc-upload-zone.filled { border-style:solid; border-color:var(--green); }\n        .cc-up-icon { font-size:32px; display:block; margin-bottom:8px; }\n        .cc-upload-zone strong { display:block; font-size:13px; font-weight:600; margin-bottom:4px; }\n        .cc-up-prev { width:100%; border-radius:10px; margin-top:10px; display:none; max-height:200px; object-fit:cover; }\n        .cc-id-zone { padding:16px 12px; }\n        .cc-id-zone .cc-up-prev { max-height:120px; }\n        .cc-section-title { font-size:13px; font-weight:700; color:var(--green); text-transform:uppercase; letter-spacing:.05em; padding:10px 0 6px; border-bottom:2px solid var(--green-light); margin-bottom:18px; }\n        .cc-tips { background:#fffbf0; border:1.5px solid #f6d860; border-radius:14px; padding:14px 17px; }\n        .cc-tips h4 { font-size:13px; font-weight:700; color:#92400e; margin-bottom:8px; }\n        .cc-tips li { font-size:12px; color:#78350f; padding-left:16px; margin-bottom:4px; position:relative; list-style:none; }\n        .cc-tips li::before { content:\"\u2713\"; position:absolute; left:0; color:#d97706; }\n        .cc-nav { display:flex; justify-content:space-between; align-items:center; margin-top:24px; padding-top:20px; border-top:1.5px solid var(--border); }\n        .cc-nav-r { display:flex; align-items:center; gap:12px; }\n        .cc-ctr { font-size:12px; color:var(--muted); font-weight:600; }\n        .btn-next { background:var(--green); color:white; border:none; border-radius:40px; padding:12px 28px; font-size:14px; font-weight:700; cursor:pointer; font-family:var(--ff-body); transition:all .2s; display:flex; align-items:center; gap:8px; }\n        .btn-next:hover { background:var(--green-mid); transform:translateY(-2px); box-shadow:0 8px 20px rgba(13,79,60,.22); }\n        .btn-next:disabled { background:#cbd5e1; cursor:not-allowed; transform:none; box-shadow:none; }\n        .btn-back { background:none; border:1.5px solid var(--border); border-radius:40px; padding:10px 20px; font-size:13px; font-weight:600; color:var(--muted); cursor:pointer; font-family:var(--ff-body); transition:all .2s; }\n        .btn-back:hover { border-color:var(--ink); color:var(--ink); }\n        \/* \u00c9tape 4 : compte *\/\n        .cc-recap { display:flex; gap:14px; align-items:center; background:var(--green); color:white; border-radius:16px; padding:14px 18px; margin-bottom:24px; }\n        .cc-recap-img { width:60px; height:60px; border-radius:12px; flex-shrink:0; background:rgba(255,255,255,.15); display:flex; align-items:center; justify-content:center; font-size:26px; overflow:hidden; }\n        .cc-recap-img img { width:100%; height:100%; object-fit:cover; }\n        .cc-recap-info h4 { font-family:var(--ff-display); font-size:15px; margin-bottom:3px; line-height:1.3; }\n        .cc-recap-info p { font-size:12px; opacity:.75; }\n        .cc-recap-badge { margin-left:auto; background:rgba(255,255,255,.18); color:white; font-size:10px; font-weight:700; padding:4px 10px; border-radius:20px; white-space:nowrap; text-transform:capitalize; }\n        .cc-s4-intro { font-size:14px; color:var(--muted); margin-bottom:20px; line-height:1.65; background:var(--green-light); padding:13px 15px; border-radius:12px; border-left:3px solid var(--green); }\n        .cc-s4-intro strong { color:var(--green); }\n        .cc-tabs { display:flex; background:#f1f5f9; border-radius:40px; padding:4px; gap:2px; margin-bottom:22px; }\n        .cc-tab { flex:1; padding:10px 6px; border:none; background:transparent; border-radius:40px; font-size:12px; font-weight:700; color:var(--muted); cursor:pointer; font-family:var(--ff-body); transition:all .2s; display:flex; align-items:center; justify-content:center; gap:5px; }\n        .cc-tab.active { background:white; color:var(--ink); box-shadow:0 2px 8px rgba(0,0,0,.1); }\n        .cc-view { display:none; }\n        .cc-view.active { display:block; animation:fs .25s ease; }\n        .cc-soc-btn { display:flex; align-items:center; gap:14px; width:100%; padding:14px 16px; margin-bottom:11px; border-radius:14px; border:1.5px solid var(--border); background:white; font-size:14px; font-weight:600; color:var(--ink); cursor:pointer; font-family:var(--ff-body); transition:all .2s; text-align:left; }\n        .cc-soc-btn:hover { border-color:var(--green); background:var(--green-light); transform:translateX(5px); }\n        .cc-soc-ico { width:42px; height:42px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }\n        .cc-soc-gg .cc-soc-ico { background:#fff3f3; }\n        .cc-soc-fb .cc-soc-ico { background:#eff4ff; }\n        .cc-soc-txt strong { display:block; font-size:14px; }\n        .cc-soc-txt span { font-size:11px; color:var(--muted); font-weight:400; }\n        .cc-or { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:13px; margin:14px 0; }\n        .cc-or::before,.cc-or::after { content:''; flex:1; height:1px; background:var(--border); }\n        .cc-soc-email-btn { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; padding:13px; border-radius:14px; border:1.5px solid var(--green); background:var(--green-light); color:var(--green); font-size:14px; font-weight:700; cursor:pointer; font-family:var(--ff-body); transition:all .2s; }\n        .cc-soc-email-btn:hover { background:var(--green); color:white; }\n        .cc-mf { margin-bottom:11px; }\n        .cc-mf input { width:100%; padding:12px 14px; border:1.5px solid var(--border); border-radius:12px; font-size:14px; font-family:var(--ff-body); outline:none; transition:all .2s; }\n        .cc-mf input:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(13,79,60,.08); }\n        .cc-mf-2 { display:grid; grid-template-columns:1fr 1fr; gap:9px; }\n        .cc-ph-row { display:flex; gap:8px; align-items:stretch; }\n        .cc-ph-flag { width:110px; min-width:90px; max-width:110px; flex-shrink:0; padding:12px 28px 12px 10px; border:1.5px solid var(--border); border-radius:12px; font-size:13px; font-family:var(--ff-body); background:var(--sand); outline:none; appearance:none; -webkit-appearance:none; cursor:pointer; background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='11' height='11' fill='none' stroke='%236b7280' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpolyline points='6 9 12 15 18 9'\/%3E%3C\/svg%3E\"); background-repeat:no-repeat; background-position:right 8px center; transition:border-color .2s; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }\n        .cc-ph-flag:focus { border-color:var(--green); }\n        .cc-ph-row input[type=\"tel\"] { flex:1; min-width:0; }\n        .cc-pw-wrap { position:relative; }\n        .cc-pw-wrap input { padding-right:42px; width:100%; padding:12px 42px 12px 14px; border:1.5px solid var(--border); border-radius:12px; font-size:14px; font-family:var(--ff-body); outline:none; transition:all .2s; }\n        .cc-pw-wrap input:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(13,79,60,.08); }\n        .cc-pw-eye { position:absolute; right:11px; top:50%; transform:translateY(-50%); background:none; border:none; cursor:pointer; font-size:15px; opacity:.5; transition:opacity .2s; }\n        .cc-pw-eye:hover { opacity:1; }\n        .cc-merr { font-size:12px; color:#e53e3e; display:none; padding:10px 13px; background:#fff5f5; border-radius:10px; border:1px solid #fed7d7; margin-bottom:10px; line-height:1.55; }\n        .cc-submit { width:100%; padding:14px; border:none; border-radius:40px; background:var(--green); color:white; font-size:15px; font-weight:700; cursor:pointer; font-family:var(--ff-body); transition:all .2s; display:flex; align-items:center; justify-content:center; gap:10px; margin-top:4px; }\n        .cc-submit:hover { background:var(--green-mid); transform:translateY(-2px); box-shadow:0 8px 24px rgba(13,79,60,.25); }\n        .cc-submit:disabled { background:#cbd5e1; cursor:not-allowed; transform:none; box-shadow:none; }\n        .cc-mlink { text-align:center; font-size:13px; color:var(--muted); margin-top:12px; }\n        .cc-mlink a { color:var(--green); font-weight:600; cursor:pointer; }\n        .cc-trust { display:flex; align-items:center; justify-content:center; gap:6px; font-size:11px; color:var(--muted); margin-top:12px; }\n        \/* Succ\u00e8s *\/\n        .cc-success { text-align:center; padding:12px 0 4px; animation:fs .4s ease; }\n        .cc-suc-icon { font-size:68px; display:block; margin-bottom:14px; animation:pop .5s ease; }\n        @keyframes pop { 0%{transform:scale(0)} 70%{transform:scale(1.18)} 100%{transform:scale(1)} }\n        .cc-success h3 { font-family:var(--ff-display); font-size:26px; margin-bottom:10px; color:var(--ink); }\n        .cc-success p { font-size:14px; color:var(--muted); margin-bottom:24px; line-height:1.65; max-width:380px; margin-left:auto; margin-right:auto; }\n        .cc-withdraw { background:var(--sand); border:1.5px solid var(--border); border-radius:14px; padding:16px 18px; margin-bottom:20px; text-align:left; }\n        .cc-withdraw h4 { font-size:13px; font-weight:700; color:var(--ink); margin-bottom:12px; }\n        .cc-wstep { display:flex; gap:11px; margin-bottom:9px; align-items:flex-start; }\n        .cc-wnum { width:23px; height:23px; min-width:23px; background:var(--green); color:white; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; }\n        .cc-wstep span { font-size:13px; color:var(--muted); padding-top:3px; line-height:1.5; }\n        .cc-share-strip { display:flex; gap:9px; justify-content:center; flex-wrap:wrap; margin-bottom:18px; }\n        .cc-sp { display:flex; align-items:center; gap:7px; padding:10px 18px; border-radius:40px; font-size:13px; font-weight:700; border:none; cursor:pointer; font-family:var(--ff-body); transition:all .2s; }\n        .cc-sp:hover { transform:translateY(-2px); }\n        .cc-sp-wa { background:#25D366; color:white; }\n        .cc-sp-fb { background:#1877F2; color:white; }\n        .cc-sp-cp { background:white; color:var(--ink); border:1.5px solid var(--border); }\n        .cc-suc-cta { width:100%; padding:14px; background:var(--green); color:white; border:none; border-radius:40px; font-size:15px; font-weight:700; cursor:pointer; font-family:var(--ff-body); transition:all .2s; max-width:340px; margin:0 auto; display:block; }\n        .cc-suc-cta:hover { background:var(--green-mid); }\n        \/* Toast *\/\n        .cc-toast { position:fixed; bottom:28px; left:50%; transform:translateX(-50%) translateY(80px); background:var(--ink); color:white; padding:10px 22px; border-radius:40px; font-size:13px; font-weight:600; z-index:9999; transition:transform .3s; white-space:nowrap; pointer-events:none; }\n        .cc-toast.show { transform:translateX(-50%) translateY(0); }\n        @keyframes spin { to{transform:rotate(360deg)} }\n\n        \/* ===== DATEPICKER RANGE ===== *\/\n        .cc-datepicker-wrap { position:relative; }\n        .cc-daterange-block { display:flex; align-items:center; border:1.5px solid var(--border); border-radius:12px; overflow:hidden; background:white; cursor:pointer; transition:border-color .2s; }\n        .cc-daterange-block:hover,.cc-daterange-block.active { border-color:var(--green); box-shadow:0 0 0 3px rgba(13,79,60,.08); }\n        .cc-daterange-cell { flex:1; padding:12px 16px; transition:background .15s; }\n        .cc-daterange-cell:hover,.cc-daterange-cell.selected { background:var(--green-light); }\n        .cc-daterange-cell:first-child { border-right:1.5px solid var(--border); }\n        .cc-daterange-label { display:block; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin-bottom:3px; }\n        .cc-daterange-val { display:block; font-size:14px; font-weight:600; color:var(--ink); }\n        .cc-daterange-val.placeholder { color:var(--muted); font-weight:400; }\n        .cc-daterange-arrow { padding:0 10px; color:var(--muted); flex-shrink:0; }\n        .cc-daterange-clear { background:none; border:none; cursor:pointer; color:var(--muted); padding:0 12px; flex-shrink:0; display:flex; align-items:center; }\n        .cc-daterange-clear:hover { color:#e53e3e; }\n        \/* Calendrier popup *\/\n        .cc-calendar-popup { position:absolute; top:calc(100% + 8px); left:0; right:0; background:white; border:1.5px solid var(--border); border-radius:16px; box-shadow:0 12px 32px rgba(0,0,0,.12); z-index:1000; padding:16px; animation:fs .2s ease; }\n        .cc-cal-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }\n        .cc-cal-nav { background:none; border:1.5px solid var(--border); border-radius:8px; width:32px; height:32px; cursor:pointer; font-size:20px; display:flex; align-items:center; justify-content:center; color:var(--ink); transition:all .2s; line-height:1; }\n        .cc-cal-nav:hover { border-color:var(--green); color:var(--green); }\n        .cc-cal-month-label { font-size:15px; font-weight:700; color:var(--ink); text-transform:capitalize; }\n        .cc-cal-days-head { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; margin-bottom:4px; }\n        .cc-cal-days-head span { text-align:center; font-size:11px; font-weight:700; color:var(--muted); padding:4px 0; text-transform:uppercase; }\n        .cc-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }\n        .cc-cal-day { aspect-ratio:1; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:500; border-radius:8px; cursor:pointer; color:var(--ink); transition:all .15s; border:1.5px solid transparent; }\n        .cc-cal-day:hover:not(.disabled):not(.empty) { background:var(--green-light); border-color:var(--green); color:var(--green); }\n        .cc-cal-day.today { border-color:var(--green); color:var(--green); font-weight:700; }\n        .cc-cal-day.selected-start,.cc-cal-day.selected-end { background:var(--green); color:white; border-color:var(--green); font-weight:700; }\n        .cc-cal-day.in-range { background:var(--green-light); border-radius:0; }\n        .cc-cal-day.selected-start { border-radius:8px 0 0 8px; }\n        .cc-cal-day.selected-end { border-radius:0 8px 8px 0; }\n        .cc-cal-day.selected-start.selected-end { border-radius:8px; }\n        .cc-cal-day.disabled { color:#d1d5db; cursor:not-allowed; }\n        .cc-cal-day.empty { cursor:default; }\n        .cc-cal-hint { text-align:center; font-size:12px; color:var(--muted); margin-top:10px; padding-top:10px; border-top:1px solid var(--border); }\n        @media(max-width:900px){\n            .tc-dashboard-wrap { flex-direction:column; }\n            .tc-dashboard-sidebar { width:100%; flex-direction:row; flex-wrap:wrap; padding:16px; }\n            .tc-dashboard-nav { flex-direction:row; flex-wrap:wrap; gap:8px; }\n            .tc-dashboard-profile { display:none; }\n            .tc-dashboard-main { padding:20px; }\n            .cc-cat-grid { grid-template-columns:repeat(2,1fr); }\n        }\n        @media(max-width:600px){\n            .tc-dashboard-kpi-grid { grid-template-columns:1fr 1fr; }\n            .tc-dashboard-panel-header { flex-direction:column; align-items:flex-start; }\n            .cc-left { padding:20px 16px; }\n            .cc-main-title { font-size:26px; margin-bottom:20px; }\n            .cc-field-row { flex-direction:column; gap:0; }\n            .cc-field-row > .cc-field { width:100%; }\n        }\n        @media(max-width:500px){\n            .cc-mf-2 { grid-template-columns:1fr; }\n            .cc-tab span { display:none; }\n            .cc-share-strip { gap:8px; }\n        }\n        @media(max-width:480px){\n            .tc-phone-input-international { flex-direction:column !important; gap:10px !important; }\n            .tc-country-select { width:100% !important; max-width:100% !important; }\n            .tc-phone-number { width:100% !important; }\n            .tc-auth-container { padding:0 16px; margin:30px auto; }\n            .tc-auth-card { padding:20px; }\n            .tc-auth-header h2 { font-size:24px; }\n            .tc-form-row { grid-template-columns:1fr; gap:12px; }\n            \/* Wizard mobile *\/\n            .cc-left { padding:16px 12px; }\n            .cc-main-title { font-size:22px; margin-bottom:16px; }\n            .cc-steps { margin-bottom:20px; }\n            .cc-step-label { font-size:9px; }\n            .cc-section-title { font-size:12px; }\n            .cc-cat-grid { grid-template-columns:1fr 1fr; gap:8px; }\n            .cc-field { margin-bottom:14px; }\n            .cc-field input,.cc-field textarea,.cc-field select { font-size:16px; \/* \u00e9vite zoom iOS *\/ }\n            .cc-ph-row { flex-direction:row; gap:6px; }\n            .cc-ph-flag { width:80px; min-width:70px; max-width:90px; font-size:12px; }\n            .cc-upload-zone { padding:16px 12px; }\n            .cc-nav { flex-direction:column-reverse; gap:10px; }\n            .cc-nav-r { width:100%; justify-content:flex-end; }\n            .btn-next,.btn-back { width:100%; justify-content:center; }\n            .cc-tabs { gap:1px; }\n            .cc-recap { flex-wrap:wrap; gap:10px; }\n            .cc-recap-badge { margin-left:0; }\n        }\n        <\/style>\n                <div class=\"cc-page\" id=\"cc-wizard-pub\">\n          <div class=\"cc-left\">\n                        <button class=\"cc-back\" id=\"cc-wizard-pub-back\" style=\"display:none;\">\n              <svg width=\"17\" height=\"17\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 8 8 12 12 16\"\/><line x1=\"16\" y1=\"12\" x2=\"8\" y2=\"12\"\/><\/svg>\n              Retour\n            <\/button>\n            <h1 id=\"cc-wizard-pub-title\" class=\"cc-main-title\">Cr\u00e9er une cagnotte<\/h1>\n\n            <!-- STEPS INDICATOR (uniquement pour non-connect\u00e9s : affiche la progression vers l'\u00e9tape Compte) -->\n                        <div class=\"cc-steps\" id=\"cc-wizard-pub-steps\">\n              <div class=\"cc-step-item active\" data-s=\"1\"><div class=\"cc-step-dot\">1<\/div><span class=\"cc-step-label\">Cagnotte<\/span><\/div>\n              <div class=\"cc-step-item\" data-s=\"2\"><div class=\"cc-step-dot\">2<\/div><span class=\"cc-step-label\">Compte<\/span><\/div>\n            <\/div>\n            \n            <!-- \u00c9TAPE 1 : Formulaire complet (cat\u00e9gorie + b\u00e9n\u00e9ficiaire + infos + visuel) -->\n            <div class=\"cc-screen active\" id=\"cc-wizard-pub-s1\">\n\n              <!-- \u2500\u2500 SECTION : Cagnotte \u2500\u2500 -->\n              <div class=\"cc-section-title\"><svg width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg> La cagnotte<\/div>\n\n              <div class=\"cc-field\">\n                <label>Type de projet <span>*<\/span><\/label>\n                <select id=\"cc-wizard-pub-type-select\">\n                  <option value=\"\">\u2014 Choisir un type \u2014<\/option>\n                  <option value=\"sante\">Sant\u00e9<\/option>\n                  <option value=\"association\">Association \/ ONG<\/option>\n                  <option value=\"evenement\">\u00c9v\u00e9nement<\/option>\n                  <option value=\"solidaire\">Solidaire<\/option>\n                  <option value=\"autre\">Autre<\/option>\n                <\/select>\n                <p id=\"cc-wizard-pub-cat-err\" style=\"color:#e53e3e;font-size:13px;display:none;margin-top:6px;display:flex;align-items:center;gap:4px;\"><svg width=\"13\" height=\"13\" fill=\"none\" stroke=\"#e53e3e\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"\/><line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\"\/><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"\/><\/svg> Veuillez choisir un type de projet.<\/p>\n              <\/div>\n\n              <div class=\"cc-field\">\n                <label>Titre de la cagnotte <span>*<\/span><\/label>\n                <input type=\"text\" id=\"cc-wizard-pub-title-inp\" placeholder=\"Ex : Op\u00e9ration chirurgicale de Marie\u2026\" maxlength=\"80\">\n                <div class=\"cc-char\"><span id=\"cc-wizard-pub-tc\">0<\/span> \/ 80<\/div>\n                <div class=\"cc-ferr\" id=\"cc-wizard-pub-terr\">Le titre est requis.<\/div>\n              <\/div>\n\n              <div class=\"cc-field\">\n                <label>Objectif (FCFA)<\/label>\n                <div class=\"cc-cur\"><span>CFA<\/span><input type=\"number\" id=\"cc-wizard-pub-goal\" placeholder=\"500 000\" min=\"1000\" step=\"1000\"><\/div>\n                <small>Min. 1 000 \u00b7 Vide = sans limite<\/small>\n                <div class=\"cc-ferr\" id=\"cc-wizard-pub-gerr\">Minimum 1 000 FCFA.<\/div>\n              <\/div>\n\n              <div class=\"cc-field\">\n                <label>Dur\u00e9e de la cagnotte <small style=\"font-weight:400;\">(optionnel)<\/small><\/label>\n                <div class=\"cc-datepicker-wrap\" id=\"cc-wizard-pub-datepicker-wrap\">\n                  <!-- Bloc de s\u00e9lection -->\n                  <div class=\"cc-daterange-block\" id=\"cc-wizard-pub-daterange-block\">\n                    <div class=\"cc-daterange-cell\" id=\"cc-wizard-pub-start-cell\" data-target=\"start\">\n                      <span class=\"cc-daterange-label\">D\u00e9but<\/span>\n                      <span class=\"cc-daterange-val\" id=\"cc-wizard-pub-start-display\">Choisir<\/span>\n                    <\/div>\n                    <div class=\"cc-daterange-arrow\">\n                      <svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M5 12h14\"\/><path d=\"m12 5 7 7-7 7\"\/><\/svg>\n                    <\/div>\n                    <div class=\"cc-daterange-cell\" id=\"cc-wizard-pub-end-cell\" data-target=\"end\">\n                      <span class=\"cc-daterange-label\">Fin<\/span>\n                      <span class=\"cc-daterange-val\" id=\"cc-wizard-pub-end-display\">Choisir<\/span>\n                    <\/div>\n                    <button type=\"button\" class=\"cc-daterange-clear\" id=\"cc-wizard-pub-clear-dates\" style=\"display:none;\" title=\"Effacer les dates\">\n                      <svg width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg>\n                    <\/button>\n                  <\/div>\n                  <!-- Calendrier popup -->\n                  <div class=\"cc-calendar-popup\" id=\"cc-wizard-pub-calendar\" style=\"display:none;\">\n                    <div class=\"cc-cal-header\">\n                      <button type=\"button\" class=\"cc-cal-nav\" id=\"cc-wizard-pub-cal-prev\">&#8249;<\/button>\n                      <span class=\"cc-cal-month-label\" id=\"cc-wizard-pub-cal-label\"><\/span>\n                      <button type=\"button\" class=\"cc-cal-nav\" id=\"cc-wizard-pub-cal-next\">&#8250;<\/button>\n                    <\/div>\n                    <div class=\"cc-cal-days-head\">\n                      <span>Lu<\/span><span>Ma<\/span><span>Me<\/span><span>Je<\/span><span>Ve<\/span><span>Sa<\/span><span>Di<\/span>\n                    <\/div>\n                    <div class=\"cc-cal-grid\" id=\"cc-wizard-pub-cal-grid\"><\/div>\n                    <div class=\"cc-cal-hint\" id=\"cc-wizard-pub-cal-hint\">S\u00e9lectionnez la date de d\u00e9but<\/div>\n                  <\/div>\n                <\/div>\n                <!-- Champs cach\u00e9s pour la validation -->\n                <input type=\"hidden\" id=\"cc-wizard-pub-start\">\n                <input type=\"hidden\" id=\"cc-wizard-pub-end\">\n                <small>Laissez vide pour une dur\u00e9e illimit\u00e9e<\/small>\n              <\/div>\n              <div class=\"cc-ferr\" id=\"cc-wizard-pub-date-err\">La date de fin doit \u00eatre apr\u00e8s la date de d\u00e9but.<\/div>\n\n\n              <div class=\"cc-field\">\n                <label>Description du projet<\/label>\n                <!-- Quill toolbar -->\n                <div id=\"cc-wizard-pub-quill-toolbar\" style=\"border:1.5px solid var(--border);border-bottom:none;border-radius:12px 12px 0 0;background:#faf8f5;\">\n                  <span class=\"ql-formats\">\n                    <select class=\"ql-header\"><option selected><\/option><option value=\"1\">Titre 1<\/option><option value=\"2\">Titre 2<\/option><\/select>\n                  <\/span>\n                  <span class=\"ql-formats\">\n                    <button class=\"ql-bold\"><\/button>\n                    <button class=\"ql-italic\"><\/button>\n                    <button class=\"ql-underline\"><\/button>\n                  <\/span>\n                  <span class=\"ql-formats\">\n                    <button class=\"ql-list\" value=\"ordered\"><\/button>\n                    <button class=\"ql-list\" value=\"bullet\"><\/button>\n                  <\/span>\n                  <span class=\"ql-formats\">\n                    <button class=\"ql-link\"><\/button>\n                    <button class=\"ql-image\"><\/button>\n                  <\/span>\n                  <span class=\"ql-formats\">\n                    <button class=\"ql-blockquote\"><\/button>\n                    <select class=\"ql-align\"><option selected><\/option><option value=\"center\"><\/option><option value=\"right\"><\/option><\/select>\n                  <\/span>\n                  <span class=\"ql-formats\">\n                    <button class=\"ql-clean\"><\/button>\n                  <\/span>\n                <\/div>\n                <!-- Quill editor -->\n                <div id=\"cc-wizard-pub-quill-editor\" style=\"border:1.5px solid var(--border);border-radius:0 0 12px 12px;min-height:180px;font-size:14px;font-family:var(--ff-body);background:white;\"><\/div>\n                <!-- Champ cach\u00e9 pour stocker le HTML -->\n                <input type=\"hidden\" id=\"cc-wizard-pub-desc\">\n                <small>D\u00e9crivez votre projet, mettez en forme votre texte et ajoutez des images.<\/small>\n              <\/div>\n\n              <!-- \u2500\u2500 SECTION : B\u00e9n\u00e9ficiaire \u2500\u2500 -->\n              <div class=\"cc-section-title\" style=\"margin-top:28px;\"><svg width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"\/><circle cx=\"12\" cy=\"7\" r=\"4\"\/><\/svg> B\u00e9n\u00e9ficiaire<\/div>\n\n              <div class=\"cc-field\">\n                <label>Type de b\u00e9n\u00e9ficiaire <span>*<\/span><\/label>\n                <select id=\"cc-wizard-pub-ben-type\">\n                  <option value=\"\">\u2014 Choisir \u2014<\/option>\n                  <option value=\"physique\">Personne physique<\/option>\n                  <option value=\"morale\">Personne morale (structure, ONG, entreprise\u2026)<\/option>\n                <\/select>\n                <div class=\"cc-ferr\" id=\"cc-wizard-pub-ben-type-err\">Veuillez choisir un type de b\u00e9n\u00e9ficiaire.<\/div>\n              <\/div>\n\n              <!-- Personne physique -->\n              <div id=\"cc-wizard-pub-ben-physique\" style=\"display:none;\">\n                <div class=\"cc-field\">\n                  <label>Nom et pr\u00e9noms <span>*<\/span><\/label>\n                  <input type=\"text\" id=\"cc-wizard-pub-ben-name\" placeholder=\"Ex : OU\u00c9DRAOGO Jean Baptiste\">\n                  <div class=\"cc-ferr\" id=\"cc-wizard-pub-ben-name-err\">Le nom et pr\u00e9noms sont requis.<\/div>\n                <\/div>\n\n                <div class=\"cc-field\">\n                  <label>Pi\u00e8ce d'identit\u00e9 <span>*<\/span><\/label>\n                  <select id=\"cc-wizard-pub-id-type\">\n                    <option value=\"\">\u2014 Choisir le type de pi\u00e8ce \u2014<\/option>\n                    <option value=\"cnib\">CNIB (Carte Nationale d'Identit\u00e9 Burkinab\u00e8)<\/option>\n                    <option value=\"passport\">Passeport<\/option>\n                  <\/select>\n                  <div class=\"cc-ferr\" id=\"cc-wizard-pub-id-type-err\">Veuillez choisir un type de pi\u00e8ce.<\/div>\n                <\/div>\n\n                <!-- CNIB : Recto + Verso -->\n                <div id=\"cc-wizard-pub-cnib-block\" style=\"display:none;\">\n                  <div class=\"cc-field-row\">\n                    <div class=\"cc-field\">\n                      <label>CNIB \u2014 Recto <span>*<\/span><\/label>\n                      <div class=\"cc-upload-zone cc-id-zone\" id=\"cc-wizard-pub-cnib-recto-zone\">\n                        <input type=\"file\" id=\"cc-wizard-pub-cnib-recto\" accept=\"image\/*,application\/pdf\" style=\"display:none\">\n                        <div id=\"cc-wizard-pub-cnib-recto-ph\">\n                          <span class=\"cc-up-icon\"><svg width=\"28\" height=\"28\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"5\" width=\"20\" height=\"14\" rx=\"2\"\/><circle cx=\"8\" cy=\"12\" r=\"2\"\/><path d=\"M13 10h4M13 14h4\"\/><\/svg><\/span>\n                          <strong style=\"font-size:13px;\">Recto<\/strong>\n                          <small>Photo ou scan<\/small>\n                        <\/div>\n                        <img id=\"cc-wizard-pub-cnib-recto-prev\" class=\"cc-up-prev\" alt=\"\" style=\"display:none;\">\n                      <\/div>\n                      <div class=\"cc-ferr\" id=\"cc-wizard-pub-cnib-recto-err\">Le recto de la CNIB est requis.<\/div>\n                    <\/div>\n                    <div class=\"cc-field\">\n                      <label>CNIB \u2014 Verso <span>*<\/span><\/label>\n                      <div class=\"cc-upload-zone cc-id-zone\" id=\"cc-wizard-pub-cnib-verso-zone\">\n                        <input type=\"file\" id=\"cc-wizard-pub-cnib-verso\" accept=\"image\/*,application\/pdf\" style=\"display:none\">\n                        <div id=\"cc-wizard-pub-cnib-verso-ph\">\n                          <span class=\"cc-up-icon\"><svg width=\"28\" height=\"28\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"5\" width=\"20\" height=\"14\" rx=\"2\"\/><path d=\"M5 10h4M5 14h6M5 17h8\"\/><\/svg><\/span>\n                          <strong style=\"font-size:13px;\">Verso<\/strong>\n                          <small>Photo ou scan<\/small>\n                        <\/div>\n                        <img id=\"cc-wizard-pub-cnib-verso-prev\" class=\"cc-up-prev\" alt=\"\" style=\"display:none;\">\n                      <\/div>\n                      <div class=\"cc-ferr\" id=\"cc-wizard-pub-cnib-verso-err\">Le verso de la CNIB est requis.<\/div>\n                    <\/div>\n                  <\/div>\n                <\/div>\n\n                <!-- Passeport : une seule photo -->\n                <div id=\"cc-wizard-pub-passport-block\" style=\"display:none;\">\n                  <div class=\"cc-field\">\n                    <label>Photo du passeport <span>*<\/span><\/label>\n                    <div class=\"cc-upload-zone cc-id-zone\" id=\"cc-wizard-pub-passport-zone\">\n                      <input type=\"file\" id=\"cc-wizard-pub-passport-file\" accept=\"image\/*,application\/pdf\" style=\"display:none\">\n                      <div id=\"cc-wizard-pub-passport-ph\">\n                        <span class=\"cc-up-icon\"><svg width=\"28\" height=\"28\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" viewBox=\"0 0 24 24\"><rect x=\"4\" y=\"2\" width=\"16\" height=\"20\" rx=\"2\"\/><circle cx=\"12\" cy=\"10\" r=\"3\"\/><path d=\"M7 17c0-2.76 2.24-4 5-4s5 1.24 5 4\"\/><\/svg><\/span>\n                        <strong style=\"font-size:13px;\">Page d'identit\u00e9<\/strong>\n                        <small>Photo ou scan de la page principale<\/small>\n                      <\/div>\n                      <img id=\"cc-wizard-pub-passport-prev\" class=\"cc-up-prev\" alt=\"\" style=\"display:none;\">\n                    <\/div>\n                    <div class=\"cc-ferr\" id=\"cc-wizard-pub-passport-err\">La photo du passeport est requise.<\/div>\n                  <\/div>\n                <\/div>\n\n                <div class=\"cc-field\">\n                  <label>Num\u00e9ro WhatsApp <span>*<\/span><\/label>\n                  <div class=\"cc-ph-row\">\n                    <select class=\"cc-ph-flag\" id=\"cc-wizard-pub-ben-wa-cc\">\n                      <option value=\"226\">\ud83c\udde7\ud83c\uddeb +226<\/option><option value=\"221\">\ud83c\uddf8\ud83c\uddf3 +221<\/option><option value=\"225\">\ud83c\udde8\ud83c\uddee +225<\/option>\n                      <option value=\"223\">\ud83c\uddf2\ud83c\uddf1 +223<\/option><option value=\"227\">\ud83c\uddf3\ud83c\uddea +227<\/option><option value=\"229\">\ud83c\udde7\ud83c\uddef +229<\/option>\n                      <option value=\"228\">\ud83c\uddf9\ud83c\uddec +228<\/option><option value=\"33\">\ud83c\uddeb\ud83c\uddf7 +33<\/option><option value=\"1\">\ud83c\uddfa\ud83c\uddf8 +1<\/option>\n                    <\/select>\n                    <input type=\"tel\" id=\"cc-wizard-pub-ben-wa\" placeholder=\"Ex : 70 00 00 00\">\n                  <\/div>\n                  <div class=\"cc-ferr\" id=\"cc-wizard-pub-ben-wa-err\">Le num\u00e9ro WhatsApp est requis.<\/div>\n                <\/div>\n              <\/div>\n\n              <!-- Personne morale -->\n              <div id=\"cc-wizard-pub-ben-morale\" style=\"display:none;\">\n                <div class=\"cc-field\">\n                  <label>Nom de la structure <span>*<\/span><\/label>\n                  <input type=\"text\" id=\"cc-wizard-pub-ben-org\" placeholder=\"Ex : Association Espoir du Sahel\">\n                  <div class=\"cc-ferr\" id=\"cc-wizard-pub-ben-org-err\">Le nom de la structure est requis.<\/div>\n                <\/div>\n\n                <div class=\"cc-field\">\n                  <label>Num\u00e9ro WhatsApp <span>*<\/span><\/label>\n                  <div class=\"cc-ph-row\">\n                    <select class=\"cc-ph-flag\" id=\"cc-wizard-pub-ben-org-wa-cc\">\n                      <option value=\"226\">\ud83c\udde7\ud83c\uddeb +226<\/option><option value=\"221\">\ud83c\uddf8\ud83c\uddf3 +221<\/option><option value=\"225\">\ud83c\udde8\ud83c\uddee +225<\/option>\n                      <option value=\"223\">\ud83c\uddf2\ud83c\uddf1 +223<\/option><option value=\"227\">\ud83c\uddf3\ud83c\uddea +227<\/option><option value=\"229\">\ud83c\udde7\ud83c\uddef +229<\/option>\n                      <option value=\"228\">\ud83c\uddf9\ud83c\uddec +228<\/option><option value=\"33\">\ud83c\uddeb\ud83c\uddf7 +33<\/option><option value=\"1\">\ud83c\uddfa\ud83c\uddf8 +1<\/option>\n                    <\/select>\n                    <input type=\"tel\" id=\"cc-wizard-pub-ben-org-wa\" placeholder=\"Ex : 70 00 00 00\">\n                  <\/div>\n                  <div class=\"cc-ferr\" id=\"cc-wizard-pub-ben-org-wa-err\">Le num\u00e9ro WhatsApp est requis.<\/div>\n                <\/div>\n              <\/div>\n\n              <!-- \u2500\u2500 SECTION : Visuel \u2500\u2500 -->\n              <div class=\"cc-section-title\" style=\"margin-top:28px;\"><svg width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"\/><circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\"\/><polyline points=\"21 15 16 10 5 21\"\/><\/svg> Visuel<\/div>\n\n              <div class=\"cc-field\">\n                <label>Image de couverture<\/label>\n                <div class=\"cc-upload-zone\" id=\"cc-wizard-pub-upzone\">\n                  <input type=\"file\" id=\"cc-wizard-pub-img\" accept=\"image\/*\" style=\"display:none\">\n                  <div id=\"cc-wizard-pub-upph\"><span class=\"cc-up-icon\"><svg width=\"32\" height=\"32\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"\/><circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\"\/><polyline points=\"21 15 16 10 5 21\"\/><\/svg><\/span><strong>Cliquez ou glissez une image<\/strong><small>JPG, PNG, WebP \u00b7 Max 5 Mo \u00b7 1200\u00d7630 recommand\u00e9<\/small><\/div>\n                  <img id=\"cc-wizard-pub-upprev\" class=\"cc-up-prev\" alt=\"\">\n                <\/div>\n              <\/div>\n              <div class=\"cc-field\">\n                <label>Vid\u00e9o de pr\u00e9sentation<\/label>\n                <input type=\"url\" id=\"cc-wizard-pub-vid\" placeholder=\"https:\/\/www.youtube.com\/watch?v=\u2026\">\n                <small>YouTube ou Vimeo \u2014 une vid\u00e9o augmente les dons de +50 %<\/small>\n              <\/div>\n\n              <!-- Navigation -->\n              <div class=\"cc-nav\" style=\"border:none;padding:0;justify-content:flex-end;margin-top:24px;\">\n                                <button class=\"btn-next\" id=\"cc-wizard-pub-n1\">Suivant <svg width=\"15\" height=\"15\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" viewBox=\"0 0 24 24\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg><\/button>\n                              <\/div>\n            <\/div>\n\n                        <!-- \u00c9TAPE 2 : Compte (uniquement pour les non-connect\u00e9s) -->\n            <div class=\"cc-screen\" id=\"cc-wizard-pub-s2\">\n              <div class=\"cc-recap\" id=\"cc-wizard-pub-recap\">\n                <div class=\"cc-recap-img\" id=\"cc-wizard-pub-recap-img\"><svg width=\"32\" height=\"32\" fill=\"none\" stroke=\"var(--border)\" stroke-width=\"1.5\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg><\/div>\n                <div class=\"cc-recap-info\">\n                  <h4 id=\"cc-wizard-pub-recap-title\">Votre cagnotte<\/h4>\n                  <p id=\"cc-wizard-pub-recap-goal\">Objectif : \u2014<\/p>\n                <\/div>\n                <div class=\"cc-recap-badge\" id=\"cc-wizard-pub-recap-type\">\u2014<\/div>\n              <\/div>\n              <p class=\"cc-s4-intro\"><svg width=\"15\" height=\"15\" fill=\"none\" stroke=\"var(--green)\" stroke-width=\"2\" viewBox=\"0 0 24 24\" style=\"vertical-align:middle;margin-right:4px;\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"\/><polyline points=\"22 4 12 14.01 9 11.01\"\/><\/svg> <strong>Votre cagnotte est pr\u00eate !<\/strong> Cr\u00e9ez votre compte gratuit pour la publier et commencer \u00e0 recevoir des contributions. Les participants peuvent payer <em>sans inscription<\/em>.<\/p>\n              <div class=\"cc-tabs\" id=\"cc-wizard-pub-tabs\">\n                <button class=\"cc-tab active\" data-view=\"social\">\n                  <svg width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><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>Nouveau compte<\/span>\n                <\/button>\n                <button class=\"cc-tab\" data-view=\"register\">\n                  <svg width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"\/><polyline points=\"22,6 12,13 2,6\"\/><\/svg>\n                  <span>Inscription email<\/span>\n                <\/button>\n                <button class=\"cc-tab\" data-view=\"login\">\n                  <svg width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4\"\/><polyline points=\"10 17 15 12 10 7\"\/><line x1=\"15\" y1=\"12\" x2=\"3\" y2=\"12\"\/><\/svg>\n                  <span>D\u00e9j\u00e0 un compte<\/span>\n                <\/button>\n              <\/div>\n              <!-- Vue Social avec Google\/Facebook r\u00e9els -->\n              <div class=\"cc-view active\" id=\"cc-wizard-pub-view-social\">\n                                                <button class=\"cc-soc-btn cc-soc-gg\" id=\"cc-wizard-pub-btn-google\">\n                  <div class=\"cc-soc-ico\">\n                    <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\"><path d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\" fill=\"#4285F4\"\/><path d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\" fill=\"#34A853\"\/><path d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z\" fill=\"#FBBC05\"\/><path d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\" fill=\"#EA4335\"\/><\/svg>\n                  <\/div>\n                  <div class=\"cc-soc-txt\"><strong>Continuer avec Google<\/strong><span>Connexion rapide et s\u00e9curis\u00e9e<\/span><\/div>\n                <\/button>\n                                                <div class=\"cc-or\">ou<\/div>\n                                <button class=\"cc-soc-email-btn\" id=\"cc-wizard-pub-btn-go-reg\" style=\"margin-bottom:12px;\">\n                  <svg width=\"17\" height=\"17\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"\/><polyline points=\"22,6 12,13 2,6\"\/><\/svg>\n                  Cr\u00e9er un compte avec email\n                <\/button>\n                <div class=\"cc-trust\" style=\"margin-bottom:16px;\">\n                  <svg width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg>\n                  Gratuit \u00b7 S\u00e9curis\u00e9 \u00b7 Sans engagement \u00b7 Aucune carte requise\n                <\/div>\n                <div class=\"cc-mlink\">D\u00e9j\u00e0 un compte ? <a id=\"cc-wizard-pub-go-login\">Se connecter \u2192<\/a><\/div>\n              <\/div>\n              <!-- Vue Inscription -->\n              <div class=\"cc-view\" id=\"cc-wizard-pub-view-register\">\n                <p style=\"font-size:14px;font-weight:700;color:var(--ink);margin-bottom:14px;\">Cr\u00e9ez votre compte<\/p>\n                <div class=\"cc-mf cc-mf-2\">\n                  <div><input type=\"text\" id=\"cc-wizard-pub-rf-fn\" placeholder=\"Pr\u00e9nom *\" autocomplete=\"given-name\"><\/div>\n                  <div><input type=\"text\" id=\"cc-wizard-pub-rf-ln\" placeholder=\"Nom *\" autocomplete=\"family-name\"><\/div>\n                <\/div>\n                <div class=\"cc-mf\"><input type=\"email\" id=\"cc-wizard-pub-rf-em\" placeholder=\"Adresse email *\" autocomplete=\"email\"><\/div>\n                <div class=\"cc-mf\">\n                  <div class=\"cc-ph-row\">\n                    <select class=\"cc-ph-flag\" id=\"cc-wizard-pub-rf-cc\">\n                      <option value=\"226\">\ud83c\udde7\ud83c\uddeb +226<\/option><option value=\"221\">\ud83c\uddf8\ud83c\uddf3 +221<\/option><option value=\"225\">\ud83c\udde8\ud83c\uddee +225<\/option>\n                      <option value=\"223\">\ud83c\uddf2\ud83c\uddf1 +223<\/option><option value=\"227\">\ud83c\uddf3\ud83c\uddea +227<\/option><option value=\"229\">\ud83c\udde7\ud83c\uddef +229<\/option>\n                      <option value=\"228\">\ud83c\uddf9\ud83c\uddec +228<\/option><option value=\"33\">\ud83c\uddeb\ud83c\uddf7 +33<\/option><option value=\"1\">\ud83c\uddfa\ud83c\uddf8 +1<\/option><option value=\"44\">\ud83c\uddec\ud83c\udde7 +44<\/option>\n                    <\/select>\n                    <input type=\"tel\" id=\"cc-wizard-pub-rf-ph\" placeholder=\"T\u00e9l\u00e9phone (optionnel)\" autocomplete=\"tel\">\n                  <\/div>\n                <\/div>\n                <div class=\"cc-mf\">\n                  <div class=\"cc-pw-wrap\">\n                    <input type=\"password\" id=\"cc-wizard-pub-rf-pw\" placeholder=\"Mot de passe (min. 6 caract\u00e8res) *\" autocomplete=\"new-password\">\n                    <button type=\"button\" class=\"cc-pw-eye\" id=\"cc-wizard-pub-tgl-pw\"><svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg><\/button>\n                  <\/div>\n                <\/div>\n                <div class=\"cc-merr\" id=\"cc-wizard-pub-reg-err\"><\/div>\n                <button class=\"cc-submit\" id=\"cc-wizard-pub-btn-register\">\n                  <svg width=\"17\" height=\"17\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"\/><polyline points=\"22 4 12 14.01 9 11.01\"\/><\/svg>\n                  Cr\u00e9er mon compte et publier\n                <\/button>\n                <div class=\"cc-trust\"><svg width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg> Gratuit \u00b7 Sans frais cach\u00e9s \u00b7 Donn\u00e9es s\u00e9curis\u00e9es<\/div>\n                <div class=\"cc-mlink\">D\u00e9j\u00e0 un compte ? <a id=\"cc-wizard-pub-go-login2\">Se connecter \u2192<\/a><\/div>\n              <\/div>\n              <!-- Vue Connexion -->\n              <div class=\"cc-view\" id=\"cc-wizard-pub-view-login\">\n                <p style=\"font-size:14px;font-weight:700;color:var(--ink);margin-bottom:14px;\">Connectez-vous<\/p>\n                <div class=\"cc-mf\"><input type=\"email\" id=\"cc-wizard-pub-lf-em\" placeholder=\"Email ou t\u00e9l\u00e9phone *\" autocomplete=\"email\"><\/div>\n                <div class=\"cc-mf\">\n                  <div class=\"cc-pw-wrap\">\n                    <input type=\"password\" id=\"cc-wizard-pub-lf-pw\" placeholder=\"Mot de passe *\" autocomplete=\"current-password\">\n                    <button type=\"button\" class=\"cc-pw-eye\" id=\"cc-wizard-pub-tgl-pw-l\"><svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg><\/button>\n                  <\/div>\n                <\/div>\n                <div class=\"cc-merr\" id=\"cc-wizard-pub-login-err\"><\/div>\n                <button class=\"cc-submit\" id=\"cc-wizard-pub-btn-login\">\n                  <svg width=\"17\" height=\"17\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4\"\/><polyline points=\"10 17 15 12 10 7\"\/><line x1=\"15\" y1=\"12\" x2=\"3\" y2=\"12\"\/><\/svg>\n                  Se connecter et publier\n                <\/button>\n                <div class=\"cc-mlink\" style=\"margin-top:12px;\"><a id=\"cc-wizard-pub-go-forgot\">Mot de passe oubli\u00e9 ?<\/a> &nbsp;\u00b7&nbsp; <a id=\"cc-wizard-pub-go-reg2\">Cr\u00e9er un compte<\/a><\/div>\n              <\/div>\n            <\/div><!-- fin s2 -->\n            \n            <!-- \u00c9CRAN SUCC\u00c8S (commun aux deux modes) -->\n            <div class=\"cc-screen\" id=\"cc-wizard-pub-success\">\n              <div class=\"cc-success\">\n                <span class=\"cc-suc-icon\"><svg width=\"48\" height=\"48\" fill=\"none\" stroke=\"var(--green)\" stroke-width=\"1.5\" viewBox=\"0 0 24 24\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"\/><polyline points=\"22 4 12 14.01 9 11.01\"\/><\/svg><\/span>\n                <h3>Cagnotte soumise !<\/h3>\n                <p>Votre cagnotte est en cours de validation. Vous serez notifi\u00e9 d\u00e8s qu'elle sera en ligne.<\/p>\n                <div class=\"cc-withdraw\">\n                  <h4><svg width=\"15\" height=\"15\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><rect x=\"1\" y=\"4\" width=\"22\" height=\"16\" rx=\"2\"\/><line x1=\"1\" y1=\"10\" x2=\"23\" y2=\"10\"\/><\/svg> Comment retirer l'argent collect\u00e9 ?<\/h4>\n                  <div class=\"cc-wstep\"><div class=\"cc-wnum\">1<\/div><span>Suivez les contributions en temps r\u00e9el depuis votre <strong>tableau de bord<\/strong>.<\/span><\/div>\n                  <div class=\"cc-wstep\"><div class=\"cc-wnum\">2<\/div><span>Cliquez <strong>\"Retirer\"<\/strong> sur votre cagnotte active \u2014 \u00e0 tout moment.<\/span><\/div>\n                  <div class=\"cc-wstep\"><div class=\"cc-wnum\">3<\/div><span>Choisissez : <strong>Mobile Money<\/strong> (Orange, Moov, Wave\u2026) ou virement bancaire.<\/span><\/div>\n                  <div class=\"cc-wstep\"><div class=\"cc-wnum\">4<\/div><span>Recevez les fonds sous <strong>24\u201372 h ouvr\u00e9es<\/strong> apr\u00e8s validation.<\/span><\/div>\n                <\/div>\n                <p style=\"font-size:13px;color:var(--muted);font-weight:600;margin-bottom:12px;\">Partagez d\u00e8s maintenant :<\/p>\n                <div class=\"cc-share-strip\">\n                  <button class=\"cc-sp cc-sp-wa\" id=\"cc-wizard-pub-suc-wa\">\n                    <svg width=\"15\" height=\"15\" fill=\"white\" viewBox=\"0 0 24 24\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z\"\/><\/svg>\n                    WhatsApp\n                  <\/button>\n                  <button class=\"cc-sp cc-sp-fb\" id=\"cc-wizard-pub-suc-fb\">\n                    <svg width=\"15\" height=\"15\" fill=\"white\" viewBox=\"0 0 24 24\"><path d=\"M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z\"\/><\/svg>\n                    Facebook\n                  <\/button>\n                  <button class=\"cc-sp cc-sp-cp\" id=\"cc-wizard-pub-suc-cp\"><svg width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"\/><path d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"\/><\/svg> Copier le lien<\/button>\n                <\/div>\n                <button class=\"cc-suc-cta\" onclick=\"window.location.href='\/mon-tableau-de-bord'\"><svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"3\" width=\"7\" height=\"7\"\/><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\"\/><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\"\/><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\"\/><\/svg> Voir mon tableau de bord<\/button>\n              <\/div>\n            <\/div>\n\n          <\/div><!-- fin cc-left -->\n        <\/div><!-- fin cc-page -->\n        <div class=\"cc-toast\" id=\"cc-wizard-pub-toast\"><\/div>\n\n        <script>\n        (function(){\n            var WID      = 'cc-wizard-pub';\n            var IS_LOGGED = false;\n            var STEPS    = IS_LOGGED ? 1 : 2;\n            var TITLES   = IS_LOGGED\n                ? ['Cr\u00e9er une cagnotte']\n                : ['Cr\u00e9er une cagnotte','Cr\u00e9er votre compte'];\n            var S = { step:1, type:'', title:'', ben:'', benType:'', benIdType:'', benWa:'', goal:0, start:'', end:'', ftype:'flexible', desc:'', imgFile:null, imgSrc:'', vid:'', idRecto:null, idVerso:null, idPassport:null };\n            var ajaxUrl  = 'https:\/\/www.terrabiga.com\/wp-admin\/admin-ajax.php';\n            var ajaxNonce= '369c89e8e5';\n\n            function q(id){ return document.getElementById(id); }\n            function wq(suf){ return q(WID+'-'+suf); }\n            function toast(m){ var t=q(WID+'-toast'); t.textContent=m; t.classList.add('show'); setTimeout(function(){ t.classList.remove('show'); },2800); }\n\n            \/* ---- navigation entre \u00e9tapes ---- *\/\n            function gotoStep(n){\n                S.step=n;\n                \/\/ masquer tous les \u00e9crans sauf succ\u00e8s\n                [1,2].forEach(function(i){ var s=q(WID+'-s'+i); if(s) s.classList.remove('active'); });\n                var target=q(WID+'-s'+n);\n                if(target) target.classList.add('active');\n                \/\/ mise \u00e0 jour indicateurs\n                q(WID+'-steps').querySelectorAll('.cc-step-item').forEach(function(el){\n                    var sn=parseInt(el.dataset.s);\n                    el.classList.remove('active','done');\n                    if(sn<n) el.classList.add('done');\n                    if(sn===n) el.classList.add('active');\n                    el.querySelector('.cc-step-dot').textContent=sn<n?'\u2713':sn;\n                });\n                wq('back').style.display=n>1?'inline-flex':'none';\n                wq('title').textContent=TITLES[n-1];\n                if(n===2 && !IS_LOGGED) buildRecap();\n                window.scrollTo({top:0,behavior:'smooth'});\n            }\n\n            \/* ---- bouton retour global ---- *\/\n            wq('back').addEventListener('click',function(){ if(S.step>1) gotoStep(S.step-1); });\n\n            \/* ---- succ\u00e8s ---- *\/\n            function showSuccess(permalink){\n                [1,2].forEach(function(i){ var s=q(WID+'-s'+i); if(s) s.classList.remove('active'); });\n                q(WID+'-success').classList.add('active');\n                q(WID+'-steps').style.display='none';\n                wq('back').style.display='none';\n                wq('title').textContent='F\u00e9licitations !';\n                window.scrollTo({top:0,behavior:'smooth'});\n                if(permalink) shareUrl = permalink;\n            }\n\n            \/* ===== VALIDATION + SOUMISSION \/ PASSAGE \u00c0 L'\u00c9TAPE COMPTE ===== *\/\n            wq('title-inp').addEventListener('input',function(){ wq('tc').textContent=this.value.length; });\n\n            \/* \u2500\u2500 DateRange Picker \u2500\u2500 *\/\n            (function(){\n                var MONTHS = ['Janvier','F\u00e9vrier','Mars','Avril','Mai','Juin','Juillet','Ao\u00fbt','Septembre','Octobre','Novembre','D\u00e9cembre'];\n                var startVal = null, endVal = null, picking = null;\n                var curYear, curMonth;\n                var today = new Date(); today.setHours(0,0,0,0);\n\n                var wrap     = q(WID+'-datepicker-wrap');\n                var block    = q(WID+'-daterange-block');\n                var popup    = q(WID+'-calendar');\n                var grid     = q(WID+'-cal-grid');\n                var label    = q(WID+'-cal-label');\n                var hint     = q(WID+'-cal-hint');\n                var startDisp= q(WID+'-start-display');\n                var endDisp  = q(WID+'-end-display');\n                var startCell= q(WID+'-start-cell');\n                var endCell  = q(WID+'-end-cell');\n                var clearBtn = q(WID+'-clear-dates');\n                var startInp = q(WID+'-start');\n                var endInp   = q(WID+'-end');\n\n                function fmt(d){ return d.getDate()+'\/'+(d.getMonth()+1)+'\/'+d.getFullYear(); }\n                function toISO(d){ return d.getFullYear()+'-'+String(d.getMonth()+1).padStart(2,'0')+'-'+String(d.getDate()).padStart(2,'0'); }\n\n                function updateDisplay(){\n                    if(startVal){ startDisp.textContent=fmt(startVal); startDisp.classList.remove('placeholder'); }\n                    else { startDisp.textContent='Choisir'; startDisp.classList.add('placeholder'); }\n                    if(endVal){ endDisp.textContent=fmt(endVal); endDisp.classList.remove('placeholder'); }\n                    else { endDisp.textContent='Choisir'; endDisp.classList.add('placeholder'); }\n                    startInp.value = startVal ? toISO(startVal) : '';\n                    endInp.value   = endVal   ? toISO(endVal)   : '';\n                    clearBtn.style.display = (startVal||endVal) ? 'flex' : 'none';\n                }\n\n                function renderCalendar(){\n                    label.textContent = MONTHS[curMonth] + ' ' + curYear;\n                    var first = new Date(curYear, curMonth, 1);\n                    var lastDay = new Date(curYear, curMonth+1, 0).getDate();\n                    var startWd = (first.getDay()+6)%7; \/\/ lundi=0\n                    grid.innerHTML = '';\n                    for(var i=0;i<startWd;i++){\n                        var el=document.createElement('div'); el.className='cc-cal-day empty'; grid.appendChild(el);\n                    }\n                    for(var d=1;d<=lastDay;d++){\n                        var el=document.createElement('div'); el.className='cc-cal-day';\n                        var dt=new Date(curYear,curMonth,d);\n                        el.textContent=d;\n                        if(dt<today) el.classList.add('disabled');\n                        else {\n                            if(startVal && dt.getTime()===startVal.getTime()) el.classList.add('selected-start');\n                            if(endVal   && dt.getTime()===endVal.getTime())   el.classList.add('selected-end');\n                            if(startVal && endVal && dt>startVal && dt<endVal) el.classList.add('in-range');\n                            if(dt.getTime()===today.getTime()) el.classList.add('today');\n                            (function(date,elem){\n                                elem.addEventListener('click',function(){\n                                    if(picking==='start'){\n                                        startVal=date; endVal=null; picking='end';\n                                        hint.textContent='S\u00e9lectionnez la date de fin';\n                                    } else {\n                                        if(date<=startVal){ startVal=date; endVal=null; picking='end'; hint.textContent='S\u00e9lectionnez la date de fin'; }\n                                        else { endVal=date; picking=null; hint.textContent='Dates s\u00e9lectionn\u00e9es \u2713'; setTimeout(function(){ popup.style.display='none'; block.classList.remove('active'); },300); }\n                                    }\n                                    updateDisplay(); renderCalendar();\n                                });\n                            })(dt,el);\n                        }\n                        grid.appendChild(el);\n                    }\n                }\n\n                function openCalendar(target){\n                    picking = target;\n                    hint.textContent = target==='start' ? 'S\u00e9lectionnez la date de d\u00e9but' : 'S\u00e9lectionnez la date de fin';\n                    if(popup.style.display==='none'||popup.style.display===''){\n                        curYear=today.getFullYear(); curMonth=today.getMonth();\n                        if(startVal){ curYear=startVal.getFullYear(); curMonth=startVal.getMonth(); }\n                        renderCalendar();\n                        popup.style.display='block';\n                        block.classList.add('active');\n                    }\n                }\n\n                startCell.addEventListener('click',function(){ openCalendar('start'); });\n                endCell.addEventListener('click',function(){ openCalendar(startVal?'end':'start'); });\n\n                q(WID+'-cal-prev').addEventListener('click',function(e){ e.stopPropagation(); curMonth--; if(curMonth<0){curMonth=11;curYear--;} renderCalendar(); });\n                q(WID+'-cal-next').addEventListener('click',function(e){ e.stopPropagation(); curMonth++; if(curMonth>11){curMonth=0;curYear++;} renderCalendar(); });\n\n                clearBtn.addEventListener('click',function(e){ e.stopPropagation(); startVal=null; endVal=null; picking=null; updateDisplay(); popup.style.display='none'; block.classList.remove('active'); });\n\n                document.addEventListener('click',function(e){ if(!wrap.contains(e.target)){ popup.style.display='none'; block.classList.remove('active'); } });\n\n                updateDisplay();\n            })();\n\n            \/* \u2500\u2500 Initialisation Quill \u2500\u2500 *\/\n            var quillEditor = null;\n            function initQuill(){\n                if(quillEditor) return;\n                if(typeof Quill === 'undefined') return;\n                quillEditor = new Quill('#'+WID+'-quill-editor', {\n                    theme: 'snow',\n                    modules: {\n                        toolbar: '#'+WID+'-quill-toolbar',\n                        history: { delay: 500, maxStack: 100 }\n                    },\n                    placeholder: 'D\u00e9crivez votre projet, son importance et comment les fonds seront utilis\u00e9s\u2026'\n                });\n                quillEditor.on('text-change', function(){\n                    var html = quillEditor.getSemanticHTML();\n                    wq('desc').value = html === '<p><br><\/p>' ? '' : html;\n                });\n            }\n            \/\/ Charger Quill depuis CDN puis initialiser\n            (function(){\n                if(typeof Quill !== 'undefined'){ initQuill(); return; }\n                var s = document.createElement('script');\n                s.src = 'https:\/\/cdn.jsdelivr.net\/npm\/quill@2.0.2\/dist\/quill.js';\n                s.onload = initQuill;\n                document.head.appendChild(s);\n            })();\n\n            wq('type-select').addEventListener('change',function(){\n                S.type=this.value;\n                q(WID+'-cat-err').style.display='none';\n            });\n\n            \/* \u2500\u2500 B\u00e9n\u00e9ficiaire : affichage dynamique \u2500\u2500 *\/\n            wq('ben-type').addEventListener('change',function(){\n                var v=this.value;\n                q(WID+'-ben-physique').style.display = v==='physique' ? 'block' : 'none';\n                q(WID+'-ben-morale').style.display   = v==='morale'   ? 'block' : 'none';\n                wq('ben-type-err').style.display='none';\n            });\n\n            \/* \u2500\u2500 Type de pi\u00e8ce d'identit\u00e9 \u2500\u2500 *\/\n            wq('id-type').addEventListener('change',function(){\n                var v=this.value;\n                q(WID+'-cnib-block').style.display    = v==='cnib'     ? 'block' : 'none';\n                q(WID+'-passport-block').style.display= v==='passport' ? 'block' : 'none';\n                wq('id-type-err').style.display='none';\n            });\n\n            \/* \u2500\u2500 Upload image de couverture \u2500\u2500 *\/\n            var upzone=wq('upzone'), upinput=wq('img'), upprev=wq('upprev'), upph=wq('upph');\n            upzone.addEventListener('click',function(){ upinput.click(); });\n            upzone.addEventListener('dragover',function(e){ e.preventDefault(); this.style.borderColor='var(--green)'; });\n            upzone.addEventListener('dragleave',function(){ this.style.borderColor=''; });\n            upzone.addEventListener('drop',function(e){ e.preventDefault(); this.style.borderColor=''; if(e.dataTransfer.files[0]) handleImg(e.dataTransfer.files[0]); });\n            upinput.addEventListener('change',function(){ if(this.files[0]) handleImg(this.files[0]); });\n            function handleImg(f){\n                if(f.size>5*1024*1024){ toast('Image trop grande (max 5 Mo)'); return; }\n                S.imgFile=f;\n                var r=new FileReader();\n                r.onload=function(e){ S.imgSrc=e.target.result; upprev.src=e.target.result; upprev.style.display='block'; upph.style.display='none'; upzone.classList.add('filled'); };\n                r.readAsDataURL(f);\n            }\n\n            \/* \u2500\u2500 Upload pi\u00e8ces d'identit\u00e9 \u2500\u2500 *\/\n            function setupIdUpload(inputId, zoneId, prevId, phId, storeKey){\n                var inp=q(WID+'-'+inputId), zone=q(WID+'-'+zoneId), prev=q(WID+'-'+prevId), ph=q(WID+'-'+phId);\n                if(!inp) return;\n                zone.addEventListener('click',function(){ inp.click(); });\n                zone.addEventListener('dragover',function(e){ e.preventDefault(); this.style.borderColor='var(--green)'; });\n                zone.addEventListener('dragleave',function(){ this.style.borderColor=''; });\n                zone.addEventListener('drop',function(e){ e.preventDefault(); this.style.borderColor=''; if(e.dataTransfer.files[0]) handleIdFile(e.dataTransfer.files[0],zone,prev,ph,storeKey); });\n                inp.addEventListener('change',function(){ if(this.files[0]) handleIdFile(this.files[0],zone,prev,ph,storeKey); });\n            }\n            function handleIdFile(f,zone,prev,ph,key){\n                if(f.size>8*1024*1024){ toast('Fichier trop grand (max 8 Mo)'); return; }\n                S[key]=f;\n                if(f.type.startsWith('image\/')){\n                    var r=new FileReader();\n                    r.onload=function(e){ prev.src=e.target.result; prev.style.display='block'; ph.style.display='none'; zone.classList.add('filled'); };\n                    r.readAsDataURL(f);\n                } else {\n                    ph.innerHTML='<span style=\"font-size:20px;\">\ud83d\udcc4<\/span><strong style=\"font-size:12px;\">'+f.name+'<\/strong>';\n                    zone.classList.add('filled');\n                }\n            }\n            setupIdUpload('cnib-recto','cnib-recto-zone','cnib-recto-prev','cnib-recto-ph','idRecto');\n            setupIdUpload('cnib-verso','cnib-verso-zone','cnib-verso-prev','cnib-verso-ph','idVerso');\n            setupIdUpload('passport-file','passport-zone','passport-prev','passport-ph','idPassport');\n\n            \/* \u2500\u2500 Validation globale de l'\u00e9tape 1 \u2500\u2500 *\/\n            function validateStep1(){\n                var ok=true;\n                \/\/ Cat\u00e9gorie\n                q(WID+'-cat-err').style.display='none';\n                if(!S.type){ q(WID+'-cat-err').style.display='block'; ok=false; }\n                \/\/ Titre\n                wq('terr').style.display='none';\n                var t=wq('title-inp').value.trim();\n                if(!t){ wq('terr').style.display='block'; ok=false; }\n                \/\/ Objectif\n                wq('gerr').style.display='none';\n                var g=parseFloat(wq('goal').value)||0;\n                if(g>0 && g<1000){ wq('gerr').style.display='block'; ok=false; }\n                \/\/ Dates\n                wq('date-err').style.display='none';\n                var sd=wq('start').value, ed=wq('end').value;\n                if(sd && ed && sd >= ed){ wq('date-err').style.display='block'; ok=false; }\n                \/\/ Type b\u00e9n\u00e9ficiaire\n                wq('ben-type-err').style.display='none';\n                var bt=wq('ben-type').value;\n                if(!bt){ wq('ben-type-err').style.display='block'; ok=false; }\n                if(bt==='physique'){\n                    \/\/ Nom\n                    wq('ben-name-err').style.display='none';\n                    if(!wq('ben-name').value.trim()){ wq('ben-name-err').style.display='block'; ok=false; }\n                    \/\/ Type pi\u00e8ce\n                    wq('id-type-err').style.display='none';\n                    var idT=wq('id-type').value;\n                    if(!idT){ wq('id-type-err').style.display='block'; ok=false; }\n                    if(idT==='cnib'){\n                        wq('cnib-recto-err').style.display='none';\n                        wq('cnib-verso-err').style.display='none';\n                        if(!S.idRecto){ wq('cnib-recto-err').style.display='block'; ok=false; }\n                        if(!S.idVerso){ wq('cnib-verso-err').style.display='block'; ok=false; }\n                    }\n                    if(idT==='passport'){\n                        wq('passport-err').style.display='none';\n                        if(!S.idPassport){ wq('passport-err').style.display='block'; ok=false; }\n                    }\n                    \/\/ WhatsApp physique\n                    wq('ben-wa-err').style.display='none';\n                    if(!wq('ben-wa').value.replace(\/[^0-9]\/g,'')){ wq('ben-wa-err').style.display='block'; ok=false; }\n                }\n                if(bt==='morale'){\n                    wq('ben-org-err').style.display='none';\n                    if(!wq('ben-org').value.trim()){ wq('ben-org-err').style.display='block'; ok=false; }\n                    wq('ben-org-wa-err').style.display='none';\n                    if(!wq('ben-org-wa').value.replace(\/[^0-9]\/g,'')){ wq('ben-org-wa-err').style.display='block'; ok=false; }\n                }\n                if(ok){\n                    S.title=t; S.goal=g;\n                    S.end=wq('end').value; S.start=wq('start').value; S.ftype='flexible'; S.desc=wq('desc').value;\n                    S.vid=wq('vid').value.trim();\n                    S.benType=bt;\n                    S.ben = bt==='physique' ? wq('ben-name').value.trim() : wq('ben-org').value.trim();\n                    S.benIdType  = bt==='physique' ? wq('id-type').value : '';\n                    S.benWa = bt==='physique'\n                        ? (wq('ben-wa-cc').value||'226')+wq('ben-wa').value.replace(\/[^0-9]\/g,'')\n                        : (wq('ben-org-wa-cc').value||'226')+wq('ben-org-wa').value.replace(\/[^0-9]\/g,'');\n                }\n                if(!ok) window.scrollTo({top:0,behavior:'smooth'});\n                return ok;\n            }\n\n            function buildFormData(fd){\n                fd.append('title',S.title); fd.append('goal',S.goal||0);\n                fd.append('category',S.type); fd.append('description',S.desc);\n                fd.append('start_date',S.start||'');\n                fd.append('end_date',S.end); fd.append('campaign_type',S.ftype);\n                fd.append('beneficiary',S.ben); fd.append('video_url',S.vid);\n                fd.append('ben_type',S.benType||'');\n                fd.append('ben_id_type',S.benIdType||'');\n                fd.append('ben_whatsapp',S.benWa||'');\n                if(S.imgFile) fd.append('image',S.imgFile);\n                if(S.idRecto)    fd.append('id_recto',S.idRecto);\n                if(S.idVerso)    fd.append('id_verso',S.idVerso);\n                if(S.idPassport) fd.append('id_passport',S.idPassport);\n            }\n\n            \/* ===== SOUMISSION \/ PASSAGE \u00c9TAPE COMPTE ===== *\/\n            if(IS_LOGGED){\n                \/* ---- SOUMISSION DIRECTE ---- *\/\n                wq('submit').addEventListener('click',function(){\n                    if(!validateStep1()) return;\n                    var btn=wq('submit');\n                    btn.disabled=true;\n                    btn.innerHTML='<svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" viewBox=\"0 0 24 24\" style=\"animation:spin .7s linear infinite\"><path d=\"M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83\"\/><\/svg> Publication en cours\u2026';\n                    var fd=new FormData();\n                    fd.append('action','tc_create_campaign_ajax');\n                    fd.append('nonce',ajaxNonce);\n                    buildFormData(fd);\n                    fetch(ajaxUrl,{method:'POST',body:fd})\n                        .then(function(r){ return r.json(); })\n                        .then(function(d){\n                            if(d.success){ showSuccess(d.data?.permalink || \"\"); }\n                            else{\n                                toast((d.data||'Erreur. R\u00e9essayez.'));\n                                btn.disabled=false;\n                                btn.innerHTML='<svg width=\"17\" height=\"17\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"\/><polyline points=\"22 4 12 14.01 9 11.01\"\/><\/svg> Publier ma cagnotte';\n                            }\n                        })\n                        .catch(function(){ showSuccess(); });\n                });\n            } else {\n                \/* ---- PASSER \u00c0 L'\u00c9TAPE COMPTE (non-connect\u00e9) ---- *\/\n                wq('n1').addEventListener('click',function(){\n                    if(!validateStep1()) return;\n                    gotoStep(2);\n                });\n\n                \/* ---- \u00c9TAPE 2 : recap ---- *\/\n                function buildRecap(){\n                    wq('recap-title').textContent=S.title||'Votre cagnotte';\n                    wq('recap-goal').textContent=S.goal?'Objectif : '+S.goal.toLocaleString('fr-FR')+' FCFA':'Sans objectif fix\u00e9';\n                    wq('recap-type').textContent=S.type||'\u2014';\n                    var imgDiv=wq('recap-img');\n                    if(S.imgSrc) imgDiv.innerHTML='<img decoding=\"async\" src=\"'+S.imgSrc+'\" style=\"width:100%;height:100%;object-fit:cover;border-radius:12px\" alt=\"\">';\n                    else imgDiv.innerHTML='<svg width=\"32\" height=\"32\" fill=\"none\" stroke=\"var(--border)\" stroke-width=\"1.5\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg>';\n                }\n                wq('b4') && wq('b4').addEventListener('click',function(){ gotoStep(1); });\n\n                \/* ---- Tabs ---- *\/\n                function switchView(v){\n                    q(WID+'-s2').querySelectorAll('.cc-view').forEach(function(el){ el.classList.remove('active'); });\n                    q(WID+'-'+v === WID+'-cc-view-social' ? WID+'-view-social' : (WID+'-view-'+v)).classList.add('active');\n                    q(WID+'-tabs').querySelectorAll('.cc-tab').forEach(function(t){ t.classList.toggle('active', t.dataset.view===v); });\n                }\n                \/\/ Correction : utiliser directement l'id pr\u00e9fix\u00e9\n                function switchViewById(v){\n                    q(WID+'-s2').querySelectorAll('.cc-view').forEach(function(el){ el.classList.remove('active'); });\n                    q(WID+'-view-'+v).classList.add('active');\n                    q(WID+'-tabs').querySelectorAll('.cc-tab').forEach(function(t){ t.classList.toggle('active', t.dataset.view===v); });\n                }\n                q(WID+'-tabs').querySelectorAll('.cc-tab').forEach(function(tab){\n                    tab.addEventListener('click',function(){ switchViewById(this.dataset.view); });\n                });\n                wq('btn-go-reg').addEventListener('click',function(){ switchViewById('register'); });\n                wq('go-login').addEventListener('click',function(){ switchViewById('login'); });\n                wq('go-login2').addEventListener('click',function(){ switchViewById('login'); });\n                wq('go-reg2').addEventListener('click',function(){ switchViewById('register'); });\n                wq('go-forgot').addEventListener('click',function(){ toast('Un email de r\u00e9initialisation vous sera envoy\u00e9.'); });\n\n                \/* ---- Vue social : Google \/ Facebook \/ Email ---- *\/\n                var hasGoogle  = !!document.getElementById(WID+'-btn-google');\n                var hasFacebook= !!document.getElementById(WID+'-btn-facebook');\n\n                function startOAuth(provider) {\n                    var btn = wq('btn-' + provider);\n                    if (!btn) return;\n                    btn.disabled = true;\n                    btn.style.opacity = '0.7';\n                    btn.querySelector('.cc-soc-txt strong').textContent = 'Connexion en cours\u2026';\n\n                    var fd = new FormData();\n                    fd.append('action',   'tc_oauth_start');\n                    fd.append('nonce',    ajaxNonce);\n                    fd.append('provider', provider);\n                    \/\/ Passer les donn\u00e9es de la cagnotte pour les r\u00e9cup\u00e9rer apr\u00e8s OAuth\n                    fd.append('title',         S.title || '');\n                    fd.append('goal',          S.goal || 0);\n                    fd.append('category',      S.type || '');\n                    fd.append('description',   S.desc || '');\n                    fd.append('end_date',      S.end || '');\n                    fd.append('campaign_type', S.ftype || 'flexible');\n                    fd.append('beneficiary',   S.ben || '');\n                    fd.append('video_url',     S.vid || '');\n                    fd.append('ben_type',      S.benType || '');\n                    fd.append('ben_id_type',   S.benIdType || '');\n                    fd.append('ben_whatsapp',  S.benWa || '');\n\n                    fetch(ajaxUrl, {method:'POST', body:fd})\n                        .then(function(r){ return r.json(); })\n                        .then(function(d){\n                            if (d.success && d.data.url) {\n                                \/\/ Rediriger vers Google\/Facebook\n                                window.location.href = d.data.url;\n                            } else {\n                                toast((d.data || 'Erreur OAuth'));\n                                btn.disabled = false;\n                                btn.style.opacity = '1';\n                                btn.querySelector('.cc-soc-txt strong').textContent =\n                                    provider === 'google' ? 'Continuer avec Google' : 'Continuer avec Facebook';\n                            }\n                        })\n                        .catch(function(){\n                            toast('Erreur r\u00e9seau');\n                            btn.disabled = false;\n                            btn.style.opacity = '1';\n                        });\n                }\n\n                if (hasGoogle) {\n                    wq('btn-google').addEventListener('click', function(){ startOAuth('google'); });\n                }\n                if (hasFacebook) {\n                    wq('btn-facebook').addEventListener('click', function(){ startOAuth('facebook'); });\n                }\n\n                \/* ---- Password toggles ---- *\/\n                (function(){\n                    var EYE='<svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg>';\n                    var EYEOFF='<svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94\"\/><path d=\"M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19\"\/><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"\/><\/svg>';\n                    var inp=wq('rf-pw'), btn=wq('tgl-pw'), vis=false;\n                    btn.addEventListener('click',function(){ vis=!vis; inp.type=vis?'text':'password'; btn.innerHTML=vis?EYEOFF:EYE; });\n                })();\n                (function(){\n                    var EYE='<svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg>';\n                    var EYEOFF='<svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94\"\/><path d=\"M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19\"\/><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"\/><\/svg>';\n                    var inp=wq('lf-pw'), btn=wq('tgl-pw-l'), vis=false;\n                    btn.addEventListener('click',function(){ vis=!vis; inp.type=vis?'text':'password'; btn.innerHTML=vis?EYEOFF:EYE; });\n                })();\n\n                \/* ---- Inscription + cr\u00e9ation ---- *\/\n                wq('btn-register').addEventListener('click',function(){\n                    var fn=wq('rf-fn').value.trim(), ln=wq('rf-ln').value.trim(),\n                        em=wq('rf-em').value.trim(), pw=wq('rf-pw').value;\n                    var errEl=wq('reg-err'), errs=[];\n                    errEl.style.display='none';\n                    if(!fn||fn.length<2) errs.push('Pr\u00e9nom requis (min 2 caract\u00e8res)');\n                    if(!ln||ln.length<2) errs.push('Nom requis (min 2 caract\u00e8res)');\n                    if(!em||!\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(em)) errs.push('Adresse email invalide');\n                    if(!pw||pw.length<6) errs.push('Mot de passe requis (min 6 caract\u00e8res)');\n                    if(errs.length){ errEl.innerHTML=errs.join('<br>'); errEl.style.display='block'; return; }\n                    var btn=wq('btn-register'); btn.disabled=true;\n                    btn.innerHTML='<svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" viewBox=\"0 0 24 24\" style=\"animation:spin .7s linear infinite\"><path d=\"M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83\"\/><\/svg> Cr\u00e9ation en cours\u2026';\n                    var fd=new FormData();\n                    fd.append('action','tc_create_campaign_with_account');\n                    fd.append('nonce',ajaxNonce);\n                    fd.append('m_first_name',fn); fd.append('m_last_name',ln); fd.append('m_email',em);\n                    fd.append('m_phone',(wq('rf-cc').value||'226')+wq('rf-ph').value.replace(\/[^0-9]\/g,''));\n                    fd.append('m_password',pw);\n                    buildFormData(fd);\n                    fetch(ajaxUrl,{method:'POST',body:fd})\n                        .then(function(r){ return r.json(); })\n                        .then(function(d){\n                            if(d.success){ showSuccess(d.data?.permalink || \"\"); }\n                            else{\n                                errEl.innerHTML=(d.data||'Erreur. R\u00e9essayez.'); errEl.style.display='block';\n                                btn.disabled=false;\n                                btn.innerHTML='<svg width=\"17\" height=\"17\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"\/><polyline points=\"22 4 12 14.01 9 11.01\"\/><\/svg> Cr\u00e9er mon compte et publier';\n                            }\n                        })\n                        .catch(function(){ showSuccess(); });\n                });\n\n                \/* ---- Connexion + cr\u00e9ation ---- *\/\n                wq('btn-login').addEventListener('click',function(){\n                    var em=wq('lf-em').value.trim(), pw=wq('lf-pw').value;\n                    var errEl=wq('login-err'); errEl.style.display='none';\n                    if(!em){ errEl.textContent='Email requis'; errEl.style.display='block'; return; }\n                    if(!pw){ errEl.textContent='Mot de passe requis'; errEl.style.display='block'; return; }\n                    var btn=wq('btn-login'); btn.disabled=true; btn.textContent='Connexion\u2026';\n                    var fd=new FormData();\n                    fd.append('action','tc_login_and_create_campaign');\n                    fd.append('nonce',ajaxNonce);\n                    fd.append('login_email',em); fd.append('login_password',pw);\n                    buildFormData(fd);\n                    fetch(ajaxUrl,{method:'POST',body:fd})\n                        .then(function(r){ return r.json(); })\n                        .then(function(d){\n                            if(d.success){ showSuccess(d.data?.permalink || \"\"); }\n                            else{\n                                errEl.textContent=(d.data||'Identifiants incorrects'); errEl.style.display='block';\n                                btn.disabled=false;\n                                btn.innerHTML='<svg width=\"17\" height=\"17\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4\"\/><polyline points=\"10 17 15 12 10 7\"\/><line x1=\"15\" y1=\"12\" x2=\"3\" y2=\"12\"\/><\/svg> Se connecter et publier';\n                            }\n                        })\n                        .catch(function(){ showSuccess(); });\n                });\n            }\/* fin !IS_LOGGED *\/\n\n            \/* ===== PARTAGE SUCC\u00c8S ===== *\/\n            var shareUrl = window.location.origin+'\/cagnottes';\n            function txt(){ return encodeURIComponent('\ud83d\ude4f Aidez-moi \u00e0 financer \"'+S.title+'\" ! '+shareUrl); }\n            var sucWa=q(WID+'-suc-wa'), sucFb=q(WID+'-suc-fb'), sucCp=q(WID+'-suc-cp');\n            sucWa && sucWa.addEventListener('click',function(){ window.open('https:\/\/api.whatsapp.com\/send?text='+txt(),'_blank'); });\n            sucFb && sucFb.addEventListener('click',function(){ window.open('https:\/\/www.facebook.com\/sharer\/sharer.php?u='+encodeURIComponent(shareUrl),'_blank'); });\n            sucCp && sucCp.addEventListener('click',function(){\n                navigator.clipboard.writeText(shareUrl).then(function(){\n                    var b=sucCp; b.innerHTML='<svg width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg> Copi\u00e9 !';\n                    setTimeout(function(){ b.innerHTML='<svg width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"\/><path d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"\/><\/svg> Copier le lien'; },2000);\n                });\n            });\n        })();\n        <\/script>\n        <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\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":"","meta":{"content-type":"","footnotes":""},"class_list":["post-8561","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>creer-une-cagnotte - Terra Biga<\/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:\/\/www.terrabiga.com\/en\/creer-une-cagnotte\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"creer-une-cagnotte - Terra Biga\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.terrabiga.com\/en\/creer-une-cagnotte\/\" \/>\n<meta property=\"og:site_name\" content=\"Terra Biga\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-27T01:51:06+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.terrabiga.com\\\/creer-une-cagnotte\\\/\",\"url\":\"https:\\\/\\\/www.terrabiga.com\\\/creer-une-cagnotte\\\/\",\"name\":\"creer-une-cagnotte - Terra Biga\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.terrabiga.com\\\/#website\"},\"datePublished\":\"2026-03-27T01:50:06+00:00\",\"dateModified\":\"2026-03-27T01:51:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.terrabiga.com\\\/creer-une-cagnotte\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.terrabiga.com\\\/creer-une-cagnotte\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.terrabiga.com\\\/creer-une-cagnotte\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.terrabiga.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"creer-une-cagnotte\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.terrabiga.com\\\/#website\",\"url\":\"https:\\\/\\\/www.terrabiga.com\\\/\",\"name\":\"Terra Biga\",\"description\":\"B\u00e2tisseurs de l&#039;Afrique de demain.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.terrabiga.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.terrabiga.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.terrabiga.com\\\/#organization\",\"name\":\"Terra Biga\",\"url\":\"https:\\\/\\\/www.terrabiga.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.terrabiga.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.terrabiga.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/Design-sans-titre-1.png\",\"contentUrl\":\"https:\\\/\\\/www.terrabiga.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/Design-sans-titre-1.png\",\"width\":350,\"height\":100,\"caption\":\"Terra Biga\"},\"image\":{\"@id\":\"https:\\\/\\\/www.terrabiga.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"creer-une-cagnotte - Terra Biga","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:\/\/www.terrabiga.com\/en\/creer-une-cagnotte\/","og_locale":"en_US","og_type":"article","og_title":"creer-une-cagnotte - Terra Biga","og_url":"https:\/\/www.terrabiga.com\/en\/creer-une-cagnotte\/","og_site_name":"Terra Biga","article_modified_time":"2026-03-27T01:51:06+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.terrabiga.com\/creer-une-cagnotte\/","url":"https:\/\/www.terrabiga.com\/creer-une-cagnotte\/","name":"creer-une-cagnotte - Terra Biga","isPartOf":{"@id":"https:\/\/www.terrabiga.com\/#website"},"datePublished":"2026-03-27T01:50:06+00:00","dateModified":"2026-03-27T01:51:06+00:00","breadcrumb":{"@id":"https:\/\/www.terrabiga.com\/creer-une-cagnotte\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.terrabiga.com\/creer-une-cagnotte\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.terrabiga.com\/creer-une-cagnotte\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.terrabiga.com\/"},{"@type":"ListItem","position":2,"name":"creer-une-cagnotte"}]},{"@type":"WebSite","@id":"https:\/\/www.terrabiga.com\/#website","url":"https:\/\/www.terrabiga.com\/","name":"Terra Biga","description":"B\u00e2tisseurs de l&#039;Afrique de demain.","publisher":{"@id":"https:\/\/www.terrabiga.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.terrabiga.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.terrabiga.com\/#organization","name":"Terra Biga","url":"https:\/\/www.terrabiga.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.terrabiga.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.terrabiga.com\/wp-content\/uploads\/2022\/11\/Design-sans-titre-1.png","contentUrl":"https:\/\/www.terrabiga.com\/wp-content\/uploads\/2022\/11\/Design-sans-titre-1.png","width":350,"height":100,"caption":"Terra Biga"},"image":{"@id":"https:\/\/www.terrabiga.com\/#\/schema\/logo\/image\/"}}]}},"wpcf_dashboard":"<div class=\"woocommerce\"><div class=\"woocommerce-info\">Please log in first? <a class=\"wpneoShowLogin\" href=\"#\">Click here to login<\/a><\/div><div class=\"wpneo_login_form_div\" style=\"display: none;\"><form name=\"loginform\" id=\"loginform\" action=\"https:\/\/www.terrabiga.com\/wp-login.php\" method=\"post\"><p class=\"login-username\">\n\t\t\t\t<label for=\"user_login\">Username or Email Address<\/label>\n\t\t\t\t<input type=\"text\" name=\"log\" id=\"user_login\" autocomplete=\"username\" class=\"input\" value=\"\" size=\"20\" \/>\n\t\t\t<\/p><p class=\"login-password\">\n\t\t\t\t<label for=\"user_pass\">Password<\/label>\n\t\t\t\t<input type=\"password\" name=\"pwd\" id=\"user_pass\" autocomplete=\"current-password\" spellcheck=\"false\" class=\"input\" value=\"\" size=\"20\" \/>\n\t\t\t<\/p><p class=\"login-remember\"><label><input name=\"rememberme\" type=\"checkbox\" id=\"rememberme\" value=\"forever\" \/> Remember Me<\/label><\/p><p class=\"login-submit\">\n\t\t\t\t<input type=\"submit\" name=\"wp-submit\" id=\"wp-submit\" class=\"button button-primary\" value=\"Log In\" \/>\n\t\t\t\t<input type=\"hidden\" name=\"redirect_to\" value=\"https:\/\/www.terrabiga.com\/en\/wp-json\/wp\/v2\/pages\/8561\" \/>\n\t\t\t<\/p><\/form><\/div><\/div>","_links":{"self":[{"href":"https:\/\/www.terrabiga.com\/en\/wp-json\/wp\/v2\/pages\/8561","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.terrabiga.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.terrabiga.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.terrabiga.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.terrabiga.com\/en\/wp-json\/wp\/v2\/comments?post=8561"}],"version-history":[{"count":4,"href":"https:\/\/www.terrabiga.com\/en\/wp-json\/wp\/v2\/pages\/8561\/revisions"}],"predecessor-version":[{"id":8565,"href":"https:\/\/www.terrabiga.com\/en\/wp-json\/wp\/v2\/pages\/8561\/revisions\/8565"}],"wp:attachment":[{"href":"https:\/\/www.terrabiga.com\/en\/wp-json\/wp\/v2\/media?parent=8561"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}