:root {
  color-scheme: light;
  --cp-bg: #f7f4ef;
  --cp-bg-elevated: #fcfbf8;
  --cp-surface: #ffffff;
  --cp-surface-soft: #f5f5f5;
  --cp-border: #dedede;
  --cp-border-strong: #919191;
  --cp-text: #242424;
  --cp-text-muted: #5c5c5c;
  --cp-text-soft: #6f6f6f;
  --cp-accent: #b11f4b;
  --cp-accent-hover: #9a1a41;
  --cp-accent-soft: rgba(177, 31, 75, 0.08);
  --cp-accent-fg: #ffffff;
  --cp-success: #16a34a;
  --cp-danger: #dc2626;
  --cp-warning: #f59e0b;
  --cp-link: #0078d4;
  --cp-shadow: 0 18px 48px rgba(0, 0, 0, 0.12);
  --cp-overlay: rgba(255, 255, 255, 0.8);
  --cp-panel: rgba(255, 255, 255, 0.86);
  --cp-panel-strong: rgba(255, 255, 255, 0.96);
  --cp-sheen: rgba(255, 255, 255, 0.55);
  --cp-highlight: rgba(177, 31, 75, 0.12);
}
html[data-theme="dark"] {
  color-scheme: dark;
  --cp-bg: #3d3b3a;
  --cp-bg-elevated: #343231;
  --cp-surface: #292929;
  --cp-surface-soft: #2e2e2e;
  --cp-border: #474747;
  --cp-border-strong: #5f5f5f;
  --cp-text: #dedede;
  --cp-text-muted: #919191;
  --cp-text-soft: #b0b0b0;
  --cp-accent: #fd8ea1;
  --cp-accent-hover: #fb7b91;
  --cp-accent-soft: rgba(253, 142, 161, 0.14);
  --cp-accent-fg: #1a1a1a;
  --cp-success: #4ade80;
  --cp-danger: #f87171;
  --cp-warning: #fbbf24;
  --cp-link: #4da6ff;
  --cp-shadow: 0 18px 48px rgba(0, 0, 0, 0.32);
  --cp-overlay: rgba(41, 41, 41, 0.88);
  --cp-panel: rgba(41, 41, 41, 0.72);
  --cp-panel-strong: rgba(41, 41, 41, 0.96);
  --cp-sheen: rgba(255, 255, 255, 0.04);
  --cp-highlight: rgba(253, 142, 161, 0.12);
}
#heritage-map{height:min(68vh,640px);min-height:480px;border:1px solid var(--cp-border);border-radius:16px;box-shadow:0 0 2px var(--cp-border),0 1px 2px var(--cp-border);z-index:1;background:var(--cp-surface-soft)}
.map-fallback{display:grid;place-items:center;height:100%;padding:30px;text-align:center;color:var(--mc-muted);background:var(--mc-paper)}
.route-card{background:var(--mc-cream);border:1px solid var(--mc-line);border-radius:16px;padding:24px}
.route-card ol{margin:14px 0 0 20px;color:var(--mc-muted)}
.route-card li{padding:5px 0}
.route-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.place-search{display:flex;gap:10px;align-items:center;margin:0 0 14px}
.place-search label{font-weight:800}.place-search input{flex:1;min-width:0;padding:11px 14px;border:1.5px solid var(--mc-line);border-radius:999px;background:var(--mc-cream);color:var(--mc-ink);font:inherit}
.place-search input:focus{outline:3px solid var(--mc-gold);border-color:var(--mc-gold)}
.map-tools{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr) auto;gap:12px;align-items:end;margin-bottom:14px;padding:16px;background:var(--cp-surface);border:1px solid var(--cp-border);border-radius:16px;box-shadow:0 0 2px var(--cp-border),0 1px 2px var(--cp-border)}
.map-tools .place-search{display:block;margin:0}.map-tools label{display:block;margin-bottom:6px;color:var(--cp-text);font-size:.86rem;font-weight:700}
.map-tools input,.map-tools select{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--cp-border-strong);border-radius:.625rem;background:var(--cp-surface);color:var(--cp-text);font:inherit}
.map-tools input:focus,.map-tools select:focus{outline:3px solid var(--cp-highlight);border-color:var(--cp-accent)}
.map-fit{min-height:46px;border:1px solid var(--cp-accent);border-radius:.625rem;background:var(--cp-accent);color:var(--cp-accent-fg);padding:10px 16px;font:inherit;font-weight:700;cursor:pointer}
.map-fit:hover{background:var(--cp-accent-hover)}.map-fit:focus-visible{outline:3px solid var(--cp-highlight);outline-offset:2px}
.map-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:12px 0;color:var(--cp-text-muted);font-size:.82rem;font-weight:700}
.map-legend span{display:inline-flex;align-items:center;gap:7px}.map-legend i{width:14px;height:14px;border:2px solid var(--cp-surface);border-radius:50%;box-shadow:0 0 0 1px var(--cp-border-strong)}
.map-legend .district{background:var(--cp-accent)}.map-legend .home{background:var(--cp-success)}.map-legend .civic{background:var(--cp-warning)}.map-legend .education{background:var(--cp-link)}
.map-help{margin:8px 0 16px;color:var(--cp-text-muted);font-size:.82rem}.map-help a{color:var(--cp-accent);text-decoration:underline;text-underline-offset:2px}
.place-item.map-active{border-color:var(--cp-accent);box-shadow:0 0 0 3px var(--cp-highlight)}
.map-locate{border:1px solid var(--cp-border-strong);border-radius:.625rem;background:var(--cp-surface);color:var(--cp-text);padding:7px 12px;font:inherit;font-size:.78rem;font-weight:700;cursor:pointer}
.map-locate:hover{border-color:var(--cp-accent);color:var(--cp-accent)}.map-locate:focus-visible{outline:3px solid var(--cp-highlight)}
.mchs-map-popup{font-family:"Segoe UI",Aptos,Calibri,-apple-system,BlinkMacSystemFont,sans-serif;color:var(--cp-text)}
.mchs-map-popup img{display:block;width:100%;height:130px;object-fit:cover;margin:0 0 9px;border-radius:.625rem;background:var(--cp-surface-soft)}
.mchs-map-popup h3{margin:0 0 4px;font:700 1.05rem/1.25 Georgia,"Times New Roman",serif}.mchs-map-popup p{margin:7px 0;line-height:1.45}
.mchs-map-popup .popup-tag{display:inline-block;margin:0 4px 3px 0;padding:2px 7px;border-radius:.625rem;background:var(--cp-accent-soft);color:var(--cp-accent);font-size:.7rem;font-weight:700}
.mchs-map-popup .popup-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}.mchs-map-popup a,.mchs-map-popup button{color:var(--cp-link);font:inherit;font-size:.8rem;font-weight:700}
.mchs-map-popup button{border:1px solid var(--cp-border);border-radius:.625rem;background:var(--cp-surface);padding:5px 8px;cursor:pointer}
.leaflet-popup-content-wrapper{border-radius:.625rem;background:var(--cp-surface);color:var(--cp-text)}.leaflet-popup-tip{background:var(--cp-surface)}
.place-count{color:var(--mc-muted);font-size:.86rem;font-weight:700;margin-bottom:14px}
.place-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:20px}
.place-item{background:var(--mc-cream);border:1px solid var(--mc-line);border-radius:16px;overflow:hidden;box-shadow:var(--mc-shadow-sm);display:flex;flex-direction:column}
.place-visual{height:120px;display:flex;align-items:flex-end;padding:16px;color:#fff;background:linear-gradient(135deg,var(--mc-teal),var(--mc-navy));position:relative}
.place-visual.house{background:linear-gradient(135deg,#8d603c,#3f2b20)}.place-visual.district{background:linear-gradient(135deg,#1f7a6d,#0c2a4d)}.place-visual.civic{background:linear-gradient(135deg,#aa761c,#4c3512)}.place-visual.education{background:linear-gradient(135deg,#4967a8,#19284a)}
.place-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.place-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(7,27,52,.82))}
.place-visual span{position:relative;z-index:1;font-family:Georgia,serif;font-size:1.25rem;font-weight:700}
.place-body{padding:18px;display:flex;flex-direction:column;flex:1}.place-body small{display:block;color:var(--mc-muted);margin-top:4px}.place-body p{color:var(--mc-muted);font-size:.9rem;margin-top:10px}
.place-body details{margin-top:12px}.place-body summary{cursor:pointer;color:var(--mc-teal);font-weight:800}.place-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:16px}.place-actions .btn{padding:7px 12px;font-size:.78rem}
.place-credit{display:block;color:var(--mc-muted);font-size:.72rem;margin-top:10px}
.source-list{counter-reset:sources;display:grid;gap:10px}
.source-list a{display:block;background:var(--mc-cream);border:1px solid var(--mc-line);border-radius:10px;padding:14px;color:var(--mc-teal);font-weight:700}
.archive-card ul{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:14px}
.archive-card li{padding-top:14px;border-top:1px solid var(--mc-line)}
.archive-card li:first-child{padding-top:0;border-top:0}
.archive-card a{color:var(--mc-teal);font-weight:800}
.archive-credit{display:block;margin-top:5px;color:var(--mc-muted);font-size:.78rem;line-height:1.45}
@media(max-width:920px){.place-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.map-tools{grid-template-columns:1fr 1fr}.map-fit{grid-column:1/-1}}
@media(max-width:700px){#heritage-map{height:430px;min-height:360px}.place-list{grid-template-columns:1fr}.place-search{align-items:stretch;flex-direction:column}.map-tools{grid-template-columns:1fr}.map-fit{grid-column:auto}}
@media(max-width:480px){.leaflet-popup-content{max-width:220px!important}.mchs-map-popup img{height:105px}}
