*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;background:#f2f5f9;color:#17233d}.hidden{display:none!important}button{cursor:pointer;border:0;border-radius:6px;padding:9px 14px;background:#1966ff;color:#fff}button.ghost{background:#e7edf7;color:#29406d}input,select,textarea{width:100%;border:1px solid #ccd6e6;border-radius:6px;padding:10px;background:#fff}textarea{min-height:90px;resize:vertical}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{width:340px;background:#fff;padding:28px;border-radius:12px;box-shadow:0 12px 40px #0b1a3a1f}.login-card h1{margin:0;font-size:24px}.login-card p{color:#68758c;margin:6px 0 18px}.login-card input{margin-bottom:12px}.app header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:14px 22px;border-bottom:1px solid #e2e8f2}.app header h1{margin:0;font-size:20px}.app nav{display:flex;gap:8px;padding:12px 22px;background:#f7f9fc;border-bottom:1px solid #e4eaf4}main{padding:22px;max-width:1200px;margin:auto}h2{margin-top:0}.form{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;background:#fff;padding:16px;border-radius:10px;margin-bottom:18px}.form.small{grid-template-columns:repeat(4,1fr)}.form .full,.form textarea{grid-column:1/-1}.form button{grid-column:auto}table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden}th,td{padding:11px;border-bottom:1px solid #e8edf5;text-align:left;font-size:14px}th{background:#f7f9fc}.tag{display:inline-block;padding:3px 8px;border-radius:999px;background:#e8edf7;color:#425270;font-size:12px}.tag.ok{background#e7f8ef;color:#127a43}.tag.warn{background:#fff4df;color:#9b6200}.modal{position:fixed;inset:0;background:#0b1a3a66;display:flex;align-items:center;justify-content:center;padding:20px;z-index:10}.modal-card{width:min(900px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:12px;padding:20px}.detail{background:#f7f9fc;border-radius:8px;padding:12px;line-height:1.9;margin:12px 0}
button.mini{padding:5px 9px;font-size:12px}button.danger{background:#d84b40}code{background:#eef2f8;padding:2px 5px;border-radius:4px}

.toolbar { display:flex; gap:8px; align-items:center; margin:12px 0; flex-wrap:wrap; }
.toolbar input,.toolbar select { width:180px; margin:0; }
.muted { color:#6b7688; font-size:13px; }

.rapid-stats { display:flex; gap:18px; flex-wrap:wrap; margin:12px 0; background:#fff; padding:12px; border-radius:8px; color:#425270; }
.rapid-stats b { color:#1966ff; }
#page-rapid .muted { margin:0 0 12px; }

.tag.danger{background:#ffe9e7;color:#b42318}

