/* Access screens only: preserve the approved Atlas brand placement and palette. */
.login-screen .access-password { position: relative; display: block; min-width: 0; }
.login-screen .access-password input { width: 100%; padding-right: 88px !important; }
.login-screen .access-password-toggle { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); min-width: 72px; min-height: 44px; border: 0; border-radius: 7px; background: transparent; color: #705020; font-size: 13px; font-weight: 650; cursor: pointer; }
.login-screen .access-password-toggle:hover { background: #f5eee1; }
.login-screen :focus-visible { outline: 3px solid #b58a45; outline-offset: 3px; }
.login-screen .login-card .access-caps,
.login-screen .login-card .access-field-error { margin: 0; text-align: left; font-size: 12px; line-height: 1.5; font-weight: 500; }
.login-screen .login-card .access-caps { color: #805b21; }
.login-screen .login-card .access-field-error { color: #a52d3c; }
.login-screen .login-card input[aria-invalid="true"] { border-color: #b33a49; box-shadow: 0 0 0 2px #b33a4914; }
.login-screen .form-error:empty,
.login-screen .form-success:empty { min-height: 0; margin: 0; }
.login-screen .form-error:not(:empty),
.login-screen .form-success:not(:empty) { padding: 12px 14px; margin: 12px 0; border-radius: 9px; line-height: 1.6; font-size: 13px; }
.login-screen .form-error:not(:empty) { color: #972a39; background: #fff1f2; border: 1px solid #f0cdd2; }
.login-screen .form-success:not(:empty) { color: #205e4e; background: #eff8f4; border: 1px solid #cce5da; }
.login-screen .access-status { display: flex; align-items: center; gap: 10px; padding: 14px; margin: 14px 0; color: #344f65; background: #eef3f7; border-radius: 10px; font-size: 13px; line-height: 1.5; }
.login-screen .access-status::before { content: ""; flex: 0 0 17px; height: 17px; border: 2px solid #b9c8d5; border-top-color: #102d48; border-radius: 50%; animation: access-spin 1s linear infinite; }
.login-screen .access-first-visit { margin: 16px 0 6px; border-top: 1px solid #e7dfd3; padding-top: 14px; font-size: 13px; color: #566573; line-height: 1.6; }
.login-screen .access-first-visit summary { cursor: pointer; color: #725021; font-weight: 650; padding: 6px 0; }
.login-screen .access-first-visit p { margin: 8px 0 0; }
.login-screen .login-card input { min-width: 0; font-size: 16px; }
.login-screen .login-card button:disabled { cursor: wait; opacity: .65; }
#login-screen .login-card #login-description { color: #596978; }
#login-screen .login-card #login-fields > label { margin: 18px 0; }
@media (min-width: 761px) and (max-height: 800px) {
  #login-screen .login-panel { padding-block: 24px; }
  #login-screen .login-card { padding-block: 30px 24px; }
  #login-screen .login-card input { height: 54px; }
  #login-screen .login-card #login-fields > label { margin: 14px 0; }
}
@keyframes access-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .login-screen .access-status::before { animation: none; } }
@media (max-width: 760px) {
  .login-screen .login-panel { padding: 24px 16px; align-items: start; }
  #login-screen .login-panel { min-height: 100dvh; padding: 24px 16px; }
  #login-screen .login-card { padding: 26px 22px; }
  #login-screen .login-card h2 { font-size: 32px; }
  #login-screen .login-card input { height: 54px; }
}
