/* Reset some basic styles */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background: #f4f4f4; display: flex; flex-direction: column; min-height: 100vh; } /* Header styles */ header { background-color: #2c3e50; padding: 20px; text-align: center; color: white; } h1 { margin-bottom: 10px; } .search-bar { margin-top: 10px; } .search-bar input { padding: 10px; width: 250px; border: none; border-radius: 5px; margin-right: 8px; } .search-bar button { padding: 10px 15px; border: none; border-radius: 5px; background-color: #3498db; color: white; cursor: pointer; font-weight: bold; } .suggestions { background: #363251; border: 1px solid #ccc; position: absolute; top: 110%; /* Just below the input */ left: 48%; transform: translateX(-50%); max-width: fit-content; min-width: 200px; /* Optional: minimum size */ max-height: 200px; overflow-y: auto; z-index: 1000; box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1); border-radius: 8px; transition: all 0.2s ease-in-out; } .suggestions div { padding: 10px; cursor: pointer; } .suggestions div:hover { background-color: #95a1a8; } .custom-logo { background: rgba(255, 255, 255, 0.9); padding: 6px 10px; border-radius: 8px; box-shadow: 0 0 8px rgba(0, 0, 0, 0.1); display: flex; align-items: center; font-family: sans-serif; } /* Map container */ #map { flex-grow: 1; height: 80vh; width: 100%; } /* Main container */ main { flex: 1; display: flex; flex-direction: column; } /* Modern Modal styles with animations */ .modal { display: none; position: fixed; z-index: 2000; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.6); backdrop-filter: blur(4px); animation: fadeIn 0.3s ease-out; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes slideUp { from { transform: translateY(50px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } .modal-content { background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%); margin: 8% auto; padding: 0; border-radius: 20px; width: 90%; max-width: 480px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.1); animation: slideUp 0.4s ease-out; overflow: hidden; } .modal-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); padding: 24px 30px; color: white; position: relative; } .modal-content h2 { margin: 0; font-size: 24px; font-weight: 600; display: flex; align-items: center; gap: 10px; } .modal-content h2::before { content: "📍"; font-size: 28px; } .close { position: absolute; right: 20px; top: 50%; transform: translateY(-50%); color: rgba(255, 255, 255, 0.9); font-size: 32px; font-weight: 300; line-height: 1; cursor: pointer; transition: all 0.3s ease; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border-radius: 50%; } .close:hover { background-color: rgba(255, 255, 255, 0.2); transform: translateY(-50%) rotate(90deg); color: white; } .modal-body { padding: 30px; } .form-group { margin-bottom: 20px; } .form-group label { display: block; margin-bottom: 8px; font-weight: 600; color: #2d3748; font-size: 14px; display: flex; align-items: center; gap: 6px; } .form-group label::before { content: "•"; color: #667eea; font-size: 20px; } .form-group input { width: 100%; padding: 12px 16px; border: 2px solid #e2e8f0; border-radius: 12px; font-size: 15px; transition: all 0.3s ease; background-color: white; font-family: inherit; } .form-group input:focus { outline: none; border-color: #667eea; box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.1); transform: translateY(-1px); } .form-group input:hover { border-color: #cbd5e0; } .form-actions { display: flex; gap: 12px; margin-top: 28px; padding-top: 20px; border-top: 2px solid #f1f3f5; } .form-actions button { flex: 1; padding: 14px 24px; border: none; border-radius: 12px; cursor: pointer; font-weight: 600; font-size: 15px; transition: all 0.3s ease; display: flex; align-items: center; justify-content: center; gap: 8px; } .btn-submit { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4); } .btn-submit:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(102, 126, 234, 0.5); } .btn-submit:active { transform: translateY(0); } .btn-submit::before { content: "✓"; font-size: 18px; } .btn-cancel { background-color: #e2e8f0; color: #4a5568; } .btn-cancel:hover { background-color: #cbd5e0; transform: translateY(-2px); } .btn-cancel::before { content: "✕"; font-size: 18px; } .form-message { padding: 14px 18px; border-radius: 12px; margin-bottom: 20px; text-align: center; font-weight: 500; animation: slideUp 0.3s ease-out; font-size: 14px; } .form-message.success { background: linear-gradient(135deg, #d4edda 0%, #c3e6cb 100%); color: #155724; border: 2px solid #b1dfbb; box-shadow: 0 4px 12px rgba(39, 174, 96, 0.2); } .form-message.error { background: linear-gradient(135deg, #f8d7da 0%, #f5c6cb 100%); color: #721c24; border: 2px solid #f1b0b7; box-shadow: 0 4px 12px rgba(220, 53, 69, 0.2); } .form-message.info { background: linear-gradient(135deg, #d1ecf1 0%, #bee5eb 100%); color: #0c5460; border: 2px solid #a6d9e3; box-shadow: 0 4px 12px rgba(52, 152, 219, 0.2); } /* Add Family button with modern style */ .btn-add-family { padding: 12px 20px; border: none; border-radius: 10px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; cursor: pointer; font-weight: 600; margin-left: 8px; transition: all 0.3s ease; box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3); display: inline-flex; align-items: center; gap: 6px; } .btn-add-family:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4); } .btn-add-family:active { transform: translateY(0); }