.auth-gate {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: grid;
  place-items: center;
  min-height: 100svh;
  padding: 24px;
  color: #171512;
  background: #efede8 url("./assets/atelier.jpg") center / cover no-repeat;
}

.auth-gate::before {
  position: absolute;
  inset: 0;
  content: "";
  background: rgba(18, 17, 15, 0.72);
}

.auth-gate[hidden] { display: none; }

.auth-panel {
  position: relative;
  width: min(420px, 100%);
  padding: 36px;
  background: #fbfaf7;
  border: 1px solid rgba(251, 250, 247, 0.45);
  box-shadow: 0 24px 70px rgba(18, 17, 15, 0.26);
}

.auth-brand { display: inline-grid; color: inherit; text-decoration: none; }
.auth-brand strong { font-family: "Songti SC", "STSong", serif; font-size: 24px; font-weight: 400; }
.auth-brand span { margin-top: 3px; color: #746f68; font: 9px Arial, sans-serif; }
.auth-eyebrow { margin: 34px 0 0; color: #95664f !important; font: 9px Arial, sans-serif; }
.auth-panel h1 { margin: 11px 0 8px; font-size: 30px; font-weight: 400; line-height: 1.3; }
.auth-panel > p:not(.auth-eyebrow) { margin: 0; color: #746f68; font-size: 14px; line-height: 1.8; }
.auth-panel form { display: grid; gap: 18px; margin-top: 28px; }
.auth-panel label { display: grid; gap: 7px; }
.auth-panel label span { color: #746f68; font-size: 11px; }
.auth-panel input { width: 100%; min-height: 46px; padding: 10px 12px; color: #171512; background: #fff; border: 1px solid #d8d3ca; border-radius: 0; outline: 0; }
.auth-panel input:focus { border-color: #6f2634; box-shadow: 0 0 0 2px rgba(111, 38, 52, 0.12); }
.auth-submit { min-height: 46px; color: #fbfaf7; background: #171512; border: 1px solid #171512; cursor: pointer; }
.auth-submit:disabled { cursor: wait; opacity: 0.58; }
.auth-panel small { min-height: 18px; color: #8a2f3d; font-size: 11px; line-height: 1.6; }
.auth-return { display: inline-block; margin-top: 18px; color: #746f68; font-size: 11px; }

.analysis-session { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.analysis-session span { max-width: 160px; overflow: hidden; color: #746f68; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.analysis-session button { padding: 7px 10px; color: #171512; background: transparent; border: 1px solid #d8d3ca; cursor: pointer; }

@media (max-width: 560px) {
  .auth-panel { padding: 28px 22px; }
  .auth-panel h1 { font-size: 26px; }
  .analysis-session span { display: none; }
}
