Spaces:
Runtime error
Runtime error
| <html lang="id" class="dark"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Akses Panel</title> | |
| <link rel="icon" type="image/jpeg" href="https://cdn.yupra.my.id/yp/4r4oy0ze.jpg"> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <script> | |
| tailwind.config = { | |
| darkMode: 'class', | |
| theme: { | |
| extend: { | |
| colors: { | |
| primary: '#6366f1', | |
| darkbg: '#0f172a', | |
| cardbg: '#1e293b' | |
| } | |
| } | |
| } | |
| } | |
| </script> | |
| <style> | |
| .glass { background: rgba(30, 41, 59, 0.7); backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.05); } | |
| </style> | |
| </head> | |
| <body class="bg-[#020617] text-slate-300 min-h-screen flex items-center justify-center p-4"> | |
| <div class="glass max-w-md w-full p-8 rounded-2xl shadow-2xl space-y-6"> | |
| <div class="text-center"> | |
| <div class="w-16 h-16 bg-gradient-to-br from-primary to-indigo-700 rounded-xl mx-auto flex items-center justify-center mb-4 shadow-lg shadow-primary/20"> | |
| <svg class="w-8 h-8 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"/></svg> | |
| </div> | |
| <h1 class="text-2xl font-bold text-white">Verifikasi Akses</h1> | |
| <p class="text-sm text-slate-500 mt-2">Masukan Secret Keys Untuk login</p> | |
| </div> | |
| <form id="login-form" class="space-y-4"> | |
| <div> | |
| <input type="password" id="secret" placeholder="Secret Code" class="w-full bg-slate-900/50 border border-slate-700 rounded-xl px-4 py-3.5 text-white focus:border-primary focus:ring-1 focus:ring-primary outline-none transition text-center tracking-widest" required> | |
| </div> | |
| <button type="submit" class="w-full bg-primary hover:bg-indigo-600 text-white font-bold py-3.5 rounded-xl transition-all shadow-lg shadow-primary/20 active:scale-[0.98]"> | |
| LOGIN | |
| </button> | |
| </form> | |
| </div> | |
| <script> | |
| document.getElementById('login-form').addEventListener('submit', async (e) => { | |
| e.preventDefault(); | |
| const secret = document.getElementById('secret').value; | |
| try { | |
| const req = await fetch('/login', { | |
| method: 'POST', | |
| headers: { 'Content-Type': 'application/json' }, | |
| body: JSON.stringify({ secret }) | |
| }); | |
| const res = await req.json(); | |
| if (res.status) { | |
| window.location.href = '/'; | |
| } else { | |
| alert('Akses Ditolak: Kode Salah'); | |
| } | |
| } catch (err) { | |
| alert('Gagal terhubung ke server'); | |
| } | |
| }); | |
| </script> | |
| </body> | |
| </html> | |