@import url("ole_class.css");

BODY {
    font-family: "Arial", "Helvetica", "sans-serif";
    margin: 0;
    padding: 0;
    color: #000000;
    background-color: #FFFFFF;
}

DIV.padding {
    padding: 0 15px;
}

FORM {
    border-collapse: collapse;
    border-width: 0;
    margin: 0;
    padding: 0;
    max-width: 100%;
}

INPUT {
    background-color: #EEF5FF;
    border-bottom: solid 2px #EEEEFF;
    border-left: solid 2px #3355AA;
    border-right: solid 2px #EEEEFF;
    border-top: solid 2px #3355AA;
    padding: 1px;
    margin-bottom: 5px;
    font-family: "Arial", "Helvetica", "sans-serif";
    font-size: 0.8em;
    max-width: 100%;
    box-sizing: border-box;
}

.login-page {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 100%;
}

.login-layout-scaler {
    margin-left: auto;
    margin-right: auto;
    max-width: 100%;
}

.login-layout {
    display: flex;
    flex-direction: column;
    width: 470px;
    max-width: 100%;
}

.login-row {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    max-width: 100%;
}

.login-row-full {
    width: 100%;
    max-width: 100%;
}

.login-col-left {
    flex: 0 0 201px;
    width: 201px;
}

.login-col-center {
    flex: 0 0 199px;
    width: 199px;
}

.login-col-right {
    flex: 0 0 70px;
    width: 70px;
}

.login-right {
    text-align: right;
}

.login-layout img {
    border: 0;
}

.login-block-img {
    display: block;
}

.login-spacer-gif {
    width: 70px;
    height: 8px;
}

.login-enter-link {
    display: inline-block;
    line-height: 0;
}

.login-btn-enter {
    width: 81px;
    height: 24px;
}

.login-loading-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9999;
    align-items: center;
    justify-content: center;
    background: rgba(10, 15, 30, 0.72);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

.login-loading-overlay.is-visible {
    display: flex;
    animation: login-overlay-in 0.25s ease-out;
}

.login-loading-overlay__panel {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    background: transparent;
    box-shadow: none;
    animation: login-panel-in 0.3s ease-out;
}

.login-loading-spinner {
    display: block;
    width: 44px;
    height: 44px;
    border: 3px solid rgba(255, 255, 255, 0.2);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: login-spin 0.75s linear infinite;
}

form.is-loading {
    pointer-events: none;
}

@keyframes login-overlay-in {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes login-panel-in {
    from {
        opacity: 0;
        transform: scale(0.92) translateY(8px);
    }

    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

@keyframes login-spin {
    to {
        transform: rotate(360deg);
    }
}

.login-btn-guest {
    width: 88px;
    height: 24px;
}

.login-spacer-pixel {
    width: 1px;
    height: 1px;
}

.login-error {
    font-size: 10pt;
    color: #ff0000;
}

.login-spacer {
    font-size: 14pt;
}

.login-footer {
    width: 680px;
    max-width: 100%;
    text-align: center;
    border-top: 2px dotted #888;
    box-sizing: border-box;
}

.login-footer-text {
    font-size: 10pt;
}

.login-logo {
    width: 250px;
    max-width: 100%;
    height: auto;
}

.login-privacy {
    font-size: 8pt;
}

.login-hidden {
    display: none;
}

/* Tablet / small desktop: stack form, keep fixed slice layout */
@media screen and (max-width: 688px) {
    .login-row-form {
        flex-wrap: wrap;
    }

    .login-row-form .login-col-right {
        display: none;
    }

    .login-row-form .login-col-left {
        flex: 1 1 100%;
        width: 100%;
        text-align: left;
    }

    .login-row-form .login-col-left .login-right {
        text-align: left;
    }

    #inputform {
        flex: 1 1 100%;
        width: 100%;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
        box-sizing: border-box;
        padding-top: 8px;
        text-align: center;
    }

    #inputform .login-label {
        display: block;
        margin-left: 0;
        margin-right: auto;
        zoom: 1.3;
        margin-bottom: 7px;
    }

    #inputform .login-label+br,
    #inputform .login-label+.login-spacer {
        display: none;
    }

    #inputform input {
        display: block;
        width: 100%;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
        font-size: 0.8em;
        padding: 4px 6px;
        box-sizing: border-box;
    }

    #inputform .login-error,
    #inputform p,
    #inputform a {
        text-align: center;
    }

    .login-footer {
        width: 100%;
        max-width: 680px;
        padding: 0 12px;
    }
}

/* Phone: fluid slice columns (201:199:70) — m1/m2/m3 keep aspect ratio */
@media screen and (max-width: 500px) {
    html,
    body {
        overflow-x: hidden;
        width: 100%;
        max-width: 100vw;
    }

    .login-page {
        width: 100%;
        max-width: 100vw;
        padding: 0 8px;
        box-sizing: border-box;
        overflow-x: hidden;
    }

    .login-layout-scaler {
        width: calc(100vw - 16px);
        max-width: calc(100vw - 16px);
        overflow: hidden;
    }

    .login-layout {
        width: 100%;
        max-width: 100%;
        transform: none;
    }

    /* Original slice ratio: 201 + 199 + 70 = 470 */
    .login-row-banner .login-col-left,
    .login-row-form .login-col-left {
        flex: 0 0 42.766%;
        width: 42.766%;
        max-width: 42.766%;
    }

    .login-row-banner .login-col-center {
        flex: 0 0 42.34%;
        width: 42.34%;
        max-width: 42.34%;
    }

    .login-row-banner .login-col-right {
        flex: 0 0 14.894%;
        width: 14.894%;
        max-width: 14.894%;
    }

    .login-slice {
        width: 100%;
        height: auto;
        display: block;
    }

    .login-row-banner .login-spacer-gif {
        width: 100%;
        height: auto;
    }

    .login-row-form .login-col-left {
        text-align: left;
    }

    .login-row-form .login-col-left .login-right {
        text-align: left;
    }

    .login-row-full img {
        max-width: 100%;
        height: auto;
    }

    #inputform .login-label {
        zoom: 1;
    }

    .login-btn-enter,
    .login-btn-guest {
        zoom: 1;
    }

    .login-footer {
        width: 100%;
        max-width: calc(100vw - 16px);
        padding: 0 8px;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }

    .login-logo {
        width: min(250px, 100%);
    }
}
