/* ============================================================
   Sign in
   ============================================================ */
.auth{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.auth__brand{position:relative;isolation:isolate;overflow:hidden;padding:2.5rem clamp(1.5rem,5vw,4rem);display:flex;flex-direction:column;gap:2rem;
  background:radial-gradient(70% 70% at 100% 0%,rgba(23,153,206,.16),transparent 60%),
             radial-gradient(60% 60% at 0% 100%,rgba(252,176,64,.2),transparent 60%),var(--paper);
  border-right:1px solid var(--gray-200)}
.auth__brand::before{content:"";position:absolute;inset:0;z-index:-1;background-image:radial-gradient(rgba(29,26,27,.09) 1px,transparent 1.2px);background-size:22px 22px}
.auth__brand img{height:44px;width:auto}
.auth__pitch{margin-block:auto;display:grid;gap:1.25rem;max-width:30rem}
.auth__pitch h2{font-size:clamp(1.8rem,3.4vw,2.7rem);letter-spacing:-.045em;line-height:1.05}
.checks{list-style:none;padding:0;margin:0;display:grid;gap:.75rem}
.checks li{position:relative;padding-left:2rem}
.checks li::before{content:"";position:absolute;left:0;top:.2em;width:1.25rem;height:1.25rem;border-radius:50%;
  background:var(--blue-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 7 9.5 16.5 5 12' fill='none' stroke='%230F6E96' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/70% no-repeat}
.diamonds{width:180px;height:180px;position:absolute;right:-30px;bottom:-30px;opacity:.9;z-index:-1}
.diamonds rect{rx:10px}
.auth__form{display:grid;place-items:center;padding:2.5rem 20px;background:#fff}
.auth__card{width:100%;max-width:400px;display:grid;gap:1.5rem}
.auth__card form{display:grid;gap:1.1rem}
.auth__alt{text-align:center;font-size:.95rem;color:var(--gray-700);padding-top:1.25rem;border-top:1px solid var(--gray-100)}
@media (max-width:860px){
  .auth{grid-template-columns:1fr;min-height:0}
  .auth__brand{border-right:0;border-bottom:1px solid var(--gray-200);padding-block:1.25rem}
  .auth__pitch,.diamonds{display:none}
  .auth__form{place-items:start center;padding-top:2rem}
}

/* ---------- auth pages: content ---------- */
.auth__head{display:grid;gap:.5rem}
.auth__head .muted{font-size:.97rem}
.auth__card--wide{max-width:560px}
/* sign-up: pair name and password fields on desktop, tighter rhythm */
.auth__card--wide .form-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:.9rem}
.auth__card--wide .form-grid--names{grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr))}
.auth__card--wide form{gap:.9rem}
.auth__card--wide .form-section{gap:.9rem;padding-top:1.1rem}
.auth__card--wide .auth__head{gap:.35rem}
.auth__card .team-code__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem}
/* sign-up: "Is your team already on SafeResponse?" as two big choices */
.team-q .field>label:first-child{font-size:1.05rem}
.team-q .field span.radio{display:block}
.team-q .field span.radio label{display:flex;align-items:center;gap:.75rem;width:100%;border:1px solid var(--gray-300);border-radius:var(--r);padding:.75rem 1rem;min-height:52px;cursor:pointer;font-weight:500;font-size:.98rem;background:#fff}
.team-q .field span.radio input{border:0;margin:0}
.team-q span.radio label:has(input:checked){border-color:var(--blue);background:var(--blue-100);box-shadow:0 0 0 1px var(--blue)}
.team-q .field span.radio+span.radio{margin-top:.5rem}
.join-banner{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.25rem .85rem;align-items:center;padding:1rem 1.25rem;background:var(--blue-100);border:1px solid var(--blue);border-radius:var(--r-lg)}
.join-banner>.ico{width:28px;height:28px;color:var(--blue-700)}
.join-banner strong{display:block;font-size:1.15rem}
.join-banner__alt{grid-column:1/-1;margin:0;font-size:.92rem;color:var(--gray-700)}
.team-code__row p{margin:0;font-size:.95rem;flex:1 1 12rem}
.team-code__row .btn{flex:none;width:auto}
.auth__card .field__row{align-items:center}
.auth__aside{font-size:.88rem;display:inline-flex;align-items:center;min-height:44px}
.auth__card .check{min-height:44px}
.auth__alt{display:grid;gap:.35rem}
.auth__links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:0 1.25rem;font-size:.88rem}
.auth__links a{display:inline-flex;align-items:center;min-height:44px}
.auth__links:empty{display:none}
.auth__alt a{display:inline-flex;align-items:center;min-height:44px}
.auth__card .form-section>h2{font-size:1.1rem}
.auth__card .team-card{padding:1rem 1.25rem}
.join-team__q{font-size:1.05rem}
.auth__card .btn--sm{min-height:44px}
.auth__alt{justify-items:center}
/* passwords#edit and invitations#edit render inside the app layout */
.auth__card--solo{margin:1rem auto 2rem;background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-lg);padding:clamp(1.25rem,4vw,2rem);max-width:480px}
