:root {
  --bg:#0f172a;
  --card:#1e293b;
  --accent:#3b82f6;
  --accent-hover:#2563eb;
  --text:#f1f5f9;
  --muted:#94a3b8;
  --radius:12px;
}

*{box-sizing:border-box;margin:0;padding:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}

body{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--bg),#0b1220);color:var(--text);padding:1rem;
}

.container{width:100%;max-width:420px}

.card{
  background:var(--card);padding:2.2rem;border-radius:var(--radius);
  box-shadow:0 20px 40px rgba(0,0,0,0.45);display:flex;flex-direction:column;gap:1rem;
  border:1px solid rgba(255,255,255,0.03);
}

.card h1{font-size:1.6rem;font-weight:600}
.subtitle{font-size:.9rem;color:var(--muted)}

.form-group{position:relative}
.form-group input{
  width:100%;padding:1rem .75rem .5rem;border:0;border-bottom:1px solid rgba(255,255,255,0.06);
  background:transparent;color:var(--text);font-size:1rem;outline:none;border-radius:3px 3px 0 0;
}
.form-group label{position:absolute;left:.75rem;top:1rem;font-size:.9rem;color:var(--muted);transition:all .18s ease;pointer-events:none}

.form-group input:focus{border-bottom-color:var(--accent)}
.form-group input:focus + label,
.form-group input:not(:placeholder-shown) + label,
.form-group input:valid + label{transform:translateY(-0.85rem) scale(.85);color:var(--accent)}

.btn-primary{margin-top:.5rem;padding:.9rem;border:0;border-radius:10px;background:linear-gradient(180deg,var(--accent),var(--accent-hover));color:#fff;font-weight:700;cursor:pointer;box-shadow:0 8px 20px rgba(59,130,246,0.18);transition:transform .08s ease,opacity .12s}
.btn-primary:active{transform:translateY(1px) scale(.997)}

.muted.small{color:var(--muted);font-size:.85rem;margin-top:.5rem}

.error-box {
  margin-top: 0.75rem;
  padding: 0.75rem;
  border-radius: 8px;
  background: rgba(220, 38, 38, 0.15);
  border: 1px solid rgba(220, 38, 38, 0.4);
  color: #f87171;
  font-size: 0.9rem;
}
