/* Hub-only changes: shared city-page assets stay versioned separately. */
#mobile-budget-slot,#mobile-overview-slot,.mobile-salary-examples,.mobile-budget-done,.mobile-comparison{display:none}
.selected-search-note{grid-column:1/-1;margin:0;padding:12px 0;border-bottom:1px solid #35435a;font-size:12px;line-height:1.7;color:#b9c9e2}
.search-results button span{line-height:1.6}
@media(max-width:600px){
  .hero .salary-shortcuts,.hero .salary-shortcut-note{display:none}
  .hero{padding-bottom:20px}
  .hero-description{font-size:13px;line-height:1.65}
  #mobile-budget-slot{display:block;min-height:68px;margin-bottom:20px}
  .explorer-frame>.budget-panel,#explore>.budget-overview,#explore>#city-coverage{display:none}
  #mobile-budget-slot>.budget-panel{display:block;margin:0;padding:12px 15px}
  #budget-panel>summary{min-height:42px}
  #budget-kind{font-size:11px;font-weight:400;color:#b9c9e2}
  #budget-summary{font-family:var(--display);font-size:17px;font-weight:500;line-height:1.45;color:#f4f7ff;margin-top:3px}
  #budget-panel .budget-toggle{min-height:44px;display:flex;align-items:center;gap:6px;font-size:12px}
  #budget-panel>summary>span:first-child>.icon{display:none}
  #budget-panel .budget-body{padding-top:20px}
  .mobile-salary-examples{display:block;border-bottom:1px solid #35435a;margin-bottom:18px;padding-bottom:10px}
  .mobile-salary-examples>summary{min-height:44px;font-size:12px;cursor:pointer;color:#d5c9fb}
  .mobile-salary-examples .salary-shortcuts{display:flex;gap:8px;margin:4px 0 12px}
  .mobile-salary-examples .salary-shortcuts button{min-height:44px;flex:1;font-size:12px;padding:8px}
  .mobile-budget-done{display:flex;width:100%;min-height:46px;margin-top:16px;justify-content:center}
  #explore>.section-heading{margin-bottom:10px}
  .hub-city-switch{margin-bottom:16px}
  #mobile-overview-slot{display:block}
  #mobile-overview-slot>.budget-overview{margin:22px 0 0}
  .map-key>#city-coverage{margin:12px 0 0;font-size:10px;line-height:1.7;color:#a9b8d3}
  .map-subhead{gap:6px;font-size:10px;line-height:1.6}
  .map-subhead>span:first-child{width:100%}
  .map-metric-heading p{font-size:11px}
  #mobile-area-sheet .selected-search-note{font-size:11px;line-height:1.65;padding:0 0 12px}
  .selected-area:has(.selected-search-note:not([hidden])) .selected-place,.selected-area:has(.selected-search-note:not([hidden])) .selected-money{grid-row:1}
  .selected-area:has(.selected-search-note:not([hidden])) .selected-search-note{grid-row:2}
  .selected-area:has(.selected-search-note:not([hidden])) .selected-breakdown{grid-row:3}
  .selected-area:has(.selected-search-note:not([hidden])) .selected-actions{grid-row:4}
  #compare-dialog{padding:20px;max-height:88vh;max-height:88dvh;overscroll-behavior:contain}
  #compare-dialog .dialog-close{position:sticky;float:right;top:0;margin:-4px -4px 4px 8px;min-width:44px;min-height:44px;z-index:1}
  #compare-dialog>.eyebrow{max-width:calc(100% - 50px);line-height:1.7}
  #compare-dialog h2{font-size:24px;line-height:1.2;margin-bottom:12px}
  #compare-dialog .dialog-intro{font-size:12px;line-height:1.75}
  #compare-dialog .comparison-scroll{display:none}
  .mobile-comparison{display:grid;gap:18px;margin:22px 0}
  .comparison-place{min-width:0;padding:0 0 18px;border-bottom:1px solid #35435a}
  .comparison-place header{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:12px}
  .comparison-place h3{font-size:18px;line-height:1.35;overflow-wrap:anywhere;margin:0}
  .comparison-place header>div{min-width:0}
  .comparison-place header>div:last-child{text-align:right;flex-shrink:0;max-width:55%}
  .comparison-place header strong{font-family:var(--display);font-size:27px;line-height:1.1;color:#69f2c0;overflow-wrap:anywhere}
  .comparison-place header strong.is-negative{color:#ffa1b7}
  .comparison-place header span{display:block;font-size:10px;margin-top:4px;color:#b9c9e2}
  .comparison-place dl{margin:0;display:grid;gap:7px}
  .comparison-place dl>div{display:flex;justify-content:space-between;gap:12px;font-size:12px}
  .comparison-place dt{color:#b9c9e2}
  .comparison-place dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
  .comparison-place>p{font-size:10px;color:#b9c9e2;margin:12px 0 0;line-height:1.7}
  .comparison-place .comparison-edit{display:block;min-height:44px;margin:4px 0 0;padding:8px 0;font-size:12px;text-align:left;color:#d5c9fb}
}
@media(max-width:360px){
  .hub-city-switch{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hub-city-switch strong{font-size:12px}
}

/* Map evidence, stronger result hierarchy and a dismissible comparison tray. */
.expand-map-button,.map-source-mobile{display:none}
#map-data-details>summary{display:none}
.comparison-topbar{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:16px;align-items:center;margin-bottom:14px}
.comparison-topbar>.eyebrow{margin:0}
#compare-dialog .comparison-topbar .dialog-close{position:static;float:none;margin:0;min-width:44px;min-height:44px}
.compare-tray{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 20px}
.tray-topline{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px}
.tray-controls{display:flex;gap:16px;align-items:center}
.tray-controls button{background:none;color:#d0dcef;min-height:44px;padding:4px;font-size:12px}
.tray-controls #collapse-comparison{font-size:25px;min-width:44px}
#compare-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
#open-compare{min-height:44px;white-space:nowrap}
#open-compare #compare-action{font-size:inherit}
#compare-count{font-size:11px;opacity:.85}
.compare-reopen{position:fixed;right:20px;bottom:max(14px,env(safe-area-inset-bottom));z-index:10;min-height:44px;padding:10px 20px;border:1px solid #687997;border-radius:24px;background:#17243b;color:#e9f2ff;box-shadow:0 4px 18px #0005;font-size:13px}
.compare-tray[hidden],.compare-reopen[hidden]{display:none}

@media(max-width:600px){
  .map-key .map-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px 10px;padding:16px 12px;border:1px solid #34445e;border-radius:8px;background:#101a2d;font-size:11px;line-height:1.7}
  .map-key .map-legend>strong{grid-column:1/-1;margin:0 0 3px;font-size:13px;line-height:1.5;color:#f0f5ff}
  .map-key .map-legend>span{display:flex;align-items:center;gap:6px;white-space:nowrap}
  .map-key .swatch{width:11px;height:11px;flex:none}
  .map-evidence{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 12px;margin-top:10px}
  .map-source-mobile{display:block;margin:0;font-size:11px;line-height:1.7;color:#a9b8d3}
  #map-data-details{font-size:11px;line-height:1.7}
  #map-data-details>summary{display:list-item;min-height:36px;cursor:pointer;padding-top:5px;color:#d7cafa;text-decoration:underline;text-underline-offset:3px}
  #map-data-details[open]{width:100%}
  #map-data-body{padding-top:4px}
  #map-data-body .map-disclaimer{padding:0;font-size:11px;line-height:1.8}
  #map-data-body #city-coverage{font-size:11px;line-height:1.8;margin:12px 0 0}
  #mobile-overview-slot>.budget-overview{padding:17px 12px;border:1px solid #35475b;border-radius:8px;background:#0e1b2a;align-items:start;column-gap:0}
  #mobile-overview-slot .budget-overview>div:first-child{padding-left:0}
  #mobile-overview-slot .budget-overview>div{padding-inline:10px}
  #mobile-overview-slot .budget-overview>div:last-child{padding-right:0}
  #mobile-overview-slot .budget-overview strong{font-size:23px;line-height:1.5;color:#f1f5fd}
  #mobile-overview-slot .budget-overview #overview-rent{color:#c5b5fc}
  #mobile-overview-slot .budget-overview #overview-rent.is-negative{color:#ffa1b7}
  #mobile-overview-slot .budget-overview #overview-matches{font-size:31px;line-height:1.25;color:#71eccb;white-space:nowrap}
  #mobile-overview-slot .budget-overview #overview-matches>span{font-size:15px!important;color:#b8c8dd}
  #mobile-overview-slot .budget-overview .intro-mobile-label{font-size:11px;line-height:1.5;min-height:33px;margin-bottom:6px;color:#c5d3e6}
  #mobile-overview-slot .budget-overview small{font-size:10px;line-height:1.7;margin-top:5px}
  #mobile-overview-slot .budget-overview #overview-match-note{color:#bbdccf}
  .expand-map-button{display:flex;align-items:center;gap:9px;position:absolute;top:12px;left:12px;z-index:2;padding:7px 11px;min-height:44px;background:#17243b;border:1px solid #4a5f80;border-radius:6px;color:#e1e9f7;font-size:11px}
  .expand-map-button>span{font-size:20px;line-height:1}
  #mobile-area-sheet[open]{display:flex;flex-direction:column;max-height:88vh;max-height:88dvh;overflow:hidden}
  #mobile-area-sheet .mobile-sheet-header{position:static;flex:none}
  #mobile-area-sheet .mobile-sheet-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:16px}
  #mobile-area-sheet .mobile-sheet-footer{flex:none;border-top:1px solid #35435a;background:#0c1323;padding:12px 20px max(12px,env(safe-area-inset-bottom))}
  #mobile-area-sheet .mobile-sheet-footer .selected-actions{display:grid;grid-template-columns:1fr;gap:3px;margin:0;padding:0;border:0}
  #mobile-area-sheet .mobile-sheet-footer .button{width:100%;min-height:46px;font-size:13px;justify-content:center;background:#26314a;border:1px solid #a592dc;color:#fff}
  #mobile-area-sheet .mobile-sheet-footer .text-button{min-height:40px;justify-content:center;text-align:center;font-size:11px;padding:7px}
  #mobile-area-sheet .mobile-sheet-footer .field-hint{display:none}
  .compare-tray{left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));transform:none;width:auto;max-width:none;padding:8px 12px 12px;border-radius:12px;gap:4px 12px}
  .compare-tray .tray-label{font-size:10px;letter-spacing:.6px;line-height:1.5}
  .tray-controls{gap:8px}
  .tray-controls button{font-size:11px}
  .compare-chip{padding:5px 7px;font-size:10px}
  #open-compare{padding:9px 11px;font-size:11px;gap:7px}
  #open-compare>.icon{display:none}
  #compare-dialog .comparison-topbar{position:sticky;top:-20px;z-index:2;background:#0c1528;margin:-20px -20px 15px;padding:10px 20px;border-bottom:1px solid #35435a}
  #compare-dialog .comparison-topbar>.eyebrow{font-size:10px;line-height:1.7;max-width:none}
  #compare-dialog h2{clear:both;margin-top:0}
}
@media(max-width:360px){
  .map-key .map-legend{grid-template-columns:repeat(2,minmax(0,1fr))}
  #mobile-overview-slot>.budget-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 0}
  #mobile-overview-slot .budget-overview>div:last-child{grid-column:1/-1;border-left:0;border-top:1px solid #35475b;padding:12px 0 0}
  #mobile-overview-slot .budget-overview>div:last-child>div{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center}
  #mobile-overview-slot #overview-matches{grid-column:2;grid-row:1/3}
  #mobile-overview-slot #overview-match-note{grid-column:1}
  #mobile-overview-slot .budget-overview>div:last-child .intro-mobile-label{min-height:0}
  .compare-tray{grid-template-columns:1fr}
  #compare-chips{margin-bottom:6px}
  #open-compare{width:100%;justify-content:center}
}

/* Zoom gestures are confined to this optional full-window map. */
#expanded-map-dialog{position:fixed;inset:0;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:#0b1324;color:#f0f5ff;overflow:hidden}
#expanded-map-dialog[open]{display:flex;flex-direction:column}
.expanded-map-header{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:12px;padding:max(12px,env(safe-area-inset-top)) 16px 12px;border-bottom:1px solid #35435a;align-items:center;flex:none}
.expanded-map-header h2{font-size:20px;line-height:1.3;margin:0}
.expanded-map-header p{font-size:11px;margin:4px 0 0;color:#c0cde0}
#close-expanded-map{min-width:44px;min-height:44px;border-radius:50%;background:#20304b;color:#edf5ff;font-size:26px}
.expanded-map-controls{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 12px 0;flex:none}
.expanded-map-controls button{min-width:44px;min-height:44px;border:1px solid #516581;border-radius:6px;background:#17253e;color:#f0f5ff;font-size:22px}
.expanded-map-controls #map-zoom-reset{font-size:12px;padding:8px 12px;margin-left:6px}
#map-zoom-level{font-size:12px;min-width:42px;text-align:center;color:#c4d4e8}
#expanded-map-help{font-size:11px;text-align:center;margin:10px 12px;color:#c1cde0;flex:none}
#expanded-map-viewport{position:relative;flex:1;min-height:120px;width:100%;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}
#expanded-map-viewport:active{cursor:grabbing}
#expanded-map-viewport #london-map{display:block;position:absolute;inset:0;width:100%;height:100%;max-height:none;overflow:hidden;touch-action:none}
#expanded-map-viewport .borough{vector-effect:non-scaling-stroke;stroke-width:1.2px}
#expanded-map-viewport .borough.selected{stroke-width:2.5px}
#expanded-map-viewport .marker-content{transform:scale(var(--expanded-marker-scale,2.4))}
.expanded-map-status{margin:0;padding:8px 16px;font-size:11px;line-height:1.6;color:#c4d9e3;flex:none}
#expanded-comparison-slot{flex:0 1 auto;min-height:0;padding:0 10px max(8px,env(safe-area-inset-bottom));max-height:40dvh;overflow-y:auto}
#expanded-comparison-slot .compare-tray{position:static;inset:auto;width:100%;margin:0;transform:none;box-shadow:none}
#expanded-comparison-slot .compare-reopen{position:static;margin:2px 0 0 auto;display:block}
#expanded-comparison-slot .compare-reopen[hidden]{display:none}
@media print{.expand-map-button,.compare-reopen,#expanded-map-dialog{display:none!important}}

/* SVG controls avoid font-baseline differences on iOS. */
#close-expanded-map,#map-zoom-in,#map-zoom-out{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;line-height:1;appearance:none;-webkit-appearance:none}
.map-control-icon{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
#expanded-map-search{position:relative;flex:none;padding:12px 16px 0;z-index:3}
#expanded-map-search .search-wrap{position:relative;width:100%;min-width:0}
#expanded-map-search .search-wrap>input{display:block;width:100%;min-height:46px;padding:10px 12px 10px 40px;border:1px solid #465977;border-radius:7px;background:#101c31;color:#f0f5ff;font-size:16px;line-height:1.5}
#expanded-map-search .search-wrap>.icon{position:absolute;left:12px;top:13px;width:20px;height:20px;pointer-events:none}
#expanded-map-search .search-results{position:absolute;inset:calc(100% + 5px) 0 auto;max-height:min(260px,40dvh);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 10px 30px #0008}
#expanded-map-search .search-results button{display:block;width:100%;min-height:56px;padding:10px 12px;font-size:13px;line-height:1.5;text-align:left}
#expanded-map-search .search-results button span{display:block;margin-top:3px;font-size:11px;white-space:normal}
#expanded-map-search .search-results p{padding:12px;font-size:12px;line-height:1.7}
