:root{
  --bg: #0b1422;
  --bg-elev: #111a2a;
  --panel: #142033;
  --muted: #8aa0c2;
  --text: #e7eefc;
  --brand: #3b82f6;
  --brand-600: #2563eb;
  --red: #ef4444;
  --ring: rgba(59,130,246,.35);
  --radius: 14px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:Inter,system-ui,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text);
  background:
    radial-gradient(60% 40% at 50% 10%, rgba(59,130,246,.15), transparent 60%),
    linear-gradient(180deg, var(--bg), #08101c 60%);
}

/* Top bar */
.topbar{
  height:60px;
  padding:0 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid rgba(255,255,255,.05);
  background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.0));
  position:sticky; top:0; z-index:10;
}
.brand{font-weight:600; letter-spacing:.2px}
.actions{display:flex; gap:10px}

/* Buttons (unified sizes & fonts) */
.btn{
  --h: 36px;
  height:var(--h);
  padding:0 14px;
  border-radius:10px;
  border:1px solid transparent;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-weight:600;
  line-height:1;
  font-size:14px;
  cursor:pointer;
  text-decoration:none;
  transition:.15s ease-in-out;
}
.btn-primary{
  color:#fff;
  background:var(--brand);
  border-color:rgba(255,255,255,.06);
}
.btn-primary:hover{ background:var(--brand-600) }
.btn-secondary{
  color:var(--text);
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.08);
}
.btn-secondary:hover{ background:rgba(255,255,255,.10) }
.btn-block{ width:100%; height:44px; border-radius:12px; margin-top:8px }

/* Layout */
.page{
  min-height:calc(100dvh - 60px - 48px);
  display:grid;
  place-items:center;
  padding:40px 16px;
}
.card{
  width:100%;
  max-width:520px;
  background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01));
  border:1px solid rgba(255,255,255,.06);
  border-radius:var(--radius);
  box-shadow:0 10px 40px rgba(0,0,0,.35);
  padding:28px 26px 22px;
  backdrop-filter: blur(8px);
}
.card-title{ margin:2px 0 14px; font-size:28px }

/* Form */
.form{ display:grid; gap:14px }
.field{ display:grid; gap:6px }
label{ color:var(--muted); font-size:13px }
input{
  height:44px; border-radius:12px;
  border:1px solid rgba(255,255,255,.08);
  background:var(--panel);
  color:var(--text);
  padding:0 12px;
  outline: none;
}
input:focus{
  border-color:var(--brand);
  box-shadow:0 0 0 4px var(--ring);
}
input::placeholder{ color:#7890b7 }

.error{
  margin:8px 0 0;
  color:#fff; background:linear-gradient(180deg, rgba(239,68,68,.22), rgba(239,68,68,.16));
  border:1px solid rgba(239,68,68,.45);
  border-radius:10px; padding:10px 12px; font-size:14px;
}
.hint{ margin:8px 0 0; color:var(--muted); font-size:12px }

.footer{
  height:48px; display:grid; place-items:center;
  color:var(--muted); font-size:12px;
  border-top:1px solid rgba(255,255,255,.05);
}
