:root { color-scheme: light; font-family: system-ui, sans-serif; }
body { margin: 0; background: #f8fafc; color: #111827; }
.public-access { box-sizing: border-box; max-width: 32rem; margin: 0 auto; padding: clamp(1.25rem, 5vw, 3rem) 1rem; }
.public-access__header { margin-bottom: 1.5rem; }
.public-access__header h1 { margin: 0 0 .5rem; font-size: clamp(1.5rem, 5vw, 2rem); }
.public-access__header p, .public-access__hint, .public-access__fallback { color: #4b5563; line-height: 1.5; }
.public-access__card { background: #fff; border: 1px solid #d1d5db; border-radius: .75rem; padding: clamp(1rem, 4vw, 2rem); }
.public-access__field { margin-bottom: 1rem; }
.public-access__field label { display: block; font-weight: 650; margin-bottom: .4rem; }
.public-access__hint { margin: 0 0 .5rem; font-size: .9rem; }
.public-access input { box-sizing: border-box; width: 100%; min-height: 2.75rem; border: 2px solid #6b7280; border-radius: .4rem; padding: .5rem .65rem; font-size: 1.25rem; letter-spacing: .12em; }
.public-access input:focus-visible, .public-access button:focus-visible { outline: 3px solid #2563eb; outline-offset: 2px; }
.public-access button { min-height: 2.75rem; width: 100%; border: 0; border-radius: .4rem; background: #111827; color: white; font-size: 1rem; font-weight: 650; padding: .6rem 1rem; cursor: pointer; }
.public-access button:disabled { cursor: wait; opacity: .65; }
.public-access__status { min-height: 1.5rem; margin: 1rem 0 0; color: #991b1b; line-height: 1.5; }
.public-access__fallback { margin: 1.5rem 0 0; font-size: .9rem; }
@media (min-width: 40rem) { .public-access { padding-top: 8vh; } }
