| <!DOCTYPE html> |
| <html lang="fr"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> |
| <title>AuditPro Sync | Expert Cloud Inspection</title> |
| <script src="https://cdn.tailwindcss.com"></script> |
| <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap" rel="stylesheet"> |
| <style> |
| body { |
| font-family: 'Inter', sans-serif; |
| background-color: #f8fafc; |
| margin: 0; |
| overflow-x: hidden; |
| -webkit-font-smoothing: antialiased; |
| } |
| #loading-screen { |
| position: fixed; |
| inset: 0; |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| justify-content: center; |
| background: #ffffff; |
| z-index: 9999; |
| transition: opacity 0.5s ease-out; |
| } |
| .spinner { |
| width: 48px; |
| height: 48px; |
| border: 5px solid #f1f5f9; |
| border-top: 5px solid #4f46e5; |
| border-radius: 50%; |
| animation: spin 1s cubic-bezier(0.4, 0, 0.2, 1) infinite; |
| } |
| @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } |
| </style> |
| <script type="importmap"> |
| { |
| "imports": { |
| "lucide-react": "https://esm.sh/lucide-react@^0.475.0", |
| "react-dom/client": "https://esm.sh/react-dom@19.0.0/client", |
| "react": "https://esm.sh/react@19.0.0", |
| "xlsx": "https://esm.sh/xlsx@0.18.5", |
| "react-dom/": "https://esm.sh/react-dom@^19.2.3/", |
| "react/": "https://esm.sh/react@^19.2.3/" |
| } |
| } |
| </script> |
| </head> |
| <body class="bg-slate-50 text-slate-900"> |
| <div id="loading-screen"> |
| <div class="spinner"></div> |
| <div style="margin-top: 2rem; text-align: center;"> |
| <p style="color: #1e293b; font-weight: 900; font-size: 18px; margin-bottom: 4px;">AuditPro Sync</p> |
| <p style="color: #64748b; font-weight: 700; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;">Sécurisation des données locales...</p> |
| </div> |
| </div> |
|
|
| <div id="root"></div> |
| <script type="module" src="./bundle.js"></script> |
| |
| <script type="module"> |
| window.addEventListener('load', () => { |
| const loader = document.getElementById('loading-screen'); |
| if (loader) { |
| setTimeout(() => { |
| loader.style.opacity = '0'; |
| setTimeout(() => loader.remove(), 500); |
| }, 1000); |
| } |
| }); |
| </script> |
| </body> |
| </html> |