:root{--ink:#202824;--muted:#6f7873;--paper:#f4f6f3;--green:#204e3b;--green2:#e4eee8;--coral:#cf685c;--line:#dfe4e0;--shadow:0 14px 40px rgba(30,54,42,.09)}
body{font-family:"Microsoft YaHei UI","Microsoft YaHei",system-ui,sans-serif;letter-spacing:0;background:var(--paper)}
button{transition:transform .15s ease,box-shadow .15s ease,background .15s ease}button:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(32,78,59,.16)}button:active{transform:translateY(0)}
.login-shell{grid-template-columns:minmax(360px,1.05fr) minmax(420px,.95fr);background:#fff}
.brand-panel{position:relative;overflow:hidden;background:#1d4937;padding:clamp(54px,8vw,130px);justify-content:space-between;isolation:isolate}
.brand-panel:before,.brand-panel:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.12);border-radius:50%;z-index:-1}.brand-panel:before{width:520px;height:520px;right:-230px;top:-190px}.brand-panel:after{width:320px;height:320px;right:-60px;top:-45px}
.brand-copy{margin:auto 0}.brand-panel .mark{width:64px;height:64px;border:1px solid rgba(255,255,255,.52);font-family:"SimSun",serif;font-size:30px;box-shadow:inset 0 0 0 7px rgba(255,255,255,.04)}
.brand-panel .eyebrow{margin:42px 0 12px;color:#d5aaa4;font-size:11px;letter-spacing:3px}.brand-panel h1{font-family:"SimSun",serif;font-size:clamp(50px,6vw,78px);font-weight:500;margin:0;letter-spacing:8px}.brand-panel .brand-sub{margin:20px 0 0;color:#cbdad2;font-size:16px;letter-spacing:2px}
.brand-foot{display:flex;align-items:center;gap:14px;color:#b9cec2;font-size:12px;letter-spacing:2px}.brand-foot i{width:34px;height:1px;background:rgba(255,255,255,.25)}
.login-side{display:grid;place-items:center;padding:40px;background:#fbfcfa}.login-form{width:min(420px,90%);padding:46px;background:#fff;border:1px solid #e2e6e2;box-shadow:0 24px 70px rgba(31,58,44,.09)}
.login-form .form-kicker{margin:0 0 12px;color:var(--coral);font-size:10px;font-weight:700;letter-spacing:2px}.login-form h2{font-size:27px;margin:0 0 8px}.login-form .form-sub{margin:0 0 30px;color:var(--muted);font-size:13px}.login-form label{gap:9px;margin:18px 0;color:#445049;font-weight:600}.login-form label span{font-size:13px}.login-form input{height:48px;border-color:#d8ded9;background:#fafbf9}.login-form button{height:48px;margin-top:14px;display:flex;align-items:center;justify-content:center;gap:12px;background:var(--green);font-weight:600}.login-form button span{font-size:18px}.login-form small{padding-top:18px;border-top:1px solid #edf0ed;font-size:11px}
.app aside{width:252px;background:#183e2f}.app{padding-left:252px}.logo{height:88px;padding:0 26px}.logo span{border-radius:2px;box-shadow:inset 0 0 0 4px rgba(255,255,255,.04)}.logo b{font-family:"SimSun",serif;letter-spacing:3px}
nav{padding:24px 14px}.nav-btn{position:relative;border-left:0;border-radius:5px;padding:13px 16px;margin:4px 0;font-size:14px}.nav-btn:before{content:"";display:inline-block;width:6px;height:6px;border:1px solid #91ae9e;transform:rotate(45deg);margin-right:13px;vertical-align:2px}.nav-btn:hover,.nav-btn.active{background:rgba(255,255,255,.1);border-left:0;box-shadow:none}.nav-btn.active:after{content:"";position:absolute;right:0;top:11px;bottom:11px;width:3px;background:#e2988f;border-radius:2px}.nav-btn.active:before{background:#e2988f;border-color:#e2988f}
.account{padding:19px 22px}.account button{border:1px solid rgba(255,255,255,.17);padding:7px 10px}.app header{height:88px;padding:0 34px;background:rgba(255,255,255,.92);backdrop-filter:blur(8px)}.app header h1{font-size:22px;letter-spacing:1px}.app header p{margin-top:7px}
main{padding:30px 34px}.metrics{gap:18px;margin-bottom:24px}.metric{position:relative;overflow:hidden;padding:25px 26px;border:1px solid var(--line);border-top:0;box-shadow:0 5px 18px rgba(33,55,43,.04)}.metric:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--green)}.metric:nth-child(2):before{background:var(--coral)}.metric:nth-child(3):before{background:#8d9673}.metric span{font-size:12px;letter-spacing:1px}.metric strong{font-family:Georgia,"Microsoft YaHei",sans-serif;font-size:29px;font-weight:600}
.panel{padding:23px;border:1px solid var(--line);box-shadow:0 6px 22px rgba(30,50,37,.04)}.panel-head{margin-bottom:19px}.panel h2{font-size:16px;letter-spacing:1px}.panel h2:before{content:"";display:inline-block;width:3px;height:15px;background:var(--coral);margin-right:10px;vertical-align:-2px}
input,select,textarea{border-radius:3px;border-color:#d7ddd8;background:#fcfdfc;transition:border .15s,box-shadow .15s}input:hover,select:hover,textarea:hover{border-color:#aab8af}input:focus,select:focus,textarea:focus{outline:0;border-color:#4e7c66;box-shadow:0 0 0 3px rgba(64,116,88,.1)}
.filters{padding:14px;background:#f7f9f7;border:1px solid #e8ece8}.filters button{height:36px}.secondary{background:#e7ede9;color:#274938}.secondary:hover{background:#dce7e0}.danger{background:#fff3f1;color:#aa453b}.danger:hover{background:#fbe6e3;box-shadow:none}
.table-wrap{border:1px solid #e5e9e6}th{padding:13px;background:#f2f5f2;color:#59645e;font-size:12px;letter-spacing:.5px}td{padding:13px}tbody tr{transition:background .12s}tbody tr:hover{background:#fafcf9}.rank-row{padding:4px 0}.rank-bar,.progress{border-radius:8px;overflow:hidden}.rank-bar i,.progress i{background:var(--coral);border-radius:8px}
#toast{right:30px;bottom:30px;padding:13px 20px;box-shadow:0 10px 28px rgba(17,39,28,.24)}
@media(max-width:800px){.login-shell{grid-template-columns:1fr}.brand-panel{min-height:250px;padding:40px 9vw}.brand-panel:before{width:300px;height:300px}.brand-panel .mark{width:48px;height:48px;font-size:24px}.brand-panel .eyebrow{margin:25px 0 8px}.brand-panel h1{font-size:42px}.brand-panel .brand-sub{font-size:13px;margin-top:12px}.brand-foot{display:none}.login-side{padding:28px 16px}.login-form{width:100%;padding:28px;margin:0}.app{padding-left:0}.app aside{width:260px}.app.menu-open:after{content:"";position:fixed;inset:0;background:rgba(17,29,23,.4);z-index:2}.app header{height:76px;padding:0 16px}main{padding:16px 12px}.metrics{gap:10px}.metric{padding:19px 20px}.metric strong{font-size:25px}.panel{padding:15px;margin-bottom:14px}.panel-head{align-items:flex-start}.filters{grid-template-columns:1fr 1fr;padding:10px;gap:8px}.filters input,.filters select{min-width:0}.form label{margin:9px 0}th,td{padding:11px}.nav-btn{min-height:46px}}
