:root {
    --access-brand:#00500c;
    --access-ink:#1b2533;
    --access-muted:#6b7686;
    --access-border:#e3e7ec;
    --access-canvas:#f2f4f7;
}
* {
    box-sizing:border-box;
}
body {
    margin:0;
    background:var(--access-canvas);
    color:var(--access-ink);
    font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
    line-height:1.6;
}
a {
    color:var(--access-brand);
    text-decoration:none;
}
a:hover {
    text-decoration:underline;
}
button,input {
    font:inherit;
}
a:focus-visible,button:focus-visible,input:focus-visible {
    outline:3px solid #69a477;
    outline-offset:3px;
}
.access-shell {
    min-height:100vh;
    display:grid;
    grid-template-columns:minmax(340px,.9fr) minmax(460px,1.1fr);
}
.access-brand {
    position:relative;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    padding:48px 56px;
    background:#eef3ef;
    color:var(--access-ink);
    border-right:1px solid #dfe7e1;
    overflow:hidden;
}
.access-wordmark {
    display:flex;
    align-items:center;
    gap:12px;
    font-size:18px;
    font-weight:600;
    letter-spacing:-.2px;
    color:inherit;
}
.access-logo {
    display:block;
    width:60px;
    height:40px;
    object-fit:contain;
    flex-shrink:0;
}
.access-brand-content {
    max-width:400px;
    position:relative;
    z-index:1;
    margin:64px 0;
}
.access-eyebrow {
    margin:0 0 14px;
    font-size:11px;
    font-weight:600;
    letter-spacing:.2px;
}
.access-brand .access-eyebrow {
    color:#5d7663;
}
.access-brand h2 {
    font-size:26px;
    line-height:1.35;
    letter-spacing:-.4px;
    font-weight:600;
    margin:0 0 20px;
}
.access-brand-content>p {
    font-size:14px;
    color:#63766a;
    max-width:350px;
}
.access-brand-footer {
    font-size:12px;
    color:#5d7663;
}
.access-main {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:56px 36px;
}
.access-card {
    width:100%;
    max-width:450px;
    background:white;
    border:1px solid var(--access-border);
    border-radius:16px;
    padding:32px;
    box-shadow:0 4px 24px #1b253307;
}
.access-card .access-eyebrow {
    color:var(--access-brand);
    margin-bottom:10px;
}
.access-card h1 {
    font-size:22px;
    font-weight:600;
    letter-spacing:-.7px;
    line-height:1.25;
    margin:0 0 12px;
}
.access-description {
    font-size:14px;
    color:var(--access-muted);
    margin:0 0 28px;
}
.access-field {
    margin-bottom:20px;
}
.access-field label {
    display:block;
    font-size:13px;
    font-weight:600;
    margin-bottom:7px;
}
.access-input {
    width:100%;
    border:1px solid #cfd5dd;
    border-radius:7px;
    padding:11px 12px;
    background:white;
    color:var(--access-ink);
    font-size:14px;
    min-height:46px;
}
.access-input:focus {
    border-color:#00500c;
}
.access-input[aria-invalid=true] {
    border-color:#b42318;
}
.access-error {
    color:#b42318;
    font-size:12px;
    margin:6px 0 0;
    padding:0;
    list-style:none;
}
.access-hint {
    font-size:12px;
    color:var(--access-muted);
    margin:6px 0 0;
}
.access-options {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    font-size:12px;
    margin:4px 0 24px;
}
.access-checkbox {
    display:flex;
    align-items:center;
    gap:8px;
    color:#3f4a5a;
}
.access-checkbox input {
    width:16px;
    height:16px;
    margin:0;
    accent-color:var(--access-brand);
}
.access-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    padding:11px 20px;
    border:1px solid var(--access-brand);
    border-radius:7px;
    background:var(--access-brand);
    color:white;
    cursor:pointer;
    font-size:13px;
    font-weight:600;
    text-decoration:none;
}
.access-button:hover {
    background:#0a6a1c;
    text-decoration:none;
}
.access-button--full {
    width:100%;
}
.access-button--secondary {
    background:white;
    color:var(--access-ink);
    border-color:#cfd5dd;
}
.access-button--secondary:hover {
    background:#f7f8fa;
}
.access-back {
    display:block;
    margin-top:22px;
    text-align:center;
    font-size:13px;
}
.access-notice {
    padding:12px 14px;
    border:1px solid #d7eadb;
    border-radius:7px;
    background:#eef6ef;
    color:#15703a;
    font-size:13px;
    margin:0 0 22px;
    overflow-wrap:anywhere;
}
.access-account-note {
    border-top:1px solid var(--access-border);
    margin-top:28px;
    padding-top:20px;
    font-size:12px;
    color:var(--access-muted);
}
.access-footer {
    max-width:450px;
    text-align:center;
    font-size:11px;
    color:var(--access-muted);
    margin-top:24px;
}
.access-mobile-brand {
    display:none;
}
.error-shell {
    min-height:100vh;
    display:flex;
    flex-direction:column;
    padding:32px 6vw;
}
.error-brand {
    color:var(--access-brand);
}
.error-main {
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:48px 0;
}
.error-card {
    max-width:620px;
    width:100%;
    padding:44px;
    background:white;
    border:1px solid var(--access-border);
    border-radius:16px;
    box-shadow:0 4px 24px #1b253307;
}
.error-code {
    display:inline-block;
    font-size:12px;
    font-weight:600;
    color:var(--access-brand);
    padding:5px 12px;
    border:1px solid #d7eadb;
    border-radius:6px;
    background:#eef6ef;
    margin-bottom:24px;
}
.error-card h1 {
    font-size:24px;
    line-height:1.2;
    letter-spacing:-.7px;
    margin:0 0 16px;
}
.error-description {
    font-size:14px;
    color:var(--access-muted);
    margin:0 0 28px;
}
.error-actions {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}
.error-note {
    margin-top:28px;
    padding-top:20px;
    border-top:1px solid var(--access-border);
    font-size:12px;
    color:var(--access-muted);
}
.error-footer {
    text-align:center;
    font-size:12px;
    color:var(--access-muted);
}
@media(min-width:1440px) {
    .access-brand {
        padding:64px 80px;
    }
    .access-brand h2 {
        font-size:28px;
    }
}
@media(max-width:900px) {
    .access-shell {
        grid-template-columns:1fr;
    }
    .access-brand {
        display:none;
    }
    .access-main {
        min-height:100vh;
        padding:32px 20px;
    }
    .access-mobile-brand {
        display:flex;
        color:var(--access-brand);
        margin-bottom:28px;
    }
    .access-card {
        padding:28px;
    }
}
@media(max-width:420px) {
    .access-card {
        padding:24px 20px;
    }
    .access-options {
        align-items:start;
        flex-wrap:wrap;
    }
    .error-card {
        padding:28px 24px;
    }
    .error-card h1 {
        font-size:22px;
    }
    .error-actions .access-button {
        width:100%;
    }
    .error-shell {
        padding:24px 20px;
    }
}
