*{box-sizing:border-box;margin:0;padding:0}

body{
background:url("bg.jpg") center/cover fixed;
font-family:Tahoma,Arial,sans-serif;
display:flex;
justify-content:center;
align-items:center;
min-height:100vh;
color:#e5e7eb;
}

body::before{
content:"";
position:fixed;
inset:0;
background:rgba(5,10,25,.75);
z-index:-1;
}

.login-frame{
background:linear-gradient(180deg,#0b1220,#020617);
border:2px solid #334155;
border-radius:14px;
width:100%;
max-width:460px;
box-shadow:0 0 60px #000;
padding:14px;
}

.login-header{
text-align:center;
margin-bottom:12px;
}

.logo{
width:180px;
margin-bottom:6px;
}

.login-header h1{
font-size:20px;
color:#f8fafc;
}

.login-header p{
font-size:12px;
color:#94a3b8;
}

.login-panel{
background:rgba(2,6,23,.9);
border:1px solid #1e293b;
border-radius:10px;
padding:18px;
}

#dropzone{
border:2px dashed #475569;
border-radius:10px;
padding:16px;
text-align:center;
cursor:pointer;
margin-bottom:12px;
font-size:13px;
color:#cbd5f5;
position:relative;
}

#dropzone:hover{
border-color:#60a5fa;
background:rgba(255,255,255,.03);
}

#dropzone input{
position:absolute;
inset:0;
opacity:0;
cursor:pointer;
}

canvas{
display:block;
margin:10px auto;
border:1px solid #475569;
image-rendering:pixelated;
}

#zoom{
border:2px solid #60a5fa;
}

button{
width:100%;
background:linear-gradient(#2563eb,#1d4ed8);
border:none;
padding:12px;
border-radius:8px;
color:white;
font-weight:bold;
cursor:pointer;
margin-top:10px;
}

button:hover{filter:brightness(1.15)}

.progress{
width:100%;
height:10px;
background:#1e293b;
border-radius:6px;
overflow:hidden;
margin-top:12px;
}

.bar{
height:100%;
width:0%;
background:#22c55e;
transition:width .3s ease;
}

.success{
margin-top:12px;
padding:10px;
border-radius:8px;
background:rgba(34,197,94,.15);
border:1px solid #22c55e;
color:#86efac;
font-size:14px;
animation:successPulse .6s ease;
}

.hidden{display:none}

@keyframes successPulse{
0%{transform:scale(.9);opacity:0}
60%{transform:scale(1.05);opacity:1}
100%{transform:scale(1);opacity:1}
}

.counter{
margin-top:10px;
font-size:12px;
color:#cbd5f5;
text-align:center;
}
