[hidden] { display: none !important; }

.auth-gate {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  color: #173637;
  background:
    radial-gradient(circle at 16% 12%, rgba(255, 163, 56, .20), transparent 34%),
    radial-gradient(circle at 86% 82%, rgba(0, 157, 159, .18), transparent 36%),
    #f4f2ea;
}

.auth-card {
  width: min(100%, 430px);
  padding: 34px;
  border: 1px solid rgba(1, 38, 40, .12);
  border-radius: 24px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 28px 80px rgba(1, 38, 40, .14);
}

.auth-brand {
  display: flex;
  gap: 14px;
  align-items: center;
  margin-bottom: 28px;
}

.auth-brand .brand-mark {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 15px;
  background: #012628;
}

.auth-brand strong,
.auth-brand small { display: block; }
.auth-brand strong { font-size: 1.08rem; }
.auth-brand small { margin-top: 2px; color: #667878; }
.auth-card h1 { margin: 0 0 8px; font-size: 1.8rem; }
.auth-copy { margin: 0 0 24px; color: #5f7070; line-height: 1.55; }
.auth-form { display: grid; gap: 16px; }
.auth-form label { display: grid; gap: 7px; font-weight: 600; }
.auth-form input {
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  border: 1px solid #c7d1ce;
  border-radius: 12px;
  color: #173637;
  background: #fff;
  font: inherit;
}
.auth-form input:focus { outline: 3px solid rgba(0, 157, 159, .18); border-color: #009d9f; }
.auth-submit { justify-content: center; min-height: 48px; margin-top: 4px; }
.auth-submit[disabled] { cursor: wait; opacity: .7; }
.auth-error { min-height: 22px; margin: 0; color: #a1352d; font-weight: 600; }
.auth-help { margin: -4px 0 0; color: #667878; font-size: .9rem; line-height: 1.45; }
.auth-link {
  justify-self: center;
  padding: 5px;
  border: 0;
  color: #007f81;
  background: transparent;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.auth-link:hover { text-decoration: underline; }
.auth-link[disabled] { cursor: wait; opacity: .65; }
.auth-status { margin: 16px 0 0; color: #176b55; font-weight: 600; line-height: 1.45; text-align: center; }
.auth-status:empty { display: none; }
.auth-environment { margin: 20px 0 0; color: #6a7978; font-size: .82rem; text-align: center; }

.auth-logout {
  margin-left: auto;
  padding: 7px 9px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 9px;
  color: rgba(255, 255, 255, .82);
  background: transparent;
  cursor: pointer;
}
.auth-logout:hover { color: #fff; background: rgba(255, 255, 255, .08); }

@media (max-width: 720px) {
  .auth-gate { padding: 14px; }
  .auth-card { padding: 26px 22px; border-radius: 20px; }
}
