:root{--green-deep: #0d4a1f;--green-mid: #1a4d2a;--green-dark: #0a3517;--green-light: #1a7a3a;--green-em: #006c00;--gold: #d4af37;--bg-soft: #f5fced;--bg-border: #e4eadc;--text-main: #1f2a1c;--text-soft: #646566;--text-faint: #8a9a90}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;background:var(--bg-soft);color:var(--text-main);font-size:14px}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}.layout{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:linear-gradient(180deg,var(--green-deep) 0%,var(--green-dark) 100%);color:#fff;display:flex;flex-direction:column}.sidebar .brand{padding:22px 20px 18px;border-bottom:1px solid rgba(255,255,255,.12)}.sidebar .brand h1{font-size:17px;font-weight:600;letter-spacing:1px}.sidebar .brand small{color:var(--gold);font-size:11px;letter-spacing:2px}.sidebar nav{flex:1;padding:12px 0}.sidebar nav a{display:flex;align-items:center;gap:10px;padding:12px 22px;color:#ffffffc7;font-size:14px;border-left:3px solid transparent}.sidebar nav a:hover{background:#ffffff12;color:#fff}.sidebar nav a.router-link-active{background:#ffffff1f;color:#fff;border-left-color:var(--gold)}.sidebar .foot{padding:14px 20px;border-top:1px solid rgba(255,255,255,.12);font-size:12px;color:#ffffff80}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{height:56px;background:#fff;border-bottom:1px solid var(--bg-border);display:flex;align-items:center;justify-content:space-between;padding:0 28px}.topbar h2{font-size:16px;font-weight:600}.topbar .who{display:flex;align-items:center;gap:12px;color:var(--text-soft);font-size:13px}.topbar .who b{color:var(--text-main)}.content{flex:1;padding:24px 28px;max-width:1400px}.card{background:#fff;border:1px solid var(--bg-border);border-radius:10px;padding:20px;margin-bottom:18px}.card h3{font-size:15px;font-weight:600;margin-bottom:14px}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--green-mid);background:linear-gradient(135deg,var(--green-light) 0%,var(--green-deep) 100%);color:#fff;font-size:13px;font-weight:500;padding:8px 18px;border-radius:7px}.btn:hover{opacity:.92}.btn.plain{background:#fff;color:var(--green-deep)}.btn.gold{background:linear-gradient(135deg,#e6c55a 0%,var(--gold) 100%);border-color:var(--gold);color:#5a4a10}.btn.danger{background:#fff;border-color:#d9463d;color:#d9463d}.btn:disabled{opacity:.5;cursor:not-allowed}table.list{width:100%;border-collapse:collapse}table.list th{text-align:left;font-size:12px;color:var(--text-faint);font-weight:500;padding:10px 12px;border-bottom:1px solid var(--bg-border);white-space:nowrap}table.list td{padding:12px;border-bottom:1px solid #f0f4ea;font-size:13px;vertical-align:middle}table.list tr:hover td{background:#fafdf5}.tag{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--bg-border);color:var(--text-soft);background:#fff;white-space:nowrap}.tag.green{background:#eef8ea;border-color:#cde8c5;color:var(--green-em)}.tag.gold{background:#faf5e4;border-color:#ecd9a0;color:#8a6d1a}.tag.red{background:#fdeeed;border-color:#f5c6c2;color:#b3261e}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:18px}.stat{background:#fff;border:1px solid var(--bg-border);border-radius:10px;padding:16px 18px}.stat b{display:block;font-size:26px;font-weight:700;color:var(--green-deep)}.stat small{color:var(--text-faint);font-size:12px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(1000px 500px at 20% -10%,rgba(26,122,58,.16),transparent),radial-gradient(800px 400px at 90% 110%,rgba(212,175,55,.12),transparent),var(--bg-soft)}.login-card{width:380px;background:#fff;border:1px solid var(--bg-border);border-radius:14px;padding:36px 34px 30px;box-shadow:0 12px 40px #0d4a1f1a}.login-card .logo{width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,var(--green-light) 0%,var(--green-deep) 100%);color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;margin:0 auto 14px}.login-card h1{text-align:center;font-size:19px;font-weight:600;margin-bottom:4px}.login-card .sub{text-align:center;color:var(--text-faint);font-size:12px;margin-bottom:24px;letter-spacing:1px}.login-card .field{margin-bottom:14px}.login-card label{display:block;font-size:12px;color:var(--text-soft);margin-bottom:6px}.login-card input{width:100%;padding:10px 12px;border:1px solid var(--bg-border);border-radius:8px;font-size:14px;outline:none}.login-card input:focus{border-color:var(--green-light);box-shadow:0 0 0 3px #1a7a3a1f}.login-card .btn{width:100%;justify-content:center;padding:11px;font-size:14px;margin-top:6px}.login-card .err{color:#b3261e;font-size:12px;margin-top:10px;text-align:center}.empty{text-align:center;color:var(--text-faint);padding:48px 0;font-size:13px}.muted{color:var(--text-faint);font-size:12px}.ipt{padding:8px 12px;border:1px solid var(--line);border-radius:8px;font-size:13px;color:var(--text-main);background:#fff;outline:none}.ipt:focus{border-color:var(--green-light);box-shadow:0 0 0 3px #1a7a3a1a}.btn.mini{padding:4px 10px;font-size:12px}.btn.mini+.btn.mini{margin-left:6px}.card table{width:100%;border-collapse:collapse;margin-top:4px}.card table th{text-align:left;font-size:12px;color:var(--text-faint);font-weight:500;padding:8px 10px;border-bottom:1px solid var(--line);background:#fafcf7;white-space:nowrap}.card table td{font-size:13px;padding:10px;border-bottom:1px solid var(--line);vertical-align:top}.card table tr:hover td{background:#fafdf5}
