/* ESTILOS GENERALES */
body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    margin: 0;
    background-color: #f3f4f6;
    color: #111827;
    height: 100vh;
    overflow: hidden;
}

.hidden { display: none !important; }

/* LOGIN */
.login-container {
    height: 100vh; display: flex; justify-content: center; align-items: center; background: white;
}
.login-box { text-align: center; width: 100%; max-width: 400px; padding: 2rem; }
.login-header .icon { font-size: 4rem; }
.login-form input { width: 100%; padding: 12px; margin: 8px 0 20px; border: 1px solid #e5e7eb; border-radius: 6px; background: #f9fafb; }
.login-form button { width: 100%; padding: 12px; background: #2563eb; color: white; border: none; border-radius: 6px; font-weight: bold; cursor: pointer; }
.login-form button:hover { background: #1d4ed8; }

.password-wrapper { position: relative; }
.toggle-password { position: absolute; right: 15px; top: 38%; transform: translateY(-50%); cursor: pointer; color: #6b7280; }

/* LOGIN TYPE SELECTOR */
.login-type-selector {
    display: flex;
    gap: 10px;
    margin-bottom: 15px;
    background: #f3f4f6;
    padding: 5px;
    border-radius: 8px;
}
.type-option {
    flex: 1;
    text-align: center;
    padding: 8px;
    cursor: pointer;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 600;
    color: #6b7280;
    transition: all 0.3s;
    border: 1px solid transparent;
}
.type-option:hover { background: #e5e7eb; }
.type-option.active {
    background: white;
    color: #2563eb;
    border-color: #d1d5db;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

/* DASHBOARD */
.main-container { display: flex; flex-direction: column; height: 100vh; }
.top-bar { background: white; padding: 0 2rem; height: 60px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #e5e7eb; }
.logo { font-size: 1.2rem; font-weight: bold; }
.btn-logout { background: #ef4444; color: white; border: none; padding: 8px 16px; border-radius: 4px; cursor: pointer; }
.btn-export { background: #10b981; color: white; border: none; padding: 8px 16px; border-radius: 4px; cursor: pointer; margin-right: 10px; }

.content-wrapper { display: flex; flex: 1; overflow: hidden; }

/* PANEL IZQUIERDO */
.left-panel { width: 450px; background: white; border-right: 1px solid #e5e7eb; display: flex; flex-direction: column; }
.tabs { display: flex; padding: 10px; background: white; border-bottom: 1px solid #e5e7eb; }
.tabs button { flex: 1; padding: 10px; border: none; background: #f3f4f6; cursor: pointer; font-weight: bold; color: #4b5563; margin: 0 2px; border-radius: 4px; }
.tabs button.active { background: #2563eb; color: white; }

.tab-content { padding: 20px; overflow-y: auto; flex: 1; }

/* FORMULARIO */
.form-group { margin-bottom: 15px; }
label { display: block; font-weight: 600; margin-bottom: 5px; font-size: 0.9rem; color: #374151; }
input, select, textarea { width: 100%; padding: 10px; border: 1px solid #e5e7eb; border-radius: 6px; background: #f9fafb; font-family: inherit; box-sizing: border-box; }
.row { display: flex; gap: 10px; }
.col { flex: 1; }

.img-gallery { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.gallery-item { width: 80px; height: 80px; border-radius: 4px; background-size: cover; background-position: center; border: 1px solid #d1d5db; position: relative; }
.gallery-item .remove-btn { position: absolute; top: -5px; right: -5px; background: red; color: white; border-radius: 50%; width: 20px; height: 20px; text-align: center; line-height: 20px; font-size: 12px; cursor: pointer; }

.form-actions button { width: 100%; padding: 12px; border: none; border-radius: 6px; font-weight: bold; cursor: pointer; margin-bottom: 10px; }
.btn-save { background: #10b981; color: white; }
.btn-clear { background: #6b7280; color: white; }

/* LISTA */
.list-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.property-card { border: 1px solid #e5e7eb; border-radius: 8px; padding: 15px; margin-bottom: 15px; background: white; box-shadow: 0 1px 2px rgba(0,0,0,0.05); }
.card-header { display: flex; justify-content: space-between; margin-bottom: 5px; }
.card-title { font-weight: bold; font-size: 1.1rem; }
.card-price { color: #10b981; font-weight: bold; }
.card-actions { margin-top: 10px; display: flex; gap: 5px; }
.card-actions button { padding: 5px 10px; border: none; border-radius: 4px; cursor: pointer; font-size: 0.8rem; color: white; }
.btn-edit { background: #f59e0b; }
.btn-delete { background: #ef4444; }

/* MAPA */
.right-panel { flex: 1; display: flex; flex-direction: column; padding: 20px; background: #f3f4f6; }
.map-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; }
.search-box { display: flex; gap: 10px; }
.search-box input { width: 250px; }
.search-box button { background: #2563eb; color: white; border: none; padding: 0 15px; border-radius: 6px; cursor: pointer; }
#map { flex: 1; border-radius: 8px; border: 1px solid #d1d5db; }

/* MARCADORES PERSONALIZADOS */
.custom-marker {
    display: flex; justify-content: center; align-items: center;
    border-radius: 50%; color: white; font-size: 14px;
    border: 2px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.3);
}
.bg-blue { background-color: #2563eb; } /* Casa */
.bg-purple { background-color: #8b5cf6; } /* Renta */
.bg-green { background-color: #10b981; } /* Terreno */
.bg-orange { background-color: #f59e0b; } /* Comercial */
.bg-teal { background-color: #14b8a6; } /* Departamento Venta */
.bg-indigo { background-color: #6366f1; } /* Departamento Renta */
.bg-gray { background-color: #6b7280; } /* Default */
.bg-red { background-color: #ef4444; } /* Marcador temporal */