﻿body {
    margin: 0;
    font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    background: #f4f6f8;
    color: #1f2937;
}

.page {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.login-card {
    transform: translateY(-2vh);
    width: 100%;
    max-width: 420px;
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 1px 2px rgba(0,0,0,.05), 0 12px 30px rgba(0,0,0,.08);
    padding: 32px;
}

.brand {
    text-align: center;
    margin-bottom: 24px;
}

.brand-logo {
    height: 52px;
    margin-bottom: 12px;
}

.brand-text {
    display: flex;
    justify-content: center;
    gap: 6px;
    flex-wrap: wrap;
}

.app-name {
    font-size: 20px;
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -0.2px;
}

.login-disabled {
    opacity: 0.6;
    filter: grayscale(20%);
    cursor: wait;
    user-select: none;
}

    .login-disabled * {
        pointer-events: none;
    }

.login_label {
    display: block;
    font-size: 14px;
    margin: 16px 0 6px;
}

.login_input {
    width: 100%;
    padding: 12px;
    font-size: 14px;
    border-radius: 10px;
    border: 1px solid #d7dde6;
    background: #fff;
}

    .login_input:hover {
        border-color: #c5ceda;
    }

.lang_input {
    padding: 8px;
    font-size: 12px;
    border-radius: 10px;
    border: 1px solid #d7dde6;
    background: #fff;
}

.login_button {
    width: 100%;
    margin-top: 20px;
    padding: 12px;
    font-size: 15px;
    font-weight: 600;
    color: white;
    background: #1f2937;
    border: none;
    border-radius: 10px;
    cursor: pointer;
}

    .login_button:hover {
        background: #111827;
    }

.options {
    margin-top: 16px;
    text-align: center;
    font-size: 13px;
    display: flex;
    gap: 20px;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}

    .options a {
        color: #2563eb;
        text-decoration: none;
    }

.brand-strip {
    margin-top: 40px;
    text-align: center;
}

    .brand-strip img {
        width: 400px;
        height: auto;
    }

.logout-title {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.2;
    margin: 0 0 8px;
    letter-spacing: -0.2px;
    text-align: center;
}

.logout-text {
    font-size: 14px;
    margin: 0;
    opacity: 0.85;
    text-align: center;
}

.Message_ok, .Message_error, .Message_info {
    display: block;
    padding: 10px 14px 10px 46px;
    border-radius: 6px;
    margin: 5px 0 10px 0;
    min-height: 20px;
    font-size: 13px;
    line-height: 1.5;
    position: relative;
}

    .Message_ok::before, .Message_error::before, .Message_info::before {
        content: '';
        position: absolute;
        left: 10px;
        top: 8px;
        width: 24px;
        height: 24px;
        background-size: contain;
        background-repeat: no-repeat;
    }

.Message_info {
    background-color: #fffbeb;
    border: 1px solid #fcd34d;
    color: #92400e;
}

    .Message_info::before {
        background-image: url("data:image/svg+xml,<svg viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-.696-3.534c.63 0 1.332-.288 2.196-1.458l.911-1.22a.334.334 0 0 0-.074-.472.38.38 0 0 0-.505.06l-1.475 1.679a.241.241 0 0 1-.279.061.211.211 0 0 1-.12-.244l1.858-7.446a.499.499 0 0 0-.575-.613l-3.35.613a.35.35 0 0 0-.276.258l-.086.334a.25.25 0 0 0 .243.312h1.73l-1.476 5.922c-.054.234-.144.63-.144.918 0 .666.396 1.296 1.422 1.296zm1.83-10.536c.702 0 1.242-.414 1.386-1.044.036-.144.054-.306.054-.414 0-.504-.396-.972-1.134-.972-.702 0-1.242.414-1.386 1.044a1.868 1.868 0 0 0-.054.414c0 .504.396.972 1.134.972z' fill='%23d97706'/></svg>");
    }

.Message_error {
    background-color: #fee2e2;
    border: 1px solid #fca5a5;
    color: #991b1b;
}

    .Message_error::before {
        background-image: url("data:image/svg+xml,<svg viewBox='570 1089 32 32' xmlns='http://www.w3.org/2000/svg'><path d='M591.657,1109.24 C592.048,1109.63 592.048,1110.27 591.657,1110.66 C591.267,1111.05 590.633,1111.05 590.242,1110.66 L586.006,1106.42 L581.74,1110.69 C581.346,1111.08 580.708,1111.08 580.314,1110.69 C579.921,1110.29 579.921,1109.65 580.314,1109.26 L584.58,1104.99 L580.344,1100.76 C579.953,1100.37 579.953,1099.73 580.344,1099.34 C580.733,1098.95 581.367,1098.95 581.758,1099.34 L585.994,1103.58 L590.292,1099.28 C590.686,1098.89 591.323,1098.89 591.717,1099.28 C592.11,1099.68 592.11,1100.31 591.717,1100.71 L587.42,1105.01 L591.657,1109.24 Z M586,1089 C577.163,1089 570,1096.16 570,1105 C570,1113.84 577.163,1121 586,1121 C594.837,1121 602,1113.84 602,1105 C602,1096.16 594.837,1089 586,1089 Z' fill='%23dc2626'/></svg>");
    }

.Message_ok {
    background-color: #dcfce7;
    border: 1px solid #86efac;
    color: #166534;
}

    .Message_ok::before {
        background-image: url("data:image/svg+xml,<svg viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M12 2C6.49 2 2 6.49 2 12C2 17.51 6.49 22 12 22C17.51 22 22 17.51 22 12C22 6.49 17.51 2 12 2ZM16.78 9.7L11.11 15.37C10.97 15.51 10.78 15.59 10.58 15.59C10.38 15.59 10.19 15.51 10.05 15.37L7.22 12.54C6.93 12.25 6.93 11.77 7.22 11.48C7.51 11.19 7.99 11.19 8.28 11.48L10.58 13.78L15.72 8.64C16.01 8.35 16.49 8.35 16.78 8.64C17.07 8.93 17.07 9.4 16.78 9.7Z' fill='%2316a34a'/></svg>");
    }

.login-card .Message_ok,
.login-card .Message_error,
.login-card .Message_info {
    margin-top: 12px;
    margin-bottom: 32px;
}

@media (max-width: 510px) {
    body {
        background: #ffffff;
    }

    .page {
        justify-content: flex-start;
        padding: 12px 16px;
    }

    .login-card {
        transform: none;
        max-width: none;
        width: 100%;
        background: transparent;
        box-shadow: none;
        border-radius: 0;
        padding: 8px 0 0;
    }

    .login_input {
        padding: 14px;
        font-size: 16px;
    }

    .login_button {
        padding: 14px;
        font-size: 16px;
    }

    .options {
        gap: 12px;
        margin-top: 12px;
    }

    .lang_input {
        font-size: 14px;
        padding: 10px;
        border-radius: 10px;
    }
}
