:root {
  --font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI Variable", "Segoe UI", "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans CJK SC", "Noto Sans SC", sans-serif;
}
body { font-family: var(--font-ui); font-size: 15px; line-height: 1.65; font-weight: 400; }
button, input, textarea, select, dialog { font-family: var(--font-ui); }
h1, h2, h3 { font-family: var(--font-ui); font-weight: 650; line-height: 1.35; letter-spacing: -.025em; text-wrap: balance; }
html[lang="zh-Hans"] h1, html[lang="zh-Hans"] h2, html[lang="zh-Hans"] h3 { letter-spacing: 0; }
button { font-weight: 600; line-height: 1.4; }
.logo { font-weight: 750; letter-spacing: -.035em; }
.sub, .note, .place-meta, .place-source, .results-status, .map-scope { line-height: 1.6; }
.note, .place-meta, .results-status { font-size: 12px; }
.stat b, .mini b, .stamp-total, progress, .tier-label { font-variant-numeric: tabular-nums; }
.dialog input, .dialog textarea, .dialog select { font-size: 16px; }
.community-map-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 18px; }
.review-confirm { display: flex; align-items: flex-start; gap: 8px; margin: 12px 0; }
.review-confirm[hidden] { display: none; }
.dialog .review-confirm input { width: 18px; height: 18px; flex: 0 0 18px; padding: 0; margin: 3px 0 0; }
.review-before { border-left: 3px solid var(--accent); padding-left: 10px; color: var(--muted); }
@media (max-width:700px) {
  .dialog h2 { font-size: 23px; }
  .adventure-card h3, .place-copy h3 { line-height: 1.5; }
  .community-menu small { font-size: 12px; }
}
