:root { color-scheme:light; --ink:#203335; --muted:#526466; --green:#246652; --line:#d5dfd8; }
* { box-sizing:border-box; }
body { margin:0; background:#f4f6f3; color:var(--ink); font:15px/1.6 "Segoe UI",Arial,sans-serif; min-height:100vh; }
button,input { font:inherit; }
button,a,input { -webkit-tap-highlight-color:transparent; }
button,a { touch-action:manipulation; }
button { cursor:pointer; }
button:disabled { cursor:wait; }
[hidden] { display:none !important; }
:focus-visible { outline:3px solid #285e8c; outline-offset:4px; }
.access-brand { display:flex; align-items:center; gap:14px; padding:27px 48px; font-family:Georgia,serif; font-size:23px; }
.access-brand img { width:48px; height:48px; object-fit:contain; }
main { padding:34px 24px 42px; }
.access-card { width:100%; max-width:478px; margin:auto; background:#fff; border:1px solid var(--line); border-radius:16px; padding:40px; box-shadow:0 10px 34px #183b2910; }
.eyebrow { color:var(--green); font-size:10px; font-weight:700; letter-spacing:1.6px; }
h1 {
    font-size: 30px;
    line-height: 1.22;
    letter-spacing: -.9px;
    margin: 0 0 16px;
    font-weight: 650;
    text-align: center;
    margin: 0 0 25px;
}
.access-intro { color:var(--muted); margin:0 0 29px; font-size:14px; line-height:1.8; }
label { display:block; font-size:13px; font-weight:600; margin:21px 0 7px; }
input { display:block; width:100%; min-width:0; min-height:48px; border:1px solid #b8c9bd; background:#fff; border-radius:7px; padding:10px 13px; color:var(--ink); }
.password-field { display:flex; position:relative; }
.password-field input { padding-right:54px; }
.password-field button { position:absolute; right:2px; top:2px; width:44px; height:44px; display:grid; place-items:center; border:0; border-radius:6px; background:transparent; color:#526c61; }
.password-field button:hover { background:#edf3ef; color:#246652; }
.password-field svg { width:21px; height:21px; }
.eye-slash { display:none; }
[aria-pressed="true"] .eye-slash { display:block; }
.access-primary { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:49px; background:var(--green); color:#fff; border:1px solid var(--green); border-radius:7px; padding:11px 17px; text-decoration:none; font-size:14px; font-weight:600; margin-top:27px; }
.access-primary:hover { background:#1a503f; }
.access-primary:disabled { background:#365f50; }
.login-card { max-width:460px; padding:38px 40px 32px; border-color:#dce5de; box-shadow:0 12px 40px #183b290c; }
.login-heading { text-align:center; padding-bottom:24px; margin-bottom:4px; border-bottom:1px solid #e7ede8; }
.login-heading h1 { font-size:28px; letter-spacing:-.8px; margin:0 0 13px; }
.login-heading .eyebrow { font-size:9px; letter-spacing:1.8px; margin:0 0 17px; }
.login-heading .access-intro { margin:0; font-size:13px; }
.login-card label { margin-top:22px; font-size:12px; color:#40564b; }
.login-card input { background:#fafcf9; border-color:#cbd8ce; border-radius:8px; }
.login-card input:focus { background:#fff; border-color:#246652; }
.login-actions { display:flex; justify-content:center; margin-top:28px; }
#login-submit { width:auto; min-width:144px; min-height:44px; justify-content:center; padding:9px 24px; margin:0; border-radius:8px; box-shadow:0 2px 4px #163c2412; }
.login-card .access-error { margin-top:20px; }
.access-note { display:flex; gap:10px; font-size:12px; line-height:1.7; color:var(--muted); border-top:1px solid #e0e7df; padding-top:23px; margin:28px 0 0; }
.access-note>span { font-size:21px; color:var(--green); }
.access-error { display:flex; gap:12px; align-items:start; border:1px solid #d9b7af; border-radius:7px; padding:13px; background:#faeeea; color:#833e32; font-size:13px; }
.access-error>span { font-weight:700; }
.access-error p { margin:0; }
footer { color:var(--muted); text-align:center; padding:0 24px 28px; font-size:11px; }
.sr-only,.skip-link:not(:focus) { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.skip-link:focus { position:absolute; top:12px; left:12px; padding:12px; background:white; color:var(--green); z-index:2; }
@media(max-width:600px) { .access-brand { padding:22px 24px; font-size:21px; } .access-brand img { width:42px; height:42px; } main { padding:20px 18px 28px; } .access-card { padding:28px 24px; border-radius:12px; } h1 { font-size:28px; } input { font-size:16px; } }
@media(max-width:600px) { .login-card { padding:30px 26px 28px; } .login-heading h1 { font-size:27px; } }
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto !important; } }
