*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{color:#1f2328;background:#ece8e1;height:100%;margin:0;font-family:DM Sans,sans-serif}#map{position:absolute;inset:0}.panel{z-index:1000;-webkit-backdrop-filter:blur(10px);background:#faf8f4db;border:1px solid #463c361f;border-radius:14px;width:360px;padding:18px 16px 14px;position:absolute;top:18px;left:18px;box-shadow:0 8px 24px #281e141f}.panel-header{border-bottom:1px solid #463c3614;align-items:baseline;gap:20px;margin-bottom:14px;padding-bottom:12px;display:flex}.panel-title{letter-spacing:.04em;color:#1f2328;font-family:DM Mono,monospace;font-size:15px;font-weight:500}.panel-subtitle{color:#1f232885;font-size:11px;font-weight:400}#helpText{text-align:left;cursor:pointer;background:0 0;border:0;font-family:inherit;text-decoration:underline}#helpText:hover{text-decoration:none}.search-row{gap:6px;margin-bottom:14px;display:flex}.search-suggestions{z-index:1100;margin-top:-8px;margin-bottom:12px;position:relative}.search-suggestions-box{background:#faf8f4f7;border:1px solid #463c361a;border-radius:10px;overflow:hidden;box-shadow:0 10px 24px #281e141f}.search-suggestion-item{cursor:pointer;background:0 0;border-bottom:1px solid #463c360f;padding:9px 11px}.search-suggestion-item:last-child{border-bottom:none}.search-suggestion-item:hover{background:#ffffffd1}.search-suggestion-main{color:#1f2328;font-size:11px;font-weight:500;line-height:1.3}.search-suggestion-sub{color:#1f23288c;margin-top:2px;font-size:10px;line-height:1.3}input[type=search]{color:#1f2328;background:#ffffffb8;border:1px solid #463c361a;border-radius:9px;outline:none;flex:1;padding:9px 11px;font-family:DM Sans,sans-serif;font-size:10px;transition:border-color .15s,background .15s}input[type=search]::placeholder{color:#1f232861;font-size:10px}input[type=search]:focus{background:#ffffffeb;border-color:#6f8fb8a6}input[type=search]::-webkit-search-cancel-button{display:none}.btn{cursor:pointer;color:#1f2328b8;white-space:nowrap;background:#ffffffb3;border:1px solid #463c361a;border-radius:9px;padding:8px 11px;font-family:DM Mono,monospace;font-size:11px;transition:background .15s,color .15s,border-color .15s}.btn:hover{color:#1f2328;background:#fffffff2;border-color:#463c362e}.slider-section{margin-bottom:14px}.slider-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.slider-left{align-items:baseline;gap:10px;display:flex}.slider-right{align-items:center;gap:8px;display:flex}.slider-divider{color:#ffffff59}.slider-label{color:#1f232894;font-family:DM Mono,monospace;font-size:12px}.slider-date{color:#1f2328;letter-spacing:.03em;font-family:DM Mono,monospace;font-size:13px;font-weight:500}input[type=range]{-webkit-appearance:none;appearance:none;cursor:pointer;background:#463c3629;border-radius:999px;outline:none;width:100%;height:3px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#f7f4ee;border:1.5px solid #463c368c;border-radius:50%;width:15px;height:15px;box-shadow:0 1px 4px #0000001f}input[type=range]::-moz-range-thumb{cursor:pointer;background:#f7f4ee;border:1.5px solid #463c368c;border-radius:50%;width:15px;height:15px}.legend{background:#ffffff80;border:1px solid #463c3614;border-radius:9px;margin-bottom:12px;padding:10px;display:block}.legend-item{color:#1f2328ad;align-items:center;gap:7px;font-size:11px;display:flex}.legend-group{flex-wrap:wrap;gap:6px;display:flex}.legend-group+.legend-group{margin-top:16px}.travel-filter-group{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}button.legend-item{-webkit-appearance:none;appearance:none;cursor:pointer;background:#fff9;border:1px solid #463c3629;border-radius:16px;min-width:0;padding:6px 8px;font-family:inherit;line-height:1.2}button.legend-item:hover{background:#fff}button.legend-item[aria-pressed=true]{color:#263c57;background:#dfe7ef;border-color:#6f8fb8}button.legend-item:focus-visible{outline-offset:2px;outline:2px solid #476a95}.travel-icon{font-size:16px;line-height:1.2}.travel-modes{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.popup-travel-tag{background:#463c360d;border:1px solid #463c3629;border-radius:20px;padding:3px 8px}.pin-menu-search{border-bottom:1px solid #463c3614;padding:10px 14px;display:flex}.pin-menu-search input{width:100%;min-width:0}.pin-menu-empty{color:#67635e;padding:18px 14px;font-size:12px}.legend-dot{border:1px solid #ffffffbf;border-radius:50%;flex-shrink:0;width:10px;height:10px}.legend-dot.on-campus{background:#6f8fb8}.legend-dot.off-campus{background:#b87a6f}.bottom-row{align-items:center;margin-top:10px;display:flex}.bottom-row .btn{margin-left:auto}.count-line{color:#1f232873;letter-spacing:.03em;font-family:DM Mono,monospace;font-size:10px}.maplibregl-popup-content{min-width:280px;max-width:300px;overflow:hidden;color:#1f2328!important;background:#faf8f4f7!important;border:1px solid #463c361a!important;border-radius:12px!important;padding:0!important;font-family:DM Sans,sans-serif!important;box-shadow:0 12px 28px #281e1429!important}.maplibregl-popup-tip{display:none!important}.maplibregl-popup-close-button{color:#1f232873!important;padding:4px 8px!important;font-size:16px!important}.maplibregl-popup-close-button:hover{color:#1f2328!important}.maplibregl-popup{z-index:1001}#map.popups-behind-controls .maplibregl-popup{z-index:999}.popup-photo{object-fit:cover;border-bottom:1px solid #463c3614;width:100%;height:140px;display:block}.popup-body{padding:13px 15px 14px}.popup-name{margin-bottom:8px;padding-right:24px;font-size:13px;font-weight:600;line-height:1.3}.popup-row{color:#1f23289e;margin-bottom:4px;font-size:11px;line-height:1.4}.popup-row strong{color:#1f2328d1;font-weight:600}.popup-notes{margin-top:12px}.popup-tag{letter-spacing:.04em;border-radius:20px;margin-top:8px;padding:2px 8px;font-family:DM Mono,monospace;font-size:10px;display:inline-block}.popup-tag.on-campus{color:#5f7fa8;background:#6f8fb81f;border:1px solid #6f8fb838}.popup-tag.off-campus{color:#a76c61;background:#b87a6f1f;border:1px solid #b87a6f38}.maplibregl-ctrl-attrib{color:#1f232880!important;font-size:10px!important}.help-modal{z-index:2000;background:#00000040;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.help-modal.hidden{display:none}.help-box{background:#faf8f4f7;border:1px solid #463c361a;border-radius:14px;width:300px;padding:18px 20px;box-shadow:0 12px 28px #281e142e}.help-title{margin-bottom:10px;font-size:14px;font-weight:600}.help-row{color:#1f2328b3;margin-bottom:6px;font-size:11px}.help-close{width:100%;margin-top:12px}.pin-menu-wrap{z-index:1000;width:340px;position:absolute;top:18px;right:18px}.pin-menu-box{-webkit-backdrop-filter:blur(10px);background:#faf8f4db;border:1px solid #463c361f;border-radius:14px;overflow:hidden;box-shadow:0 8px 24px #281e141f}.pin-menu-header{border-bottom:1px solid #463c3614;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.pin-menu-title{color:#1f2328;letter-spacing:.03em;font-family:DM Mono,monospace;font-size:12px}.pin-menu-controls{align-items:center;gap:8px;display:flex}.pin-sort-select{color:#1f2328;background:#ffffffb8;border:1px solid #463c361a;border-radius:9px;outline:none;padding:7px 9px;font-family:DM Sans,sans-serif;font-size:11px}.pin-menu-toggle{cursor:pointer;color:#1f2328b8;white-space:nowrap;background:#ffffffb3;border:1px solid #463c361a;border-radius:9px;padding:7px 10px;font-family:DM Mono,monospace;font-size:11px;transition:background .15s,color .15s,border-color .15s}.pin-menu-toggle:hover{color:#1f2328;background:#fffffff2;border-color:#463c362e}.pin-menu-list{max-height:425px;overflow-y:auto}.pin-menu-list.hidden{display:none}.pin-menu-item{text-align:left;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #463c360f;width:100%;padding:11px 14px;font-family:DM Sans,sans-serif;transition:background .15s}.pin-menu-item:last-child{border-bottom:none}.pin-menu-item:hover{background:#ffffffc7}.pin-menu-item-name{color:#1f2328;margin-bottom:4px;font-size:12px;font-weight:700;line-height:1.35}.pin-menu-item-meta{color:#1f23289e;font-size:10px;line-height:1.45}@media (width<=900px),(height<=500px) and (width<=1100px){#map{height:100dvh;position:fixed;inset:0}.panel{overscroll-behavior:contain;border-radius:12px;width:auto;max-height:40dvh;padding:10px 10px 8px;top:10px;left:10px;right:10px;overflow-y:auto}.panel-header{flex-wrap:wrap;gap:8px;margin-bottom:6px;padding-bottom:6px}.panel-title{font-size:13px}.search-row{grid-template-columns:1fr auto;gap:6px;margin-bottom:8px;display:grid}input[type=search]{min-width:0;font-size:16px}input[type=search]::placeholder{font-size:12px}.btn{min-height:44px;padding:7px 9px;font-size:10px}.slider-section{margin-bottom:8px}.slider-header{grid-template-columns:1fr auto;gap:6px;margin-bottom:6px;display:grid}.slider-label{font-size:11px}.slider-date{font-size:12px}input[type=range]{background:linear-gradient(#463c3629,#463c3629) 50%/100% 3px no-repeat;height:28px}input[type=range]::-webkit-slider-thumb{width:24px;height:24px}input[type=range]::-moz-range-thumb{width:24px;height:24px}button.legend-item{height:44px;min-height:44px;max-height:44px}.travel-filter-group{grid-template-rows:repeat(2,44px);align-content:start}.legend-group+.legend-group{margin-top:10px}#helpText,.search-suggestion-item{min-height:44px}.legend{margin-bottom:6px;padding:6px;font-size:10px}.legend-dot{width:8px;height:8px}.bottom-row{grid-template-columns:1fr auto;gap:6px;margin-top:6px;display:grid}.bottom-row .btn{margin-left:0}.count-line{font-size:9px}.pin-menu-wrap{display:none!important}.maplibregl-popup{bottom:max(10px, env(safe-area-inset-bottom));width:calc(100% - 20px);max-width:340px!important;top:auto!important;left:50%!important;transform:translate(-50%)!important}.maplibregl-popup-content{width:100%;min-width:0;max-width:none;max-height:calc(60vh - 30px - env(safe-area-inset-bottom));max-height:calc(60dvh - 30px - env(safe-area-inset-bottom));overscroll-behavior:contain;overflow-y:auto}.maplibregl-popup-close-button{width:44px;height:44px}.popup-name{padding-right:30px}.popup-photo{height:110px}.help-box{width:calc(100vw - 32px);max-height:80dvh;overflow-y:auto}.maplibregl-ctrl-bottom-right{display:none}}
