/* ==========================================================================
   Login page - modern 16:9 split layout (identical copy in every THEME_* folder;
   all colours come from that theme's theme-colors.css, so edit the copies together)
   Left  : branding panel (dynamic company logo in a 16:9 plate, headline, art)
   Right : full-height sign-in panel
   Loaded by Login.aspx after SiteNoMenu.Master, so selectors are prefixed with
   "html body#contbod" to win over the master's older rules.
   ========================================================================== */

:root {
    --lg-panel-w: clamp(430px, 33vw, 620px);
    --lg-ink: #1b2a41;
    --lg-muted: #6b7686;
    --lg-line: #d6dce5;
}

html, body { height: 100%; }

html body#contbod {
    display: block;
    min-height: 100vh;
    padding: 0;
    margin: 0;
    overflow-x: hidden;
    background: #eef2f8 !important;
    font-family: "Open Sans", sans-serif;
}

/* the master's floating developer credit moves into the brand panel */
html body#contbod > div[style*="position: fixed"] { display: none !important; }

/* --------------------------------------------------------------------------
   Right panel: the master's .wrapper becomes a full-height sign-in column
   -------------------------------------------------------------------------- */
html body#contbod .wrapper {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: auto !important;
    transform: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    width: var(--lg-panel-w) !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 4vh clamp(28px, 3.2vw, 64px) 3vh !important;
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow-y: auto;
    background: linear-gradient(var(--theme-accent, #EFA63E), var(--theme-accent, #EFA63E)) left / 5px 100% no-repeat, #ffffff;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: -18px 0 50px rgba(20, 32, 60, 0.12);
    text-align: left;
    z-index: 5;
}

html body#contbod .wrapper > form,
html body#contbod .wrapper > hr,
html body#contbod .wrapper > .center {
    width: 100%;
    max-width: 440px;
    margin-left: auto !important;
    margin-right: auto !important;
}

html body#contbod .wrapper form br { display: none; }

/* undo the old fixed 455px table + row hacks */
#ctl00_MainContent_UserLogin,
#ctl00_MainContent_UserLogin table {
    width: 100% !important;
    background: transparent !important;
    border: 0 !important;
}

#ctl00_MainContent_UserLogin td { padding: 0 !important; }

.main .login .row,
.login .row { margin-left: 0 !important; margin-right: 0 !important; }

.login [class*="col-"] { padding-left: 0; padding-right: 0; }

.login { margin-top: 0 !important; border: 0; padding: 0; min-width: 0; }
.login hr, .login br { display: none !important; }

.login .login-eyebrow {
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--theme-accent-ink, #8a4b00);
}

.login .header_login {
    font-family: "Open Sans", sans-serif;
    font-size: clamp(28px, 2.1vw, 40px) !important;
    font-weight: 700;
    color: var(--lg-ink) !important;
    text-align: left;
    margin: 0 0 6px !important;
}

.login .login-sub {
    text-align: left;
    font-size: 14.5px;
    color: var(--lg-muted);
    margin: 0 0 14px !important;
}

.login .labels {
    display: block;
    margin: 16px 0 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--lg-ink) !important;
}

.login select,
.login input.textEntry,
.login input.passwordEntry {
    display: block;
    width: 100% !important;
    height: 48px;
    margin-top: 6px;
    padding: 0 14px;
    font-size: 15px;
    color: var(--lg-ink);
    background: #f6f8fb;
    border: 1.5px solid var(--lg-line) !important;
    border-radius: 10px !important;
    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.login input.passwordEntry { padding-right: 44px !important; }

.login select:hover,
.login input.textEntry:hover,
.login input.passwordEntry:hover { border: 1.5px solid #c3ccd8 !important; }

.login select:focus,
.login input.textEntry:focus,
.login input.passwordEntry:focus {
    outline: 0;
    background: #ffffff;
    border: 1.5px solid var(--theme-accent, #EFA63E) !important;
    box-shadow: 0 0 0 4px var(--theme-accent-ring, rgba(239, 166, 62, 0.22));
}

.password-container { position: relative; }

.toggle-password {
    top: calc(50% + 3px);
    right: 14px;
    color: var(--lg-muted) !important;
    font-size: 15px;
}

.toggle-password:hover { color: var(--lg-ink) !important; }

/* validation messages */
.login span[id*="Required"], .login span[id*="RequiredFieldValidator"] {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    color: #c0392b;
}

.login .forgot-password-link {
    display: block;
    margin-top: 10px;
    text-align: right;
    font-size: 13px;
    text-decoration: none;
}

.login .forgot-password-link span { font-weight: 600; color: #2b6cb0; }
.login .forgot-password-link:hover span { color: var(--lg-ink); text-decoration: underline; }

/* sign in button */
.main .submitButton { margin: 18px 0 0; }

html body#contbod .main .submitButton input,
html body#contbod #ctl00_MainContent_UserLogin_LoginButton {
    display: block;
    width: 100% !important;
    height: 50px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: linear-gradient(180deg, var(--theme-accent-light, #F4B653) 0%, var(--theme-accent, #EFA63E) 100%) !important;
    color: var(--theme-on-accent, #1b2a41) !important;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    box-shadow: 0 6px 16px var(--theme-accent-shadow, rgba(239, 166, 62, 0.45)) !important;
    transition: transform .12s ease, box-shadow .12s ease, background .12s ease, color .12s ease;
}

html body#contbod .main .submitButton input:hover,
html body#contbod #ctl00_MainContent_UserLogin_LoginButton:hover {
    background: var(--lg-ink) !important;
    color: #ffffff !important;
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(27, 42, 65, 0.35) !important;
}

/* contact footer under the form */
html body#contbod .wrapper #toBeHidden {
    display: block !important;
    border: 0 !important;
    border-top: 1px solid #e6eaf0 !important;
    margin-top: 22px !important;
    margin-bottom: 12px !important;
}

html body#contbod .wrapper .center {
    margin-top: 0 !important;
    text-align: center !important;
    font-size: 12.5px;
    line-height: 1.7;
    color: var(--lg-muted) !important;
}

html body#contbod .wrapper .center strong { color: var(--lg-ink); }
html body#contbod .wrapper .center a { color: #2b6cb0 !important; }

/* OTP / forgot-password panels */
#otpContainer, #changepassowrd { display: flex; justify-content: center; gap: 12px; margin: 12px 0; }

#otp1, #otp2, #otp3, #otp4, #pass1, #pass2, #pass3, #pass4 {
    height: 52px;
    border: 1.5px solid var(--lg-line) !important;
    border-radius: 10px !important;
}

/* --------------------------------------------------------------------------
   Left panel: branding
   -------------------------------------------------------------------------- */
.brand-panel {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    right: var(--lg-panel-w);
    z-index: 1;
    display: flex;
    flex-direction: column;
    padding: clamp(24px, 4.2vh, 52px) clamp(28px, 4vw, 88px) clamp(16px, 2.4vh, 28px);
    background:
        radial-gradient(60vw 45vh at 92% -5%, var(--theme-accent-ring, rgba(239, 166, 62, 0.25)), transparent 62%),
        radial-gradient(50vw 50vh at -5% 105%, rgba(43, 108, 176, 0.12), transparent 62%),
        linear-gradient(135deg, #fafbfd 0%, #e9eff7 100%);
    overflow: hidden;
    text-align: left;
}

.brand-top { display: flex; align-items: center; gap: clamp(14px, 1.4vw, 28px); flex: 0 0 auto; }

/* 16:9 logo plate - any company logo is fitted inside, never cropped or stretched */
.brand-logo-plate {
    position: relative;
    flex: 0 0 auto;
    width: clamp(190px, 15vw, 320px);
    padding-top: calc(clamp(190px, 15vw, 320px) * 9 / 16);
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(20, 32, 60, 0.12), 0 1px 3px rgba(20, 32, 60, 0.08);
}

.brand-logo-plate img.brand-logo {
    position: absolute;
    top: 6%; left: 6%;
    width: 88%; height: 88%;
    max-width: none;
    margin: 0;
    object-fit: contain;
    display: block;
}

.brand-company {
    font-size: clamp(15px, 1.25vw, 24px);
    font-weight: 700;
    line-height: 1.3;
    color: var(--lg-ink);
}

.brand-company small {
    display: block;
    margin-top: 2px;
    font-size: 0.62em;
    font-weight: 600;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: var(--theme-accent-ink, #8a4b00);
}

.brand-hero { position: relative; z-index: 2; flex: 0 0 auto; margin-top: clamp(14px, 3.2vh, 40px); max-width: 44em; }

.brand-title {
    margin: 0 !important;
    font-size: clamp(28px, 2.9vw, 58px);
    line-height: 1.12;
    font-weight: 800;
    color: var(--lg-ink) !important;
    letter-spacing: -0.5px;
}

.brand-title span { color: var(--theme-accent, #EFA63E); }

/* the master hides every <br> inside the form; the headline needs its break */
html body#contbod .wrapper .brand-title br { display: inline; }

.brand-text {
    margin: clamp(8px, 1.4vh, 16px) 0 0;
    max-width: 34em;
    font-size: clamp(13px, 1.05vw, 19px);
    line-height: 1.6;
    color: var(--lg-muted);
}

/* feature pills: stacked bottom-left, above the credit line */
.brand-points {
    position: absolute;
    left: clamp(28px, 4vw, 88px);
    bottom: calc(clamp(16px, 2.4vh, 28px) + 36px);
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.brand-points li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 14px 7px 10px;
    font-size: clamp(12px, 0.9vw, 15px);
    font-weight: 600;
    color: var(--lg-ink);
    background: rgba(255, 255, 255, 0.85);
    border: 1px solid rgba(27, 42, 65, 0.08);
    border-radius: 999px;
}

.brand-points li i {
    width: 24px; height: 24px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 12px;
    color: var(--theme-accent-ink, #8a4b00);
    background: var(--theme-accent-soft, #fff1d6);
    border-radius: 50%;
}

/* illustration is anchored bottom-right and sized from the viewport height, so every
   16:9 screen composes the same way; its empty top-left corner sits under the headline */
.brand-art {
    position: absolute;
    right: 0;
    bottom: clamp(30px, 5vh, 64px);
    height: 64vh;
    width: auto;
    max-width: 82%;
    margin: 0;
    object-fit: contain;
    object-position: right bottom;
    mix-blend-mode: multiply;
    -webkit-mask-image: linear-gradient(to right, #000 84%, transparent 100%);
    mask-image: linear-gradient(to right, #000 84%, transparent 100%);
    pointer-events: none;
    user-select: none;
}

.brand-credit {
    flex: 0 0 auto;
    position: relative;
    z-index: 2;
    margin-top: auto;
    padding-top: 8px;
    font-size: 13px;
    color: var(--lg-ink);
}

.brand-credit a { color: var(--lg-ink); font-weight: 700; text-decoration: none; }
.brand-credit a:hover { text-decoration: underline; }

/* --------------------------------------------------------------------------
   Tablet / phone: stack - compact brand header above the form
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
    html body#contbod {
        background: linear-gradient(135deg, var(--theme-accent-soft, #fff6e6) 0%, #eef2f8 100%) !important;
    }

    html body#contbod .wrapper {
        position: relative !important;
        top: auto !important; right: auto !important; bottom: auto !important;
        width: 100% !important;
        max-width: 520px !important;
        margin: 20px auto !important;
        padding: 24px 24px 18px !important;
        background: #ffffff;
        border-radius: 18px !important;
        box-shadow: 0 24px 60px rgba(20, 32, 60, 0.18), 0 2px 8px rgba(20, 32, 60, 0.08);
        overflow: visible;
    }

    .brand-panel {
        position: static;
        padding: 0 0 14px;
        background: none;
        overflow: visible;
    }

    .brand-top { flex-direction: column; gap: 10px; text-align: center; }
    .brand-logo-plate { width: 220px; padding-top: 123.75px; box-shadow: 0 4px 14px rgba(20, 32, 60, 0.10); }
    .brand-company { text-align: center; }
    .brand-hero, .brand-points, .brand-art, .brand-credit { display: none; }

    .login .header_login, .login .login-eyebrow, .login .login-sub { text-align: center; }

    html body#contbod > div[style*="position: fixed"] {
        display: block !important;
        position: static !important;
        margin: 0 0 16px;
        text-align: center !important;
    }
}

@media (max-width: 480px) {
    html body#contbod .wrapper { margin: 12px !important; width: auto !important; padding: 20px 18px 16px !important; border-radius: 14px !important; }
    .login .header_login { font-size: 24px !important; }
}

/* short / ultra-wide screens: drop the pills first so the illustration stays large */
@media (min-width: 1025px) and (max-height: 760px) {
    .brand-points { display: none; }
}
