:root { color-scheme: light; font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
* { box-sizing: border-box; }
body { min-height: 100vh; margin: 0; display: grid; place-items: center; padding: 24px; color: #18181b; background: #f5f5f4; }
.access-card { width: min(100%, 390px); padding: 34px; border: 1px solid #dededb; border-radius: 12px; background: #fff; box-shadow: 0 18px 50px rgba(0,0,0,.07); }
header { margin-bottom: 25px; }
h1 { margin: 0 0 8px; font-size: 1.55rem; letter-spacing: -.035em; }
p { margin: 0; color: #66666b; font-size: .91rem; line-height: 1.5; }
form { display: grid; gap: 17px; }
label:not(.remember) { display: grid; gap: 7px; }
label > span { font-size: .81rem; font-weight: 650; }
input { width: 100%; height: 45px; padding: 0 12px; color: #18181b; border: 1px solid #cfcfd1; border-radius: 8px; outline: 0; background: #fff; font: inherit; }
input:focus { border-color: #56565d; box-shadow: 0 0 0 3px rgba(20,20,24,.08); }
#code { font-size: 1.25rem; font-weight: 700; letter-spacing: .24em; text-align: center; font-variant-numeric: tabular-nums; }
.remember { display: flex; align-items: center; gap: 9px; color: #4f4f54; }
.remember input { width: 17px; height: 17px; margin: 0; accent-color: #252529; }
.remember span { font-size: .82rem; font-weight: 500; }
button { height: 45px; border: 0; border-radius: 8px; color: #fff; background: #252529; font: 650 .9rem/1 inherit; cursor: pointer; }
button:hover { background: #111113; }
button:disabled { cursor: wait; opacity: .55; }
button.back { height: auto; padding: 5px; color: #66666b; background: transparent; font-weight: 550; }
button.back:hover { color: #18181b; }
.error { padding: 10px 11px; color: #9e2525; border: 1px solid #efc8c8; border-radius: 7px; background: #fff7f7; font-size: .8rem; }
.expiry { margin-top: -7px; font-size: .78rem; }
@media (max-width: 480px) { body { padding: 0; background: #fff; }.access-card { padding: 28px 22px; border: 0; box-shadow: none; } }
