:root {
  --bg:#0d1117; --surface:#161b22; --surface2:#1c2330; --border:#21262d; --border2:#30363d;
  --accent:#1f8cf0; --danger:#f85149;
  --text:#c9d1d9; --text-dim:#6e7681; --text-bright:#f0f6fc;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'DM Sans',sans-serif;
  overflow:hidden;
}

/* grade de fundo */
body::before{
  content:'';
  position:fixed;inset:0;
  background-image:
    linear-gradient(rgba(31,140,240,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(31,140,240,.04) 1px,transparent 1px);
  background-size:40px 40px;
  pointer-events:none;
  z-index:0;
}

/* brilho central */
body::after{
  content:'';
  position:fixed;
  width:600px;height:600px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(31,140,240,.06) 0%,transparent 70%);
  top:50%;left:50%;transform:translate(-50%,-50%);
  pointer-events:none;
  z-index:0;
}

.login-screen{
  position:fixed;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  z-index:1;
}

.login-card{
  width:min(420px,100%);
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:14px;
  padding:48px 40px 40px;
  display:flex;
  flex-direction:column;
  align-items:center;
}

.logo-wrap{
  margin-bottom:36px;
  text-align:center;
}
.logo-wrap img{
  height:72px;
  object-fit:contain;
}

.login-title{
  font-family:'Rajdhani',sans-serif;
  font-size:20px;
  font-weight:700;
  color:var(--text-bright);
  margin-bottom:4px;
  text-align:center;
}
.login-subtitle{
  font-size:12px;
  color:var(--text-dim);
  margin-bottom:32px;
  text-align:center;
}

.form-group{width:100%;margin-bottom:16px}
.form-label{display:block;font-size:12px;color:var(--text-dim);margin-bottom:6px;letter-spacing:.5px}
.form-input{
  width:100%;
  background:var(--surface2);
  border:1px solid var(--border2);
  color:var(--text);
  padding:11px 14px;
  border-radius:6px;
  font-size:14px;
  font-family:'DM Sans',sans-serif;
  transition:border-color .2s;
}
.form-input:focus{outline:none;border-color:var(--accent)}
.form-input::placeholder{color:var(--text-dim)}

.login-btn{
  width:100%;
  background:var(--accent);
  color:#fff;
  border:none;
  padding:12px;
  border-radius:6px;
  font-size:14px;
  font-weight:600;
  cursor:pointer;
  margin-top:8px;
  transition:opacity .2s;
  font-family:'DM Sans',sans-serif;
  letter-spacing:.3px;
}
.login-btn:hover{opacity:.85}
.login-btn:disabled{opacity:.5;cursor:not-allowed}

.login-error{
  background:rgba(248,81,73,.1);
  border:1px solid rgba(248,81,73,.3);
  color:var(--danger);
  padding:10px 14px;
  border-radius:6px;
  font-size:13px;
  margin-top:14px;
  display:none;
  width:100%;
}
.login-error.show{display:block}

.login-footer{
  margin-top:28px;
  font-size:10px;
  color:var(--text-dim);
  letter-spacing:1px;
  text-transform:uppercase;
  opacity:.5;
  text-align:center;
}

/* iOS / Android */
button, input{ touch-action:manipulation; -webkit-tap-highlight-color:transparent }
.login-btn{ min-height:48px }
@media(max-width:560px){
  .login-screen{ padding:12px }
  .form-input{ font-size:16px }
  .login-card{ padding:28px 18px 24px }
}
@media(max-width:375px){
  .login-card{ padding:22px 14px 20px }
  .logo-wrap{ margin-bottom:24px }
  .logo-wrap img{ height:56px }
}
