
body{font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;margin:0;background:#f6f7f9;color:#222}
main{max-width:1100px;margin:0 auto;padding:12px}
h1{font-size:20px;margin:12px 0}h2{font-size:17px;margin:18px 0 8px}
.card{background:#fff;border-radius:10px;padding:12px;margin:10px 0;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}
.sum div{background:#f3f6fa;border-radius:8px;padding:8px}.sum b{font-size:18px}
.bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 0}
.bar select,.bar input,.bar button,.bar a{padding:7px 10px;border-radius:8px;border:1px solid #ccd;font-size:14px;background:#fff;text-decoration:none;color:#222}
.bar button.go{background:#0b6b3a;color:#fff;border-color:#0b6b3a}.bar button.no{background:#b00020;color:#fff;border-color:#b00020}
table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:6px;border-bottom:1px solid #eee;text-align:left;vertical-align:top}
th{background:#1f4e78;color:#fff;position:sticky;top:38px}
.st-proposed{color:#8a5a00;font-weight:700}.st-approved{color:#0b6b3a;font-weight:700}.st-rejected{color:#b00020;font-weight:700}
tr.failed td{background:#fde7ea;color:#8a0016}tr.dry_run td{background:#f3f8f5}
.muted{color:#666;font-size:13px}.wrap{overflow-x:auto}
#msg{white-space:pre-wrap;font-weight:700}#msg.err{color:#b00020}#msg.ok{color:#0b6b3a}
