| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| |
| <meta name="robots" content="noindex, nofollow, noarchive, nosnippet, noimageindex, notranslate, none"> |
| <meta name="googlebot" content="noindex, nofollow, noarchive, nosnippet, noimageindex, none"> |
| <meta name="bingbot" content="noindex, nofollow, noarchive, nosnippet, none"> |
| <meta name="duckduckbot" content="noindex, nofollow, none"> |
| <meta name="yandexbot" content="noindex, nofollow, none"> |
| <meta name="baiduspider" content="noindex, nofollow, none"> |
| <meta name="slurp" content="noindex, nofollow, noarchive, none"> |
| <meta name="twitter" content="noindex, nofollow, none"> |
| <meta name="referrer" content="no-referrer"> |
| <meta http-equiv="x-dns-prefetch-control" content="off"> |
| <meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate"> |
| <meta http-equiv="pragma" content="no-cache"> |
| <meta http-equiv="expires" content="0"> |
| <link rel="canonical" href="#"> |
| <title>SentinelAI Command Center</title> |
| <script src="https://cdn.tailwindcss.com"></script> |
| <link rel="preconnect" href="https://fonts.googleapis.com"> |
| <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> |
| <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet"> |
| <link rel="stylesheet" href="command-center.css"> |
| <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" /> |
| <script> |
| tailwind.config = { |
| theme: { |
| extend: { |
| fontFamily: { |
| sans: ['Inter', 'sans-serif'], |
| mono: ['JetBrains Mono', 'monospace'], |
| } |
| } |
| } |
| } |
| </script> |
| </head> |
| <body class="bg-slate-950 text-slate-200 font-sans antialiased min-h-screen overflow-x-hidden"> |
|
|
| |
| <div class="fixed inset-0 z-0 pointer-events-none"> |
| <div class="grid-bg"></div> |
| <div class="absolute top-0 left-1/4 w-[600px] h-[600px] bg-cyan-600/5 rounded-full blur-3xl animate-pulse-slow"></div> |
| <div class="absolute bottom-0 right-1/4 w-[600px] h-[600px] bg-purple-600/5 rounded-full blur-3xl animate-pulse-slow-delayed"></div> |
| <div class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[800px] bg-blue-600/3 rounded-full blur-3xl"></div> |
| </div> |
|
|
| |
| <nav class="relative z-20 border-b border-slate-800/60 backdrop-blur-xl bg-slate-950/90 sticky top-0"> |
| <div class="max-w-[1600px] mx-auto px-4 sm:px-6 lg:px-8"> |
| <div class="flex items-center justify-between h-14"> |
| <div class="flex items-center gap-4"> |
| <div class="flex items-center gap-2.5"> |
| <div class="w-8 h-8 bg-gradient-to-br from-cyan-400 to-blue-600 rounded-lg flex items-center justify-center shadow-lg shadow-cyan-500/20"> |
| <i data-lucide="shield-check" class="w-4 h-4 text-white"></i> |
| </div> |
| <div> |
| <span class="text-base font-bold text-white tracking-tight">Sentinel<span class="text-cyan-400">AI</span></span> |
| <span class="hidden sm:inline text-xs text-slate-500 ml-2 font-mono">COMMAND CENTER v2.0</span> |
| </div> |
| </div> |
| </div> |
| <div class="hidden md:flex items-center gap-1"> |
| <a href="command-center.html" class="nav-link active px-3 py-1.5 rounded-lg text-xs font-medium transition-all"> |
| <i data-lucide="layout-dashboard" class="w-3.5 h-3.5 inline mr-1"></i>Dashboard |
| </a> |
| <a href="index.html" class="nav-link px-3 py-1.5 rounded-lg text-xs font-medium transition-all"> |
| <i data-lucide="search" class="w-3.5 h-3.5 inline mr-1"></i>GDorks |
| </a> |
| <a href="threats.html" class="nav-link px-3 py-1.5 rounded-lg text-xs font-medium transition-all"> |
| <i data-lucide="alert-triangle" class="w-3.5 h-3.5 inline mr-1"></i>Threats |
| </a> |
| <a href="network.html" class="nav-link px-3 py-1.5 rounded-lg text-xs font-medium transition-all"> |
| <i data-lucide="network" class="w-3.5 h-3.5 inline mr-1"></i>Network |
| </a> |
| <a href="seo-mesh-normal.html" class="nav-link px-3 py-1.5 rounded-lg text-xs font-medium transition-all"> |
| <i data-lucide="network" class="w-3.5 h-3.5 inline mr-1"></i>Mesh Normal |
| </a> |
| <a href="seo-mesh-inverse.html" class="nav-link px-3 py-1.5 rounded-lg text-xs font-medium transition-all"> |
| <i data-lucide="brain-circuit" class="w-3.5 h-3.5 inline mr-1"></i>Mesh Inversé |
| </a> |
| <a href="cognitive-inverse-mesh.html" class="nav-link px-3 py-1.5 rounded-lg text-xs font-medium transition-all"> |
| <i data-lucide="brain-circuit" class="w-3.5 h-3.5 inline mr-1"></i>Cognitive Inversé |
| </a> |
| <a href="cognitive-seo-geo-mesh.html" class="nav-link px-3 py-1.5 rounded-lg text-xs font-medium transition-all"> |
| <i data-lucide="brain" class="w-3.5 h-3.5 inline mr-1"></i>Cognitive SEO/GEO |
| </a> |
| <a href="seo-inverse.html" class="nav-link px-3 py-1.5 rounded-lg text-xs font-medium transition-all"> |
| <i data-lucide="eye-off" class="w-3.5 h-3.5 inline mr-1"></i>SEO Inverse |
| </a> |
| <a href="chs-backend.html" class="nav-link px-3 py-1.5 rounded-lg text-xs font-medium transition-all"> |
| <i data-lucide="plug" class="w-3.5 h-3.5 inline mr-1"></i>CHS Backend |
| </a> |
| </div> |
| <div class="flex items-center gap-3"> |
| <div class="threat-indicator flex items-center gap-2 px-3 py-1.5 rounded-lg bg-green-500/10 border border-green-500/20" id="threatLevel"> |
| <div class="w-2 h-2 bg-green-400 rounded-full animate-pulse"></div> |
| <span class="text-xs font-semibold text-green-400 font-mono" id="threatLevelText">LOW</span> |
| </div> |
| <button onclick="toggleMobileMenu()" class="md:hidden p-2 text-slate-400 hover:text-white"> |
| <i data-lucide="menu" class="w-5 h-5"></i> |
| </button> |
| <a href="https://github.com/jbsecuritejb-beep/SentinelAI-COMMAND-CENTER" target="_blank" class="hidden sm:flex items-center gap-1.5 text-slate-400 hover:text-white transition-colors"> |
| <i data-lucide="github" class="w-4 h-4"></i> |
| </a> |
| </div> |
| </div> |
| </div> |
| |
| <div id="mobileMenu" class="hidden md:hidden border-t border-slate-800/60 bg-slate-950/95 backdrop-blur-xl"> |
| <div class="px-4 py-3 space-y-1"> |
| <a href="command-center.html" class="block px-3 py-2 rounded-lg text-sm font-medium text-cyan-400 bg-cyan-500/10">Dashboard</a> |
| <a href="index.html" class="block px-3 py-2 rounded-lg text-sm font-medium text-slate-400 hover:text-white hover:bg-slate-800">GDorks</a> |
| <a href="threats.html" class="block px-3 py-2 rounded-lg text-sm font-medium text-slate-400 hover:text-white hover:bg-slate-800">Threats</a> |
| <a href="network.html" class="block px-3 py-2 rounded-lg text-sm font-medium text-slate-400 hover:text-white hover:bg-slate-800">Network</a> |
| <a href="seo-mesh-normal.html" class="block px-3 py-2 rounded-lg text-sm font-medium text-slate-400 hover:text-white hover:bg-slate-800">Mesh Normal</a> |
| <a href="seo-mesh-inverse.html" class="block px-3 py-2 rounded-lg text-sm font-medium text-slate-400 hover:text-white hover:bg-slate-800">Mesh Inversé</a> |
| <a href="cognitive-inverse-mesh.html" class="block px-3 py-2 rounded-lg text-sm font-medium text-slate-400 hover:text-white hover:bg-slate-800">Cognitive Inversé</a> |
| <a href="cognitive-seo-geo-mesh.html" class="block px-3 py-2 rounded-lg text-sm font-medium text-slate-400 hover:text-white hover:bg-slate-800">Cognitive SEO/GEO</a> |
| <a href="seo-inverse.html" class="block px-3 py-2 rounded-lg text-sm font-medium text-slate-400 hover:text-white hover:bg-slate-800">SEO Inverse</a> |
| <a href="chs-backend.html" class="block px-3 py-2 rounded-lg text-sm font-medium text-slate-400 hover:text-white hover:bg-slate-800">CHS Backend</a> |
| </div> |
| </div> |
| </nav> |
|
|
| |
| <div class="relative z-10 max-w-[1600px] mx-auto px-4 sm:px-6 lg:px-8 py-6"> |
|
|
| |
| <div class="mb-6 flex items-center gap-3 px-4 py-2.5 bg-slate-900/50 border border-slate-800/60 rounded-xl backdrop-blur-sm"> |
| <div class="flex items-center gap-2"> |
| <div class="w-2 h-2 bg-cyan-400 rounded-full animate-pulse"></div> |
| <span class="text-xs font-mono text-cyan-400">SYSTEM ONLINE</span> |
| </div> |
| <div class="h-4 w-px bg-slate-800"></div> |
| <span class="text-xs font-mono text-slate-500" id="systemTime">--:--:--</span> |
| <div class="h-4 w-px bg-slate-800"></div> |
| <span class="text-xs font-mono text-slate-500">UPTIME: <span class="text-slate-300" id="uptimeCounter">0d 0h 0m</span></span> |
| <div class="h-4 w-px bg-slate-800 hidden sm:block"></div> |
| <span class="text-xs font-mono text-slate-500 hidden sm:inline">NODES: <span class="text-green-400">12</span>/<span class="text-slate-300">12</span></span> |
| <div class="ml-auto flex items-center gap-2"> |
| <span class="text-xs font-mono text-slate-500">SCAN QUEUE: <span class="text-amber-400" id="scanQueue">0</span></span> |
| </div> |
| </div> |
|
|
| |
| <div class="grid grid-cols-2 md:grid-cols-4 gap-4 mb-6"> |
| <div class="stat-card bg-slate-900/50 border border-slate-800/80 rounded-xl p-4 backdrop-blur-sm"> |
| <div class="flex items-center justify-between mb-2"> |
| <span class="text-xs font-medium text-slate-500 uppercase tracking-wider">Threats Detected</span> |
| <i data-lucide="shield-alert" class="w-4 h-4 text-red-400"></i> |
| </div> |
| <div class="text-2xl font-bold text-white font-mono" id="threatCount">0</div> |
| <div class="flex items-center gap-1 mt-1"> |
| <i data-lucide="trending-up" class="w-3 h-3 text-red-400"></i> |
| <span class="text-xs text-red-400 font-mono">+12.5%</span> |
| </div> |
| </div> |
| <div class="stat-card bg-slate-900/50 border border-slate-800/80 rounded-xl p-4 backdrop-blur-sm"> |
| <div class="flex items-center justify-between mb-2"> |
| <span class="text-xs font-medium text-slate-500 uppercase tracking-wider">Scans Completed</span> |
| <i data-lucide="scan-search" class="w-4 h-4 text-cyan-400"></i> |
| </div> |
| <div class="text-2xl font-bold text-white font-mono" id="scanCount">0</div> |
| <div class="flex items-center gap-1 mt-1"> |
| <i data-lucide="trending-up" class="w-3 h-3 text-green-400"></i> |
| <span class="text-xs text-green-400 font-mono">+8.3%</span> |
| </div> |
| </div> |
| <div class="stat-card bg-slate-900/50 border border-slate-800/80 rounded-xl p-4 backdrop-blur-sm"> |
| <div class="flex items-center justify-between mb-2"> |
| <span class="text-xs font-medium text-slate-500 uppercase tracking-wider">Vulnerabilities</span> |
| <i data-lucide="bug" class="w-4 h-4 text-amber-400"></i> |
| </div> |
| <div class="text-2xl font-bold text-white font-mono" id="vulnCount">0</div> |
| <div class="flex items-center gap-1 mt-1"> |
| <i data-lucide="trending-down" class="w-3 h-3 text-green-400"></i> |
| <span class="text-xs text-green-400 font-mono">-3.1%</span> |
| </div> |
| </div> |
| <div class="stat-card bg-slate-900/50 border border-slate-800/80 rounded-xl p-4 backdrop-blur-sm"> |
| <div class="flex items-center justify-between mb-2"> |
| <span class="text-xs font-medium text-slate-500 uppercase tracking-wider">Assets Monitored</span> |
| <i data-lucide="server" class="w-4 h-4 text-purple-400"></i> |
| </div> |
| <div class="text-2xl font-bold text-white font-mono" id="assetCount">0</div> |
| <div class="flex items-center gap-1 mt-1"> |
| <i data-lucide="plus" class="w-3 h-3 text-blue-400"></i> |
| <span class="text-xs text-blue-400 font-mono">3 new</span> |
| </div> |
| </div> |
| </div> |
|
|
| |
| <div class="grid grid-cols-1 lg:grid-cols-3 gap-6 mb-6"> |
| |
| |
| <div class="lg:col-span-2 bg-slate-900/50 border border-slate-800/80 rounded-xl backdrop-blur-sm overflow-hidden"> |
| <div class="flex items-center justify-between px-5 py-3 border-b border-slate-800/60"> |
| <div class="flex items-center gap-2"> |
| <i data-lucide="globe" class="w-4 h-4 text-cyan-400"></i> |
| <h2 class="text-sm font-semibold text-white">Global Threat Map</h2> |
| </div> |
| <div class="flex items-center gap-2"> |
| <span class="text-xs font-mono text-slate-500">LIVE</span> |
| <div class="w-2 h-2 bg-red-500 rounded-full animate-pulse"></div> |
| </div> |
| </div> |
| <div class="relative p-4" style="min-height: 380px;"> |
| <div id="threatMap" class="w-full rounded-lg overflow-hidden" style="min-height: 350px; height: 350px;"></div> |
| |
| <div class="absolute bottom-6 left-6 flex items-center gap-4 text-xs font-mono"> |
| <div class="flex items-center gap-1.5"><div class="w-2 h-2 bg-red-500 rounded-full"></div><span class="text-slate-400">Critical</span></div> |
| <div class="flex items-center gap-1.5"><div class="w-2 h-2 bg-amber-500 rounded-full"></div><span class="text-slate-400">High</span></div> |
| <div class="flex items-center gap-1.5"><div class="w-2 h-2 bg-cyan-500 rounded-full"></div><span class="text-slate-400">Medium</span></div> |
| </div> |
| </div> |
| </div> |
|
|
| |
| <div class="bg-slate-900/50 border border-slate-800/80 rounded-xl backdrop-blur-sm overflow-hidden"> |
| <div class="flex items-center justify-between px-5 py-3 border-b border-slate-800/60"> |
| <div class="flex items-center gap-2"> |
| <i data-lucide="bell-ring" class="w-4 h-4 text-amber-400"></i> |
| <h2 class="text-sm font-semibold text-white">Active Alerts</h2> |
| </div> |
| <span class="text-xs font-mono text-amber-400" id="alertCount">0</span> |
| </div> |
| <div class="overflow-y-auto p-3 space-y-2" style="max-height: 380px;" id="alertsList"> |
| |
| </div> |
| </div> |
| </div> |
|
|
| |
| <div class="grid grid-cols-1 lg:grid-cols-3 gap-6 mb-6"> |
| |
| |
| <div class="lg:col-span-2 bg-slate-900/50 border border-slate-800/80 rounded-xl backdrop-blur-sm overflow-hidden"> |
| <div class="flex items-center justify-between px-5 py-3 border-b border-slate-800/60"> |
| <div class="flex items-center gap-2"> |
| <i data-lucide="terminal" class="w-4 h-4 text-green-400"></i> |
| <h2 class="text-sm font-semibold text-white">Activity Log</h2> |
| </div> |
| <button onclick="clearLogs()" class="text-xs text-slate-500 hover:text-slate-300 transition-colors font-mono">CLEAR</button> |
| </div> |
| <div class="overflow-y-auto p-4 font-mono text-xs space-y-1.5" style="max-height: 260px;" id="activityLog"> |
| |
| </div> |
| </div> |
|
|
| |
| <div class="bg-slate-900/50 border border-slate-800/80 rounded-xl backdrop-blur-sm overflow-hidden"> |
| <div class="flex items-center justify-between px-5 py-3 border-b border-slate-800/60"> |
| <div class="flex items-center gap-2"> |
| <i data-lucide="activity" class="w-4 h-4 text-green-400"></i> |
| <h2 class="text-sm font-semibold text-white">System Health</h2> |
| </div> |
| </div> |
| <div class="p-4 space-y-4"> |
| <div> |
| <div class="flex justify-between text-xs mb-1.5"> |
| <span class="text-slate-400">CPU Usage</span> |
| <span class="font-mono text-cyan-400" id="cpuVal">0%</span> |
| </div> |
| <div class="w-full bg-slate-800 rounded-full h-2"> |
| <div class="bg-gradient-to-r from-cyan-500 to-blue-500 h-2 rounded-full transition-all duration-500" id="cpuBar" style="width: 0%"></div> |
| </div> |
| </div> |
| <div> |
| <div class="flex justify-between text-xs mb-1.5"> |
| <span class="text-slate-400">Memory</span> |
| <span class="font-mono text-purple-400" id="memVal">0%</span> |
| </div> |
| <div class="w-full bg-slate-800 rounded-full h-2"> |
| <div class="bg-gradient-to-r from-purple-500 to-pink-500 h-2 rounded-full transition-all duration-500" id="memBar" style="width: 0%"></div> |
| </div> |
| </div> |
| <div> |
| <div class="flex justify-between text-xs mb-1.5"> |
| <span class="text-slate-400">Network I/O</span> |
| <span class="font-mono text-green-400" id="netVal">0%</span> |
| </div> |
| <div class="w-full bg-slate-800 rounded-full h-2"> |
| <div class="bg-gradient-to-r from-green-500 to-emerald-500 h-2 rounded-full transition-all duration-500" id="netBar" style="width: 0%"></div> |
| </div> |
| </div> |
| <div> |
| <div class="flex justify-between text-xs mb-1.5"> |
| <span class="text-slate-400">Disk Usage</span> |
| <span class="font-mono text-amber-400" id="diskVal">0%</span> |
| </div> |
| <div class="w-full bg-slate-800 rounded-full h-2"> |
| <div class="bg-gradient-to-r from-amber-500 to-orange-500 h-2 rounded-full transition-all duration-500" id="diskBar" style="width: 0%"></div> |
| </div> |
| </div> |
| |
| <div class="pt-2 border-t border-slate-800/60"> |
| <div class="flex items-center justify-between mb-2"> |
| <span class="text-xs text-slate-500">Throughput (last 60s)</span> |
| </div> |
| <canvas id="sparkline" class="w-full" height="50"></canvas> |
| </div> |
| </div> |
| </div> |
| </div> |
|
|
| |
| <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6"> |
| |
| |
| <div class="bg-slate-900/50 border border-slate-800/80 rounded-xl backdrop-blur-sm overflow-hidden"> |
| <div class="flex items-center justify-between px-5 py-3 border-b border-slate-800/60"> |
| <div class="flex items-center gap-2"> |
| <i data-lucide="zap" class="w-4 h-4 text-cyan-400"></i> |
| <h2 class="text-sm font-semibold text-white">Quick Scan</h2> |
| </div> |
| </div> |
| <div class="p-4 space-y-3"> |
| <input type="text" id="scanTarget" placeholder="Enter target (domain, IP, CIDR)..." |
| class="w-full bg-slate-950 border border-slate-700 rounded-lg px-3 py-2.5 text-sm text-slate-200 placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-cyan-500/30 focus:border-cyan-500/50 font-mono transition-all"> |
| <div class="grid grid-cols-2 gap-2"> |
| <button onclick="startScan('recon')" class="scan-btn flex items-center justify-center gap-1.5 bg-cyan-600/10 hover:bg-cyan-600/20 border border-cyan-500/20 hover:border-cyan-500/40 rounded-lg py-2 text-xs font-semibold text-cyan-400 transition-all"> |
| <i data-lucide="eye" class="w-3.5 h-3.5"></i>Recon |
| </button> |
| <button onclick="startScan('vuln')" class="scan-btn flex items-center justify-center gap-1.5 bg-red-600/10 hover:bg-red-600/20 border border-red-500/20 hover:border-red-500/40 rounded-lg py-2 text-xs font-semibold text-red-400 transition-all"> |
| <i data-lucide="bug" class="w-3.5 h-3.5"></i>Vuln Scan |
| </button> |
| <button onclick="startScan('dork')" class="scan-btn flex items-center justify-center gap-1.5 bg-amber-600/10 hover:bg-amber-600/20 border border-amber-500/20 hover:border-amber-500/40 rounded-lg py-2 text-xs font-semibold text-amber-400 transition-all"> |
| <i data-lucide="search" class="w-3.5 h-3.5"></i>Dork Scan |
| </button> |
| <button onclick="startScan('full')" class="scan-btn flex items-center justify-center gap-1.5 bg-purple-600/10 hover:bg-purple-600/20 border border-purple-500/20 hover:border-purple-500/40 rounded-lg py-2 text-xs font-semibold text-purple-400 transition-all"> |
| <i data-lucide="radar" class="w-3.5 h-3.5"></i>Full Audit |
| </button> |
| </div> |
| |
| <div id="scanProgress" class="hidden"> |
| <div class="flex items-center justify-between text-xs mb-1.5"> |
| <span class="text-slate-400 font-mono" id="scanStage">Initializing...</span> |
| <span class="text-cyan-400 font-mono" id="scanPercent">0%</span> |
| </div> |
| <div class="w-full bg-slate-800 rounded-full h-1.5"> |
| <div class="bg-gradient-to-r from-cyan-500 to-blue-500 h-1.5 rounded-full transition-all duration-300" id="scanBar" style="width: 0%"></div> |
| </div> |
| </div> |
| </div> |
| </div> |
|
|
| |
| <div class="bg-slate-900/50 border border-slate-800/80 rounded-xl backdrop-blur-sm overflow-hidden"> |
| <div class="flex items-center justify-between px-5 py-3 border-b border-slate-800/60"> |
| <div class="flex items-center gap-2"> |
| <i data-lucide="compass" class="w-4 h-4 text-amber-400"></i> |
| <h2 class="text-sm font-semibold text-white">Recent Discoveries</h2> |
| </div> |
| <a href="index.html" class="text-xs text-cyan-400 hover:text-cyan-300 transition-colors font-mono">VIEW ALL →</a> |
| </div> |
| <div class="overflow-y-auto p-3 space-y-2" style="max-height: 280px;" id="discoveriesList"> |
| |
| </div> |
| </div> |
|
|
| |
| <div class="bg-slate-900/50 border border-slate-800/80 rounded-xl backdrop-blur-sm overflow-hidden"> |
| <div class="flex items-center justify-between px-5 py-3 border-b border-slate-800/60"> |
| <div class="flex items-center gap-2"> |
| <i data-lucide="crosshair" class="w-4 h-4 text-red-400"></i> |
| <h2 class="text-sm font-semibold text-white">Top Targeted Assets</h2> |
| </div> |
| </div> |
| <div class="overflow-y-auto p-3 space-y-2" style="max-height: 280px;" id="topTargetsList"> |
| |
| </div> |
| </div> |
| </div> |
|
|
| </div> |
|
|
| |
| <div id="ccToast" class="fixed bottom-6 right-6 z-50 transform translate-y-20 opacity-0 transition-all duration-300"> |
| <div class="bg-slate-900 border border-slate-700 rounded-xl px-4 py-3 shadow-2xl flex items-center gap-3"> |
| <div class="w-8 h-8 bg-cyan-500/20 rounded-lg flex items-center justify-center"> |
| <i data-lucide="check" class="w-4 h-4 text-cyan-400"></i> |
| </div> |
| <span class="text-sm font-medium text-slate-200" id="ccToastMsg">Notification</span> |
| </div> |
| </div> |
|
|
| <script src="https://unpkg.com/lucide@latest"></script> |
| <script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script> |
| <script src="api-service.js"></script> |
| <script src="command-center.js"></script> |
| </body> |
| </html> |