/* Scoped enhancement: the family site's existing palette, type and theme remain intact. */
.travel-map{--tm-home:#285b4b;--tm-visit:#e8bb70;--tm-visit-ink:#34291a;margin-top:22px;border:1px solid var(--hair-strong);border-radius:18px;overflow:hidden;background:var(--surface)}
.travel-map [hidden]{display:none!important}
.travel-map button,.travel-map input,.travel-map select{font:inherit}
.travel-map button{cursor:pointer}
.travel-map button:focus-visible,.travel-map select:focus-visible,.travel-map input:focus-visible{outline:3px solid var(--honey-deep);outline-offset:3px}
.tm-intro{padding:28px 28px 24px;background:var(--forest);color:var(--forest-ink);position:relative}
.tm-eyebrow{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;margin:0 0 10px;color:#edc58b}
.tm-intro h3{font-family:Newsreader,Georgia,serif;font-size:clamp(30px,5vw,42px);font-weight:500;line-height:1.08;letter-spacing:-.02em;margin:0 0 13px;max-width:20ch}
.tm-intro>p:last-of-type{font-size:14px;line-height:1.6;max-width:59ch;margin:0;opacity:.9}
.tm-stats{display:flex;flex-wrap:wrap;gap:24px 36px;margin:24px 0 0}
.tm-stats div{min-width:100px}
.tm-stats dt{font-size:12px;opacity:.85}
.tm-stats dd{font-family:Newsreader,Georgia,serif;font-size:36px;line-height:1.2;margin:0 0 2px}
.tm-stats dd span{font-size:20px;color:#edc58b}
.tm-body{padding:24px 28px}
.tm-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.travel-map h4{font-family:Newsreader,Georgia,serif;font-size:25px;line-height:1.2;font-weight:500;margin:0}
.tm-switch{display:flex;background:var(--surface-2);padding:3px;border-radius:30px;border:1px solid var(--hair);gap:2px;flex-shrink:0}
.tm-switch button{border:0;background:none;color:var(--ink-soft);min-height:38px;padding:6px 14px;border-radius:25px;font-size:13px}
.tm-switch button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 5px #0001}
.tm-legend{display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;padding:0;margin:0 0 20px;font-size:12px;color:var(--ink-soft)}
.tm-legend li{display:flex;gap:6px;align-items:center}
.tm-swatch{width:16px;height:16px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;flex:none;border:1px solid var(--hair-strong)}
.tm-swatch.lived{background:var(--tm-home);color:white;border-color:var(--tm-home)}
.tm-swatch.visited{background:var(--tm-visit);color:var(--tm-visit-ink);border-color:var(--tm-visit)}
.tm-swatch.airport_only{border:1.5px dashed var(--ink-soft);background:var(--surface-2)}
.tm-swatch.not_recorded{background:var(--surface-2);color:var(--muted)}
.tm-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end;margin-bottom:7px}
.tm-controls label,.tm-choose label{font-size:12px;color:var(--ink-soft);font-weight:600;display:block}
.tm-controls input,.tm-controls select,.tm-choose select{width:100%;min-width:0;min-height:44px;background:var(--surface);color:var(--ink);border:1px solid var(--hair-strong);border-radius:8px;padding:9px 10px;margin-top:5px;font-size:14px}
.tm-reset{min-height:44px;border:1px solid var(--hair-strong);background:var(--surface-2);color:var(--ink-soft);border-radius:8px;padding:8px 13px;font-size:13px}
.tm-status{font-size:12px;color:var(--ink-soft);margin:9px 0 17px;min-height:1.6em}
.tm-explorer{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:22px;align-items:start}
.tm-map-wrap{min-width:0}
.tm-board-scroll{overflow-x:auto;padding:5px 5px 8px;margin:-5px -5px 0;scrollbar-width:thin}
.tm-board{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));gap:4px;min-width:310px}
.tm-tile{aspect-ratio:1;border:1px solid var(--hair-strong);border-radius:6px;background:var(--surface-2);color:var(--ink-soft);position:relative;font-size:12px;font-weight:600;padding:0;display:flex;align-items:center;justify-content:center;transition:transform .12s,box-shadow .12s}
.tm-tile:hover:not(:disabled){transform:translateY(-2px)}
.tm-tile.lived{background:var(--tm-home);border-color:var(--tm-home);color:white}
.tm-tile.visited{background:var(--tm-visit);border-color:var(--tm-visit);color:var(--tm-visit-ink)}
.tm-tile.airport_only{border-style:dashed}
.tm-tile.not_recorded{border-style:dashed}
.tm-tile[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:2px;box-shadow:0 0 0 3px var(--surface)}
.tm-tile:disabled{opacity:.2;cursor:default}
.tm-tile-mark{position:absolute;right:2px;top:0;font-size:9px;line-height:1.3}
.tm-caption{font-size:11px;color:var(--ink-soft);margin:14px 0 0;line-height:1.5}
.tm-detail{padding:20px;background:var(--surface-2);border:1px solid var(--hair);border-radius:12px;min-height:260px}
.tm-detail-code{font-family:Newsreader,Georgia,serif;font-size:54px;line-height:1;color:var(--honey-deep);margin-bottom:14px}
.tm-detail h5{font-family:Newsreader,Georgia,serif;font-size:25px;line-height:1.1;margin:0 0 10px;font-weight:500}
.tm-detail p{font-size:13px;color:var(--ink-soft);margin:10px 0 0;line-height:1.6}
.tm-badge{font-size:11px;font-weight:600;letter-spacing:.04em;display:inline-flex;gap:6px;align-items:center}
.tm-choose{margin-top:16px}
.tm-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.tm-list button{width:100%;min-height:52px;display:flex;align-items:center;gap:9px;border:1px solid var(--hair);border-radius:8px;background:var(--surface);color:var(--ink);text-align:left;padding:9px 12px;font-size:13px}
.tm-list button[aria-pressed=true]{border-color:var(--honey-deep);box-shadow:0 0 0 1px var(--honey-deep)}
.tm-list button small{display:block;color:var(--ink-soft);font-size:11px}
.tm-list .tm-swatch{width:24px;height:24px;font-size:10px}
.tm-empty{padding:20px;background:var(--surface-2);border:1px dashed var(--hair-strong);border-radius:10px;font-size:14px;color:var(--ink-soft)}
.tm-destinations{margin-top:26px;padding-top:24px;border-top:1px solid var(--hair)}
.tm-destinations>p{font-size:13px;color:var(--ink-soft);margin:8px 0 16px}
.tm-destination-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.tm-destination-list li{padding:14px 12px;border-radius:10px;border:1px solid var(--hair);display:flex;gap:10px;align-items:flex-start}
.tm-country-code{font-size:11px;letter-spacing:.04em;color:var(--honey-deep);padding-top:3px;flex:none;width:20px}
.tm-destination-list strong{font-size:13px;font-weight:600;display:block}
.tm-destination-list small{font-size:11px;display:block;color:var(--ink-soft);margin-top:3px}
.tm-notes{margin-top:22px;padding-top:15px;border-top:1px solid var(--hair)}
.tm-notes summary{font-size:12px;font-weight:600;cursor:pointer;min-height:44px;display:list-item;line-height:44px}
.tm-notes p,.tm-fallback p{font-size:12px;color:var(--ink-soft);line-height:1.6;margin:8px 0}
.tm-notes ul{font-size:12px;color:var(--ink-soft);padding-left:20px}
.tm-fallback h4{margin-top:18px}
.tm-fallback-link{font-size:12px;margin:16px 0 0}
.tm-source{font-size:11px!important;color:var(--ink-soft);margin:20px 0 0!important;line-height:1.5}
@media(max-width:850px){.tm-explorer{grid-template-columns:minmax(0,1fr)}.tm-detail{display:grid;grid-template-columns:70px 1fr;gap:12px;min-height:0}.tm-detail-code{margin:3px 0 0}.tm-choose{grid-column:1/-1;margin-top:4px}.tm-board{gap:5px}.tm-tile{font-size:14px}.tm-tile-mark{font-size:11px;right:4px;top:2px}}
@media(max-width:600px){.tm-intro{padding:24px 18px}.tm-body{padding:22px 16px}.tm-stats{gap:18px 22px}.tm-stats div{min-width:70px}.tm-stats dd{font-size:31px}.tm-stats dt{font-size:11px}.tm-controls{grid-template-columns:1fr 1fr}.tm-reset{grid-column:1/-1;min-height:38px}.tm-legend{gap:8px 12px}.tm-topline{align-items:flex-start}.tm-topline h4{font-size:24px;margin-top:8px}.tm-board{gap:2px}.tm-tile{font-size:12px;border-radius:4px}.tm-tile-mark{font-size:7px;right:1px;top:0}.tm-destination-list{grid-template-columns:repeat(2,minmax(0,1fr))}.tm-list{grid-template-columns:repeat(2,minmax(0,1fr))}.tm-detail{padding:16px}.tm-switch button{padding:6px 11px}.tm-destination-list li{padding:12px 10px;gap:5px}.tm-country-code{width:18px}.tm-intro h3{font-size:34px}.tm-caption{margin-top:10px}.tm-destination-list strong{font-size:12px}}
@media(prefers-reduced-motion:reduce){.tm-tile{transition:none}.tm-tile:hover:not(:disabled){transform:none}}
@media print{.tm-controls,.tm-switch,.tm-choose,.tm-board-scroll,.tm-status,.tm-detail,.tm-list,.tm-fallback-link{display:none!important}.tm-fallback{display:block!important}.travel-map{break-inside:auto}.tm-intro{background:none;color:#222}.tm-eyebrow,.tm-stats dd span{color:#555}.tm-notes{display:none}}

@media(max-width:850px){.travel-map[data-travel-view="list"] .tm-detail{order:-1}}

@media(max-width:600px){.tm-detail{grid-template-columns:60px minmax(0,1fr)}.tm-detail-code{font-size:40px}.tm-detail h5{font-size:23px}}
