.travel-site { --ink:#202825; --muted:#68726d; --line:#dde4df; --brand:#167450; background:#fff; letter-spacing:0; }
html { scroll-padding-top:88px; scroll-padding-bottom:90px; }
.travel-site [hidden] { display:none !important; }
.travel-site .shell { width:min(1200px,calc(100% - 64px)); }
.travel-site .site-header { background:#fff; border-bottom:1px solid var(--line); backdrop-filter:none; }
.travel-site .header-inner { min-height:72px; gap:24px; }
.travel-site .brand-mark { background:#167450; border-radius:8px; box-shadow:none; }
.travel-site .top-nav { gap:24px; color:#49564e; font-size:14px; }
.travel-site .top-nav a:last-child { background:none; color:inherit; padding:0; font-weight:500; }
.travel-site .top-nav [aria-current] { color:var(--brand); font-weight:700; }
.travel-site .top-nav .nav-login { background:#edf4ef; color:#146746; padding:10px 16px; }
.travel-site .btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; border-radius:6px; box-shadow:none; font-size:14px; }
.travel-site .btn-primary { background:#167450; color:#fff; border:1px solid #167450; }
.travel-site .btn-primary:hover { background:#105a3d; }
.travel-site .btn-ghost { background:#fff; border:1px solid #d6ded8; color:#293b31; }
.travel-site button { cursor:pointer; }
.travel-site button:disabled { cursor:not-allowed; opacity:.45; }
.travel-site input,.travel-site select { min-height:44px; border:1px solid #cbd5ce; border-radius:6px; padding:10px 12px; color:#202825; background:#fff; min-width:0; width:100%; }
.travel-site .field label { color:#3d4d43; font-size:13px; font-weight:600; }
.travel-site a:focus-visible,.travel-site button:focus-visible,.travel-site input:focus-visible,.travel-site select:focus-visible { outline:3px solid #198359; outline-offset:4px; }
.nav-icon { display:inline-flex; flex:none; width:20px; height:20px; vertical-align:middle; }
.nav-icon svg { width:100%; height:100%; stroke-width:1.8; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:-100px; left:12px; background:white; color:#222; padding:12px; z-index:200; }
.skip-link:focus { top:12px; }
.travel-site .check-item input[type="checkbox"] { position:static; width:22px; height:22px; min-height:0; margin:0; padding:0; opacity:1; pointer-events:auto; accent-color:var(--brand); }
.travel-site .check-item .fake-check { display:none; }
.travel-site .check-item { grid-template-columns:22px minmax(0,1fr) auto; }
.travel-site .check-main { min-width:0; overflow-wrap:anywhere; }
.travel-site .tool-search select { width:100%; min-width:0; min-height:44px; padding:8px 12px; border-radius:8px; color:#18251f; background:#fff; }
.travel-site [data-reset-essentials] { margin-top:12px; }
.travel-site .tool-hero .text-link { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.photo-credits { display:block; color:#526057; font-size:12px; line-height:1.5; overflow-wrap:anywhere; margin:6px 0; }
.photo-credits a { display:inline-block; max-width:100%; vertical-align:top; text-decoration:underline; }
.planner-place-photo { display:block; width:100%; aspect-ratio:3/2; object-fit:contain; border-radius:4px; background:#edf2ef; margin-top:12px; }
.place-detail-shell { padding:0; border:0; border-radius:0; box-shadow:none; background:transparent; }
.place-detail-shell h1 { word-break:keep-all; overflow-wrap:anywhere; }
.place-detail-photo { display:block; object-fit:contain; border-radius:4px; background:#edf2ef; }
.place-detail-copy .place-lead { font-weight:400; }
.place-detail-actions { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:16px 0 24px; }
.place-trip-dialog { width:min(560px,calc(100% - 32px)); max-height:calc(100dvh - 48px); margin:auto; padding:24px; border:1px solid #dce3df; border-radius:8px; color:var(--ink); background:#fff; overflow-y:auto; overscroll-behavior:contain; }
.place-trip-dialog::backdrop { background:rgba(15,27,22,.48); }
.place-trip-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.place-trip-heading h2 { font-size:22px; margin:0; }
.place-trip-heading .icon-button { width:44px; height:44px; }
.place-trip-name { font-size:16px; font-weight:600; overflow-wrap:anywhere; margin:16px 0 4px; }
.place-trip-dialog .meta { font-size:13px; color:var(--muted); line-height:1.6; }
.place-trip-dialog fieldset { border:0; margin:0; padding:0; min-width:0; }
.place-trip-dialog .field { display:grid; gap:6px; min-width:0; margin:12px 0; }
.place-trip-dialog select { text-overflow:ellipsis; }
.place-trip-modes { display:grid; grid-template-columns:1fr 1fr; gap:4px; padding:4px; margin:20px 0 12px; background:#f0f3f1; border-radius:6px; }
.place-trip-modes button { min-height:44px; border:0; border-radius:4px; background:transparent; color:#55635b; font-size:14px; }
.place-trip-modes [aria-pressed=true] { color:#146746; background:#fff; box-shadow:0 1px 3px #15251a15; font-weight:700; }
.place-trip-dates { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; }
.place-trip-basics { display:grid; grid-template-columns:minmax(0,1fr) 110px; gap:12px; }
.place-trip-status { font-size:14px; line-height:1.7; overflow-wrap:anywhere; }
.place-trip-status:empty { display:none; }
.place-trip-status.is-error { color:#a13b34; }
.place-trip-dialog #place-trip-view { margin-top:16px; }
.place-trip-dialog #place-trip-again { display:flex; margin:8px auto 0; }
@media (max-width:720px) {
  .place-detail-actions { position:sticky; top:60px; z-index:20; padding:10px 0; background:#fff; border-bottom:1px solid var(--line); }
  .place-detail-actions .text-link { font-size:12px; }
  .place-trip-dialog { width:100%; max-width:100%; max-height:calc(100dvh - 16px); margin:auto 0 0; border-radius:8px 8px 0 0; padding:20px 16px calc(20px + env(safe-area-inset-bottom)); }
  .place-trip-dialog input,.place-trip-dialog select { font-size:16px; }
  .place-trip-dialog .place-trip-dates { grid-template-columns:minmax(0,1fr); gap:0; }
}
.planner-place-address { font-size:12px; color:#596e60; }
.account-data-page h1 { font-size:32px; margin:24px 0; }
.account-data-layout { display:grid; grid-template-columns:240px minmax(0,1fr); gap:48px; }
.account-data-identity h2 { font-size:20px; overflow-wrap:anywhere; }
.account-data-identity p { overflow-wrap:anywhere; }
.account-data-section { padding:0 0 28px; margin-bottom:28px; border-bottom:1px solid var(--line); }
.account-data-section h2,#account-deleted h2 { font-size:22px; margin:0 0 16px; }
.account-data-section p { max-width:720px; line-height:1.75; }
.account-data-counts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:16px 0; gap:20px; }
.account-data-counts dt { font-size:14px; color:var(--muted); }
.account-data-counts dd { margin:8px 0 0; font-size:24px; font-weight:700; }
.account-auth-notice { padding:16px 0; border-block:1px solid #b79449; line-height:1.7; }
.travel-site .account-danger .btn { color:#a13b34; border-color:#dcb9b5; }
.account-delete-warning { color:#a13b34; line-height:1.7; }
.account-delete-dialog .share-check { align-items:flex-start; padding-block:12px; }
.account-delete-dialog .share-check input { flex:none; }
.travel-site .account-delete-submit { width:100%; background:#a13b34; color:white; min-height:48px; }
#account-deleted { grid-column:1/-1; max-width:760px; }
@media(max-width:720px) {
  .account-data-layout { grid-template-columns:minmax(0,1fr); gap:24px; }
  .account-data-identity { padding-bottom:20px; border-bottom:1px solid var(--line); }
  .account-data-page h1 { font-size:28px; }
  .account-data-section h2,#account-deleted h2 { font-size:20px; }
  .account-data-section .btn { width:100%; }
}
.trip-share-dialog { width:min(640px,calc(100% - 32px)); max-height:calc(100dvh - 48px); padding:24px; margin:auto; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); overflow-y:auto; overscroll-behavior:contain; }
.trip-share-dialog::backdrop { background:rgba(15,27,22,.48); }
.share-dialog-heading { display:flex; justify-content:space-between; gap:16px; align-items:center; }
.share-dialog-heading h2 { font-size:22px; margin:0; }
.share-dialog-heading .icon-button { width:44px; height:44px; }
.trip-share-dialog fieldset { min-width:0; border:0; padding:0; margin:16px 0; }
.trip-share-dialog legend { font-size:14px; font-weight:600; margin-bottom:8px; }
.share-check { display:flex; align-items:center; gap:10px; min-height:44px; font-size:14px; }
.share-option-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:12px; }
.travel-site .share-check input { width:20px; min-height:20px; height:20px; accent-color:var(--brand); }
.trip-share-dialog .field { display:grid; gap:6px; margin:12px 0; min-width:0; }
.share-privacy,.share-status { font-size:14px; line-height:1.7; overflow-wrap:anywhere; }
.share-status:empty { display:none; }
.share-privacy { color:#645341; background:#f8f5ed; padding:12px; border-left:3px solid #b79449; }
.share-preview-title { font-size:16px; margin-top:24px; }
.share-preview { max-height:260px; overflow-y:auto; border-block:1px solid var(--line); padding:16px 0; margin:12px 0 20px; font-size:14px; }
.share-preview h4 { margin:14px 0 4px; font-size:14px; }
.share-preview p,.share-preview ol { margin:6px 0; }
.share-preview li { padding:4px 0; overflow-wrap:anywhere; }
.share-link-actions { display:flex; flex-wrap:wrap; gap:8px; }
.share-danger { color:#a13b34; margin-top:16px; }
.shared-trip-heading { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:20px; padding:0 0 28px; border-bottom:1px solid var(--line); }
.shared-trip-heading h1 { font-size:32px; margin:0; overflow-wrap:anywhere; }
.shared-trip-heading p { margin:8px 0; }
.shared-trip-columns { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:48px; margin-top:24px; }
.shared-days { min-width:0; }
.shared-day-tabs { margin-bottom:24px; }
.shared-day h2 { font-size:22px; }
.shared-timeline { list-style:none; padding:0; margin:0; }
.shared-timeline li { padding:20px 0; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:16px; }
.shared-timeline li>div { min-width:0; }
.shared-timeline h3 { font-size:18px; margin:8px 0 0; overflow-wrap:anywhere; }
.shared-timeline .text-link { flex:none; }
.shared-time { color:var(--muted); font-size:13px; }
.shared-city img { width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; border-radius:4px; }
@media (max-width:720px) {
  .trip-share-dialog { width:100%; max-width:100%; margin:auto 0 0; max-height:calc(100dvh - 16px); padding:20px 16px calc(20px + env(safe-area-inset-bottom)); border-radius:8px 8px 0 0; }
  .trip-share-dialog input,.trip-share-dialog select { font-size:16px; }
  .shared-trip-heading h1 { font-size:26px; }
  .shared-trip-columns { display:flex; flex-direction:column; gap:32px; }
  .shared-city img { aspect-ratio:16/7; }
  .shared-timeline li { align-items:flex-start; flex-direction:column; gap:4px; }
  .shared-trip-heading .btn { width:100%; }
}
.mobile-nav { display:none; }
.discovery-hero { position:relative; min-height:420px; display:flex; flex-direction:column; justify-content:center; isolation:isolate; background:#254d4a; color:white; }
.discovery-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.discovery-hero::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(0,25,25,.58),rgba(0,25,25,0) 82%); }
.discovery-content { padding-block:48px 24px; }
.hero-location { font-size:12px; font-weight:600; margin:0 0 12px; }
.discovery-content h1 { font-size:48px; line-height:1.2; margin:0 0 14px; letter-spacing:0; }
.hero-subtitle { font-size:18px; margin:0 0 26px; line-height:1.6; }
.destination-search { display:flex; align-items:center; gap:12px; padding:8px 8px 8px 18px; width:min(600px,100%); background:#fff; color:#234e40; border-radius:8px; }
.destination-search input { border:0; box-shadow:none; padding-inline:0; flex:1; }
.destination-search button { flex:none; }
.hero-link { display:inline-flex; align-items:center; gap:10px; margin-top:22px; font-size:14px; }
.discovery-photo-meta { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 20px; padding-bottom:20px; }
.hero-photo-credit { font-size:11px; line-height:1.6; margin:0; padding:6px 8px; background:rgba(0,0,0,.65); overflow-wrap:anywhere; }
.hero-photo-credit a { text-decoration:underline; text-underline-offset:2px; }
.photo-location { display:flex; align-items:center; gap:8px; font-size:12px; padding:8px 10px; background:rgba(0,0,0,.5); border-radius:4px; min-height:44px; }
.travel-site .section { padding:40px 0; }
.travel-site .section-title { align-items:center; margin-bottom:24px; }
.travel-site .section-title h1 { font-size:32px; margin:0; line-height:1.3; }
.travel-site .section-title h2 { font-size:26px; margin:0; line-height:1.4; }
.overline { color:#68766b; font-size:12px; margin:0 0 8px; font-weight:600; }
.text-link { display:inline-flex; align-items:center; justify-content:center; gap:8px; font-size:14px; font-weight:600; background:transparent; border:0; color:#216845; min-height:44px; padding:0; }
.travel-site .month-tabs { display:flex; gap:4px; border-bottom:1px solid var(--line); margin-bottom:24px; padding:0; overflow-x:auto; border-radius:0; background:white; }
.travel-site .month-tabs button { flex:1 0 54px; min-width:54px; min-height:46px; padding:10px 12px; white-space:nowrap; background:#fff; color:#68726d; border:0; border-bottom:3px solid transparent; border-radius:0; box-shadow:none; }
.travel-site .month-tabs button.active { color:#146746; border-bottom-color:#167450; font-weight:800; }
.destination-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px 24px; }
.monthly-weather-controls { display:flex; align-items:end; flex-wrap:wrap; gap:16px; margin:16px 0; font-size:13px; }
.monthly-weather-controls .field { flex:0 1 180px; min-width:0; }
.monthly-weather-controls select { appearance:none; -webkit-appearance:none; min-height:44px; width:100%; padding-right:36px; background:white url('/assets/icons/chevron-down.svg') no-repeat right 12px center/16px; }
.monthly-criteria { margin:0 0 16px; font-size:12px; color:var(--muted); }
.monthly-criteria summary { min-height:44px; padding-block:12px; cursor:pointer; }
.monthly-criteria summary:focus-visible { outline:2px solid var(--brand); outline-offset:2px; }
.monthly-demand-source { display:flex; flex-wrap:wrap; align-items:center; gap:0 16px; font-size:12px; color:var(--muted); margin:0 0 12px; line-height:1.7; }
.monthly-demand-source a { display:inline-flex; align-items:center; gap:6px; min-height:44px; color:var(--brand); text-decoration:underline; text-underline-offset:3px; }
@media(max-width:720px) { .monthly-weather-controls .field { flex:1 1 0; } }
.weather-criteria { font-size:12px; color:var(--muted); line-height:1.7; margin:0 0 20px; }
.destination-card { border:1px solid #e3e8e4; border-radius:8px; overflow:hidden; background:#fff; min-width:0; transition:transform .18s,box-shadow .18s; }
.destination-card:hover { transform:translateY(-3px); box-shadow:0 10px 24px #20372b12; }
.destination-visual { aspect-ratio:16/9; overflow:hidden; display:grid; place-items:center; background:#e8f0ed; color:#3e635a; }
.destination-card:nth-child(3n+2) .destination-visual { background:#eef0f7; color:#536075; }
.destination-card:nth-child(3n+3) .destination-visual { background:#f6eeee; color:#805959; }
.destination-visual>span { font-size:25px; font-weight:700; padding:18px; text-align:center; overflow-wrap:anywhere; }
.destination-visual img { width:100%; height:100%; object-fit:cover; }
.destination-copy { padding:18px; }
.destination-tag { font-size:12px; color:#62796b; }
.monthly-weather-values { display:flex; flex-wrap:wrap; gap:3px 10px; }
.monthly-weather-values > span { white-space:nowrap; }
.destination-copy h2,.destination-copy h3 { font-size:21px; margin:8px 0; line-height:1.35; }
.destination-copy p { color:#68726d; font-size:13px; line-height:1.65; margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:43px; }
.destination-more { display:flex; align-items:center; justify-content:center; gap:20px; margin-top:24px; font-size:13px; color:#68726d; }
.travel-tools { border-top:1px solid var(--line); background:#f7f9f7; }
.tools-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.tools-grid>a { display:flex; align-items:center; gap:20px; padding:16px 0; }
.tools-grid>a>.nav-icon:first-child { width:32px; height:32px; color:#18714e; }
.tools-grid>a>div { flex:1; }
.tools-grid h3 { margin:0 0 8px; font-size:18px; }
.tools-grid p { margin:0; color:var(--muted); font-size:14px; }
.explore-filters { display:flex; align-items:end; gap:12px; padding:20px 0; border-block:1px solid var(--line); }
.explore-filters .field:first-child { flex:1; }
.explore-filters .field:nth-child(2) { width:220px; }
.result-count { margin:24px 0; color:var(--muted); font-size:14px; }
.explore-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.explore-grid .destination-copy h2 { font-size:20px; }
.journey-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.journey-filters { display:flex; flex-wrap:wrap; gap:16px; align-items:center; justify-content:space-between; padding:16px 0; border-block:1px solid var(--line); }
.journey-phase { display:flex; flex-wrap:wrap; gap:4px; }
.journey-phase button { padding:10px 12px; min-height:44px; border:0; border-radius:6px; background:transparent; color:var(--muted); font-weight:700; }
.journey-phase button[aria-pressed="true"] { background:#e6f2ed; color:#146347; }
.journey-search { display:flex; align-items:center; gap:8px; width:300px; max-width:100%; min-width:0; }
.journey-search input { min-width:0; width:100%; }
.journey-more { display:flex; justify-content:center; margin-top:24px; }
.offline-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:24px; }
.offline-actions span { font-size:13px; color:var(--muted); }
.app-install-open { overflow:hidden; }
.app-install-fallback { display:flex; align-items:center; flex-wrap:wrap; gap:16px; padding-block:24px; }
.app-install-fallback a { display:inline-flex; align-items:center; min-height:44px; color:var(--brand); }
.app-install-dialog { width:min(480px,calc(100% - 32px)); max-height:calc(100dvh - 48px); padding:24px; margin:auto; border:1px solid var(--line); border-radius:8px; background:white; color:var(--ink); overflow-y:auto; overscroll-behavior:contain; }
.app-install-dialog::backdrop { background:rgba(15,27,22,.48); }
.app-install-heading { display:flex; align-items:center; gap:16px; }
.app-install-heading img { flex:none; border-radius:8px; }
.app-install-heading h2 { font-size:22px; line-height:1.4; margin:0; }
.app-install-heading .icon-button { margin-left:auto; flex:none; width:44px; height:44px; }
.app-install-status { margin:24px 0 16px; font-size:14px; line-height:1.7; }
.app-install-warning { padding:12px 0 12px 12px; border-left:3px solid #b79449; margin:20px 0; color:#725524; font-size:13px; line-height:1.7; }
#app-install-native { width:100%; margin:20px 0 4px; }
#app-install-manual { margin-top:24px; border-top:1px solid var(--line); padding-top:16px; }
#app-install-manual summary { min-height:44px; cursor:pointer; font-size:14px; font-weight:600; }
#app-install-manual label { display:block; margin-bottom:8px; font-size:13px; color:var(--muted); }
.app-install-dialog select { appearance:none; -webkit-appearance:none; width:100%; min-height:44px; padding:10px 40px 10px 12px; border:1px solid var(--line); border-radius:4px; background:white url('/assets/icons/chevron-down.svg') no-repeat right 12px center/16px; color:var(--ink); font:inherit; }
#app-install-guide { display:inline-flex; align-items:center; gap:8px; min-height:44px; margin-top:12px; }
@media(max-width:720px) {
  .app-install-dialog { width:100%; max-width:100%; max-height:calc(100dvh - 16px); margin:auto 0 0; padding:20px 16px calc(20px + env(safe-area-inset-bottom)); border-radius:8px 8px 0 0; }
  .app-install-heading h2 { font-size:20px; }
  .app-install-dialog select { font-size:16px; }
  .offline-actions { gap:8px; }
}
.journey-card { border:1px solid var(--line); border-radius:8px; padding:22px; min-width:0; }
.journey-card h2,.journey-card h3 { font-size:22px; margin:10px 0; overflow-wrap:anywhere; }
.journey-card p { color:var(--muted); font-size:13px; line-height:1.7; }
.journey-actions { display:flex; align-items:center; justify-content:space-between; margin-top:18px; }
.journey-signin { margin-top:30px; display:flex; align-items:center; justify-content:space-between; gap:16px; border-top:1px solid var(--line); padding-top:24px; font-size:14px; }
.planner-workspace { width:min(1600px,100%); margin:auto; padding:28px 32px; }
.workspace-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
.workspace-heading h1 { font-size:28px; margin:0; }
.workspace-save { display:flex; align-items:center; gap:16px; }
#draft-status { font-size:12px; color:#67776c; max-width:240px; line-height:1.5; }
.trip-basics { display:grid; grid-template-columns:minmax(130px,1.1fr) minmax(140px,1fr) minmax(140px,1fr) minmax(140px,1.2fr) 80px auto; gap:12px; align-items:end; padding-bottom:24px; border-bottom:1px solid var(--line); }
.trip-basics-panel { border-bottom:1px solid var(--line); }
.trip-basics-panel .trip-basics { border-bottom:0; }
.trip-basics-summary { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:72px; padding:12px 0; cursor:pointer; list-style:none; }
.trip-basics-summary::-webkit-details-marker { display:none; }
.trip-basics-summary:focus-visible { outline:2px solid #167450; outline-offset:4px; }
.trip-basics-overview { display:grid; gap:6px; min-width:0; }
.trip-basics-overview strong { font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.trip-basics-overview>span { font-size:13px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.trip-basics-action { display:flex; flex:none; align-items:center; gap:6px; font-size:13px; font-weight:700; color:#167450; }
.trip-basics-panel[open] .trip-basics-action .nav-icon { transform:rotate(180deg); }
.optional { color:#849188; font-weight:400; }
.editor-error { color:#a32929; padding:12px; background:#fff0f0; border-left:3px solid #b53535; font-size:14px; }
.editor-welcome { text-align:center; padding:72px 20px; color:var(--muted); }
.editor-welcome h2 { font-size:24px; color:var(--ink); }
.welcome-icon>.nav-icon { width:48px; height:48px; color:#247352; }
.editor-days { display:flex; align-items:center; gap:8px; overflow-x:auto; padding:20px 0; border-bottom:1px solid var(--line); }
.editor-days button { display:flex; flex-direction:column; gap:5px; flex:none; min-width:100px; padding:10px 16px; border:1px solid var(--line); background:#fff; border-radius:6px; }
.editor-days button[aria-pressed=true] { background:#167450; color:#fff; border-color:#167450; }
.editor-days small { font-size:11px; }
.editor-columns { display:grid; grid-template-columns:320px minmax(300px,1fr) 230px; min-height:450px; }
.editor-places { padding:24px 20px 24px 0; border-right:1px solid var(--line); }
.editor-schedule { padding:24px; min-width:0; }
.editor-trip-tools { padding:24px 0 24px 20px; border-left:1px solid var(--line); }
.panel-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:20px; }
.panel-heading h2,.editor-trip-tools h2 { font-size:18px; margin:0; }
.panel-heading .text-link { font-size:12px; }
.custom-place { margin-bottom:20px; }
.custom-place label { font-size:12px; color:var(--muted); display:block; margin-bottom:8px; }
.custom-place>div { display:flex; gap:8px; }
.icon-button { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; flex:none; border:1px solid var(--line); background:#fff; color:#365745; border-radius:6px; }
.custom-place .icon-button { height:44px; }
.place-kind-tabs,.editor-mobile-tabs { display:flex; gap:4px; padding:4px; background:#f0f4f1; border-radius:6px; }
.place-kind-tabs button,.editor-mobile-tabs button { flex:1; border:0; background:transparent; border-radius:4px; padding:10px; font-size:13px; }
.place-kind-tabs button[aria-pressed=true],.editor-mobile-tabs button[aria-pressed=true] { background:#fff; color:#146746; font-weight:700; box-shadow:0 1px 3px #142b1910; }
.place-kind-tabs #refresh-saved-places { flex:0 0 36px; width:36px; padding:6px; }
.place-search { margin:14px 0; }
.planner-place { border-bottom:1px solid var(--line); padding:16px 0; }
.planner-place h3 { margin:0; font-size:15px; line-height:1.5; }
.planner-place p { font-size:12px; line-height:1.7; color:var(--muted); margin:8px 0; }
.planner-place>div { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.planner-place .text-link { font-size:12px; }
.day-items { list-style:none; padding:0; margin:0; }
.day-item { position:relative; border-bottom:1px solid var(--line); padding:18px 0; animation:arrival .2s ease-out; }
.day-item-top { display:flex; gap:12px; align-items:center; }
.day-item-number { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:#e7f2ec; color:#167450; font-size:12px; flex:none; }
.day-item h3 { margin:0; font-size:16px; line-height:1.5; overflow-wrap:anywhere; }
.day-item-controls { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:14px 0 0 40px; }
.day-item-controls input { width:112px; }
.day-item-controls select { width:100px; }
.day-empty { padding:44px 16px; text-align:center; font-size:14px; color:#778179; line-height:1.8; background:#f8faf8; border:1px dashed var(--line); border-radius:6px; }
.trip-tool { display:flex; align-items:center; gap:10px; font-size:13px; padding:18px 0; border-bottom:1px solid var(--line); }
.editor-trip-tools .btn { margin-top:24px; }
.editor-mobile-tabs,.mobile-add-place { display:none !important; }
.travel-site .city-guide-hero { background:#edf3ee; color:#20372a; }
.travel-site .city-guide-hero.has-image { color:#fff; min-height:350px; display:flex; align-items:center; background:linear-gradient(90deg,rgba(0,0,0,.65),rgba(0,0,0,.12)),var(--city-image) center / cover no-repeat; }
.travel-site .city-guide-hero h1 { font-size:36px; }
.travel-site .city-guide-hero p { color:inherit; }
.travel-site .city-guide-side { align-self:start; }
.climate-table-scroll { max-width:100%; overflow:auto; }
.travel-site .city-guide-main { min-width:0; grid-template-columns:minmax(0,1fr); }
.city-climate { min-width:0; max-width:100%; }
.climate-table { min-width:720px; width:100%; border-collapse:collapse; }
.climate-table th,.climate-table td { font-size:12px; text-align:center; padding:12px 8px; white-space:nowrap; }
.climate-table th:first-child { text-align:left; }
.city-climate>p { font-size:13px; color:var(--muted); }
.city-climate { scroll-margin-top:90px; }
.city-weather-months { display:flex; flex-wrap:wrap; column-gap:8px; row-gap:4px; }
.city-weather-months span { white-space:nowrap; }
.city-weather-link { display:inline-flex; align-items:center; min-height:44px; font-size:13px; }
.travel-site .city-switcher { background:#fff; border:1px solid var(--line); color:var(--ink); border-radius:8px; }
.travel-site .city-switcher label { color:var(--muted); }
.travel-site .guide-section,.travel-site .city-facts { border-radius:0; box-shadow:none; border:0; border-bottom:1px solid var(--line); }
.travel-site .guide-mood-grid { grid-template-columns:1fr; }
.travel-site .guide-mood-grid>div { border-radius:0; }
@keyframes arrival { from { opacity:.3; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
@media (max-width:1100px) {
  .trip-basics { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .editor-columns { grid-template-columns:280px minmax(0,1fr); }
  .editor-trip-tools { grid-column:1/-1; display:flex; align-items:center; gap:24px; border-left:0; border-top:1px solid var(--line); padding:20px 0; flex-wrap:wrap; }
  .editor-trip-tools .btn { margin:0; }
  .explore-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .travel-site .top-nav { gap:14px; }
}
@media (max-width:720px) {
  .travel-site { padding-bottom:calc(70px + env(safe-area-inset-bottom)); }
  .travel-site .shell { width:calc(100% - 32px); }
  .travel-site .header-inner { min-height:60px; padding:10px 0; }
  .travel-site .top-nav>a { display:none; }
  .travel-site .top-nav { display:flex; }
  .travel-site .top-nav .nav-login { min-height:40px; font-size:13px; }
  .travel-site .top-nav>a:last-child { display:block; font-size:12px; }
  .mobile-nav { position:fixed; bottom:0; inset-inline:0; z-index:40; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); background:#fff; border-top:1px solid var(--line); padding:8px 4px calc(8px + env(safe-area-inset-bottom)); }
  .mobile-nav a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; min-height:48px; color:#7a847e; font-size:10px; }
  .mobile-nav a[aria-current] { color:#167450; font-weight:700; }
  .discovery-hero { min-height:350px; }
  .discovery-content { padding-block:30px 20px; }
  .discovery-content h1 { font-size:36px; }
  .hero-subtitle { font-size:15px; max-width:280px; margin-bottom:20px; }
  .destination-search { gap:8px; padding-left:12px; }
  .destination-search input { font-size:14px; }
  .destination-search button { padding:10px; font-size:12px; }
  .destination-search>.nav-icon { width:18px; height:18px; }
  .photo-location { font-size:11px; margin-left:auto; }
  .travel-site .section { padding:28px 0; }
  .travel-site .section-title { align-items:start; gap:12px; margin-bottom:18px; }
  .travel-site .section-title h1 { font-size:26px; }
  .travel-site .section-title h2 { font-size:21px; }
  .section-title>.text-link { font-size:12px; white-space:nowrap; min-height:30px; }
  .destination-grid,.explore-grid,.journey-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 12px; }
  .destination-visual { aspect-ratio:4/3; }
  .destination-visual>span { font-size:20px; padding:12px; }
  .destination-copy { padding:12px; }
  .destination-copy h3,.destination-copy h2,.explore-grid .destination-copy h2 { font-size:18px; }
  .destination-copy p { font-size:12px; min-height:40px; }
  .destination-copy .text-link { font-size:12px; }
  .destination-tag { font-size:11px; }
  .destination-more { gap:14px; font-size:12px; }
  .destination-more .text-link { font-size:13px; }
  .tools-grid { grid-template-columns:1fr; gap:0; }
  .tools-grid>a+a { border-top:1px solid var(--line); }
  .explore-filters { display:grid; grid-template-columns:minmax(0,1fr) auto; }
  .explore-filters .field:first-child { grid-column:1/-1; }
  .explore-filters .field:nth-child(2) { width:100%; }
  .journey-grid { grid-template-columns:1fr; }
  .journey-signin { align-items:start; flex-direction:column; }
  .planner-workspace { padding:22px 16px; }
  .workspace-heading { align-items:start; }
  .workspace-heading h1 { font-size:23px; }
  .workspace-save { flex-direction:column-reverse; align-items:end; gap:8px; }
  #draft-status { max-width:150px; text-align:right; font-size:11px; }
  .trip-basics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .trip-basics .field:first-child,.trip-basics .field:nth-child(4) { grid-column:1/-1; }
  .trip-basics input,.trip-basics select { font-size:16px; }
  .editor-days { padding:14px 0; }
  .editor-days button { min-width:85px; }
  .editor-columns { display:block; }
  .editor-mobile-tabs { display:flex !important; margin:16px 0 0; }
  .editor-columns[data-view=schedule] .editor-places,.editor-columns[data-view=places] .editor-schedule { display:none; }
  .editor-schedule,.editor-places { padding:20px 0; border:0; }
  .editor-trip-tools { display:block; padding:20px 0; }
  .editor-trip-tools h2 { margin-bottom:8px; }
  .mobile-add-place { display:flex !important; width:100%; margin-top:20px; }
  .day-item-controls { padding-left:0; gap:6px; }
  .day-item-controls input { width:104px; }
  .day-item-controls select { width:88px; }
  .day-item-controls .icon-button { width:36px; }
  .travel-site .city-guide-hero h1 { font-size:28px; }
  .travel-site .city-guide-layout { display:block; }
  .travel-site .city-guide-side { position:static; }
  .travel-site .city-facts dl { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .travel-site .city-switcher { margin-bottom:20px; }
  .travel-site .plan-modal { max-height:calc(100dvh - 32px); width:100%; border-radius:8px; }
}
@media (prefers-reduced-motion:reduce) { .travel-site *, .travel-site *::before,.travel-site *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
.destination-visual { position:relative; }
.city-photo-credit { position:absolute; bottom:0; left:0; right:0; padding:4px 6px; background:rgba(0,0,0,.7); color:#fff; font-size:10px; line-height:1.5; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.city-hero-credit { font-size:12px; line-height:1.6; overflow-wrap:anywhere; color:#526057; }
.city-hero-credit a,.photo-credit-row a { text-decoration:underline; }
.photo-credit-row { display:grid; grid-template-columns:140px minmax(0,1fr); gap:20px; padding:24px 0; border-bottom:1px solid var(--line); }
.photo-credit-row img { width:140px; height:110px; object-fit:contain; }
.photo-credit-row h2 { font-size:20px; margin:0 0 8px; }
.photo-credit-row p { font-size:13px; line-height:1.6; margin:6px 0; overflow-wrap:anywhere; }
@media (max-width:720px) { .photo-credit-row { grid-template-columns:90px minmax(0,1fr); gap:12px; } .photo-credit-row img { width:90px; height:90px; } }
.home-active-trip { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-top:20px; }
.home-active-trip > span { font-size:12px; color:white; }
.home-active-trip .btn { white-space:normal; text-align:left; min-height:48px; max-width:100%; }
.home-active-trip .btn img { filter:brightness(0) invert(1); }
.legacy-import { max-width:760px; overflow-wrap:anywhere; }
.legacy-import h1 { font-size:28px; margin:20px 0; }
.legacy-import h2 { font-size:22px; }
.legacy-import p { line-height:1.7; margin:16px 0; }
.account-layout { display:grid; grid-template-columns:minmax(220px,1fr) minmax(0,2fr); gap:48px; }
.account-profile,.account-sections { min-width:0; }
.account-profile { padding:24px 0; overflow-wrap:anywhere; }
.account-profile > .nav-icon { width:40px; height:40px; color:var(--accent); }
.account-page h2 { font-size:20px; line-height:1.5; margin:0 0 12px; }
.account-profile p { margin:8px 0; color:#526057; }
.account-sections > section { margin-bottom:32px; }
.account-row { display:flex; align-items:center; gap:14px; width:100%; min-height:60px; padding:16px 0; border:0; border-bottom:1px solid var(--line); background:transparent; color:inherit; font:inherit; text-align:left; text-decoration:none; cursor:pointer; }
.account-row > span:not(.nav-icon) { flex:1; min-width:0; overflow-wrap:anywhere; }
.account-row > .nav-icon { flex:0 0 20px; }
.account-row > .nav-icon:last-child { margin-left:auto; }
.account-row strong { font-variant-numeric:tabular-nums; }
.account-row:hover { color:#176948; background:#f0f6f2; }
.account-row:focus-visible { outline:2px solid #176948; outline-offset:4px; }
.account-signout { margin:0; }
@media (max-width:720px) { .account-layout { grid-template-columns:minmax(0,1fr); gap:24px; } .account-profile { padding:0 0 24px; border-bottom:1px solid var(--line); } }
.editor-columns { grid-template-columns:minmax(240px,300px) minmax(300px,1fr) minmax(320px,1fr); }
.editor-toolbar { background:#fff; }
#planner-places:focus-visible,.editor-schedule:focus-visible,.editor-map:focus-visible { outline:2px solid var(--brand); outline-offset:-2px; }
.editor-map { padding:24px 0 24px 20px; min-width:0; border-left:1px solid var(--line); }
.editor-trip-tools { grid-column:1/-1; border-left:0; border-top:1px solid var(--line); }
#itinerary-map { width:100%; height:380px; background:#edf0ed; isolation:isolate; z-index:0; }
#map-status,#map-position-status { font-size:12px; color:#526057; line-height:1.5; }
.map-route-actions { margin-top:12px; }
#map-route-status { font-size:12px; line-height:1.6; color:#344c40; overflow-wrap:anywhere; }
.map-position-form { display:grid; gap:12px; margin-top:16px; }
.map-coordinates { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.map-position-actions { display:flex; flex-wrap:wrap; gap:8px; }
.map-position-form select { appearance:none; width:100%; height:44px; min-height:44px; padding:10px 36px 10px 12px; box-sizing:border-box; text-overflow:ellipsis; font:inherit; border:1px solid var(--line); border-radius:6px; background:#fff url('/assets/icons/chevron-down.svg') no-repeat right 12px center / 16px; }
.map-position-modes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-bottom:1px solid var(--line); }
.map-position-modes button { min-height:44px; padding:8px; border:0; border-bottom:2px solid transparent; background:transparent; color:var(--muted); font:inherit; font-size:13px; cursor:pointer; }
.map-position-modes button[aria-pressed="true"] { border-color:var(--brand); color:var(--ink); font-weight:700; }
#map-arrival-fields:not([hidden]) { display:grid; gap:12px; }
.itinerary-arrival-note { margin:8px 0 0; font-size:12px; color:var(--muted); line-height:1.6; overflow-wrap:anywhere; }
.place-detail-copy .place-arrival h2 { font-size:18px; line-height:1.5; }
.map-location-editor { margin-top:20px; border-top:1px solid var(--line); }
.map-location-editor summary { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:16px 0 0; cursor:pointer; font-size:14px; font-weight:600; list-style:none; }
.map-location-editor summary::-webkit-details-marker { display:none; }
.map-location-editor[open] summary .nav-icon { transform:rotate(180deg); }
#map-external { margin-top:16px; }
#map-city-external { width:100%; white-space:normal; }
#map-city-external span:not(.nav-icon) { flex:1; min-width:0; text-align:left; overflow-wrap:anywhere; }
.map-external-places { padding:0; margin:16px 0 0; list-style:none; }
.map-external-places li { border-bottom:1px solid var(--line); }
.map-external-places a { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 0; color:var(--ink); }
.map-external-places a>span { min-width:0; }
.map-external-places strong,.map-external-places small { display:block; overflow-wrap:anywhere; }
.map-external-places strong { font-size:14px; line-height:1.5; }
.map-external-places small { margin-top:5px; font-size:12px; color:var(--muted); line-height:1.5; }
.travel-site button.login-provider:disabled { justify-content:space-between; opacity:1; background:#f3f6f4; color:#56635b; border-color:#dce4de; }
.provider-state { font-size:12px; font-weight:400; white-space:nowrap; }
.login-continue { margin-top:16px; }
.travel-site .login-modal { border-radius:8px; max-height:calc(100dvh - 40px); overflow-y:auto; }
.itinerary-pin { display:grid !important; place-items:center; border-radius:50%; color:#fff; background:#176948; border:2px solid white; font-weight:700; box-shadow:0 1px 4px #0005; }
.travel-site .leaflet-tile { max-width:none !important; max-height:none !important; }
@media (min-width:721px) {
  .planner-workspace:has(#editor-body:not([hidden])) { display:flex; flex-direction:column; height:max(720px,calc(100dvh - 73px)); padding-block:20px; }
  .planner-workspace:has(#editor-body:not([hidden])) .workspace-heading { margin-bottom:16px; }
  .planner-workspace:has(#editor-body:not([hidden])) .workspace-heading .overline { display:none; }
  .trip-basics-summary { min-height:60px; }
  .editor-days { padding:12px 0; }
  .workspace-heading,.trip-basics-panel,.editor-toolbar { flex:none; }
  #editor-body:not([hidden]) { display:flex; flex:1; flex-direction:column; min-height:0; }
  .planner-workspace:has(#trip-basics-panel[open]) { height:auto; }
  .planner-workspace:has(#trip-basics-panel[open]) #editor-body:not([hidden]) { flex:none; height:max(540px,calc(100dvh - 240px)); }
  .editor-columns { flex:1; min-height:0; grid-template-rows:minmax(0,1fr) auto; }
  .editor-places { display:flex; flex-direction:column; min-height:0; min-width:0; padding-top:16px; padding-bottom:0; }
  .editor-places>.panel-heading,.editor-places>.custom-place { margin-bottom:12px; }
  .editor-places>.place-search { margin-block:10px; }
  .editor-places> :not(#planner-places) { flex:none; }
  #planner-places { min-height:0; overflow-y:auto; scrollbar-gutter:stable; padding-right:8px; }
  .editor-schedule,.editor-map { min-height:0; overflow-y:auto; scrollbar-gutter:stable; }
  .editor-schedule>.panel-heading,.editor-map>.panel-heading { position:sticky; top:-24px; z-index:2; background:#fff; padding:12px 0; }
  .editor-trip-tools { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; padding:20px 0; }
  .editor-trip-tools .trip-tool { border:0; padding:10px 0; }
  .editor-trip-tools .btn { width:auto; margin:0 0 0 auto; }
}
@media (min-width:721px) and (max-width:1100px) {
  .editor-columns { grid-template-columns:280px minmax(0,1fr); }
  .editor-mobile-tabs { display:flex !important; margin:8px 0; margin-left:280px; }
  .editor-mobile-tabs [data-editor-view=places] { display:none; }
  .editor-mobile-tabs button { min-height:44px; }
  .editor-schedule,.editor-map { grid-column:2; grid-row:1; }
  .editor-map { padding:24px; border-left:0; border-top:0; }
  .editor-columns[data-view=map] .editor-schedule,.editor-columns:not([data-view=map]) .editor-map { display:none; }
}
@media (max-width:720px) {
  .editor-columns { display:block; }
  .editor-columns:not([data-view=map]) .editor-map,.editor-columns[data-view=map] .editor-places,.editor-columns[data-view=map] .editor-schedule { display:none; }
  #itinerary-map { height:320px; }
}
