/* * This is a manifest file that'll be compiled into application.css, which will include all the files * listed below. * * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's * vendor/assets/stylesheets directory can be referenced here using a relative path. * * You're free to add application-wide styles to this file and they'll appear at the bottom of the * compiled file so the styles you add here take precedence over styles defined in any other CSS * files in this directory. Styles in this file should be added after the last require_* statement. * It is generally better to create a new file per style scope. * *= require_tree . *= require_self */ .emoji-icon { font-size: 36px; /* Adjust size as needed */ text-align: center; line-height: 36px; /* Same as font-size for perfect centering */ } .timeline-box { overflow: visible !important; } /* Style for the settings panel */ .leaflet-settings-panel { background-color: white; border-radius: 4px; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); position: absolute !important; top: 10px !important; left: 60px !important; transform: none; z-index: 1000; } .leaflet-settings-panel label { display: block; margin-bottom: 5px; } .leaflet-settings-panel input { width: 100%; margin-bottom: 10px; padding: 5px; border: 1px solid #ccc; border-radius: 3px; } .leaflet-settings-panel button { padding: 5px 10px; background-color: #007bff; color: white; border: none; border-radius: 3px; cursor: pointer; } .leaflet-settings-panel button:hover { background-color: #0056b3; } .photo-marker { display: flex; align-items: center; justify-content: center; background: transparent; border: none; border-radius: 50%; } .photo-marker img { border-radius: 50%; width: 48px; height: 48px; } .leaflet-loading-control { padding: 5px; border-radius: 4px; box-shadow: 0 1px 5px rgba(0,0,0,0.2); margin: 10px; width: 32px; height: 32px; background: white; } .loading-spinner { display: flex; align-items: center; gap: 8px; font-size: 18px; color: gray; } .loading-spinner::before { content: ''; font-size: 18px; animation: spinner 1s linear infinite; } .loading-spinner.done::before { content: '✅'; animation: none; } /* Flash message animations */ @keyframes slideInFromRight { 0% { transform: translateX(100%); opacity: 0; } 100% { transform: translateX(0); opacity: 1; } } @keyframes slideOutToRight { 0% { transform: translateX(0); opacity: 1; } 100% { transform: translateX(100%); opacity: 0; } } /* Family feature specific styles */ .family-member-card { transition: all 0.2s ease-in-out; } .family-member-card:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); } .invitation-card { border-left: 4px solid #f59e0b; } .family-invitation-form { max-width: 500px; } /* Loading states */ .btn:disabled { opacity: 0.7; cursor: not-allowed; } .loading-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(255, 255, 255, 0.8); display: flex; align-items: center; justify-content: center; z-index: 10; }