:root { --bg:#f6f4ef; --card:#fff; --ink:#1f2328; --muted:#6b7280; --line:#e5e1d8; --accent:#8b5a2b; --ok:#2f7d4f; --warn:#b45309; }
* { box-sizing:border-box; }
body { margin:0; font:15px/1.5 system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif; color:var(--ink); background:var(--bg); }
header { background:#2b2118; color:#f3e9d8; padding:12px 16px; display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
header h1 { font-size:18px; margin:0; }
header a { color:#f3e9d8; opacity:.85; margin-left:14px; font-size:14px; }
main { max-width:1100px; margin:0 auto; padding:16px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:14px 16px; margin-bottom:14px; }
.card.sim { border-color:var(--warn); background:#fffaf2; }
h2 { font-size:16px; margin:0 0 10px; }
h3 { font-size:14px; margin:12px 0 6px; color:var(--muted); }
button, input, textarea, select { font:inherit; }
button { border:1px solid var(--line); background:#fff; border-radius:8px; padding:6px 12px; cursor:pointer; }
button.primary { background:var(--accent); color:#fff; border-color:var(--accent); }
button.small { padding:2px 8px; font-size:13px; }
button:disabled { opacity:.5; cursor:default; }
input, textarea, select { border:1px solid var(--line); border-radius:8px; padding:6px 10px; width:100%; }
textarea { min-height:120px; }
.row { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:12px; }
table { border-collapse:collapse; width:100%; font-size:14px; }
th, td { text-align:left; padding:4px 6px; border-bottom:1px solid var(--line); white-space:nowrap; }
.muted { color:var(--muted); font-size:13px; }
.tag { display:inline-block; font-size:12px; padding:0 6px; border-radius:6px; background:#eee; margin-left:4px; }
.tag.ok { background:#dcefe3; color:var(--ok); }
.tag.warn { background:#fdecd4; color:var(--warn); }
.match { display:flex; align-items:center; gap:8px; padding:6px 0; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.match .vs { flex:1; min-width:160px; }
.match .win { font-weight:600; color:var(--ok); }
code { background:#f0ece4; padding:1px 5px; border-radius:4px; }
.error { color:#b91c1c; }
.hidden { display:none !important; }
@media (max-width:600px) { main { padding:10px; } .card { padding:10px 12px; } }
