/* Login and access-confirmation theme. Scoped to these pages to keep access.css consumers unchanged. */
.access-page {
  --access-ink: #342b25;
  --access-muted: #65584b;
  --access-paper: #faf7f1;
  --access-soft: #fbf2e1;
  --access-gold: #d3a13e;
  --access-brown: #805310;
  --access-brown-dark: #603c0b;
  --access-error: #9f2d21;
  min-height: 100svh;
  color: var(--access-ink);
  background: radial-gradient(ellipse at 50% 0%, rgb(211 161 62 / 16%), transparent 34rem), var(--access-paper);
}
.access-page .brand { padding: clamp(1.25rem, 4vw, 2rem) 1rem; color: var(--access-ink); }
.access-page .brand img { width: 58px; height: 50px; }
.access-page main { padding: 1rem 1rem 2.5rem; }
.access-page .access-card {
  max-width: 456px; padding: clamp(1.5rem, 6vw, 2.5rem);
  border: 1px solid #e3d2b3; border-radius: 26px; background: rgb(255 253 249 / 96%);
  box-shadow: 0 7px 0 #e8ddc9, 0 22px 56px rgb(73 52 22 / 10%);
}
.access-page .eyebrow { color: #70450d; letter-spacing: .09em; }
.access-page h1, .access-page label { color: var(--access-ink); }
.access-page .intro, .access-page .hint, .access-page .invitation-note, .access-page footer { color: var(--access-muted); }
.access-page input { color: var(--access-ink); border-color: #a28c6c; border-radius: 14px; background: #fffefa; }
.access-page input:focus-visible { border-color: var(--access-brown); }
.access-page input[aria-invalid=true] { border-color: var(--access-error); }
.access-page .primary {
  color: #fff; border-color: var(--access-brown-dark); background: var(--access-brown);
  box-shadow: 0 2px 0 rgb(52 43 37 / 9%);
}
.access-page .primary:hover { background: var(--access-brown-dark); }
.access-page :focus-visible { outline-color: #24558c; }
.access-page a { color: #70450d; text-decoration-thickness: .08em; text-underline-offset: .16em; }
.access-page a:hover { color: #4e3109; }
.access-page .feedback { color: #342b25; border-color: #c7a765; background: #fbf2e1; }
.access-page .feedback.error { color: #7b2119; border-color: #c98273; background: #fff0eb; }
.access-page .access-icon { display: inline-block; flex: 0 0 auto; vertical-align: middle; }
.access-page .field label { display: flex; align-items: center; gap: .5rem; }
.access-page .signed-status { display: flex; align-items: center; gap: .65rem; margin: 0 0 1rem; font-weight: 900; }
.access-page .signed-status .access-icon { width: 24px; height: 24px; }
.access-page .signed-actions { display: grid; gap: .65rem; }
.access-page .signed-actions a { display: flex; align-items: center; gap: .7rem; min-height: 50px; padding: .7rem .85rem; border: 1px solid #b9975b; border-radius: 12px; background: #fffdf9; font-weight: 900; text-decoration: none; }
.access-page .signed-actions a:hover { background: #fff7e7; border-color: #805310; }
.access-page .recovery-link { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; }
.access-page .pin-form { border-color: #e3d2b3; }
.access-page footer { padding: 1rem 1rem 1.5rem; }
@media (max-width: 374px) {
  .access-page .brand { padding-block: 1rem; }
  .access-page .brand img { width: 48px; height: 41px; }
  .access-page main { padding-inline: .75rem; }
}
@media (prefers-reduced-motion: reduce) {
  .access-page *, .access-page *::before, .access-page *::after {
    scroll-behavior: auto !important; transition-duration: .01ms !important;
    animation-duration: .01ms !important; animation-iteration-count: 1 !important;
  }
}
