























html.jb-phone {
  --jb-sheet-shadow: 0 -8px 26px rgba(0, 0, 0, .4);
}








html.jb-phone #topbar { min-height: 0; padding: 6px 10px; gap: 6px; flex-wrap: nowrap; align-items: center; }
html.jb-phone #searchbox, html.jb-phone #viewToggle { display: none; }
html.jb-phone body.nav-open #viewToggle { display: flex; }
html.jb-phone body.nav-open #topbar { flex-wrap: wrap; }
html.jb-phone body.nav-open #topbar .jb-chip { height: auto; min-height: 44px; }
html.jb-phone body.nav-open #topbar .jb-chip :is(button, a) { min-height: 44px; padding: 0 10px; display: inline-flex; align-items: center; }
html.jb-phone #searchToggleBtn {
  order: 2; display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; min-width: 40px; padding: 0;
  border: 1px solid var(--bar-ctl-line); border-radius: 6px; background: var(--bar-ctl); color: #fff; cursor: pointer;
}
html.jb-phone #searchToggleBtn[aria-expanded="true"] { background: var(--bar-ctl); color: var(--gold); border-color: var(--gold); }
html:not(.jb-phone) #searchToggleBtn { display: none; }
html.jb-phone #brand { order: 1; }
html.jb-phone #menuBtn { order: 3; }



html.jb-phone #topbar .jb-chip.in-bar:not(:has(.tier)) { padding: 0; border: 0; background: none; height: auto; gap: 4px; }
html.jb-phone #topbar .jb-chip.in-bar:not(:has(.tier)) button { padding: 0 10px; }
html.jb-phone #topbar .jb-chip.in-bar:not(:has(.tier)) button + button { padding: 0 2px; }
@media (max-width: 370px) {
  html.jb-phone #topbar { gap: 4px; padding: 6px 8px; }
  html.jb-phone #brand { font-size: 14px; letter-spacing: .5px; }
}
@media (max-width: 340px) {
  html.jb-phone #topbar { gap: 3px; padding: 6px 6px; }
  html.jb-phone #brand { font-size: 13px; letter-spacing: 0; }
  html.jb-phone #topbar .jb-chip.in-bar:not(:has(.tier)) button { padding: 0 7px; font-size: 12px; }
}

html.jb-phone .pf-table th, html.jb-phone .pf-table td { padding-left: 6px; padding-right: 6px; }
html.jb-phone .pf-table th { white-space: normal; vertical-align: bottom; }
html.jb-phone .pf-table td:not(.num):not(:first-child) { white-space: normal; overflow-wrap: break-word; }

html.jb-phone body.jb-search-open #searchbox {
  display: flex; position: fixed; inset: auto 0 0 0; left: 0 !important; right: 0 !important; bottom: 0 !important;
  width: 100%; max-width: none; flex-wrap: wrap; align-items: stretch; gap: 10px;
  z-index: 2700; background: var(--card); border-top: 2px solid var(--gold);
  border-radius: 16px 16px 0 0; box-shadow: var(--jb-sheet-shadow);
  padding: 0 16px calc(16px + env(safe-area-inset-bottom, 0px));
  max-height: 72vh; overflow-y: auto; -webkit-overflow-scrolling: touch;
}
.jb-searchsheet-head { display: none; }
html.jb-phone .jb-searchsheet-head {
  flex: 1 1 100%; align-items: center; justify-content: space-between;
  padding: 14px 0 6px; font-size: 14.5px; font-weight: 800; color: var(--ink);
  position: sticky; top: 0; background: var(--card);
}
html.jb-phone body.jb-search-open .jb-searchsheet-head { display: flex; }
html.jb-phone .jb-searchsheet-head button {
  min-width: 44px; min-height: 44px; font-size: 20px; border: none; background: none; color: var(--ink); cursor: pointer;
}
html.jb-phone body.jb-search-open #searchInput { flex: 1 1 100%; order: 1; height: 44px; font-size: 16px; }
html.jb-phone body.jb-search-open #searchMode { order: 2; flex: 1 1 0; min-width: 0; height: 44px; font-size: 13px; }
html.jb-phone body.jb-search-open #stateFilter { order: 3; flex: 1 1 0; min-width: 0; height: 44px; font-size: 13px; }
html.jb-phone body.jb-search-open #countyFilter { order: 4; flex: 1 1 100%; min-width: 0; height: 44px; font-size: 13px; }
html.jb-phone body.jb-search-open #autocomplete {
  position: static; order: 5; width: 100%; max-width: none; max-height: none; margin-top: 4px;
}





html.jb-phone .jb-sheet-handle {
  flex: 0 0 auto; display: flex; align-items: center; justify-content: center;
  min-height: 28px; width: 100%; cursor: grab; touch-action: none;
  -webkit-tap-highlight-color: transparent; background: none; border: none; padding: 0;
}
html.jb-phone .jb-sheet-handle:active { cursor: grabbing; }
html.jb-phone .jb-sheet-handle .jb-sheet-grip {
  width: 42px; height: 5px; border-radius: 3px; background: var(--line);
}
html.jb-phone .jb-sheet-handle:focus-visible { outline: 2px solid var(--gold); outline-offset: -2px; }





html.jb-phone #panel {
  position: fixed; inset: auto 0 0 0; z-index: 2400;
  width: 100%; max-width: 100%; max-height: none;
  border-left: none; border-top: 2px solid var(--gold); border-radius: 16px 16px 0 0;
  box-shadow: var(--jb-sheet-shadow);
  display: flex; flex-direction: column; overflow: hidden;
  padding-bottom: env(safe-area-inset-bottom, 0px);
  transition: height .22s cubic-bezier(.22, .8, .25, 1);
}
html.jb-phone #panel:not(.jb-sheet-animate) { transition: none; }
html.jb-phone #panel.hidden { display: none; }
html.jb-phone #panel.jb-sheet-peek { height: 16vh; min-height: 112px; }
html.jb-phone #panel.jb-sheet-half { height: 54vh; }
html.jb-phone #panel.jb-sheet-full { height: 92vh; }
html.jb-phone #panel .jb-sheet-handle { order: -1; }
html.jb-phone #panel #cardTabsBar.on { padding-top: 0; }
html.jb-phone #panel #cardTabsBar.on::after { content: none; }
html.jb-phone #panel #panelBar {
  position: static; flex: 0 0 auto; padding: 4px 14px 10px; gap: 8px; flex-wrap: wrap;
}
html.jb-phone #panel #panelBar::before { content: none; }  
html.jb-phone #panel #panelBody { flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 0 14px 40px; }
html.jb-phone #panel #panelBar button#fullCardBtn,
html.jb-phone #panel #panelBar button#compareAddBtn,
html.jb-phone #panel #panelBar button#panelClose { min-height: 44px; }
html.jb-phone #panel #panelBar button#panelClose { min-width: 60px; font-weight: 700; }





html.jb-phone #overlayPanel {
  position: fixed; inset: auto 0 0 0; top: auto !important; right: 0 !important; left: 0 !important;
  width: 100%; max-width: 100%; max-height: none;
  border-radius: 16px 16px 0 0; box-shadow: var(--jb-sheet-shadow);
  z-index: 2600; display: flex; flex-direction: column; overflow: hidden;
  padding: 0; transition: height .22s cubic-bezier(.22, .8, .25, 1);
}
html.jb-phone #overlayPanel:not(.jb-sheet-animate) { transition: none; }
html.jb-phone #overlayPanel.hidden { display: none; }
html.jb-phone #overlayPanel.jb-sheet-peek { height: 18vh; min-height: 124px; }
html.jb-phone #overlayPanel.jb-sheet-half { height: 54vh; }
html.jb-phone #overlayPanel.jb-sheet-full { height: 92vh; }
html.jb-phone #overlayPanel #ovHead {
  order: -2; flex: 0 0 auto; margin: 0; padding: 14px 16px 8px; font-size: 14.5px;
}
html.jb-phone #overlayPanel .jb-sheet-handle { order: -1; }
html.jb-phone #overlayPanel #ovClose { min-width: 44px; min-height: 44px; font-size: 20px; }
html.jb-phone #overlayPanel #ovSearch,
html.jb-phone #overlayPanel #ovTabs,
html.jb-phone #overlayPanel .ovtabpane,
html.jb-phone #overlayPanel #ovPerfNote,
html.jb-phone #overlayPanel #ovRestoreNote,
html.jb-phone #overlayPanel .oattr { flex: 0 0 auto; padding-left: 16px; padding-right: 16px; }
html.jb-phone #overlayPanel .ovtabpane { flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)); }
html.jb-phone #overlayPanel .ogroup label { min-height: 44px; }
html.jb-phone #overlayPanel .ogroup label input[type="checkbox"] { width: 20px; height: 20px; flex: none; }
html.jb-phone #overlayPanel #ovSearchInput { height: 42px; font-size: 16px; }
html.jb-phone #overlayPanel { overflow-y: auto; overscroll-behavior: contain; padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)); }
html.jb-phone #overlayPanel .jb-sheet-handle { order: -3; position: sticky; top: 0; z-index: 3; height: 28px; background: inherit; }
html.jb-phone #overlayPanel #ovHead { position: sticky; top: 28px; z-index: 3; background: inherit; }
html.jb-phone #overlayPanel .ovtabpane { flex: 0 0 auto; overflow: visible; min-height: 0; padding-bottom: 8px; }
html.jb-phone #overlayPanel #ovState { margin-left: 16px; margin-right: 16px; }
html.jb-phone #overlayPanel #savedViews { padding-left: 16px; padding-right: 16px; }








html.jb-phone #ovOptDock {
  position: fixed; inset: auto 0 0 0; left: 0 !important; bottom: 0 !important; right: 0 !important;
  width: 100%; max-width: 100%; max-height: none;
  flex-direction: column; align-items: stretch; gap: 0; pointer-events: auto;
  background: var(--card); border-radius: 16px 16px 0 0; box-shadow: var(--jb-sheet-shadow);
  z-index: 2200; overflow: hidden; transition: height .22s cubic-bezier(.22, .8, .25, 1);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
html.jb-phone #ovOptDock:not(.jb-sheet-animate) { transition: none; }
html.jb-phone #ovOptDock.jb-sheet-empty { display: none; }
html.jb-phone #ovOptDock.jb-sheet-peek { height: 64px; }
html.jb-phone #ovOptDock.jb-sheet-half { height: 34vh; }
html.jb-phone #ovOptDock.jb-sheet-full { height: 64vh; }
html.jb-phone #ovOptDock .jb-sheet-handle { order: -2; min-height: 18px; padding-top: 4px; }
html.jb-phone #ovOptDock .jb-sheet-chiprow {
  order: -1; flex: 0 0 auto; display: flex; align-items: center; gap: 6px; overflow-x: auto;
  padding: 2px 14px 8px; font-size: 12.5px; font-weight: 700; color: var(--ink); white-space: nowrap;
}





html.jb-phone #ovOptDock .jb-sheet-chiprow .jbm-chip {
  display: inline-flex; align-items: center; min-height: 28px; padding: 0 12px;
  border-radius: 14px; background: var(--hover); border: 1px solid var(--gold); white-space: nowrap;
}
html.jb-phone #ovOptDock .jb-sheet-body {
  order: 0; flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch;
  display: flex; flex-direction: column; gap: 10px; padding: 0 14px 16px;
}






html.jb-phone #ovOptDock #salesFilter, html.jb-phone #ovOptDock #asmPanel,
html.jb-phone #ovOptDock #crimeFilter, html.jb-phone #ovOptDock #schoolFilter,
html.jb-phone #ovOptDock .ov-buf-panel, html.jb-phone #ovOptDock .ov-tf-panel {
  position: static; width: 100%; max-width: none; max-height: none; flex: 0 0 auto;
}
html.jb-phone #ovOptDock select, html.jb-phone #ovOptDock input { min-height: 40px; font-size: 16px; }












html.jb-phone #mapLegend:not(.lg-collapsed) {
  position: fixed; inset: auto 0 0 0; left: 0 !important; right: 0 !important; bottom: 0 !important;
  width: 100%; max-width: 100%; max-height: none; border-radius: 16px 16px 0 0;
  box-shadow: var(--jb-sheet-shadow); z-index: 2200; padding: 0; display: flex; flex-direction: column;
  overflow: hidden; transition: height .22s cubic-bezier(.22, .8, .25, 1);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
html.jb-phone #mapLegend:not(.lg-collapsed):not(.jb-sheet-animate) { transition: none; }
html.jb-phone #mapLegend.hidden { display: none; }
html.jb-phone #mapLegend:not(.lg-collapsed).jb-sheet-half { height: 42vh; }
html.jb-phone #mapLegend:not(.lg-collapsed).jb-sheet-full { height: 74vh; }
html.jb-phone #mapLegend:not(.lg-collapsed) .lg-head { order: -2; }
html.jb-phone #mapLegend:not(.lg-collapsed) .jb-sheet-handle { order: -1; display: flex; }
html.jb-phone #mapLegend.lg-collapsed .jb-sheet-handle { display: none; }
html.jb-phone #mapLegend:not(.lg-collapsed) .lg-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 0 14px 16px; }





html.jb-phone #mapTools { gap: 8px; }
html.jb-phone #mapTools button { width: 56px; min-height: 48px; }
html.jb-phone #baseToggle button { min-height: 44px; padding: 0 12px; }
html.jb-phone #baseToggle { padding-bottom: env(safe-area-inset-bottom, 0px); }




html.jb-phone #overlayBtn {
  position: fixed; right: 10px; z-index: 1300;
  bottom: calc(14px + env(safe-area-inset-bottom, 0px));
  width: 56px; height: 56px; min-height: 56px; padding: 0; border-radius: 50%;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px;
  box-shadow: 0 3px 12px rgba(0, 0, 0, .35);
}
html.jb-phone #mapLegend.lg-collapsed { right: 74px; bottom: calc(28px + env(safe-area-inset-bottom, 0px)); }
html.jb-phone .leaflet-bottom.leaflet-right .leaflet-control-attribution { margin-right: 74px; }
html.jb-phone #overlayBtn .ovbtn-word { font-size: 9px; }
html.jb-phone #overlayBtn .ovbtn-count {
  position: absolute; top: 2px; right: 2px;
}


html.jb-phone body:has(#overlayPanel:not(.hidden)) #overlayBtn,
html.jb-phone body:has(#panel:not(.hidden)) #overlayBtn { display: none; }


html.jb-phone, html.jb-phone body { overflow-x: hidden; }

html.jb-phone .leaflet-control-zoom, html.jb-phone #ctHelpBtn { display: none; }
html.jb-phone body:has(#panel:not(.hidden):not(.jb-sheet-peek)) #mapTools,
html.jb-phone body:has(#overlayPanel:not(.hidden):not(.jb-sheet-peek)) #mapTools,
html.jb-phone body.jb-search-open #mapTools { display: none; }
html.jb-phone body.jb-search-open #ovOptDock { display: none; }
html.jb-phone body:has(#searchView:not(.hidden)) :is(#overlayBtn, #ovOptDock) { display: none; }
html.jb-phone body:has(#ovOptDock.jb-sheet-peek:not(.jb-sheet-empty)) :is(#overlayBtn, #zoomBadge, #baseToggle, #mapLegend.lg-collapsed, .leaflet-bottom) {
  transform: translateY(-64px);
}
html.jb-phone #ovOptDock .jb-sheet-chiprow .jbm-chip { cursor: pointer; }


html.jb-phone .jb-sheet-handle, html.jb-phone .jb-sheet-handle * { touch-action: none; }

html.jb-phone :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]), select, textarea) { font-size: 16px !important; }
html.jb-phone #f_near_add { min-height: 44px; }



html.jb-phone #cardTabsBar .ct-chip { min-height: 36px; }
html.jb-phone #cardTabsBar .ct-tab button { position: relative; }
html.jb-phone #cardTabsBar .ct-tab button::after { content: ""; position: absolute; inset: -11px -7px; }
