/* Login presentation, isolated from authenticated pages and provider widgets. */
body.ui-login { margin: 0; background: var(--ui-canvas); color: var(--ui-text); font-family: var(--ui-font); }
.ui-login #menu { display: none; }
.ui-login #content.content { margin: 0; padding: 0; width: 100%; min-height: 100vh; }
.ui-login .page_top_div { position: relative; display: flex; justify-content: flex-end; align-items: center; min-height: 68px; padding: 16px 32px; background: transparent; border: 0; box-shadow: none; }
.ui-login .page_top_title_div { display: none; }
.ui-login .page_center_div.ui-login-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0; max-width: 1040px; margin: 32px auto 64px; padding: 0; border: 1px solid var(--ui-line); border-radius: 20px; background: var(--ui-surface); box-shadow: var(--ui-shadow); }
.ui-login .ui-login-brand { display: flex; flex-direction: column; padding: 42px; color: #fff; background: var(--ui-accent); border-radius: 19px 0 0 19px; }
.ui-login .ui-login-brand img { width: 150px; height: 100px; object-fit: contain; align-self: flex-start; }
.ui-login .ui-login-eyebrow { margin: 38px 0 16px; font-size: 11px; font-weight: 650; letter-spacing: .12em; }
.ui-login .ui-login-brand h2 { margin: 0 0 22px; color: #fff; font: 650 clamp(25px, 3vw, 36px)/1.2 var(--ui-font); letter-spacing: -.025em; }
.ui-login .ui-login-brand > p:not(.ui-login-eyebrow) { max-width: 310px; font-size: 14px; line-height: 1.8; color: #f0edfb; }
.ui-login .ui-login-brand-footer { margin-top: auto; padding-top: 50px; font-size: 11px; color: #f0edfb; }
.ui-login .ui-login-card { min-width: 0; padding: 44px 40px; }
.ui-login .ui-login-heading h1 { margin: 0 0 8px; font: 650 24px/1.3 var(--ui-font); color: var(--ui-text); }
.ui-login .ui-login-heading p { margin: 0 0 26px; font-size: 13px; color: var(--ui-muted); }
.ui-login .tabs-nav { display: flex; gap: 4px; padding: 4px; margin-bottom: 26px; border-radius: var(--ui-radius-sm); background: var(--ui-canvas); }
.ui-login .tabs-nav a { flex: 1; padding: 9px 10px; text-align: center; border: 1px solid transparent; border-radius: 5px; color: var(--ui-muted); text-decoration: none; font-size: 13px; font-weight: 550; }
.ui-login .tabs-nav a.active { background: #fff; border-color: var(--ui-line); color: var(--ui-nav-active-text); box-shadow: var(--ui-card-shadow); }
.ui-login .tab-content { display: none; }
.ui-login .tab-content.active { display: block; }
.ui-login .form_container { padding: 0; border: 0; background: transparent; box-shadow: none; }
.ui-login #login-form { padding: 0; }
.ui-login #login-form .form-group { padding: 0; margin: 0 0 18px; gap: 18px; }
.ui-login #login-form .form-input-div { width: 100%; padding: 0; margin: 0; }
.ui-login #login-form .form-input-col { align-items: stretch; }
.ui-login #login-form .form-input-row { align-items: center; gap: 9px; }
.ui-login #login-form label { display: block; margin: 0 0 7px; color: var(--ui-text); font: 500 13px/1.5 var(--ui-font); }
.ui-login #login-form label[for=remember] { margin: 0; color: var(--ui-muted); }
.ui-login #login-form .form-control { width: 100%; min-height: 42px; padding: 10px 12px; border: 1px solid var(--ui-input-line); border-radius: var(--ui-radius-sm); background: #fff; font: 14px var(--ui-font); color: var(--ui-text); }
.ui-login #login-form .form-control:focus { border-color: var(--ui-accent); box-shadow: 0 0 0 3px #6550c425; }
.ui-login #login-form .button-primary { width: 100%; min-height: 42px; border: 1px solid var(--ui-accent); border-radius: var(--ui-radius-sm); background: var(--ui-accent); color: #fff; font: 600 14px var(--ui-font); }
.ui-login #login-form .button-primary:hover { background: var(--ui-accent-hover); }
.ui-login #login-form .form-group > .col-auto { width: 100%; }
.ui-login #login-form a, .ui-login .tab-content p ~ ul a { color: var(--ui-nav-active-text); font-size: 13px; }
.ui-login #login-form .checkbox-container { flex-shrink: 0; }
.ui-login #login-form .checkbox-container input:checked ~ .checkmark { background: var(--ui-accent); border-color: var(--ui-accent); }
.ui-login #login-form .checkbox-container input:checked ~ .checkmark:after { border-color: #fff; }
.ui-login :is(a, button, input):focus-visible { outline: var(--ui-focus); outline-offset: 3px; }
.ui-login #remember:focus-visible ~ .checkmark { outline: var(--ui-focus); outline-offset: 3px; }
.ui-login .msgs { margin-bottom: 20px; border-radius: var(--ui-radius-sm); font-size: 13px; overflow-wrap: anywhere; }
.ui-login .tab-content p { font-size: 13px; line-height: 1.7; color: var(--ui-muted); }
.ui-login .spid-idp-button-menu li > a { text-align: center; }
.ui-login .spid-idp-button-menu li > a img { height: 46px !important; margin: auto; }
.ui-login .cie-button { max-width: 100%; }
.ui-login .cie-button img { max-width: 100%; }
@media(max-width:1100px) { .ui-login .page_center_div.ui-login-layout { margin: 24px; } }
@media(max-width:767.98px) {
 .ui-login .page_top_div { padding: 12px 20px; }
 .ui-login .page_center_div.ui-login-layout { grid-template-columns: minmax(0, 1fr); margin: 12px 16px 32px; }
 .ui-login .ui-login-brand { padding: 22px 26px; border-radius: 19px 19px 0 0; }
 .ui-login .ui-login-brand img { width: 120px; height: 66px; }
 .ui-login .ui-login-eyebrow { margin: 12px 0; }
 .ui-login .ui-login-brand h2 { font-size: 25px; margin-bottom: 10px; }
 .ui-login .ui-login-brand-footer { display: none; }
 .ui-login .ui-login-card { padding: 28px 24px; }
}

.ui-login .ui-federated-form { margin-bottom: 1rem; }
.ui-login .ui-federated-button { width: 100%; min-height: 48px; }
.ui-login .ui-federated-unavailable { padding: 1rem; border: 1px solid #dbe3ed; border-radius: 12px; background: #f5f7fb; color: #475569; }
