/* ZHEUS PUBLIC AUTH SHARED SURFACE — R2
   Visual authority: /login/index.php
*/
*{box-sizing:border-box}

html,body{min-height:100%}

body.zpa-body{
  min-height:100vh;
  margin:0;
  display:grid;
  place-items:center;
  padding:24px;
  background:radial-gradient(circle at top,#172554 0,#080d1c 45%,#040711 100%);
  color:#e5e7eb;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
}

.zpa-shell{
  width:100%;
  display:grid;
  place-items:center;
}

.zpa-card{
  width:min(100%,430px);
  padding:34px;
  border:1px solid rgba(148,163,184,.18);
  border-radius:24px;
  background:rgba(15,23,42,.90);
  box-shadow:0 28px 80px rgba(0,0,0,.38);
}

.zpa-card h1{
  margin:0;
  font-size:30px;
  line-height:1.15;
}

.zpa-subtitle{
  margin:10px 0 28px;
  color:#94a3b8;
  line-height:1.55;
}

.zpa-content{
  margin:0;
}

.zpa-form{
  margin:0;
}

.zpa-field{
  margin-top:16px;
}

.zpa-field:first-of-type{
  margin-top:0;
}

.zpa-field label{
  display:block;
  margin-bottom:7px;
  font-size:13px;
  font-weight:700;
  color:#cbd5e1;
}

.zpa-field input{
  width:100%;
  padding:13px 14px;
  border:1px solid #334155;
  border-radius:12px;
  background:#0f172a;
  color:#f8fafc;
  font:inherit;
}

.zpa-field input:focus{
  outline:2px solid #8fbdff;
  outline-offset:2px;
}

.zpa-primary{
  width:100%;
  margin-top:22px;
  padding:14px;
  border:0;
  border-radius:12px;
  background:#2563eb;
  color:white;
  font:inherit;
  font-weight:800;
  cursor:pointer;
}

.zpa-primary:hover{
  filter:brightness(1.06);
}

.zpa-primary:focus-visible,
.zpa-back:focus-visible{
  outline:2px solid #8fbdff;
  outline-offset:4px;
  border-radius:4px;
}

.zpa-back-row{
  margin:22px 0 0;
  text-align:center;
}

.zpa-back{
  color:#8fbdff;
  font-size:.95rem;
  font-weight:700;
  text-decoration:none;
}

.zpa-back:hover{
  text-decoration:underline;
}

/* State distinction stays semantic and quiet: same login card, no parallel visual system. */
.zpa-card--success{
  border-color:rgba(52,211,153,.24);
}

.zpa-card--error{
  border-color:rgba(248,113,113,.24);
}

.zpa-eyebrow{
  margin:0 0 10px;
  color:#94a3b8;
  font-size:12px;
  line-height:1.5;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}

@media (max-width:520px){
  body.zpa-body{padding:16px}
  .zpa-card{padding:28px 22px}
}

@media (prefers-reduced-motion:reduce){
  .zpa-primary{transition:none!important}
}
