/* Telas de autenticacao: login, recuperacao de senha */
:root{
  --bg:#0d1117; --panel:#161c26; --panel2:#1c2430;
  --accent:#4f9eff; --accent2:#2f7edb;
  --text:#e6edf3; --muted:#8b949e; --ok:#3fb950; --warn:#d29922; --err:#f85149;
  --border:#262d38;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  background:var(--bg);color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;
}
body::before{
  content:"";position:fixed;top:-35%;left:50%;transform:translateX(-50%);
  width:720px;height:720px;pointer-events:none;
  background:radial-gradient(circle,rgba(79,158,255,.10) 0%,transparent 62%);
}
.box{
  position:relative;width:100%;max-width:400px;padding:34px 34px 26px;
  background:var(--panel);border:1px solid var(--border);border-radius:16px;
  box-shadow:0 24px 60px rgba(0,0,0,.5);text-align:center;
}
.brand{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:26px}
.brand-logo{width:42px;height:42px;border-radius:50%;display:block}
.brand-text{font-size:22px;font-weight:700;letter-spacing:.3px;line-height:1}
.brand-text span{color:var(--accent)}

h1{font-size:20px;font-weight:700;margin-bottom:10px}
.sub{font-size:14px;color:var(--muted);line-height:1.6;margin-bottom:22px}
.sub strong{color:var(--text)}
.hint{font-size:12px;color:var(--muted);margin:-10px 0 20px}

label{display:block;text-align:left;font-size:11px;color:var(--muted);
      text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px;font-weight:600}
input[type=email],input[type=password],input[type=text]{
  background:#0b0f14;color:var(--text);border:1px solid var(--border);
  border-radius:8px;padding:12px 13px;width:100%;font-size:14.5px;
  margin-bottom:16px;font-family:inherit;transition:border-color .15s;
}
input:focus{outline:none;border-color:var(--accent)}

button,.btn-primary{
  display:block;width:100%;background:linear-gradient(135deg,var(--accent),var(--accent2));
  color:#fff;border:0;border-radius:9px;padding:13px 18px;font-size:14.5px;
  font-weight:600;cursor:pointer;font-family:inherit;text-decoration:none;
  box-shadow:0 4px 18px rgba(79,158,255,.28);transition:transform .15s,box-shadow .2s;
}
button:hover,.btn-primary:hover{box-shadow:0 6px 24px rgba(79,158,255,.4)}
button:active{transform:scale(.985)}
button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}

.btn-ghost{
  display:block;width:100%;background:transparent;color:var(--text);
  border:1px solid var(--border);border-radius:9px;padding:12px 18px;
  font-size:14px;font-weight:600;text-decoration:none;transition:border-color .15s,color .15s;
}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}

.link-back{display:inline-block;margin-top:16px;font-size:13px;color:var(--muted);text-decoration:none}
.link-back:hover{color:var(--accent)}
.link-forgot{display:block;text-align:right;font-size:12.5px;color:var(--muted);
             text-decoration:none;margin:-8px 0 18px}
.link-forgot:hover{color:var(--accent)}

.err{background:rgba(248,81,73,.1);color:var(--err);padding:11px 14px;border-radius:8px;
     border:1px solid rgba(248,81,73,.3);margin-bottom:18px;font-size:13px;text-align:left}

.icon-ok,.icon-warn{
  width:56px;height:56px;border-radius:50%;margin:0 auto 18px;
  display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;
}
.icon-ok{background:rgba(63,185,80,.12);color:var(--ok);border:1px solid rgba(63,185,80,.3)}
.icon-warn{background:rgba(210,153,34,.12);color:var(--warn);border:1px solid rgba(210,153,34,.3)}

/* Medidor de forca da senha */
.meter{height:4px;background:var(--panel2);border-radius:2px;overflow:hidden;margin:-8px 0 5px}
.meter-bar{height:100%;width:0;border-radius:2px;transition:width .25s,background .25s}
.meter-label{font-size:11.5px;color:var(--muted);text-align:left;margin-bottom:14px;min-height:16px}
.match{font-size:11.5px;text-align:left;margin:-10px 0 16px;min-height:16px}
.match.ok{color:var(--ok)}
.match.no{color:var(--err)}

.foot{margin-top:22px;padding-top:16px;border-top:1px solid var(--border);
      font-size:11px;color:var(--muted)}
