:root {
  font-family: "Montserrat", system-ui, sans-serif;
  color: #f4f7f5;
  --green: #00d98b;
}
* { box-sizing: border-box; }
html, body { min-height: 100%; }
body {
  margin: 0;
  min-height: 100vh;
  display: grid;
  place-items: center;
  background:
    linear-gradient(rgba(3,18,12,.58), rgba(3,18,12,.72)),
    url("/static/assets/fundo_fs.png") center center / cover fixed no-repeat;
}
.login-shell { width: min(92vw, 430px); }
.login-card {
  padding: 30px;
  border: 1px solid rgba(0,217,139,.80);
  border-radius: 14px;
  background: rgba(10,28,20,.82);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 24px 70px rgba(0,0,0,.28);
}
.brand-line { display:flex; align-items:center; gap:10px; color:#9ff0cc; font-size:11px; font-weight:800; letter-spacing:.08em; }
.brand-line img { width:28px; height:28px; object-fit:contain; }
h1 { margin:16px 0 7px; font-size:29px; line-height:1.05; }
.subtitle { margin:0 0 24px; color:#a9bbb2; font-size:12px; }
form { display:grid; gap:15px; }
label { display:grid; gap:6px; }
label > span { color:#bcd0c6; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
input[type="text"], input[type="password"] {
  width:100%; height:44px; padding:0 12px;
  border:1px solid rgba(0,217,139,.55); border-radius:8px;
  outline:none; background:rgba(5,20,14,.78); color:#fff; font:600 13px "Montserrat",sans-serif;
}
input:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(0,217,139,.12); }
.remember { display:flex; grid-template-columns:auto 1fr; align-items:center; gap:9px; }
.remember span { text-transform:none; letter-spacing:0; font-weight:500; color:#9fb3a9; }
button {
  height:44px; border:1px solid var(--green); border-radius:8px;
  background:rgba(0,217,139,.14); color:#62f3bb; font:800 12px "Montserrat",sans-serif; cursor:pointer;
}
button:hover { background:rgba(0,217,139,.22); }
button:disabled { opacity:.55; cursor:wait; }
.error { min-height:17px; margin:0; color:#ff7676; font-size:11px; }
.login-card > small { display:block; margin-top:18px; color:#789488; font-size:9px; text-align:center; }
@media (max-width: 520px) {
  .login-card { padding:24px 20px; }
  h1 { font-size:25px; }
}
