/* 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; color: #333; 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; } .sidebar-content { padding: 1rem; } .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 { } .place-details h3 { font-size: 1.2rem; margin-top: 0; margin-bottom: 0.5rem; } .place-details .place-type { color: #666; font-size: 0.9rem; text-transform: capitalize; margin: 0 0 1rem 0; } .place-details .place-description { } .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 { color: #666; font-size: 0.85rem; text-transform: capitalize; } .meta-info { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid #eee; font-size: 0.9rem; text-align: left; } .meta-info p { margin: 0.75rem 0; line-height: 1.4; word-break: break-word; /* Prevent long URLs from breaking layout */ } .meta-info strong { font-weight: bold; } .meta-info a { color: #007bff; text-decoration: none; } .meta-info a:hover { text-decoration: underline; } .meta-divider { border: 0; border-top: 1px dashed #ddd; margin: 1rem 0; } /* 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 */ }