:root{
  --auth-ink:#171914;
  --auth-muted:#666b5d;
  --auth-line:rgba(23,25,20,.14);
  --auth-accent:#aee51f;
}

.auth-page{
  min-height:100vh;
  background:
    radial-gradient(circle at 88% 3%,rgba(174,229,31,.22),transparent 30rem),
    linear-gradient(180deg,#fbfaf5 0%,#f0eee5 100%);
  color:var(--auth-ink);
}

.auth-header{
  max-width:1320px;
  margin:0 auto;
  padding:24px 32px;
}

.auth-header .brand-mark{
  background:var(--auth-accent);
}

.auth-header .brand-text span{
  color:var(--auth-muted);
}

.auth-main{
  display:grid;
  place-items:center;
  min-height:calc(100vh - 102px);
  padding:30px 20px 70px;
}

.auth-card{
  width:min(100%,520px);
  padding:clamp(28px,5vw,48px);
  border:1px solid var(--auth-line);
  border-radius:30px;
  background:rgba(255,255,255,.88);
  box-shadow:0 30px 90px rgba(35,38,28,.13);
}

.auth-card-wide{
  width:min(100%,920px);
}

.auth-card h1{
  margin-bottom:18px;
  font-size:clamp(2.5rem,7vw,4.6rem);
}

.auth-intro{
  margin-bottom:28px;
  color:var(--auth-muted);
}

.auth-form{
  display:grid;
  gap:10px;
}

.auth-form label{
  margin-top:8px;
  font-size:.86rem;
  font-weight:850;
}

.auth-form input{
  width:100%;
  min-height:52px;
  padding:0 16px;
  border:1px solid var(--auth-line);
  border-radius:14px;
  background:#fff;
  color:var(--auth-ink);
  font:inherit;
}

.auth-form input:focus{
  border-color:#718f14;
  outline:3px solid rgba(174,229,31,.3);
  outline-offset:2px;
}

.auth-submit{
  min-height:54px;
  margin-top:18px;
  padding:0 22px;
  border:0;
  border-radius:999px;
  background:var(--auth-ink);
  color:#fff;
  font:inherit;
  font-weight:850;
  cursor:pointer;
}

.auth-submit:hover,
.auth-submit:focus-visible{
  background:#30342b;
  outline:3px solid rgba(174,229,31,.38);
  outline-offset:2px;
}

.auth-submit:disabled{
  cursor:not-allowed;
  opacity:.45;
}

.auth-message{
  margin:0 0 22px;
  padding:15px 17px;
  border-radius:15px;
  font-size:.94rem;
}

.auth-message a,
.setup-links a{
  text-decoration:underline;
  text-underline-offset:3px;
}

.auth-message-error{
  border:1px solid rgba(181,52,38,.24);
  background:#fff0ec;
  color:#772b22;
}

.auth-message-notice{
  border:1px solid rgba(116,137,47,.28);
  background:#f5f9e8;
}

.auth-message-success{
  border:1px solid rgba(42,133,76,.24);
  background:#edf9f1;
  color:#1f6337;
}

.auth-message ul{
  margin:8px 0 0;
  padding-left:20px;
}

.auth-back{
  display:inline-flex;
  margin-top:27px;
  color:var(--auth-muted);
  font-weight:780;
}

.setup-form{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
}

.setup-form fieldset{
  display:grid;
  gap:8px;
  min-width:0;
  margin:0;
  padding:22px;
  border:1px solid var(--auth-line);
  border-radius:20px;
}

.setup-form legend{
  padding:0 8px;
  font-weight:900;
}

.setup-form .auth-submit{
  grid-column:1/-1;
  justify-self:start;
}

.setup-links{
  display:flex;
  flex-wrap:wrap;
  gap:12px 22px;
  margin:-8px 0 26px;
  font-weight:800;
}

@media (max-width:720px){
  .auth-header{padding:18px 20px}
  .auth-main{align-items:start;padding-top:12px}
  .auth-card{padding:26px 20px;border-radius:24px}
  .setup-form{grid-template-columns:1fr}
  .setup-form .auth-submit{grid-column:auto;width:100%}
}
