/* Phone layouts are separate from the desktop presentation. */
:root{--mobile-nav-height:0px;--visual-height:100dvh;--keyboard-inset:0px}
.places-heading-main{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%}
.mobile-view-switch,.mobile-filter-fields,.search-clear,.mobile-sheet-name,.mobile-sheet-map,.filter-regions>summary,.mobile-trip-context,.mobile-collection-chip{display:none}
.place-sheet-toolbar{display:contents}

@media(max-width:620px),(hover:none) and (pointer:coarse) and (max-height:540px) and (max-width:1024px){
 html{scrollbar-gutter:auto;-webkit-text-size-adjust:100%;scroll-padding-top:16px;scroll-padding-bottom:calc(var(--mobile-nav-height) + 20px)}
 body{padding:0 env(safe-area-inset-right,0px) calc(var(--mobile-nav-height) + 18px) env(safe-area-inset-left,0px)}
 .page-width{width:calc(100% - 32px)}
 .desktop-nav{display:none}
 #mobile-nav{display:block}
 .masthead{height:60px;padding-inline:16px;gap:8px}
 .brand{gap:6px;min-height:44px}.brand-word{font-size:20px}.brand-emblem{display:grid;width:24px;height:28px}.brand-emblem .icon{width:24px;height:28px}
 .header-tools{gap:3px}.header-tools .icon-button,.header-tools .theme-toggle{width:44px;height:44px;padding:11px;flex-shrink:0}
 .identity-button{min-width:44px;min-height:44px;padding:4px;font-size:12px;gap:5px}.identity-button>.icon{display:none}.identity-name{display:none}.avatar-self{width:32px;height:32px;font-size:11px}
 .bottom-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;position:fixed;inset:auto 0 0;z-index:1500;min-height:64px;padding:5px max(8px,env(safe-area-inset-right,0px)) calc(5px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));gap:0;border-top:1px solid var(--line);background:var(--paper)}
 .bottom-nav a{display:grid;grid-template-rows:28px auto;align-content:start;justify-items:center;align-items:start;gap:4px;min-width:0;min-height:54px;padding:4px 0;color:var(--muted);font-size:.6875rem;line-height:1.25;font-weight:500;letter-spacing:0;text-align:center}
 .bottom-nav .nav-icon{width:44px;height:28px;display:grid;place-items:center;border-radius:10px}
 .bottom-nav a .icon{display:block;width:24px;height:24px;max-width:none;transform:none;stroke-width:2;vertical-align:initial}
 .bottom-nav .icon *{vector-effect:non-scaling-stroke}
 .bottom-nav .nav-label{display:block;line-height:1.25;max-width:100%;text-wrap:balance;overflow-wrap:anywhere}
 .bottom-nav a[aria-current=page]{color:var(--forest);font-weight:650}
 .bottom-nav a[aria-current=page]::before{content:none}
 .bottom-nav a[aria-current=page] .nav-icon{background:var(--forest-soft)}
 .bottom-nav a:focus-visible{outline-offset:-2px;border-radius:8px}
 html[data-soft-keyboard] #mobile-nav{display:none}
 html[data-soft-keyboard] body:not([data-page=chat]):not([data-view=map]){padding-bottom:calc(var(--keyboard-inset) + 24px)}

 /* Put places ahead of repeated planning statistics. */
 body[data-page=explore] .trip-overview{padding-top:10px}
 body[data-page=explore] .overview-meta{display:none}
 body[data-page=explore] .trip-summary{display:none}
 .mobile-trip-context{display:block;font-size:12px;line-height:1.5;color:var(--muted);margin:0;padding:1px 0}
 body[data-page=explore] .places-section,body[data-view=picks] .places-section{padding-top:16px}
 body[data-page=explore] .places-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
 .places-heading-main{width:auto;min-width:0;flex:1;flex-direction:column;align-items:flex-start;gap:4px}
 .places-heading h1{font-size:26px;line-height:1.2;letter-spacing:-.7px}
 .places-heading #result-count{font-size:12px;line-height:1.4;white-space:normal;margin:0;text-align:left}
 .mobile-view-switch{display:flex;align-items:center;gap:2px;border:1px solid var(--line);padding:3px;border-radius:8px;background:var(--surface);flex-shrink:0}
 .mobile-view-switch button{min-width:44px;min-height:44px;padding:7px 10px;border-radius:5px;background:transparent;font-size:12px;font-weight:600;color:var(--muted)}
 .mobile-view-switch button[aria-pressed=true]{background:var(--forest);color:var(--paper)}
 .destination-tabs{gap:6px;scroll-snap-type:x proximity;overscroll-behavior-x:contain;padding:2px 16px 5px 0;margin:0 -16px 8px 0}
 .destination-tabs button{flex:none;padding:9px 10px;min-height:44px;min-width:44px;gap:6px;font-size:12px;border-radius:6px;scroll-snap-align:start}
 .destination-tabs button span{display:none}
 .destination-tabs button:not([data-destination-theme=all])::before{width:6px;height:6px}
 .explore-toolbar{display:flex;flex-wrap:nowrap;gap:8px;margin-bottom:9px}
 .search-field{height:48px;min-width:0;padding:0 10px;gap:8px;border-radius:7px;position:relative}
 .search-field input{font-size:16px;min-width:0;height:46px;padding:9px 0!important}
 .search-field input::-webkit-search-cancel-button{-webkit-appearance:none}
 .search-field kbd{display:none}.search-field #search-icon .icon{width:18px;height:18px}
 .search-clear{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;padding:10px;margin-right:-8px;background:transparent;border-radius:5px;color:var(--muted)}
 .search-clear .icon{width:18px;height:18px}
 .filter-button{min-width:82px;height:48px;min-height:48px;padding:10px 12px;font-size:12px;gap:7px;border-radius:7px}
 .sort-control{display:none}
 .category-chips{gap:7px;margin:0 -16px 8px 0;padding:2px 16px 5px 0;scroll-snap-type:x proximity;overscroll-behavior-x:contain}
 .category-chip{min-height:44px;padding:9px 13px;font-size:12px;gap:6px;scroll-snap-align:start}.category-chip .icon{width:16px;height:16px}
 .collection-grid{display:none}
 .mobile-collection-chip{display:inline-flex}
 .collection-card{flex:0 0 148px;min-height:48px;gap:8px;scroll-snap-align:start}.collection-card img{width:44px;height:48px}.collection-label{padding:7px 8px 7px 0}.collection-label strong{font-size:12px;line-height:1.35}.collection-label>span{display:none}
 .active-filters{gap:7px;margin-bottom:12px}.filter-token{min-height:44px;padding:9px 11px;font-size:12px}
 .active-filters:empty{margin:0}
 .place-grid{grid-template-columns:1fr;gap:18px}
 .card-body{padding:17px}.card-title{font-size:21px;line-height:1.25}.card-description{font-size:14px;line-height:1.6}.card-facts{font-size:13px;gap:10px}.card-kicker{font-size:11px;letter-spacing:.2px}.card-kicker>span:last-child{max-width:42%}
 .card-title button{display:block;min-height:44px;width:100%}
 .card-save{width:44px;height:44px;padding:11px;right:10px;top:10px}.card-save .icon{width:22px;height:22px}
 .card-badge{font-size:11px;padding:6px 9px;max-width:calc(100% - 74px)}
 .card-tools{margin:0 0 8px;min-height:44px}.card-tools .text-button{min-height:44px;padding:9px 0;font-size:12px}
 .avatar-stack{min-width:44px;min-height:44px;align-items:center}
 .vote{gap:7px;padding-top:12px}.vote-btn{min-height:46px;font-size:13px;padding:10px 5px;gap:5px}.vote-btn .icon{width:15px;height:15px}.vote-n{font-size:11px}
 .photo-link,.photo-zoom{min-height:44px;font-size:12px;padding:10px 12px}.photo-link .icon,.photo-zoom .icon{width:16px;height:16px}
 .empty-state{padding:35px 20px}.empty-state h3{font:600 23px/1.3 var(--text)}.empty-state p{font-size:14px}.load-more{min-height:48px;font-size:14px;margin:24px auto}

 /* Native inputs and reachable sheet actions. */
 input:not([type=checkbox]),select,textarea{font-size:16px;min-height:46px}
 select{-webkit-appearance:none;appearance:none;height:48px;min-height:48px;padding:10px 36px 10px 13px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238b8172' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-size:16px;background-repeat:no-repeat}
 .button,.text-button,.icon-button{touch-action:manipulation}
 .button{min-height:44px}.text-button{min-height:44px}
 .sheet{position:fixed;top:auto;bottom:var(--keyboard-inset);left:env(safe-area-inset-left,0px);right:env(safe-area-inset-right,0px);width:auto;max-width:none;max-height:calc(var(--visual-height) - 8px - env(safe-area-inset-top,0px));margin:0;border-radius:18px 18px 0 0;padding-bottom:env(safe-area-inset-bottom,0px);scroll-padding-top:68px;scroll-padding-bottom:20px}
 .sheet .dialog-body{padding:24px 20px 28px}.dialog-body>h2,.identity-sheet h2,.place-sheet #place-title{font-size:26px;line-height:1.25}
 .dialog-close,.detail-close,.photo-viewer-close{width:44px;height:44px;padding:11px}
 .dialog-close:focus-visible,.detail-close:focus-visible,.photo-viewer-close:focus-visible{outline-offset:-3px}
 .place-sheet-toolbar{display:flex;align-items:center;gap:8px;position:sticky;top:0;z-index:10;min-height:56px;padding:5px 12px;border-bottom:1px solid var(--line);background:var(--paper)}
 .place-sheet-toolbar .detail-close{position:static;flex-shrink:0;background:transparent}
 .mobile-sheet-name{display:block;flex:1;min-width:0;font-size:13px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .mobile-sheet-map{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:8px 5px;font-size:12px;font-weight:600;flex-shrink:0}.mobile-sheet-map .icon{width:17px;height:17px}
 .place-sheet .detail-visual .place-media{aspect-ratio:1.6}.place-sheet .dialog-body{padding-top:21px}
 .place-sheet .detail-description{font-size:15px;line-height:1.65}.detail-practical{font-size:14px;line-height:1.65;grid-template-columns:86px minmax(0,1fr);gap:13px 15px}.detail-practical dd{overflow-wrap:anywhere}
 .detail-actions{gap:8px}.detail-actions .button{min-height:46px;padding:10px 11px;font-size:12px;gap:7px}
 .detail-links .button{min-height:46px;font-size:13px}.detail-links .text-button{font-size:12px;line-height:1.6}
 .place-note-heading h3{font-size:17px}.place-note-text{font-size:14px;line-height:1.7}.place-note-meta,.place-note-editor .field-help{font-size:12px}.place-note-editor .field-label{font-size:13px}.place-note-editor textarea{font-size:16px;min-height:155px}
 .place-note-actions .text-button,.place-note-actions .button,.place-note-history-button{font-size:13px;min-height:44px}
 .verification-note,.callout,.place-sheet .field-help,.photo-credit{font-size:12px!important;line-height:1.65}
 .research-note{font-size:12px;line-height:1.7}.research-note summary{min-height:44px;display:flex;align-items:center}
 #identity-dialog{top:8px;bottom:calc(var(--keyboard-inset) + 8px);left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));height:fit-content;max-width:460px;margin:auto;border:1px solid var(--line);border-radius:14px;padding-bottom:0}
 .mobile-filter-fields{display:block;margin:21px 0}.mobile-filter-fields .field-label{font-size:14px;margin-top:18px}.mobile-filter-fields select{width:100%;font-size:16px;min-height:48px}
 .filter-regions{border-block:1px solid var(--line);margin:21px 0}.filter-regions>summary{display:flex;align-items:center;justify-content:space-between;min-height:48px;font-size:14px;font-weight:600;cursor:pointer;list-style:none}.filter-regions>summary::after{content:"+";font-size:21px;font-weight:400}.filter-regions[open]>summary::after{content:"−"}.filter-regions>summary::-webkit-details-marker{display:none}.filter-regions fieldset{margin-top:8px}.filter-regions legend{display:none}
 .filter-sheet .filter-chips{gap:8px}.filter-sheet .filter-chips button{font-size:13px;min-height:44px;padding:10px 13px}.filter-sheet .check-field{font-size:14px;min-height:48px}.filter-sheet legend{font-size:14px}
 .filter-sheet{padding-bottom:0}.filter-sheet .dialog-body{padding-bottom:0}.filter-sheet .sheet-footer{gap:12px;min-height:76px;margin-inline:-20px;padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));bottom:0}.sheet-footer .button,.sheet-footer .text-button{min-height:46px;font-size:13px}
 .compare-tray{bottom:calc(var(--mobile-nav-height) + 10px);max-width:calc(100% - 24px);gap:10px;padding:8px 8px 8px 14px}.compare-tray .button{min-height:44px;font-size:13px}.compare-tray .icon-button{width:44px;height:44px;padding:12px}.compare-tray>span{font-size:12px}
 .toast{bottom:calc(var(--mobile-nav-height) + 12px);max-width:calc(100% - 32px);font-size:13px;white-space:normal}
 body:has(.compare-tray:not([hidden])) .toast{bottom:calc(var(--mobile-nav-height) + 82px)}

 /* Reading, trip details and form entry. */
 .picks-tabs{gap:7px}.picks-tabs button{font-size:13px;min-height:44px;padding:10px 13px}.picks-intro>p{font-size:14px;line-height:1.6}.picks-intro{margin-bottom:17px}
 .board{padding-top:18px}.board-jump{min-height:48px;gap:22px;font-size:13px;padding:3px 16px 3px 0;margin-right:-16px;scroll-snap-type:x proximity}.board-jump a{min-height:44px;scroll-snap-align:start}
 .board-section h2{font-size:24px}.section-description,.board-head p:not(.small-label){font-size:14px;line-height:1.65}.board-section{scroll-margin-top:60px}
 .board details>summary{min-height:44px;line-height:1.5}
 .party-control select{width:76px;min-width:76px;height:48px;padding:10px 36px 10px 12px;font-size:16px}
 .trip-constraints p,.field-note p,.field-note summary{font-size:14px;line-height:1.65}.field-note summary{min-height:44px}
 .traveler-card h3{font-size:14px}.traveler-card p,.traveler-card small{font-size:12px;line-height:1.45}.traveler-card .avatar{width:28px;height:28px}
 .booking-card{padding:16px 13px}.booking-card h3{font-size:18px;line-height:1.25}.booking-card p{font-size:13px;line-height:1.65}.booking-card-foot{font-size:11px}.status-pill{font-size:10px;padding:4px 7px;line-height:1.3}
 .flight-card>header strong{font-size:15px}.flight-card>header span,.flight-city,.flight-local,.flight-card>footer{font-size:12px}.flight-source{font-size:12px;line-height:1.6;min-height:44px;padding-top:8px}.flight-route{grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr);gap:10px}.flight-city{min-height:36px}.flight-route strong{font-size:21px}.flight-connections p,.flight-pending p{font-size:13px}
 .suggest-form-panel input,.suggest-form-panel select,.suggest-form-panel textarea,.booking-form select,.booking-form textarea{font-size:16px}.suggest-form-panel .field-label{font-size:14px}.suggest-form-panel .field-help,.suggestion-meta,.suggestion-author{font-size:12px;line-height:1.6}.suggestion-note{font-size:14px;line-height:1.7}.suggestion-actions .text-button{font-size:13px;min-height:44px}
 .suggest-form-panel{scroll-margin-block:16px}.suggest-form-panel .form-actions{gap:10px}.suggest-form-panel .form-actions .button{min-height:48px}
 .site-footer{font-size:12px;flex-wrap:wrap;padding-block:23px}.site-footer a{display:inline-flex;align-items:center;min-height:44px}
 .privacy-page p{font-size:15px;line-height:1.7}

 /* Fit the map and chat to Safari's visible viewport, including the keyboard. */
 body[data-view=map]{height:var(--visual-height);padding-bottom:var(--mobile-nav-height);display:flex;flex-direction:column}
 body[data-view=map] #site-header{flex-shrink:0}body[data-view=map]>main{flex:1;min-height:0}
 body[data-view=map] .trip-overview,body[data-view=map] .site-footer,body[data-view=map] .collection-grid{display:none}
 body[data-view=map] .places-section{width:calc(100% - 32px);height:100%;display:flex;flex-direction:column;min-height:0;padding-top:12px;padding-bottom:10px}
 body[data-view=map] .places-heading{flex-shrink:0;margin-bottom:8px}body[data-view=map] .places-heading-main h1{font-size:23px}
 body[data-view=map] .destination-tabs,body[data-view=map] .explore-toolbar,body[data-view=map] .category-chips,body[data-view=map] .active-filters{flex-shrink:0}
 body[data-view=map] .active-filters:not(:empty){max-height:52px}
 body[data-view=map] .map-layout{display:block;flex:1;min-height:0!important;height:auto!important}body[data-view=map] .map-pane{height:100%;min-height:0!important}
 body[data-view=map] .results-column{display:none}
 .map-controls{gap:6px;right:9px;top:9px}body[data-view=map] .map-control{height:44px;min-height:44px;min-width:44px;padding:9px 11px;font-size:12px}
 .leaflet-touch .leaflet-control-zoom a{width:44px;height:44px;line-height:44px;font-size:23px}
 body[data-view=map] .map-key{font-size:11px;left:8px;bottom:24px;max-width:calc(100% - 16px);gap:5px 10px;padding:8px 10px}.destination-key{gap:8px}.leaflet-control-attribution{max-width:100%;font-size:10px}
 body[data-page=chat]{padding-bottom:var(--mobile-nav-height);height:var(--visual-height)}
 .chat-page{padding-block:15px 10px;width:calc(100% - 24px)}.chat-heading{margin-bottom:12px}.chat-heading h1{font-size:25px}.chat-heading p,.chat-heading>span{font-size:12px}.chat-message-meta strong,.chat-message-meta time,.chat-pending{font-size:12px;line-height:1.4}.chat-message-meta{gap:4px 10px}.chat-bubble p{font-size:15px;line-height:1.6}
 .chat-composer{padding:10px 10px 9px}.chat-composer textarea{font-size:16px;min-height:60px}.chat-composer>.button{min-height:48px;font-size:14px}.chat-composer-help{font-size:11px;line-height:1.4;flex-wrap:wrap}.chat-keyboard{display:none}.chat-older{font-size:13px;min-height:44px}
 html[data-soft-keyboard] .chat-heading p,html[data-soft-keyboard] .chat-composer-help{display:none}
 html[data-soft-keyboard] .chat-heading{margin-bottom:8px}html[data-soft-keyboard] .chat-page{padding-top:8px}
 html[data-soft-keyboard] .chat-composer textarea{min-height:48px;max-height:min(120px,calc(var(--visual-height) * .25))}
}
@media(hover:none) and (pointer:coarse) and (max-height:540px) and (min-width:621px) and (max-width:1024px){
 body[data-page=explore] .trip-overview,.category-chips,.collection-grid{display:none}
 .masthead{height:52px}.places-section,body[data-page=explore] .places-section{padding-top:10px}
 .places-heading h1{font-size:23px}.places-heading-main{flex-direction:row;align-items:center}.places-heading #result-count{margin-left:auto}
 .place-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.traveler-roster{grid-template-columns:repeat(3,minmax(0,1fr))}.flight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .place-sheet .detail-visual .place-media{aspect-ratio:2.8}.photo-frame{height:55dvh}
 .chat-heading h1{font-size:21px}.chat-heading p{display:none}.chat-page{padding-block:8px}.chat-composer textarea{min-height:48px;height:48px}.chat-composer-help{display:none}
 body[data-view=map] .places-section{display:grid;grid-template-columns:260px minmax(0,1fr);grid-template-rows:auto auto auto 1fr;column-gap:14px;padding-top:8px}
 body[data-view=map] .places-heading{grid-column:1;grid-row:1}body[data-view=map] .places-heading-main{flex-direction:column}
 body[data-view=map] .destination-tabs{grid-column:1;grid-row:2;margin-right:0;padding-right:0}
 body[data-view=map] .explore-toolbar{grid-column:1;grid-row:3;margin-bottom:6px}
 body[data-view=map] .active-filters{grid-column:1;grid-row:4;align-self:start}
 body[data-view=map] .map-layout{grid-column:2;grid-row:1/5;height:100%!important}
}
