/* Access screen: scoped to leave management tables and the TV player unchanged. */
.access-screen.login-screen {
    min-height: 100vh;
    padding: 48px 24px;
    gap: 28px;
    align-items: center;
    justify-content: center;
    font-family: "Segoe UI Variable Text", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
    background:
        radial-gradient(ellipse at 12% 15%, rgba(102, 157, 244, .23), transparent 48%),
        radial-gradient(ellipse at 90% 85%, rgba(71, 188, 185, .15), transparent 44%),
        linear-gradient(145deg, #edf3fd, #f8faff 50%, #eef5f7);
}
.access-screen .login-card {
    width: 100%;
    max-width: 456px;
    padding: 36px;
    border: 1px solid #cedcf0;
    border-top: 3px solid #3572cc;
    border-radius: 24px;
    background: linear-gradient(165deg, #fff, #fbfdff);
    box-shadow: 0 24px 64px -24px rgba(30, 66, 119, .28), 0 3px 10px rgba(30, 66, 119, .04);
}
.access-screen .bootstrap-banner { width: 100%; max-width: 456px; }
.access-screen .access-emblem {
    display: grid;
    place-items: center;
    width: 60px;
    height: 60px;
    margin: 0 auto 22px;
    border: 1px solid #477cce;
    border-radius: 18px;
    background: linear-gradient(140deg, #347cde, #174790);
    box-shadow: 0 8px 20px rgba(31, 90, 175, .2);
    color: #fff;
    font-size: 21px;
    font-weight: 700;
    letter-spacing: -.6px;
}
.access-screen .eyebrow { text-align: center; font-size: 11px; font-weight: 700; letter-spacing: 2px; color: #3363a6; }
.access-screen h1, .access-screen h2 {
    margin: 12px 0;
    text-align: center;
    font-size: 27px;
    font-weight: 650;
    letter-spacing: -.8px;
    line-height: 1.3;
    color: #18314f;
}
.access-screen .access-intro, .access-screen .bootstrap-card > .hint { text-align: center; margin: 0 0 28px; color: #61738a; font-size: 14px; line-height: 1.65; }
.access-screen label { margin: 0 0 18px; font-size: 13px; font-weight: 600; line-height: 1.5; color: #354b66; }
.access-screen input { margin: 7px 0 0; min-height: 48px; padding: 12px 14px; border: 1px solid #cdd9e8; border-radius: 11px; background: #f8fafd; color: #1e344e; font-size: 15px; font-weight: 400; }
.access-screen input::placeholder { color: #75859a; opacity: 1; font-weight: 400; }
.access-screen input:focus { outline: 3px solid #dce9fc; outline-offset: 1px; border-color: #4f85cd; background: #fff; }
.access-screen .primary { min-height: 48px; border-radius: 11px; border-color: #225cad; background: linear-gradient(110deg, #2e70ce, #2057a5); box-shadow: 0 6px 16px rgba(36, 91, 172, .16); font-size: 15px; font-weight: 600; }
.access-screen .primary:hover { background: #204f92; }
.access-screen .login-token-details { margin: 4px 0 22px; padding: 13px 14px; border: 1px solid #e0e8f2; border-radius: 11px; background: #f6f9fd; }
.access-screen .login-token-details summary { margin: 0; color: #4a6484; font-size: 13px; font-weight: 500; }
.access-screen .login-token-details[open] summary { margin-bottom: 16px; }
.access-screen .login-token-details label { margin-bottom: 0; }
.access-screen .access-screen-error, .access-screen #bootstrap-error { margin: 16px 0 0; font-size: 13px; text-align: center; }
.access-screen .access-screen-error:empty, .access-screen #bootstrap-error:empty { display: none; }
@media (max-width: 600px) {
    .access-screen.login-screen { padding: 28px 16px; gap: 20px; }
    .access-screen .login-card { padding: 28px 22px; border-radius: 20px; }
    .access-screen h1, .access-screen h2 { font-size: 24px; }
    .access-screen input { font-size: 16px; }
}


#login-screen label { display:block; margin-bottom:0; }
#login-screen input { margin-bottom:18px; }
#login-screen .eyebrow { margin-bottom:0; }
#login-screen .login-card > a { display:block; text-align:center; margin-top:20px; color:#4a6484; }
#login-screen .error-text:empty { display:none; }
