:root {
  --primary: #4A90D9; --secondary: #5BA0F5; --accent: #F5A623;
  --bg: #F0F5FF; --card-bg: #FFFFFF; --text: #2C3E50; --text-light: #64748B;
  --cta: #2563EB; --border: #DBEAFE;
  --contact-footer-h: 72px; --bottom-nav-h: 52px;
  --safe-area-bottom: env(safe-area-inset-bottom, 0px);
  --bottom-chrome-h: calc(var(--contact-footer-h) + var(--bottom-nav-h));
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; -webkit-text-size-adjust: 100%; }
body {
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", sans-serif;
  background: var(--bg); color: var(--text); line-height: 1.5;
  padding-bottom: calc(var(--bottom-chrome-h) + 16px + var(--safe-area-bottom));
}
button, input, textarea, select { font: inherit; border: none; background: none; cursor: pointer; }
a { color: inherit; text-decoration: none; }
.hidden { display: none !important; }
.empty { text-align: center; color: var(--text-light); padding: 24px; }
.page-title, .page-header h2 { font-size: 1.2rem; padding: 16px 16px 4px; }
.page-header p { padding: 0 16px 12px; color: var(--text-light); font-size: .9rem; }
.section-title { font-size: 1rem; padding: 12px 16px 8px; font-weight: 700; }
.hint { font-size: .85rem; color: var(--text-light); margin-bottom: 12px; }
