:root{font-family:"Microsoft YaHei",system-ui;color:#152238;background:#f4f7fb}*{box-sizing:border-box}body{margin:0}.center{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#eef4ff,#f8fbff)}.card{background:#fff;border:1px solid #e4eaf2;border-radius:14px;padding:24px;box-shadow:0 8px 30px #1f4d8a0b}.login{width:min(420px,92vw)}.brand{font-weight:800;font-size:24px;color:#1768e5}h1{font-size:24px}h2{font-size:18px}label{display:grid;gap:7px;margin:14px 0;font-size:14px;color:#536174}input,textarea,select{width:100%;border:1px solid #ccd5e1;border-radius:8px;padding:11px;font:inherit;background:#fff}button{border:0;border-radius:8px;padding:10px 16px;color:#fff;background:#1768e5;cursor:pointer;font:inherit}button.ghost,.ghost{background:#eef3fa;color:#34445c}.error{color:#c73535}#app{min-height:100vh;display:grid;grid-template-columns:230px 1fr}aside{background:#10213b;color:#fff;padding:28px 18px;display:flex;flex-direction:column;gap:10px}aside small{color:#9eb0c9;margin-bottom:24px}nav{display:grid;gap:7px;flex:1}nav button{text-align:left;background:transparent;color:#b9c7da}nav button.active{background:#1768e5;color:#fff}main{padding:28px;min-width:0}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.metric b{display:block;font-size:30px;margin-top:12px}.toolbar{margin-bottom:14px}.tablewrap{overflow:auto;padding:0}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{text-align:left;padding:15px;border-bottom:1px solid #edf0f5;font-size:14px}th{color:#657286;background:#fafbfd}.form{max-width:850px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}dialog{border:0;border-radius:16px;width:min(620px,92vw);padding:24px;box-shadow:0 30px 80px #10213b44}dialog::backdrop{background:#10213b77}pre{white-space:pre-wrap;color:#1768e5}.tag{padding:4px 8px;border-radius:10px;background:#e9f8ef;color:#168447}.off{background:#feecec;color:#b33232}@media(max-width:900px){#app{grid-template-columns:1fr}aside{position:relative}nav{grid-template-columns:repeat(4,1fr)}.metrics{grid-template-columns:repeat(2,1fr)}main{padding:16px}}
