/* The sign-in and checkout pages: big, plain and easy to read, in the app's colours
   and fonts (see site.css and tokens.css for the shared look; dark mode comes
   from the tokens). */
.door { font-size: 1.05rem; }
.door h1 { font-size: 1.6rem; }
.door .sub { margin-bottom: 0.5rem; }
.door label { font-size: 1rem; margin: 0.9rem 0 0.25rem; }
.door input[type="email"], .door input[type="password"], .door input[type="text"] {
  width: 100%; padding: 0.6rem 0.8rem; font-size: 1.1rem; min-height: 2.9rem;
  border: 2px solid var(--color-border); border-radius: var(--radius-md); box-sizing: border-box;
}
.door input:focus-visible, .door .big:focus-visible { outline: 3px solid var(--color-highlight); outline-offset: 2px; }
.door .show-pw { display: flex; align-items: center; gap: 0.6rem; font-weight: 400; margin-top: 0.5rem; }
.door .show-pw input { width: 1.4rem; height: 1.4rem; min-height: 0; accent-color: var(--color-primary); }
.door .big {
  display: flex; align-items: center; justify-content: center; gap: 0.6rem;
  box-sizing: border-box; width: 100%; margin-top: 1.1rem; padding: 0.7rem; min-height: 3.1rem;
  font-size: 1.15rem; font-weight: 700; border: 2px solid transparent; border-radius: var(--radius-md);
  background: var(--color-primary); color: var(--color-primary-contrast); cursor: pointer; text-decoration: none;
}
.door .big:hover { filter: brightness(0.93); }
.door .big.alt { background: var(--color-surface); color: var(--color-text); border-color: var(--color-border); }
.door .big.alt:hover { filter: none; background: var(--color-bg); }
.door .or { text-align: center; margin: 0.9rem 0 0; color: var(--color-muted); }
.door .hint { color: var(--color-muted); font-size: 0.95rem; margin-top: 1rem; }
.door .error { font-size: 1.1rem; }
.door .wait-note { text-align: center; margin-top: 0.75rem; }
.spinner {
  width: 1em; height: 1em; border: 3px solid currentColor; border-right-color: transparent;
  border-radius: 50%; animation: dk-spin 0.8s linear infinite;
}
@keyframes dk-spin { to { transform: rotate(360deg); } }
.is-waiting { opacity: 0.85; pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .spinner { animation: none; } }
.door fieldset.plans { border: 0; padding: 0; margin: 1.25rem 0 0; }
.door fieldset.plans legend { font-family: var(--font-heading); font-weight: 700; font-size: 1.1rem; padding: 0; }
.door .choice { display: flex; align-items: center; gap: 0.6rem; font-weight: 400; margin-top: 0.6rem; }
.door .choice input { width: 1.4rem; height: 1.4rem; min-height: 0; accent-color: var(--color-primary); }
.door input[readonly] { background: var(--color-bg); color: var(--color-muted); }

/* Keep the whole sign-in page on one screen on short windows. */
.door { margin-top: calc(-1 * var(--space-3)); }
@media (max-height: 760px) { .door h1 { margin-bottom: 0.25rem; } .door label { margin-top: 0.6rem; } }
