/* Login/Register only. Colors use canonical shared/auth tokens from main.scss. */
.html.ep-auth-root {
    background: var(--epoll-ui-canvas);
}

body.ep-auth-layout {
    height: auto;
    min-height: 100vh;
    padding-top: 64px;
    padding-bottom: 0;
    color: var(--epoll-ui-ink);
    background: var(--epoll-ui-canvas);
}

.ep-auth-layout > .fullwidthHeight {
    height: auto !important;
}

.ep-auth-layout > header.navbar {
    min-height: 64px;
    background: var(--epoll-auth-header) !important;
    border: 0;
    box-shadow: none;
}

.ep-auth-layout header .app_logo_div {
    width: 144px;
    left: 50%;
    transform: translateX(-50%);
}

.ep-auth-layout header .app_logo {
    height: 64px;
    background-position: center;
}

.ep-auth-layout header .user-icon a,
.ep-auth-layout header .user-name-info,
.ep-auth-layout header #SearchBt {
    color: var(--epoll-auth-on-accent) !important;
}

.ep-auth-layout header .search-box0 {
    height: 64px;
    margin-block: 0;
    margin-inline: var(--epoll-ui-space-md);
    display: flex;
    align-items: center;
}

.ep-auth-layout header .search-box0 > .sidebar-search {
    position: relative;
    inset: auto;
    margin: 0 !important;
}

.ep-auth-layout header .sidebar-search #Filter {
    /* Logo half-width + gap + edge inset + the existing 35px form padding. */
    max-width: calc(50vw - 72px - var(--epoll-ui-space-md) - var(--epoll-ui-space-md) - 35px);
}

.ep-auth-layout header .sidebar-search #SearchBt {
    top: 0;
    bottom: 0;
    height: 32px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ep-auth-layout header .sidebar-search #SearchBt i {
    margin: 0;
    padding: 0 !important;
    line-height: 1;
}

.ep-auth-layout > header > div:has(> .account-renew) {
    height: 64px;
    display: flex;
    align-items: center;
}

.ep-auth-layout header .account-renew {
    margin-block: 0;
    padding-block: 6px;
}

@media (min-width: 992px) {
    .ep-auth-layout > header > div:has(> .account-renew) {
        /* Bootstrap's hidden-* utilities force display:block at this size. */
        display: flex !important;
    }
}

/* Avoid adding the wrapper offset to the legacy icons' top margins. */
.ep-auth-layout header .user-icon {
    height: 64px;
    margin-top: 0;
    display: flex;
    align-items: center;
}

.ep-auth-layout header #logoutForm {
    height: 64px;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 4px;
}

.ep-auth-layout header #logoutForm > .btn-group,
.ep-auth-layout header #logoutForm > .btn-group > a {
    display: inline-flex;
    align-items: center;
}

.ep-auth-layout header #logoutForm > .btn-group > a > i {
    margin-top: 0 !important;
}

.ep-auth-layout header .user-name-info {
    margin-top: 22px;
}

.ep-auth-layout header .lang-ico {
    position: relative;
    top: 0;
    left: auto;
    right: auto;
    z-index: auto;
    display: inline-flex;
    align-items: center;
    width: 44px;
    height: 44px;
    margin-top: 10px;
}

.ep-auth-layout header .lang-ico > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    line-height: 1;
}

.ep-auth-layout header .lang-ico .lang-txt {
    margin: 0;
}

.ep-auth-layout header .lang-ico .language-icon-list {
    display: block;
    flex-shrink: 0;
    width: 25px;
    height: 25px;
    object-fit: contain;
}

.ep-auth-layout .limiter {
    background: none;
}

.ep-auth-layout .container-login100 {
    min-height: calc(100vh - 64px);
    min-height: calc(100svh - 64px);
    align-items: flex-start;
    padding: 48px 24px !important;
    animation: none;
}

.ep-auth-layout .limiter .container-login100 .wrap-login100 {
    width: 448px;
    max-width: 100%;
    padding: 32px !important;
    overflow: visible;
    background: var(--epoll-ui-surface) !important;
    border: 1px solid var(--epoll-ui-border);
    border-radius: var(--epoll-ui-radius);
    box-shadow: 0 8px 32px var(--epoll-ui-shadow) !important;
}

.ep-auth-layout .login-title {
    margin: 0 0 28px;
    padding: 0;
    color: var(--epoll-ui-ink) !important;
    font-size: 28px;
    font-weight: 600;
    line-height: 1.5;
    text-align: start;
}

.ep-auth-layout .wrap-login100 > h1.login-title#auth-title {
    text-align: center;
}

.ep-auth-layout .form-group,
.ep-auth-layout .form-horizontal .form-group {
    margin: 0 !important;
}

.ep-auth-layout .ep-auth-form .padding-5 {
    padding: 0;
    margin-bottom: var(--epoll-ui-space-md);
}

.ep-auth-layout .ep-auth-label {
    display: block;
    margin: 0 0 8px;
    color: var(--epoll-ui-ink);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.6;
    text-align: start;
}

.ep-auth-layout .filled {
    overflow: visible;
    background: transparent;
}

/* Auth text fields: real labels stay visible for typing and autofill. */
.ep-auth-layout .ep-auth-floating {
    margin-top: 12px;
}

.ep-auth-layout .ep-auth-floating > .ep-auth-label {
    position: absolute;
    z-index: 3;
    inset-inline-start: 40px;
    inset-inline-end: 48px;
    top: 24px;
    width: fit-content;
    max-width: calc(100% - 88px);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin: 0;
    padding-inline: 4px;
    color: var(--epoll-ui-muted);
    background: var(--epoll-ui-surface);
    line-height: 1.6;
    transform: translateY(-50%);
    transform-origin: left center;
    transition: transform 150ms cubic-bezier(0.23, 1, 0.32, 1);
    cursor: text;
}

.ep-auth-layout .ep-auth-floating > .form-control:focus ~ .ep-auth-label,
.ep-auth-layout .ep-auth-floating > .form-control:not(:placeholder-shown) ~ .ep-auth-label,
.ep-auth-layout .ep-auth-floating > .form-control:autofill ~ .ep-auth-label {
    transform: translateY(calc(-50% - 24px)) scale(0.8571428571);
    color: var(--epoll-ui-ink);
}

html[dir="rtl"] .ep-auth-layout .ep-auth-floating > .ep-auth-label {
    transform-origin: right center;
}

@media (prefers-reduced-motion: reduce) {
    .ep-auth-layout .ep-auth-floating > .ep-auth-label {
        transition: none;
    }
}

@media (forced-colors: active) {
    .ep-auth-layout .ep-auth-floating > .ep-auth-label {
        color: CanvasText;
        background: Canvas;
    }
}

.ep-auth-layout .input-group {
    position: relative;
    display: block;
    width: 100%;
    border-radius: var(--epoll-ui-control-radius);
}

.ep-auth-layout .form-control {
    float: none;
    width: 100%;
    height: 48px;
    padding: 12px 48px;
    color: var(--epoll-ui-ink);
    background: var(--epoll-ui-surface) !important;
    border: 1px solid var(--epoll-ui-border) !important;
    border-radius: var(--epoll-ui-control-radius) !important;
    box-shadow: none;
    font-size: 16px !important;
    font-style: normal;
    line-height: 1.5;
    transition: none;
    outline: 0 !important;
    outline-offset: 0;
    text-align: left !important;
    text-indent: 0 !important;
}

.ep-auth-layout .form-control::placeholder {
    color: var(--epoll-ui-muted) !important;
    font-size: 14px !important;
    font-style: normal !important;
    opacity: 1;
}

.ep-auth-layout .input-group > .form-control {
    padding-inline-start: 40px;
    padding-inline-end: 16px;
}

.ep-auth-layout .input-group:has(.ep-auth-password-toggle) > .form-control {
    padding-inline-end: 48px;
}

html[dir="rtl"] .ep-auth-layout .input-group > .form-control {
    /* Input values stay LTR; mirror padding using the surrounding locale. */
    padding-inline-start: 16px;
    padding-inline-end: 40px;
}

html[dir="rtl"] .ep-auth-layout .input-group:has(.ep-auth-password-toggle) > .form-control {
    padding-inline-start: 48px;
}

/* Align localized hints without changing the bidi/caret of entered values. */
html[dir="rtl"] .ep-auth-layout .form-control:placeholder-shown {
    text-align: right !important;
}

html[dir="rtl"] .ep-auth-layout .form-control::placeholder {
    direction: rtl;
    unicode-bidi: plaintext;
}

.ep-auth-layout .input-group-addon {
    position: absolute;
    left: auto;
    right: auto;
    inset-inline-start: 14px;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    min-width: 20px;
    max-width: 20px;
    height: 48px;
    padding: 0;
    color: var(--epoll-ui-muted);
    background: transparent !important;
    border: 0;
    pointer-events: none;
    transform: none;
}

.ep-auth-layout .input-group-addon > i,
.ep-auth-layout .ep-auth-password-toggle > i {
    position: static;
    margin: 0;
    padding: 0 !important;
    line-height: 1;
    transform: none;
}

.ep-auth-layout .input-group > span[data-label],
.ep-auth-layout .input-group > span:empty {
    display: none;
}

.ep-auth-layout .ep-auth-password-toggle {
    position: absolute;
    inset-inline-end: 4px;
    top: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    color: var(--epoll-ui-muted);
    background: transparent;
    border: 0;
    border-radius: var(--epoll-ui-control-radius);
    cursor: pointer;
}

.ep-auth-layout .form-control:focus {
    border-color: var(--epoll-auth-focus) !important;
    /* Keep the unfocused geometry; only the border color changes. */
    outline: 0 !important;
    outline-offset: 0;
    box-shadow: none !important;
}

.ep-auth-layout a:focus-visible,
.ep-auth-layout button:focus-visible {
    outline: 3px solid var(--epoll-auth-focus) !important;
    outline-offset: 3px;
}

.ep-auth-layout header a:focus-visible,
.ep-auth-layout header button:focus-visible {
    outline-color: var(--epoll-auth-on-accent) !important;
}

.ep-auth-layout .input-validation-error {
    border-color: var(--epoll-ui-danger) !important;
}

.ep-auth-layout .field-validation-error {
    display: block;
    margin-top: 8px;
    color: var(--epoll-ui-danger);
    font-size: 13px;
    line-height: 1.7;
    text-align: start;
    overflow-wrap: anywhere;
}

.ep-auth-layout .validation-summary-errors {
    margin-bottom: 20px;
    padding: 12px 16px;
    color: var(--epoll-ui-danger);
    background: var(--epoll-ui-surface-soft);
    border: 1px solid var(--epoll-ui-danger);
    border-radius: var(--epoll-ui-control-radius);
    font-size: 14px;
    line-height: 1.7;
    overflow-wrap: anywhere;
}

.ep-auth-layout .validation-summary-errors ul {
    margin: 0;
    padding-inline-start: 20px;
}

.ep-auth-layout .forgotpass {
    margin: 0;
    font-size: 14px;
    text-align: start;
}

.ep-auth-layout .ep-auth-main a {
    color: var(--epoll-auth-link) !important;
    text-underline-offset: 3px;
}

.ep-auth-layout .ep-auth-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 48px;
    height: auto;
    padding: 12px 20px;
    color: var(--epoll-auth-on-accent) !important;
    background: var(--epoll-auth-accent) !important;
    border: 1px solid var(--epoll-auth-accent);
    border-radius: var(--epoll-ui-control-radius);
    box-shadow: none;
    font-size: 16px;
    line-height: 1.5;
    white-space: normal;
    transform: none;
    box-shadow: none !important;
    transition: background-color 120ms ease;
}

.ep-auth-layout .ep-auth-submit:active {
    transform: none;
    box-shadow: none !important;
}

/* Keyboard activation stays immediate; pointer presses retain subtle feedback. */
.ep-auth-layout .ep-auth-submit:focus-visible {
    transform: none;
    transition: none;
}

.ep-auth-layout .is-submitting .ep-auth-submit::after {
    content: '';
    width: 16px;
    height: 16px;
    border: 2px solid currentColor;
    border-inline-end-color: transparent;
    border-radius: 50%;
    animation: ep-auth-spin 600ms linear infinite;
}

.ep-auth-layout .loginBySocial-title {
    margin: 24px 0 14px;
    padding: 20px 0 0;
    border-top: 1px solid var(--epoll-ui-border);
}

.ep-auth-layout .loginBySocial-title h4 {
    margin: 0;
    color: var(--epoll-ui-muted);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.6;
}

.ep-auth-layout .social-bt {
    flex-direction: column;
    gap: 10px;
}

.ep-auth-layout .login100-social-item {
    display: flex;
    gap: 12px;
    width: 100%;
    max-width: none;
    min-height: 48px;
    height: auto;
    margin: 0;
    padding: 12px 16px;
    color: var(--epoll-ui-ink) !important;
    background: var(--epoll-ui-surface) !important;
    background-image: none;
    border: 1px solid var(--epoll-ui-border) !important;
    border-radius: var(--epoll-ui-control-radius);
    text-shadow: none;
    font-size: 14px;
    line-height: 1.6;
    white-space: normal;
    transform: none;
    box-shadow: none !important;
}

.ep-auth-layout .login100-social-item:active {
    transform: none;
    box-shadow: none !important;
}

.ep-auth-layout .ep-auth-main button {
    transform: none !important;
    box-shadow: none !important;
}

.ep-auth-layout .ep-auth-main button:active {
    background-image: linear-gradient(var(--epoll-ui-hover-tint), var(--epoll-ui-hover-tint)) !important;
}

.ep-auth-layout .login100-social-item i {
    width: 20px;
    font-size: 18px;
}

.ep-auth-layout .register-login {
    margin-top: 24px;
    padding-top: 0;
    font-size: 14px;
    line-height: 1.8;
}

.ep-auth-layout .signup-title {
    margin: 0;
    color: var(--epoll-ui-ink);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.8;
}

.ep-auth-layout .licenseAgreenet {
    margin-top: var(--epoll-ui-space-lg);
    color: var(--epoll-ui-muted);
    font-size: 13px;
    line-height: 1.9;
    overflow-wrap: anywhere;
}

.ep-auth-layout .ep-auth-form .licenseAgreenet {
    margin: var(--epoll-ui-space-lg) 0;
}

.ep-auth-layout #divCaptcha {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 16px;
    color: var(--epoll-ui-muted);
    background: var(--epoll-ui-surface-soft);
    border: 1px solid var(--epoll-ui-border);
    border-radius: var(--epoll-ui-control-radius);
    font-size: 14px;
    line-height: 1.7;
}

.ep-auth-layout #divCaptcha > br {
    display: none;
}

.ep-auth-layout #CaptchaImage {
    max-width: 100%;
    height: auto;
}

.ep-auth-layout #CaptchaInputText {
    padding: 12px 16px;
    direction: ltr;
    text-align: center !important;
    font-size: 16px !important;
}

.ep-auth-layout .modal-content {
    background: var(--epoll-ui-surface);
    border: 1px solid var(--epoll-ui-border);
    border-radius: var(--epoll-ui-radius);
    box-shadow: 0 8px 32px var(--epoll-ui-shadow);
}

.ep-auth-layout .modal-header .close {
    min-width: 44px;
    min-height: 44px;
    color: var(--epoll-ui-ink);
    opacity: 1;
}

.ep-auth-layout .license-dialog {
    max-width: calc(100% - 32px);
}

@keyframes ep-auth-spin {
    to { transform: rotate(360deg); }
}

@media (hover: hover) and (pointer: fine) {
    .ep-auth-layout .ep-auth-main button:hover {
        background-image: linear-gradient(var(--epoll-ui-hover-tint), var(--epoll-ui-hover-tint)) !important;
    }
    .ep-auth-layout .ep-auth-main a:hover {
        text-decoration: underline;
    }
}

@media (max-width: 600px) {
    .ep-auth-layout header .user-icon {
        margin-inline: 0;
    }
    .ep-auth-layout header .app_logo_div {
        /* Keep the 116px rendered brand image; separate the click regions. */
        width: 136px;
    }
    .ep-auth-layout header .lang-ico {
        position: absolute;
        inset-inline-start: 16px;
        inset-inline-end: auto;
        top: 10px;
        margin: 0;
    }
    .ep-auth-layout .container-login100 {
        min-height: calc(100svh - 64px);
        padding: 24px 16px calc(24px + env(safe-area-inset-bottom, 0px)) !important;
    }
    .ep-auth-layout .wrap-login100 {
        padding: 24px !important;
    }
    .ep-auth-layout .login-title {
        font-size: 24px;
        margin-bottom: 24px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ep-auth-layout .ep-auth-submit {
        transition: none;
    }
    .ep-auth-layout .ep-auth-submit:active {
        transform: none;
    }
    .ep-auth-layout .is-submitting .ep-auth-submit::after {
        animation: none;
    }
    .ep-auth-layout .modal.fade,
    .ep-auth-layout .modal.fade .modal-dialog {
        transition: none;
        transform: none;
    }
}

@media (forced-colors: active) {
    .ep-auth-layout .form-control {
        forced-color-adjust: none;
        color: CanvasText;
        background: Canvas !important;
        border-color: CanvasText !important;
    }
    .ep-auth-layout .form-control:focus {
        border-color: Highlight !important;
    }
    .ep-auth-layout .form-control::placeholder {
        color: GrayText !important;
    }
    .ep-auth-layout a:focus-visible,
    .ep-auth-layout button:focus-visible {
        outline-color: Highlight !important;
    }
}

/* Login composition only; floating labels and their motion remain unchanged. */
body.ep-auth-layout.ep-login-refresh { --ep-login-band-gap: 112px; padding-top: 0; background: #f8f9fa; --epoll-ui-ink: #2d3748; --epoll-ui-muted: #718096; }
.ep-login-refresh .ep-login-band { position: absolute; inset: var(--ep-login-band-gap) var(--ep-login-band-gap) auto; height: calc(42.5svh - 27.2px); min-height: 204px; background: var(--epoll-auth-header); border-radius: 16px; overflow: hidden; pointer-events: none; }
.ep-login-refresh .ep-login-wave { position: absolute; width: min(100%, 1280px); height: auto; opacity: 1; pointer-events: none; }
.ep-login-refresh .ep-login-wave-first { top: -24%; left: -12%; transform: rotate(21.71deg); }
.ep-login-refresh .ep-login-wave-second { top: -18%; left: 22%; transform: rotate(-158.29deg); }
.ep-login-refresh .ep-login-brand { position: absolute; top: calc(var(--ep-login-band-gap) + 24px); left: 50%; transform: translateX(-50%); width: calc(155px * 17 / 21 * .92); max-width: calc(100% - 32px); height: 45px; z-index: 1; }
.ep-login-refresh .ep-login-logo { width: 100%; height: 100%; object-fit: contain; filter: brightness(0) invert(1); animation: none; transform: none; }
/* Match keyboard focus to the cropped SVG, not its taller positioning box. */
.ep-auth-layout .ep-login-brand:focus-visible { outline: none !important; }
.ep-login-brand:focus-visible::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    aspect-ratio: 120 / 32;
    transform: translateY(-50%);
    border-radius: 3px;
    outline: 2px solid #fff;
    outline-offset: 4px;
    pointer-events: none;
}
@media (forced-colors: active) {
    .ep-login-brand:focus-visible::after { outline-color: Highlight; }
}
.ep-login-refresh .ep-login-language { position: absolute; inset-block-start: calc(var(--ep-login-band-gap) + 16px); right: calc(var(--ep-login-band-gap) + 16px); z-index: 10; }
.ep-login-refresh .ep-login-language .lang-ico { position: relative; inset: auto; margin: 0; z-index: auto; }
.ep-login-refresh .ep-login-language .lang-ico > a { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 8px; background: white; }
.ep-login-refresh .limiter .container-login100 { position: relative; min-height: 100vh; min-height: 100svh; padding: calc(var(--ep-login-band-gap) + 80px) 24px !important; margin: 0; align-items: center; }
.ep-login-refresh .limiter .container-login100 .wrap-login100 { width: 424px; padding: 28px !important; border: 0; box-shadow: 0 7px 24px rgba(45,55,72,.08) !important; }
.ep-login-refresh .wrap-login100 > h1.login-title#auth-title { margin-bottom: 8px; font-size: 24px; }
.ep-login-refresh .ep-login-tagline { text-align: center; color: var(--epoll-ui-muted); margin: 0 0 28px; font-size: 15px; line-height: 1.7; }
.ep-login-refresh .form-control:focus { border-color: var(--epoll-auth-accent) !important; }
.ep-login-refresh .ep-auth-password-toggle { color: var(--epoll-auth-accent); }
.ep-login-refresh .social-bt { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.ep-login-refresh .social-bt .login100-social-item { width: 100%; margin: 0; padding: 10px 8px; }
.ep-login-refresh .social-bt .login100-social-item span { font-size: 12px; }
@media (max-width: 480px) {
    body.ep-auth-layout.ep-login-refresh { --ep-login-band-gap: clamp(32px, 15vw, 56px); }
    .ep-login-refresh .ep-login-band { inset: var(--ep-login-band-gap) var(--ep-login-band-gap) auto; height: calc(42.5svh - 13.6px); min-height: 187px; }
    .ep-login-refresh .ep-login-brand { top: calc(var(--ep-login-band-gap) + 8px); width: calc(121px * 17 / 21 * .92); height: 36px; }
    .ep-login-refresh .limiter .container-login100 { padding: 112px 16px !important; }
    .ep-login-refresh .limiter .container-login100 .wrap-login100 { padding: 24px !important; }
    .ep-login-refresh .ep-login-language { right: calc(var(--ep-login-band-gap) + 8px); inset-block-start: calc(var(--ep-login-band-gap) + 8px); }
}
.ep-login-refresh .ep-login-divider { display: flex; align-items: center; gap: 12px; margin: 24px 0; color: var(--epoll-ui-muted); font-size: 13px; }
.ep-login-refresh .ep-login-divider::before, .ep-login-refresh .ep-login-divider::after { content: ""; height: 1px; flex: 1; background: #e2e8f0; }
.ep-login-refresh .social-bt .login100-social-item span { font-size: 14px; }

.ep-login-refresh .ep-login-language .lang-txt { display: none; }
.ep-login-refresh .ep-login-language .language-icon-list { display: block; margin: 0 !important; padding: 0 !important; width: 25px; height: 25px; object-fit: contain; }
.ep-login-refresh .ep-login-language .dropdown-menu { right: 0; left: auto; }
.ep-login-refresh .social-bt .login100-social-item { align-items: center; justify-content: center; }
.ep-login-refresh .social-bt .login100-social-item span { font-size: 14px; line-height: 20px; }
.ep-login-refresh .social-bt .login100-social-item i { line-height: 20px; }
/* Optical correction for Latin provider names in the app's existing font. */
.ep-login-refresh.rtl .social-bt .login100-social-item span { transform: translateY(2px); }
.ep-login-refresh #licenseModal.in, .ep-login-refresh #PolicyModal.in,
.ep-login-refresh #licenseModal.ep-auth-modal-visible, .ep-login-refresh #PolicyModal.ep-auth-modal-visible { display: flex !important; align-items: center; justify-content: center; padding: 20px !important; }
.ep-login-refresh #licenseModal .license-dialog, .ep-login-refresh #PolicyModal .license-dialog { width: 720px !important; max-width: 100%; height: auto !important; margin: 0 !important; transform: none !important; }
.ep-login-refresh #licenseModal .modal-content, .ep-login-refresh #PolicyModal .modal-content { display: flex; flex-direction: column; max-height: calc(100vh - 40px); max-height: min(80svh, 760px, calc(100svh - 40px)); overflow: hidden; }
.ep-login-refresh #licenseModal .modal-header, .ep-login-refresh #PolicyModal .modal-header { flex: 0 0 auto; }
.ep-login-refresh #licenseModal .modal-body, .ep-login-refresh #PolicyModal .modal-body { min-height: 0; overflow-y: auto; height: auto !important; padding: 20px; }.ep-login-refresh #licenseModal .license-dialog, .ep-login-refresh #PolicyModal .license-dialog { padding: 0 !important; }
.ep-login-refresh #licenseModal .modal-header, .ep-login-refresh #PolicyModal .modal-header { display: flex; align-items: center; gap: 12px; padding: 16px; }
.ep-login-refresh #licenseModal .modal-header > .close, .ep-login-refresh #PolicyModal .modal-header > .close { order: 2; float: none; flex-shrink: 0; width: 44px; margin: 0; }
.ep-login-refresh #licenseModal .modal-title, .ep-login-refresh #PolicyModal .modal-title { order: 1; flex: 1; margin: 0; }

/* Physical provider order in RTL, without changing button direction or DOM/tab order. */
.ep-login-refresh.rtl .social-bt #Google { grid-column: 2; grid-row: 1; }
.ep-login-refresh.rtl .social-bt #LinkedIn { grid-column: 1; grid-row: 1; }

.ep-login-refresh .ep-login-title-vector { display: block; width: 296px; max-width: 100%; height: 48px; object-fit: contain; margin-inline: auto; }

/* Halve the existing 35px field gap on desktop while retaining floating-label space. */
@media (min-width: 769px) {
    .ep-login-refresh .ep-auth-form .ep-login-password-row {
        margin-top: -17.5px;
    }
}
/* English provider names read left-to-right within the Persian Login page. */
@media (min-width: 769px) {
    .ep-login-refresh .social-bt #Google,
    .ep-login-refresh .social-bt #LinkedIn {
        direction: ltr;
    }
}
/* Keep the separator equally spaced from the primary and social buttons on desktop. */
@media (min-width: 769px) {
    .ep-login-refresh .ep-auth-form {
        margin-bottom: 0;
    }
    .ep-login-refresh .ep-auth-form > .form-group > .padding-5:last-child {
        margin-bottom: 0;
    }
    .ep-login-refresh .ep-login-divider {
        margin-block: 32px;
    }
}
/* Optically balance the registration prompt between social buttons and legal links. */
@media (min-width: 769px) {
    .ep-login-refresh .register-login {
        margin-top: 32px;
    }
    .ep-login-refresh .licenseAgreenet {
        margin-top: 16px;
    }
}
@media (min-width: 769px) {
    .ep-login-refresh .ep-login-language .lang-ico > a {
        width: 32px;
        height: 32px;
        border-radius: 50%;
    }
}
@media (min-width: 769px) {
    .ep-login-refresh .ep-login-brand {
        /* Preserve the approved spacing proportions and reduce the mark by 8%. */
        width: calc(230px * 17 / 21 * .92);
        height: 67.5px;
    }
}
.ep-login-footer { display: none; }
@media (min-width: 769px) {
    .ep-login-refresh .limiter .container-login100 {
        min-height: calc(100vh - 80px);
        min-height: calc(100svh - 80px);
    }
    .ep-login-refresh .ep-login-footer {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 24px;
        min-height: 80px;
        margin-inline: 112px;
        padding-block: 20px;
        color: var(--epoll-ui-muted);
        font-size: 12px;
        line-height: 1.6;
    }
    .ep-login-footer-credit { margin: 0; }
    .ep-login-footer-credit strong { color: var(--epoll-ui-ink); font-weight: 600; }
    .ep-login-footer-links { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; }
    .ep-login-footer-links a { color: var(--epoll-ui-muted); text-decoration: none; }
    .ep-login-footer-links a:hover { color: var(--epoll-ui-ink); }
    .ep-login-footer-links a:focus-visible { outline: 2px solid var(--epoll-ui-ink); outline-offset: 4px; }
}
@media (min-width: 769px) {
    .ep-login-refresh .ep-login-wave-first {
        transform: rotate(-45deg);
    }
    .ep-login-refresh .ep-login-wave-second {
        transform: rotate(135deg);
    }
}
@media (min-width: 769px) {
    .ep-login-refresh .ep-login-wave {
        width: 125%;
        max-width: none;
    }
    .ep-login-refresh .ep-login-wave-first {
        top: -65%;
        left: -25%;
    }
    .ep-login-refresh .ep-login-wave-second {
        top: -65%;
        left: 30%;
    }
}
/* One translucent layer avoids crossing bands and concentrated white patches. */
@media (min-width: 769px) {
    .ep-login-refresh .ep-login-wave-first {
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        object-fit: fill;
        transform: none;
    }
    .ep-login-refresh .ep-login-wave-second {
        display: none;
    }
}
/* Slow decorative motion on the infrequently visited Login screen. */
@media (min-width: 769px) {
    .ep-login-refresh .ep-login-band::before {
        content: "";
        position: absolute;
        inset: -25%;
        pointer-events: none;
        background:
            radial-gradient(ellipse at 24% 28%, rgba(154, 238, 226, 0.35), transparent 60%),
            radial-gradient(ellipse at 78% 72%, rgba(29, 151, 143, 0.22), transparent 62%),
            linear-gradient(115deg, #43c6bb, #4fd1c5 48%, #63d9ce);
        animation: ep-login-gradient-drift 18s cubic-bezier(0.77, 0, 0.175, 1) -5s infinite alternate;
    }
    .ep-login-refresh .ep-login-wave-first {
        animation: ep-login-wave-sway 12s cubic-bezier(0.77, 0, 0.175, 1) -3s infinite alternate;
        transform-origin: center;
    }
}
@keyframes ep-login-gradient-drift {
    from { transform: translate(-8%, -5%) scale(1.03); opacity: 0.7; }
    to { transform: translate(8%, 5%) scale(1.08); opacity: 1; }
}
@keyframes ep-login-wave-sway {
    from { transform: translate(-4%, -2%) scale(1.14) skewY(-1deg); }
    to { transform: translate(4%, 2%) scale(1.14) skewY(1deg); }
}

@media (min-width: 769px) {
    .ep-login-refresh .ep-login-wave-parallax {
        display: block;
        position: absolute;
        inset: -2%;
        pointer-events: none;
    }
}
@media (min-width: 769px) {
    .ep-login-refresh .ep-login-logo {
        filter: drop-shadow(0 1px 2px rgba(45, 55, 72, 0.14));
    }
}
/* Approved auth composition, shared by Login and Register at every width. */
.ep-login-refresh .social-bt #Google,
.ep-login-refresh .social-bt #LinkedIn { direction: ltr; }
.ep-login-refresh .ep-auth-form .ep-login-password-row { margin-top: -17.5px; }
.ep-login-refresh .ep-auth-form { margin-bottom: 0; }
.ep-login-refresh .ep-auth-form > .form-group > .padding-5:last-child { margin-bottom: 0; }
.ep-login-refresh .ep-login-divider { margin-block: 32px; }
.ep-login-refresh .register-login { margin-top: 32px; }
.ep-login-refresh .licenseAgreenet { margin-top: 16px; }
.ep-login-refresh .ep-login-language .lang-ico > a { border-radius: 50%; }
.ep-login-refresh .ep-login-logo { filter: drop-shadow(0 1px 2px rgba(45,55,72,.14)); }
.ep-login-refresh .ep-login-wave-parallax { display: block; position: absolute; inset: -2%; pointer-events: none; }
.ep-login-refresh .ep-login-wave-first {
    top: 0; left: 0; width: 100%; height: 100%; object-fit: fill;
    transform-origin: center;
    animation: ep-login-wave-sway 12s cubic-bezier(.77,0,.175,1) -3s infinite alternate;
}
.ep-login-refresh .ep-login-band::before {
    content: ""; position: absolute; inset: -25%; pointer-events: none;
    background: radial-gradient(ellipse at 24% 28%,rgba(154,238,226,.35),transparent 60%),
        radial-gradient(ellipse at 78% 72%,rgba(29,151,143,.22),transparent 62%),
        linear-gradient(115deg,#43c6bb,#4fd1c5 48%,#63d9ce);
    animation: ep-login-gradient-drift 18s cubic-bezier(.77,0,.175,1) -5s infinite alternate;
}
.ep-login-refresh .ep-login-footer {
    display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap;
    gap: 16px 24px; min-height: 80px;
    margin-inline: var(--ep-login-band-gap); padding-block: 20px;
    color: var(--epoll-ui-muted); font-size: 12px; line-height: 1.6;
}
.ep-login-footer-credit { margin: 0; }
.ep-login-footer-credit strong { color: var(--epoll-ui-ink); font-weight: 600; }
.ep-login-footer-links { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; }
.ep-login-footer-links a { color: var(--epoll-ui-muted); text-decoration: none; }
.ep-login-footer-links a:hover { color: var(--epoll-ui-ink); }
.ep-login-footer-links a:focus-visible { outline: 2px solid var(--epoll-ui-ink); outline-offset: 4px; }
@media (max-width: 768px) {
    body.ep-auth-layout.ep-login-refresh { --ep-login-band-gap: clamp(24px,8vw,56px); }
    .ep-login-refresh .ep-login-band {
        inset: var(--ep-login-band-gap) var(--ep-login-band-gap) auto;
        height: 42.5svh; min-height: 240px;
    }
    .ep-login-refresh .ep-login-brand {
        top: calc(var(--ep-login-band-gap) + 12px); width: calc(187px * 17 / 21 * .92); height: 55px;
    }
    .ep-login-refresh .ep-login-language {
        inset-block-start: calc(var(--ep-login-band-gap) + 8px);
        right: calc(var(--ep-login-band-gap) + 8px);
    }
    .ep-login-refresh .ep-login-language .lang-ico > a {
        position: relative; width: 44px; height: 44px; background: transparent;
    }
    .ep-login-refresh .ep-login-language .lang-ico > a::before {
        content: ""; position: absolute; width: 32px; height: 32px;
        border-radius: 50%; background: #fff;
    }
    .ep-login-refresh .ep-login-language .language-icon-list { position: relative; }
    .ep-login-refresh .limiter .container-login100 {
        min-height: calc(100svh - 124px);
        padding: calc(var(--ep-login-band-gap) + 100px) 16px 32px !important;
    }
    .ep-login-refresh .limiter .container-login100 .wrap-login100 { padding: 24px !important; }
    .ep-login-refresh .ep-login-footer {
        margin-inline: 24px; min-height: 124px; padding: 16px 0 24px;
        justify-content: center; text-align: center;
    }
    .ep-login-footer-links { justify-content: center; gap: 12px 20px; }
    .ep-login-footer-links a { display: inline-flex; align-items: center; min-height: 44px; }
    .ep-login-refresh .ep-login-tagline { font-size: 14px; }
}
/* Keep phone controls usable without disabling browser zoom. */
@media (pointer: coarse) {
    .ep-login-refresh .ep-auth-main input.form-control { font-size: 16px !important; }
    .ep-login-refresh .forgotpass > a,
    .ep-login-refresh .licenseAgreenet > a,
    .ep-login-refresh .signup-link {
        display: inline-flex; align-items: center; min-height: 44px;
    }
    .ep-login-refresh .ep-auth-main button,
    .ep-login-refresh .ep-auth-main a,
    .ep-login-refresh .ep-login-language a { touch-action: manipulation; }
}
/* Long registration and short desktop screens keep the footer close to the form. */
@media (min-width: 769px) {
    .ep-register-refresh .limiter.ep-register .container-login100 { padding-bottom: 32px !important; }
}
@media (min-width: 769px) and (max-height: 1000px) {
    .ep-login-refresh .limiter .container-login100 { padding-bottom: 32px !important; }
}
/* Reserve logo clearance even when a long form fills a tall desktop viewport. */
@media (min-width: 769px) {
    /* Cap only the decoration. Purity's 1920px registration frame uses a
       1872 x 520.5 banner (24px side gutters); keep v4's existing gutters. */
    .ep-login-refresh .ep-login-band {
        left: 50%;
        right: auto;
        width: calc(100% - 2 * var(--ep-login-band-gap));
        max-width: 1872px;
        max-height: 520.5px;
        transform: translateX(-50%);
    }
    .ep-login-refresh .ep-login-language {
        right: max(calc(var(--ep-login-band-gap) + 16px), calc((100% - 1872px) / 2 + 16px));
    }
    .ep-login-refresh .limiter .container-login100 {
        padding-top: calc(var(--ep-login-band-gap) + 120px) !important;
    }
}
/* Login/Register share one overlap geometry. Only the banner is size-capped;
   the card remains in normal flow and may grow with validation or CAPTCHA. */
body.ep-auth-layout.ep-login-refresh:has(.limiter.login, .limiter.ep-register) {
    --ep-auth-band-height: clamp(204px, calc(42.5svh - 27.2px), 520.5px);
    --ep-auth-rendered-band-height: min(var(--ep-auth-band-height), var(--ep-auth-fit-band-height, 520.5px));
}
body.ep-auth-layout.ep-login-refresh:has(.limiter.login, .limiter.ep-register) > .fullwidthHeight {
    display: flex;
    flex-direction: column;
    min-height: 100svh;
}
body.ep-auth-layout.ep-login-refresh:has(.limiter.login, .limiter.ep-register) .ep-auth-main {
    flex: 1 0 auto;
}
body.ep-auth-layout.ep-login-refresh:has(.limiter.login, .limiter.ep-register) .ep-login-footer {
    flex-shrink: 0;
    margin-top: auto;
}
body.ep-auth-layout.ep-login-refresh:has(.limiter.login, .limiter.ep-register) .ep-login-band {
    top: var(--ep-auth-group-top, var(--ep-login-band-gap));
    height: var(--ep-auth-rendered-band-height);
    min-height: 0;
}
body.ep-auth-layout.ep-login-refresh .limiter.login .container-login100,
body.ep-auth-layout.ep-login-refresh .limiter.ep-register .container-login100 {
    align-items: flex-start;
    min-height: 0;
    padding-bottom: 32px !important;
    padding-top: var(--ep-auth-card-top, calc(var(--ep-auth-group-top, var(--ep-login-band-gap)) + var(--ep-auth-rendered-band-height) / 2)) !important;
}
body.ep-auth-layout.ep-login-refresh:has(.limiter.login, .limiter.ep-register) .ep-login-language {
    inset-block-start: calc(var(--ep-auth-group-top, var(--ep-login-band-gap)) + 16px);
}
@media (max-width: 768px) {
    body.ep-auth-layout.ep-login-refresh:has(.limiter.login, .limiter.ep-register) {
        --ep-auth-band-height: max(240px, 42.5svh);
    }
    body.ep-auth-layout.ep-login-refresh:has(.limiter.login, .limiter.ep-register) .ep-login-language {
        inset-block-start: calc(var(--ep-auth-group-top, var(--ep-login-band-gap)) + 8px);
    }
}
/* Recolor the existing blue CAPTCHA visually; retain its generated content and tokens. */
.ep-login-refresh #CaptchaImage { filter: hue-rotate(-65deg); }

/* Public recovery/confirmation screens share the approved auth composition. */
.ep-login-refresh .ep-auth-sibling .login-title#auth-title {
    margin-bottom: 24px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}
.ep-auth-sibling .ep-auth-description {
    color: var(--epoll-ui-muted);
    font-size: 15px;
    line-height: 1.8;
    margin: 0 0 24px;
}
.ep-auth-sibling .ep-auth-message-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin: 0 auto 16px;
    border-radius: 50%;
    background: rgba(79, 209, 197, .12);
    color: var(--epoll-auth-link);
    font-size: 20px;
}
.ep-auth-sibling .ep-auth-message-actions { margin-top: 24px; }
.ep-auth-sibling .ep-auth-identity { overflow-wrap: anywhere; }
.ep-auth-sibling .ep-auth-otp-action {
    display: flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
}
.ep-auth-sibling .ep-auth-message-actions a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
}
.ep-auth-layout .ep-auth-sibling a.epoll-button {
    color: var(--epoll-auth-on-accent) !important;
}

/* Keep desktop auth footer edge spacing aligned with the requested 3x inset. */
@media (min-width: 992px) {
    .ep-login-refresh .ep-login-footer { margin-inline: calc(var(--ep-login-band-gap) * 3); }
}

/* Recovery code flow: one spacing owner, without inherited floating-field margins. */
.ep-auth-layout.ep-login-refresh .ep-auth-code-recovery .wrap-login100 > h1#auth-title {
 margin:0 0 24px;
}
.ep-auth-layout .ep-auth-code-recovery .ep-auth-form > .form-group {
 display:grid; gap:24px;
}
.ep-auth-layout .ep-auth-code-recovery .ep-auth-form > .form-group > .padding-5 {
 margin:0; padding:0; min-width:0;
}
.ep-auth-layout .ep-auth-code-recovery .ep-auth-form > .form-group > .clearfix { display:none; }
.ep-auth-layout.ep-login-refresh .ep-auth-code-recovery .ep-auth-floating { margin:0; }
