/* Canonical platform sign-in page. */
.access-page { display: grid; min-height: 100svh; grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); color: #123b55; background: #f8fafc; }
.access-visual { position: relative; display: flex; flex-direction: column; overflow: hidden; padding: clamp(2rem,5vw,5rem); color: white; background: radial-gradient(circle at 82% 18%,#5da9bb45 0,transparent 34%),radial-gradient(circle at 20% 96%,#28789742 0,transparent 42%),linear-gradient(145deg,#071f30,#0a344a 58%,#0b435b); isolation: isolate; }
.access-visual::before { position: absolute; right: -9rem; bottom: -12rem; z-index: -1; width: 32.5rem; height: 32.5rem; border: 1px solid #ffffff18; border-radius: 50%; box-shadow: 0 0 0 4.4rem #ffffff08,0 0 0 8.8rem #ffffff05; content: ''; }
.access-brand { position: relative; z-index: 2; display: inline-flex; align-items: center; gap: .8rem; width: fit-content; }
.access-brand__mark { display: grid; place-items: center; width: 2.7rem; height: 2.7rem; border-radius: .55rem; background: white; }
.access-brand__mark img { width: 2.1rem; }
.access-brand strong,.access-brand small { display: block; }
.access-brand strong { font-size: .88rem; font-weight: 600; }
.access-brand small { margin-top: .25rem; color: #b0cfdf; font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; }
.access-visual__copy { position: relative; z-index: 2; margin: auto 0; max-width: 35rem; text-shadow: 0 2px 28px #03131ecc; }
.access-visual__copy h1 { margin: 0 0 1.25rem; color: white; font-size: clamp(2.5rem,4.2vw,4.2rem); line-height: 1.08; letter-spacing: -.045em; font-weight: 600; }
.access-visual__copy p { color: #bfd5e3; font-size: .94rem; line-height: 1.75; max-width: 29rem; }
.access-form-side { display: grid; place-items: center; padding: clamp(2rem,5vw,5rem); }
.access-form-wrap { width: min(100%,25rem); }
.access-form-eyebrow { color: #38687f; font-size: .7rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.access-form-wrap h2 { margin: 1rem 0 .9rem; color: #123b55; font-size: clamp(1.9rem,2.7vw,2.6rem); font-weight: 600; line-height: 1.15; letter-spacing: -.04em; }
.access-form-card { margin-top: 2rem; padding: 1.75rem; border: 1px solid #dce5e9; border-radius: 1rem; background: white; box-shadow: 0 24px 70px #17313e13; }
.access-form { display: grid; gap: 1.35rem; }
.access-field label { display: block; margin-bottom: .6rem; color: #28495f; font-size: .82rem; font-weight: 600; }
.access-input { position: relative; }
.access-input > svg { position: absolute; top: 50%; left: .95rem; width: 1rem; height: 1rem; color: #688395; transform: translateY(-50%); pointer-events: none; }
.access-input input { width: 100%; min-height: 3.25rem; padding: .85rem 1rem .85rem 2.75rem; border: 1px solid #bccedb; border-radius: .45rem; background: white; color: #183c54; font-size: 1rem; outline: none; }
.access-input input:focus { border-color: #0877b5; box-shadow: 0 0 0 3px #0877b51a; }
#backend-password { padding-right: 4.5rem; }
.access-password-toggle { position: absolute; right: .25rem; top: .25rem; min-width: 3.75rem; min-height: 2.75rem; color: #004475; font-size: .75rem; font-weight: 600; border-radius: .3rem; }
.access-password-toggle:hover { background: #edf5fa; }
.access-submit { display: flex; align-items: center; justify-content: center; gap: .7rem; width: 100%; min-height: 3.25rem; margin-top: .2rem; padding: .8rem; border-radius: .45rem; background: #004475; color: white; font-size: .88rem; font-weight: 600; transition: background .2s; }
.access-submit:hover { background: #005b91; }
.access-submit:disabled { cursor: wait; opacity: .65; }
.access-submit svg { width: 1rem; height: 1rem; }
.access-error { margin: 0; padding: .85rem; border: 1px solid #edb7b7; border-radius: .4rem; background: #fff3f3; color: #a32435; font-size: .82rem; line-height: 1.6; }
.access-error[hidden] { display: none; }
.access-status { margin: 0; color: #556e7e; font-size: .78rem; }
.access-status:empty { display: none; }
@media (max-width: 900px) {
    .access-page { grid-template-columns: 1fr; }
    .access-visual { padding: 1.75rem 2rem; }
    .access-visual__copy { margin: 2rem 0 0; }
    .access-visual__copy h1 { font-size: 2.25rem; }
    .access-visual__copy p { display: none; }
    .access-visual .impact-constellation--ambient { opacity: .34; }
    .access-form-side { padding: 2.5rem 1.5rem 3rem; }
}
