/* Ember supports plain CSS out of the box. More info: https://cli.emberjs.com/release/advanced-use/stylesheets/ */ html, body { height: 100%; } body { margin: 0; } #root, #ember-testing { height: 100%; } /* Ensure map container has a visible background while tiles load */ .map-container { background: #f8f9fa; -webkit-tap-highlight-color: transparent; outline: none; /* Prevent focus outline on click */ } /* Ensure RS widget is above the map */ #remotestorage-widget { position: absolute; top: 10px; right: 10px; z-index: 1000; } /* Sidebar Styles */ .sidebar { position: absolute; top: 0; left: 0; bottom: 0; width: 300px; background: white; z-index: 2000; box-shadow: 2px 0 5px rgb(0 0 0 / 10%); display: flex; flex-direction: column; } .sidebar-header { padding: 1rem; border-bottom: 1px solid #eee; display: flex; justify-content: space-between; align-items: center; } .sidebar-header h2 { margin: 0; font-size: 1.2rem; } .close-btn { background: none; border: none; font-size: 1.5rem; cursor: pointer; padding: 0 0.5rem; } .back-btn { background: none; border: none; font-size: 1.2rem; cursor: pointer; margin-right: 0.5rem; } .place-details { padding: 0.5rem; } .place-details h3 { margin-top: 0; margin-bottom: 0.5rem; } .place-meta { color: #666; text-transform: capitalize; margin-bottom: 1rem; } .btn-primary { background: #007bff; color: white; border: none; padding: 0.75rem 1.5rem; border-radius: 4px; cursor: pointer; width: 100%; font-size: 1rem; } .btn-primary:hover { background: #0056b3; } .places-list { list-style: none; padding: 0; margin: 0; } .places-list li { margin-bottom: 0.5rem; } .place-item { width: 100%; text-align: left; background: #f8f9fa; border: 1px solid #ddd; padding: 0.75rem; border-radius: 4px; cursor: pointer; transition: background 0.2s; } .place-item:hover { background: #e9ecef; } .place-name { font-weight: bold; margin-bottom: 0.25rem; } .place-type { font-size: 0.85rem; color: #666; text-transform: capitalize; } .empty-state { text-align: center; color: #666; margin-top: 2rem; } /* Map Search Pulse Animation */ .search-pulse { border-radius: 50%; border: 2px solid rgba(255, 204, 51, 0.8); /* Gold/Yellow to match markers */ background: rgba(255, 204, 51, 0.2); position: absolute; transform: translate(-50%, -50%); pointer-events: none; animation: pulse 1.5s infinite ease-out; box-sizing: border-box; /* Ensure border is included in width/height */ display: none; /* Hidden by default */ } .search-pulse.active { display: block; } .search-pulse.blue { border-color: rgba(51, 153, 204, 0.8); background: rgba(51, 153, 204, 0.2); } @keyframes pulse { 0% { transform: translate(-50%, -50%) scale(0.8); opacity: 0.8; } 100% { transform: translate(-50%, -50%) scale(1.4); opacity: 0; } } /* Locate Control */ .ol-control.ol-locate { top: 5em; /* Position below zoom controls (usually at .5em or similar) */ right: 0.5em; left: auto; } .ol-touch .ol-control.ol-locate { top: 5.5em; /* Adjust for touch devices where controls might be larger */ }