/* Local Leaflet 1.9.x layout fallback.
   Essential rules are included locally in case the CDN stylesheet is blocked.
   Leaflet's upstream stylesheet is still requested for its full control appearance. */
.leaflet-container{overflow:hidden;position:relative;outline:0;-webkit-tap-highlight-color:transparent;background:#ddd}
.leaflet-container .leaflet-map-pane,.leaflet-container .leaflet-tile,.leaflet-container .leaflet-marker-icon,.leaflet-container .leaflet-marker-shadow,.leaflet-container .leaflet-tile-pane,.leaflet-container .leaflet-pane>svg,.leaflet-container .leaflet-pane>canvas,.leaflet-container .leaflet-zoom-box,.leaflet-container .leaflet-image-layer,.leaflet-container .leaflet-layer{position:absolute;left:0;top:0}
.leaflet-container .leaflet-pane,.leaflet-container .leaflet-tile,.leaflet-container .leaflet-marker-icon,.leaflet-container .leaflet-marker-shadow,.leaflet-container .leaflet-tile-container,.leaflet-container .leaflet-pane>svg,.leaflet-container .leaflet-pane>canvas{position:absolute;left:0;top:0}
.leaflet-container .leaflet-pane{z-index:400}
.leaflet-container .leaflet-tile-pane{z-index:200}
.leaflet-container .leaflet-overlay-pane{z-index:400}
.leaflet-container .leaflet-shadow-pane{z-index:500}
.leaflet-container .leaflet-marker-pane{z-index:600}
.leaflet-container .leaflet-tooltip-pane{z-index:650}
.leaflet-container .leaflet-popup-pane{z-index:700}
.leaflet-container .leaflet-map-pane canvas{z-index:100}
.leaflet-container .leaflet-map-pane svg{z-index:200}
.leaflet-container .leaflet-tile{filter:inherit;visibility:hidden;max-width:none!important;max-height:none!important;padding:0!important;border:0!important;box-sizing:content-box!important;user-select:none;-webkit-user-select:none}
.leaflet-container .leaflet-tile-loaded{visibility:inherit}
.leaflet-container .leaflet-tile-container{pointer-events:none}
.leaflet-container .leaflet-marker-icon,.leaflet-container .leaflet-marker-shadow{display:block;user-select:none;-webkit-user-select:none}
.leaflet-container .leaflet-marker-icon,.leaflet-container .leaflet-marker-shadow,.leaflet-container .leaflet-tile{backface-visibility:hidden}
.leaflet-container .leaflet-zoom-animated{transform-origin:0 0}
.leaflet-container .leaflet-zoom-animated,.leaflet-container .leaflet-pan-anim .leaflet-tile,.leaflet-container .leaflet-marker-icon,.leaflet-container .leaflet-marker-shadow{will-change:transform}
.leaflet-container .leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}
.leaflet-container .leaflet-interactive{cursor:pointer}
.leaflet-container.leaflet-grab{cursor:grab}
.leaflet-container.leaflet-dragging,.leaflet-container.leaflet-dragging .leaflet-interactive{cursor:grabbing}
.leaflet-container .leaflet-control{position:relative;z-index:800;pointer-events:auto;float:left;clear:both}
.leaflet-container .leaflet-top,.leaflet-container .leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}
.leaflet-container .leaflet-top{top:0}
.leaflet-container .leaflet-bottom{bottom:0}
.leaflet-container .leaflet-left{left:0}
.leaflet-container .leaflet-right{right:0}
.leaflet-container .leaflet-right .leaflet-control{float:right}
.leaflet-container .leaflet-top .leaflet-control{margin-top:10px}
.leaflet-container .leaflet-bottom .leaflet-control{margin-bottom:10px}
.leaflet-container .leaflet-left .leaflet-control{margin-left:10px}
.leaflet-container .leaflet-right .leaflet-control{margin-right:10px}
.leaflet-container .leaflet-control-zoom{box-shadow:0 1px 5px #0006;border-radius:4px;overflow:hidden}
.leaflet-container .leaflet-control-zoom a{background:#fff;color:#333;display:block;text-align:center;text-decoration:none;width:30px;height:30px;line-height:30px;font:bold 22px/30px Arial;border-bottom:1px solid #ccc}
.leaflet-container .leaflet-control-zoom a:last-child{border-bottom:0}
.leaflet-container .leaflet-control-attribution{font:11px/1.5 Arial;background:#fffd;padding:0 5px;color:#333}
.leaflet-container .leaflet-control-attribution a{color:#0078a8}
.leaflet-container .leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}
.leaflet-container .leaflet-popup-content-wrapper{background:#fff;padding:1px;border-radius:12px;box-shadow:0 3px 14px #0006}
.leaflet-container .leaflet-popup-tip-container{display:none}
.leaflet-container .leaflet-div-icon{background:transparent;border:0}
.leaflet-container .leaflet-pane img,.leaflet-container .leaflet-tile{max-width:none!important}

:root{font-family:Arial,Helvetica,sans-serif;color:#14263c;background:#f2f5f9;font-synthesis:none}*{box-sizing:border-box}html,body,#app{height:100%;min-height:0;margin:0}body{overflow:hidden}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #d58b3f;outline-offset:2px}.site-header{height:70px;background:#112744;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px}.brand{display:flex;flex-direction:column;gap:5px;min-width:0}.brand strong{font-size:19px}.brand span{font-size:12px;color:#d3dce9}.test-pill{border:1px solid #d8bc89;border-radius:30px;color:#f8d79e;padding:7px 11px;white-space:nowrap;font-size:11px;font-weight:700}.workspace{height:calc(100% - 112px);min-height:0;display:grid;grid-template-columns:minmax(300px,360px) minmax(0,1fr)}.sidebar{display:flex;flex-direction:column;background:white;border-right:1px solid #d7e0e9;min-height:0;z-index:500}.search-area{padding:16px;border-bottom:1px solid #e6eaf0}.search-area>label{font-weight:700;font-size:14px}.search-wrap{position:relative;margin-top:8px}.search-wrap input{height:44px;border:1px solid #aebccb;border-radius:9px;padding:0 35px 0 12px;width:100%;background:white}.search-wrap button{position:absolute;right:9px;top:6px;border:0;background:none;color:#31465f;font-size:25px}.filter-row{display:flex;gap:10px;align-items:center;margin-top:12px}.filter-row label{font-size:13px;color:#435670;white-space:nowrap}.filter-row select{width:100%;min-width:0;padding:9px;border-radius:8px;border:1px solid #b8c3d0;background:white}.directory-tools{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:13px;font-size:13px;color:#586b82}.directory-tools button{color:#154b83;background:none;border:0;font-weight:700;font-size:12px}.results{min-height:0;overflow:auto;overscroll-behavior:contain}.result{display:block;text-align:left;width:100%;background:white;border:0;border-bottom:1px solid #e9edf2;padding:14px 17px;color:#152940}.result:hover,.result.active{background:#edf4fb}.result:focus-visible{outline-offset:-4px}.result-name{display:block;font-size:15px;font-weight:700;margin-bottom:4px}.result-address,.result-kind{display:block;font-size:12px;color:#52657b;line-height:1.45}.result-kind{margin-top:4px}.deep-dive-note{font-size:11px;color:#17694c;font-weight:700;margin-top:5px;display:block}.sidebar-footer{padding:12px 16px;background:#f8fafc;font-size:11px;line-height:1.45;color:#53657d;border-top:1px solid #e4eaf0}.map-area{position:relative;min-width:0;min-height:0}#map{width:100%;height:100%;background:#dbe6ea}.map-controls{position:absolute;z-index:450;top:12px;right:12px;display:flex;gap:8px}.map-controls button{border:1px solid #c4cdd7;background:white;color:#193855;padding:10px 12px;border-radius:9px;box-shadow:0 2px 8px #0002;font-weight:700}.mobile-directory{display:none}.detail{position:absolute;z-index:600;bottom:18px;right:18px;width:min(380px,calc(100% - 36px));background:#fff;border:1px solid #c5d1de;box-shadow:0 7px 28px #10253b35;border-radius:14px;padding:20px 18px}.detail[hidden]{display:none}.detail-inner{padding-right:17px}.detail h2{font-size:18px;line-height:1.25;margin:0 0 7px}.detail p{margin:7px 0;line-height:1.45;font-size:13px;color:#526278}.detail .tag{display:inline-block;font-size:11px;border-radius:12px;background:#ecf3f9;color:#294b65;padding:5px 9px;margin:6px 0}.detail-links{display:flex;flex-direction:column;align-items:flex-start;gap:9px;margin-top:10px}.detail-links a{color:#125189;font-weight:700;font-size:13px;text-decoration:underline;text-underline-offset:2px}.close-detail{position:absolute;right:10px;top:8px;border:0;background:transparent;font-size:26px;color:#31465f}.page-footer{height:42px;display:flex;align-items:center;justify-content:space-between;background:#f8fafc;padding:8px 16px;border-top:1px solid #d9e1e8;color:#51657b;font-size:11px;gap:12px}.page-footer span{white-space:nowrap}.map-marker{background:#164e7f;border:2px solid white;border-radius:100%;box-shadow:0 1px 5px #0005;width:15px;height:15px}.map-marker.selected{background:#de7a21;width:20px;height:20px;border-width:3px}.leaflet-container{font:inherit}.loading-error{padding:20px;color:#a42b26;line-height:1.5}
@media(max-width:760px){.site-header{height:67px;padding:10px 13px}.brand strong{font-size:16px}.brand span{font-size:10px}.test-pill{font-size:9px;padding:6px 7px;white-space:normal;text-align:center;max-width:110px}.workspace{height:calc(100% - 100px);display:block;position:relative}.sidebar{position:absolute;left:0;right:0;bottom:0;height:min(72%,560px);z-index:550;box-shadow:0 -5px 26px #0003;transform:translateY(105%);transition:transform .2s ease;border-radius:16px 16px 0 0;overflow:hidden}.sidebar.open{transform:translateY(0)}.map-area{width:100%;height:100%}.mobile-directory{display:block}.map-controls{top:12px;left:12px;right:12px;justify-content:space-between}.detail{left:10px;right:10px;bottom:12px;width:auto;max-height:48%;overflow:auto}.page-footer{height:33px;font-size:9px;padding:5px 9px}.page-footer span{display:none}.sidebar-footer{display:none}.search-area{padding:13px}.result{padding:11px 15px}}
@media(max-height:500px){.detail{max-height:70%;overflow:auto}.site-header{height:54px}.workspace{height:calc(100% - 86px)}.page-footer{height:32px}}

/* Mobile directory usability revision (November 10, 2026).
   A fixed bottom-sheet keeps the search bar visible and prevents Safari from
   scrolling the entire document when Browse apartments is tapped. */
.mobile-drawer-heading,.directory-backdrop{display:none}
@media(max-width:760px){
  html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}
  #app{height:100vh;height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}
  .site-header{flex:0 0 67px;height:auto}
  .workspace{flex:1 1 auto;height:auto;min-height:0;position:relative;overflow:hidden}
  .map-area{height:100%;min-height:0;overflow:hidden}
  .page-footer{flex:0 0 33px;height:auto;overflow:hidden;position:relative;z-index:2}
  .directory-backdrop:not([hidden]){display:block;position:fixed;inset:0;background:rgba(11,27,43,.45);z-index:1800}
  .sidebar{
    position:fixed;left:0;right:0;top:auto;bottom:0;
    width:100%;height:min(75vh,640px);height:min(75dvh,640px);
    max-height:calc(100dvh - 24px);
    border-radius:18px 18px 0 0;
    z-index:1900;
    box-shadow:0 -8px 30px #0003;
    transform:translate3d(0,110%,0);
    transition:transform .2s ease;
    display:flex;flex-direction:column;
    overflow:hidden;
    padding-bottom:env(safe-area-inset-bottom,0px);
  }
  .sidebar.open{transform:translate3d(0,0,0)}
  .mobile-drawer-heading{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;padding:11px 15px 5px;font-size:16px;background:#fff}
  .mobile-drawer-heading button{width:36px;height:36px;border:0;background:#edf3f9;border-radius:50%;color:#193855;font-size:26px;line-height:1}
  .search-area{flex:0 0 auto;padding:8px 14px 12px;background:white;position:relative;z-index:1}
  .search-wrap input{font-size:16px} /* avoid iOS text-input auto-zoom */
  .results{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .result{min-height:64px}
  .sidebar-footer{display:none}
  .map-controls{z-index:450}
  .map-controls button{font-size:14px;padding:10px}
  .detail{z-index:800;max-height:min(62%,460px);overflow:auto}
}
@media(max-width:760px) and (max-height:500px){
  .site-header{flex-basis:54px}
  .page-footer{flex-basis:32px}
  .sidebar{height:min(86dvh,440px)}
}
@media(prefers-reduced-motion:reduce){.sidebar{transition:none}}
