: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);
}
.history-preset{min-height:250px}
.marker-guide{border-left:5px solid var(--mc-gold)}
#regional-map{height:min(74vh,740px);min-height:560px;scroll-margin-top:88px;border:2px solid var(--cp-border-strong);border-radius:16px;background:var(--cp-surface-soft);box-shadow:0 0 2px var(--cp-border),0 1px 2px var(--cp-border);z-index:1}
.regional-tools{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr) auto;gap:12px;align-items:end;margin-bottom:14px;padding:16px;border:1px solid var(--cp-border);border-radius:16px;background:var(--cp-surface);box-shadow:0 0 2px var(--cp-border),0 1px 2px var(--cp-border)}
.regional-tools label{display:block;margin-bottom:6px;color:var(--cp-text);font-size:.86rem;font-weight:700}.regional-tools input,.regional-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}
.regional-tools input:focus,.regional-tools select:focus{outline:3px solid var(--cp-highlight);border-color:var(--cp-accent)}.regional-fit{min-height:46px;padding:10px 16px;border:1px solid var(--cp-accent);border-radius:.625rem;background:var(--cp-accent);color:var(--cp-accent-fg);font:inherit;font-weight:700;cursor:pointer}.regional-fit:hover{background:var(--cp-accent-hover)}
.regional-summary{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:10px 0 16px;color:var(--cp-text-muted);font-size:.84rem}.regional-summary strong{color:var(--cp-text)}
.regional-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:24px}.regional-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--cp-border);border-radius:16px;background:var(--cp-surface);box-shadow:0 0 2px var(--cp-border),0 1px 2px var(--cp-border)}.regional-card.map-active{border-color:var(--cp-accent);box-shadow:0 0 0 3px var(--cp-highlight)}.regional-card-content{display:flex;flex:1;flex-direction:column;padding:20px}
.regional-media{margin:0;background:var(--cp-surface-soft)}.regional-media img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--cp-surface-soft)}.regional-media figcaption{display:grid;gap:3px;padding:8px 10px;border-bottom:1px solid var(--cp-border);color:var(--cp-text-soft);font-size:.68rem;line-height:1.35}.regional-media figcaption a{color:var(--cp-accent);font-weight:700;text-decoration:underline;text-underline-offset:2px}.regional-media-popup{margin:0 0 10px}.regional-media-popup img{max-height:170px}.regional-media-popup figcaption{padding:6px 4px}
.regional-card-head{display:flex;gap:12px;align-items:flex-start}.regional-symbol{display:grid;flex:0 0 38px;width:38px;height:38px;place-items:center;border-radius:.625rem;background:var(--cp-accent-soft);color:var(--cp-accent);font-weight:800}.regional-card h3,.regional-popup h3{margin:2px 0 0}.regional-card-content>p{color:var(--cp-text-muted);font-size:.9rem}.regional-meta{font-weight:700}.regional-kicker{color:var(--cp-accent);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.regional-note{padding:9px;border-left:3px solid var(--cp-warning);background:var(--cp-surface-soft);color:var(--cp-text)!important;font-size:.8rem!important}
.regional-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:14px}.regional-actions a,.regional-actions button{display:inline-flex;min-height:44px;align-items:center;padding:8px 10px;border:1px solid var(--cp-border-strong);border-radius:.625rem;background:var(--cp-surface);color:var(--cp-link);font:inherit;font-size:.77rem;font-weight:700;cursor:pointer;text-decoration:none}.regional-actions a:hover,.regional-actions button:hover{border-color:var(--cp-accent);color:var(--cp-accent)}
.regional-marker{display:block;width:16px;height:16px;margin:4px;border:2px solid var(--cp-surface);border-radius:50%;background:var(--cp-accent);box-shadow:0 0 0 1px var(--cp-border-strong)}.regional-marker-museum,.regional-marker-coal{background:var(--cp-link)}.regional-marker-cave,.regional-marker-park{background:var(--cp-success)}.regional-marker-festival{background:var(--cp-warning)}.regional-marker-presidential,.regional-marker-civil-war,.regional-marker-heritage{background:var(--cp-accent)}.regional-marker-education{background:var(--cp-warning)}
.leaflet-control-zoom a{display:grid!important;width:44px!important;height:44px!important;place-items:center;line-height:1!important}.leaflet-control-attribution{background:var(--cp-surface)!important;color:var(--cp-text)!important}.leaflet-control-attribution a{display:inline-flex;min-height:24px;align-items:center;color:var(--cp-link)!important}
.history-trip-panel .trip-remove{color:var(--cp-link)!important}.history-trip-panel .btn-teal{background:var(--cp-accent)!important;color:var(--cp-accent-fg)!important}
.regional-popup{font-family:"Segoe UI",Aptos,Calibri,-apple-system,BlinkMacSystemFont,sans-serif;color:var(--cp-text)}.regional-popup p{line-height:1.42}.regional-empty{display:grid;min-height:180px;place-items:center;padding:28px;text-align:center;color:var(--cp-text-muted);background:var(--cp-surface-soft)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--cp-surface);color:var(--cp-text)}
.regional-date{padding:9px;border:1px solid var(--cp-success);border-radius:.625rem;background:var(--cp-surface-soft);color:var(--cp-text)!important;font-size:.82rem!important}.regional-date-pending{border-color:var(--cp-warning)}
.regional-result-controls{display:flex;justify-content:center;gap:10px;margin-top:22px}.regional-result-controls button{min-height:44px;padding:8px 14px;border:1px solid var(--cp-border-strong);border-radius:.625rem;background:var(--cp-surface);color:var(--cp-link);font:inherit;font-weight:750}.regional-result-controls button:hover{border-color:var(--cp-accent);color:var(--cp-accent)}
.stay-weekly{padding:20px;border:1px solid var(--cp-border);border-radius:16px;background:var(--cp-surface);box-shadow:0 0 2px var(--cp-border),0 1px 2px var(--cp-border)}.stay-weekly-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.stay-weekly-heading h2{margin:3px 0}.stay-weekly-heading a,.stay-weekly-event h3 a,.stay-weekly-empty a{color:var(--cp-link);font-weight:700}.stay-weekly-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.stay-weekly-event{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:14px;border-left:4px solid var(--cp-accent);background:var(--cp-surface-soft)}.stay-weekly-event h3{margin:0;font-size:1rem}.stay-weekly-event p{margin:5px 0 0;color:var(--cp-text-muted);font-size:.88rem}.stay-weekly-date{min-width:58px;margin:0!important;color:var(--cp-accent)!important;font-weight:800}.stay-weekly-empty{margin:16px 0 0;color:var(--cp-text-muted)}@media(max-width:960px){.stay-weekly-list{grid-template-columns:1fr}}
.regional-upcoming{margin-top:16px;padding-top:16px;border-top:1px solid var(--cp-border)}.regional-upcoming .stay-weekly-event{border-left-color:var(--mc-gold)}.regional-upcoming-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}.regional-upcoming-actions a,.regional-upcoming-actions button{min-height:44px;padding:8px 10px;border:1px solid var(--cp-border-strong);border-radius:.5rem;background:var(--cp-surface);color:var(--cp-link);font:inherit;font-weight:750;text-decoration:none;cursor:pointer}
@media(max-width:960px){.regional-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.regional-tools{grid-template-columns:1fr 1fr}.regional-fit{grid-column:1/-1}}
@media(max-width:700px){#regional-map{height:440px;min-height:380px}.regional-tools,.regional-list{grid-template-columns:1fr}.regional-fit{grid-column:auto}}
