*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: #100e0c; color: #eae4d9; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; }
.fenx-login { min-height: 100vh; display: grid; grid-template-columns: 1fr 1fr; position: relative; padding-bottom: 56px; background: radial-gradient(ellipse at 12% 65%, rgba(121, 33, 16, .25), transparent 55%); }
.fenx-login-brand { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 70px 48px; border-right: 1px solid rgba(201, 159, 79, .15); }
.fenx-login-emblem { width: min(76%, 390px); height: auto; object-fit: contain; filter: drop-shadow(0 18px 35px rgba(168, 52, 14, .15)); }
.fenx-brand-rule { width: 68px; height: 1px; background: #a57c3e; margin: 34px 0 22px; }
.fenx-brand-name { font-family: Georgia, "Times New Roman", serif; font-size: 38px; letter-spacing: .22em; padding-left: .22em; color: #e3c182; margin: 0 0 12px; }
.fenx-brand-subtitle { font-size: 15px; letter-spacing: .3em; color: #ac9671; margin: 0; }
.fenx-login-panel { display: flex; align-items: center; justify-content: center; padding: 60px 48px; }
.form-box { width: 100%; max-width: 400px; }
.fenx-login-heading { margin-bottom: 38px; }
.fenx-eyebrow { color: #b58c4d; font-size: 11px; letter-spacing: .2em; margin: 0 0 16px; }
.fenx-login-heading h1 { font-size: 26px; line-height: 1.5; color: #f0e5d2; font-weight: 600; margin: 0 0 12px; }
.fenx-login-heading > p:last-child { font-size: 14px; line-height: 1.8; color: #998d7b; margin: 0; }
.fenx-mobile-logo { display: none; }
.field { margin-bottom: 24px; }
.field label { display: block; font-size: 14px; line-height: 1.5; margin-bottom: 10px; color: #d2c8b8; }
.field .layui-input { width: 100%; height: 50px; padding: 0 15px; border: 1px solid #40362b; border-radius: 7px; background: #17130f; color: #f4ece0; font-size: 15px; transition: border-color .15s; }
.field .layui-input::placeholder { color: #7f7567; }
.field .layui-input:focus { border-color: #b28b4e !important; outline: 2px solid rgba(201, 159, 79, .15); outline-offset: 2px; }
.input-wrap { position: relative; }
.input-wrap .layui-input { padding-right: 66px; }
.toggle-pw { position: absolute; top: 3px; right: 3px; min-width: 54px; height: 44px; border: 0; background: transparent; color: #baa27e; cursor: pointer; font-size: 13px; border-radius: 5px; }
.toggle-pw:focus-visible, .captcha-refresh:focus-visible, .login-btn:focus-visible { outline: 2px solid #d7b374; outline-offset: 3px; }
.remember { display: inline-flex; align-items: center; gap: 9px; color: #ad9f8a; font-size: 13px; cursor: pointer; margin-bottom: 25px; min-height: 24px; }
.remember input { width: 16px; height: 16px; accent-color: #bb914f; }
.login-btn { width: 100%; min-height: 50px; border: 1px solid #dfbd7b; border-radius: 7px; background: linear-gradient(110deg, #dec086, #b98b47); color: #20170e; font-size: 15px; font-weight: 600; letter-spacing: .12em; cursor: pointer; }
.login-btn:hover { filter: brightness(1.07); }
.captcha-row { display: flex; align-items: center; gap: 12px; }
.captcha-row .layui-input { min-width: 0; }
.captcha-refresh { flex-shrink: 0; border: 1px solid #40362b; padding: 0; border-radius: 5px; overflow: hidden; cursor: pointer; background: #fff; }
.validateImg { display: block; width: 130px; height: 48px; object-fit: contain; }
.fenx-login-help { color: #7f7465; font-size: 12px; margin: 22px 0 0; line-height: 1.8; }
.fenx-login-footer { position: absolute; bottom: 0; left: 0; width: 100%; min-height: 56px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 18px; padding: 16px 24px; color: #786e5f; font-size: 12px; }
.fenx-login-footer a { color: #9b886a; }
@media (max-width: 860px) {
    .fenx-login { grid-template-columns: 1fr; }
    .fenx-login-brand { display: none; }
    .fenx-login-panel { min-height: calc(100vh - 56px); padding: 46px 24px; }
    .fenx-mobile-logo { display: block; width: 86px; height: 74px; object-fit: contain; margin-bottom: 24px; }
    .fenx-login-heading h1 { font-size: 23px; }
}
@media (prefers-reduced-motion: reduce) { .field .layui-input { transition: none; } }
