html { min-height: 100%; }
body.ev-admin-theme { min-height: 100vh; height: auto; margin: 0; overflow: auto; background: #091d26; color: #e7f2f5; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; }
.ev-admin-login, .ev-admin-login * { box-sizing: border-box; }
.ev-admin-login { display: grid; min-height: 100vh; padding: max(32px, env(safe-area-inset-top)) 32px max(32px, env(safe-area-inset-bottom)); background: radial-gradient(circle at 17% 30%, rgba(49, 115, 131, .22), transparent 38%), radial-gradient(circle at 86% 84%, rgba(18, 74, 88, .24), transparent 40%), #091d26; }
.ev-admin-login-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 430px); align-items: center; gap: clamp(36px, 8vw, 112px); width: min(100%, 1100px); margin: auto; }
.ev-admin-login-intro { position: relative; min-height: 470px; padding: 10px 0; }
.ev-admin-login-brand, .ev-admin-login-mobile-brand { display: inline-flex; align-items: center; gap: 7px; width: fit-content; height: 58px; }
.ev-admin-login-brand img, .ev-admin-login-mobile-brand img { display: block; flex: none; object-fit: contain; }
.ev-admin-brand-mark { width: 50px; height: 46px; }
.ev-admin-brand-name { width: 164px; height: 42px; }
.ev-admin-login-graphic { position: relative; width: min(100%, 500px); height: 280px; margin: 54px 0 12px; overflow: hidden; border: 1px solid rgba(120, 214, 222, .12); border-radius: 28px; background: linear-gradient(135deg, rgba(33, 82, 95, .34), rgba(9, 29, 38, .14)); }
.ev-admin-login-graphic::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(119, 217, 227, .08) 1px, transparent 1px), linear-gradient(90deg, rgba(119, 217, 227, .08) 1px, transparent 1px); background-size: 32px 32px; mask-image: linear-gradient(120deg, #000, transparent 80%); }
.ev-admin-login-graphic span { position: absolute; top: 54px; width: 176px; height: 176px; border: 2px solid rgba(128, 222, 231, .78); border-radius: 50%; box-shadow: inset 0 0 30px rgba(95, 199, 211, .1), 0 0 44px rgba(95, 199, 211, .1); }
.ev-admin-login-graphic span:nth-child(1) { left: calc(50% - 143px); }
.ev-admin-login-graphic span:nth-child(2) { left: calc(50% - 33px); }
.ev-admin-login-graphic span:nth-child(3) { top: 110px; left: calc(50% - 33px); width: 66px; height: 66px; border: 0; background: rgba(119, 217, 227, .15); filter: blur(18px); }
.ev-admin-login-intro-label { margin: 0 0 8px; color: #77d9e3; font-size: 12px; font-weight: 700; letter-spacing: .24em; }
.ev-admin-login-intro h1 { margin: 0; color: #edf8fa; font-size: clamp(30px, 4vw, 46px); font-weight: 700; letter-spacing: .04em; line-height: 1.15; }
.ev-admin-login-panel { padding: clamp(28px, 3.5vw, 42px); border: 1px solid #254651; border-radius: 24px; background: #102b35; box-shadow: 0 28px 66px rgba(0, 8, 14, .32); }
.ev-admin-login-mobile-brand { display: none; }
.ev-admin-login-panel-head p { margin: 0 0 9px; color: #77d9e3; font-size: 11px; font-weight: 800; letter-spacing: .2em; }
.ev-admin-login-panel-head h2 { margin: 0 0 30px; color: #edf8fa; font-size: 28px; font-weight: 700; line-height: 1.2; }
.ev-admin-login-field { margin-bottom: 21px; }
.ev-admin-login-field label { display: block; margin: 0 0 9px; color: #b7d0d7; font-size: 14px; font-weight: 600; }
.ev-admin-login-field .layui-input { display: block; width: 100%; height: 50px; padding: 0 15px; border: 1px solid #34535d; border-radius: 12px; background: #0b222b; color: #edf8fa; font-size: 15px; letter-spacing: 0; box-shadow: none; }
.ev-admin-login-field .layui-input::placeholder { color: #7f9ba5; opacity: 1; }
.ev-admin-login-field .layui-input:hover { border-color: #5d8a96; }
.ev-admin-login-field .layui-input:focus { border-color: #77d9e3; outline: 3px solid rgba(119, 217, 227, .18); outline-offset: 0; }
.ev-admin-login-field span.layui-anim { position: static !important; display: block; width: auto !important; margin: 6px 0 0; padding: 0 !important; color: #ffaaa3 !important; font-size: 12px; line-height: 1.3 !important; text-align: left !important; text-shadow: none !important; }
.ev-admin-login-captcha { display: grid; grid-template-columns: minmax(0, 1fr) 112px; align-items: stretch; gap: 10px; }
.ev-admin-login-captcha > span.layui-anim { grid-column: 1 / -1; }
.ev-admin-login-captcha img { display: block; width: 112px; height: 50px; border: 1px solid #446772; border-radius: 12px; background: #fff; cursor: pointer; object-fit: cover; }
.ev-admin-login-captcha img:focus-visible { outline: 3px solid #77d9e3; outline-offset: 3px; }
.ev-admin-login-submit.layui-btn { display: block; width: 100%; height: 52px; margin-top: 29px; border: 0; border-radius: 12px; background: #77d9e3; color: #0a2630 !important; -webkit-text-fill-color: #0a2630; font-size: 16px; font-weight: 800; letter-spacing: .02em; box-shadow: 0 10px 24px rgba(41, 154, 168, .16); }
.ev-admin-login-submit.layui-btn:hover { background: #a1edf2; }
.ev-admin-login-submit.layui-btn:focus-visible, .ev-admin-login-brand:focus-visible { outline: 3px solid #a1edf2; outline-offset: 4px; }
.ev-admin-login-submit.layui-btn.layui-disabled { opacity: .65; cursor: wait; }
@media (max-width: 800px) { .ev-admin-login-layout { grid-template-columns: 1fr; width: min(100%, 470px); }.ev-admin-login-intro { display: none; }.ev-admin-login-mobile-brand { display: inline-flex; height: 52px; margin-bottom: 32px; } }
@media (max-width: 520px) { .ev-admin-login { padding: max(18px, env(safe-area-inset-top)) 16px max(18px, env(safe-area-inset-bottom)); }.ev-admin-login-panel { padding: 26px 20px; border-radius: 20px; }.ev-admin-login-panel-head h2 { font-size: 25px; }.ev-admin-login-captcha { grid-template-columns: minmax(0, 1fr) 98px; }.ev-admin-login-captcha img { width: 98px; } }
