/* GrubGlance: a clear, map-first food finder. Blue is action; food brands keep their own color. */
:root{--green:#9e2dcf;--mint:#f7eefb;--cream:#fbf7fc;--ink:#361643;--muted:#765683;--border:#e9dcef}
body{font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink)}
button,a,input,select{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ffb347}button:disabled{opacity:.55;cursor:wait}
.sidebar{background:#fff;border-right:1px solid var(--border)}.sidebar-note{background:#f8f0fc}.brand-icon{border-radius:15px}.sidebar nav button{min-height:50px}.sidebar nav button.active{background:#f7eefb}.topbar{background:#fff;border-bottom:1px solid var(--border)}
.map-stage{border:1px solid var(--border)}.map-sheet{background:#fff;color:var(--ink);border:1px solid #e9dcef;box-shadow:0 -8px 40px #34124320;border-radius:28px 28px 0 0}.sheet-header{padding:10px 20px 0;background:#fff}.sheet-handle{color:var(--ink);font-size:14px;padding:0 0 12px}.sheet-handle i{background:#dbcce2;width:38px;height:4px;margin-bottom:9px}
.map-sheet .location-actions{display:grid;grid-template-columns:1fr;gap:10px}.map-sheet .location-actions>.primary{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;padding:12px 18px;border-radius:14px;background:#9e2dcf;color:#fff;font-size:16px;font-weight:750;box-shadow:0 4px 12px #9e2dcf24}.map-sheet .location-actions>.primary::first-letter{font-size:inherit}.map-sheet form{border:1px solid #e3d4ea;border-radius:14px;min-height:46px;background:#fbf7fc}.map-sheet input{background:transparent}.map-sheet form .secondary{background:transparent;color:#9e2dcf;font-weight:700;padding:10px 14px}.map-sheet .location-actions>.primary:active{transform:scale(.99)}
.nearby-controls{gap:8px;margin-top:14px}.nearby-controls label{color:var(--muted)}.nearby-controls select{background:#f8f3fa;border:1px solid #e9dcef;color:var(--ink);padding:7px}.segmented{background:#f5eef8;padding:3px}.segmented button{color:#765683;min-height:38px;padding:8px 13px}.segmented button[aria-pressed=true]{background:white;color:#7f25a6;box-shadow:0 1px 4px #43185618}.map-sheet .chip{color:#684677;background:#f7f1f9;border:1px solid #e9dcef;min-height:40px}.map-sheet .chip[aria-pressed=true]{color:#7b23a1;background:#f7eefb;border-color:#dcb3ee}.location-status{color:#765683;font-size:13px;line-height:1.5;margin:10px 0 14px}.sheet-body{padding:0 20px 22px;background:#fbf7fc}.nearby-summary{color:#765683;margin:16px 0 12px}.restaurant-card{border:1px solid #ebe0ef;border-radius:18px;padding:16px;box-shadow:0 2px 5px #3c184c03}.restaurant-info h3{font-size:17px;letter-spacing:-.35px}.restaurant-card .chain-logo,.detail-place-title .chain-logo{width:46px;height:46px;border:1px solid #f3edf5;border-radius:13px;flex-shrink:0;padding:3px}.restaurant-actions a,.restaurant-actions button{min-height:44px;font-weight:700;color:#9e2dcf}.coverage-badge.available{background:#edf7f0;color:#23623d}.coverage-badge{line-height:1.4}.map-attribution{color:#83688e}.map-sheet #browse-menus{display:block;width:100%;min-height:48px;border:1px solid #e1cdea;border-radius:14px;margin-top:18px;background:white;color:#7f25a6}.map-sheet .empty{border:1px solid #e9dcef}.stale-notice{background:#fff5df;color:#705522}.loading-cards i{background:#ecdff2}
.restaurant-detail{border:1px solid #ebe0ef;margin-top:14px;padding:16px}.menu-category h3{font-size:16px;letter-spacing:-.3px;margin:24px 0 12px}.restaurant-detail .cards{grid-template-columns:1fr}.restaurant-detail .meal-card{margin:0}.restaurant-detail>p{color:#765683;line-height:1.6}.detail-place-title h2{font-size:23px;letter-spacing:-.7px}.map-recenter{border:1px solid #e9dcef;color:#9e2dcf}.restaurant-pin svg{filter:drop-shadow(0 2px 3px #3c184c30)}
.discover-below{max-width:1200px;margin:auto}.section-head h2,.page-title{letter-spacing:-.8px}.section-head p{max-width:640px;line-height:1.6}.chain{min-height:74px;border-radius:16px}.chain.active{border-color:#cf95e8;background:#f8f0fc}.chain-logo img{object-fit:contain}.chain-list{gap:10px}.category-tabs{display:flex;gap:8px;overflow:auto;padding:4px 0 12px;scrollbar-width:thin}.category-tab{white-space:nowrap;border:1px solid #e7d8ed;border-radius:12px;padding:11px 16px;min-height:44px;background:#fff;color:#72527f;font-size:14px;font-weight:650}.category-tab.active{background:#361643;color:white;border-color:#361643}.filter-chips{gap:8px}.chip{min-height:40px}.filter-chips .chip{border-radius:10px}.meal-card{border:1px solid #ebe0ef;border-radius:18px!important;box-shadow:none}.card-art{background:#f7f0fa!important}.card-body h3{line-height:1.45}.save-btn{width:36px;height:36px;z-index:1}.photo-unavailable{min-height:120px;gap:8px;text-align:center;padding:8px}.photo-unavailable>strong{font-size:13px}.photo-unavailable>span{font-size:12px}.photo-unavailable .chain-logo{width:55px;height:55px;background:white}.match-tag{font-size:11px;letter-spacing:.45px;font-weight:700;color:#6b3582;background:#f4e7f9}.card-footer button{min-height:44px}.notice{line-height:1.7;background:#f5edf9}.target-strip{border:1px solid #e9dcef;background:white;border-radius:18px}.target-strip button{min-height:44px}.form-panel{border:1px solid #ebe0ef;box-shadow:none}.source-list article{border:1px solid #ebe0ef}.row-actions .primary{min-height:48px}.mobile-nav button.active{background:#f7eefb}.mobile-nav button{border-radius:14px}
#welcome-start{left:50%;transform:translateX(-50%);width:calc(100% - 48px);max-width:440px;min-height:56px;display:flex;justify-content:center;align-items:center;border-radius:18px;background:white;color:#7a23a0;box-shadow:0 8px 28px #5f1b7d20}#welcome-start:active{transform:translateX(-50%) scale(.98)}.welcome-copy{inset:20% 24px auto}.welcome-copy h1{letter-spacing:-2px}.welcome-copy small{font-size:16px}
@media(min-width:900px){.map-sheet{max-width:440px!important;left:auto!important;right:42px!important;border-radius:24px}.map-stage{height:calc(100dvh - var(--top-h) - 24px)}.sheet-header{padding:14px 20px 0}.map-recenter{left:14px;right:auto;top:60px}.restaurant-detail .meal-card{display:grid;grid-template-columns:32% 1fr}.restaurant-detail .card-art{min-height:160px}.restaurant-detail .card-body{padding:12px}.restaurant-detail .meal-card h3{font-size:14px}.restaurant-detail .macro-row strong{font-size:17px}.restaurant-detail .food-photos.combination{flex-direction:column}.restaurant-detail .food-photos.combination img{width:90%}.restaurant-detail .save-btn{right:auto;left:8px;top:8px}.restaurant-detail .match-tag{position:static;font-size:10px}.restaurant-detail .card-art{display:flex;flex-direction:column;justify-content:center}}
@media(max-width:760px){.map-stage{border:0}.sheet-header{padding:9px 16px 0}.sheet-body{padding:0 16px 20px}.map-sheet{border-bottom:0}.discover-below{padding-top:24px}.section-head{align-items:flex-start}.section-head h2{font-size:23px}.section-head p{font-size:14px}.count-note{white-space:nowrap;font-size:12px}.chain-list{margin:0 -16px;padding:0 16px 10px}.chain{min-width:156px}.chain strong{font-size:14px}.cards{gap:12px}.meal-card{grid-template-columns:30% 1fr}.card-art{min-height:190px;padding:14px 6px}.card-body{padding:16px 12px}.meal-card h3{font-size:16px}.save-btn{left:auto;right:8px;top:8px;position:relative;grid-column:2;grid-row:1;justify-self:end;align-self:start;margin-bottom:-36px}.card-art{grid-column:1;grid-row:1}.card-body{grid-column:2;grid-row:1;padding-top:44px}.match-tag{font-size:10px;line-height:1.5;letter-spacing:.3px}.restaurant-label{font-size:11px}.restaurant-detail{padding:14px}.restaurant-card{padding:14px}.restaurant-actions{gap:14px}.restaurant-info p{line-height:1.5}.tools{flex-wrap:wrap}.tools .search{min-width:190px;flex:1}.tools select{min-width:140px;max-width:none}.topbar{box-shadow:0 1px 0 #e9dcef}.mobile-brand{font-size:21px;letter-spacing:-.9px}.profile-button{min-height:44px}.map-sheet .nearby-controls{gap:6px}.map-sheet .chip{font-size:12px;padding:8px}.map-sheet .segmented button{padding:8px 10px}.category-tab{font-size:13px}.map-sheet #browse-menus{font-weight:700}}

.menu-category .meal-card+.meal-card{margin-top:12px}.coverage-note{font-size:12px;line-height:1.6;color:#81648e;margin:6px 0 12px}
/* Keep all four macros legible, including the user's fat target. */
.macro-row{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:8px;row-gap:12px}.macro-row small{font-size:11px;line-height:1.35}.target-strip{flex-wrap:wrap;gap:18px}.target-label{flex:1 1 220px;line-height:1.6;overflow-wrap:anywhere}.target-stat{flex:0 0 auto}.target-strip>button{margin-left:0}.form-panel>p{max-width:65ch}.choice{min-height:44px}
@media(min-width:900px){.restaurant-detail .macro-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.macro-row{grid-template-columns:repeat(2,minmax(0,1fr))}.target-label{flex-basis:100%}.target-strip{gap:14px}.target-stat{font-size:17px}.target-strip>button{width:100%;text-align:left;padding:8px 0}.form-panel{padding:18px}.choices{gap:8px}}

/* Actual-height sheet: no translated or clipped phantom portion. */
.map-sheet{height:var(--sheet-visible);max-height:var(--sheet-max);transform:none;clip-path:none;transition:height .22s ease}.map-sheet.dragging{transition:none}@media(prefers-reduced-motion:reduce){.map-sheet{transition:none}}
.catalog-expansion{display:flex;align-items:center;gap:24px;border:1px solid #e9dcef;background:#fff;padding:22px;border-radius:18px;margin:24px 0 32px}.catalog-expansion h3{margin-bottom:8px}.catalog-expansion p{margin:0;color:var(--muted);font-size:14px}.catalog-expansion button{flex-shrink:0}@media(max-width:760px){.catalog-expansion{display:block;padding:18px}.catalog-expansion button{margin-top:16px;width:100%}}
.catalog-actions{display:flex;flex-direction:column;gap:10px;flex-shrink:0}.full-menu-intro .full-menu-warning{padding:12px;background:#fff4dd;color:#765519;border-radius:10px}

/* Compact map chrome: optional Leaflet prefix removed in JS; OSM credit stays visible. */
#restaurant-map .leaflet-control-attribution{box-sizing:border-box;max-width:calc(100vw - 132px);margin:10px 0 0 10px;padding:4px 7px;border:1px solid #e9dcef;border-radius:7px;background:#ffffffed;color:#553563;font:400 12px/1.4 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;white-space:normal;overflow:visible;text-overflow:clip;box-shadow:0 1px 4px #3817460a}
#restaurant-map .leaflet-control-attribution a{font:inherit;color:#722195;text-decoration:underline;text-underline-offset:2px}
#restaurant-map .leaflet-control-attribution a:focus-visible,#restaurant-map .leaflet-control-zoom a:focus-visible{outline:3px solid #9e2dcf;outline-offset:2px}
#restaurant-map .leaflet-control-zoom{display:flex;margin:10px 10px 0 0;border:1px solid #e9dcef;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #38174612}
#restaurant-map .leaflet-control-zoom a{width:44px!important;height:44px!important;line-height:44px!important;min-width:44px;min-height:44px;background:#fff;color:#4d245e;border:0;border-radius:0;font:400 20px/44px system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;text-decoration:none}
#restaurant-map .leaflet-control-zoom a+a{border-left:1px solid #ede3f2}
#restaurant-map .leaflet-control-zoom a:hover{background:#f7edfb}
#restaurant-map .leaflet-control-zoom a.leaflet-disabled{color:#ad9ab5;background:#fbf7fc}
.map-stage .map-recenter{left:auto;right:10px;top:66px;width:44px;height:44px;font-size:23px;border-radius:12px;box-shadow:0 2px 8px #38174612}
@media(min-width:900px){#restaurant-map .leaflet-control-attribution{max-width:min(360px,calc(100vw - 420px))}}

/* Map-primary entry: compact search dock; full controls are opt-in. */
.map-sheet:not(.expanded) .sheet-header{padding:9px 16px 8px;flex:1;overflow:hidden!important}
.map-sheet:not(.expanded) .sheet-header>:not(.sheet-handle){display:none!important}
.map-sheet:not(.expanded) .sheet-body{display:none}
.map-sheet:not(.expanded) .sheet-handle{min-height:68px;padding:0 4px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:16px;font-weight:750}
.map-sheet:not(.expanded) .sheet-handle i{margin:0 auto 3px;width:34px;height:4px}
#sheet-preview-detail{display:block;max-width:100%;font-size:12px;font-weight:400;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#80608d}
.map-sheet.expanded #sheet-preview-detail{display:none}
.map-sheet.expanded .sheet-header{flex-shrink:0;overscroll-behavior:contain}
.map-sheet.expanded .sheet-handle{min-height:44px}
.map-sheet .sheet-handle:focus-visible{outline:3px solid #9e2dcf;outline-offset:-3px;border-radius:12px}
.restaurant-pin{width:44px!important;height:44px!important}
.restaurant-pin svg{display:block;width:32px!important;height:38px!important;margin:0 6px;filter:drop-shadow(0 1px 2px #3c184c30)}
.restaurant-pin:focus-visible{outline:3px solid #9e2dcf;outline-offset:2px;border-radius:50%}
@media(min-width:900px){.map-sheet:not(.expanded){border-radius:22px}}

/* Keep evidence accessible without interrupting the restaurant journey. */
.catalog-shortcut{display:flex;align-items:center;gap:16px;margin:0 0 24px}.catalog-shortcut small{color:#80608d;line-height:1.5}
.source-disclosures{max-width:760px;border:1px solid #e9dcef;border-radius:18px;overflow:hidden;background:#fff}.source-disclosures details+details{border-top:1px solid #eee3f3}.source-disclosures summary{padding:20px;cursor:pointer;font-weight:650;min-height:44px}.source-disclosures details p,.source-disclosures details>a{margin:0 20px 18px;line-height:1.65;font-size:14px}.source-disclosures details>a{display:inline-block}.source-disclosures a,.app-legal a{color:#7b23a1;text-underline-offset:3px}.app-legal{margin:24px 0;font-size:13px}
@media(max-width:760px){.mobile-nav{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}.catalog-shortcut{align-items:stretch;flex-direction:column;gap:8px}.source-disclosures summary{padding:18px 16px}.source-disclosures details p,.source-disclosures details>a{margin-left:16px;margin-right:16px}}

.target-calculator{border:1px solid #e8ccf4;border-radius:14px;margin:20px 0 24px;background:#fbf5fd}.target-calculator summary{cursor:pointer;padding:16px;font-weight:700;color:#7b23a1;min-height:44px}.calculator-body{padding:0 16px 18px}.calculator-body>.field{margin:20px 0}.calculator-body [data-target-preview]:not(:empty){margin:16px 0;padding:14px;border-radius:10px;background:#fff;line-height:1.6;font-size:14px}.calculator-body .calculator-note{font-size:12px;margin:18px 0 0}.calculator-note a{color:#7b23a1}.calculator-body button[hidden]{display:none}

.energy-estimate{border:1px solid #e8ccf4;border-radius:14px;margin:20px 0 12px;background:#fbf5fd}.energy-estimate>summary{cursor:pointer;padding:16px;font-weight:700;color:#7b23a1;min-height:44px}.energy-estimate select{width:100%;min-width:0;min-height:48px;border:1px solid #e0cce8;border-radius:10px;background:white;padding:10px;color:#381746}.energy-estimate .fields{margin:20px 0}.energy-estimate .calculator-body>details{margin:18px 0;font-size:14px}.energy-estimate .calculator-body>details summary{cursor:pointer;min-height:44px;align-content:center}.energy-estimate [data-energy-result]:not(:empty){padding:14px;background:white;border-radius:10px;line-height:1.6}.energy-estimate small{font-weight:400;line-height:1.5}@media(max-width:480px){.energy-estimate .fields,.target-calculator .fields{grid-template-columns:1fr}}

.map-sheet form.restaurant-search{display:block;background:white;margin:14px 0;padding:12px;border:1px solid #e3d4ea;border-radius:14px}.restaurant-search>label{font-size:13px;font-weight:700;display:block;margin-bottom:8px}.restaurant-search>div{display:flex;align-items:center;gap:4px}.map-sheet .restaurant-search input{width:100%;min-width:0;border:1px solid #e3d4ea;border-radius:10px;min-height:44px;padding:10px}.map-sheet .restaurant-search button{min-height:44px;padding:8px;color:#7b23a1}.restaurant-search small{display:block;font-size:11px;line-height:1.5;color:#80608d;margin-top:7px}

/* Discover is one app viewport, not a scrolling page behind a floating panel. */
body.discover-active{height:100dvh;overflow:hidden;overscroll-behavior:none}
body.discover-active .app-shell{height:100dvh;min-height:0;overflow:hidden}
body.discover-active main{height:100dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column}
body.discover-active .topbar{flex:0 0 var(--top-h)}
body.discover-active #content{display:none!important}
body.discover-active #discovery-surface{flex:1;min-height:0;margin:0 28px;height:calc(100dvh - var(--top-h) - var(--nav-h));overflow:hidden}
body.discover-active .map-stage{height:100%;min-height:0;border-radius:18px 18px 0 0}
body.discover-active .map-sheet.expanded .sheet-header{flex:0 0 56px;min-height:56px;padding:5px 16px 0;overflow:hidden!important;touch-action:none}
body.discover-active .map-sheet .sheet-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y;padding:12px 16px max(24px,env(safe-area-inset-bottom,0px))}
body.discover-active .map-sheet:not(.expanded) .sheet-body{display:none}
body.discover-active #location-choices{max-height:none;overflow:visible;touch-action:auto}
body.discover-active .map-sheet .location-actions{display:flex;gap:8px;align-items:stretch}
body.discover-active .map-sheet .location-actions>.primary{width:46px;min-width:46px;min-height:46px;padding:0;font-size:26px;border-radius:12px;box-shadow:none}
body.discover-active .map-sheet .location-actions form{flex:1;min-width:0;margin:0;min-height:46px}
body.discover-active .map-sheet .location-actions input{padding:10px;min-width:0}
body.discover-active .map-sheet .location-actions form .secondary{padding:8px 10px;min-height:44px}
body.discover-active .map-sheet .nearby-controls{display:flex;flex-wrap:wrap;margin-top:12px}
body.discover-active .map-sheet .nearby-controls label{display:flex;align-items:center;gap:5px}
body.discover-active .map-sheet .nearby-controls select{min-height:44px}
body.discover-active .map-sheet .segmented button{min-height:44px}
body.discover-active .map-sheet .chip{min-height:44px}
body.discover-active .map-sheet .location-status{margin:10px 0 8px}
body.discover-active .map-sheet [hidden]{display:none!important}
body.discover-active #catalog-content{min-width:0}
body.discover-active #catalog-content .discover-below{padding:0;max-width:none}
body.discover-active #catalog-content .cards{grid-template-columns:1fr}
body.discover-active #catalog-content .chain-list{display:flex;overflow-x:auto;margin:0 -4px;padding:4px 4px 12px}
body.discover-active #catalog-content .chain{flex:0 0 154px}
body.discover-active #catalog-content .target-strip{margin:16px 0}
body.discover-active #catalog-content .section-head{gap:10px;align-items:flex-start}
body.discover-active #catalog-content .section-head h2{font-size:21px}
body.discover-active #catalog-content .tools{flex-wrap:wrap}
@media(max-width:760px){body.discover-active main{height:calc(100dvh - var(--nav-h))}body.discover-active #discovery-surface{margin:0}body.discover-active .map-stage{border-radius:0}}

#show-more-restaurants{display:block;width:100%;min-height:48px;margin:16px 0;border:1px solid #e1cdea;border-radius:12px;background:white;color:#7b23a1;font-weight:700}

.cluster-count{display:grid;place-items:center;width:36px;height:36px;border:3px solid white;border-radius:50%;background:#722194;color:white;font:700 13px system-ui;box-shadow:0 2px 5px #41175335}.restaurant-cluster{background:none;border:0}.restaurant-card img.chain-logo{object-fit:contain}

.discovery-coverage{padding:14px;border:1px solid #e5c889;border-radius:14px;background:#fff7e7;color:#604b24;margin:0 0 14px}.discovery-coverage strong{font-size:15px}.discovery-coverage p{font-size:12px;line-height:1.5;margin:8px 0}.discovery-coverage>div{display:flex;flex-wrap:wrap;gap:6px}.discovery-coverage button{font-size:12px;min-height:44px}.discovery-coverage[hidden]{display:none}
