.ukc-auth-shell {
    --ukc-auth-ink: #15233b;
    --ukc-auth-muted: #63758e;
    --ukc-auth-line: #d8e2ed;
    --ukc-auth-soft: #f5f8fc;
    --ukc-auth-blue: #116cad;
    --ukc-auth-blue-dark: #0d578c;
    --ukc-auth-green: #187348;
    --ukc-auth-green-bg: #edf9f2;
    box-sizing: border-box;
    color: var(--ukc-auth-ink);
    margin: 30px auto 42px;
    max-width: 980px;
    width: 100%;
}

.ukc-auth-shell *,
.ukc-auth-shell *::before,
.ukc-auth-shell *::after { box-sizing: border-box; }

.ukc-auth-panel {
    overflow: hidden;
    border: 1px solid var(--ukc-auth-line);
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(21, 35, 59, .08);
}

.ukc-auth-panel--compact { max-width: 720px; margin: 0 auto; }

.ukc-auth-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding: 30px 34px;
    border-bottom: 1px solid var(--ukc-auth-line);
    background: #f2f7fc;
}

.ukc-auth-hero > div { min-width: 0; }
.ukc-auth-eyebrow {
    display: block;
    margin-bottom: 5px;
    color: #5f718b;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
    text-transform: uppercase;
}

.ukc-auth-hero h1,
.ukc-auth-assurance h2,
.ukc-auth-form-intro h2,
.ukc-auth-reset-body > h2 {
    margin: 0;
    color: var(--ukc-auth-ink);
    letter-spacing: 0;
}

.ukc-auth-hero h1 { font-size: 30px; line-height: 1.2; }
.ukc-auth-hero p {
    max-width: 600px;
    margin: 7px 0 0;
    color: var(--ukc-auth-muted);
    font-size: 16px;
    line-height: 1.5;
}

.ukc-auth-status {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    gap: 8px;
    min-height: 38px;
    padding: 7px 12px;
    border: 1px solid #b9dfca;
    border-radius: 999px;
    color: var(--ukc-auth-green);
    background: var(--ukc-auth-green-bg);
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}

.ukc-auth-feedback:empty { display: none; }
.ukc-auth-feedback:not(:empty) { padding: 20px 30px 0; }
.ukc-auth-feedback .alert { margin: 0; }

.ukc-auth-layout {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(280px, 2fr);
}

.ukc-auth-form-area { padding: 32px 34px; }
.ukc-auth-form { margin: 0; font-family: inherit; color: var(--ukc-auth-ink); }
.ukc-auth-form .form-group { margin-bottom: 20px; }
.ukc-auth-form label {
    display: block;
    margin: 0 0 7px;
    color: #33465f;
    font-size: 14px;
    font-weight: 700;
}

.ukc-auth-label-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
}
.ukc-auth-label-row a { font-size: 13px; font-weight: 700; }

.ukc-auth-input .input-group-text {
    min-width: 48px;
    justify-content: center;
    border-color: #bdcad8;
    color: #526981;
    background: var(--ukc-auth-soft);
}

.ukc-auth-form .form-control,
.ukc-auth-challenge-body .form-control,
.ukc-auth-reset-body .form-control {
    min-height: 50px;
    border-color: #bdcad8;
    border-radius: 4px;
    color: var(--ukc-auth-ink);
    background: #fff;
    font-size: 16px;
}

.ukc-auth-form .form-control:focus,
.ukc-auth-challenge-body .form-control:focus,
.ukc-auth-reset-body .form-control:focus {
    border-color: #5ba0d2;
    box-shadow: 0 0 0 3px rgba(17, 108, 173, .14);
}

.ukc-auth-input .form-control { border-radius: 0; }
.ukc-auth-input .input-group-prepend .input-group-text { border-radius: 4px 0 0 4px; }
.ukc-auth-input .input-group-append .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    min-width: 50px;
    padding: 0;
    border-color: #bdcad8;
    border-radius: 0 4px 4px 0;
    color: #40556d;
    background: #fff;
}

.ukc-auth-remember {
    display: inline-flex !important;
    align-items: center;
    gap: 9px;
    min-height: 44px;
    margin: -3px 0 12px !important;
    cursor: pointer;
}
.ukc-auth-remember input { width: 18px; height: 18px; margin: 0; }
.ukc-auth-remember span { font-weight: 600; }

.ukc-auth-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 50px;
    border-radius: 4px;
    background: var(--ukc-auth-blue);
    font-size: 16px;
    font-weight: 700;
}
.ukc-auth-primary:hover,
.ukc-auth-primary:focus { background: var(--ukc-auth-blue-dark); }
.ukc-auth-primary:disabled { cursor: wait; opacity: .72; }

.ukc-auth-captcha { margin: 0 0 16px; overflow: hidden; }
.ukc-auth-captcha .row { margin-left: 0; margin-right: 0; }

.ukc-auth-provider { margin-top: 22px; }
.ukc-auth-provider:empty { display: none; }
.ukc-auth-provider .providerPreLinking {
    position: relative;
    padding-top: 24px;
}
.ukc-auth-provider .providerPreLinking::before {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    color: var(--ukc-auth-muted);
    background: linear-gradient(to right, var(--ukc-auth-line), var(--ukc-auth-line)) center / 100% 1px no-repeat;
    content: "or continue with";
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
}
.ukc-auth-provider .providerPreLinking::after {
    position: absolute;
    top: -6px;
    left: 50%;
    width: 132px;
    height: 16px;
    transform: translateX(-50%);
    background: #fff;
    content: "";
    z-index: 0;
}
.ukc-auth-provider .providerPreLinking::before { z-index: 1; }
.ukc-auth-provider .social-signin-btns,
.ukc-auth-provider .social-signin-btns > * { width: 100%; }
.ukc-auth-provider .social-signin-btns { display: flex; justify-content: center; }
.ukc-auth-provider .social-signin-btns .btn,
.ukc-auth-provider .social-signin-btns a {
    display: flex !important;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    margin: 0 !important;
    border-color: #bdcad8 !important;
    border-radius: 4px !important;
    box-shadow: none !important;
}
.ukc-auth-provider #btnGoogleSignin1 {
    min-height: auto;
    padding: 0;
    border: 0 !important;
    background: transparent !important;
}
.ukc-auth-provider #btnGoogleSignin1 > div { margin: 0 auto; }

.ukc-auth-assurance {
    padding: 32px 30px;
    border-left: 1px solid var(--ukc-auth-line);
    background: var(--ukc-auth-soft);
}
.ukc-auth-assurance h2 { font-size: 21px; line-height: 1.3; }
.ukc-auth-assurance-list { margin-top: 22px; }
.ukc-auth-assurance-list > div {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 12px;
    padding: 16px 0;
    border-top: 1px solid var(--ukc-auth-line);
}
.ukc-auth-assurance-list > div:first-child { border-top: 0; padding-top: 0; }
.ukc-auth-assurance-list i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    color: var(--ukc-auth-blue);
    background: #e5f1fa;
}
.ukc-auth-assurance-list strong,
.ukc-auth-assurance-list small { display: block; }
.ukc-auth-assurance-list strong { color: var(--ukc-auth-ink); font-size: 14px; }
.ukc-auth-assurance-list small { margin-top: 3px; color: var(--ukc-auth-muted); font-size: 13px; line-height: 1.45; }

.ukc-auth-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 17px 34px;
    border-top: 1px solid var(--ukc-auth-line);
    background: #fbfdff;
    color: var(--ukc-auth-muted);
    font-size: 14px;
}
.ukc-auth-footer a { font-weight: 700; }
.ukc-auth-footer a i { margin-left: 5px; font-size: 11px; }
.ukc-auth-footer--center { justify-content: center; }

.ukc-auth-challenge-body,
.ukc-auth-reset-body { padding: 30px 34px; }
.ukc-auth-challenge-body .alert,
.ukc-auth-reset-body .alert { margin-bottom: 20px; }

.ukc-auth-step-note,
.ukc-auth-privacy-note {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    margin-bottom: 22px;
    padding: 14px 16px;
    border: 1px solid #bdd8ea;
    border-left-width: 4px;
    color: #245476;
    background: #f0f8fd;
}
.ukc-auth-step-note > i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    color: var(--ukc-auth-blue);
    background: #dfeff9;
}
.ukc-auth-step-note strong,
.ukc-auth-step-note small { display: block; }
.ukc-auth-step-note strong { color: var(--ukc-auth-ink); font-size: 14px; }
.ukc-auth-step-note small { margin-top: 2px; color: #526d84; font-size: 13px; }

.ukc-auth-challenge-form > p { margin: 0 0 18px; color: var(--ukc-auth-muted); line-height: 1.5; }
.ukc-auth-challenge-form > label,
.ukc-auth-backup-form label { display: block; margin-bottom: 7px; color: #33465f; font-size: 14px; font-weight: 700; }
#ukc2faLoginCode {
    height: 58px;
    padding-left: 24px;
    font-size: 24px;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    letter-spacing: .28em;
    text-align: center;
}
#ukc2faLoginSubmit { margin-top: 14px; }
#ukc2faSmsControl { margin-top: 18px !important; }
#ukc2faSmsSubmit {
    min-height: 44px;
    max-width: 100%;
    padding: 8px 13px;
    border-color: #b8c8d8;
    border-radius: 4px;
    color: #31536f;
    background: #fff;
    font-size: 13px;
    font-weight: 700;
    white-space: normal;
}
#ukc2faSmsSubmit:disabled { color: #748394; background: #f4f6f8; }
#ukc2faSmsCountdown { color: var(--ukc-auth-muted) !important; font-size: 12px; }
#ukc2faSmsStatus .alert { margin: 0 0 12px; }

.ukc-auth-form-intro { margin-bottom: 22px; }
.ukc-auth-form-intro h2,
.ukc-auth-reset-body > h2 { font-size: 22px; line-height: 1.3; }
.ukc-auth-form-intro p,
.ukc-auth-success-message { margin: 7px 0 0; color: var(--ukc-auth-muted); line-height: 1.55; }
.ukc-auth-privacy-note {
    grid-template-columns: 20px minmax(0, 1fr);
    margin: 22px 0 0;
    padding: 12px 14px;
    border-left-width: 1px;
    font-size: 13px;
}
.ukc-auth-privacy-note i { color: var(--ukc-auth-blue); }
.ukc-auth-button-row { display: flex; gap: 10px; }
.ukc-auth-button-row .btn { min-height: 48px; }
.ukc-auth-button-row .ukc-auth-primary { flex: 1 1 auto; }
.ukc-auth-strength .progress { height: 9px; }
.ukc-auth-success-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin-bottom: 16px;
    border-radius: 50%;
    color: var(--ukc-auth-green);
    background: var(--ukc-auth-green-bg);
    font-size: 20px;
}

body.ukc-template-login #main-body,
body.ukc-template-two-factor-challenge #main-body,
body.ukc-template-password-reset-container #main-body {
    padding-top: 0;
    background: #f6f8fb;
}
body.ukc-template-login .master-breadcrumb,
body.ukc-template-two-factor-challenge .master-breadcrumb,
body.ukc-template-password-reset-container .master-breadcrumb,
body.ukc-template-login .main-navbar-wrapper,
body.ukc-template-two-factor-challenge .main-navbar-wrapper,
body.ukc-template-password-reset-container .main-navbar-wrapper { display: none; }
body.ukc-template-login .header .navbar,
body.ukc-template-two-factor-challenge .header .navbar,
body.ukc-template-password-reset-container .header .navbar { min-height: 86px; }
body.ukc-template-login .header .navbar .form-inline,
body.ukc-template-login .header .navbar .toolbar,
body.ukc-template-two-factor-challenge .header .navbar .form-inline,
body.ukc-template-two-factor-challenge .header .navbar .toolbar,
body.ukc-template-password-reset-container .header .navbar .form-inline,
body.ukc-template-password-reset-container .header .navbar .toolbar { display: none !important; }
body.ukc-template-login .header .navbar-brand,
body.ukc-template-two-factor-challenge .header .navbar-brand,
body.ukc-template-password-reset-container .header .navbar-brand { margin: 0 auto !important; }
body.ukc-template-login #__EAAPS_PORTAL,
body.ukc-template-two-factor-challenge #__EAAPS_PORTAL,
body.ukc-template-password-reset-container #__EAAPS_PORTAL { display: none !important; }

@media (max-width: 767px) {
    .ukc-auth-shell { margin: 16px auto 28px; }
    .ukc-auth-panel { border-radius: 4px; box-shadow: 0 8px 22px rgba(21, 35, 59, .07); }
    .ukc-auth-hero { flex-direction: column; gap: 14px; padding: 24px 22px; }
    .ukc-auth-hero h1 { font-size: 26px; }
    .ukc-auth-hero p { font-size: 15px; }
    .ukc-auth-status { min-height: 34px; padding: 6px 10px; }
    .ukc-auth-layout { grid-template-columns: 1fr; }
    .ukc-auth-form-area,
    .ukc-auth-challenge-body,
    .ukc-auth-reset-body { padding: 25px 22px; }
    .ukc-auth-assurance { padding: 24px 22px; border-top: 1px solid var(--ukc-auth-line); border-left: 0; }
    .ukc-auth-assurance-list { margin-top: 16px; }
    .ukc-auth-assurance-list > div { padding: 12px 0; }
    .ukc-auth-footer { align-items: flex-start; flex-direction: column; padding: 16px 22px; }
    .ukc-auth-footer--center { align-items: center; text-align: center; }
    .ukc-auth-button-row { flex-direction: column; }
    .ukc-auth-button-row .btn { width: 100%; }
    #ukc2faLoginCode { font-size: 22px; letter-spacing: .22em; }
    body.ukc-template-login .header .navbar,
    body.ukc-template-two-factor-challenge .header .navbar,
    body.ukc-template-password-reset-container .header .navbar { min-height: 76px; }
}

@media (max-width: 380px) {
    .ukc-auth-shell { margin-left: -4px; margin-right: -4px; width: auto; }
    .ukc-auth-hero,
    .ukc-auth-form-area,
    .ukc-auth-challenge-body,
    .ukc-auth-reset-body,
    .ukc-auth-assurance { padding-left: 18px; padding-right: 18px; }
    .ukc-auth-footer { padding-left: 18px; padding-right: 18px; }
}
