:root{--navy:#15233d;--blue:#246bfd;--ink:#192338;--muted:#7b879d;--line:#e9edf4;--bg:#f5f7fb;--green:#14a673;--orange:#f39738}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg)}button{font:inherit;cursor:pointer}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;background:var(--navy);color:white;padding:28px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:0 10px 30px}.brand>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,#4a8cff,#2861df);font-size:22px;font-weight:800}.brand div,.operator div{display:flex;flex-direction:column}.brand strong{font-size:18px}.brand small,.operator small{color:#92a0b9;margin-top:3px}nav{display:grid;gap:5px}.nav-item{border:0;background:transparent;color:#aeb9cc;text-align:left;padding:12px 15px;border-radius:10px;display:flex;gap:12px;align-items:center}.nav-item.active,.nav-item:hover{background:#253752;color:white}.operator{margin-top:auto;border-top:1px solid #2d3d57;padding:20px 8px 0;display:flex;align-items:center;gap:10px;font-size:13px}.avatar{width:36px;height:36px;border-radius:50%;display:grid!important;place-items:center;background:#376dd1}main{margin-left:238px;min-height:100vh}header{height:104px;background:white;border-bottom:1px solid var(--line);padding:22px 34px;display:flex;align-items:center;justify-content:space-between}h1{margin:0 0 7px;font-size:24px}header p{margin:0;color:var(--muted);font-size:14px}.header-actions{display:flex;gap:10px}button{border-radius:9px;padding:10px 16px;border:1px solid var(--line);background:white}.primary{color:white;background:var(--blue);border-color:var(--blue)}.ghost{color:#526078}#content{padding:28px 34px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.card,.panel{background:white;border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 18px rgba(28,46,84,.04)}.metric{padding:21px}.metric .label{color:var(--muted);font-size:13px}.metric .value{font-size:28px;font-weight:750;margin:12px 0 6px}.metric .trend{font-size:12px;color:var(--green)}.grid-2{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;margin-top:20px}.panel{padding:22px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.panel h2{font-size:17px;margin:0}.panel-head span{color:var(--muted);font-size:13px}.bar-row{display:grid;grid-template-columns:125px 1fr 50px;align-items:center;gap:12px;margin:15px 0;font-size:13px}.bar{height:9px;background:#edf1f8;border-radius:6px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,#2d6ff7,#62a0ff);border-radius:6px}.rank-row{display:grid;grid-template-columns:32px 1fr 80px 70px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line);font-size:13px}.rank-row:last-child{border:0}.rank{font-weight:750;color:#8b96a9}.rank.top{color:var(--orange)}table{width:100%;border-collapse:collapse;background:white}th,td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);font-size:13px}th{color:var(--muted);font-weight:600;background:#fafbfe}.tag{display:inline-block;padding:4px 9px;border-radius:20px;background:#eaf7f2;color:var(--green);font-size:12px}.tag.gray{background:#f0f2f6;color:#7d8797}.toolbar{display:flex;justify-content:space-between;margin-bottom:16px}.search{width:300px;padding:11px 14px;border:1px solid var(--line);border-radius:9px;background:white}.empty-pad{padding:28px}.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.module{padding:20px}.module .icon{font-size:25px}.module h3{margin:13px 0 7px}.module p{font-size:13px;color:var(--muted);line-height:1.65;margin:0}.toast{position:fixed;right:28px;bottom:28px;background:#17233b;color:white;padding:13px 20px;border-radius:10px;opacity:0;transform:translateY(10px);transition:.2s}.toast.show{opacity:1;transform:none}@media(max-width:1000px){.cards{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.module-grid{grid-template-columns:repeat(2,1fr)}}
