:root{--ink:#18221d;--muted:#6a756e;--paper:#f5f7f3;--white:#fff;--green:#245c43;--green2:#dcebe2;--red:#b84236;--line:#dce2dc;--shadow:0 8px 28px rgba(28,45,35,.08)}*{box-sizing:border-box}body{margin:0;font-family:Inter,"Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.brand-panel{background:#214d39;color:#fff;padding:12vw;display:flex;flex-direction:column;justify-content:center}.brand-panel .mark{width:72px;height:72px;display:grid;place-items:center;border:1px solid #a7c4b3;font:700 34px serif}.brand-panel h1{font-size:52px;margin:25px 0 4px}.brand-panel p{color:#cbdcd2}.login-form{align-self:center;width:min(380px,80%);margin:auto;background:#fff;padding:40px;border:1px solid var(--line);box-shadow:var(--shadow)}.login-form h2{margin:0 0 25px}.login-form label,.form label{display:grid;gap:7px;margin:14px 0;font-size:14px;color:var(--muted)}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #cbd3cc;background:#fff;color:var(--ink);border-radius:4px}input:focus,select:focus,textarea:focus{outline:2px solid #9ac0aa;border-color:transparent}button{border:0;border-radius:4px;padding:10px 16px;background:var(--green);color:#fff;cursor:pointer}.login-form button{width:100%;margin-top:12px}.login-form small{display:block;margin-top:22px;line-height:1.7;color:var(--muted)}.error{color:var(--red);min-height:18px}.app{min-height:100vh;padding-left:240px}.app aside{position:fixed;inset:0 auto 0 0;width:240px;background:#183c2d;color:#fff;display:flex;flex-direction:column;z-index:3}.logo{height:80px;display:flex;align-items:center;gap:12px;padding:0 24px;border-bottom:1px solid #ffffff18}.logo span{width:36px;height:36px;border:1px solid #9fb9aa;display:grid;place-items:center;font-family:serif;font-size:20px}.logo b{font-size:20px}nav{padding:18px 12px;flex:1;overflow:auto}.nav-btn{width:100%;text-align:left;background:transparent;color:#cddbd3;margin:3px 0;padding:12px;border-left:3px solid transparent}.nav-btn:hover,.nav-btn.active{background:#ffffff12;color:#fff;border-left-color:#c7d9a5}.account{padding:18px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ffffff18}.account small{display:block;color:#aebfb5;margin-top:3px}.account button{padding:7px;background:transparent;color:#cddbd3}.app header{height:80px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 30px}.app header h1{font-size:21px;margin:0}.app header p{font-size:12px;color:var(--muted);margin:5px 0 0}#menu{display:none;background:transparent;color:var(--ink);font-size:20px;padding-left:0}main{padding:26px 30px;max-width:1440px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}.metric{background:#fff;border:1px solid var(--line);padding:22px;border-top:3px solid var(--green)}.metric span{font-size:13px;color:var(--muted)}.metric strong{display:block;font-size:30px;margin-top:10px}.panel{background:#fff;border:1px solid var(--line);padding:20px;margin-bottom:20px;box-shadow:0 3px 12px rgba(30,50,37,.035)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.panel h2{font-size:17px;margin:0}.filters,.actions{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.filters label{font-size:12px;color:var(--muted)}.filters input,.filters select{margin-top:5px;min-width:150px;padding:8px}.secondary{background:#e7ece8;color:#294033}.danger{background:#fff0ee;color:var(--red);padding:6px 9px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;color:var(--muted);font-weight:600;background:#f7f9f7}th,td{padding:12px;border-bottom:1px solid #e7ebe7;white-space:nowrap}.empty{text-align:center;color:var(--muted);padding:35px}.form{display:grid;grid-template-columns:repeat(3,1fr);gap:0 14px}.form .wide{grid-column:span 2}.form .submit{align-self:end;margin:14px 0}.badge{display:inline-block;padding:3px 8px;background:var(--green2);color:var(--green);font-size:12px;border-radius:12px}.progress{width:130px;height:7px;background:#e5e9e6;border-radius:5px;overflow:hidden}.progress i{display:block;height:100%;background:#4b8a66}.money{font-variant-numeric:tabular-nums}.rank{display:grid;gap:12px}.rank-row{display:grid;grid-template-columns:100px 1fr 100px;gap:12px;align-items:center}.rank-bar{height:9px;background:#e8ece9}.rank-bar i{display:block;height:100%;background:#5b8d70}#toast{position:fixed;right:24px;bottom:24px;background:#1d382b;color:#fff;padding:12px 18px;border-radius:4px;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none;z-index:10}#toast.show{opacity:1;transform:none}@media(max-width:800px){.login-shell{grid-template-columns:1fr}.brand-panel{padding:45px 10vw 30px;min-height:230px}.brand-panel h1{font-size:38px}.login-form{width:88%;padding:28px;margin:30px auto}.app{padding-left:0}.app aside{transform:translateX(-100%);transition:.2s}.app.menu-open aside{transform:none}.app header{padding:0 18px}.app header #menu{display:block;margin-right:15px}main{padding:18px 14px}.metrics{grid-template-columns:1fr}.form{grid-template-columns:1fr}.form .wide{grid-column:auto}.panel{padding:15px}.filters{display:grid;grid-template-columns:1fr 1fr;width:100%}.filters label,.filters button{width:100%}.rank-row{grid-template-columns:70px 1fr 70px}}
