:root {
  --ink: #203e36;
  --muted: #53645a;
  --green: #216449;
  --cream: #f5f7f4;
  --line: #dce3dc;
  --soft: #e8eee7;
  color-scheme: light;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Noto Sans JP', sans-serif;
  color: var(--ink);
  background: var(--cream);
}
* { box-sizing: border-box; }
body { margin: 0; font-size: 16px; line-height: 1.7; }
[hidden] { display: none !important; }
button, input, select, textarea { font: inherit; color: inherit; }
button, select, input:not([type=checkbox]):not([type=range]), .fileButton { min-height: 48px; }
button, .fileButton { border: 1px solid var(--line); border-radius: 12px; background: #fff; padding: 10px 16px; cursor: pointer; font-weight: 600; }
button:hover:not(:disabled), .fileButton:hover { background: var(--soft); }
button:disabled { opacity: .48; cursor: default; }
:focus-visible { outline: 3px solid #145dce; outline-offset: 3px; }
a { color: var(--green); text-underline-offset: 3px; }
input, select, textarea { border: 1px solid #a8b5aa; border-radius: 10px; padding: 10px 12px; background: #fff; max-width: 100%; }
input[type=checkbox] { width: 22px; height: 22px; accent-color: var(--green); flex-shrink: 0; }
input[type=range] { accent-color: var(--green); min-height: 48px; }
h1, h2, h3, p { margin-top: 0; }
h1 { font-size: 25px; line-height: 1.5; letter-spacing: -.04em; margin-bottom: 8px; }
h2 { font-size: 19px; line-height: 1.5; margin-bottom: 16px; }
h3 { font-size: 16px; }
.skipLink { position: fixed; top: -80px; left: 16px; z-index: 5000; background: #fff; padding: 12px; }
.skipLink:focus { top: 8px; }
.appHeader { height: 64px; padding: 0 28px; display: flex; align-items: center; gap: 24px; border-bottom: 1px solid var(--line); background: #fff; }
.brand { display: flex; gap: 10px; align-items: center; font-weight: 700; font-size: 21px; color: var(--ink); text-decoration: none; }
.brandIcon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 12px; background: var(--green); color: white; font-size: 20px; }
.mainNav { display: flex; gap: 6px; margin-left: auto; }
.mainNav button { border: 0; background: transparent; min-width: 72px; }
.mainNav button[aria-current] { background: var(--soft); color: #13492f; }
.iconText { background: transparent; }
.appLayout { display: grid; grid-template-columns: 360px minmax(0, 1fr); height: calc(100dvh - 64px); }
.planPanel { overflow-y: auto; padding: 20px 24px 32px; background: #fff; border-right: 1px solid var(--line); }
.eyebrow { font-size: 14px; color: var(--green); font-weight: 700; margin-bottom: 8px; }
.intro { color: var(--muted); font-size: 14px; margin-bottom: 24px; }
.timeField { display: flex; align-items: center; justify-content: space-between; margin-top: 24px; }
.timeField label { font-weight: 600; }
.timeField > div { display: flex; align-items: center; gap: 8px; }
.timeField input { width: 100px; font-size: 26px; font-weight: 700; text-align: right; }
.quickTimes { display: flex; gap: 8px; margin: 12px 0 24px; }
.quickTimes button { flex: 1; padding: 8px; }
.quickTimes button[aria-pressed=true] { border-color: var(--green); color: var(--green); background: #edf4ed; }
fieldset { margin: 20px 0; border: 0; padding: 0; }
legend { margin-bottom: 10px; font-weight: 600; }
.tabs { display: flex; gap: 4px; background: var(--cream); padding: 4px; border-radius: 14px; }
.tabs button { flex: 1; background: transparent; border-color: transparent; padding: 8px; font-size: 14px; }
.tabs button.active { background: #fff; border-color: #9bad9d; color: #174d33; box-shadow: 0 1px 3px #203e3610; }
.planSummary { margin: 24px 0 12px; padding: 22px; background: var(--cream); border-radius: 18px; }
#planSummaryLabel { color: var(--muted); font-size: 14px; }
#planDistance { display: block; font-size: 44px; line-height: 1.5; letter-spacing: -.04em; }
#planDistance span { font-size: 20px; margin-left: 6px; }
#planRadius { margin: 0 0 6px; font-size: 14px; }
.sourceHint { font-size: 14px; color: var(--muted); margin: 0; }
.mapCaveat { font-size: 14px; color: var(--muted); margin-bottom: 20px; }
.primary { color: #fff; background: var(--green); border-color: var(--green); }
.primary:hover:not(:disabled) { background: #164d36; }
.primaryStart { width: 100%; min-height: 56px; font-size: 17px; display: flex; justify-content: space-between; align-items: center; }
.full { width: 100%; margin: 8px 0; }
.statusText { font-size: 14px; color: var(--muted); margin: 12px 0 20px; }
.fine { font-size: 14px; line-height: 1.75; color: var(--muted); }
.advanced { border-top: 1px solid var(--line); margin-top: 24px; padding-top: 4px; }
summary { cursor: pointer; min-height: 48px; padding: 12px 0; font-weight: 600; }
.detailContent { padding: 12px 0 16px; }
.detailContent > input, .detailContent > select { width: 100%; }
.selectLabel { display: block; font-size: 14px; font-weight: 600; margin: 18px 0 8px; }
.selectLabel input, .selectLabel select, .selectLabel textarea { display: block; width: 100%; margin-top: 8px; }
select { width: 100%; }
.toggle, .layerCheck { display: flex; align-items: center; gap: 12px; min-height: 48px; font-size: 14px; margin: 12px 0; }
.budgetInput { display: flex; gap: 10px; align-items: center; margin-top: 16px; }
.budgetInput input { min-width: 0; width: 160px; }
.textButton { background: transparent; color: var(--green); }
.mapArea { position: relative; min-width: 0; min-height: 400px; }
#map { width: 100%; height: 100%; min-height: 400px; background: #e8eee7; }
.mapToolbar { position: absolute; z-index: 600; top: 20px; right: 20px; display: flex; gap: 8px; }
.mapToolbar button { box-shadow: 0 2px 10px #203e3618; }
.mapHint { position: absolute; z-index: 600; bottom: 24px; left: 24px; max-width: min(500px, calc(100% - 48px)); background: #fffffff5; border: 1px solid var(--line); border-radius: 12px; padding: 10px 16px; color: var(--muted); font-size: 14px; box-shadow: 0 2px 12px #203e3610; }
.leaflet-control-zoom a { min-width: 44px; min-height: 44px; line-height: 44px !important; }
.leaflet-control-attribution { font-size: 11px; }
.metricLabel { font-size: 14px; color: var(--muted); }
#workoutLive { margin: 32px 0 24px; }
#workoutCountdown { display: block; font-size: 54px; line-height: 1.4; font-variant-numeric: tabular-nums; }
.walkingMetrics { font-size: 17px; margin-top: 16px; }
.stopButton { background: #903c32; border-color: #903c32; color: #fff; width: 100%; margin: 12px 0; min-height: 56px; }
.historyCount { color: var(--muted); }
#resultSummary { background: var(--soft); padding: 20px; border-radius: 16px; margin: 24px 0; }
#resultSummary h2 { margin-bottom: 8px; }
#resultSummary p { margin: 0; }
.workoutItem, .noteItem, .discoveryItem { border-top: 1px solid var(--line); padding: 20px 0; font-size: 14px; }
.workoutItem dl { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px; }
.workoutItem dt { color: var(--muted); }
.workoutItem dd { margin: 0; text-align: right; }
.workoutItem button { margin: 6px 4px 0 0; font-size: 14px; }
.stats { display: flex; gap: 24px; }
.stats b, .stats span { display: block; }
.stats b { font-size: 30px; }
.stats span { font-size: 14px; color: var(--muted); }
dialog { border: 1px solid var(--line); border-radius: 20px; padding: 28px; width: min(620px, calc(100% - 32px)); max-height: calc(100dvh - 48px); overflow-y: auto; color: var(--ink); box-shadow: 0 20px 80px #183c3630; }
dialog::backdrop { background: #162a2466; }
.sheetHeading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.sheetHeading h2 { font-size: 24px; margin: 0; }
.close { float: right; margin: 0 0 16px 16px; }
.card { margin: 20px 0; padding: 20px 0; border-top: 1px solid var(--line); }
.sectionTop { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.sectionTop h2 { margin: 0; }
.pill { display: inline-block; font-size: 13px; background: var(--soft); padding: 4px 10px; border-radius: 20px; white-space: nowrap; }
.sliderLabel { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; font-size: 14px; }
.sliderLabel input { flex: 1; min-width: 100px; }
.settings { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 20px; }
.settings label { font-size: 14px; font-weight: 600; }
.settings input { width: 100%; margin-top: 8px; }
.tools, .actions, .mapUtility { display: flex; gap: 10px; flex-wrap: wrap; margin: 16px 0; }
.tools > *, .actions > * { flex: 1; min-width: 140px; text-align: center; font-size: 14px; }
.fileButton { display: inline-flex; align-items: center; justify-content: center; }
.fileButton { position: relative; }
.fileButton input { position: absolute; width: 1px; height: 1px; min-height: 1px !important; padding: 0; opacity: 0; }
.fileButton:focus-within { outline: 3px solid #145dce; outline-offset: 3px; }
.danger { color: #943a30; margin-top: 12px; }
.nearbyLinks a { display: inline-flex; align-items: center; min-height: 48px; margin-right: 12px; }
.placeInfo { position: absolute; z-index: 650; top: 88px; right: 20px; width: min(360px, calc(100% - 40px)); padding: 20px; background: white; border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 8px 30px #203e3620; max-height: calc(100% - 180px); overflow-y: auto; }
#placeInfoClose { float: right; }
.placeInfo small { font-size: 13px; display: block; margin-bottom: 12px; }
.treasureToast { position: absolute; z-index: 700; top: 90px; left: 50%; transform: translateX(-50%); padding: 16px 24px; border-radius: 16px; background: white; box-shadow: 0 6px 24px #203e3620; }
.notePin span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #216449; color: white; border: 2px solid white; box-shadow: 0 2px 5px #0003; }
.notePhoto, .noteItem img, #sharePreview img, .leaflet-popup-content img { display: block; max-width: 100%; border-radius: 10px; }
.notePopup { font-family: 'Noto Sans JP', sans-serif; font-size: 14px; }
.notePopup button { margin: 8px 4px 0 0; }
.srOnly { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 760px) {
  .appHeader { height: 68px; padding: 0 16px; gap: 8px; }
  .brand { font-size: 18px; gap: 7px; }
  .brandIcon { width: 32px; height: 32px; }
  .mainNav { gap: 0; }
  .mainNav button { min-width: 54px; padding: 8px 10px; }
  .iconText { padding: 8px 10px; }
  .appLayout { display: flex; flex-direction: column; height: auto; }
  .planPanel { padding: 24px 20px; overflow: visible; border-right: 0; border-bottom: 1px solid var(--line); }
  h1 { font-size: 24px; }
  .intro { margin-bottom: 16px; }
  .timeField { margin-top: 16px; }
  .quickTimes { margin-bottom: 16px; }
  .tripChoice { margin: 16px 0; }
  .planSummary { margin-top: 18px; padding: 16px 20px; }
  #planDistance { font-size: 40px; }
  .mapArea { height: 440px; height: min(60dvh, 520px); min-height: 360px; }
  #map { min-height: 360px; }
  .mapToolbar { top: 16px; right: 16px; }
  .mapToolbar button { padding: 10px 12px; }
  .mapHint { bottom: 24px; left: 16px; max-width: calc(100% - 32px); }
  dialog { padding: 24px 20px; width: calc(100% - 20px); max-height: calc(100dvh - 24px); }
  .settings { gap: 12px; }
  .isWalking { padding-top: 24px; }
  #workoutLive { margin: 20px 0; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* Keep the complete initial task visible on a 720px-tall desktop. */
#walkView > .eyebrow, #walkView > .intro { display: none; }
#planTitle { font-size: 22px; margin-bottom: 12px; }
#walkView .timeField { margin-top: 0; }
#walkView .timeField input { min-height: 48px; height: 48px; font-size: 24px; padding: 6px 12px; }
#walkView .quickTimes { margin: 8px 0 12px; }
#walkView .tripChoice { margin: 0 0 12px; }
.tripChoice legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
#walkView .planSummary { display: grid; grid-template-columns: 1fr auto; align-items: center; column-gap: 8px; padding: 14px 16px; margin: 0 0 10px; }
#planDistance { font-size: 36px; line-height: 1.3; white-space: nowrap; }
#planDistance span { font-size: 18px; }
#planRadius, #planPaceSource { grid-column: 1 / -1; }
#planRadius { margin: 4px 0 2px; line-height: 1.5; }
#planPaceSource { line-height: 1.5; }
#walkView .mapCaveat { margin: 0 0 12px; line-height: 1.5; }
#walkView > .statusText { margin: 10px 0 12px; }
#walkView > .advanced { margin-top: 12px; }
.fogCanvas { position: absolute; inset: 0; z-index: 450; pointer-events: none; }
.treasure { font-size: 28px; line-height: 28px; color: #925b12; text-shadow: 0 1px 3px white; }
@media (max-width: 760px) {
  #walkView .planSummary { padding: 14px 16px; }
  #planTitle { font-size: 22px; }
}
/* Keep secondary controls focused on the selected layer. */
.layerCheck:has(input:not(:checked)) + .sliderLabel { display: none; }
.sheetHeading { position: sticky; top: -28px; z-index: 2; padding: 12px 0; background: #fff; }
.routeCandidate { display: block; width: 100%; margin: 8px 0; text-align: left; }
.routeCandidate[aria-pressed=true] { border-color: var(--green); background: var(--soft); }
@media (max-width:760px) { .sheetHeading { top: -24px; } }
/* Budgets are the first choice, with one authoritative amount field. */
.budgetModes { margin: 16px 0 10px; }
.budgetModes button { font-size:14px; padding:8px 3px; min-width:0; }
.budgetModes button.active { border-color:#216449; box-shadow:inset 0 0 0 1px #216449; }
#budget { width:120px; font-size:26px; font-weight:700; text-align:right; }
#quickBudgets { display:none; }
#walkView .timeField { margin-top:12px; }
#walkView .planSummary { margin-top:12px; margin-bottom:6px; }
.planConversions { margin:6px 0; font-size:14px; }
#estimateNote { margin-bottom:6px; }
.locationRow { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:14px; border-top:1px solid var(--line); margin:8px 0; padding:4px 0; }
.locationRow button { flex-shrink:0; padding:8px; font-size:14px; }
#recordingRule { margin:6px 0 10px; }
.inputError { font-size:14px; color:#92372d; margin:8px 0; }
.recoveryCard { padding:14px; background:#fff2e9; border:1px solid #c69e83; border-radius:12px; font-size:14px; margin:10px 0; }
.recoveryCard p { margin-bottom:8px; }.recoveryCard button { margin:4px 4px 0 0; }
#comparisonDetails .tabs { margin-bottom:8px; }
#planPaceSource { display:none; }
@media(min-width:761px){.appLayout{grid-template-columns:380px minmax(0,1fr);}}
.budgetModes button { display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1.45; gap:4px; padding:7px 2px; }
.linkedValue { display:block; font-size:13px; font-weight:600; white-space:nowrap; }
.syncHint { margin:8px 0 4px; }
.linkedValue { font-size:14px; }
#budgetResult { display:none; }
.layerCard { border:1px solid var(--line); border-radius:14px; margin:14px 0; padding:14px; }
.layerHeader { display:flex; gap:12px; align-items:center; min-height:48px; cursor:pointer; }
.layerHeader b,.layerHeader small { display:block; }.layerHeader small { color:var(--muted); font-size:14px; }
.layerOptions { border-top:1px solid var(--line); padding-top:8px; margin-top:10px; }
.geologyLegend { max-height:270px; overflow:auto; font-size:14px; }.legendRow { display:flex; align-items:flex-start; gap:10px; margin:10px 0; }.legendSwatch { width:24px; height:24px; flex-shrink:0; border:1px solid #68776b; }
.layerLegendImage { width:100%; max-width:440px; }
.selectionPin span { display:grid; place-items:center; background:#78459a; color:white; border:3px solid white; border-radius:50%; width:32px; height:32px; box-shadow:0 2px 5px #0005; font-size:14px; font-weight:bold; }
.notePin span { background:#a35422; }.resourceLinks a { display:block; padding:12px 0; min-height:48px; }
.historicalRaster .leaflet-tile { background:transparent; }

/* Keep map actions and point details together. */
.headerTools{display:flex;gap:8px;align-items:center}
#fogToggle[aria-pressed=true]{background:#216449;color:#fff;border-color:#216449}
.originPin span{display:grid;place-items:center;width:30px;height:34px;background:#216449;color:white;border:2px solid white;border-radius:7px 7px 7px 0;font-size:25px;line-height:1;box-shadow:0 2px 6px #203e3655}
.pointMetadata{display:block;color:#53645a;font-size:12px;line-height:1.7;white-space:nowrap}
.pointActions{display:flex;gap:8px;margin-top:12px}
.pointActions button{flex:1;padding:8px;font-size:13px;white-space:nowrap}
.placePopup .pointRoute{display:block;width:100%;margin-top:8px;padding:6px 8px;font-size:13px;min-height:44px;background:#f5f7f4}
.leaflet-popup-content .pointRouteResult{font-size:12px;line-height:1.6;margin:8px 0 0}
.pointRouteResult:empty{display:none}
.mapToolbar{gap:6px}.mapToolbar button{font-size:14px}
#layerDetails{border-top:1px solid var(--line);margin-top:24px}
@media(max-width:760px){.appHeader{gap:6px;padding:0 10px}.headerTools{gap:4px}.brand{font-size:16px;gap:5px}.brandIcon{width:28px;height:28px}.mainNav button{min-width:44px;padding:8px}.headerTools button{font-size:14px;padding:8px}.mapToolbar{right:8px;top:10px;gap:4px}.mapToolbar button{font-size:13px;padding:8px;min-height:44px}.pointMetadata{white-space:normal}}
@media(max-width:360px){.brand{font-size:0}.brandIcon{font-size:18px}}

/* Record views show activity; maintenance lives in Settings. */
#recordTabs{margin:18px 0}.periodTabs{display:flex;justify-content:flex-end;gap:6px;margin:16px 0}.periodTabs button{min-height:40px;padding:6px 14px;font-size:14px}.periodTabs button[aria-pressed=true]{background:#e8eee7;border-color:#216449}
.dashboardMetrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0 28px}.dashboardMetrics div{background:#f5f7f4;border-radius:12px;padding:14px 8px;text-align:center}.dashboardMetrics strong{display:block;font-size:25px;line-height:1.4}.dashboardMetrics span{font-size:13px;color:#53645a}
.dailyRow,.dailyHeading{display:grid;grid-template-columns:46px minmax(72px,1fr) minmax(95px,1fr);gap:8px;align-items:center}.dailyHeading{font-size:12px;color:#53645a;padding-bottom:8px;border-bottom:1px solid #dce3dc}.dailyRow{padding:12px 0;border-bottom:1px solid #e8eee7;font-size:13px}.dailyRow time{color:#53645a}.dailyDistance b,.dailySteps b{font-size:13px}.dailySteps small{display:block;font-size:11px;color:#53645a}.dayBar{display:block;height:4px;background:#669480;border-radius:3px;margin-top:5px;min-width:0}.dailySteps{text-align:right}.recordExplanation{margin:16px 0}.recordExplanation summary{font-size:13px;color:#53645a}.visitedPlaces{margin-top:28px;padding-top:20px;border-top:1px solid #dce3dc}.visitedPlaces h2{margin-bottom:8px}.visitedPlaces p{font-size:14px}.visitedPlaces #cells{font-size:26px;color:#216449}.workoutItem h2{font-size:16px}.downloadApk{display:block;padding:12px;border:1px solid #216449;border-radius:10px;text-align:center;margin:12px 0}.mapToolbar{flex-wrap:wrap;max-width:calc(100% - 76px);justify-content:flex-end}.mapToolbar button{white-space:nowrap}#ringMapToggle[aria-pressed=true]{background:#e8eee7;border-color:#216449}

.appLayout.isHistory{display:block}.isHistory .planPanel{border-right:0;width:100%;height:100%;padding:28px}.isHistory .mapArea{display:none}#historyView{max-width:880px;margin:0 auto}.isHistory .dashboardMetrics strong{font-size:32px}.isHistory .dailyRow,.isHistory .dailyHeading{grid-template-columns:70px minmax(120px,1fr) minmax(120px,1fr);gap:24px}.isHistory .dailyRow{padding:14px 0}.isHistory .dailyDistance b,.isHistory .dailySteps b{font-size:15px}.isHistory .dayBar{max-width:100%}.isHistory .visitedPlaces{max-width:880px}
@media(max-width:760px){.isHistory .planPanel{padding:24px 20px}.isHistory .dailyRow,.isHistory .dailyHeading{grid-template-columns:44px minmax(80px,1fr) minmax(105px,1fr);gap:8px}.isHistory .dailyDistance b,.isHistory .dailySteps b{font-size:13px}.isHistory .dashboardMetrics strong{font-size:26px}}

/* Health controls stay inside settings; one reference or result per group. */
.healthSubsection { border-top:1px solid var(--line); padding-top:16px; margin-top:18px; }
.healthSubsection summary { font-weight:650; cursor:pointer; min-height:44px; }
.healthResult { background:var(--soft); border-radius:12px; padding:12px 14px; font-size:14px; line-height:1.8; }
.energyItem { margin:12px 0; padding:12px; border:1px solid var(--line); border-radius:12px; }
.energyItem p { margin:5px 0; }
.energyItem small { display:block; color:var(--muted); }
#energySource { width:100%; }
#energyRecords { max-height:300px; overflow:auto; overflow-wrap:anywhere; }
.healthConnectPanel { margin:28px 0 14px; }
.healthSetupSteps { padding-left:22px; }
.healthSetupSteps > li { padding:8px 0 18px; border-bottom:1px solid var(--line); margin-bottom:12px; font-size:14px; }
.healthSetupSteps p { margin:8px 0; font-size:13px; }
.healthSetupSteps details { font-size:13px; }
.healthSetupSteps summary { min-height:44px; padding-top:8px; cursor:pointer; }
.healthValues { display:grid; grid-template-columns:90px minmax(0,1fr); gap:8px 14px; padding:14px; background:var(--soft); border-radius:12px; font-size:13px; }
.healthValues dt { font-weight:650; }
.healthValues dd { margin:0; overflow-wrap:anywhere; }
#healthPermissionList { padding-left:20px; }
#mapInfoWalkingNote { padding:12px; background:var(--soft); border-radius:10px; }
#healthConnectTitle { scroll-margin-top:90px; }
.todayDiscovery { margin:18px 0; padding-top:16px; border-top:1px solid var(--line); }
.todayDiscovery h2 { font-size:17px; margin:0; }
.destinationRow { display:flex; gap:12px; align-items:center; padding:16px 0; border-bottom:1px solid var(--line); }
.destinationRow > div { min-width:0; flex:1; }
.destinationRow h3 { font-size:15px; line-height:1.5; margin:4px 0; }
.destinationRow p { font-size:13px; line-height:1.65; margin:5px 0; }
.destinationRow small { font-size:12px; color:var(--muted); }
.destinationRow > button { font-size:12px; padding:8px; flex-shrink:0; }
.featuredDestination { border:0; padding:10px 0; }
.todayDiscovery > .full { font-size:13px; }
.destinationPin span { display:grid; place-items:center; width:30px; height:30px; border:2px solid #fff; border-radius:50% 50% 50% 2px; background:#486e93; color:white; font-weight:700; box-shadow:0 2px 8px #203e3650; }
.regionChooser { padding:12px 0; margin-bottom:6px; border-bottom:1px solid var(--line); }
.regionChooser summary { min-height:44px; font-size:14px; cursor:pointer; }
.collectionOverview { margin-top:24px; padding-top:20px; border-top:1px solid var(--line); }
.collectionOverview h2 { font-size:18px; }
.knowledgeCard { border:1px solid var(--line); border-radius:14px; padding:18px; margin:16px 0; }
.knowledgeCard h3 { font-size:18px; margin:8px 0; }
.knowledgeCard p { font-size:14px; }
.knowledgeCard small { color:var(--muted); }
.knowledgeCard a { font-size:13px; }
.exploreSource { display:block; margin-top:8px; font-size:12px; }
.walkGarden { margin-top:18px; padding:16px; border-radius:14px; background:#eaf0e4; }
.walkGarden p { font-size:14px; margin:6px 0; }
.walkGarden small { font-size:12px; color:var(--muted); display:block; }
.gardenArt { display:flex; align-items:flex-end; min-height:65px; margin-bottom:8px; flex-wrap:wrap; }

.storageRecovery{margin:12px 24px;padding:20px;border:2px solid #9c4d26;border-radius:12px;background:#fff8ee;color:#653c24}.storageRecovery p{margin:10px 0}.mapHint:empty{display:none}.appFooter{padding:16px 24px;display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:#52645a}.appFooter small{flex-basis:100%}.mapCaveat{font-size:12px;color:#52645a}
