:root {
  color-scheme: light;
  --ink: #203c36;
  --muted: #5c6f69;
  --green: #087a65;
  --green-dark: #075e50;
  --soft: #eaf3ed;
  --line: #dce6df;
  --paper: #fff;
  --canvas: #f4f6f0;
  --radius: 12px;
  --card-radius: 14px;
  --panel-width: 460px;
  --header-height: 78px;
  --focus: #b87513;
  --shadow: 0 1px 5px #173e2818;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 14px;
  color: var(--ink);
  background: var(--canvas);
  font-synthesis: none;
}
* { box-sizing: border-box; }
body { margin: 0; }
.trip-discovery { width: min(1216px,calc(100% - 32px)); margin: 56px auto 40px; }
.trip-discovery-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 24px; }
.trip-discovery-heading > div { max-width: 700px; min-width: 0; }
.trip-discovery-heading h2 { font-size: clamp(24px,2.3vw,30px); line-height: 1.25; letter-spacing: -.025em; margin: 8px 0 10px; }
.trip-discovery-heading p { color: var(--muted); font-size: 15px; line-height: 1.6; margin: 0; }
.trip-discovery-heading .discovery-kicker { font-size: 11px; font-weight: 750; letter-spacing: .1em; color: var(--green); }
.discovery-catalog { display: inline-flex; justify-content: center; align-items: center; gap: 16px; max-width: 100%; min-width: 0; min-height: 44px; padding: 12px 16px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); color: var(--green-dark); font-size: 14px; font-weight: 650; text-decoration: none; }
.discovery-catalog:hover { background: var(--soft); }
.featured-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.featured-card { display: grid; grid-template-columns: 170px minmax(0,1fr); min-height: 214px; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: var(--paper); color: var(--ink); text-decoration: none; transition: border-color .15s,box-shadow .15s; }
.featured-card:hover { border-color: #91b3a4; box-shadow: 0 6px 20px #173e2810; }
.featured-visual { position: relative; min-height: 180px; background: var(--soft); }
.featured-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.featured-body { display: flex; flex-direction: column; align-items: start; gap: 8px; min-width: 0; padding: 22px; }
.featured-region { font-size: 11px; font-weight: 650; line-height: 1.5; color: var(--green-dark); }
.featured-body h3 { margin: 0; font-size: 20px; line-height: 1.3; letter-spacing: -.02em; }
.featured-body p { margin: 0; font-size: 14px; line-height: 1.6; color: var(--muted); }
.featured-action { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; margin-top: auto; padding-top: 8px; font-size: 13px; font-weight: 650; line-height: 1.5; color: var(--green); }
.discovery-credits { margin-top: 12px; color: var(--muted); font-size: 12px; line-height: 1.7; }
.discovery-credits summary { width: fit-content; min-height: 44px; padding: 12px 4px; cursor: pointer; }
.discovery-credits ul { padding-left: 20px; margin: 4px 0; }
.discovery-credits li + li { margin-top: 8px; }
.discovery-credits a { color: var(--green-dark); text-underline-offset: 3px; overflow-wrap: anywhere; }
.discovery-credits p { margin: 8px 0; }
@media(max-width:1050px) { .trip-discovery-heading { flex-wrap: wrap; gap: 16px; }.featured-card { grid-template-columns: 30% minmax(0,1fr); }.featured-body { padding: 18px; } }
@media(max-width:760px) { .trip-discovery { margin-top: 36px; }.trip-discovery-heading { margin-bottom: 20px; }.featured-grid { grid-template-columns: minmax(0,1fr); gap: 14px; }.featured-card { min-height: 200px; grid-template-columns: 32% minmax(0,1fr); }.featured-body { padding: 18px 16px; }.featured-body h3 { font-size: 18px; } }
@media(prefers-reduced-motion:reduce) { .featured-card { transition: none; } }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { touch-action: manipulation; }
button {
  cursor: pointer;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--paper);
  color: var(--ink);
  padding: 10px 12px;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.4;
  transition: background .15s, box-shadow .15s;
}
button:hover { background: var(--soft); }
button:disabled { cursor: wait; opacity: .6; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
a { color: var(--green); }
[hidden] { display: none !important; }
h1 { margin: 0 0 16px; font-size: 23px; line-height: 1.25; letter-spacing: -.6px; }
h2 { margin: 0; font-size: 19px; line-height: 1.4; letter-spacing: -.4px; }
h3 { margin: 0; font-size: 16px; line-height: 1.5; }
.full { width: 100%; }
.primary { background: var(--green); color: white; border-color: var(--green); min-height: 48px; }
.primary:hover { background: var(--green-dark); }
.secondary { background: var(--soft); border-color: transparent; }
.quiet { background: none; border-color: transparent; }
.text-button { background: none; border: 0; color: var(--green); padding: 8px; }
.hint, .coverage-note { font-size: 12px; line-height: 1.6; color: var(--muted); font-weight: 400; }
.coverage-note { margin: 16px 0 0; }
.status { font-size: 13px; line-height: 1.6; margin: 12px 0 0; color: var(--green); }
.status:empty { margin: 0; }
.status.error, .hint.error { color: #a22e25; }
.undo-banner { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 14px; margin: 0 0 16px; border: 1px solid #92b8a3; border-radius: var(--card-radius); background: var(--soft); }
.undo-banner > div { flex: 1 1 200px; min-width: 0; overflow-wrap: anywhere; }
.undo-banner p { margin: 0; font-size: 14px; line-height: 1.6; }
.undo-banner .hint { margin-top: 4px; }
.undo-banner button { font-size: 14px; background: var(--paper); }
.eyebrow { font-size: 11px; font-weight: 750; letter-spacing: 1.3px; color: var(--green); }
.topbar { height: var(--header-height); padding: 12px 28px; display: flex; align-items: center; gap: 28px; border-bottom: 1px solid var(--line); background: var(--paper); }
.brand { font-size: 23px; font-weight: 800; text-decoration: none; display: flex; align-items: center; gap: 10px; letter-spacing: -.6px; color: var(--ink); }
.brand-mark { background: var(--green); color: white; border-radius: var(--radius); width: 40px; height: 40px; display: grid; place-items: center; font-size: 29px; }
.brand-image { display: block; width: 174px; height: auto; }
.header-note { color: var(--muted); font-size: 14px; }
.topbar > button { margin-left: auto; }
/* Both modes share one workspace and the same component styles. */
.workspace { display: grid; grid-template-columns: var(--panel-width) minmax(0, 1fr); grid-template-areas: "panel map"; height: calc(100dvh - var(--header-height)); overflow: hidden; }
#advanced-panel { grid-area: panel; min-width: 0; overflow-y: auto; overscroll-behavior: contain; border-right: 1px solid var(--line); background: var(--paper); }
.controls { min-width: 0; min-height: 100%; padding: 20px; background: var(--paper); }
.mode-switch, .advanced-tabs { display: grid; gap: 4px; background: var(--canvas); border-radius: var(--radius); padding: 4px; margin-bottom: 16px; }
.mode-switch { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.advanced-tabs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mode-switch button, .advanced-tabs button { border: 0; background: transparent; padding: 10px 5px; min-height: 44px; }
.advanced-tabs button { font-size: 12px; }
.mode-switch button[aria-pressed="true"], .advanced-tabs button[aria-selected="true"] { background: var(--paper); color: var(--green-dark); box-shadow: var(--shadow); }
.advanced-overview { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 14px; background: var(--soft); border: 1px solid var(--line); border-radius: var(--card-radius); margin-bottom: 16px; }
.advanced-overview > div:first-child { min-width: 0; flex: 1; }
.advanced-overview h2 { font-size: 17px; overflow-wrap: anywhere; }
.advanced-overview p { font-size: 12px; line-height: 1.6; margin: 4px 0 0; color: var(--muted); }
#advanced-actions { flex-basis: 100%; min-width: 0; }
.result-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
#advanced-actions .result-actions { margin: 4px 0 0; flex-wrap: nowrap; }
#advanced-actions button { flex: 1; min-width: 0; font-size: 12px; padding: 8px; background: var(--paper); }
.field { display: flex; flex-direction: column; gap: 8px; margin: 16px 0; font-size: 13px; font-weight: 650; }
.field input, .field select, .field textarea, .day-select { min-height: 48px; max-width: 100%; width: 100%; border: 1px solid var(--line); border-radius: var(--radius); padding: 12px; background: var(--paper); color: var(--ink); font-size: 16px; }
.field input::placeholder { color: #7d8a83; }
.anchor-row { position: relative; }
.anchor-row label { margin: 12px 0; }
.anchor-line { display: flex; gap: 8px; align-items: center; }
.anchor-line input { flex: 1; min-width: 0; }
.anchor-line .quiet { flex: none; }
.suggestions { margin: 0; padding: 6px; list-style: none; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 8px 24px #173e2812; background: var(--paper); }
.suggestions button { display: block; text-align: left; width: 100%; border: 0; margin: 2px 0; font-weight: 500; }
.suggestions small { display: block; color: var(--muted); margin-top: 4px; }
.point-tools { display: flex; gap: 8px; justify-content: space-between; }
.category-fieldset { border: 0; padding: 0; margin: 16px 0; min-width: 0; }
.category-fieldset legend { font-size: 13px; font-weight: 650; margin-bottom: 8px; }
.category-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.category-chip { display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 10px; border: 1px solid var(--line); border-radius: var(--radius); font-size: 13px; font-weight: 650; cursor: pointer; }
.category-chip:has(input:checked) { background: var(--soft); border-color: #92b8a3; color: var(--green-dark); }
.category-chip input { accent-color: var(--green); width: 17px; height: 17px; flex-shrink: 0; }
#build-trip { margin-top: 12px; }
.results { min-width: 0; margin-top: 16px; }
.empty-result { padding: 16px 0; }
.empty-result h2 { margin-top: 8px; }
.empty-result p { font-size: 14px; color: var(--muted); line-height: 1.6; }
.day-card { background: var(--paper); border: 1px solid var(--line); border-radius: var(--card-radius); margin-bottom: 12px; overflow: hidden; }
.day-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 14px; background: #f6f9f6; border-bottom: 1px solid var(--line); }
.day-head small { color: var(--muted); font-size: 12px; }
.stop { padding: 14px; border-bottom: 1px solid var(--line); }
.stop:last-child { border: 0; }
.stop-title { display: flex; gap: 8px; justify-content: space-between; align-items: start; }
.stop-title h3 { overflow-wrap: anywhere; }
.stop-meta { font-size: 12px; color: var(--muted); margin: 4px 0 8px; line-height: 1.6; }
.stop-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.stop-actions button { font-size: 12px; padding: 8px; }
.stop-actions select { font-size: 16px; padding: 8px; border-radius: var(--radius); max-width: 155px; min-height: 44px; border: 1px solid var(--line); background: var(--paper); color: var(--ink); }
.stop-actions .priority-select { width: 215px; max-width: 100%; }
.tag { font-size: 11px; background: var(--soft); border-radius: 6px; padding: 4px 6px; color: var(--green); white-space: nowrap; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 16px 0 12px; }
.section-heading h2 { font-size: 18px; }
.route-day-filter { margin-top: 0; }
.place-view-actions { display: flex; gap: 8px; margin: 12px 0; }
.place-view-actions button { font-size: 12px; flex: 1; min-width: 0; }
.place-counts { border: 1px solid var(--line); padding: 0 12px; border-radius: var(--radius); margin: 12px 0; }
.place-counts summary { cursor: pointer; min-height: 48px; display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 650; }
.place-counts summary::before { content: '+'; font-size: 19px; font-weight: 500; color: var(--green); }
.place-counts[open] summary::before { content: '−'; }
.category-setting { padding: 12px 0; border-bottom: 1px solid var(--line); }
.category-setting:last-child { border: 0; }
.category-setting strong { font-size: 13px; }
.weather-panel { border: 1px solid var(--line); border-radius: var(--card-radius); padding: 16px; }
.weather-result { padding: 14px; background: var(--soft); border-radius: var(--radius); margin-top: 12px; font-size: 13px; line-height: 1.6; }
.weather-result p { margin: 4px 0; }
.map-wrap { grid-area: map; min-width: 0; height: 100%; min-height: 0; position: relative; overflow: hidden; background: #e6ece1; }
#trip-map { height: 100%; width: 100%; z-index: 1; }
.mobile-map-toolbar { padding: max(12px, env(safe-area-inset-top)) 12px 12px; background: var(--paper); border-bottom: 1px solid var(--line); }
.mobile-map-toolbar p { margin: 8px 0 0; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.map-caption { position: absolute; bottom: 24px; left: 24px; right: 24px; display: flex; gap: 8px; align-items: center; padding: 10px 12px; background: #fffffff2; border: 1px solid var(--line); border-radius: var(--card-radius); z-index: 500; font-size: 12px; box-shadow: 0 4px 20px #173e2810; }
.map-caption .quiet { margin-left: auto; }
.map-dot { background: var(--green); border-radius: 50%; width: 8px; height: 8px; flex-shrink: 0; }
.map-pin { border: 3px solid white; border-radius: 50%; background: var(--green); color: white; width: 32px; height: 32px; text-align: center; line-height: 26px; font-size: 12px; font-weight: 800; box-shadow: 0 2px 6px #0003; }
.map-pin.candidate { background: #ad6f19; }
.map-place-popup button { margin-top: 8px; width: 100%; }
#map-unavailable { position: absolute; top: 30%; left: 10%; right: 10%; z-index: 2; background: var(--paper); padding: 20px; border-radius: var(--radius); font-size: 14px; }
.dialog-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; position: sticky; top: 0; background: var(--paper); padding-bottom: 12px; z-index: 2; }
dialog { width: min(680px, calc(100vw - 24px)); max-height: 85dvh; overflow: auto; border: 1px solid var(--line); border-radius: var(--card-radius); padding: 20px; color: var(--ink); background: var(--paper); box-shadow: 0 20px 80px #10282030; }
dialog::backdrop { background: #132e2566; }
dialog > p { font-size: 13px; line-height: 1.6; }
dialog .stop { padding: 14px 0; }
#places-dialog { position: fixed; left: calc(var(--panel-width) + 16px); right: auto; top: calc(var(--header-height) + 16px); margin: 0; width: min(390px, calc(100vw - var(--panel-width) - 32px)); max-height: calc(100dvh - var(--header-height) - 48px); z-index: 1000; border: 2px solid var(--green); }
.library-section { margin: 20px 0 8px; font-size: 16px; }
.library-entry { padding: 14px 0; border-bottom: 1px solid var(--line); }
.library-entry p { font-size: 12px; color: var(--muted); }
.comparison-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.comparison-table td, .comparison-table th { padding: 12px 8px; text-align: left; border-bottom: 1px solid var(--line); }
.comparison-wrapper { overflow: auto; }
#notice { position: fixed; bottom: max(24px, env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); max-width: calc(100vw - 30px); background: var(--ink); color: white; border-radius: var(--card-radius); padding: 14px 20px; z-index: 2000; font-size: 13px; box-shadow: 0 4px 20px #0002; }
.skip-link { position: fixed; left: 15px; top: 0; transform: translateY(-200%); max-width: calc(100vw - 30px); z-index: 3000; padding: 15px; background: var(--paper); }
.skip-link:focus { top: 10px; transform: none; }
.loading-label { display: inline-block; border: 2px solid #ffffff70; border-top-color: white; border-radius: 50%; width: 14px; height: 14px; animation: spin 1s linear infinite; margin-right: 8px; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (min-width: 851px) and (max-width: 1150px) {
  :root { --panel-width: 410px; }
}
@media (max-width: 850px) {
  :root { --header-height: 70px; }
  .header-note { display: none; }
  .topbar { padding: 12px 16px; gap: 12px; }
  .topbar .brand { font-size: 21px; }
  .brand-image { width: 148px; }
  .topbar > button { font-size: 12px; padding: 8px; }
  .workspace { height: auto; min-height: calc(100dvh - var(--header-height)); grid-template-columns: minmax(0, 1fr); grid-template-areas: "map" "panel"; overflow: visible; }
  .map-wrap { height: 35dvh; min-height: 240px; position: sticky; top: 0; z-index: 1; }
  body[data-map-view="open"] { overflow: hidden; }
  body[data-map-view="open"] .map-wrap { position: fixed; inset: 0; z-index: 900; height: 100dvh; min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); }
  body[data-map-view="open"] .map-caption { bottom: max(24px, env(safe-area-inset-bottom)); }
  #advanced-panel { height: auto; overflow: visible; border-right: 0; border-top: 1px solid var(--line); z-index: 2; position: relative; border-radius: 18px 18px 0 0; }
  .controls { padding: 18px 14px; border-radius: 18px 18px 0 0; }
  h1 { font-size: 21px; }
  .map-caption { left: 12px; right: 12px; bottom: 24px; padding: 8px; }
  .map-caption > span:nth-child(2) { max-width: 65%; overflow-wrap: anywhere; }
  .map-caption .quiet { font-size: 12px; padding: 8px; }
  #places-dialog { left: 12px; right: 12px; top: auto; bottom: 12px; max-height: 55dvh; width: calc(100vw - 24px); }
  dialog { padding: 18px; }
  .comparison-table { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
/* Planner typography and reflow are scoped: the approved landing keeps its layout. */
.planner-page { font-size: 16px; line-height: 1.5; height: 100dvh; display: flex; flex-direction: column; -webkit-tap-highlight-color: #087a6526; }
.planner-page .topbar { height: auto; min-height: var(--header-height); flex-shrink: 0; flex-wrap: wrap; }
.planner-page .topbar > button { min-width: 0; max-width: 100%; }
.planner-page .brand { flex-shrink: 0; }
.planner-page .workspace { flex: 1; min-height: 0; height: auto; }
@media(min-width:851px) {
  .planner-page { height: auto; min-height: 100dvh; }
  .planner-page .workspace { flex: none; height: calc(100dvh - var(--actual-header-height, var(--header-height))); }
}
.planner-page :is(button,.hint,.coverage-note,.field,.category-chip,.category-fieldset legend,.advanced-tabs button,.advanced-overview p,#advanced-actions button,.stop-meta,.stop-actions button,.day-head small,.tag,.place-view-actions button,.place-counts summary,.category-setting strong,.weather-result,dialog > p,.library-entry p,.comparison-table,.map-caption,.map-caption .quiet) { font-size: 14px; }
.planner-page :is(h1,h2,h3,p,label,button,summary,td,th) { overflow-wrap: anywhere; }
.planner-page button { max-width: 100%; }
.planner-page .advanced-overview h2 { font-size: 18px; }
.planner-page .advanced-overview > div:first-child { flex: 1 1 220px; min-width: min(100%,220px); }
.planner-page .advanced-overview > #edit-route { flex: 0 1 auto; }
.planner-page .tag { white-space: normal; }
.planner-page .point-tools { flex-wrap: wrap; }
.planner-page .point-tools > button { flex: 1 1 9em; min-width: 0; }
.planner-page .mode-switch { grid-template-columns: repeat(auto-fit,minmax(min(100%,9em),1fr)); }
.planner-page .advanced-tabs { grid-template-columns: repeat(auto-fit,minmax(min(100%,6em),1fr)); }
.planner-page .category-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,10em),1fr)); }
.planner-page .category-chip { min-width: 0; }
.planner-page :is(.day-head,.stop-title,.dialog-head,.section-heading) { flex-wrap: wrap; }
.planner-page .stop-title h3 { flex: 1 1 160px; min-width: 0; }
.planner-page #advanced-actions .result-actions { flex-wrap: wrap; }
.planner-page #advanced-actions button { flex: 1 1 120px; min-width: min(100%,9em); }
.planner-page .stop-actions select { flex: 1 1 9em; max-width: 100%; min-width: 0; }
.planner-page .stop-actions { align-items: center; }
.planner-page .stop-actions .priority-select { flex-basis: 100%; width: 100%; }
.planner-page .stop-actions .field { flex: 1 1 160px; margin: 4px 0; }
.planner-page #advanced-actions .result-actions > .hint { flex-basis: 100%; margin: 0; }
.planner-page .map-caption { flex-wrap: wrap; }
.planner-page .map-caption > span:nth-child(2) { flex: 1 1 120px; min-width: 0; max-width: none; }
.planner-page .map-caption button { margin-left: 0; }
.settings-notice { border: 1px solid #b87513; border-radius: var(--card-radius); background: #fff9ed; padding: 14px; margin-bottom: 16px; }
.settings-notice p { margin: 0 0 10px; font-size: 14px; }
.place-number { display: inline-grid; place-items: center; background: var(--green); color: white; min-width: 28px; min-height: 28px; padding: 2px 6px; margin-right: 6px; border-radius: 50%; font-size: 14px; }
.place-detail { margin: 8px 0; font-size: 14px; line-height: 1.6; }
.manual-warning { margin: 8px 0; padding: 10px; border-radius: 8px; background: #fff4dd; font-size: 14px; }
.day-summary { padding: 12px 14px; border-bottom: 1px solid var(--line); font-size: 14px; }
.day-summary p { margin: 0 0 6px; }
.plan-explanation { font-size: 14px; margin: 0 0 14px; color: var(--muted); }
.comparison-difference { display: block; margin-bottom: 6px; border-left: 3px solid var(--green); padding-left: 8px; }
.comparison-table td { min-width: 190px; vertical-align: top; }
.comparison-table th { vertical-align: top; }
.comparison-table th:first-child { min-width: 140px; }
@media (min-width: 851px) {
  .planner-page #places-dialog { top: calc(var(--actual-header-height, var(--header-height)) + 16px); max-height: calc(100dvh - var(--actual-header-height, var(--header-height)) - 48px); }
}
@media (max-width: 850px) {
  .planner-page { height: auto; min-height: 100dvh; }
  .planner-page .workspace { flex: none; min-height: 0; }
  .planner-page .topbar > button { flex: 1 1 140px; }
  .planner-page[data-plan-ready="true"]:not([data-map-view="open"]) .map-wrap { height: 160px; min-height: 160px; position: relative; }
  .planner-page:not([data-plan-ready="true"]):not([data-map-view="open"]) .map-wrap { display: none; }
}
.mobile-comparison { display: none; }
.comparison-metric { padding: 16px 0; border-top: 1px solid var(--line); }
.comparison-metric h3 { margin-bottom: 12px; }
.comparison-value { padding: 12px; margin: 8px 0; background: var(--soft); border-radius: 10px; }
.comparison-value p { margin: 5px 0; }
.weather-point { padding: 12px 0; border-bottom: 1px solid var(--line); }
.weather-point:last-child { border-bottom: 0; }
.weather-point > strong,.weather-point > small { display: block; }
.map-group { width: 44px; height: 44px; border-radius: 50%; display: flex; flex-direction: column; justify-content: center; align-items: center; background: var(--green-dark); color: white; border: 3px solid white; box-shadow: 0 2px 8px #203c3640; font: 750 16px/1 system-ui,sans-serif; }
.map-group small { font-size: 10px; margin-top: 2px; }
.leaflet-marker-icon:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; border-radius: 50%; }
.map-group.candidate { background: #a66a14; }
.map-group-popup { min-width: 160px; }
.map-group-popup > strong { display: block; margin-bottom: 8px; }
.map-group-popup button { display: block; width: 100%; text-align: left; margin: 6px 0; font-size: 14px; min-height: 44px; }
.place-information { margin: 10px 0; color: var(--muted); font-size: 14px; }
.place-information summary { min-height: 44px; padding: 10px 0; cursor: pointer; color: var(--green-dark); font-weight: 650; }
.place-coordinates { user-select: all; font-variant-numeric: tabular-nums; }
.day-jump { position: sticky; top: 0; z-index: 4; background: var(--paper); padding: 8px 0; margin: 0 0 12px; border-bottom: 1px solid var(--line); }
.day-jump .field { margin: 0; }
.day-card { scroll-margin-top: 0; }
.day-head h3:focus { outline: 3px solid var(--focus); outline-offset: 4px; }
@media (max-width: 650px) {
  .comparison-table { display: none; }
  .mobile-comparison { display: block; }
}
