/* geo-app — minimal, provenance-first UI */
:root {
  --color-primary: #2563eb;
  --color-bg: #f9fafb;
  --color-surface: #ffffff;
  --color-border: #e5e7eb;
  --color-text: #111827;
  --color-muted: #6b7280;
  --radius: 8px;
  --shadow: 0 1px 3px rgba(0,0,0,0.08);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: system-ui, sans-serif; background: var(--color-bg); color: var(--color-text); }
.navbar { background: var(--color-surface); border-bottom: 1px solid var(--color-border);
  padding: .75rem 1.5rem; display: flex; justify-content: space-between; align-items: center; }
.nav-brand { font-weight: 700; color: var(--color-primary); text-decoration: none; font-size: 1.1rem; }
.nav-links a { margin-left: 1.2rem; color: var(--color-muted); text-decoration: none; }
.container { max-width: 900px; margin: 0 auto; padding: 2rem 1.5rem; }
.footer { text-align: center; padding: 1.5rem; color: var(--color-muted); font-size: .85rem; }
.hero { text-align: center; padding: 4rem 1rem; }
.hero h1 { font-size: 2.5rem; margin-bottom: .5rem; }
.lead { font-size: 1.2rem; color: var(--color-muted); margin-bottom: 2rem; }
.hero-actions { display: flex; gap: 1rem; justify-content: center; }

/* Buttons */
.btn { padding: .6rem 1.2rem; border-radius: var(--radius); font-size: .95rem; cursor: pointer;
  text-decoration: none; border: none; display: inline-block; }
.btn-primary { background: var(--color-primary); color: #fff; }
.btn-outline { background: transparent; border: 1px solid var(--color-primary); color: var(--color-primary); }

/* Badges */
.badge { display: inline-block; padding: .15rem .5rem; border-radius: 99px;
  font-size: .75rem; font-weight: 600; margin-right: .25rem; }
.badge-verified, .badge-verified_fact { background: #d1fae5; color: #065f46; }
.badge-reviewed { background: #dbeafe; color: #1e40af; }
.badge-recollection, .badge-personal_recollection { background: #fef3c7; color: #92400e; }
.badge-community, .badge-community_memory { background: #ede9fe; color: #5b21b6; }
.badge-disputed { background: #fee2e2; color: #991b1b; }
.badge-draft, .badge-unknown { background: #f3f4f6; color: #374151; }
.badge-hidden { background: #e5e7eb; color: #9ca3af; }
.badge-memorial, .badge-education { background: #0ea5e9; color: #fff; }

/* Cards */
.timeline-card, .result-card, .story-block, .lesson-block {
  background: var(--color-surface); border: 1px solid var(--color-border);
  border-radius: var(--radius); padding: 1rem 1.25rem; margin-bottom: 1rem;
  box-shadow: var(--shadow);
}
.timeline-meta { display: flex; gap: .5rem; align-items: center; margin-bottom: .5rem; flex-wrap: wrap; }
.date { font-size: .85rem; color: var(--color-muted); }
.place { font-size: .9rem; color: var(--color-muted); margin-top: .25rem; }
.sources { color: var(--color-muted); font-size: .8rem; margin-top: .4rem; }
.provenance { margin-top: .5rem; font-size: .85rem; color: var(--color-muted); }
.trust-labels { margin: .5rem 0; }
.discussion-prompt { background: #f0f9ff; border-left: 3px solid var(--color-primary);
  padding: .6rem .8rem; margin-top: .75rem; border-radius: 0 var(--radius) var(--radius) 0; }
.provenance-notice { background: #ecfdf5; border: 1px solid #6ee7b7; padding: .75rem 1rem;
  border-radius: var(--radius); margin-bottom: 1.5rem; font-size: .9rem; }

/* Forms */
.search-form { display: flex; gap: .5rem; margin-bottom: 1.5rem; }
.search-input { flex: 1; padding: .6rem .9rem; border: 1px solid var(--color-border);
  border-radius: var(--radius); font-size: 1rem; }
.timeline-filters { display: flex; gap: .75rem; margin-bottom: 1.25rem; flex-wrap: wrap; }
.timeline-filters select { padding: .4rem .7rem; border-radius: var(--radius); border: 1px solid var(--color-border); }
.form-group { margin-bottom: 1.1rem; }
.form-group label { display: block; margin-bottom: .3rem; font-weight: 500; }
.form-group input, .form-group select, .form-group textarea {
  width: 100%; padding: .5rem .75rem; border: 1px solid var(--color-border);
  border-radius: var(--radius); font-size: .95rem; }
.contribution-form { max-width: 600px; }
.submit-msg { margin-top: .75rem; }
.submit-msg.success { color: #065f46; }
.submit-msg.error { color: #991b1b; }
.hidden { display: none; }

/* Groups */
.group-title { font-size: 1.1rem; margin: 1.5rem 0 .5rem; border-bottom: 1px solid var(--color-border); padding-bottom: .3rem; }
.result-cards { display: grid; gap: .75rem; }
.snippet { font-size: .9rem; color: var(--color-muted); }
.result-meta { margin-top: .4rem; }
.result-count { color: var(--color-muted); margin-bottom: .75rem; }
.empty { color: var(--color-muted); font-style: italic; }
.trust-summary { background: #f8fafc; border: 1px solid var(--color-border);
  border-radius: var(--radius); padding: 1rem 1.25rem; margin-bottom: 1.5rem; }
.memorial-header { margin-bottom: 2rem; }
.lifespan { font-size: 1.1rem; color: var(--color-muted); margin: .25rem 0; }
.summary { border-left: 4px solid var(--color-primary); padding-left: 1rem;
  color: var(--color-muted); font-style: italic; margin: .75rem 0; }
.memorial-actions { display: flex; gap: .75rem; flex-wrap: wrap; margin-top: 2rem; }
.story-footer { text-align: center; color: var(--color-muted); font-size: .8rem; margin-top: 1.5rem; }

/* Map legend */
.legend-list { list-style: none; display: flex; gap: 1rem; flex-wrap: wrap; margin-top: .5rem; }
.dot { display: inline-block; width: 12px; height: 12px; border-radius: 50%; margin-right: .3rem; }
.dot-born_in { background: #dc2626; }
.dot-lived_in { background: #2563eb; }
.dot-studied_in { background: #7c3aed; }
.dot-worked_in { background: #d97706; }
.dot-died_in { background: #374151; }
