:root {
    --login-primary: #4169e1;
    --login-bg: #f3f6fb;
    --login-text: #202938;
    --login-muted: #7b8494;
    --login-line: #e5eaf3;
}

* {
    box-sizing: border-box;
}

html,
body {
    min-height: 100%;
}

body {
    margin: 0;
    color: var(--login-text);
    background: linear-gradient(135deg, #eef3ff 0%, #f7f9fd 54%, #eefbf7 100%);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif;
}

.login-shell {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 24px;
}

.login-panel {
    width: min(540px, 100%);
    padding: 34px 36px 38px;
    background: #fff;
    border: 1px solid var(--login-line);
    border-radius: 8px;
}

.login-brand {
    display: grid;
    justify-items: center;
    width: 348px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 30px;
}

.login-brand img {
    display: block;
    width: 210px;
    height: auto;
    max-height: 170px;
    object-fit: contain;
}

.login-brand p {
    margin: 8px 0 0;
    color: var(--login-muted);
    text-align: center;
}

.login-form {
    width: 348px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.login-field {
    display: block;
    margin-bottom: 14px;
}

.login-field span {
    display: block;
    margin-bottom: 8px;
    color: #485365;
}

.login-field .layui-input {
    height: 42px;
    border-color: var(--login-line);
    border-radius: 6px;
}

.login-field .layui-input:focus {
    border-color: var(--login-primary) !important;
}

.login-options {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    margin-bottom: 12px;
    color: var(--login-muted);
}

.login-options .layui-form-checkbox[lay-skin="primary"] {
    margin-top: 0;
    padding-left: 24px;
}

.login-options .layui-form-checkbox[lay-skin="primary"] span {
    color: var(--login-muted);
    font-size: 14px;
}

.login-options .layui-form-checked[lay-skin="primary"] > i {
    border-color: var(--login-primary) !important;
    background: var(--login-primary);
}

.login-error {
    min-height: 22px;
    margin: 0 0 10px;
    color: #ff4d4f;
}

.login-submit {
    width: 100%;
    height: 42px;
    border-radius: 6px;
    background: var(--login-primary);
}
