:root { color-scheme: light; font-family: "Microsoft YaHei", "PingFang SC", system-ui, sans-serif; background:#f5f6f8; color:#172033; }
* { box-sizing:border-box; }
body { margin:0; }
main { max-width:1280px; margin:0 auto; padding:32px 24px 60px; }
h1,h2,p { margin-top:0; }
h1 { margin-bottom:8px; font-size:26px; }
h2 { margin-bottom:6px; font-size:18px; }
p { color:#697386; }
.login-card { width:min(420px,100%); margin:12vh auto 0; padding:32px; background:#fff; border:1px solid #e3e7ed; border-radius:12px; box-shadow:0 12px 32px rgba(20,32,55,.08); }
label { display:block; margin:22px 0 8px; font-size:14px; }
input { width:100%; height:42px; padding:0 12px; border:1px solid #cfd6df; border-radius:6px; font-size:16px; }
button { height:38px; padding:0 16px; border:0; border-radius:6px; background:#1769e0; color:#fff; cursor:pointer; font-size:14px; }
form button { width:100%; margin-top:16px; }
button.secondary { background:#fff; color:#27364d; border:1px solid #d4dae3; }
.error { color:#b42318; min-height:22px; margin-top:10px; font-size:14px; }
header { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:22px; }
.header-actions { display:flex; align-items:center; gap:10px; color:#697386; font-size:13px; }
.summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:16px; }
.summary div,.panel { background:#fff; border:1px solid #e1e5eb; border-radius:10px; }
.summary div { padding:18px 20px; }
.summary span { display:block; color:#697386; font-size:13px; margin-bottom:9px; }
.summary strong { font-size:25px; }
.panel { overflow:hidden; margin-bottom:16px; }
table { width:100%; border-collapse:collapse; font-size:13px; }
th { padding:12px 14px; text-align:left; color:#5b6677; background:#fafbfc; border-bottom:1px solid #e7eaf0; font-weight:500; white-space:nowrap; }
td { padding:14px; border-bottom:1px solid #eef0f3; vertical-align:middle; }
tbody tr { cursor:pointer; }
tbody tr:hover { background:#f8faff; }
.badge { display:inline-flex; align-items:center; gap:6px; padding:4px 8px; border-radius:999px; background:#f0f2f5; color:#566174; white-space:nowrap; }
.badge.ok { background:#e9f8ef; color:#18794e; }
.badge.warn { background:#fff4e5; color:#9a5b13; }
.dot { width:7px; height:7px; border-radius:50%; background:currentColor; }
.action { height:30px; padding:0 10px; font-size:12px; }
.action.revoke { background:#fff; color:#b42318; border:1px solid #efc4c0; }
.empty { padding:34px; color:#8a93a3; text-align:center; }
.event-panel { padding:18px 20px 22px; }
.panel-title { display:flex; justify-content:space-between; }
.event-list { height:330px; overflow:auto; border-radius:7px; background:#111722; color:#d7e0ee; padding:12px 14px; font:13px/1.65 Consolas, "Microsoft YaHei", monospace; }
.event { display:grid; grid-template-columns:155px 80px 1fr; gap:12px; padding:5px 2px; border-bottom:1px solid #242d3b; }
.event time { color:#8290a5; }
.event .kind { color:#65a5ff; }
.event.warning .kind { color:#ffbd66; }
.event.error .kind { color:#ff7d79; }
@media(max-width:900px){.summary{grid-template-columns:repeat(2,1fr)}.panel{overflow:auto}header{display:block}.header-actions{margin-top:14px}.event{grid-template-columns:1fr}.event time{margin-bottom:-6px}}

