:root { --green:#14523F; --green2:#3A7D44; --ink:#1a1a2e; --paper:#FAFAF7; --line:#ccd5e0; }
* { box-sizing:border-box; }
body { margin:0; font-family:'Open Sans',Arial,sans-serif; color:var(--ink); background:var(--paper); line-height:1.55; }
h1,h2,h3 { font-family:'Libre Baskerville',Georgia,serif; color:var(--green); }
header.site { background:var(--green); color:white; padding:14px 22px; display:flex; align-items:center; gap:14px; }
header.site img { height:44px; }
header.site .t1 { font-family:'Libre Baskerville',Georgia,serif; font-size:19px; }
header.site .t2 { font-size:11.5px; opacity:.85; }
nav.main { background:#0E3D2E; padding:0 22px; display:flex; gap:2px; flex-wrap:wrap; }
nav.main a { color:#DCE9E2; text-decoration:none; padding:10px 14px; font-size:13.5px; }
nav.main a.on, nav.main a:hover { background:var(--green2); color:white; }
main { max-width:1080px; margin:0 auto; padding:26px 22px 60px; }
.card { background:white; border:1px solid var(--line); border-radius:10px; padding:18px 20px; margin:14px 0; }
.stat { font-size:30px; font-weight:700; color:var(--green); font-family:'Libre Baskerville',Georgia,serif; }
.statlabel { font-size:12.5px; color:#555; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:14px; }
sup a { color:var(--green2); text-decoration:none; font-size:10px; }
.src { font-size:11.5px; color:#666; border-top:1px solid var(--line); margin-top:16px; padding-top:8px; }
.src a { color:var(--green2); }
footer { text-align:center; font-size:11px; color:#777; padding:18px; }
.tag { display:inline-block; background:#EEF6EE; color:var(--green); border:1px solid var(--green2); border-radius:12px; padding:1px 10px; font-size:11px; margin-right:6px; }
table.d { border-collapse:collapse; width:100%; font-size:13px; }
table.d td, table.d th { border:1px solid var(--line); padding:5px 9px; text-align:left; }
table.d th { background:var(--green); color:white; }
a.btn { display:inline-block; background:var(--green); color:white; text-decoration:none; padding:9px 16px; border-radius:7px; font-size:14px; }

/* ---- mobile optimization ---- */
table.d { display:block; overflow-x:auto; }
@media (max-width:640px) {
  header.site { padding:10px 14px; } header.site img { height:36px; }
  header.site .t1 { font-size:16px; } header.site .t2 { font-size:10.5px; }
  nav.main { padding:0 8px; } nav.main a { padding:9px 10px; font-size:12.5px; }
  main { padding:18px 14px 44px; }
  .card { padding:14px 14px; }
  .stat { font-size:24px; }
  a.btn { padding:9px 13px; font-size:13px; margin-bottom:8px; }
}
