@charset "UTF-8";
*{box-sizing:border-box}
body{margin:0;min-height:100vh;min-height:100svh;display:grid;grid-template-columns:minmax(0,1fr);place-items:center;padding:30px 20px;background:radial-gradient(ellipse at 20% 10%,#dcebd7 0,transparent 52%),radial-gradient(ellipse at 90% 90%,#e1eddd 0,transparent 52%),#f1f6ee;color:#234b35;font:14px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif}
.login-card{width:430px;max-width:100%;padding:48px 44px 46px;background:#ffffffdc;border:1px solid #fff;border-radius:24px;box-shadow:0 18px 70px #315b3512,0 2px 8px #315b3505}
h1{font-size:29px;font-weight:650;letter-spacing:3px;margin:20px 0 36px;text-align:center}
.radar{position:relative;margin:auto;width:72px;height:72px;border:1px solid #aac9aa;border-radius:50%;background:conic-gradient(from 255deg,#90bf98,#d4e8d1 92deg,#f0f6ed 92deg);box-shadow:0 0 0 7px #f1f6ed}
.radar:before,.radar:after{content:"";position:absolute;border-radius:50%;border:1px solid #8eb29480}.radar:before{inset:12px}.radar:after{inset:24px}
.radar span{position:absolute;left:35px;top:9px;height:27px;width:1px;background:#83ab8a;transform-origin:bottom;transform:rotate(35deg)}
.radar i,.radar b{position:absolute;width:6px;height:6px;border-radius:50%;background:#5e9165}.radar i{left:45px;top:15px}.radar b{left:23px;top:41px;width:4px;height:4px;background:#93b796}
label{display:block;margin:20px 0 8px;color:#54745b;font-size:13px}
input{width:100%;height:49px;padding:0 14px;background:#f8fbf6;border:1px solid #dce8d8;border-radius:9px;outline:none;font:inherit;color:#264b34;transition:border-color .15s,box-shadow .15s}
input::placeholder{color:#a2b09f;font-size:13px}input:focus{background:white;border-color:#8ab48e;box-shadow:0 0 0 3px #e8f2e3}
.remember-login{display:flex;align-items:center;gap:9px;margin:18px 0 0;cursor:pointer;font-size:13px}
.remember-login input{width:16px;height:16px;flex:0 0 16px;padding:0;margin:0;accent-color:#63895b;box-shadow:none;cursor:pointer}
.remember-login small{margin-left:auto;color:#8a9d85;font-size:12px;white-space:nowrap}
button{width:100%;height:50px;border:1px solid #537d51;border-radius:9px;background:#63895b;color:white;font:inherit;font-weight:500;letter-spacing:2px;margin-top:28px;cursor:pointer;position:relative;box-shadow:0 4px 9px #577a4e16;transition:background .15s}
button span{position:absolute;right:18px;font-size:20px;font-weight:400;line-height:20px;top:13px}button:hover{background:#53794c}button:disabled{opacity:.6;cursor:wait}
#error{font-size:12px;color:#a0533e;background:#fff1e9;border-radius:7px;padding:9px 12px;margin:16px 0 -10px}
:focus-visible{outline:2px solid #63946a;outline-offset:3px}
@media(max-width:480px){body{padding:24px 16px;padding:max(24px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.login-card{padding:34px 24px 30px;border-radius:20px}h1{font-size:27px;margin-bottom:26px}input{font-size:16px}.remember-login{min-height:44px;margin-top:12px;flex-wrap:wrap;gap:8px}.remember-login input{width:18px;height:18px;flex-basis:18px}.remember-login small{font-size:11px}button{margin-top:18px;min-height:48px}}
@media(max-height:620px){body{align-items:start}.login-card{padding-top:26px;padding-bottom:26px}.radar{width:60px;height:60px}h1{margin:16px 0 20px}}
