
/* login.css - Extracted from pages\login.html */
/* === From pages\login.html === */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{background:#000;color:#fff;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;overflow-y:auto;overflow-x:hidden;height:100%;min-height:100vh;min-height:-webkit-fill-available;-webkit-overflow-scrolling:touch;touch-action:manipulation}
.h-full{height:100%}.w-full{width:100%}.flex{display:flex}.flex-1{flex:1}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}
.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}
.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.inset-0{top:0;right:0;bottom:0;left:0}.z-10{z-index:10}.z-50{z-index:50}
.hidden{display:none}
.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-12{padding:3rem}
.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}
.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}
.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-12{padding-left:3rem}.pr-4{padding-right:1rem}
.mx-auto{margin-left:auto;margin-right:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}
.space-y-1>*+*{margin-top:.25rem}.space-y-1\.5>*+*{margin-top:.375rem}.space-y-2>*+*{margin-top:.5rem}.space-y-3>*+*{margin-top:.75rem}.space-y-4>*+*{margin-top:1rem}.space-y-5>*+*{margin-top:1.25rem}.space-y-6>*+*{margin-top:1.5rem}
.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}
.text-left{text-align:left}.text-center{text-align:center}
.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-6xl{font-size:3.75rem}
.font-medium{font-weight:500}.font-bold{font-weight:700}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.uppercase{text-transform:uppercase}
.text-white{color:#fff}.text-zinc-200{color:#e4e4e7}.text-zinc-400{color:#a1a1aa}.text-zinc-500{color:#71717a}.text-zinc-600{color:#52525b}.text-zinc-700{color:#3f3f46}
.text-emerald-400{color:#33ff33}.text-emerald-500{color:#00ff00}.text-red-200{color:#fecaca}.text-red-400{color:#f87171}.text-red-500{color:#ef4444}.text-yellow-200{color:#fef08a}.text-yellow-500{color:#eab308}
.bg-black{background:#000}.bg-white{background:#fff}.bg-emerald-600{background:#00cc00}.bg-emerald-500{background:#00ff00}.bg-zinc-800{background:#27272a}.bg-zinc-900{background:#18181b}
.border{border:1px solid}.border-t{border-top:1px solid}.border-b{border-bottom:1px solid}.border-dashed{border-style:dashed}
.border-white\/5{border-color:rgba(255,255,255,.05)}.border-white\/10{border-color:rgba(255,255,255,.1)}.border-emerald-500\/20{border-color:rgba(0,255,0,.2)}.border-emerald-500\/30{border-color:rgba(0,255,0,.3)}.border-red-500\/20{border-color:rgba(239,68,68,.2)}.border-yellow-500\/20{border-color:rgba(234,179,8,.2)}.border-zinc-700{border-color:#3f3f46}.border-zinc-800{border-color:#27272a}
.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}
.transition-all{transition:all .2s}.transition-colors{transition:color .2s,background-color .2s,border-color .2s}.transition-opacity{transition:opacity .2s}.transition-transform{transition:transform .2s}
.hover\:bg-white\/5:hover{background:rgba(255,255,255,.05)}.hover\:bg-zinc-200:hover{background:#e4e4e7}.hover\:bg-zinc-700\/50:hover{background:rgba(63,63,70,.5)}.hover\:bg-emerald-500:hover{background:#00ff00}.hover\:bg-\[\#2f363d\]:hover{background:#2f363d}
.hover\:text-emerald-400:hover{color:#33ff33}.hover\:text-white:hover{color:#fff}.hover\:underline:hover{text-decoration:underline}
.hover\:shadow-xl:hover{box-shadow:0 20px 25px -5px rgba(0,0,0,.5)}.hover\:-translate-y-0\.5:hover{transform:translateY(-.125rem)}
.disabled\:opacity-50:disabled{opacity:.5}
.group:hover .group-hover\:opacity-100{opacity:1}.group-focus-within\:text-emerald-500:focus-within{color:#33ff33}
.outline-none{outline:none}
.animate-fade-in{animation:fadeIn .3s ease}.animate-fade-in-up{animation:fadeInUp .6s ease}.animate-scale-in{animation:scaleIn .4s ease}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes scaleIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes slideUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.animate-slide-up{animation:slideUp .3s ease}
.animate-pulse-slow{animation:pulse 4s ease-in-out infinite}
@media(min-width:1024px){.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:text-left{text-align:left}}
.glass-card{background:rgba(0,0,0,.4);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.08)}
.glass{background:rgba(255,255,255,.05);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:16px;transition:all .3s cubic-bezier(.16,1,.3,1)}
.glass:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);transform:translateY(-2px);box-shadow:0 8px 32px rgba(0,0,0,.3)}
@keyframes pulseAnim{0%,100%{opacity:1}50%{opacity:.5}}
.pulse-anim{animation:pulseAnim 2s ease-in-out infinite}
button svg,.btn svg,[role="button"] svg{pointer-events:none}


