*{box-sizing:border-box}body{margin:0;background:#f4f6f8;color:#252a32;font:14px/1.6 Arial,"Microsoft YaHei",sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.layout{display:flex;min-height:100vh}.side{width:220px;background:#171b22;color:#c7cdd7;position:fixed;inset:0 auto 0 0;padding:24px 14px;overflow:auto}.brand{color:#fff;font-size:19px;font-weight:700;padding:0 12px 22px}.brand b{color:#f04444}.side nav a{display:block;padding:11px 13px;border-radius:7px;margin:3px 0}.side nav a:hover,.side nav a.on{background:#2a313c;color:#fff}.side .foot{margin-top:22px;padding:14px 12px;border-top:1px solid #323a46;font-size:12px}.main{margin-left:220px;width:calc(100% - 220px);padding:28px 34px}.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.top h1{margin:0;font-size:24px}.top .muted{margin-top:4px}.muted{color:#75808e}.card{background:#fff;border:1px solid #e5e9ee;border-radius:10px;padding:20px;margin-bottom:18px;box-shadow:0 2px 6px rgba(30,40,50,.03)}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat{font-size:30px;font-weight:700;color:#18202a}.stat-label{color:#7b8592}.btn{display:inline-block;border:0;border-radius:6px;background:#d92938;color:#fff;padding:9px 15px;font-weight:600}.btn:hover{background:#b91e2c}.btn.secondary{background:#edf0f4;color:#38404b}.btn.small{padding:5px 10px;font-size:12px}.btn.danger{background:#a92732}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.flash{padding:11px 14px;border-radius:7px;margin-bottom:14px;background:#e8f6ed;color:#207244}.flash.error{background:#fff0f0;color:#b42331}table{width:100%;border-collapse:collapse;background:#fff}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid #edf0f3;vertical-align:top}th{color:#6d7784;font-size:12px;background:#fafbfc}tr:hover td{background:#fcfdfe}.badge{display:inline-block;border-radius:20px;padding:2px 9px;background:#edf0f4;font-size:12px}.badge.red{background:#ffebee;color:#b42331}.badge.green{background:#e8f6ed;color:#207244}.badge.blue{background:#eaf2ff;color:#3268b2}input,select,textarea{width:100%;border:1px solid #d8dee6;border-radius:6px;padding:9px 10px;background:#fff}textarea{min-height:100px;resize:vertical}label{display:block;font-weight:600;margin:13px 0 5px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.form-grid .full{grid-column:1/-1}.inline{display:flex;gap:8px;align-items:center}.inline input,.inline select{width:auto}.filters{display:flex;gap:10px;margin-bottom:15px}.filters input{max-width:280px}.filters select{max-width:170px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#171b22}.login-card{width:390px;background:#fff;border-radius:12px;padding:32px}.login-card h1{margin:0 0 8px}.login-card .btn{width:100%;margin-top:20px;padding:11px}.help{font-size:12px;color:#7a8592}.event{border-left:2px solid #e2e7ed;padding:0 0 16px 16px}.event time{color:#89929e;font-size:12px}.message{white-space:pre-wrap;background:#f7f8fa;padding:14px;border-radius:7px}.pagination-note{margin-top:10px}.danger-text{color:#b42331}.success-text{color:#207244}@media(max-width:900px){.side{position:static;width:100%;padding:14px}.side nav{display:flex;flex-wrap:wrap}.side nav a{padding:7px 9px}.layout{display:block}.main{margin:0;width:100%;padding:18px}.grid4{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.card{padding:14px;overflow:auto}.brand{padding-bottom:10px}.side .foot{display:none}}
