
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;background:#0f172a;color:#e2e8f0;line-height:1.6}
a{color:#60a5fa;text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1100px;margin:0 auto;padding:24px 20px}
header{padding:36px 0 16px;border-bottom:1px solid #1e293b;margin-bottom:28px}
header h1{margin:0 0 6px;font-size:28px;font-weight:700;background:linear-gradient(90deg,#60a5fa,#a78bfa);-webkit-background-clip:text;background-clip:text;color:transparent}
header p{margin:4px 0;color:#94a3b8;font-size:13px}
.stats{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px}
.stat{background:#1e293b;padding:10px 16px;border-radius:8px;font-size:13px}
.stat b{color:#60a5fa;font-size:18px;margin-right:4px}
.tabs{display:flex;gap:8px;margin:24px 0 20px;flex-wrap:wrap}
.tab{background:#1e293b;color:#cbd5e1;padding:8px 16px;border-radius:8px;cursor:pointer;font-size:14px;border:1px solid transparent;transition:all .15s}
.tab:hover{background:#334155}
.tab.active{background:#2563eb;border-color:#60a5fa;color:#fff}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.card{background:#1e293b;border:1px solid #334155;border-radius:12px;padding:18px;transition:all .18s;cursor:pointer;display:flex;flex-direction:column;min-height:180px}
.card:hover{transform:translateY(-2px);border-color:#60a5fa;box-shadow:0 8px 24px rgba(96,165,250,.12)}
.card .id{font-size:12px;color:#64748b;font-family:ui-monospace,monospace;margin-bottom:4px}
.card h3{margin:0 0 8px;font-size:16px;font-weight:600;color:#f1f5f9}
.card .exc{font-size:13px;color:#94a3b8;flex:1;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.card .foot{display:flex;align-items:center;justify-content:space-between;margin-top:12px;font-size:12px;color:#64748b}
.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500}
.badge.pass{background:#065f46;color:#6ee7b7}
.badge.fail{background:#7f1d1d;color:#fca5a5}
.badge.na{background:#334155;color:#94a3b8}
.empty{text-align:center;padding:60px 20px;color:#64748b}
.empty p{margin:8px 0}

/* detail page */
article{background:#1e293b;border-radius:12px;padding:32px;border:1px solid #334155}
article .meta{color:#64748b;font-size:13px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #334155}
article .meta > span{margin-right:16px}
article h1{margin-top:0;color:#f1f5f9;font-size:24px}
article h2{color:#f1f5f9;margin-top:28px;font-size:20px;border-bottom:1px solid #334155;padding-bottom:8px}
article h3{color:#e2e8f0;margin-top:20px;font-size:16px}
article p{color:#cbd5e1}
article ul,article ol{color:#cbd5e1}
article code{background:#0f172a;padding:2px 6px;border-radius:4px;font-size:90%;color:#fbbf24}
article pre{background:#0f172a;padding:14px;border-radius:8px;overflow-x:auto}
article blockquote{border-left:3px solid #60a5fa;padding-left:14px;color:#94a3b8;margin:16px 0}
.back{display:inline-block;margin-bottom:16px;color:#60a5fa;font-size:14px}
footer{text-align:center;color:#64748b;font-size:12px;padding:32px 0 16px;border-top:1px solid #1e293b;margin-top:40px}
@media(max-width:640px){.wrap{padding:16px 14px}header{padding:20px 0 10px}header h1{font-size:22px}.grid{grid-template-columns:1fr}}
