body{margin:0;font-family:-apple-system,"Microsoft Yahei",sans-serif;background:#f3f5f9;color:#222}
a{color:#4a6cf7;text-decoration:none}
.topbar{background:#1f2430;color:#fff;padding:14px 24px;display:flex;justify-content:space-between;align-items:center}
.topbar a{color:#cfd6ff;margin-right:16px}
.topbar .brand{font-weight:700;font-size:18px;color:#fff}
.layout{display:flex;min-height:calc(100vh - 52px)}
.sidebar{width:200px;background:#272c3a;padding:16px 0;flex-shrink:0}
.sidebar a{display:block;padding:10px 24px;color:#c7cdf0}
.sidebar a:hover,.sidebar a.active{background:#3a4160;color:#fff}
.content{flex:1;padding:28px}
.card{background:#fff;border-radius:10px;padding:20px;margin-bottom:20px;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:24px}
.stat-tile{background:#fff;border-radius:10px;padding:18px;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.stat-tile .num{font-size:28px;font-weight:700;color:#2d3561}
.stat-tile .label{color:#888;font-size:13px;margin-top:4px}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:9px 10px;border-bottom:1px solid #eee;font-size:14px}
th{color:#888;font-weight:600}
.btn{display:inline-block;background:#4a6cf7;color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px}
.btn.secondary{background:#eef0fb;color:#4a6cf7}
.btn.danger{background:#f74a4a}
.btn.small{padding:4px 10px;font-size:12px}
input,textarea,select{width:100%;padding:8px 10px;border:1px solid #ddd;border-radius:6px;margin-bottom:10px;font-size:14px;box-sizing:border-box}
.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px}
.badge.ok{background:#e4f7e9;color:#1a8a3f}
.badge.warn{background:#fff3df;color:#b8710a}
.badge.bad{background:#fde8e8;color:#c0392b}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eef0ff,#dfe6ff)}
.login-box{background:#fff;padding:40px;border-radius:14px;width:340px;box-shadow:0 10px 30px rgba(0,0,0,.1)}
.login-box h2{margin-top:0}
.error{color:#c0392b;font-size:13px;margin-bottom:10px}
.hint{color:#999;font-size:12px}
.flex-row{display:flex;gap:10px;align-items:center}
.section-title{font-size:16px;font-weight:700;margin-bottom:14px}
