/* Map, filters and results share the same order on every screen. */
.leaflet-control-attribution .leaflet-attribution-flag{display:none!important}
.explorer{--map-height:clamp(440px,calc(100dvh - 410px),850px);height:auto;min-height:0;grid-template-areas:"map results" "filters filters";align-items:start}
.map-panel{grid-area:map;height:var(--map-height)}
.results-panel{grid-area:results;height:var(--map-height)}
.filter-dock{grid-area:filters;margin-top:0;min-width:0}
.meal-options{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;padding:12px 0;border-top:1px solid #eeeee5}
.lunch-filter{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:12px;font-weight:500}
.lunch-filter input{width:15px;height:15px;margin:0}
.lunch-filter svg{width:16px;height:16px;color:var(--accent)}
#lunch-count{background:#edf1e5;padding:3px 7px;border-radius:5px;font-size:10px;color:#60764e}
.meal-options>span{font-size:10px;color:var(--muted)}
.nearby-controls{display:flex;align-items:center;gap:10px;margin:12px 20px 0;flex-wrap:wrap}
.nearby-button{display:flex;align-items:center;gap:6px;border:1px solid #dfe5d7;padding:7px 9px;border-radius:6px;background:#f0f4e9;font-size:11px;color:#526848}
.nearby-button svg{width:14px;height:14px}
.pick-location-button{background:none;color:#79876e;padding:7px 0;font-size:10px;text-decoration:underline;text-underline-offset:3px}
.picking-location,.picking-location .leaflet-interactive{cursor:crosshair!important}
#location-status{font-size:9px;line-height:1.5;color:#858e7a;flex:1;min-width:95px}
.place-extras{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0 8px 47px}
.place-extras:empty{display:none}
.lunch-badge,.distance-badge{display:inline-flex;gap:5px;align-items:center;font-size:10px;line-height:1.5;padding:4px 6px;border-radius:5px}
.lunch-badge{background:#f5ecdd;color:#8e633a}
.distance-badge{background:#eaf0f8;color:#426b9f}
.lunch-badge svg,.distance-badge svg{width:12px;height:12px}
.leaflet-popup-content .place-extras,.place-dialog .place-extras{margin-left:0}
.places-list{scrollbar-width:thin;scrollbar-color:#c8ccbf transparent;overscroll-behavior:contain}
.venue-photo{position:relative;margin:0 0 12px;border-radius:9px;overflow:hidden;background:#eeeade;height:145px;isolation:isolate}
.venue-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s ease}
.place-card:hover .venue-photo img{transform:scale(1.025)}
.venue-photo figcaption{position:absolute;bottom:0;right:0;left:0;padding:18px 9px 7px;background:linear-gradient(transparent,#0008);text-align:right;color:#fff;font-size:8px;line-height:1.4}
.venue-photo figcaption a{color:#fff;text-decoration:none;text-shadow:0 1px 3px #0005}
.venue-photo figcaption a:hover{text-decoration:underline}
.place-card.has-photo .save-place{top:21px;right:18px;background:#fffefaf2;border-radius:50%;width:29px;height:29px;box-shadow:0 1px 6px #0002}
.popup-photo{height:150px;margin:0 0 13px;border-radius:8px}
.place-dialog .popup-photo{height:200px}
@media(max-width:650px){.venue-photo{height:175px}.popup-photo{height:150px}.place-card.has-photo .save-place{top:23px;right:18px}}
.expanded-filters{border-top:1px solid #eeeee5;padding:13px 0}
.expanded-filters>summary{cursor:pointer;font-size:12px;font-weight:500}
#active-tag-count{color:var(--accent);font-size:10px;margin-left:8px}
.filter-help{font-size:10px;color:var(--muted);margin:10px 0 14px;line-height:1.5}
.extra-filter-row{display:flex;align-items:flex-start;gap:16px;margin:12px 0}
.extra-filter-row>span{width:110px;flex-shrink:0;font-size:11px;color:#7e8973;padding-top:8px}
.filter-chips{display:flex;flex-wrap:wrap;gap:6px}
.extra-filter-chip{border:1px solid #e2e5d9;background:transparent;padding:7px 9px;border-radius:6px;font-size:10px;display:flex;gap:6px;align-items:center}
.extra-filter-chip small{font-size:8px;opacity:.6}
.extra-filter-chip[aria-pressed=true]{background:#edf2e4;border-color:#879b70;color:#435b35}
.personal-filter-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid #eeeee5;padding:12px 0;font-size:11px}
.personal-filter-row select{background:#fffefa;border:1px solid #dedfd4;border-radius:6px;padding:7px 10px;color:var(--ink);max-width:100%}
.personal-filter-row>span{font-size:9px;color:var(--muted)}
.personal-rating{margin:10px 0 0 47px;border-top:1px solid #edf0e5;padding-top:8px;font-size:10px;color:#7b876f;cursor:default}
.personal-rating>summary{cursor:pointer;line-height:1.6}
.personal-rating>p{margin:0 0 6px!important;font-size:10px!important;color:#7b876f}
.personal-actions{display:flex;flex-wrap:wrap;gap:5px;padding-top:7px}
.personal-choice{padding:5px 7px;background:#f1f3eb;border-radius:5px;font-size:9px;color:#77846a}
.personal-choice.active{background:#dfe9d3;color:#415a30;box-shadow:inset 0 0 0 1px #a7bb93}
.personal-choice[data-personal=no_return].active{background:#f6e2d9;color:#a45b42;box-shadow:inset 0 0 0 1px #dbb3a2}
.personal-clear{font-size:9px;color:#999b93;background:transparent;padding:5px}
.leaflet-popup-content .personal-rating,.place-dialog .personal-rating{margin-left:0}
@media(min-width:1700px){.explorer{height:auto;--map-height:calc(100dvh - 440px)}}
@media(max-width:1150px){.place-extras,.personal-rating{margin-left:0}}
@media(max-width:850px){.explorer{height:auto;--map-height:480px}.nearby-controls{margin-left:15px;margin-right:15px}}
@media(max-width:650px){
  .explorer{display:flex;flex-direction:column;gap:12px;height:auto;min-height:0}
  .map-panel{height:clamp(310px,52dvh,440px);width:100%;flex:none;position:relative}
  .filter-dock{width:100%;margin-top:0;flex:none;order:0}
  .results-panel{display:flex;width:100%;height:620px;max-height:85dvh;min-height:420px;flex:none;border-radius:12px;order:1}
  .places-list{padding:0 10px 10px}
  .place-extras{margin-left:47px}
  .personal-rating{margin-left:47px}
  .extra-filter-row{display:block;margin:14px 0}
  .extra-filter-row>span{display:block;width:auto;padding:0 0 8px}
  .extra-filter-chip{font-size:10px;padding:8px 9px}
  .nearby-controls{margin-left:19px;margin-right:19px}
  .meal-options{padding:12px 0;gap:7px}
  .meal-options>span{width:100%;font-size:9px}
  .city-pill{font-size:8px}
}

/* A flat map and a denser, wider list keep the places in view. */
.site-header{height:70px}
.intro{padding:20px 0}
.intro h1{font-size:clamp(25px,2.7vw,38px)}
.intro-description{margin-top:8px}
.explorer{grid-template-columns:minmax(0,1fr) minmax(400px,43%);--map-height:clamp(560px,calc(100dvh - 220px),1000px)}
.leaflet-tile-pane{filter:none}
.map-style-control{position:absolute;bottom:18px;left:18px;z-index:600;display:flex;align-items:center;gap:8px;padding:8px 10px;background:#fffefaf5;border:1px solid #dce1d6;border-radius:8px;box-shadow:0 2px 10px #27332212;font-size:10px;color:#748068}
.map-style-control select{border:0;background:transparent;font:inherit;font-size:12px;color:#35462e;cursor:pointer;max-width:120px}
.results-top{padding:16px 18px 10px}
.results-top .eyebrow{display:none}
.search-box{margin:0 16px;padding:8px 10px}
.nearby-controls{margin:9px 16px 0;gap:8px}
#location-status{font-size:9px}
.list-caption{margin:8px 18px 4px}
.data-note{padding:8px 16px;font-size:8px}
.places-list{min-height:0;padding:0 8px 8px}
.place-card{display:flex;align-items:flex-start;gap:12px;padding:12px 10px;min-height:120px}
.place-card .venue-photo{width:86px;height:90px;flex:0 0 86px;margin:0;border-radius:7px}
.place-card .venue-photo figcaption{font-size:6px;padding:14px 4px 4px;text-align:center}
.card-content{min-width:0;flex:1}
.place-card .place-card-top{gap:8px;align-items:center;padding-right:26px}
.place-card.has-photo .place-type-icon{display:none}
.place-card .place-type-icon{height:28px;width:28px;border-radius:7px}
.place-card .place-type-icon svg{width:17px;height:17px}
.place-card .place-card-heading h3{font-size:13px;line-height:1.35;margin:0;padding-right:0}
.place-card .category-label{font-size:9px;line-height:1.6}
.place-card .place-address{font-size:10px;margin:4px 0 6px;line-height:1.4}
.place-card .place-extras{margin:0 0 6px;gap:5px}
.place-card .lunch-badge,.place-card .distance-badge{font-size:9px;padding:2px 5px}
.place-card .ratings-row{margin:0;gap:5px}
.place-card .personal-rating{margin:6px 0 0;padding-top:4px;font-size:9px}
.place-card .save-place,.place-card.has-photo .save-place{top:10px;right:9px;width:26px;height:26px;border-radius:6px;background:transparent;box-shadow:none}
.filter-heading small{display:block;margin-top:5px;font-size:9px;font-weight:400;color:var(--muted);white-space:normal;max-width:110px;line-height:1.4}
@media(min-width:1700px){.intro{padding:24px 0}.explorer{grid-template-columns:minmax(0,1fr) minmax(470px,38%)}}
@media(min-width:651px) and (max-width:950px){.explorer{grid-template-columns:minmax(0,1fr) 365px}.app-shell{padding:0 16px}.map-label{left:12px;top:12px;font-size:9px;gap:6px}.map-label-divider{display:none}.map-style-control{left:12px;bottom:26px}.place-card{gap:9px}.place-card .venue-photo{width:68px;flex-basis:68px;height:84px}}
@media(max-width:650px){
 .site-header{height:65px}.intro{padding:19px 3px}.intro h1{font-size:26px}
 .explorer{gap:12px;--map-height:400px}
 .map-panel{height:clamp(310px,52dvh,440px)}
 .map-style-control{bottom:26px;left:12px;padding:7px 9px}
 .results-panel{height:740px;max-height:90dvh;min-height:480px;order:0}
 .filter-dock{order:1}
 .place-card{gap:10px;padding:12px 8px}
 .place-card .venue-photo{width:76px;flex-basis:76px;height:88px}
 .filter-heading{display:block;width:100%;padding:0}
 .filter-heading small{display:inline;margin-left:9px;max-width:none}
}
.place-card{min-height:110px;padding-top:10px;padding-bottom:10px}
.place-card .place-card-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 7px}
.place-card .place-card-heading h3{margin:0}
.place-card .category-label{display:inline}
.card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:5px 7px}
.place-card .card-meta .place-extras{margin:0}
.place-card .personal-rating{border-top:0;padding-top:0;margin-top:6px}
.filter-heading{display:block}
.expand-list{flex:0 0 30px;width:30px;height:30px;border:1px solid #e4e7db;border-radius:7px;color:#748269}
.results-top{gap:8px;align-items:center}
.results-top>div:first-child{flex:1}
.list-dialog{padding:0;border:1px solid #e0e4d6;border-radius:16px;width:calc(100vw - 48px);max-width:1700px;height:calc(100dvh - 48px);max-height:none;background:var(--panel);box-shadow:0 16px 80px #17271b40;overflow:hidden}
.list-dialog::backdrop{background:#24332260;backdrop-filter:blur(4px)}
.list-dialog .results-panel{width:100%;height:100%;border:0;border-radius:0;max-height:none;min-height:0}
.list-dialog .places-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));align-content:start;gap:0 12px;padding:0 16px 16px}
.list-dialog .place-card{min-width:0}
@media(max-width:650px){.list-dialog{width:calc(100vw - 20px);height:calc(100dvh - 20px);border-radius:12px}.list-dialog .places-list{display:block;padding:0 8px 8px}}

/* Personal decisions are available immediately, without an extra disclosure. */
.place-card{container-type:inline-size;container-name:place-card}
.place-card .personal-rating>p{font-size:9px!important;margin-bottom:0!important;line-height:1.5}
.place-card .personal-actions{padding-top:5px;gap:4px}
.place-card .personal-choice{font-size:9px;padding:5px 7px;min-height:25px}
@container place-card (min-width:620px){
 .card-content{display:grid;grid-template-columns:minmax(0,1fr) 220px;column-gap:20px}
 .card-content>.place-card-top,.card-content>.place-address,.card-content>.card-meta{grid-column:1}
 .card-content>.personal-rating{grid-column:2;grid-row:1 / span 3;margin:0;align-self:center;padding-right:10px}
 .card-content>.personal-rating .personal-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .card-content>.personal-rating .personal-clear{grid-column:1 / -1;text-align:left}
}

.reset-all-button{font-size:10px;background:transparent;border:1px solid #dec9bd;color:#a1664c;border-radius:6px;padding:8px 10px;white-space:nowrap}
.reset-all-button:hover{background:#f9eee7}
.reset-dialog{max-width:470px;padding:26px}
.reset-dialog h2{margin-top:0}
.reset-personal-option{display:flex;align-items:flex-start;gap:10px;padding:15px 0;margin:8px 0 16px;border-top:1px solid #e8e8dd;font-size:12px;line-height:1.6;cursor:pointer}
.reset-personal-option input{margin-top:4px;flex:none;accent-color:var(--accent)}
.reset-personal-option small{display:block;font-size:10px;line-height:1.6;color:var(--muted);margin-top:4px}
.reset-dialog-actions{display:flex;gap:12px;justify-content:flex-end;align-items:center}
.reset-dialog-actions .dialog-done{width:auto;margin:0;padding:11px 17px}
.reset-cancel{padding:11px 17px;border:1px solid #e0e3d7;border-radius:7px;background:transparent;font-size:12px;color:var(--ink)}
@media(max-width:650px){.reset-dialog{padding:22px;max-width:calc(100vw - 24px)}.dock-footnote{display:none}}
