:root{color-scheme:light;--bg:#f5f5f4;--ink:#171717;--muted:#858581;--line:#e9e9e5;--red:#e5483b;font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}body{margin:0;min-height:100dvh;display:flex;flex-direction:column}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}:focus-visible{outline:2px solid #2f7ff0;outline-offset:4px}header.brand{display:flex;gap:11px;align-items:center;padding:34px 5.5vw}.brand-icon{display:grid;place-items:center;background:var(--ink);color:#fff;width:38px;height:38px;border-radius:13px;font-size:20px;font-weight:650}.brand strong{font-size:16px;letter-spacing:.5px;display:block}.brand div>span{font-size:9px;letter-spacing:1.6px;color:#999994;display:block;margin-top:3px}.login-layout{width:min(1100px,89vw);margin:auto;display:grid;grid-template-columns:1.2fr 1fr;gap:90px;align-items:center;padding:25px 0 55px}.eyebrow{font-size:12px;color:#74746e;display:flex;align-items:center;gap:8px}.eyebrow i,.scene-caption i{width:6px;height:6px;border-radius:50%;display:inline-block;background:var(--red)}h1{font-size:clamp(30px,3.1vw,42px);line-height:1.5;letter-spacing:-1px;margin:22px 0 15px;font-weight:650}.intro>p{font-size:14px;line-height:1.95;color:#888881}.classroom{margin-top:9px}.classroom>svg{display:block;width:100%;max-height:300px}.scene-caption{font-size:10px;color:#a1a19a;display:flex;justify-content:space-between;margin:0 35px}.scene-caption span:first-child{display:flex;gap:6px;align-items:center}.scene-caption i{width:5px;height:5px;background:#8da57f}.login-card{padding:38px 34px 25px;background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 16px 65px #26261905;max-width:430px;width:100%}.card-kicker{font-size:11px;color:#969690}.login-card h2{font-size:25px;letter-spacing:-.5px;margin:12px 0 7px;font-weight:650}.card-description{font-size:12px;color:#95958f;margin:0 0 29px}form>label:not(.remember){font-size:12px;font-weight:550;display:block;margin:18px 0 8px}input:not([type=checkbox]){width:100%;height:46px;border:1px solid transparent;border-radius:11px;background:#f5f5f3;padding:0 14px;font-size:14px;color:var(--ink);outline:none;transition:.15s}input::placeholder{color:#b0b0a9;font-size:12px}input:not([type=checkbox]):focus{background:#fff;border-color:#43433f}.password-wrap{position:relative}.password-wrap input{padding-right:57px}.password-wrap button{position:absolute;right:12px;top:14px;border:0;background:none;color:#888880;font-size:11px;padding:0}.remember{display:flex;align-items:center;gap:8px;font-size:11px;color:#73736e;margin-top:17px;cursor:pointer}.remember input{width:14px;height:14px;accent-color:var(--ink);margin:0}#sessionDays{color:#a1a19a}.error{font-size:12px;color:#c43b31;min-height:29px;padding-top:9px}.submit{width:100%;height:46px;background:var(--ink);border:0;color:#fff;border-radius:999px;font-size:13px;display:flex;align-items:center;justify-content:center;gap:15px}.submit:hover{background:#333}.submit span{font-size:18px}.private-note{display:flex;gap:6px;align-items:center;justify-content:center;border-top:1px solid #f0f0ec;margin-top:25px;padding-top:19px;font-size:10px;color:#a2a29b}footer{padding:20px 5.5vw 25px;display:flex;justify-content:space-between;font-size:10px;color:#b0b0a8;gap:12px}
@media(max-width:900px){.login-layout{gap:40px;width:90vw}.login-card{padding:30px 25px}h1{font-size:31px}}
@media(max-width:650px){header.brand{padding:24px 24px 10px}.brand-icon{width:34px;height:34px;border-radius:11px}.login-layout{display:block;width:min(430px,100%);padding:30px 22px;margin:auto}.intro{display:none}.login-card{padding:29px 23px 22px;border-radius:21px}.login-card h2{font-size:24px}.card-description{line-height:1.8;margin-bottom:26px}input:not([type=checkbox]){font-size:16px;height:49px}.submit{height:49px}.remember{font-size:12px;gap:8px}footer{padding:17px 24px max(22px,env(safe-area-inset-bottom));justify-content:center;flex-wrap:wrap;text-align:center;font-size:9px;gap:8px}footer>span:first-child{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
