body{background:#101728;margin:0;font-family:Microsoft YaHei,sans-serif}.wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}.card{background:#fff;border-radius:12px;padding:32px;width:340px}.logo{font-size:18px;font-weight:700;color:#1d4ed8;text-align:center;margin-bottom:4px}.sub{font-size:12px;color:#999;text-align:center;margin-bottom:16px}input{width:100%;box-sizing:border-box;padding:10px;margin:6px 0;border:1px solid #dfe2e8;border-radius:8px;font-size:14px}button{width:100%;padding:11px;margin-top:10px;background:#1d4ed8;color:#fff;border:0;border-radius:8px;font-size:15px;cursor:pointer}button:disabled{background:#9aa7c7}.msg{margin-top:10px;font-size:13px}.good{color:#16a34a}body{margin:0;font-family:Microsoft YaHei,sans-serif;background:#f5f6f8}.layout{display:flex;min-height:100vh}.menu{width:210px;background:#101728;color:#fff;padding:16px 0}.brand{font-size:15px;font-weight:700;text-align:center;padding:10px;border-bottom:1px solid rgba(255,255,255,.15);margin-bottom:8px}.item{padding:11px 20px;cursor:pointer;font-size:14px}.item.on{background:rgba(29,78,216,.55);border-left:3px solid #e8590c}.item.off{opacity:.5}.quit{position:fixed;bottom:16px;width:210px;text-align:center;cursor:pointer;font-size:13px;opacity:.7}.main{flex:1;padding:20px}.top{display:flex;justify-content:space-between;align-items:center;font-size:15px}.badge{background:#e7eefc;color:#1d4ed8;padding:2px 10px;border-radius:10px;font-size:12px}.cards{display:flex;gap:14px;margin:18px 0}.stat{background:#fff;border:1px solid #e3e5ea;border-radius:10px;padding:16px 22px;flex:1}.stat .n{font-size:22px;font-weight:700;color:#1d4ed8}.stat .l{font-size:12px;color:#888;margin-top:4px}.tableCard{background:#fff;border:1px solid #e3e5ea;border-radius:10px;padding:16px}.tableTitle{font-size:14px;font-weight:700;margin-bottom:10px}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;background:#f5f6f8;padding:8px 10px;border-bottom:2px solid #e3e5ea}td{padding:8px 10px;border-bottom:1px solid #eef0f3}.ok{color:#16a34a}.bad{color:#dc2626}.err{margin-top:10px;color:#dc2626;font-size:13px}
