/* Owned Reval login layout; inherited CRM skin remains unchanged. */
.reval-login-layout{width:min(1080px,100%);min-width:0;display:grid;grid-template-columns:minmax(380px,430px) minmax(0,1fr);gap:24px;align-items:stretch}
@media(max-width:960px){.reval-login-layout{grid-template-columns:minmax(0,1fr);max-width:480px}}
@media(max-width:560px){.reval-login-layout{align-self:center}}
.reval-login-mark.brand-mark{width:150px;height:70px;flex-basis:70px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.reval-login-mark.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
.crm-route--new .reval-login-mark .reval-login-logo--dark{display:none}
html[data-theme=dark] .reval-login-mark .reval-login-logo--light{display:none}
html[data-theme=dark] .reval-login-mark .reval-login-logo--dark{display:block}

/* Login-owned motion: the copied CRM skin and authenticated shell stay intact. */
.reval-login-credit{margin-block-start:8px;font-size:12px;line-height:1.9;text-wrap:balance}
.reval-login-reveal{animation:reval-login-panel-enter 720ms cubic-bezier(.22,1,.36,1) both}
.reval-login-reveal--first{animation-delay:120ms}
.reval-login-reveal--second{animation-delay:270ms}
.reval-login-reveal--third{animation-delay:440ms}
.reval-login-typing{min-height:1.6em;display:inline-flex;align-items:baseline;justify-content:center;max-width:100%;color:#fff;white-space:nowrap}
.reval-login-typing-text{color:inherit}
.reval-login-caret{display:inline-block;flex:none;width:3px;height:.9em;margin-inline-start:8px;border-radius:999px;background:var(--reval-orange);box-shadow:0 0 14px var(--reval-orange);animation:reval-login-caret 820ms step-end infinite}
@keyframes reval-login-panel-enter{from{opacity:0;transform:translateY(18px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes reval-login-caret{0%,100%{opacity:1}50%{opacity:0}}
@media(prefers-reduced-motion:reduce){.reval-login-reveal{animation:none}.reval-login-caret{animation:none;display:none}}

/* Fit the viewport; exceptionally tall errors/keyboard layouts remain reachable. */
.reval-login-shell.login-shell{height:100vh;height:100dvh;min-height:0;box-sizing:border-box;grid-template-rows:minmax(0,1fr);padding-block:clamp(10px,2dvh,20px);padding-inline:clamp(12px,2vw,28px);overflow:clip}
.reval-login-layout{max-height:100%;min-height:0;align-self:center}
.reval-login-card.login-card{min-height:0;max-height:100%;overflow:auto;overscroll-behavior:contain;padding-block:clamp(14px,2.5dvh,24px);padding-inline:clamp(18px,2.5vw,34px)}
.reval-login-panel.brand-panel{min-height:0;padding:clamp(18px,3dvh,32px)}
.reval-login-brand.brand{gap:4px;margin-block:0 clamp(8px,1.5dvh,14px)}
.reval-login-mark.brand-mark{width:clamp(110px,18dvh,150px);height:clamp(48px,8dvh,70px);flex-basis:clamp(48px,8dvh,70px)}
.reval-login-form.login-form{gap:clamp(6px,1.2dvh,10px)}
.reval-login-field.field{gap:4px;--crm-login-label-margin-block-end:2px}
.reval-login-footer.login-footer{display:flex;flex-wrap:wrap;justify-content:center;column-gap:6px;row-gap:0;margin-block-start:10px;padding-block-start:8px}
.reval-login-credit{flex-basis:100%;margin-block-start:2px;line-height:1.6}
.reval-login-sso{display:flex;align-items:center;justify-content:center;min-height:44px;margin-block-start:8px;padding:6px 12px;border:1px solid var(--crm-login-border-current);border-radius:12px;background:var(--crm-login-surface-soft);color:var(--crm-login-text-current);font:inherit;font-size:13px;line-height:1.6;text-align:center;text-decoration:none}
.reval-login-sso:hover{border-color:var(--crm-login-hover-border);background:var(--crm-login-surface-current)}
.reval-login-sso:focus-visible{outline:3px solid var(--crm-login-focus-outline-current);outline-offset:2px}
.reval-login-submit{--crm-login-on-accent:#fff}
.reval-login-submit.submit-btn{min-height:44px;margin-block-start:2px}
@media(max-width:560px){
  .reval-login-shell.login-shell{padding-block:58px 12px}
  .reval-login-brand.brand{margin-block-start:0}
}

.reval-login-sso:disabled{width:100%;cursor:not-allowed;opacity:.65}
