/* Compact presentation tokens: opt-in to this page only until visual acceptance. */
.access-page {
    --control-height: 40px; --button-height: 40px; --control-radius: 6px;
    --control-border: #a9b8ca; --form-gap: 18px; --form-secondary: #475569;
    background: var(--paper); color: var(--ink);
}
.access-shell { min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 24px 16px; }
.access-card { width: 100%; max-width: 400px; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 32px; box-shadow: 0 4px 18px #0b234108; }
.access-header { margin-bottom: 26px; }
.access-identity { display: flex; align-items: center; gap: 11px; margin-bottom: 27px; color: var(--navy); font-size: 19px; font-weight: 650; }
.access-jsoft-mark { display: grid; place-items: center; width: 38px; height: 38px; background: var(--navy); border-radius: 8px; color: white; font-size: 25px; font-weight: 750; flex-shrink: 0; }
.access-company-logo { max-width: 120px; height: 40px; object-fit: contain; }
.access-identity-name { overflow-wrap: anywhere; }
.access-page [hidden] { display: none !important; }
.access-header h1 { color: var(--navy); font-size: 24px; font-weight: 650; letter-spacing: -.025em; margin: 0 0 8px; }
.access-header p { color: var(--form-secondary); font-size: 14px; margin: 0; }
.access-field { margin-bottom: var(--form-gap); }
.access-field label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 6px; }
.access-field input { height: var(--control-height); width: 100%; padding: 7px 11px; border: 1px solid var(--control-border); border-radius: var(--control-radius); background: #fff; color: var(--ink); font: inherit; font-size: 16px; }
.access-page :is(input, button):focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.access-field .input-validation-error { border-color: #b42318; }
.access-field .field-validation-error { color: #a11c12; font-size: 13px; display: block; margin-top: 6px; }
.access-password { position: relative; }
.access-password input { padding-right: 46px; }
.access-reveal { position: absolute; right: 1px; top: 1px; height: calc(var(--control-height) - 2px); width: 40px; display: grid; place-items: center; color: var(--form-secondary); border: 0; border-radius: var(--control-radius); background: transparent; }
.access-reveal:hover { color: var(--navy); background: var(--paper); }
.access-reveal svg { width: 20px; height: 20px; }
.access-eye-slash { display: none; }
.access-reveal[aria-pressed="true"] .access-eye-slash { display: block; }
.access-remember { display: flex; align-items: center; gap: 9px; min-height: 30px; font-size: 14px; color: var(--form-secondary); margin: 0 0 19px; cursor: pointer; }
.access-remember input { width: 17px; height: 17px; accent-color: var(--blue); flex-shrink: 0; }
.access-submit { width: 100%; min-height: var(--button-height); border: 1px solid transparent; border-radius: var(--control-radius); background: var(--blue); color: white; font-size: 15px; font-weight: 650; }
.access-submit:hover { background: #0b56bd; }
.access-footer { color: var(--form-secondary); font-size: 12px; margin-top: 20px; }
.access-errors:not(.validation-summary-valid) { border: 1px solid #e6a8a2; border-radius: var(--control-radius); padding: 10px 12px; margin-bottom: 18px; background: #fff5f4; color: #a11c12; font-size: 14px; }
.access-errors ul { list-style: none; padding: 0; margin: 0; }
@media (max-width: 600px), (pointer: coarse) {
    .access-page { --control-height: 44px; --button-height: 44px; }
    .access-reveal { width: 44px; }
    .access-remember { min-height: 44px; }
}
@media (max-width: 440px) { .access-card { padding: 26px 22px; } }
@media (forced-colors: active) { .access-submit, .access-jsoft-mark { border: 1px solid ButtonText; } }
